diff -ruN haproxy-1.3.15.2.orig/include/types/session.h haproxy-1.3.15.2/include/types/session.h --- haproxy-1.3.15.2.orig/include/types/session.h 2008-06-21 21:59:05.000000000 +0200 +++ haproxy-1.3.15.2/include/types/session.h 2008-07-04 20:42:50.000000000 +0200 @@ -140,6 +140,7 @@ } stats; } data_ctx; /* used by produce_content to dump the stats right now */ unsigned int uniq_id; /* unique ID used for the traces */ + appsess *hashptr; }; diff -ruN haproxy-1.3.15.2.orig/src/proto_http.c haproxy-1.3.15.2/src/proto_http.c --- haproxy-1.3.15.2.orig/src/proto_http.c 2008-06-21 21:59:05.000000000 +0200 +++ haproxy-1.3.15.2/src/proto_http.c 2008-07-08 19:14:08.000000000 +0200 @@ -4759,6 +4759,17 @@ /* keep the link from this header to next one */ old_idx = cur_idx; } /* end of cookie processing on this header */ + + /* BFR */ + if(1==1 && t->hashptr != NULL && t->hashptr->serverid == NULL) + { + t->hashptr->serverid = malloc(sizeof(char)*(strlen(t->srv->id) + 1)); + memcpy(t->hashptr->serverid, t->srv->id, strlen(t->srv->id) + 1); + tv_add(&t->hashptr->expire, &now, &t->be->timeout.appsession); +#if defined(DEBUG_HASH) + appsession_hash_dump(&(t->be->htbl_proxy)); +#endif + } /* BFR TrustClientUrlParam */ } @@ -4862,13 +4873,25 @@ char *request_line; if (t->be->appsession_name == NULL || - (t->txn.meth != HTTP_METH_GET && t->txn.meth != HTTP_METH_POST) || - (request_line = memchr(begin, ';', len)) == NULL || - ((1 + t->be->appsession_name_len + 1 + t->be->appsession_len) > (begin + len - request_line))) + (t->txn.meth != HTTP_METH_GET && t->txn.meth != HTTP_ME