void nfsd() { struct sockaddr_in sin; int sock; bzero(&sin, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_port = htons(NFS_PORT); sin.sin_addr.s_addr = INADDR_ANY; if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { nfsd_debug("nfsd: can't create nfsd socket\n"); return; } if (bind(sock, &sin, sizeof(sin)) < 0) { nfsd_debug("nfsd: can't bind to port %d\n", NFS_PORT); return; } rpcTaskInit(); nfsd_main(sock); }
ushort getrpcport(char *host, rpcprog_t prognum, rpcvers_t versnum, rpcprot_t proto) { struct sockaddr_in address; static int getrpcport_called = 0; if(getrpcport_called == 0) { getrpcport_called = 1; if(rpcTaskInit() == ERROR) { return 0; } } memset( (char *)&address, 0, sizeof(address)); if ((address.sin_addr.s_addr = inet_addr (host)) == ERROR && (address.sin_addr.s_addr = hostGetByName (host)) == ERROR) { return 0; } address.sin_family = AF_INET; address.sin_port = 0; return pmap_getport(&address, (u_long)prognum, (u_long)versnum, IPPROTO_TCP); }
void mountd() { rpcTaskInit(); mountd_main(RPC_ANYSOCK); }