packages: pound/pound.spec, pound/pound-openssl.patch (NEW) - up to 2.5

arekm arekm at pld-linux.org
Mon Apr 26 10:54:50 CEST 2010


Author: arekm                        Date: Mon Apr 26 08:54:50 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- up to 2.5

---- Files affected:
packages/pound:
   pound.spec (1.74 -> 1.75) , pound-openssl.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/pound/pound.spec
diff -u packages/pound/pound.spec:1.74 packages/pound/pound.spec:1.75
--- packages/pound/pound.spec:1.74	Mon Apr 26 09:45:30 2010
+++ packages/pound/pound.spec	Mon Apr 26 10:54:45 2010
@@ -2,17 +2,18 @@
 Summary:	Pound - reverse-proxy and load-balancer
 Summary(pl.UTF-8):	Pound - reverse-proxy i load-balancer
 Name:		pound
-Version:	2.4.4
-Release:	4
+Version:	2.5
+Release:	1
 License:	GPL
 Group:		Networking/Daemons
 Source0:	http://www.apsis.ch/pound/Pound-%{version}.tgz
-# Source0-md5:	013144a9fef3302d3691617aedc0d438
+# Source0-md5:	8a39f5902094619afcda7d12d9d8342c
 Patch0:		%{name}-hash-UL.patch
 Patch1:		%{name}-logfile.patch
 Patch2:		%{name}-daemonize.patch
 Patch3:		%{name}-log-notice.patch
 Patch4:		%{name}-man.patch
+Patch5:		%{name}-openssl.patch
 Source1:	%{name}.cfg
 Source2:	%{name}.init
 Source3:	%{name}.sysconfig
@@ -61,6 +62,7 @@
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
 
 %build
 cp -f /usr/share/automake/config.sub .
@@ -133,6 +135,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.75  2010/04/26 08:54:45  arekm
+- up to 2.5
+
 Revision 1.74  2010/04/26 07:45:30  arekm
 - release 4
 

