From 7a2a9f801ef2f1985084c1b5e23b1cd10ce70cba Mon Sep 17 00:00:00 2001 From: dbs Date: Fri, 29 Jan 2010 03:48:37 +0000 Subject: [PATCH] Backport r1906 from trunk: Provide a thread if the translator wasn't passed one in the request headers git-svn-id: svn://svn.open-ils.org/OpenSRF/branches/rel_1_2@1912 9efc2488-bf62-4759-914b-345cdb29e865 --- src/gateway/osrf_http_translator.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gateway/osrf_http_translator.c b/src/gateway/osrf_http_translator.c index d794d08..dd180d7 100644 --- a/src/gateway/osrf_http_translator.c +++ b/src/gateway/osrf_http_translator.c @@ -127,7 +127,6 @@ static osrfHttpTranslator* osrfNewHttpTranslator(request_rec* apreq) { trans->handle = osrfSystemGetTransportClient(); trans->recipient = apr_table_get(apreq->headers_in, OSRF_HTTP_HEADER_TO); trans->service = apr_table_get(apreq->headers_in, OSRF_HTTP_HEADER_SERVICE); - trans->thread = apr_table_get(apreq->headers_in, OSRF_HTTP_HEADER_THREAD); /* XXX create thread if necessary */ const char* timeout = apr_table_get(apreq->headers_in, OSRF_HTTP_HEADER_TIMEOUT); if(timeout) @@ -145,6 +144,11 @@ static osrfHttpTranslator* osrfNewHttpTranslator(request_rec* apreq) { snprintf(buf, sizeof(buf), "%d%ld", getpid(), time(NULL)); trans->delim = md5sum(buf); + /* Use thread if it has been passed in; otherwise, just use the delimiter */ + trans->thread = apr_table_get(apreq->headers_in, OSRF_HTTP_HEADER_THREAD) + ? apr_table_get(apreq->headers_in, OSRF_HTTP_HEADER_THREAD) + : (const char*)trans->delim; + return trans; } -- 2.11.0