aboutsummaryrefslogtreecommitdiff
path: root/gnu/libexec/uucp/libuuconf
diff options
context:
space:
mode:
authorHajimu UMEMOTO <ume@FreeBSD.org>2000-05-25 16:38:22 +0000
committerHajimu UMEMOTO <ume@FreeBSD.org>2000-05-25 16:38:22 +0000
commit84861c13f9cdaacde411cb90b3e11f57785ddeb2 (patch)
tree71ea69ba39391189ab61ebb40285e0ea71369b17 /gnu/libexec/uucp/libuuconf
parentf1beb782994e630e0d6a931df8f28d2217ac5d40 (diff)
Notes
Diffstat (limited to 'gnu/libexec/uucp/libuuconf')
-rw-r--r--gnu/libexec/uucp/libuuconf/hport.c14
-rw-r--r--gnu/libexec/uucp/libuuconf/tportc.c36
-rw-r--r--gnu/libexec/uucp/libuuconf/vsinfo.c14
3 files changed, 64 insertions, 0 deletions
diff --git a/gnu/libexec/uucp/libuuconf/hport.c b/gnu/libexec/uucp/libuuconf/hport.c
index 23d59abe8f46..2836fbc54ae3 100644
--- a/gnu/libexec/uucp/libuuconf/hport.c
+++ b/gnu/libexec/uucp/libuuconf/hport.c
@@ -29,6 +29,7 @@
const char _uuconf_hport_rcsid[] = "$FreeBSD$";
#endif
+#include <sys/socket.h>
#include <errno.h>
#include <ctype.h>
@@ -217,6 +218,19 @@ uuconf_hdb_find_port (pglobal, zname, ibaud, ihighbaud, pifn, pinfo, qport)
| UUCONF_RELIABLE_EIGHT | UUCONF_RELIABLE_FULLDUPLEX
| UUCONF_RELIABLE_SPECIFIED);
qport->uuconf_u.uuconf_stcp.uuconf_zport = pzsplit[1];
+
+ /* I leave with IPv4 only for compatibility reason. If
+ you wish to use IPv6, please try Taylor UUCP
+ configuration instead. If you still wish to use IPv6
+ with HDB configuration, re-make with INET6 defined.
+ In this case, you cannot specify the protocol family
+ in HDB configuration file. */
+#ifdef INET6
+ qport->uuconf_u.uuconf_stcp.uuconf_zfamily = PF_UNSPEC;
+#else
+ qport->uuconf_u.uuconf_stcp.uuconf_zfamily = PF_INET;
+#endif
+
ppzdialer = &qport->uuconf_u.uuconf_stcp.uuconf_pzdialer;
}
else if (ctoks >= 5
diff --git a/gnu/libexec/uucp/libuuconf/tportc.c b/gnu/libexec/uucp/libuuconf/tportc.c
index b07d49a15f95..60467bc03429 100644
--- a/gnu/libexec/uucp/libuuconf/tportc.c
+++ b/gnu/libexec/uucp/libuuconf/tportc.c
@@ -29,6 +29,7 @@
const char _uuconf_tportc_rcsid[] = "$FreeBSD$";
#endif
+#include <sys/socket.h>
#include <errno.h>
static int ipproto_param P((pointer pglobal, int argc, char **argv,
@@ -37,6 +38,8 @@ static int ipbaud_range P((pointer pglobal, int argc, char **argv,
pointer pvar, pointer pinfo));
static int ipdialer P((pointer pglobal, int argc, char **argv, pointer pvar,
pointer pinfo));
+static int ipfamily P((pointer pglobal, int argc, char **argv, pointer pvar,
+ pointer pinfo));
static int ipcunknown P((pointer pglobal, int argc, char **argv,
pointer pvar, pointer pinfo));
@@ -151,6 +154,9 @@ static const struct cmdtab_offset asPtcp_cmds[] =
{ "service", UUCONF_CMDTABTYPE_STRING,
offsetof (struct uuconf_port, uuconf_u.uuconf_stcp.uuconf_zport),
NULL },
+ { "family", UUCONF_CMDTABTYPE_FN | 0,
+ offsetof (struct uuconf_port, uuconf_u.uuconf_stcp.uuconf_zfamily),
+ ipfamily },
{ "dialer-sequence", UUCONF_CMDTABTYPE_FULLSTRING,
offsetof (struct uuconf_port, uuconf_u.uuconf_stcp.uuconf_pzdialer),
NULL },
@@ -279,6 +285,7 @@ _uuconf_iport_cmd (qglobal, argc, argv, qport)
break;
case UUCONF_PORTTYPE_TCP:
qport->uuconf_u.uuconf_stcp.uuconf_zport = (char *) "uucp";
+ qport->uuconf_u.uuconf_stcp.uuconf_zfamily = PF_UNSPEC;
qport->uuconf_u.uuconf_stcp.uuconf_pzdialer = NULL;
qport->uuconf_ireliable = (UUCONF_RELIABLE_SPECIFIED
| UUCONF_RELIABLE_ENDTOEND
@@ -489,6 +496,35 @@ ipdialer (pglobal, argc, argv, pvar, pinfo)
return iret;
}
}
+
+/* Handle a "family" commands. The first argument is "inet" for
+ PF_INET or "inet6" for PF_INET6 */
+
+/*ARGSUSED*/
+static int
+ipfamily (pglobal, argc, argv, pvar, pinfo)
+ pointer pglobal;
+ int argc;
+ char **argv;
+ pointer pvar;
+ pointer pinfo;
+{
+ int *pzfamily = (int *) pvar;
+
+ if (argc < 2)
+ return UUCONF_SYNTAX_ERROR | UUCONF_CMDTABRET_EXIT;
+ if (!strcmp(argv[1], "inet"))
+ *pzfamily = PF_INET;
+#if HAVE_GETADDRINFO
+ else if (!strcmp(argv[1], "inet6"))
+ *pzfamily = PF_INET6;
+#endif
+ else if (!strcmp(argv[1], "inet46"))
+ *pzfamily = PF_UNSPEC;
+ else
+ return UUCONF_SYNTAX_ERROR | UUCONF_CMDTABRET_EXIT;
+ return UUCONF_CMDTABRET_KEEP;
+}
/* Give an error for an unknown port command. */
diff --git a/gnu/libexec/uucp/libuuconf/vsinfo.c b/gnu/libexec/uucp/libuuconf/vsinfo.c
index 4ca8005b7e07..853ae70483e3 100644
--- a/gnu/libexec/uucp/libuuconf/vsinfo.c
+++ b/gnu/libexec/uucp/libuuconf/vsinfo.c
@@ -29,6 +29,7 @@
const char _uuconf_vsinfo_rcsid[] = "$FreeBSD$";
#endif
+#include <sys/socket.h>
#include <errno.h>
#include <ctype.h>
@@ -271,6 +272,19 @@ _uuconf_iv2_system_internal (qglobal, zsystem, qsys)
else
qset->uuconf_qport->uuconf_u.uuconf_stcp.uuconf_zport
= pzsplit[3];
+
+ /* I leave with IPv4 only for compatibility reason. If you
+ wish to use IPv6, please try Taylor UUCP configuration
+ instead. If you still wish to use IPv6 with V2
+ configuration, re-make with INET6 defined. In this case,
+ you cannot specify the protocol family in V2
+ configuration file. */
+#ifdef INET6
+ qset->uuconf_qport->uuconf_u.uuconf_stcp.uuconf_zfamily = PF_UNSPEC;
+#else
+ qset->uuconf_qport->uuconf_u.uuconf_stcp.uuconf_zfamily = PF_INET;
+#endif
+
qset->uuconf_qport->uuconf_u.uuconf_stcp.uuconf_pzdialer = NULL;
}