================================================================
Index: packages/pound/pound-openssl.patch
diff -u /dev/null packages/pound/pound-openssl.patch:1.1
--- /dev/null	Mon Apr 26 10:54:50 2010
+++ packages/pound/pound-openssl.patch	Mon Apr 26 10:54:45 2010
@@ -0,0 +1,290 @@
+diff -up Pound-2.5/config.c.openssl Pound-2.5/config.c
+--- Pound-2.5/config.c.openssl	2010-02-10 12:23:09.000000000 +0100
++++ Pound-2.5/config.c	2010-02-10 12:23:07.000000000 +0100
+@@ -431,14 +431,22 @@ t_hash(const TABNODE *e)
+         res = (res ^ *k++) * 16777619;
+     return res;
+ }
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++static IMPLEMENT_LHASH_HASH_FN(t, TABNODE)
++#else
+ static IMPLEMENT_LHASH_HASH_FN(t_hash, const TABNODE *)
++#endif
+ 
+ static int
+ t_cmp(const TABNODE *d1, const TABNODE *d2)
+ {
+     return strcmp(d1->key, d2->key);
+ }
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++static IMPLEMENT_LHASH_COMP_FN(t, TABNODE)
++#else
+ static IMPLEMENT_LHASH_COMP_FN(t_cmp, const TABNODE *)
++#endif
+ 
+ /*
+  * parse a service
+@@ -460,7 +468,11 @@ parse_service(const char *svc_name)
+     pthread_mutex_init(&res->mut, NULL);
+     if(svc_name)
+         strncpy(res->name, svc_name, KEY_SIZE);
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++    if((res->sessions = LHM_lh_new(TABNODE, t)) == NULL)
++#else
+     if((res->sessions = lh_new(LHASH_HASH_FN(t_hash), LHASH_COMP_FN(t_cmp))) == NULL)
++#endif
+         conf_err("lh_new failed - aborted");
+     ign_case = ignore_case;
+     while(conf_fgets(lin, MAXBUF)) {
+diff -up Pound-2.5/pound.h.openssl Pound-2.5/pound.h
+--- Pound-2.5/pound.h.openssl	2010-02-02 12:49:02.000000000 +0100
++++ Pound-2.5/pound.h	2010-02-10 12:15:18.000000000 +0100
+@@ -322,6 +322,10 @@ typedef struct _tn {
+ /* maximal session key size */
+ #define KEY_SIZE    127
+ 
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++DECLARE_LHASH_OF(TABNODE);
++#endif
++
+ /* service definition */
+ typedef struct _service {
+     char                name[KEY_SIZE + 1]; /* symbolic name */
+@@ -337,7 +341,11 @@ typedef struct _service {
+     int                 sess_ttl;   /* session time-to-live */
+     regex_t             sess_start; /* pattern to identify the session data */
+     regex_t             sess_pat;   /* pattern to match the session data */
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++    LHASH_OF(TABNODE)   *sessions;  /* currently active sessions */
++#else
+     LHASH               *sessions;  /* currently active sessions */
++#endif
+     int                 dynscale;   /* true if the back-ends should be dynamically rescaled */
+     int                 disabled;   /* true if the service is disabled */
+     struct _service     *next;
+diff -up Pound-2.5/svc.c.openssl Pound-2.5/svc.c
+--- Pound-2.5/svc.c.openssl	2010-02-02 12:49:02.000000000 +0100
++++ Pound-2.5/svc.c	2010-02-10 12:13:29.000000000 +0100
+@@ -27,12 +27,17 @@
+ 
+ #include    "pound.h"
+ 
++#ifndef LHASH_OF
++#define LHASH_OF(x) LHASH
++#define CHECKED_LHASH_OF(type, h) h
++#endif
++
+ /*
+  * Add a new key/content pair to a hash table
+  * the table should be already locked
+  */
+ static void
+-t_add(LHASH *const tab, const char *key, const void *content, const size_t cont_len)
++t_add(LHASH_OF(TABNODE) *const tab, const char *key, const void *content, const size_t cont_len)
+ {
+     TABNODE *t, *old;
+ 
+@@ -53,7 +58,11 @@ t_add(LHASH *const tab, const char *key,
+     }
+     memcpy(t->content, content, cont_len);
+     t->last_acc = time(NULL);
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++    if((old = LHM_lh_insert(TABNODE, tab, t)) != NULL) {
++#else
+     if((old = (TABNODE *)lh_insert(tab, t)) != NULL) {
++#endif
+         free(old->key);
+         free(old->content);
+         free(old);
+@@ -68,12 +77,16 @@ t_add(LHASH *const tab, const char *key,
+  * side-effect: update the time of last access
+  */
+ static void *
+-t_find(LHASH *const tab, char *const key)
++t_find(LHASH_OF(TABNODE) *const tab, char *const key)
+ {
+     TABNODE t, *res;
+ 
+     t.key = key;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++    if((res = LHM_lh_retrieve(TABNODE, tab, &t)) != NULL) {
++#else
+     if((res = (TABNODE *)lh_retrieve(tab, &t)) != NULL) {
++#endif
+         res->last_acc = time(NULL);
+         return res->content;
+     }
+@@ -84,12 +97,16 @@ t_find(LHASH *const tab, char *const key
+  * Delete a key
+  */
+ static void
+-t_remove(LHASH *const tab, char *const key)
++t_remove(LHASH_OF(TABNODE) *const tab, char *const key)
+ {
+     TABNODE t, *res;
+ 
+     t.key = key;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++    if((res = LHM_lh_delete(TABNODE, tab, &t)) != NULL) {
++#else
+     if((res = (TABNODE *)lh_delete(tab, &t)) != NULL) {
++#endif
+         free(res->key);
+         free(res->content);
+         free(res);
+@@ -98,59 +115,75 @@ t_remove(LHASH *const tab, char *const k
+ }
+ 
+ typedef struct  {
+-    LHASH   *tab;
++    LHASH_OF(TABNODE) *tab;
+     time_t  lim;
+     void    *content;
+     int     cont_len;
+ }   ALL_ARG;
+ 
+ static void
+-t_old(TABNODE *t, void *arg)
++t_old_doall_arg(TABNODE *t, ALL_ARG *a)
+ {
+-    ALL_ARG *a;
+-
+-    a = (ALL_ARG *)arg;
+     if(t->last_acc < a->lim)
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++        LHM_lh_delete(TABNODE, a->tab, t);
++#else
+         lh_delete(a->tab, t);
++#endif
+     return;
+ }
+-IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, void *)
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE, ALL_ARG)
++#else
++#define t_old t_old_doall_arg
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, ALL_ARG *)
++#endif
+ 
+ /*
+  * Expire all old nodes
+  */
+ static void
+-t_expire(LHASH *const tab, const time_t lim)
++t_expire(LHASH_OF(TABNODE) *const tab, const time_t lim)
+ {
+     ALL_ARG a;
+     int down_load;
+ 
+     a.tab = tab;
+     a.lim = lim;
+-    down_load = tab->down_load;
+-    tab->down_load = 0;
++    down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load;
++    CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++    LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_old), ALL_ARG, &a);
++#else
+     lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_old), &a);
+-    tab->down_load = down_load;
++#endif
++    CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load;
+     return;
+ }
+ 
+ static void
+-t_cont(TABNODE *t, void *arg)
++t_cont_doall_arg(TABNODE *t, ALL_ARG *a)
+ {
+-    ALL_ARG *a;
+-
+-    a = (ALL_ARG *)arg;
+     if(memcmp(t->content, a->content, a->cont_len) == 0)
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++        LHM_lh_delete(TABNODE, a->tab, t);
++#else
+         lh_delete(a->tab, t);
++#endif
+     return;
+ }
+-IMPLEMENT_LHASH_DOALL_ARG_FN(t_cont, TABNODE *, void *)
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_cont, TABNODE, ALL_ARG)
++#else
++#define t_cont t_cont_doall_arg
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_cont, TABNODE *, ALL_ARG *)
++#endif
+ 
+ /*
+  * Remove all nodes with the given content
+  */
+ static void
+-t_clean(LHASH *const tab, void *const content, const size_t cont_len)
++t_clean(LHASH_OF(TABNODE) *const tab, void *const content, const size_t cont_len)
+ {
+     ALL_ARG a;
+     int down_load;
+@@ -158,10 +191,14 @@ t_clean(LHASH *const tab, void *const co
+     a.tab = tab;
+     a.content = content;
+     a.cont_len = cont_len;
+-    down_load = tab->down_load;
+-    tab->down_load = 0;
++    down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load;
++    CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++    LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_cont), ALL_ARG, &a);
++#else
+     lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_cont), &a);
+-    tab->down_load = down_load;
++#endif
++    CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load;
+     return;
+ }
+ 
+@@ -1410,13 +1447,11 @@ typedef struct  {
+ }   DUMP_ARG;
+ 
+ static void
+-t_dump(TABNODE *t, void *arg)
++t_dump_doall_arg(TABNODE *t, DUMP_ARG *a)
+ {
+-    DUMP_ARG    *a;
+     BACKEND     *be, *bep;
+     int         n_be, sz;
+ 
+-    a = (DUMP_ARG *)arg;
+     memcpy(&bep, t->content, sizeof(bep));
+     for(n_be = 0, be = a->backends; be; be = be->next, n_be++)
+         if(be == bep)
+@@ -1432,19 +1467,28 @@ t_dump(TABNODE *t, void *arg)
+     return;
+ }
+ 
+-IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE *, void *)
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE, DUMP_ARG)
++#else
++#define t_dump t_dump_doall_arg
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE *, DUMP_ARG *)
++#endif
+ 
+ /*
+  * write sessions to the control socket
+  */
+ static void
+-dump_sess(const int control_sock, LHASH *const sess, BACKEND *const backends)
++dump_sess(const int control_sock, LHASH_OF(TABNODE) *const sess, BACKEND *const backends)
+ {
+     DUMP_ARG a;
+ 
+     a.control_sock = control_sock;
+     a.backends = backends;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++    LHM_lh_doall_arg(TABNODE, sess, LHASH_DOALL_ARG_FN(t_dump), DUMP_ARG, &a);
++#else
+     lh_doall_arg(sess, LHASH_DOALL_ARG_FN(t_dump), &a);
++#endif
+     return;
+ }
+ 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/pound/pound.spec?r1=1.74&r2=1.75&f=u



More information about the pld-cvs-commit mailing list