aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@operamail.com>2014-04-28 17:41:14 +0200
committerMattias Andrée <maandree@operamail.com>2014-04-28 17:41:14 +0200
commit6b556ce0dcb29fda17ecab9a0f9657f0bd32e06d (patch)
treeb64b0e6443f78e9fe43fa536418c1565ca35d0d2
parenthandle closing of sockets by peer (diff)
downloadmds-6b556ce0dcb29fda17ecab9a0f9657f0bd32e06d.tar.gz
mds-6b556ce0dcb29fda17ecab9a0f9657f0bd32e06d.tar.bz2
mds-6b556ce0dcb29fda17ecab9a0f9657f0bd32e06d.tar.xz
store the socket's state
Signed-off-by: Mattias Andrée <maandree@operamail.com>
-rw-r--r--src/mds-server.c2
-rw-r--r--src/mds-server.h5
2 files changed, 7 insertions, 0 deletions
diff --git a/src/mds-server.c b/src/mds-server.c
index a82c5e0..4cc3e03 100644
--- a/src/mds-server.c
+++ b/src/mds-server.c
@@ -332,6 +332,7 @@ void* slave_loop(void* data)
/* Fill information table. */
information->list_entry = entry;
information->socket_fd = socket_fd;
+ information->open = 1;
if (mds_message_initialise(&(information->message)))
{
perror(*argv);
@@ -356,6 +357,7 @@ void* slave_loop(void* data)
else if (errno == ECONNRESET)
{
r = mds_message_read(&(information->message), socket_fd);
+ information->open = 0;
if (r == 0)
{
/* TODO */
diff --git a/src/mds-server.h b/src/mds-server.h
index 5c41c82..7b03501 100644
--- a/src/mds-server.h
+++ b/src/mds-server.h
@@ -40,6 +40,11 @@ typedef struct client
int socket_fd;
/**
+ * Whether the socket is open
+ */
+ int open;
+
+ /**
* Message read buffer for the client
*/
mds_message_t message;