- c = iochan_create(l, http_accept, EVENT_INPUT | EVENT_EXCEPT);
- pazpar2_add_channel(c);
+ if (record_fname)
+ {
+ record_file = fopen(record_fname, "wb");
+ if (!record_file)
+ {
+ yaz_log(YLOG_FATAL|YLOG_ERRNO, "fopen %s", record_fname);
+ CLOSESOCKET(s);
+ return 1;
+ }
+ }
+ server->http_server = http_server_create();
+
+ server->http_server->record_file = record_file;
+ server->http_server->listener_socket = s;
+
+ c = iochan_create(s, http_accept, EVENT_INPUT | EVENT_EXCEPT, "http_server");
+ iochan_setdata(c, server);
+
+ iochan_add(server->iochan_man, c);
+ return 0;
+}
+
+void http_close_server(struct conf_server *server)
+{
+ /* break the event_loop (select) by closing down the HTTP listener sock */
+ if (server->http_server->listener_socket)
+ {
+#ifdef WIN32
+ closesocket(server->http_server->listener_socket);
+#else
+ close(server->http_server->listener_socket);
+#endif
+ }