Hi Ben,

this is my code snippet and if I enable the commented line then I get an Apache error

AH00052: child pid 24982 exit signal Segmentation fault (11)

The snippet:

static apr_status_t do_client_task(apr_socket_t *sock, const char *filepath, request_rec *r)
{
    apr_status_t rv;
const char *req_hdr = apr_pstrcat(r->pool, "GET /", filepath, " HTTP/1.0" CRLF_STR CRLF_STR, NULL);
    apr_size_t len = strlen(req_hdr);
    rv = apr_socket_send(sock, req_hdr, &len);
    if (rv != APR_SUCCESS) {
        return rv;
    }

    {
        char buf[BUFSIZE];
        apr_size_t len = sizeof(buf);
        char *bufp = 0;
        while (1) {
            apr_status_t rv = apr_socket_recv(sock, buf, &len);
            if (rv == APR_EOF || len == 0) {
                break;
            }
            bufp = apr_palloc(r->pool, len);
            bufp = buf;
ap_log_perror(APLOG_MARK, APLOG_NOTICE, 0, r->pool, apr_psprintf(r->pool, "---%s---", bufp));
            // ap_rputs(apr_psprintf(r->pool, "---%s---<br/>\n", bufp), r);
        }
    }
    return rv;
}


A hint would help me a lot. Thank you.

Best regards,
grafl







On 2013-05-27 23:25, Ben Reser wrote:
On Mon, May 27, 2013 at 1:21 PM, Graf László<[email protected]>  wrote:
I have a handler module which reads the HTTP response from a remote web
server.
In this module I have a

char[] buf

and it contains the bytes red using apr_socket_recv. With

ap_log_perror(APLOG_MARK, APLOG_NOTICE, 0, r->pool, apr_psprintf(r->pool,
"<%s>", buf));

I can see the buf's content in the error_log but the

ap_rputs(apr_psprintf(r->pool, "%s", (char *)buf), r);

fails. How can I convert this array to a char* to be able to put the HTTP
response in the handler's request using ap_rputs?
You haven't given enough info to answer your question.  However, this
is really a question of how to write C so I'd point you to references
on C.

See this question on Stack Overflow:
http://stackoverflow.com/questions/1790704/difference-between-square-brackets-and-asterisk

(that question is about C++ but as far as I know there's no difference
between the two in this case)

Reply via email to