aboutsummaryrefslogtreecommitdiff
path: root/tools/data_server
diff options
context:
space:
mode:
authorcnlohr <lohr85@gmail.com>2017-02-25 16:20:42 -0500
committercnlohr <lohr85@gmail.com>2017-02-25 16:20:42 -0500
commit6fe8d04961c927d22a8b91e04d30450699867817 (patch)
tree9a55b346f33618f51f38d057ce1ff5d3b4c9fb84 /tools/data_server
parentf92f5dc93cbb53a99da51984541a7e4a70605639 (diff)
downloadlibsurvive-6fe8d04961c927d22a8b91e04d30450699867817.tar.gz
libsurvive-6fe8d04961c927d22a8b91e04d30450699867817.tar.bz2
Update code to allow for headless mode.
Diffstat (limited to 'tools/data_server')
-rw-r--r--tools/data_server/data_server.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/tools/data_server/data_server.c b/tools/data_server/data_server.c
index 29f5ead..5147d97 100644
--- a/tools/data_server/data_server.c
+++ b/tools/data_server/data_server.c
@@ -19,6 +19,7 @@
#define MAX_CONNS 32
int SocketList[MAX_CONNS];
+int droppedct[MAX_CONNS];
void error(char *msg) {
perror(msg);
@@ -44,10 +45,17 @@ void * SendThread( void * v )
int ss = send( sockc, buff, rd, MSG_DONTWAIT | MSG_NOSIGNAL );
if( ss < rd )
{
- fprintf( stderr, "Dropped %d\n", i );
- close( SocketList[i] );
- SocketList[i] = 0;
+ if( droppedct[i]++ > 20 )
+ {
+ fprintf( stderr, "Dropped %d\n", i );
+ close( SocketList[i] );
+ SocketList[i] = 0;
+ }
}
+ else
+ {
+ droppedct[i] = 0;
+ }
}
}
}
@@ -142,6 +150,7 @@ int main( int argc, char ** argv )
if( SocketList[il] == 0 )
{
SocketList[il] = childfd;
+ droppedct[il] = 0;
printf("Conn %s At %d\n",
hostaddrp, il);
break;