2 * Copyright (c) 2007 Ry Dahl <ry.d4hl@gmail.com>
7 #include "tcp_server.h"
8 #include "mongrel/parser.h"
13 typedef struct drum_server drum_server
;
14 typedef struct drum_request drum_request
;
16 #define DRUM_LOG_DOMAIN "Drum"
17 #define drum_error(str, ...) \
18 g_log(DRUM_LOG_DOMAIN, G_LOG_LEVEL_ERROR, str, ## __VA_ARGS__);
23 typedef void (*drum_request_cb_t
)(drum_request
*, void*);
25 drum_server
* drum_server_new();
26 void drum_server_free(drum_server
*);
27 void drum_server_stop(drum_server
*);
28 void drum_server_start(drum_server
*, char *host
, int port
, drum_request_cb_t
, void *request_cb_data
);
31 tcp_server
*tcp_server
;
32 void *request_cb_data
;
33 drum_request_cb_t request_cb
;
36 /*** Drum Request ***/
38 drum_request
* drum_request_new(drum_server
*, tcp_client
*);
39 void drum_request_free(drum_request
*);
45 GQueue
*env
; /* queue of drum_env_pairs */
49 typedef struct drum_env_pair
{
56 drum_env_pair
* drum_env_pair_new(const char *field
, size_t flen
, const char *value
, size_t vlen
);
57 #define drum_env_pair_new2(f,v) drum_env_pair_new(f,strlen(f),v,strlen(v))
58 #define drum_env_pair_free(pair) free(pair)