- djm@cvs.openbsd.org 2003/05/16 03:27:12
     [readconf.c ssh_config ssh_config.5 ssh-keysign.c]
     add AddressFamily option to ssh_config (like -4, -6 on commandline).
     Portable bug #534; ok markus@
diff --git a/ChangeLog b/ChangeLog
index 6046e1f..6b657c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,11 @@
 20030517
  - (djm) Return of the dreaded PAM_TTY_KLUDGE, which went missing in 
    recent merge
+ - (djm) OpenBSD CVS Sync
+   - djm@cvs.openbsd.org 2003/05/16 03:27:12
+     [readconf.c ssh_config ssh_config.5 ssh-keysign.c]
+     add AddressFamily option to ssh_config (like -4, -6 on commandline).
+     Portable bug #534; ok markus@
 
 20030517
  - (bal) strcat -> strlcat on openbsd-compat/realpath.c (rev 1.8 OpenBSD)
@@ -1556,4 +1561,4 @@
      save auth method before monitor_reset_key_state(); bugzilla bug #284;
      ok provos@
 
-$Id: ChangeLog,v 1.2732 2003/05/18 10:45:47 djm Exp $
+$Id: ChangeLog,v 1.2733 2003/05/18 10:50:30 djm Exp $
diff --git a/readconf.c b/readconf.c
index a0cf3d6..2a77ea1 100644
--- a/readconf.c
+++ b/readconf.c
@@ -12,7 +12,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: readconf.c,v 1.111 2003/05/15 14:55:25 djm Exp $");
+RCSID("$OpenBSD: readconf.c,v 1.112 2003/05/16 03:27:12 djm Exp $");
 
 #include "ssh.h"
 #include "xmalloc.h"
@@ -107,6 +107,7 @@
 	oHostKeyAlgorithms, oBindAddress, oSmartcardDevice,
 	oClearAllForwardings, oNoHostAuthenticationForLocalhost,
 	oEnableSSHKeysign, oRekeyLimit, oVerifyHostKeyDNS, oConnectTimeout,
+	oAddressFamily,
 	oDeprecated, oUnsupported
 } OpCodes;
 
@@ -194,6 +195,7 @@
 	{ "nohostauthenticationforlocalhost", oNoHostAuthenticationForLocalhost },
 	{ "rekeylimit", oRekeyLimit },
 	{ "connecttimeout", oConnectTimeout },
+	{ "addressfamily", oAddressFamily },
 	{ NULL, oBadOption }
 };
 
@@ -286,6 +288,7 @@
 	size_t len;
 	u_short fwd_port, fwd_host_port;
 	char sfwd_host_port[6];
+	extern int IPv4or6;
 
 	/* Strip trailing whitespace */
 	for(len = strlen(line) - 1; len > 0; len--) {
@@ -720,6 +723,18 @@
 			*intptr = value;
 		break;
 
+	case oAddressFamily:
+		arg = strdelim(&s);
+		if (strcasecmp(arg, "inet") == 0)
+			IPv4or6 = AF_INET;
+		else if (strcasecmp(arg, "inet6") == 0)
+			IPv4or6 = AF_INET6;
+		else if (strcasecmp(arg, "any") == 0)
+			IPv4or6 = AF_UNSPEC;
+		else
+			fatal("Unsupported AddressFamily \"%s\"", arg);
+		break;
+
 	case oEnableSSHKeysign:
 		intptr = &options->enable_ssh_keysign;
 		goto parse_flag;
diff --git a/ssh-keysign.c b/ssh-keysign.c
index 97a76cd..063364e 100644
--- a/ssh-keysign.c
+++ b/ssh-keysign.c
@@ -22,7 +22,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "includes.h"
-RCSID("$OpenBSD: ssh-keysign.c,v 1.11 2003/04/02 14:36:26 markus Exp $");
+RCSID("$OpenBSD: ssh-keysign.c,v 1.12 2003/05/16 03:27:12 djm Exp $");
 
 #include <openssl/evp.h>
 #include <openssl/rand.h>
@@ -42,7 +42,9 @@
 #include "pathnames.h"
 #include "readconf.h"
 
-uid_t original_real_uid;	/* XXX readconf.c needs this */
+/* XXX readconf.c needs these */
+uid_t original_real_uid;
+int IPv4or6;
 
 #ifdef HAVE___PROGNAME
 extern char *__progname;
diff --git a/ssh_config b/ssh_config
index 8a0acc1..721e374 100644
--- a/ssh_config
+++ b/ssh_config
@@ -1,4 +1,4 @@
-#	$OpenBSD: ssh_config,v 1.17 2003/05/15 14:55:25 djm Exp $
+#	$OpenBSD: ssh_config,v 1.18 2003/05/16 03:27:12 djm Exp $
 
 # This is the ssh client system-wide configuration file.  See
 # ssh_config(5) for more information.  This file provides defaults for
@@ -25,6 +25,7 @@
 #   HostbasedAuthentication no
 #   BatchMode no
 #   CheckHostIP yes
+#   AddressFamily any
 #   ConnectTimeout 0
 #   StrictHostKeyChecking ask
 #   IdentityFile ~/.ssh/identity
diff --git a/ssh_config.5 b/ssh_config.5
index c5de4a9..67166b7 100644
--- a/ssh_config.5
+++ b/ssh_config.5
@@ -34,7 +34,7 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $OpenBSD: ssh_config.5,v 1.9 2003/05/15 14:55:25 djm Exp $
+.\" $OpenBSD: ssh_config.5,v 1.10 2003/05/16 03:27:12 djm Exp $
 .Dd September 25, 1999
 .Dt SSH_CONFIG 5
 .Os
@@ -115,6 +115,13 @@
 .Ar hostname
 argument given on the command line (i.e., the name is not converted to
 a canonicalized host name before matching).
+.It Cm AddressFamily
+Specifies which address family to use when connecting. Valid arguments are
+.Dq any ,
+.Dq inet
+(Use IPv4 only) or
+.Dq inet6
+(Use IPv6 only.)
 .It Cm AFSTokenPassing
 Specifies whether to pass AFS tokens to remote host.
 The argument to this keyword must be