Fix some of the compiler warnings, rearrange, and clean-up

pull/13/head
Soner Tari 7 years ago
parent be54db770f
commit 5047df8cba

@ -730,7 +730,6 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> nat_getlookupcb: %s\n", spec->natengine);
fprintf(stderr, ">>>>> nat_getlookupcb: %s\n", spec->natengine);
spec->natlookup = nat_getlookupcb(spec->natengine);
spec->natsocket = nat_getsocketcb(spec->natengine);
}

@ -34,6 +34,7 @@
#include "opts.h"
#include "log.h"
#include "attrib.h"
#include "sys.h"
#include <sys/types.h>
#include <sys/socket.h>
@ -83,9 +84,8 @@ proxy_listener_ctx_new(pxy_thrmgr_ctx_t *thrmgr, proxyspec_t *spec,
return ctx;
}
// @todo Do we need this forward declaration?
//static void
//proxy_listener_ctx_free(proxy_listener_ctx_t *ctx) NONNULL(1);
static void
proxy_listener_ctx_free(proxy_listener_ctx_t *ctx) NONNULL(1);
static void
proxy_listener_ctx_free(proxy_listener_ctx_t *ctx)
{
@ -188,7 +188,7 @@ pxy_conn_meta_ctx_new()
if (!ctx)
return NULL;
memset(ctx, 0, sizeof(proxy_conn_meta_ctx_t));
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>................... pxy_conn_meta_ctx_new: sizeof(proxy_conn_meta_ctx_t)=%d <<<<<<\n", sizeof(proxy_conn_meta_ctx_t));
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>................... pxy_conn_meta_ctx_new: sizeof(proxy_conn_meta_ctx_t)=%lu <<<<<<\n", sizeof(proxy_conn_meta_ctx_t));
ctx->uuid = malloc(sizeof(uuid_t));
@ -237,8 +237,8 @@ proxy_listener_acceptcb(UNUSED struct evconnlistener *listener,
// @todo What to do to prevent this case?
log_dbg_level_printf(LOG_DBG_MODE_FINE, ">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! proxy_listener_acceptcb: CANNOT LOCK expired conn, err=%d\n", err);
} else {
log_dbg_level_printf(LOG_DBG_MODE_FINE, ">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! proxy_listener_acceptcb: DELETE thr=%d, fd=%d, fd2=%d, time=%d <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TIMED OUT\n",
expired->thridx, expired->fd, expired->fd2, now - expired->access_time);
log_dbg_level_printf(LOG_DBG_MODE_FINE, ">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! proxy_listener_acceptcb: DELETE thr=%d, fd=%d, fd2=%d, time=%lld <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TIMED OUT\n",
expired->thridx, expired->fd, expired->fd2, (long int) now - expired->access_time);
pxy_all_conn_free(expired);
// XXX: Releasing the lock causes callback functions to continue with a deleted mctx?
//pthread_mutex_unlock(&expired->mutex);

@ -35,9 +35,19 @@
#include <uuid.h>
typedef struct proxy_ctx proxy_ctx_t;
typedef struct proxy_listener_ctx proxy_listener_ctx_t;
typedef struct pxy_conn_ctx pxy_conn_ctx_t;
typedef struct proxy_conn_meta_ctx proxy_conn_meta_ctx_t;
/*
* Listener context.
*/
typedef struct proxy_listener_ctx {
pxy_thrmgr_ctx_t *thrmgr;
proxyspec_t *spec;
opts_t *opts;
struct evconnlistener *evcl;
struct proxy_listener_ctx *next;
int clisock;
} proxy_listener_ctx_t;
typedef struct proxy_conn_meta_ctx {
uuid_t *uuid;
@ -77,41 +87,12 @@ typedef struct proxy_conn_meta_ctx {
socklen_t addrlen;
int thridx;
// unsigned long timestamp;
time_t access_time;
proxy_conn_meta_ctx_t *next;
proxy_conn_meta_ctx_t *delete;
} proxy_conn_meta_ctx_t;
//typedef struct proxy_conn_delete_node proxy_conn_delete_node_t;
//
//typedef struct proxy_conn_delete_node {
// proxy_conn_meta_ctx_t *mctx;
// proxy_conn_delete_node_t *next;
//} proxy_conn_delete_node_t;
/*
* Listener context.
*/
typedef struct proxy_listener_ctx {
pxy_thrmgr_ctx_t *thrmgr;
proxyspec_t *spec;
opts_t *opts;
struct evconnlistener *evcl;
// struct evconnlistener *evcl_e2;
struct proxy_listener_ctx *next;
pxy_conn_ctx_t *ctx;
// evutil_socket_t fd2;
// struct evconnlistener *evcl2;
int clisock;
// pthread_mutex_t mutex;
// proxy_conn_meta_ctx_t *mctx;
} proxy_listener_ctx_t;
proxy_ctx_t * proxy_new(opts_t *, int) NONNULL(1) MALLOC;
void proxy_run(proxy_ctx_t *) NONNULL(1);
void proxy_loopbreak(proxy_ctx_t *) NONNULL(1);

@ -98,7 +98,7 @@ static pxy_conn_ctx_t *
pxy_conn_ctx_new(proxyspec_t *spec, opts_t *opts,
pxy_thrmgr_ctx_t *thrmgr, evutil_socket_t fd, proxy_conn_meta_ctx_t *mctx)
{
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>................... pxy_conn_ctx_new: ENTER fd=%d, sizeof(pxy_conn_ctx_t)=%d\n", fd, sizeof(pxy_conn_ctx_t));
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>................... pxy_conn_ctx_new: ENTER fd=%d, sizeof(pxy_conn_ctx_t)=%lu\n", fd, sizeof(pxy_conn_ctx_t));
pxy_conn_ctx_t *ctx = malloc(sizeof(pxy_conn_ctx_t));
if (!ctx)
return NULL;
@ -128,7 +128,7 @@ pxy_conn_ctx_new_e2(proxyspec_t *spec, opts_t *opts, pxy_thrmgr_ctx_t *thrmgr, e
assert(mctx != NULL);
assert(mctx->parent_ctx != NULL);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>................... pxy_conn_ctx_new_e2: ENTER fd=%d, sizeof(pxy_conn_ctx_t)=%d\n", fd, sizeof(pxy_conn_ctx_t));
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>................... pxy_conn_ctx_new_e2: ENTER fd=%d, sizeof(pxy_conn_ctx_t)=%lu\n", fd, sizeof(pxy_conn_ctx_t));
pxy_conn_ctx_t *ctx = malloc(sizeof(pxy_conn_ctx_t));
if (!ctx)
return NULL;
@ -1668,7 +1668,7 @@ pxy_conn_autossl_peek_and_upgrade(pxy_conn_ctx_t *ctx)
}
if( OPTS_DEBUG(ctx->opts)) {
log_err_printf("Replaced dst bufferevent, new "
"one is %p\n", ctx->dst.bev);
"one is %p\n", (void *)ctx->dst.bev);
}
ctx->clienthello_search = 0;
ctx->clienthello_found = 1;
@ -2118,7 +2118,6 @@ pxy_conn_free(pxy_conn_ctx_t *ctx)
}
// }
leavefree:
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">############################# pxy_conn_free: TRY FREE ctx->src\n");
pxy_conn_desc_t *src = &ctx->src;
if (src->bev) {
@ -2558,7 +2557,7 @@ pxy_bev_readcb_e2(struct bufferevent *bev, void *arg)
char *custom_key = "SSLproxy-Addr: ";
struct evbuffer_ptr ebp = evbuffer_search(e2outbuf, custom_key, strlen(custom_key), NULL);
if (ebp.pos != -1) {
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>....................... pxy_bev_readcb_e2: evbuffer_search FOUND SSLproxy-Addr at %d\n", ebp.pos);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>....................... pxy_bev_readcb_e2: evbuffer_search FOUND SSLproxy-Addr at %ld\n", ebp.pos);
} else {
log_dbg_level_printf(LOG_DBG_MODE_FINE, ">>>>>....................... pxy_bev_readcb_e2: evbuffer_search FAILED\n");
}
@ -2593,7 +2592,7 @@ pxy_bev_readcb_e2(struct bufferevent *bev, void *arg)
char *header_tail = strdup(pos2 + 2);
int header_tail_len = strlen(header_tail);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>....................... pxy_bev_readcb_e2: REMOVED SSLproxy-Addr, packet_size old=%d, new=%d <<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n",
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>....................... pxy_bev_readcb_e2: REMOVED SSLproxy-Addr, packet_size old=%lu, new=%d <<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n",
packet_size, header_head_len + header_tail_len);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>....................... pxy_bev_readcb_e2: header_head (size = %d):\n%s\n",
@ -2713,11 +2712,11 @@ pxy_connected_enable(struct bufferevent *bev, pxy_conn_ctx_t *ctx, char *event_n
"falling back "
"to passthrough\n");
pxy_fd_readcb(ctx->fd, 0, ctx);
return;
return 0;
}
evutil_closesocket(ctx->fd);
pxy_conn_ctx_free(ctx);
return;
return 0;
}
}
if (ctx->clienthello_found) {

@ -63,8 +63,6 @@ typedef struct pxy_conn_lproc_desc {
} pxy_conn_lproc_desc_t;
#endif /* HAVE_LOCAL_PROCINFO */
typedef struct pxy_conn_ctx pxy_conn_ctx_t;
/* actual proxy connection state consisting of two connection descriptors,
* connection-wide state and the specs and options */
typedef struct pxy_conn_ctx {
@ -79,7 +77,6 @@ typedef struct pxy_conn_ctx {
struct pxy_conn_desc e2dst;
unsigned int e2dst_eof : 1;
// unsigned int e2dst_assigned;
struct pxy_conn_ctx *parent_ctx;
struct pxy_conn_ctx *child_ctx;
@ -160,16 +157,18 @@ pxy_conn_ctx_t *
pxy_conn_setup(evutil_socket_t, struct sockaddr *, int,
proxy_conn_meta_ctx_t *)
NONNULL(2,4);
pxy_conn_ctx_t *
pxy_conn_setup_e2(evutil_socket_t, proxy_conn_meta_ctx_t *) NONNULL(2);
int
my_pthread_mutex_destroy(pthread_mutex_t *__mutex);
int
my_pthread_mutex_lock(pthread_mutex_t *__mutex);
void
my_pthread_mutex_unlock(pthread_mutex_t *__mutex);
void
pxy_all_conn_free(proxy_conn_meta_ctx_t *);
void
pxy_conn_meta_ctx_free(proxy_conn_meta_ctx_t *) NONNULL(1);
#endif /* !PXYCONN_H */
/* vim: set noet ft=c: */

@ -77,14 +77,45 @@ pxy_thrmgr_thr(void *arg)
return NULL;
}
/*
* Create new thread manager but do not start any threads yet.
* This gets called before forking to background.
*/
pxy_thrmgr_ctx_t *
pxy_thrmgr_new(opts_t *opts)
{
pxy_thrmgr_ctx_t *ctx;
if (!(ctx = malloc(sizeof(pxy_thrmgr_ctx_t))))
return NULL;
memset(ctx, 0, sizeof(pxy_thrmgr_ctx_t));
ctx->opts = opts;
ctx->num_thr = 2 * sys_get_cpu_cores();
// ctx->num_thr = 1;
return ctx;
}
/*
* Start the thread manager and associated threads.
* This must be called after forking.
*
* Returns -1 on failure, 0 on success.
*/
int
pxy_thrmgr_init(pxy_thrmgr_ctx_t *ctx)
pxy_thrmgr_run(pxy_thrmgr_ctx_t *ctx)
{
int idx = -1, dns = 0;
dns = opts_has_dns_spec(ctx->opts);
// pthread_mutex_init(&ctx->mutex, NULL);
// pthread_mutexattr_t *attr;
// pthread_mutexattr_init(attr);
// pthread_mutexattr_settype(attr, PTHREAD_MUTEX_RECURSIVE);
//// pthread_mutexattr_settype(attr, PTHREAD_MUTEX_ERRORCHECK);
pthread_mutex_init(&ctx->mutex, NULL);
// pthread_mutex_init(&ctx->mutex, attr);
if (!(ctx->thr = malloc(ctx->num_thr * sizeof(pxy_thr_ctx_t*)))) {
log_dbg_printf("Failed to allocate memory\n");
@ -121,107 +152,6 @@ pxy_thrmgr_init(pxy_thrmgr_ctx_t *ctx)
log_dbg_printf("Initialized %d connection handling threads\n",
ctx->num_thr);
return 0;
leave:
while (idx >= 0) {
if (ctx->thr[idx]) {
if (ctx->thr[idx]->dnsbase) {
evdns_base_free(ctx->thr[idx]->dnsbase, 0);
}
if (ctx->thr[idx]->evbase) {
event_base_free(ctx->thr[idx]->evbase);
}
free(ctx->thr[idx]);
}
idx--;
}
pthread_mutex_destroy(&ctx->mutex);
if (ctx->thr) {
free(ctx->thr);
ctx->thr = NULL;
}
return -1;
}
/*
* Create new thread manager but do not start any threads yet.
* This gets called before forking to background.
*/
pxy_thrmgr_ctx_t *
pxy_thrmgr_new(opts_t *opts)
{
pxy_thrmgr_ctx_t *ctx;
if (!(ctx = malloc(sizeof(pxy_thrmgr_ctx_t))))
return NULL;
memset(ctx, 0, sizeof(pxy_thrmgr_ctx_t));
ctx->opts = opts;
ctx->num_thr = 2 * sys_get_cpu_cores();
// ctx->num_thr = 1;
// pxy_thrmgr_init(ctx);
return ctx;
}
/*
* Start the thread manager and associated threads.
* This must be called after forking.
*
* Returns -1 on failure, 0 on success.
*/
int
pxy_thrmgr_run(pxy_thrmgr_ctx_t *ctx)
{
int idx = -1, dns = 0;
// dns = opts_has_dns_spec(ctx->opts);
// pthread_mutexattr_t *attr;
// pthread_mutexattr_init(attr);
// pthread_mutexattr_settype(attr, PTHREAD_MUTEX_RECURSIVE);
//// pthread_mutexattr_settype(attr, PTHREAD_MUTEX_ERRORCHECK);
pthread_mutex_init(&ctx->mutex, NULL);
// pthread_mutex_init(&ctx->mutex, attr);
// if (!(ctx->thr = malloc(ctx->num_thr * sizeof(pxy_thr_ctx_t*)))) {
// log_dbg_printf("Failed to allocate memory\n");
// goto leave;
// }
// memset(ctx->thr, 0, ctx->num_thr * sizeof(pxy_thr_ctx_t*));
//
// for (idx = 0; idx < ctx->num_thr; idx++) {
// if (!(ctx->thr[idx] = malloc(sizeof(pxy_thr_ctx_t)))) {
// log_dbg_printf("Failed to allocate memory\n");
// goto leave;
// }
// memset(ctx->thr[idx], 0, sizeof(pxy_thr_ctx_t));
// ctx->thr[idx]->evbase = event_base_new();
// if (!ctx->thr[idx]->evbase) {
// log_dbg_printf("Failed to create evbase %d\n", idx);
// goto leave;
// }
// if (dns) {
// /* only create dns base if we actually need it later */
// ctx->thr[idx]->dnsbase = evdns_base_new(
// ctx->thr[idx]->evbase, 1);
// if (!ctx->thr[idx]->dnsbase) {
// log_dbg_printf("Failed to create dnsbase %d\n",
// idx);
// goto leave;
// }
// }
// ctx->thr[idx]->load = 0;
// ctx->thr[idx]->running = 0;
// }
//
// log_dbg_printf("Initialized %d connection handling threads\n",
// ctx->num_thr);
pxy_thrmgr_init(ctx);
for (idx = 0; idx < ctx->num_thr; idx++) {
if (pthread_create(&ctx->thr[idx]->thr, NULL,
pxy_thrmgr_thr, ctx->thr[idx]))
@ -335,26 +265,14 @@ pxy_thrmgr_attach(pxy_thrmgr_ctx_t *ctx, struct event_base **evbase,
int thridx;
size_t minload;
int err = pthread_mutex_lock(&ctx->mutex);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> load pxy_thrmgr_attach() err=%d\n", err);
thridx = 0;
if (!ctx->thr) {
thridx= -1;
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> pxy_thrmgr_attach() goto exit_attach\n");
goto exit_attach;
}
pthread_mutex_lock(&ctx->mutex);
minload = ctx->thr[thridx]->load;
#ifdef DEBUG_THREAD
log_dbg_printf("===> Proxy connection handler thread status:\n"
"thr[%d]: %zu\n", thridx, minload);
#endif /* DEBUG_THREAD */
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> for pxy_thrmgr_attach()\n");
for (int idx = 1; idx < ctx->num_thr; idx++) {
#ifdef DEBUG_THREAD
log_dbg_printf("thr[%d]: %zu\n", idx, ctx->thr[idx]->load);
@ -364,9 +282,7 @@ pxy_thrmgr_attach(pxy_thrmgr_ctx_t *ctx, struct event_base **evbase,
thridx = idx;
}
}
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> evbase pxy_thrmgr_attach()\n");
*evbase = ctx->thr[thridx]->evbase;
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> dnsbase pxy_thrmgr_attach()\n");
*dnsbase = ctx->thr[thridx]->dnsbase;
ctx->thr[thridx]->load++;
@ -375,15 +291,15 @@ pxy_thrmgr_attach(pxy_thrmgr_ctx_t *ctx, struct event_base **evbase,
mctx->next = ctx->thr[thridx]->mctx;
ctx->thr[thridx]->mctx = mctx;
#ifdef DEBUG_THREAD
log_dbg_printf("thridx: %d\n", thridx);
#endif /* DEBUG_THREAD */
pxy_thrmgr_print_thr_info(ctx);
exit_attach:
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> EXIT pxy_thrmgr_attach()\n");
pthread_mutex_unlock(&ctx->mutex);
#ifdef DEBUG_THREAD
log_dbg_printf("thridx: %d\n", thridx);
#endif /* DEBUG_THREAD */
return thridx;
}
@ -403,7 +319,7 @@ pxy_thrmgr_detach(pxy_thrmgr_ctx_t *ctx, int thridx, proxy_conn_meta_ctx_t *mctx
pxy_thrmgr_remove_node(mctx, &ctx->thr[thridx]->mctx);
ctx->thr[thridx]->load--;
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> pxy_thrmgr_detach(): AFTER pxy_thrmgr_remove_node\n");
log_dbg_level_printf(LOG_DBG_MODE_FINER, ">>>>> pxy_thrmgr_detach(): AFTER pxy_thrmgr_remove_node\n");
pxy_thrmgr_print_thr_info(ctx);
pthread_mutex_unlock(&ctx->mutex);
@ -419,7 +335,7 @@ pxy_thrmgr_print_thr_info(pxy_thrmgr_ctx_t *ctx)
time_t now = time(NULL);
for (int i = 0; i < ctx->num_thr; i++) {
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>> pxy_thrmgr_print_thr_info(): thr=%d, load=%d\n", i, ctx->thr[i]->load);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>> pxy_thrmgr_print_thr_info(): thr=%d, load=%lu\n", i, ctx->thr[i]->load);
proxy_conn_meta_ctx_t *current = ctx->thr[i]->mctx;
int count = 0;
@ -439,11 +355,11 @@ pxy_thrmgr_print_thr_info(pxy_thrmgr_ctx_t *ctx)
char *host, *port;
if (sys_sockaddr_str((struct sockaddr *)&current->addr, current->addrlen, &host, &port) != 0) {
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>> pxy_thrmgr_print_thr_info(): sys_sockaddr_str FAILED\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>> pxy_thrmgr_print_thr_info(): thr=%d, cont=%d, fd=%d, fd2=%d, src=%d, e2src=%d, dst=%d, e2dst=%d, dst2=%d, p=%d-%d-%d c=%d-%d, init=%d, cc=%d, time=%d\n",
i, count, current->fd, current->fd2, src_fd, e2src_fd, dst_fd, e2dst_fd, dst2_fd, current->src_eof, current->e2src_eof, current->dst_eof, current->e2dst_eof, current->dst2_eof, current->initialized, current->child_count, now - current->access_time);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>> pxy_thrmgr_print_thr_info(): thr=%d, cont=%d, fd=%d, fd2=%d, src=%d, e2src=%d, dst=%d, e2dst=%d, dst2=%d, p=%d-%d-%d c=%d-%d, init=%d, cc=%d, time=%lld\n",
i, count, current->fd, current->fd2, src_fd, e2src_fd, dst_fd, e2dst_fd, dst2_fd, current->src_eof, current->e2src_eof, current->dst_eof, current->e2dst_eof, current->dst2_eof, current->initialized, current->child_count, (long int) now - current->access_time);
} else {
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>> pxy_thrmgr_print_thr_info(): thr=%d, cont=%d, fd=%d, fd2=%d, src=%d, e2src=%d, dst=%d, e2dst=%d, dst2=%d, p=%d-%d-%d c=%d-%d, init=%d, cc=%d, time=%d, addr=%s:%s\n",
i, count, current->fd, current->fd2, src_fd, e2src_fd, dst_fd, e2dst_fd, dst2_fd, current->src_eof, current->e2src_eof, current->dst_eof, current->e2dst_eof, current->dst2_eof, current->initialized, current->child_count, now - current->access_time, host ? host : "?", port ? port : "?");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>> pxy_thrmgr_print_thr_info(): thr=%d, cont=%d, fd=%d, fd2=%d, src=%d, e2src=%d, dst=%d, e2dst=%d, dst2=%d, p=%d-%d-%d c=%d-%d, init=%d, cc=%d, time=%lld, addr=%s:%s\n",
i, count, current->fd, current->fd2, src_fd, e2src_fd, dst_fd, e2dst_fd, dst2_fd, current->src_eof, current->e2src_eof, current->dst_eof, current->e2dst_eof, current->dst2_eof, current->initialized, current->child_count, (long int) now - current->access_time, host ? host : "?", port ? port : "?");
free(host);
free(port);
}
@ -481,8 +397,8 @@ pxy_thrmgr_get_expired_conns(pxy_thrmgr_ctx_t *ctx, proxy_conn_meta_ctx_t **dele
proxy_conn_meta_ctx_t *delete = *delete_list;
while (delete) {
proxy_conn_meta_ctx_t *next = delete->delete;
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>> pxy_thrmgr_get_expired_conns(): thr=%d, fd=%d, fd2=%d, time=%d\n",
delete->thridx, delete->fd, delete->fd2, now - delete->access_time);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>> pxy_thrmgr_get_expired_conns(): thr=%d, fd=%d, fd2=%d, time=%lld\n",
delete->thridx, delete->fd, delete->fd2, (long int) now - delete->access_time);
delete = next;
}

@ -46,7 +46,6 @@ typedef struct pxy_thr_ctx {
struct event_base *evbase;
struct evdns_base *dnsbase;
int running;
proxy_conn_meta_ctx_t *mctx;
} pxy_thr_ctx_t;

Loading…
Cancel
Save