src/server/daemon/httplistener.h

changeset 36
450d2d5f4735
parent 19
d680536f8c2f
child 37
360b9aabe17e
equal deleted inserted replaced
35:4417619a9bbd 36:450d2d5f4735
29 #ifndef HTTPLISTENER_H 29 #ifndef HTTPLISTENER_H
30 #define HTTPLISTENER_H 30 #define HTTPLISTENER_H
31 31
32 #include "sessionhandler.h" 32 #include "sessionhandler.h"
33 33
34 #include "config.h"
35
34 #ifdef __cplusplus 36 #ifdef __cplusplus
35 extern "C" { 37 extern "C" {
36 #endif 38 #endif
37 39
38 /* HttpListener typedef in nsapi.h */ 40 /* HttpListener typedef in nsapi.h */
43 union vs { 45 union vs {
44 VirtualServer *vs; 46 VirtualServer *vs;
45 char *vs_name; 47 char *vs_name;
46 }; 48 };
47 struct _listener_config { 49 struct _listener_config {
48 sstr_t name; 50 ServerConfiguration *cfg;
49 sstr_t vs; 51 sstr_t name;
50 char *address; 52 sstr_t vs;
51 int port; 53 char *address;
52 int nacceptors; 54 int port;
55 int nacceptors;
53 }; 56 };
54 57
55 struct _acceptor { 58 struct _acceptor {
56 pthread_t tid; 59 pthread_t tid;
57 HttpListener *listener; 60 HttpListener *listener;
58 }; 61 };
59 62
60 struct _http_listener { 63 struct _http_listener {
61 sstr_t name; 64 ServerConfiguration *cfg;
62 union vs default_vs; 65 sstr_t name;
63 int port; 66 union vs default_vs;
64 int server_socket; 67 int port;
65 Acceptor **acceptors; 68 int server_socket;
66 int nacceptors; 69 SessionHandler *session_handler;
67 SessionHandler *session_handler; 70 HttpListener *next;
71 Acceptor **acceptors;
72 int nacceptors;
73 uint32_t ref; // reference counter
68 }; 74 };
69 75
70 int start_all_listener(); 76 int start_all_listener();
71 77
78 HttpListener* http_listener_create(ListenerConfig *conf);
79
80 // used by http_listener_create
72 HttpListener* http_listener_new(ListenerConfig *conf); 81 HttpListener* http_listener_new(ListenerConfig *conf);
73 82
74 int http_listener_start(HttpListener *listener); 83 int http_listener_start(HttpListener *listener);
84
85 void http_listener_ref(HttpListener *listener);
86 void http_listener_unref(HttpListener *listener);
75 87
76 Acceptor* acceptor_new(HttpListener *listener); 88 Acceptor* acceptor_new(HttpListener *listener);
77 89
78 void acceptor_start(Acceptor *a); 90 void acceptor_start(Acceptor *a);
79 91

mercurial