diff options
| author | Hajimu UMEMOTO <ume@FreeBSD.org> | 2000-05-25 16:38:22 +0000 |
|---|---|---|
| committer | Hajimu UMEMOTO <ume@FreeBSD.org> | 2000-05-25 16:38:22 +0000 |
| commit | 84861c13f9cdaacde411cb90b3e11f57785ddeb2 (patch) | |
| tree | 71ea69ba39391189ab61ebb40285e0ea71369b17 /gnu/libexec/uucp/libuuconf | |
| parent | f1beb782994e630e0d6a931df8f28d2217ac5d40 (diff) | |
Notes
Diffstat (limited to 'gnu/libexec/uucp/libuuconf')
| -rw-r--r-- | gnu/libexec/uucp/libuuconf/hport.c | 14 | ||||
| -rw-r--r-- | gnu/libexec/uucp/libuuconf/tportc.c | 36 | ||||
| -rw-r--r-- | gnu/libexec/uucp/libuuconf/vsinfo.c | 14 |
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; } |
