mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-30 05:51:26 +00:00
transfused: keep a linked list of open connections
Signed-off-by: David Sheets <dsheets@docker.com>
This commit is contained in:
parent
b10d61a94b
commit
85f401ac79
@ -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,
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user