diff --git a/src/sexpots/sexpots.c b/src/sexpots/sexpots.c index d17dfdf1d5134fcd561c1299f3a60be0328adf2d..031c062519b182777e8cd2eb2300ed04cc5cad2f 100644 --- a/src/sexpots/sexpots.c +++ b/src/sexpots/sexpots.c @@ -957,6 +957,13 @@ char* chr(BYTE ch, char* str, size_t size) return str; } +void sendbuf(SOCKET sock, void* buf, int len) +{ + int wr = sendsocket(sock, buf, len); + if (wr != len) + lprintf(LOG_ERR, "!send returned %d instead of %d", wr, len); +} + /****************************************************************************/ /****************************************************************************/ void input_thread(void* arg) @@ -973,8 +980,8 @@ void input_thread(void* arg) if(com_debug) lprintf(LOG_DEBUG, "Received char from COM port (%s): %s", com_dev, chr(ch, dbg, sizeof(dbg))); if(telnet && ch==TELNET_IAC) - sendsocket(sock, &ch, sizeof(ch)); /* escape Telnet IAC char (255) when in telnet mode */ - sendsocket(sock, &ch, sizeof(ch)); + sendbuf(sock, &ch, sizeof(ch)); /* escape Telnet IAC char (255) when in telnet mode */ + sendbuf(sock, &ch, sizeof(ch)); bytes_received++; } lprintf(LOG_DEBUG,"Input thread terminated"); @@ -1061,7 +1068,7 @@ void ident_server_thread(void* arg) /* example response: "40931,23:USERID:UNIX:cyan" */ SAFEPRINTF4(response,"%s:%s:%s %s\r\n" ,request, ident_response, cid_number, cid_name); - sendsocket(client_socket,response,strlen(response)); + sendbuf(client_socket,response,strlen(response)); } else lprintf(LOG_DEBUG,"ident recv=%d %d", rd, ERROR_VALUE); } @@ -1077,19 +1084,19 @@ void ident_server_thread(void* arg) static void send_telnet_cmd(uchar cmd, uchar opt) { char buf[16]; - + if(cmd<TELNET_WILL) { if(debug_telnet) lprintf(LOG_INFO,"TX Telnet command: %s" ,telnet_cmd_desc(cmd)); sprintf(buf,"%c%c",TELNET_IAC,cmd); - sendsocket(sock,buf,2); + sendbuf(sock,buf,2); } else { if(debug_telnet) lprintf(LOG_INFO,"TX Telnet command: %s %s" ,telnet_cmd_desc(cmd), telnet_opt_desc(opt)); sprintf(buf,"%c%c%c",TELNET_IAC,cmd,opt); - sendsocket(sock,buf,3); + sendbuf(sock,buf,3); } } @@ -1164,7 +1171,7 @@ BYTE* telnet_interpret(BYTE* inbuf, int inlen, BYTE* outbuf, int *outlen) ,TELNET_IAC,TELNET_SE); if(debug_telnet) lprintf(LOG_INFO,"TX Telnet command: Terminal Type is %s", termtype); - sendsocket(sock,buf,len); + sendbuf(sock,buf,len); /* request_telnet_opt(TELNET_WILL, TELNET_TERM_SPEED); */ } else if(option==TELNET_TERM_SPEED && telnet_cmd[3]==TELNET_TERM_SEND) { char buf[sizeof(termspeed) + 32]; @@ -1175,7 +1182,7 @@ BYTE* telnet_interpret(BYTE* inbuf, int inlen, BYTE* outbuf, int *outlen) ,TELNET_IAC,TELNET_SE); if(debug_telnet) lprintf(LOG_INFO,"TX Telnet command: Terminal Speed is %s", termspeed); - sendsocket(sock,buf,len); + sendbuf(sock,buf,len); } telnet_cmdlen=0; @@ -1211,7 +1218,7 @@ BYTE* telnet_interpret(BYTE* inbuf, int inlen, BYTE* outbuf, int *outlen) ,TELNET_IAC,TELNET_SE); if(debug_telnet) lprintf(LOG_INFO,"TX Telnet command: Location is %s %s", cid_number, cid_name); - sendsocket(sock,buf,len); + sendbuf(sock,buf,len); } else send_telnet_cmd(telnet_opt_ack(command),option); break;