/*
- * Copyright (C) 2005-2009 Atsushi Konno All rights reserved.
+ * Copyright (C) 2005-2011 Atsushi Konno All rights reserved.
* Copyright (C) 2005 QSDN,Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
if (SERF_BUCKET_READ_ERROR(rv)) {
ctx->rv = rv;
apr_atomic_dec32(&ctx->requests_outstanding);
- DBG(ctx->r, "REQ[%X] end of s_handle_response() (ERROR)", (unsigned int)(apr_size_t)ctx->r);
+ DBG(ctx->r, "REQ[%X] (ERROR)", TO_ADDR(ctx->r));
+ DBG(ctx->r,"REQ[%X] end %s()",TO_ADDR(ctx->r),__func__);
return rv;
}
if (APR_STATUS_IS_EAGAIN(rv)) {
/* 0 byte return if EAGAIN returned. */
- DBG(ctx->r, "REQ[%X] end of s_handle_response() (EAGAIN) len:[%d]", (unsigned int)(apr_size_t)ctx->r, (int)len);
+ DBG(ctx->r,"REQ[%X] (EAGAIN) len:[%d]", TO_ADDR(ctx->r), (int)len);
+ DBG(ctx->r,"REQ[%X] end %s()",TO_ADDR(ctx->r),__func__);
return rv;
}
val++;
key = qs_trim_string(ctx->pool, key);
val = qs_trim_string(ctx->pool, val);
- DBG(ctx->r, "key:[%s], val:[%s]", key, val);
+ DBG(ctx->r,"REQ[%X] key:[%s], val:[%s]", TO_ADDR(ctx->r),key, val);
apr_table_add(ctx->headers_out, key, val);
}
}
ctx->rv = APR_SUCCESS;
apr_atomic_dec32(&ctx->requests_outstanding);
- DBG(ctx->r, "REQ[%X] end of s_handle_response()(NORMAL)", (unsigned int)(apr_size_t)ctx->r);
+ DBG(ctx->r,"REQ[%X] (NORMAL)", TO_ADDR(ctx->r));
+ DBG(ctx->r,"REQ[%X] end %s()",TO_ADDR(ctx->r),__func__);
return APR_EOF;
}
if (APR_STATUS_IS_EAGAIN(rv)) {
- DBG(ctx->r, "REQ[%X] end of s_handle_response() (EAGAIN)", (unsigned int)(apr_size_t)ctx->r);
+ DBG(ctx->r,"REQ[%X] (EAGAIN)", TO_ADDR(ctx->r));
+ DBG(ctx->r,"REQ[%X] end %s()",TO_ADDR(ctx->r),__func__);
return rv;
}
}
apr_array_header_t *headers = (apr_array_header_t*)apr_table_elts(r->headers_in);
apr_table_entry_t *hentryp = (apr_table_entry_t*)headers->elts;
for (ii=headers->nelts-1; ii>=0; ii--) {
- serf_bucket_headers_setc(hdrs_bkt, hentryp[ii].key, hentryp[ii].val);
- DBG(ctx->r, "REQ[%X] REQUEST key:[%s], val:[%s]", (unsigned int)(apr_size_t)ctx->r, hentryp[ii].key, hentryp[ii].val);
+ DBG(ctx->r, "REQ[%X] REQUEST PREV key:[%s], val:[%s]", TO_ADDR(ctx->r), hentryp[ii].key, hentryp[ii].val);
+ serf_bucket_headers_setc(hdrs_bkt, hentryp[ii].key, (hentryp[ii].val) ? hentryp[ii].val : "");
+ DBG(ctx->r, "REQ[%X] REQUEST AFTER key:[%s], val:[%s]", TO_ADDR(ctx->r), hentryp[ii].key, hentryp[ii].val);
}
if (ctx->post_data) {
+ DBG(ctx->r, "REQ[%X] REQUEST PREV key:[%s], val:[%s]", TO_ADDR(ctx->r), "X-Chxj-Forward", "Done");
serf_bucket_headers_setc(hdrs_bkt, "X-Chxj-Forward", "Done");
+ DBG(ctx->r, "REQ[%X] REQUEST AFTER key:[%s], val:[%s]", TO_ADDR(ctx->r), "X-Chxj-Forward", "Done");
+ DBG(ctx->r, "REQ[%X] REQUEST PREV key:[%s], val:[%s]", TO_ADDR(ctx->r), "X-Chxj-Content-Length", apr_psprintf(r->pool, "%" APR_SIZE_T_FMT, ctx->post_data_len));
serf_bucket_headers_setc(hdrs_bkt, "X-Chxj-Content-Length", apr_psprintf(r->pool, "%" APR_SIZE_T_FMT , ctx->post_data_len));
- DBG(ctx->r, "REQ[%X] REQUEST key:[%s], val:[%s]", (unsigned int)(apr_size_t)ctx->r, "X-Chxj-Forward", "Done");
- DBG(ctx->r, "REQ[%X] REQUEST key:[%s], val:[%s]", (unsigned int)(apr_size_t)ctx->r, "X-Chxj-Content-Length", apr_psprintf(r->pool, "%" APR_SIZE_T_FMT, ctx->post_data_len));
-
+ DBG(ctx->r, "REQ[%X] REQUEST AFTER key:[%s], val:[%s]", TO_ADDR(ctx->r), "X-Chxj-Content-Length", apr_psprintf(r->pool, "%" APR_SIZE_T_FMT, ctx->post_data_len));
}
- DBG(ctx->r, "REQ[%X] REQUEST Content-Length:[%s]", (unsigned int)(apr_size_t)r, serf_bucket_headers_get(hdrs_bkt, "Content-Length"));
+ DBG(ctx->r, "REQ[%X] REQUEST Content-Length:[%s]", TO_ADDR(ctx->r), serf_bucket_headers_get(hdrs_bkt, "Content-Length"));
apr_atomic_inc32(&(ctx->requests_outstanding));
if (ctx->acceptor_ctx->ssl_flag) {
}
serf_connection_close(connection);
- ret = apr_pstrdup(ppool, handler_ctx.response);
+ if (handler_ctx.response) {
+ ret = apr_palloc(ppool, handler_ctx.response_len + 1);
+ memset(ret, 0, handler_ctx.response_len + 1);
+ memcpy(ret, handler_ctx.response, handler_ctx.response_len);
+ }
+ else {
+ ret = apr_pstrdup(ppool, "");
+ }
+ *response_len = handler_ctx.response_len;
if (set_headers_flag) {
r->headers_out = apr_table_copy(pool, handler_ctx.headers_out);
*response_len = handler_ctx.response_len;
handler_ctx_t handler_ctx;
char *ret;
- DBG(r, "REQ:[%X] start chxj_serf_post()", (unsigned int)(apr_size_t)r);
+ DBG(r,"REQ[%X] start %s()",TO_ADDR(r),__func__);
s_init(ppool, &pool);
}
}
- DBG(r, "end of serf request");
- DBG(r, "response_code:[%d]", handler_ctx.response_code);
- DBG(r, "response:[%s][%" APR_SIZE_T_FMT "]", handler_ctx.response, handler_ctx.response_len);
+ DBG(r,"REQ[%X] end of serf request",TO_ADDR(r));
+ DBG(r,"REQ[%X] response_code:[%d]", TO_ADDR(r),handler_ctx.response_code);
+ DBG(r,"REQ[%X] response:[%s][%" APR_SIZE_T_FMT "]", TO_ADDR(r),handler_ctx.response, handler_ctx.response_len);
serf_connection_close(connection);
if (handler_ctx.response) {
- ret = apr_pstrdup(ppool, handler_ctx.response);
+ ret = apr_palloc(ppool, handler_ctx.response_len + 1);
+ memset(ret, 0, handler_ctx.response_len + 1);
+ memcpy(ret, handler_ctx.response, handler_ctx.response_len);
}
else {
ret = apr_pstrdup(ppool, "");
}
- if (set_headers_flag) {
+ if (set_headers_flag && !rv) {
r->headers_out = apr_table_copy(pool, handler_ctx.headers_out);
*response_len = handler_ctx.response_len;
char *contentType = (char *)apr_table_get(handler_ctx.headers_out, "Content-Type");
if (contentType) {
- DBG(r, "response content type[%s]", contentType);
+ DBG(r,"REQ[%X] response content type[%s]", TO_ADDR(r),contentType);
chxj_set_content_type(r, apr_pstrdup(r->pool, contentType));
}
}
+ if (rv) {
+ *response_len = 0;
+ }
*response_code = handler_ctx.response_code;
- DBG(r, "REQ:[%X] end chxj_serf_post()", (unsigned int)(apr_size_t)r);
+ DBG(r,"REQ[%X] end %s()",TO_ADDR(r),__func__);
return ret;
}
handler_ctx_t handler_ctx;
char *ret;
- DBG(r, "REQ:[%X] start chxj_serf_head()", (unsigned int)(apr_size_t)r);
+ DBG(r,"REQ[%X] start %s()",TO_ADDR(r),__func__);
s_init(ppool, &pool);
}
}
- DBG(r, "end of serf request");
- DBG(r, "response_code:[%d]", handler_ctx.response_code);
- DBG(r, "response:[%s][%" APR_SIZE_T_FMT "]", handler_ctx.response, handler_ctx.response_len);
+ DBG(r,"REQ[%X] end of serf request",TO_ADDR(r));
+ DBG(r,"REQ[%X] response_code:[%d]", TO_ADDR(r),handler_ctx.response_code);
+ DBG(r,"REQ[%X] response:[%s][%" APR_SIZE_T_FMT "]", TO_ADDR(r),handler_ctx.response, handler_ctx.response_len);
serf_connection_close(connection);
if (handler_ctx.response) {
ret = apr_pstrdup(ppool, handler_ctx.response);
ret = apr_pstrdup(ppool, "");
}
*response_code = handler_ctx.response_code;
- DBG(r, "REQ:[%X] end chxj_serf_post()", (unsigned int)(apr_size_t)r);
+ DBG(r,"REQ[%X] end %s()",TO_ADDR(r),__func__);
return handler_ctx.headers_out;
}
/*