From 85f401ac79bd949e5ce221471432df0c503a7f1d Mon Sep 17 00:00:00 2001 From: David Sheets Date: Mon, 30 Jan 2017 10:47:46 +0000 Subject: [PATCH] transfused: keep a linked list of open connections Signed-off-by: David Sheets --- alpine/packages/transfused/transfused.c | 3 +++ alpine/packages/transfused/transfused.h | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/alpine/packages/transfused/transfused.c b/alpine/packages/transfused/transfused.c index f4baf3513..11275ab71 100644 --- a/alpine/packages/transfused/transfused.c +++ b/alpine/packages/transfused/transfused.c @@ -1013,6 +1013,7 @@ void parse_parameters(int argc, char *argv[], parameters_t *params) params->data_sock = 0; params->ctl_sock = 0; lock_init("ctl_lock", ¶ms->ctl_lock, NULL); + params->connections = NULL; while ((c = getopt(argc, argv, ":p:d:s:f:l:")) != -1) { switch (c) { @@ -1105,6 +1106,8 @@ void serve(parameters_t *params) conn = (connection_t *)must_malloc("connection state", sizeof(connection_t)); conn->params = params; + conn->next = params->connections; + params->connections = conn; conn->mount_point = ""; conn->sock = accept(params->data_sock, diff --git a/alpine/packages/transfused/transfused.h b/alpine/packages/transfused/transfused.h index 268ffc075..65535afba 100644 --- a/alpine/packages/transfused/transfused.h +++ b/alpine/packages/transfused/transfused.h @@ -32,6 +32,8 @@ #define MOUNT_SUITABILITY_REPLY 4 #define TRANSFUSE_NOTIFY_CHANNEL 5 +struct connection; + typedef struct { char *server; char *socket; @@ -42,16 +44,20 @@ typedef struct { int ctl_sock; int data_sock; pthread_mutex_t ctl_lock; + struct connection *connections; } parameters_t; -typedef struct { +struct connection { + struct connection *next; parameters_t *params; char *type_descr; char *mount_point; struct sockaddr sa_client; socklen_t socklen_client; int sock; -} connection_t; +}; + +typedef struct connection connection_t; pthread_attr_t detached;