50 #include "httplistener.h" |
50 #include "httplistener.h" |
51 |
51 |
52 #include "session.h" |
52 #include "session.h" |
53 #include "configmanager.h" |
53 #include "configmanager.h" |
54 |
54 |
|
55 UcxMap *listener_map = NULL; |
55 |
56 |
56 int start_all_listener() { |
57 int start_all_listener() { |
57 ServerConfiguration *conf = cfgmgr_get_server_config(); |
58 ServerConfiguration *conf = cfgmgr_get_server_config(); |
58 UcxList *ls = conf->listeners; |
59 UcxList *ls = conf->listeners; |
59 while(ls) { |
60 while(ls) { |
65 return 0; |
66 return 0; |
66 } |
67 } |
67 |
68 |
68 |
69 |
69 HttpListener* http_listener_new(ListenerConfig *conf) { |
70 HttpListener* http_listener_new(ListenerConfig *conf) { |
|
71 if(listener_map == NULL) { |
|
72 listener_map = ucx_map_new(16); |
|
73 } |
|
74 |
|
75 HttpListener *fl = ucx_map_sstr_get(listener_map, conf->name); |
|
76 if(fl != NULL) { |
|
77 return fl; |
|
78 } |
|
79 |
70 HttpListener *listener = malloc(sizeof(HttpListener)); |
80 HttpListener *listener = malloc(sizeof(HttpListener)); |
71 listener->name = conf->name; |
81 listener->name = conf->name; |
72 listener->session_handler = create_basic_session_handler(); |
82 listener->session_handler = create_basic_session_handler(); |
73 listener->nacceptors = conf->nacceptors; |
83 listener->nacceptors = conf->nacceptors; |
|
84 ucx_map_sstr_put(listener_map, listener->name, listener); |
74 |
85 |
75 struct sockaddr_in servaddr; /* server address */ |
86 struct sockaddr_in servaddr; /* server address */ |
76 |
87 |
77 /* init address structure */ |
88 /* init address structure */ |
78 memset(&servaddr, 0, sizeof(servaddr)); |
89 memset(&servaddr, 0, sizeof(servaddr)); |