]> git.pld-linux.org Git - packages/pound.git/blob - pound-openssl.patch
- up to 2.5
[packages/pound.git] / pound-openssl.patch
1 diff -up Pound-2.5/config.c.openssl Pound-2.5/config.c
2 --- Pound-2.5/config.c.openssl  2010-02-10 12:23:09.000000000 +0100
3 +++ Pound-2.5/config.c  2010-02-10 12:23:07.000000000 +0100
4 @@ -431,14 +431,22 @@ t_hash(const TABNODE *e)
5          res = (res ^ *k++) * 16777619;
6      return res;
7  }
8 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
9 +static IMPLEMENT_LHASH_HASH_FN(t, TABNODE)
10 +#else
11  static IMPLEMENT_LHASH_HASH_FN(t_hash, const TABNODE *)
12 +#endif
13  
14  static int
15  t_cmp(const TABNODE *d1, const TABNODE *d2)
16  {
17      return strcmp(d1->key, d2->key);
18  }
19 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
20 +static IMPLEMENT_LHASH_COMP_FN(t, TABNODE)
21 +#else
22  static IMPLEMENT_LHASH_COMP_FN(t_cmp, const TABNODE *)
23 +#endif
24  
25  /*
26   * parse a service
27 @@ -460,7 +468,11 @@ parse_service(const char *svc_name)
28      pthread_mutex_init(&res->mut, NULL);
29      if(svc_name)
30          strncpy(res->name, svc_name, KEY_SIZE);
31 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
32 +    if((res->sessions = LHM_lh_new(TABNODE, t)) == NULL)
33 +#else
34      if((res->sessions = lh_new(LHASH_HASH_FN(t_hash), LHASH_COMP_FN(t_cmp))) == NULL)
35 +#endif
36          conf_err("lh_new failed - aborted");
37      ign_case = ignore_case;
38      while(conf_fgets(lin, MAXBUF)) {
39 diff -up Pound-2.5/pound.h.openssl Pound-2.5/pound.h
40 --- Pound-2.5/pound.h.openssl   2010-02-02 12:49:02.000000000 +0100
41 +++ Pound-2.5/pound.h   2010-02-10 12:15:18.000000000 +0100
42 @@ -322,6 +322,10 @@ typedef struct _tn {
43  /* maximal session key size */
44  #define KEY_SIZE    127
45  
46 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
47 +DECLARE_LHASH_OF(TABNODE);
48 +#endif
49 +
50  /* service definition */
51  typedef struct _service {
52      char                name[KEY_SIZE + 1]; /* symbolic name */
53 @@ -337,7 +341,11 @@ typedef struct _service {
54      int                 sess_ttl;   /* session time-to-live */
55      regex_t             sess_start; /* pattern to identify the session data */
56      regex_t             sess_pat;   /* pattern to match the session data */
57 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
58 +    LHASH_OF(TABNODE)   *sessions;  /* currently active sessions */
59 +#else
60      LHASH               *sessions;  /* currently active sessions */
61 +#endif
62      int                 dynscale;   /* true if the back-ends should be dynamically rescaled */
63      int                 disabled;   /* true if the service is disabled */
64      struct _service     *next;
65 diff -up Pound-2.5/svc.c.openssl Pound-2.5/svc.c
66 --- Pound-2.5/svc.c.openssl     2010-02-02 12:49:02.000000000 +0100
67 +++ Pound-2.5/svc.c     2010-02-10 12:13:29.000000000 +0100
68 @@ -27,12 +27,17 @@
69  
70  #include    "pound.h"
71  
72 +#ifndef LHASH_OF
73 +#define LHASH_OF(x) LHASH
74 +#define CHECKED_LHASH_OF(type, h) h
75 +#endif
76 +
77  /*
78   * Add a new key/content pair to a hash table
79   * the table should be already locked
80   */
81  static void
82 -t_add(LHASH *const tab, const char *key, const void *content, const size_t cont_len)
83 +t_add(LHASH_OF(TABNODE) *const tab, const char *key, const void *content, const size_t cont_len)
84  {
85      TABNODE *t, *old;
86  
87 @@ -53,7 +58,11 @@ t_add(LHASH *const tab, const char *key,
88      }
89      memcpy(t->content, content, cont_len);
90      t->last_acc = time(NULL);
91 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
92 +    if((old = LHM_lh_insert(TABNODE, tab, t)) != NULL) {
93 +#else
94      if((old = (TABNODE *)lh_insert(tab, t)) != NULL) {
95 +#endif
96          free(old->key);
97          free(old->content);
98          free(old);
99 @@ -68,12 +77,16 @@ t_add(LHASH *const tab, const char *key,
100   * side-effect: update the time of last access
101   */
102  static void *
103 -t_find(LHASH *const tab, char *const key)
104 +t_find(LHASH_OF(TABNODE) *const tab, char *const key)
105  {
106      TABNODE t, *res;
107  
108      t.key = key;
109 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
110 +    if((res = LHM_lh_retrieve(TABNODE, tab, &t)) != NULL) {
111 +#else
112      if((res = (TABNODE *)lh_retrieve(tab, &t)) != NULL) {
113 +#endif
114          res->last_acc = time(NULL);
115          return res->content;
116      }
117 @@ -84,12 +97,16 @@ t_find(LHASH *const tab, char *const key
118   * Delete a key
119   */
120  static void
121 -t_remove(LHASH *const tab, char *const key)
122 +t_remove(LHASH_OF(TABNODE) *const tab, char *const key)
123  {
124      TABNODE t, *res;
125  
126      t.key = key;
127 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
128 +    if((res = LHM_lh_delete(TABNODE, tab, &t)) != NULL) {
129 +#else
130      if((res = (TABNODE *)lh_delete(tab, &t)) != NULL) {
131 +#endif
132          free(res->key);
133          free(res->content);
134          free(res);
135 @@ -98,59 +115,75 @@ t_remove(LHASH *const tab, char *const k
136  }
137  
138  typedef struct  {
139 -    LHASH   *tab;
140 +    LHASH_OF(TABNODE) *tab;
141      time_t  lim;
142      void    *content;
143      int     cont_len;
144  }   ALL_ARG;
145  
146  static void
147 -t_old(TABNODE *t, void *arg)
148 +t_old_doall_arg(TABNODE *t, ALL_ARG *a)
149  {
150 -    ALL_ARG *a;
151 -
152 -    a = (ALL_ARG *)arg;
153      if(t->last_acc < a->lim)
154 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
155 +        LHM_lh_delete(TABNODE, a->tab, t);
156 +#else
157          lh_delete(a->tab, t);
158 +#endif
159      return;
160  }
161 -IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, void *)
162 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
163 +IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE, ALL_ARG)
164 +#else
165 +#define t_old t_old_doall_arg
166 +IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, ALL_ARG *)
167 +#endif
168  
169  /*
170   * Expire all old nodes
171   */
172  static void
173 -t_expire(LHASH *const tab, const time_t lim)
174 +t_expire(LHASH_OF(TABNODE) *const tab, const time_t lim)
175  {
176      ALL_ARG a;
177      int down_load;
178  
179      a.tab = tab;
180      a.lim = lim;
181 -    down_load = tab->down_load;
182 -    tab->down_load = 0;
183 +    down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load;
184 +    CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0;
185 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
186 +    LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_old), ALL_ARG, &a);
187 +#else
188      lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_old), &a);
189 -    tab->down_load = down_load;
190 +#endif
191 +    CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load;
192      return;
193  }
194  
195  static void
196 -t_cont(TABNODE *t, void *arg)
197 +t_cont_doall_arg(TABNODE *t, ALL_ARG *a)
198  {
199 -    ALL_ARG *a;
200 -
201 -    a = (ALL_ARG *)arg;
202      if(memcmp(t->content, a->content, a->cont_len) == 0)
203 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
204 +        LHM_lh_delete(TABNODE, a->tab, t);
205 +#else
206          lh_delete(a->tab, t);
207 +#endif
208      return;
209  }
210 -IMPLEMENT_LHASH_DOALL_ARG_FN(t_cont, TABNODE *, void *)
211 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
212 +IMPLEMENT_LHASH_DOALL_ARG_FN(t_cont, TABNODE, ALL_ARG)
213 +#else
214 +#define t_cont t_cont_doall_arg
215 +IMPLEMENT_LHASH_DOALL_ARG_FN(t_cont, TABNODE *, ALL_ARG *)
216 +#endif
217  
218  /*
219   * Remove all nodes with the given content
220   */
221  static void
222 -t_clean(LHASH *const tab, void *const content, const size_t cont_len)
223 +t_clean(LHASH_OF(TABNODE) *const tab, void *const content, const size_t cont_len)
224  {
225      ALL_ARG a;
226      int down_load;
227 @@ -158,10 +191,14 @@ t_clean(LHASH *const tab, void *const co
228      a.tab = tab;
229      a.content = content;
230      a.cont_len = cont_len;
231 -    down_load = tab->down_load;
232 -    tab->down_load = 0;
233 +    down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load;
234 +    CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0;
235 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
236 +    LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_cont), ALL_ARG, &a);
237 +#else
238      lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_cont), &a);
239 -    tab->down_load = down_load;
240 +#endif
241 +    CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load;
242      return;
243  }
244  
245 @@ -1410,13 +1447,11 @@ typedef struct  {
246  }   DUMP_ARG;
247  
248  static void
249 -t_dump(TABNODE *t, void *arg)
250 +t_dump_doall_arg(TABNODE *t, DUMP_ARG *a)
251  {
252 -    DUMP_ARG    *a;
253      BACKEND     *be, *bep;
254      int         n_be, sz;
255  
256 -    a = (DUMP_ARG *)arg;
257      memcpy(&bep, t->content, sizeof(bep));
258      for(n_be = 0, be = a->backends; be; be = be->next, n_be++)
259          if(be == bep)
260 @@ -1432,19 +1467,28 @@ t_dump(TABNODE *t, void *arg)
261      return;
262  }
263  
264 -IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE *, void *)
265 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
266 +IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE, DUMP_ARG)
267 +#else
268 +#define t_dump t_dump_doall_arg
269 +IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE *, DUMP_ARG *)
270 +#endif
271  
272  /*
273   * write sessions to the control socket
274   */
275  static void
276 -dump_sess(const int control_sock, LHASH *const sess, BACKEND *const backends)
277 +dump_sess(const int control_sock, LHASH_OF(TABNODE) *const sess, BACKEND *const backends)
278  {
279      DUMP_ARG a;
280  
281      a.control_sock = control_sock;
282      a.backends = backends;
283 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
284 +    LHM_lh_doall_arg(TABNODE, sess, LHASH_DOALL_ARG_FN(t_dump), DUMP_ARG, &a);
285 +#else
286      lh_doall_arg(sess, LHASH_DOALL_ARG_FN(t_dump), &a);
287 +#endif
288      return;
289  }
290  
This page took 0.086189 seconds and 3 git commands to generate.