diff options
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/rpc/getnetconfig.c | 12 | ||||
-rw-r--r-- | lib/libc/rpc/rpc_generic.c | 19 |
2 files changed, 26 insertions, 5 deletions
diff --git a/lib/libc/rpc/getnetconfig.c b/lib/libc/rpc/getnetconfig.c index d959687..3700850 100644 --- a/lib/libc/rpc/getnetconfig.c +++ b/lib/libc/rpc/getnetconfig.c @@ -418,6 +418,18 @@ getnetconfigent(netid) return (NULL); } + if (strcmp(netid, "unix") == 0) { + fprintf(stderr, "The local transport is called \"unix\" "); + fprintf(stderr, "in /etc/netconfig.\n"); + fprintf(stderr, "Please change this to \"local\" manually "); + fprintf(stderr, "or run mergemaster(8).\n"); + fprintf(stderr, "See UPDATING entry 20021216 for details.\n"); + fprintf(stderr, "Continuing in 10 seconds\n\n"); + fprintf(stderr, "This warning will be removed 20030301\n"); + sleep(10); + + } + /* * Look up table if the entries have already been read and parsed in * getnetconfig(), then copy this entry into a buffer and return it. diff --git a/lib/libc/rpc/rpc_generic.c b/lib/libc/rpc/rpc_generic.c index 3223997..1813920 100644 --- a/lib/libc/rpc/rpc_generic.c +++ b/lib/libc/rpc/rpc_generic.c @@ -98,7 +98,7 @@ static const struct netid_af na_cvt[] = { { "udp6", AF_INET6, IPPROTO_UDP }, { "tcp6", AF_INET6, IPPROTO_TCP }, #endif - { "unix", AF_LOCAL, 0 } + { "local", AF_LOCAL, 0 } }; #if 0 @@ -524,7 +524,9 @@ __rpc_nconf2sockinfo(const struct netconfig *nconf, struct __rpc_sockinfo *sip) int i; for (i = 0; i < (sizeof na_cvt) / (sizeof (struct netid_af)); i++) - if (!strcmp(na_cvt[i].netid, nconf->nc_netid)) { + if (strcmp(na_cvt[i].netid, nconf->nc_netid) == 0 || ( + strcmp(nconf->nc_netid, "unix") == 0 && + strcmp(na_cvt[i].netid, "local") == 0)) { sip->si_af = na_cvt[i].af; sip->si_proto = na_cvt[i].protocol; sip->si_socktype = @@ -554,13 +556,20 @@ __rpc_sockinfo2netid(struct __rpc_sockinfo *sip, const char **netid) { int i; - for (i = 0; i < (sizeof na_cvt) / (sizeof (struct netid_af)); i++) + for (i = 0; i < (sizeof na_cvt) / (sizeof (struct netid_af)); i++) { if (na_cvt[i].af == sip->si_af && na_cvt[i].protocol == sip->si_proto) { - if (netid) - *netid = na_cvt[i].netid; + if (strcmp(na_cvt[i].netid, "local") == 0 && + getnetconfigent("local") == NULL) { + if (netid) + *netid = "unix"; + } else { + if (netid) + *netid = na_cvt[i].netid; + } return 1; } + } return 0; } |