version 1.5, 2001/07/18 22:26:00 |
version 1.6, 2001/11/07 18:44:28 |
|
|
} else { |
} else { |
if( tirpcflag ) { |
if( tirpcflag ) { |
if (netflag) { |
if (netflag) { |
f_print(fout, "\tregister SVCXPRT *%s;\n", TRANSP); |
f_print(fout, "\tSVCXPRT *%s;\n", TRANSP); |
f_print(fout, "\tstruct netconfig *nconf = NULL;\n"); |
f_print(fout, "\tstruct netconfig *nconf = NULL;\n"); |
} |
} |
f_print(fout, "\tpid_t pid;\n"); |
f_print(fout, "\tpid_t pid;\n"); |
|
|
write_rpc_svc_fg(infile, "\t\t"); |
write_rpc_svc_fg(infile, "\t\t"); |
f_print(fout, "\t}\n"); |
f_print(fout, "\t}\n"); |
} else { |
} else { |
f_print(fout, "\tregister SVCXPRT *%s;\n", TRANSP); |
f_print(fout, "\tSVCXPRT *%s;\n", TRANSP); |
f_print(fout, "\n"); |
f_print(fout, "\n"); |
print_pmapunset("\t"); |
print_pmapunset("\t"); |
} |
} |
|
|
for (vp = def->def.pr.versions; vp != NULL; vp = vp->next) { |
for (vp = def->def.pr.versions; vp != NULL; vp = vp->next) { |
f_print(fout, "\tif (!svc_create("); |
f_print(fout, "\tif (!svc_create("); |
pvname(def->def_name, vp->vers_num); |
pvname(def->def_name, vp->vers_num); |
f_print(fout, ", %s, %s, \"%s\")) {\n ", |
f_print(fout, ", %s, %s, \"%s\")) {\n", |
def->def_name, vp->vers_name, transp); |
def->def_name, vp->vers_name, transp); |
(void) sprintf(_errbuf, |
(void) sprintf(_errbuf, |
"unable to create (%s, %s) for %s.", |
"unable to create (%s, %s) for %s.", |
|
|
f_print(fout, "\t\tif (saddr.sin_family != AF_INET)\n"); |
f_print(fout, "\t\tif (saddr.sin_family != AF_INET)\n"); |
f_print(fout, "\t\t\texit(1);\n"); |
f_print(fout, "\t\t\texit(1);\n"); |
f_print(fout, "\t\tif (getsockopt(0, SOL_SOCKET, SO_TYPE,\n"); |
f_print(fout, "\t\tif (getsockopt(0, SOL_SOCKET, SO_TYPE,\n"); |
f_print(fout, "\t\t\t\t(char *)&_rpcfdtype, &ssize) == -1)\n"); |
f_print(fout, "\t\t (char *)&_rpcfdtype, &ssize) == -1)\n"); |
f_print(fout, "\t\t\texit(1);\n"); |
f_print(fout, "\t\t\texit(1);\n"); |
f_print(fout, "\t\tsock = 0;\n"); |
f_print(fout, "\t\tsock = 0;\n"); |
f_print(fout, "\t\t_rpcpmstart = 1;\n"); |
f_print(fout, "\t\t_rpcpmstart = 1;\n"); |
|
|
if (inetdflag || pmflag) |
if (inetdflag || pmflag) |
f_print(fout, "\tif (_rpcpmstart)\n"); |
f_print(fout, "\tif (_rpcpmstart)\n"); |
f_print(fout, "\t\tsyslog(LOG_ERR, msg);\n"); |
f_print(fout, "\t\tsyslog(LOG_ERR, msg);\n"); |
f_print(fout, "\telse\n"); |
f_print(fout, "\telse {\n"); |
f_print(fout, "\t\t(void) fprintf(stderr, \"%%s\\n\", msg);\n"); |
f_print(fout, "\t\t(void) write(STDERR_FILENO, msg, strlen(msg));\n"); |
f_print(fout, "#else\n"); |
f_print(fout, "\t\t(void) write(STDERR_FILENO, \"\\n\", 1);\n"); |
|
f_print(fout, "\t}\n#else\n"); |
f_print(fout, "\tsyslog(LOG_ERR, msg);\n"); |
f_print(fout, "\tsyslog(LOG_ERR, msg);\n"); |
f_print(fout, "#endif\n"); |
f_print(fout, "#endif\n"); |
f_print(fout, "}\n"); |
f_print(fout, "}\n"); |
|
|
f_print(fout, "static void\n"); |
f_print(fout, "static void\n"); |
f_print(fout, "closedown()\n"); |
f_print(fout, "closedown()\n"); |
f_print(fout, "{\n"); |
f_print(fout, "{\n"); |
|
f_print(fout, "\tint save_errno = errno;\n\n"); |
f_print(fout, "\tif (_rpcsvcdirty == 0) {\n"); |
f_print(fout, "\tif (_rpcsvcdirty == 0) {\n"); |
f_print(fout, "\t\textern fd_set *__svc_fdset;\n"); |
f_print(fout, "\t\textern fd_set *__svc_fdset;\n"); |
f_print(fout, "\t\textern int __svc_fdsetsize;\n"); |
f_print(fout, "\t\textern int __svc_fdsetsize;\n"); |
|
|
} else { |
} else { |
f_print(fout, "\n\t\tif (_rpcfdtype == SOCK_DGRAM)\n"); |
f_print(fout, "\n\t\tif (_rpcfdtype == SOCK_DGRAM)\n"); |
} |
} |
f_print(fout, "\t\t\texit(0);\n"); |
f_print(fout, "\t\t\t_exit(0);\n"); |
f_print(fout, "\t\tfor (i = 0, openfd = 0; i < __svc_fdsetsize && openfd < 2; i++)\n"); |
f_print(fout, "\t\tfor (i = 0, openfd = 0; i < __svc_fdsetsize && openfd < 2; i++)\n"); |
f_print(fout, "\t\t\tif (FD_ISSET(i, __svc_fdset))\n"); |
f_print(fout, "\t\t\tif (FD_ISSET(i, __svc_fdset))\n"); |
f_print(fout, "\t\t\t\topenfd++;\n"); |
f_print(fout, "\t\t\t\topenfd++;\n"); |
f_print(fout, "\t\tif (openfd <= (_rpcpmstart?0:1))\n"); |
f_print(fout, "\t\tif (openfd <= (_rpcpmstart?0:1))\n"); |
f_print(fout, "\t\t\texit(0);\n"); |
f_print(fout, "\t\t\t_exit(0);\n"); |
f_print(fout, "\t}\n"); |
f_print(fout, "\t}\n"); |
f_print(fout, "\t(void) alarm(_RPCSVC_CLOSEDOWN);\n"); |
f_print(fout, "\t(void) alarm(_RPCSVC_CLOSEDOWN);\n"); |
|
f_print(fout, "\terrno = save_errno;\n"); |
f_print(fout, "}\n"); |
f_print(fout, "}\n"); |
} |
} |
|
|
|
|
isudp = 0; |
isudp = 0; |
f_print(fout, "\n"); |
f_print(fout, "\n"); |
if (inetdflag) { |
if (inetdflag) { |
f_print(fout, "\tif ((_rpcfdtype == 0) || (_rpcfdtype == %s)) {\n", |
f_print(fout, "\tif (_rpcfdtype == 0 || _rpcfdtype == %s) {\n", |
isudp ? "SOCK_DGRAM" : "SOCK_STREAM"); |
isudp ? "SOCK_DGRAM" : "SOCK_STREAM"); |
} |
} |
if (inetdflag && streq(transp, "tcp")) { |
if (inetdflag && streq(transp, "tcp")) { |