diff options
Diffstat (limited to 'src/portmap.c')
-rw-r--r-- | src/portmap.c | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/src/portmap.c b/src/portmap.c index ebb85de..44c0abe 100644 --- a/src/portmap.c +++ b/src/portmap.c @@ -39,19 +39,19 @@ main(int argc, char **argv) printf("error binding to reserved port\n"); } setreuid(2510, 2510); - portmap_unregister(s, YPPROG, YPVERS); - portmap_register(s, YPPROG, YPVERS, IPPROTO_UDP, + portmap_unregister("portmap", s, YPPROG, YPVERS); + portmap_register("portmap", s, YPPROG, YPVERS, IPPROTO_UDP, ntohs(sin.sin_port)); return 0; } #endif static bool_t -portmap_register_work(int resv_sock, +portmap_register_work(const char *module, int resv_sock, int program, int version, int protocol, int port, int proc) { - char portmap_buf[4000], auth_buf[4000], reply_buf[8000]; + char portmap_buf[4000], auth_buf[4000], reply_buf[8000], *log_id; int portmap_length, reply_length; AUTH *auth; XDR portmap_xdrs, auth_xdrs; @@ -68,6 +68,7 @@ portmap_register_work(int resv_sock, int i; static u_long xid; + log_id = (char *) module; memset(&addr, 0, sizeof(addr)); addr.sa_family = AF_UNSPEC; @@ -117,7 +118,7 @@ portmap_register_work(int resv_sock, * immediately retry. */ if (send(resv_sock, &portmap_buf, portmap_length, 0) != portmap_length) { - slapi_log_error(SLAPI_LOG_PLUGIN, "XXX", + slapi_log_error(SLAPI_LOG_PLUGIN, log_id, "error sending request to portmap\n"); continue; } @@ -159,7 +160,7 @@ portmap_register_work(int resv_sock, /* Disconnect from the portmapper, but keep our socket around. */ connect(resv_sock, &addr, sizeof(addr)); if (i == 32) { - slapi_log_error(SLAPI_LOG_PLUGIN, "XXX", + slapi_log_error(SLAPI_LOG_PLUGIN, log_id, "timeout registering with portmap service\n"); return FALSE; } @@ -167,7 +168,7 @@ portmap_register_work(int resv_sock, /* Check that the portmapper didn't just reject the request out of * hand. */ if (msg.rm_reply.rp_stat != MSG_ACCEPTED) { - slapi_log_error(SLAPI_LOG_PLUGIN, "XXX", + slapi_log_error(SLAPI_LOG_PLUGIN, log_id, "portmap request not accepted\n"); switch (msg.rm_reply.rp_rjct.rj_stat) { const char *auth_status; @@ -199,13 +200,13 @@ portmap_register_work(int resv_sock, auth_status = "unknown error"; break; } - slapi_log_error(SLAPI_LOG_PLUGIN, "XXX", + slapi_log_error(SLAPI_LOG_PLUGIN, log_id, "portmap request rejected: " "authentication failed: %s\n", auth_status); break; case RPC_MISMATCH: - slapi_log_error(SLAPI_LOG_PLUGIN, "XXX", + slapi_log_error(SLAPI_LOG_PLUGIN, log_id, "portmap request rejected: " "RPC mismatch\n"); break; @@ -217,17 +218,17 @@ portmap_register_work(int resv_sock, /* Validate the portmapper's credentials. */ auth = authunix_create_default(); if (auth_validate(auth, &msg.rm_reply.rp_acpt.ar_verf)) { - slapi_log_error(SLAPI_LOG_PLUGIN, "XXX", + slapi_log_error(SLAPI_LOG_PLUGIN, log_id, "portmap reply authenticated\n"); } else { - slapi_log_error(SLAPI_LOG_PLUGIN, "XXX", + slapi_log_error(SLAPI_LOG_PLUGIN, log_id, "portmap reply failed authentication\n"); } auth_destroy(auth); /* Check if we the portmapper gave us a reply argument. */ if (msg.rm_reply.rp_acpt.ar_stat != SUCCESS) { - slapi_log_error(SLAPI_LOG_PLUGIN, "XXX", + slapi_log_error(SLAPI_LOG_PLUGIN, log_id, "portmap request not processed\n"); xdr_destroy(&portmap_xdrs); return FALSE; @@ -235,10 +236,10 @@ portmap_register_work(int resv_sock, /* Check what happened. */ if (ret) { - slapi_log_error(SLAPI_LOG_PLUGIN, "XXX", + slapi_log_error(SLAPI_LOG_PLUGIN, log_id, "portmap request succeeded\n"); } else { - slapi_log_error(SLAPI_LOG_PLUGIN, "XXX", + slapi_log_error(SLAPI_LOG_PLUGIN, log_id, "portmap response did not include a reply\n"); } @@ -248,16 +249,16 @@ portmap_register_work(int resv_sock, } bool_t -portmap_register(int resv_sock, +portmap_register(const char *log_id, int resv_sock, int program, int version, int protocol, int port) { - return portmap_register_work(resv_sock, program, version, + return portmap_register_work(log_id, resv_sock, program, version, protocol, port, PMAPPROC_SET); } bool_t -portmap_unregister(int resv_sock, int program, int version) +portmap_unregister(const char *log_id, int resv_sock, int program, int version) { - return portmap_register_work(resv_sock, program, version, + return portmap_register_work(log_id, resv_sock, program, version, 0, 0, PMAPPROC_UNSET); } |