From 54cb4b4db00c0c57711713482bcdd3b90ff1b5e7 Mon Sep 17 00:00:00 2001 From: Atsushi Konno Date: Thu, 23 Dec 2010 21:20:11 +0900 Subject: [PATCH] * Fixed bug. --- src/chxj_img_conv_format.c | 2 +- src/chxj_serf.c | 17 +++++++++++++---- src/mod_chxj.c | 10 +++++----- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/chxj_img_conv_format.c b/src/chxj_img_conv_format.c index 92d21f9e..6b8e756d 100644 --- a/src/chxj_img_conv_format.c +++ b/src/chxj_img_conv_format.c @@ -38,7 +38,7 @@ do { \ char *description; ExceptionType severity; \ description=MagickGetException(magick_wand,&severity); \ - ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r,"%s %s %d %s\n",__FILE__,(__func__),__LINE__,description); \ + ap_log_rerror(APLOG_MARK,APLOG_ERR, 0, r,"%s %s %d %s\n",__FILE__,(__func__),__LINE__,description); \ description=(char *) MagickRelinquishMemory(description); \ DestroyMagickWand(magick_wand); \ } while(0) diff --git a/src/chxj_serf.c b/src/chxj_serf.c index 1b89ec58..9307ca38 100644 --- a/src/chxj_serf.c +++ b/src/chxj_serf.c @@ -241,14 +241,17 @@ s_setup_request(serf_request_t *request, 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]", (unsigned int)(apr_size_t)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]", (unsigned int)(apr_size_t)ctx->r, hentryp[ii].key, hentryp[ii].val); } if (ctx->post_data) { + DBG(ctx->r, "REQ[%X] REQUEST PREV key:[%s], val:[%s]", (unsigned int)(apr_size_t)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]", (unsigned int)(apr_size_t)ctx->r, "X-Chxj-Forward", "Done"); + DBG(ctx->r, "REQ[%X] REQUEST PREV 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)); 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]", (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 Content-Length:[%s]", (unsigned int)(apr_size_t)r, serf_bucket_headers_get(hdrs_bkt, "Content-Length")); @@ -480,7 +483,13 @@ default_chxj_serf_post(request_rec *r, apr_pool_t *ppool, const char *url_path, DBG(r, "response:[%s][%" APR_SIZE_T_FMT "]", handler_ctx.response, handler_ctx.response_len); serf_connection_close(connection); if (handler_ctx.response) { +#if 0 ret = apr_pstrdup(ppool, handler_ctx.response); +#else + 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); +#endif } else { ret = apr_pstrdup(ppool, ""); diff --git a/src/mod_chxj.c b/src/mod_chxj.c index fbe6e4d1..51a6e05c 100644 --- a/src/mod_chxj.c +++ b/src/mod_chxj.c @@ -1271,17 +1271,15 @@ chxj_output_filter(ap_filter_t *f, apr_bucket_brigade *bb) if (ctx->len) { char *tmp; - tmp = apr_palloc(pool, ctx->len + 1); + DBG(r, "REQ[%X] ctx->len[%d]", (unsigned int)(apr_size_t)r, ctx->len); + tmp = apr_palloc(pool, ctx->len + 1); memset(tmp, 0, ctx->len + 1); memcpy(tmp, ctx->buffer, ctx->len); ctx->buffer = chxj_convert_image(r, (const char **)&tmp, (apr_size_t *)&ctx->len); - if (ctx->buffer == NULL) { - ctx->buffer = tmp; - } } } @@ -1480,12 +1478,14 @@ chxj_input_handler(request_rec *r) apr_table_unset(r->headers_in, "Content-Length"); apr_table_setn(r->headers_in, "Content-Length", apr_psprintf(pool, "%" APR_SIZE_T_FMT, post_data_len)); response = chxj_serf_post(r, pool, url_path, post_data, post_data_len, 1, &res_len, &response_code); +/* DBG(r, "REQ[%X] -------------------------------------------------------", (unsigned int)(apr_size_t)r); DBG(r, "REQ[%X] response length:[%" APR_SIZE_T_FMT "]", (unsigned int)(apr_size_t)r, res_len); for (ii=0; iiheaders_out, "Transfer-Encoding")) != NULL) { @@ -1505,7 +1505,7 @@ chxj_input_handler(request_rec *r) apr_bucket *e; apr_status_t rv; conn_rec *c = r->connection; - + bb = apr_brigade_create(wpool, c->bucket_alloc); e = apr_bucket_transient_create(response, res_len, c->bucket_alloc); APR_BRIGADE_INSERT_TAIL(bb, e); -- 2.11.0