/*
- * Copyright (C) 2005-2008 Atsushi Konno All rights reserved.
+ * Copyright (C) 2005-2009 Atsushi Konno All rights reserved.
* Copyright (C) 2005 QSDN,Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
apr_status_t rv;
const char *reason;
+ int response_code;
char *response;
apr_size_t response_len;
char *default_chxj_serf_get(request_rec *r, apr_pool_t *ppool, const char *url_path, int set_headers_flag, apr_size_t *response_len);
char *(*chxj_serf_get)(request_rec *r, apr_pool_t *ppool, const char *url_path, int set_headers_flag, apr_size_t *response_len) = default_chxj_serf_get;
-char *default_chxj_serf_post(request_rec *r, apr_pool_t *ppool, const char *url_path, char *post_data, apr_size_t post_data_len, int set_headers_flag, apr_size_t *response_len);
-char *(*chxj_serf_post)(request_rec *r, apr_pool_t *ppool, const char *url_path, char *post_data, apr_size_t post_data_len, int set_headers_flag, apr_size_t *response_len) = default_chxj_serf_post;
+char *default_chxj_serf_post(request_rec *r, apr_pool_t *ppool, const char *url_path, char *post_data, apr_size_t post_data_len, int set_headers_flag, apr_size_t *response_len, int *response_code);
+char *(*chxj_serf_post)(request_rec *r, apr_pool_t *ppool, const char *url_path, char *post_data, apr_size_t post_data_len, int set_headers_flag, apr_size_t *response_len, int *response_code) = default_chxj_serf_post;
void
return rv;
}
ctx->reason = sl.reason;
+ ctx->response_code = sl.code;
while (1) {
rv = serf_bucket_read(response, 2048, &data, &len);
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);
return rv;
}
if (APR_STATUS_IS_EAGAIN(rv)) {
}
ctx->rv = APR_SUCCESS;
apr_atomic_dec32(&ctx->requests_outstanding);
- DBG(ctx->r, "end of s_handle_response()(NORMAL)");
+ DBG(ctx->r, "REQ[%X] end of s_handle_response()(NORMAL)", (unsigned int)(apr_size_t)ctx->r);
return APR_EOF;
}
if (APR_STATUS_IS_EAGAIN(rv)) {
- DBG(ctx->r, "end of s_handle_response() (EAGAIN)");
+ DBG(ctx->r, "REQ[%X] end of s_handle_response() (EAGAIN)", (unsigned int)(apr_size_t)ctx->r);
return rv;
}
}
if (!url.hostname) {
url.hostname = "localhost";
}
+ if (url.query) {
+ url.path = apr_psprintf(pool, "%s?%s", url.path, url.query);
+ }
rv = apr_sockaddr_info_get(&address, url.hostname, APR_UNSPEC, url.port, 0, pool);
if (rv != APR_SUCCESS) {
char buf[256];
- ERR(r, "apr_sockaddr_info_get() failed: rv:[%d|%s]", rv, apr_strerror(rv, buf, 256));
+ ERR(r, "REQ[%X] %s:%d apr_sockaddr_info_get() failed: rv:[%d|%s] - Please check DNS settings.",
+ (unsigned int)(apr_size_t)r, __FILE__,__LINE__, rv, apr_strerror(rv, buf, 256));
return NULL;
}
memset(&app_ctx, 0, sizeof(app_ctx_t));
char *
-default_chxj_serf_post(request_rec *r, apr_pool_t *ppool, const char *url_path, char *post_data, apr_size_t post_data_len, int set_headers_flag, apr_size_t *response_len)
+default_chxj_serf_post(request_rec *r, apr_pool_t *ppool, const char *url_path, char *post_data, apr_size_t post_data_len, int set_headers_flag, apr_size_t *response_len, int *response_code)
{
apr_pool_t *pool;
apr_uri_t url;
handler_ctx_t handler_ctx;
char *ret;
- DBG(r, "start chxj_serf_post()");
+ DBG(r, "REQ:[%X] start chxj_serf_post()", (unsigned int)(apr_size_t)r);
s_init(ppool, &pool);
if (!url.hostname) {
url.hostname = "localhost";
}
+ if (url.query) {
+ url.path = apr_psprintf(pool, "%s?%s", url.path, url.query);
+ }
rv = apr_sockaddr_info_get(&address, url.hostname, APR_UNSPEC, url.port, 0, pool);
if (rv != APR_SUCCESS) {
}
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);
serf_connection_close(connection);
ret = apr_pstrdup(ppool, handler_ctx.response);
chxj_set_content_type(r, apr_pstrdup(r->pool, contentType));
}
}
- DBG(r, "end chxj_serf_post()");
+ *response_code = handler_ctx.response_code;
+ DBG(r, "REQ:[%X] end chxj_serf_post()", (unsigned int)(apr_size_t)r);
return ret;
}
/*