Simply ignore unsupported protocols listed in /etc/netconfig and
abort only if no transport is available. This fixes (INET && !INET6) and (!INET && INET6) case, for example.
This commit is contained in:
parent
4135f5cf7d
commit
cbf58894c1
@ -450,6 +450,7 @@ main(int argc, char *argv[])
|
||||
{
|
||||
int ch;
|
||||
int error;
|
||||
int ntrans;
|
||||
|
||||
void *nc_handle;
|
||||
struct netconfig *nconf;
|
||||
@ -527,12 +528,13 @@ main(int argc, char *argv[])
|
||||
/*
|
||||
* Create RPC service for each transport.
|
||||
*/
|
||||
ntrans = 0;
|
||||
while((nconf = getnetconfig(nc_handle))) {
|
||||
if ((nconf->nc_flag & NC_VISIBLE)) {
|
||||
if (__rpc_nconf2sockinfo(nconf, &si) == 0) {
|
||||
_msgout("cannot get information for %s",
|
||||
nconf->nc_netid);
|
||||
exit(1);
|
||||
_msgout("cannot get information for %s. "
|
||||
"Ignored.", nconf->nc_netid);
|
||||
continue;
|
||||
}
|
||||
if (_rpcpmstart) {
|
||||
if (si.si_socktype != _rpcfdtype ||
|
||||
@ -545,12 +547,16 @@ main(int argc, char *argv[])
|
||||
endnetconfig(nc_handle);
|
||||
exit(1);
|
||||
}
|
||||
ntrans++;
|
||||
}
|
||||
}
|
||||
endnetconfig(nc_handle);
|
||||
while(!(SLIST_EMPTY(&ble_head)))
|
||||
SLIST_REMOVE_HEAD(&ble_head, ble_next);
|
||||
|
||||
if (ntrans == 0) {
|
||||
_msgout("no transport is available. Aborted.");
|
||||
exit(1);
|
||||
}
|
||||
if (_rpcpmstart) {
|
||||
(void) signal(SIGALRM, (SIG_PF) closedown);
|
||||
(void) alarm(_RPCSVC_CLOSEDOWN/2);
|
||||
|
Loading…
Reference in New Issue
Block a user