diff options
Diffstat (limited to 'web/server/static')
-rw-r--r-- | web/server/static/static-threaded.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/web/server/static/static-threaded.c b/web/server/static/static-threaded.c index 5dda27000..c432b9bf3 100644 --- a/web/server/static/static-threaded.c +++ b/web/server/static/static-threaded.c @@ -7,23 +7,26 @@ int web_client_timeout = DEFAULT_DISCONNECT_IDLE_WEB_CLIENTS_AFTER_SECONDS; int web_client_first_request_timeout = DEFAULT_TIMEOUT_TO_RECEIVE_FIRST_WEB_REQUEST; long web_client_streaming_rate_t = 0L; -// ---------------------------------------------------------------------------- -// high level web clients connection management - -static struct web_client *web_client_create_on_fd(int fd, const char *client_ip, const char *client_port, int port_acl) { +/* + * -------------------------------------------------------------------------------------------------------------------- + * Build web_client state from the pollinfo that describes an accepted connection. + */ +static struct web_client *web_client_create_on_fd(POLLINFO *pi) { struct web_client *w; w = web_client_get_from_cache_or_allocate(); - w->ifd = w->ofd = fd; + w->ifd = w->ofd = pi->fd; - strncpyz(w->client_ip, client_ip, sizeof(w->client_ip) - 1); - strncpyz(w->client_port, client_port, sizeof(w->client_port) - 1); + strncpyz(w->client_ip, pi->client_ip, sizeof(w->client_ip) - 1); + strncpyz(w->client_port, pi->client_port, sizeof(w->client_port) - 1); + strncpyz(w->client_host, pi->client_host, sizeof(w->client_host) - 1); if(unlikely(!*w->client_ip)) strcpy(w->client_ip, "-"); if(unlikely(!*w->client_port)) strcpy(w->client_port, "-"); - w->port_acl = port_acl; + w->port_acl = pi->port_acl; web_client_initialize_connection(w); + w->pollinfo_slot = pi->slot; return(w); } @@ -76,7 +79,7 @@ static void *web_server_file_add_callback(POLLINFO *pi, short int *events, void return w; } -static void web_werver_file_del_callback(POLLINFO *pi) { +static void web_server_file_del_callback(POLLINFO *pi) { struct web_client *w = (struct web_client *)pi->data; debug(D_WEB_CLIENT, "%llu: RELEASE FILE READ ON FD %d", w->id, pi->fd); @@ -138,7 +141,7 @@ static int web_server_file_write_callback(POLLINFO *pi, short int *events) { // web server clients static void *web_server_add_callback(POLLINFO *pi, short int *events, void *data) { - (void)data; + (void)data; // Supress warning on unused argument worker_private->connected++; @@ -149,10 +152,9 @@ static void *web_server_add_callback(POLLINFO *pi, short int *events, void *data *events = POLLIN; debug(D_WEB_CLIENT_ACCESS, "LISTENER on %d: new connection.", pi->fd); - struct web_client *w = web_client_create_on_fd(pi->fd, pi->client_ip, pi->client_port, pi->port_acl); - w->pollinfo_slot = pi->slot; + struct web_client *w = web_client_create_on_fd(pi); - if ( !strncmp(pi->client_port,"UNIX",4)){ + if (!strncmp(pi->client_port, "UNIX", 4)) { web_client_set_unix(w); } else { web_client_set_tcp(w); @@ -270,8 +272,9 @@ static int web_server_rcv_callback(POLLINFO *pi, short int *events) { , POLLINFO_FLAG_CLIENT_SOCKET , "FILENAME" , "" + , "" , web_server_file_add_callback - , web_werver_file_del_callback + , web_server_file_del_callback , web_server_file_read_callback , web_server_file_write_callback , (void *) w |