X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=meta-stx%2Frecipes-support%2Flibevent%2Flibevent%2Flibevent-ipv6-client-socket.patch;fp=meta-stx%2Frecipes-support%2Flibevent%2Flibevent%2Flibevent-ipv6-client-socket.patch;h=d11e942252606183e75333e6b86d4254428ecd77;hb=bc2b930d34075fbf923d5af6f58e6cd8ad91adcc;hp=0000000000000000000000000000000000000000;hpb=5e8c60664ac7ec6a4b2033e40f90d9e39541a9b4;p=pti%2Frtp.git diff --git a/meta-stx/recipes-support/libevent/libevent/libevent-ipv6-client-socket.patch b/meta-stx/recipes-support/libevent/libevent/libevent-ipv6-client-socket.patch new file mode 100644 index 0000000..d11e942 --- /dev/null +++ b/meta-stx/recipes-support/libevent/libevent/libevent-ipv6-client-socket.patch @@ -0,0 +1,55 @@ +--- + http.c | 25 ++++++++++++++++++------- + 1 file changed, 18 insertions(+), 7 deletions(-) + +--- a/http.c ++++ b/http.c +@@ -1325,6 +1325,9 @@ evhttp_error_cb(struct bufferevent *bufe + struct evhttp_connection *evcon = arg; + struct evhttp_request *req = TAILQ_FIRST(&evcon->requests); + ++ if (evcon->fd == -1) ++ evcon->fd = bufferevent_getfd(bufev); ++ + switch (evcon->state) { + case EVCON_CONNECTING: + if (what & BEV_EVENT_TIMEOUT) { +@@ -1390,6 +1393,9 @@ evhttp_connection_cb(struct bufferevent + int error; + ev_socklen_t errsz = sizeof(error); + ++ if (evcon->fd == -1) ++ evcon->fd = bufferevent_getfd(bufev); ++ + if (!(what & BEV_EVENT_CONNECTED)) { + /* some operating systems return ECONNREFUSED immediately + * when connecting to a local address. the cleanup is going +@@ -2189,16 +2195,21 @@ evhttp_connection_connect(struct evhttp_ + EVUTIL_ASSERT(!(evcon->flags & EVHTTP_CON_INCOMING)); + evcon->flags |= EVHTTP_CON_OUTGOING; + +- evcon->fd = bind_socket( +- evcon->bind_address, evcon->bind_port, 0 /*reuse*/); +- if (evcon->fd == -1) { +- event_debug(("%s: failed to bind to \"%s\"", +- __func__, evcon->bind_address)); +- return (-1); ++ if (evcon->bind_address || evcon->bind_port) { ++ evcon->fd = bind_socket( ++ evcon->bind_address, evcon->bind_port, 0 /*reuse*/); ++ if (evcon->fd == -1) { ++ event_debug(("%s: failed to bind to \"%s\"", ++ __func__, evcon->bind_address)); ++ return (-1); ++ } ++ ++ bufferevent_setfd(evcon->bufev, evcon->fd); ++ } else { ++ bufferevent_setfd(evcon->bufev, -1); + } + + /* Set up a callback for successful connection setup */ +- bufferevent_setfd(evcon->bufev, evcon->fd); + bufferevent_setcb(evcon->bufev, + NULL /* evhttp_read_cb */, + NULL /* evhttp_write_cb */,