# include <unistd.h>
# include <sys/socket.h>
# include <netinet/in.h>
-# include <arpa/inet.h> // inet_ntop
+# include <netdb.h> // getaddrinfo
#endif
#define DONT_INCLUDE_SYSCALL_NAMES
#include "../syscalls.h"
Log_Debug("Server", "Worker %p", ClientPtr);
#if USE_TCP
-
while( *((volatile typeof(Client->Socket)*)&Client->Socket) == 0 )
;
Threads_SetThread( Client->ClientID );
perror("select");
continue ;
}
- Log_Debug("Server", "%p: rv=%i", Client, rv);
+// Log_Debug("Server", "%p: rv=%i", Client, rv);
if( FD_ISSET(Client->Socket, &fds) )
{
char lbuf[sizeof(tRequestHeader) + ciMaxParamCount*sizeof(tRequestValue)];
tRequestHeader *hdr = (void*)lbuf;
size_t len = recv(Client->Socket, (void*)hdr, sizeof(*hdr), 0);
- Log_Debug("Server", "%i bytes of header", len);
- if( len == 0 ) break;
+// Log_Debug("Server", "%i bytes of header", len);
+ if( len == 0 ) {
+ Log_Notice("Server", "Zero RX on %i (worker %p)", Client->Socket, Client);
+ break;
+ }
if( len == -1 ) {
perror("recv header");
// Log_Warning("Server", "recv() error - %s", strerror(errno));
if( hdr->NParams > 0 )
{
len = recv(Client->Socket, (void*)hdr->Params, hdr->NParams*sizeof(tRequestValue), 0);
- Log_Debug("Server", "%i bytes of params", len);
+// Log_Debug("Server", "%i bytes of params", len);
if( len != hdr->NParams*sizeof(tRequestValue) ) {
// Oops.
perror("recv params");
}
else
{
- Log_Debug("Server", "No params?");
+// Log_Debug("Server", "No params?");
}
// Get buffer size
while( rem )
{
len = recv(Client->Socket, ptr, rem, 0);
- Log_Debug("Server", "%i bytes of data", len);
+// Log_Debug("Server", "%i bytes of data", len);
if( len == -1 ) {
// Oops?
perror("recv data");
break;
}
}
- else
- Log_Debug("Server", "no data");
+// else
+// Log_Debug("Server", "no data");
int retlen;
tRequestHeader *retHeader;