From 1bce6f74349051fbda3e435f1e7dce7ae8c80644 Mon Sep 17 00:00:00 2001 From: Niels Provos Date: Tue, 13 May 2008 03:51:10 +0000 Subject: [PATCH] use evhttp_connection_base_new() svn:r816 --- http.c | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/http.c b/http.c index aeab6821..82d6a895 100644 --- a/http.c +++ b/http.c @@ -1397,21 +1397,14 @@ evhttp_read_header_cb(struct bufferevent *bufev, void *arg) */ struct evhttp_connection * -evhttp_connection_base_new(struct event_base *base, - const char *address, unsigned short port) +evhttp_connection_new(const char *address, unsigned short port) { - struct evhttp_connection *evcon = evhttp_connection_new(address, port); - if (evcon == NULL) - return (NULL); - - if (base != NULL) - evhttp_connection_set_base(evcon, base); - - return (evcon); + return (evhttp_connection_base_new(NULL, address, port)); } struct evhttp_connection * -evhttp_connection_new(const char *address, unsigned short port) +evhttp_connection_base_new(struct event_base *base, + const char *address, unsigned short port) { struct evhttp_connection *evcon = NULL; @@ -1444,6 +1437,11 @@ evhttp_connection_new(const char *address, unsigned short port) evcon->state = EVCON_DISCONNECTED; TAILQ_INIT(&evcon->requests); + if (base != NULL) { + evcon->base = base; + bufferevent_base_set(base, evcon->bufev); + } + return (evcon); error: @@ -1452,7 +1450,8 @@ evhttp_connection_new(const char *address, unsigned short port) return (NULL); } -void evhttp_connection_set_base(struct evhttp_connection *evcon, +void +evhttp_connection_set_base(struct evhttp_connection *evcon, struct event_base *base) { assert(evcon->base == NULL); @@ -2432,7 +2431,7 @@ evhttp_get_request_connection( char *hostname = NULL, *portname = NULL; name_from_addr(sa, salen, &hostname, &portname); - if (hostname==NULL || portname==NULL) { + if (hostname == NULL || portname == NULL) { if (hostname) mm_free(hostname); if (portname) mm_free(portname); return (NULL); @@ -2442,16 +2441,13 @@ evhttp_get_request_connection( __func__, hostname, portname, fd)); /* we need a connection object to put the http request on */ - evcon = evhttp_connection_new(hostname, atoi(portname)); + evcon = evhttp_connection_base_new( + http->base, hostname, atoi(portname)); mm_free(hostname); mm_free(portname); if (evcon == NULL) return (NULL); - /* associate the base if we have one */ - if (http->base != NULL) - evhttp_connection_set_base(evcon, http->base); - evcon->flags |= EVHTTP_CON_INCOMING; evcon->state = EVCON_CONNECTED; -- 2.49.0