📄 pmap_clnt.c
字号:
#if !defined(lint) && defined(SCCSIDS)static char sccsid[] = "@(#)pmap_clnt.c 1.1 92/07/30 Copyr 1984 Sun Micro";#endif/* * pmap_clnt.c * Client interface to pmap rpc service. * * Copyright (C) 1984, Sun Microsystems, Inc. */#include <rpc/rpc.h>#include <rpc/pmap_prot.h>#include <rpc/pmap_clnt.h>#include <sys/time.h>#include <sys/syslog.h>static struct timeval timeout = { 5, 0 };static struct timeval tottimeout = { 60, 0 };/* * Set a mapping between program, version and port. * Calls the pmap service remotely to do the mapping. */bool_tpmap_set(program, version, protocol, port) u_long program; u_long version; int protocol; u_short port;{ struct sockaddr_in myaddress; int socket = -1; register CLIENT *client; struct pmap parms; bool_t rslt; get_myaddress(&myaddress); client = clntudp_bufcreate(&myaddress, PMAPPROG, PMAPVERS, timeout, &socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE); if (client == (CLIENT *)NULL) return (FALSE); parms.pm_prog = program; parms.pm_vers = version; parms.pm_prot = protocol; parms.pm_port = port; if (CLNT_CALL(client, PMAPPROC_SET, xdr_pmap, &parms, xdr_bool, &rslt, tottimeout) != RPC_SUCCESS) { (void) syslog(LOG_ERR, clnt_sperror(client, "Cannot register service")); return (FALSE); } CLNT_DESTROY(client); (void)close(socket); return (rslt);}/* * Remove the mapping between program, version and port. * Calls the pmap service remotely to do the un-mapping. */bool_tpmap_unset(program, version) u_long program; u_long version;{ struct sockaddr_in myaddress; int socket = -1; register CLIENT *client; struct pmap parms; bool_t rslt; get_myaddress(&myaddress); client = clntudp_bufcreate(&myaddress, PMAPPROG, PMAPVERS, timeout, &socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE); if (client == (CLIENT *)NULL) return (FALSE); parms.pm_prog = program; parms.pm_vers = version; parms.pm_port = parms.pm_prot = 0; CLNT_CALL(client, PMAPPROC_UNSET, xdr_pmap, &parms, xdr_bool, &rslt, tottimeout); CLNT_DESTROY(client); (void)close(socket); return (rslt);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -