transfused: keep a linked list of open connections

Signed-off-by: David Sheets <dsheets@docker.com>
This commit is contained in:
David Sheets 2017-01-30 10:47:46 +00:00
parent b10d61a94b
commit 85f401ac79
2 changed files with 11 additions and 2 deletions

View File

@ -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", &params->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,

View File

@ -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;