diff options
author | Guy Harris <guy@alum.mit.edu> | 2019-06-29 19:30:05 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2019-06-29 19:30:05 -0700 |
commit | 81e850934fc00eb60c12b240fda57b7c05223cff (patch) | |
tree | 600f1099d3c3b58415cd455c5ab51569b35d23af /rpcapd | |
parent | 94dfe9f2fe7abcd306ec67b7c8a44cbc7e6b1f75 (diff) | |
download | libpcap-81e850934fc00eb60c12b240fda57b7c05223cff.tar.gz |
Have a pcap_fmt_errmsg_for_win32_err() routine and use it.
It's like pcap_fmt_errmsg_for_errno(), but for Windows error codes.
Use it, rather than calling pcap_win32_err_to_str() and then formatting
a message with pcap_strerror().
Clean up some error messages while we're at it.
Diffstat (limited to 'rpcapd')
-rw-r--r-- | rpcapd/daemon.c | 22 | ||||
-rw-r--r-- | rpcapd/rpcapd.c | 53 | ||||
-rw-r--r-- | rpcapd/win32-svc.c | 6 |
3 files changed, 44 insertions, 37 deletions
diff --git a/rpcapd/daemon.c b/rpcapd/daemon.c index ab1a6a00..aaa54c9e 100644 --- a/rpcapd/daemon.c +++ b/rpcapd/daemon.c @@ -436,7 +436,7 @@ daemon_serviceloop(SOCKET sockctrl, int isactive, char *passiveClients, if (getpeername(pars.sockctrl, (struct sockaddr *)&from, &fromlen) == -1) { - sock_geterror("getpeername(): ", errmsgbuf, PCAP_ERRBUF_SIZE); + sock_geterror("getpeername()", errmsgbuf, PCAP_ERRBUF_SIZE); if (rpcap_senderror(pars.sockctrl, pars.ssl, 0, PCAP_ERR_NETW, errmsgbuf, errbuf) == -1) rpcapd_log(LOGPRIO_ERROR, "Send to client failed: %s", errbuf); goto end; @@ -510,7 +510,7 @@ daemon_serviceloop(SOCKET sockctrl, int isactive, char *passiveClients, retval = select((int)pars.sockctrl + 1, &rfds, NULL, NULL, &tv); if (retval == -1) { - sock_geterror("select failed: ", errmsgbuf, PCAP_ERRBUF_SIZE); + sock_geterror("select() failed", errmsgbuf, PCAP_ERRBUF_SIZE); if (rpcap_senderror(pars.sockctrl, pars.ssl, 0, PCAP_ERR_NETW, errmsgbuf, errbuf) == -1) rpcapd_log(LOGPRIO_ERROR, "Send to client failed: %s", errbuf); goto end; @@ -747,7 +747,7 @@ daemon_serviceloop(SOCKET sockctrl, int isactive, char *passiveClients, retval = select((int)pars.sockctrl + 1, &rfds, NULL, NULL, &tv); if (retval == -1) { - sock_geterror("select failed: ", errmsgbuf, PCAP_ERRBUF_SIZE); + sock_geterror("select() failed", errmsgbuf, PCAP_ERRBUF_SIZE); if (rpcap_senderror(pars.sockctrl, pars.ssl, 0, PCAP_ERR_NETW, errmsgbuf, errbuf) == -1) @@ -1415,7 +1415,8 @@ daemon_AuthUserPwd(char *username, char *password, char *errbuf) HANDLE Token; if (LogonUser(username, ".", password, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, &Token) == 0) { - pcap_win32_err_to_str(GetLastError(), errbuf); + pcap_fmt_errmsg_for_win32_err(errbuf, PCAP_ERRBUF_SIZE, + GetLastError(), "LogonUser() failed"); return -1; } @@ -1423,7 +1424,8 @@ daemon_AuthUserPwd(char *username, char *password, char *errbuf) // I didn't test it. if (ImpersonateLoggedOnUser(Token) == 0) { - pcap_win32_err_to_str(GetLastError(), errbuf); + pcap_fmt_errmsg_for_win32_err(errbuf, PCAP_ERRBUF_SIZE, + GetLastError(), "ImpersonateLoggedOnUser() failed"); CloseHandle(Token); return -1; } @@ -1924,7 +1926,7 @@ daemon_msg_startcap_req(uint8 ver, struct daemon_slpars *pars, uint32 plen, saddrlen = sizeof(struct sockaddr_storage); if (getpeername(pars->sockctrl, (struct sockaddr *) &saddr, &saddrlen) == -1) { - sock_geterror("getpeername(): ", errmsgbuf, PCAP_ERRBUF_SIZE); + sock_geterror("getpeername()", errmsgbuf, PCAP_ERRBUF_SIZE); goto error; } @@ -1941,7 +1943,7 @@ daemon_msg_startcap_req(uint8 ver, struct daemon_slpars *pars, uint32 plen, if (getnameinfo((struct sockaddr *) &saddr, saddrlen, peerhost, sizeof(peerhost), NULL, 0, NI_NUMERICHOST)) { - sock_geterror("getnameinfo(): ", errmsgbuf, PCAP_ERRBUF_SIZE); + sock_geterror("getnameinfo()", errmsgbuf, PCAP_ERRBUF_SIZE); goto error; } @@ -1966,7 +1968,7 @@ daemon_msg_startcap_req(uint8 ver, struct daemon_slpars *pars, uint32 plen, saddrlen = sizeof(struct sockaddr_storage); if (getsockname(session->sockdata, (struct sockaddr *) &saddr, &saddrlen) == -1) { - sock_geterror("getsockname(): ", errmsgbuf, PCAP_ERRBUF_SIZE); + sock_geterror("getsockname()", errmsgbuf, PCAP_ERRBUF_SIZE); goto error; } @@ -1974,7 +1976,7 @@ daemon_msg_startcap_req(uint8 ver, struct daemon_slpars *pars, uint32 plen, if (getnameinfo((struct sockaddr *) &saddr, saddrlen, NULL, 0, portdata, sizeof(portdata), NI_NUMERICSERV)) { - sock_geterror("getnameinfo(): ", errmsgbuf, PCAP_ERRBUF_SIZE); + sock_geterror("getnameinfo()", errmsgbuf, PCAP_ERRBUF_SIZE); goto error; } } @@ -2042,7 +2044,7 @@ daemon_msg_startcap_req(uint8 ver, struct daemon_slpars *pars, uint32 plen, if (socktemp == INVALID_SOCKET) { - sock_geterror("accept(): ", errbuf, PCAP_ERRBUF_SIZE); + sock_geterror("accept()", errbuf, PCAP_ERRBUF_SIZE); rpcapd_log(LOGPRIO_ERROR, "Accept of data connection failed: %s", errbuf); goto error; diff --git a/rpcapd/rpcapd.c b/rpcapd/rpcapd.c index fec263d7..25eb67d6 100644 --- a/rpcapd/rpcapd.c +++ b/rpcapd/rpcapd.c @@ -346,9 +346,9 @@ int main(int argc, char *argv[]) state_change_event = CreateEvent(NULL, FALSE, FALSE, NULL); if (state_change_event == NULL) { - sock_geterror(NULL, errbuf, PCAP_ERRBUF_SIZE); - rpcapd_log(LOGPRIO_ERROR, "Can't create state change event: %s", - errbuf); + sock_geterror("Can't create state change event", errbuf, + PCAP_ERRBUF_SIZE); + rpcapd_log(LOGPRIO_ERROR, "%s", errbuf); exit(2); } @@ -357,9 +357,9 @@ int main(int argc, char *argv[]) // if (!SetConsoleCtrlHandler(main_ctrl_event, TRUE)) { - sock_geterror(NULL, errbuf, PCAP_ERRBUF_SIZE); - rpcapd_log(LOGPRIO_ERROR, "Can't set control handler: %s", - errbuf); + sock_geterror("Can't set control handler", errbuf, + PCAP_ERRBUF_SIZE); + rpcapd_log(LOGPRIO_ERROR, "%s", errbuf); exit(2); } #else @@ -412,9 +412,9 @@ int main(int argc, char *argv[]) sockctrl = dup(0); if (sockctrl == -1) { - sock_geterror(NULL, errbuf, PCAP_ERRBUF_SIZE); - rpcapd_log(LOGPRIO_ERROR, "Can't dup standard input: %s", - errbuf); + sock_geterror("Can't dup standard input", errbuf, + PCAP_ERRBUF_SIZE); + rpcapd_log(LOGPRIO_ERROR, "%s", errbuf); exit(2); } @@ -721,8 +721,9 @@ send_state_change_event(void) if (!SetEvent(state_change_event)) { - sock_geterror(NULL, errbuf, PCAP_ERRBUF_SIZE); - rpcapd_log(LOGPRIO_ERROR, "SetEvent on shutdown event failed: %s", errbuf); + sock_geterror("SetEvent on shutdown event failed", errbuf, + PCAP_ERRBUF_SIZE); + rpcapd_log(LOGPRIO_ERROR, "%s", errbuf); } } @@ -888,14 +889,16 @@ accept_connections(void) event = WSACreateEvent(); if (event == WSA_INVALID_EVENT) { - sock_geterror(NULL, errbuf, PCAP_ERRBUF_SIZE); - rpcapd_log(LOGPRIO_ERROR, "Can't create socket event: %s", errbuf); + sock_geterror("Can't create socket event", errbuf, + PCAP_ERRBUF_SIZE); + rpcapd_log(LOGPRIO_ERROR, "%s", errbuf); exit(2); } if (WSAEventSelect(sock_info->sock, event, FD_ACCEPT) == SOCKET_ERROR) { - sock_geterror(NULL, errbuf, PCAP_ERRBUF_SIZE); - rpcapd_log(LOGPRIO_ERROR, "Can't setup socket event: %s", errbuf); + sock_geterror("Can't setup socket event", errbuf, + PCAP_ERRBUF_SIZE); + rpcapd_log(LOGPRIO_ERROR, "%s", errbuf); exit(2); } events[i] = event; @@ -912,8 +915,9 @@ accept_connections(void) WSA_INFINITE, FALSE); if (ret == WSA_WAIT_FAILED) { - sock_geterror(NULL, errbuf, PCAP_ERRBUF_SIZE); - rpcapd_log(LOGPRIO_ERROR, "WSAWaitForMultipleEvents failed: %s", errbuf); + sock_geterror("WSAWaitForMultipleEvents failed", errbuf, + PCAP_ERRBUF_SIZE); + rpcapd_log(LOGPRIO_ERROR, "%s", errbuf); exit(2); } @@ -951,8 +955,9 @@ accept_connections(void) if (WSAEnumNetworkEvents(sock_info->sock, events[i], &network_events) == SOCKET_ERROR) { - sock_geterror(NULL, errbuf, PCAP_ERRBUF_SIZE); - rpcapd_log(LOGPRIO_ERROR, "WSAEnumNetworkEvents failed: %s", errbuf); + sock_geterror("WSAEnumNetworkEvents failed", + errbuf, PCAP_ERRBUF_SIZE); + rpcapd_log(LOGPRIO_ERROR, "%s", errbuf); exit(2); } if (network_events.lNetworkEvents & FD_ACCEPT) @@ -965,11 +970,11 @@ accept_connections(void) // // Yes - report it and keep going. // - sock_fmterror(NULL, + sock_fmterror("Socket error", network_events.iErrorCode[FD_ACCEPT_BIT], errbuf, PCAP_ERRBUF_SIZE); - rpcapd_log(LOGPRIO_ERROR, "Socket error: %s", errbuf); + rpcapd_log(LOGPRIO_ERROR, "%s", errbuf); continue; } @@ -1154,7 +1159,7 @@ accept_connection(SOCKET listen_sock) // Don't check for errors here, since the error can be due to the fact that the thread // has been killed - sock_geterror("accept(): ", errbuf, PCAP_ERRBUF_SIZE); + sock_geterror("accept()", errbuf, PCAP_ERRBUF_SIZE); rpcapd_log(LOGPRIO_ERROR, "Accept of control connection from client failed: %s", errbuf); return; @@ -1178,14 +1183,14 @@ accept_connection(SOCKET listen_sock) // if (WSAEventSelect(sockctrl, NULL, 0) == SOCKET_ERROR) { - sock_geterror("WSAEventSelect: ", errbuf, PCAP_ERRBUF_SIZE); + sock_geterror("WSAEventSelect()", errbuf, PCAP_ERRBUF_SIZE); rpcapd_log(LOGPRIO_ERROR, "%s", errbuf); sock_close(sockctrl, NULL, 0); return; } if (ioctlsocket(sockctrl, FIONBIO, &off) == SOCKET_ERROR) { - sock_geterror("ioctlsocket(FIONBIO): ", errbuf, PCAP_ERRBUF_SIZE); + sock_geterror("ioctlsocket(FIONBIO)", errbuf, PCAP_ERRBUF_SIZE); rpcapd_log(LOGPRIO_ERROR, "%s", errbuf); sock_close(sockctrl, NULL, 0); return; diff --git a/rpcapd/win32-svc.c b/rpcapd/win32-svc.c index 40c8303f..3a19910d 100644 --- a/rpcapd/win32-svc.c +++ b/rpcapd/win32-svc.c @@ -57,9 +57,9 @@ int svc_start(void) // This call is blocking. A new thread is created which will launch // the svc_main() function if ((rc = StartServiceCtrlDispatcher(ste)) == 0) { - pcap_win32_err_to_str(GetLastError(), string); - rpcapd_log(LOGPRIO_ERROR, - "StartServiceCtrlDispatcher() failed: %s", string); + pcap_fmt_errmsg_for_win32_err(string, sizeof (string), + GetLastError(), "StartServiceCtrlDispatcher() failed"); + rpcapd_log(LOGPRIO_ERROR, "%s", string); } return rc; // FALSE if this is not started as a service |