Bugzilla – Attachment 694 Details for
Bug 898
support for AddressFamily in sshd_config
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
cleaned & fixed patch
openssh-3.8.1p1-addrfam.patch (text/plain), 5.83 KB, created by
Pavel Kankovsky
on 2004-07-22 01:27:00 AEST
(
hide
)
Description:
cleaned & fixed patch
Filename:
MIME Type:
Creator:
Pavel Kankovsky
Created:
2004-07-22 01:27:00 AEST
Size:
5.83 KB
patch
obsolete
>diff -urN -x'*:ORIG' openssh-3.8.1p1.old/servconf.c openssh-3.8.1p1/servconf.c >--- openssh-3.8.1p1.old/servconf.c Fri Jan 23 12:03:10 2004 >+++ openssh-3.8.1p1/servconf.c Wed Jul 21 17:10:04 2004 >@@ -27,8 +27,6 @@ > static void add_listen_addr(ServerOptions *, char *, u_short); > static void add_one_listen_addr(ServerOptions *, char *, u_short); > >-/* AF_UNSPEC or AF_INET or AF_INET6 */ >-extern int IPv4or6; > /* Use of privilege separation or not */ > extern int use_privsep; > >@@ -46,6 +44,7 @@ > options->num_ports = 0; > options->ports_from_cmdline = 0; > options->listen_addrs = NULL; >+ options->address_family = -1; > options->num_host_key_files = 0; > options->pid_file = NULL; > options->server_key_bits = -1; >@@ -255,7 +254,8 @@ > sKerberosAuthentication, sKerberosOrLocalPasswd, sKerberosTicketCleanup, > sKerberosGetAFSToken, > sKerberosTgtPassing, sChallengeResponseAuthentication, >- sPasswordAuthentication, sKbdInteractiveAuthentication, sListenAddress, >+ sPasswordAuthentication, sKbdInteractiveAuthentication, >+ sListenAddress, sAddressFamily, > sPrintMotd, sPrintLastLog, sIgnoreRhosts, > sX11Forwarding, sX11DisplayOffset, sX11UseLocalhost, > sStrictModes, sEmptyPasswd, sTCPKeepAlive, >@@ -331,6 +331,7 @@ > { "skeyauthentication", sChallengeResponseAuthentication }, /* alias */ > { "checkmail", sDeprecated }, > { "listenaddress", sListenAddress }, >+ { "addressfamily", sAddressFamily }, > { "printmotd", sPrintMotd }, > { "printlastlog", sPrintLastLog }, > { "ignorerhosts", sIgnoreRhosts }, >@@ -395,6 +396,8 @@ > > if (options->num_ports == 0) > options->ports[options->num_ports++] = SSH_DEFAULT_PORT; >+ if (options->address_family == -1) >+ options->address_family = AF_UNSPEC; > if (port == 0) > for (i = 0; i < options->num_ports; i++) > add_one_listen_addr(options, addr, options->ports[i]); >@@ -410,7 +413,7 @@ > int gaierr; > > memset(&hints, 0, sizeof(hints)); >- hints.ai_family = IPv4or6; >+ hints.ai_family = options->address_family; > hints.ai_socktype = SOCK_STREAM; > hints.ai_flags = (addr == NULL) ? AI_PASSIVE : 0; > snprintf(strport, sizeof strport, "%u", port); >@@ -538,6 +541,25 @@ > filename, linenum); > break; > >+ case sAddressFamily: >+ arg = strdelim(&cp); >+ intptr = &options->address_family; >+ if (options->listen_addrs != NULL) >+ fatal("%s line %d: address family must be specified before " >+ "ListenAddress.", filename, linenum); >+ if (strcasecmp(arg, "inet") == 0) >+ value = AF_INET; >+ else if (strcasecmp(arg, "inet6") == 0) >+ value = AF_INET6; >+ else if (strcasecmp(arg, "any") == 0) >+ value = AF_UNSPEC; >+ else >+ fatal("%s line %d: unsupported address family \"%s\".", >+ filename, linenum, arg); >+ if (*intptr == -1) >+ *intptr = value; >+ break; >+ > case sHostKeyFile: > intptr = &options->num_host_key_files; > if (*intptr >= MAX_HOSTKEYS) >diff -urN -x'*:ORIG' openssh-3.8.1p1.old/servconf.h openssh-3.8.1p1/servconf.h >--- openssh-3.8.1p1.old/servconf.h Wed Dec 31 01:37:34 2003 >+++ openssh-3.8.1p1/servconf.h Wed Jul 21 17:18:21 2004 >@@ -39,6 +39,7 @@ > u_short ports[MAX_PORTS]; /* Port number to listen on. */ > char *listen_addr; /* Address on which the server listens. */ > struct addrinfo *listen_addrs; /* Addresses on which the server listens. */ >+ int address_family; /* Address family used by the server. */ > char *host_key_files[MAX_HOSTKEYS]; /* Files containing host keys. */ > int num_host_key_files; /* Number of files for host keys. */ > char *pid_file; /* Where to put our pid */ >diff -urN -x'*:ORIG' openssh-3.8.1p1.old/sshd.c openssh-3.8.1p1/sshd.c >--- openssh-3.8.1p1.old/sshd.c Sun Mar 21 23:36:01 2004 >+++ openssh-3.8.1p1/sshd.c Wed Jul 21 17:11:12 2004 >@@ -109,12 +109,6 @@ > char *config_file_name = _PATH_SERVER_CONFIG_FILE; > > /* >- * Flag indicating whether IPv4 or IPv6. This can be set on the command line. >- * Default value is AF_UNSPEC means both IPv4 and IPv6. >- */ >-int IPv4or6 = AF_UNSPEC; >- >-/* > * Debug mode flag. This can be set on the command line. If debug > * mode is enabled, extra debugging output will be sent to the system > * log, the daemon will not go to background, and will exit after processing >@@ -827,10 +821,10 @@ > while ((opt = getopt(ac, av, "f:p:b:k:h:g:u:o:dDeiqtQ46")) != -1) { > switch (opt) { > case '4': >- IPv4or6 = AF_INET; >+ options.address_family = AF_INET; > break; > case '6': >- IPv4or6 = AF_INET6; >+ options.address_family = AF_INET6; > break; > case 'f': > config_file_name = optarg; >@@ -915,7 +909,6 @@ > } > } > SSLeay_add_all_algorithms(); >- channel_set_af(IPv4or6); > > /* > * Force logging to stderr until we have loaded the private host >@@ -950,6 +943,9 @@ > /* Fill in default values for those options not explicitly set. */ > fill_default_server_options(&options); > >+ /* set default channel AF */ >+ channel_set_af(options.address_family); >+ > /* Check that there are no remaining arguments. */ > if (optind < ac) { > fprintf(stderr, "Extra argument %s.\n", av[optind]); >diff -urN -x'*:ORIG' openssh-3.8.1p1.old/sshd_config openssh-3.8.1p1/sshd_config >--- openssh-3.8.1p1.old/sshd_config Wed Dec 31 01:38:32 2003 >+++ openssh-3.8.1p1/sshd_config Wed Jul 21 17:10:04 2004 >@@ -12,6 +12,7 @@ > > #Port 22 > #Protocol 2,1 >+#AddressFamily any > #ListenAddress 0.0.0.0 > #ListenAddress :: > >diff -urN -x'*:ORIG' openssh-3.8.1p1.old/sshd_config.5 openssh-3.8.1p1/sshd_config.5 >--- openssh-3.8.1p1.old/sshd_config.5 Wed Apr 14 05:04:36 2004 >+++ openssh-3.8.1p1/sshd_config.5 Wed Jul 21 17:15:56 2004 >@@ -61,6 +61,17 @@ > keywords and their meanings are as follows (note that > keywords are case-insensitive and arguments are case-sensitive): > .Bl -tag -width Ds >+.It Cm AddressFamily >+Specifies which address family should be used by >+.Nm sshd . >+Valid arguments are >+.Dq any , >+.Dq inet >+(use IPv4 only) or >+.Dq inet6 >+(use IPv6 only). >+The default is >+.Dq any . > .It Cm AllowGroups > This keyword can be followed by a list of group name patterns, separated > by spaces.
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 898
:
689
|
694
|
752