+ while ((c = getopt_long(argc, argv, "hp:v", longopts, NULL)) != EOF) {
+ switch (c) {
+ case '?':
+ case 'h':
+ usage(argv[0], 0);
+ break;
+ case 'p':
+ port = atoi(optarg);
+ if (port < 1 || port > 65535) {
+ fprintf(stderr, "%s: bad port number: %s\n",
+ argv[0], optarg);
+ usage(argv[0], 1);
+ }
+ break;
+ case 'v':
+ printf("rquotad %s\n", VERSION);
+ exit(0);
+ default:
+ usage(argv[0], 1);
+ }
+ }
+
+ /* WARNING: the following works on Linux and SysV, but not BSD! */
+ signal(SIGCHLD, SIG_IGN);
+
+ if (port)
+ transp = svcudp_create(makesock(port, IPPROTO_UDP));
+ else
+ transp = svcudp_create(RPC_ANYSOCK);