Pazpar2 1.4.4-2 for squeeze
[pazpar2-moved-to-github.git] / src / http.h
index f24147b..01c0e20 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Pazpar2.
-   Copyright (C) 2006-2009 Index Data
+   Copyright (C) 2006-2010 Index Data
 
 Pazpar2 is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -20,19 +20,16 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #ifndef HTTP_H
 #define HTTP_H
 
+#include <yaz/wrbuf.h>
+
 #include "eventl.h"
 // Generic I/O buffer
-struct http_buf
-{
-#define HTTP_BUF_SIZE 4096
-    char buf[4096];
-    int offset;
-    int len;
-    struct http_buf *next;
-};
-
+struct http_buf;
 typedef struct http_channel_observer_s *http_channel_observer_t;
 
+typedef struct http_server *http_server_t;
+typedef struct http_sessions *http_sessions_t;
+
 struct http_channel
 {
     IOCHAN iochan;
@@ -54,6 +51,8 @@ struct http_channel
     char addr[20]; // forwarded address
     http_channel_observer_t observers;
     struct conf_server *server;
+    http_server_t http_server;
+    http_sessions_t http_sessions;
 };
 
 struct http_proxy //  attached to iochan for proxy connection
@@ -101,6 +100,9 @@ struct http_response
     char *content_type;
 };
 
+void http_mutex_init(struct conf_server *server);
+void http_server_destroy(http_server_t hs);
+
 void http_set_proxyaddr(const char *url, struct conf_server *ser);
 int http_init(const char *addr, struct conf_server *ser);
 void http_close_server(struct conf_server *ser);
@@ -130,6 +132,9 @@ struct http_channel *http_channel_observer_chan(http_channel_observer_t obs);
 
 void http_command(struct http_channel *c);
 
+http_sessions_t http_sessions_create(void);
+void http_sessions_destroy(http_sessions_t hs);
+
 #endif
 
 /*