summaryrefslogtreecommitdiff
path: root/security/ssh6/patches/patch-bi
blob: 4ac4b1379f2e517021e2e9aac094e9e83082cbe5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
$NetBSD: patch-bi,v 1.1 2000/03/20 02:25:43 itojun Exp $

--- ssh.c.orig	Wed May 12 07:19:28 1999
+++ ssh.c	Fri Dec 24 21:50:42 1999
@@ -218,6 +218,14 @@
    other functions. */
 RandomState random_state;
 
+/* Flag indicating whether IPv4 or IPv6.  This can be set on the command line.
+   Default value is AF_UNSPEC means both IPv4 and IPv6. */
+#ifdef ENABLE_IPV6
+int IPv4or6 = AF_UNSPEC;
+#else
+int IPv4or6 = AF_INET;
+#endif
+
 /* Flag indicating whether debug mode is on.  This can be set on the
    command line. */
 int debug_flag = 0;
@@ -277,12 +285,19 @@
 {
   fprintf(stderr, "Usage: %s [options] host [command]\n", av0);
   fprintf(stderr, "Options:\n");
+  fprintf(stderr, "  -4          Use IPv4 only.\n");
+#ifdef ENABLE_IPV6
+  fprintf(stderr, "  -6          Use IPv6 only.\n");
+#endif
+#ifdef ENABLE_ANOTHER_PORT_TRY
+  fprintf(stderr, "  -A          Try to connect to another port before original port.\n");
+#endif /* ENABLE_ANOTHER_PORT_TRY */
   fprintf(stderr, "  -l user     Log in using this user name.\n");
   fprintf(stderr, "  -n          Redirect input from /dev/null.\n");
   fprintf(stderr, "  -a          Disable authentication agent forwarding.\n");
-#if defined(KERBEROS_TGT_PASSING) && defined(KRB5)
-  fprintf(stderr, "  -k          Disable Kerberos ticket passing.\n");
-#endif /* defined(KERBEROS_TGT_PASSING) && defined(KRB5) */
+#ifdef AFS
+  fprintf(stderr, "  -k          Disable Kerberos ticket and AFS token passing.\n");
+#endif /* AFS */
 #ifndef SSH_NO_X11_FORWARDING
   fprintf(stderr, "  -x          Disable X11 connection forwarding.\n");
 #endif
@@ -413,6 +428,9 @@
 #ifdef SIGWINCH
   struct winsize ws;
 #endif /* SIGWINCH */
+#ifdef ENABLE_ANOTHER_PORT_TRY
+  int another_port_flag = 0;
+#endif /* ENABLE_ANOTHER_PORT_TRY */
 
   /* Save the original real uid.  It will be needed later (uid-swapping may
      clobber the real uid).  */
@@ -522,6 +540,26 @@
         }
       switch (opt)
         {
+	case '4':
+#ifdef ENABLE_IPV6
+	  IPv4or6 = (IPv4or6 == AF_INET6) ? AF_UNSPEC : AF_INET;
+#else
+	  IPv4or6 = AF_INET;
+#endif
+	  break;
+
+#ifdef ENABLE_IPV6
+	case '6':
+	  IPv4or6 = (IPv4or6 == AF_INET) ? AF_UNSPEC : AF_INET6;
+	  break;
+#endif
+
+#ifdef ENABLE_ANOTHER_PORT_TRY
+	case 'A':
+	  another_port_flag = 1;
+	  break;
+#endif /* ENABLE_ANOTHER_PORT_TRY */
+
         case 'n':
           stdin_null_flag = 1;
           break;
@@ -541,6 +579,9 @@
 
         case 'k':
           options.kerberos_tgt_passing = 0;
+#ifdef AFS
+	  options.afs_token_passing = 0;
+#endif /* AFS */
           break;
           
         case 'i':
@@ -789,11 +830,18 @@
     {
       use_privileged_port = 0;
     }
+#ifdef ENABLE_ANOTHER_PORT_TRY
+  if (!another_port_flag)
+    options.another_port = 0;
+#endif /* ENABLE_ANOTHER_PORT_TRY */
   /* Open a connection to the remote host.  This needs root privileges if
      rhosts_authentication is true.  Note that the random_state is not
      yet used by this call, although a pointer to it is stored, and thus it
      need not be initialized. */
   ok = ssh_connect(host, options.port, options.connection_attempts,
+#ifdef ENABLE_ANOTHER_PORT_TRY
+		   options.another_port,
+#endif /* ENABLE_ANOTHER_PORT_TRY */
                    !use_privileged_port,
                    original_real_uid, options.proxy_command, &random_state);