Add debug levels, initial

pull/13/head
Soner Tari 7 years ago
parent ab600c8215
commit 9858928b73

19
log.c

@ -164,9 +164,28 @@ log_dbg_printf(const char *fmt, ...)
return log_dbg_print_free(buf);
}
int
log_dbg_level_printf(int dbg_level, const char *fmt, ...)
{
va_list ap;
char *buf;
int rv;
if (dbg_mode == LOG_DBG_MODE_NONE || dbg_mode < dbg_level)
return 0;
va_start(ap, fmt);
rv = vasprintf(&buf, fmt, ap);
va_end(ap);
if (rv < 0)
return -1;
return log_dbg_print_free(buf);
}
void
log_dbg_mode(int mode)
{
fprintf(stderr, "Setting debug level to %d.\n", mode);
dbg_mode = mode;
}

@ -39,11 +39,15 @@ void log_err_mode(int);
#define LOG_ERR_MODE_SYSLOG 1
int log_dbg_printf(const char *, ...) PRINTF(1,2);
int log_dbg_level_printf(int, const char *, ...) PRINTF(2,3);
int log_dbg_print_free(char *);
int log_dbg_write_free(void *, size_t);
void log_dbg_mode(int);
#define LOG_DBG_MODE_NONE 0
#define LOG_DBG_MODE_ERRLOG 1
#define LOG_DBG_MODE_FINE 2
#define LOG_DBG_MODE_FINER 3
#define LOG_DBG_MODE_FINEST 4
extern logger_t *connect_log;
#define log_connect_printf(fmt, ...) \

@ -303,7 +303,7 @@ main(int argc, char *argv[])
}
while ((ch = getopt(argc, argv, OPT_g OPT_G OPT_Z OPT_i "k:c:C:K:t:"
"OPs:r:R:e:Eu:m:j:p:l:L:S:F:dDVhW:w:")) != -1) {
"OPs:r:R:e:Eu:m:j:p:l:L:S:F:dD::VhW:w:")) != -1) {
switch (ch) {
case 'c':
if (opts->cacrt)
@ -670,8 +670,19 @@ main(int argc, char *argv[])
opts->detach = 1;
break;
case 'D':
log_dbg_mode(LOG_DBG_MODE_ERRLOG);
opts->debug = 1;
fprintf(stderr, "Debug optarg = %s.\n", optarg);
if (optarg && strncmp(optarg, "2", 1) == 0) {
log_dbg_mode(LOG_DBG_MODE_FINE);
} else if (optarg && strncmp(optarg, "3", 1) == 0) {
log_dbg_mode(LOG_DBG_MODE_FINER);
} else if (optarg && strncmp(optarg, "4", 1) == 0) {
log_dbg_mode(LOG_DBG_MODE_FINEST);
} else {
log_dbg_mode(LOG_DBG_MODE_ERRLOG);
}
break;
case 'V':
main_version();
@ -700,9 +711,9 @@ main(int argc, char *argv[])
fprintf(stderr, "%s: no proxyspec specified.\n", argv0);
exit(EXIT_FAILURE);
}
log_dbg_printf(">>>>> Enter spec for loop\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> Enter spec for loop\n");
for (proxyspec_t *spec = opts->spec; spec; spec = spec->next) {
log_dbg_printf(">>>>> spec for loop: %s\n", spec->natengine);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> spec for loop: %s\n", spec->natengine);
if (spec->connect_addrlen || spec->sni_port)
continue;
if (!spec->natengine) {
@ -718,7 +729,7 @@ main(int argc, char *argv[])
argv0, spec->natengine);
exit(EXIT_FAILURE);
}
log_dbg_printf(">>>>> nat_getlookupcb: %s\n", spec->natengine);
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);
@ -970,11 +981,11 @@ main(int argc, char *argv[])
}
rv = EXIT_SUCCESS;
log_dbg_printf(">>>>> Enter proxy_run\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> Enter proxy_run\n");
proxy_run(proxy);
log_dbg_printf(">>>>> Exit proxy_run\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> Exit proxy_run\n");
log_dbg_printf(">>>>> main: EXIT closing privsep clisock=%d\n", clisock[0]);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> main: EXIT closing privsep clisock=%d\n", clisock[0]);
privsep_client_close(clisock[0]);
proxy_free(proxy);

@ -244,7 +244,7 @@ privsep_server_opensock_e2(proxyspec_t *spec)
int on = 1;
int rv;
log_dbg_printf(">>>>> privsep_server_opensock_e2: ENTER\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> privsep_server_opensock_e2: ENTER\n");
fd2 = socket(spec->e2dst_addr.ss_family, SOCK_STREAM, IPPROTO_TCP);
if (fd2 == -1) {
@ -293,7 +293,7 @@ privsep_server_opensock_e2(proxyspec_t *spec)
return -1;
}
log_dbg_printf(">>>>> privsep_server_opensock_e2: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> port = %d\n", ntohs(serv_addr.sin_port));
log_dbg_level_printf(LOG_DBG_MODE_FINER, ">>>>> privsep_server_opensock_e2: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> port = %d\n", ntohs(serv_addr.sin_port));
return fd2;
}
@ -490,7 +490,7 @@ privsep_server_handle_req(opts_t *opts, int srvsock)
proxyspec_t *arg;
int s;
log_dbg_printf(">>>>> privsep_server_opensock_e2: PRIVSEP_REQ_OPENSOCK_E2\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> privsep_server_opensock_e2: PRIVSEP_REQ_OPENSOCK_E2\n");
if (n != sizeof(char) + sizeof(arg)) {
ans[0] = PRIVSEP_ANS_INVALID;
@ -801,7 +801,7 @@ privsep_client_opensock(int clisock, const proxyspec_t *spec)
int
privsep_client_opensock_e2(int clisock, const proxyspec_t *spec)
{
log_dbg_printf(">>>>> privsep_client_opensock_e2()\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> privsep_client_opensock_e2()\n");
char ans[PRIVSEP_MAX_ANS_SIZE];
char req[1 + sizeof(spec)];

@ -120,7 +120,7 @@ proxy_listener_ctx_free(proxy_listener_ctx_t *ctx)
static void
proxy_listener_errorcb(struct evconnlistener *listener, UNUSED void *ctx)
{
log_dbg_printf(">############################# proxy_listener_errorcb: ERROR\n");
log_dbg_level_printf(LOG_DBG_MODE_FINE, ">############################# proxy_listener_errorcb: ERROR\n");
struct event_base *evbase = evconnlistener_get_base(listener);
int err = EVUTIL_SOCKET_ERROR();
log_err_printf("Error %d on listener: %s\n", err,
@ -141,30 +141,30 @@ proxy_listener_acceptcb_e2(UNUSED struct evconnlistener *listener,
// pxy_conn_ctx_t *parent_ctx = arg;
proxy_conn_meta_ctx_t *mctx = arg;
if (!mctx) {
log_dbg_printf(">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2: NULL mctx <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< GONE\n");
log_dbg_level_printf(LOG_DBG_MODE_FINE, ">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2: NULL mctx <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< GONE\n");
return;
}
pthread_mutex_t *cmutex = &mctx->mutex;
int err = pthread_mutex_lock(cmutex);
log_dbg_printf(">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2() lock err=%d\n", err);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2() lock err=%d\n", err);
pxy_conn_ctx_t *parent_ctx = mctx->parent_ctx;
// pthread_mutex_t *cmutex = &parent_ctx->thrmgr->mutex2;
if (!parent_ctx) {
log_dbg_printf(">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2: NULL parent_ctx <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< GONE\n");
log_dbg_level_printf(LOG_DBG_MODE_FINE, ">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2: NULL parent_ctx <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< GONE\n");
goto leave;
}
log_dbg_printf(">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2(): child fd=%d, parent fd=%d\n", fd, parent_ctx->fd);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2(): child fd=%d, parent fd=%d\n", fd, parent_ctx->fd);
char *host, *port;
if (sys_sockaddr_str(peeraddr, peeraddrlen, &host, &port) != 0) {
log_dbg_printf(">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2(): PEER failed\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2(): PEER failed\n");
} else {
log_dbg_printf(">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2(): PEER [%s]:%s <<<<< child fd=%d, parent fd=%d\n", host, port, fd, parent_ctx->fd);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2(): PEER [%s]:%s <<<<< child fd=%d, parent fd=%d\n", host, port, fd, parent_ctx->fd);
free(host);
free(port);
}
@ -175,25 +175,25 @@ proxy_listener_acceptcb_e2(UNUSED struct evconnlistener *listener,
pxy_conn_setup_e2(fd, mctx);
leave:
log_dbg_printf(">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2(): EXIT\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb_e2(): EXIT\n");
pthread_mutex_unlock(cmutex);
}
static proxy_conn_meta_ctx_t *
pxy_conn_meta_ctx_new()
{
log_dbg_printf(">>>>>................... pxy_conn_meta_ctx_new(): ENTER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>................... pxy_conn_meta_ctx_new(): ENTER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
proxy_conn_meta_ctx_t *ctx = malloc(sizeof(proxy_conn_meta_ctx_t));
// proxy_conn_meta_ctx_t *ctx = malloc(100);
if (!ctx)
return NULL;
memset(ctx, 0, sizeof(proxy_conn_meta_ctx_t));
log_dbg_printf(">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 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)=%d <<<<<<\n", sizeof(proxy_conn_meta_ctx_t));
ctx->next = NULL;
pthread_mutex_init(&ctx->mutex, NULL);
log_dbg_printf(">>>>>................... pxy_conn_meta_ctx_new(): EXIT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>................... pxy_conn_meta_ctx_new(): EXIT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
return ctx;
}
@ -202,24 +202,24 @@ int remove_ctx(proxy_conn_meta_ctx_t **current) {
proxy_conn_meta_ctx_t *tmp = *current;
if (tmp->parent_ctx) {
log_dbg_printf(">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! remove_ctx: PARENT NOT NULL !!!!!!!!!!!!!!!!!!! <<<<<<\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! remove_ctx: PARENT NOT NULL !!!!!!!!!!!!!!!!!!! <<<<<<\n");
return 0;
}
if (tmp->child_ctx) {
log_dbg_printf(">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! remove_ctx: CHILD NOT NULL !!!!!!!!!!!!!!!!!!! <<<<<<\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! remove_ctx: CHILD NOT NULL !!!!!!!!!!!!!!!!!!! <<<<<<\n");
return 0;
}
*current = (*current)->next;
log_dbg_printf(">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! remove_ctx: FREEING META CTX, size=%d <<<<<<\n", sizeof(*tmp));
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! remove_ctx: FREEING META CTX, size=%d <<<<<<\n", sizeof(*tmp));
pthread_mutex_destroy(&tmp->mutex);
free(tmp);
tmp = NULL;
log_dbg_printf(">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! remove_ctx: EXIT <<<<<<\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! remove_ctx: EXIT <<<<<<\n");
return 1;
// }
// log_dbg_printf(">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! remove_ctx: NOT FREEING UNRELEASED META CTX <<<<<<\n");
// log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! remove_ctx: NOT FREEING UNRELEASED META CTX <<<<<<\n");
// return 0;
}
@ -231,23 +231,23 @@ proxy_listener_acceptcb(UNUSED struct evconnlistener *listener,
{
proxy_listener_ctx_t *lctx = arg;
log_dbg_printf(">>>>> proxy_listener_acceptcb: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< LOCK\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> proxy_listener_acceptcb: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< LOCK\n");
// pthread_mutex_t *tmutex = &lctx->thrmgr->mutex2;
// pthread_mutex_t *lmutex = &lctx->mutex;
// pthread_mutex_lock(lmutex);
// int total = sizeof(pxy_conn_ctx_t *) + sizeof(pxy_conn_ctx_t *) + sizeof(pthread_mutex_t) + sizeof(unsigned int) + sizeof(proxy_conn_meta_ctx_t *);
// log_dbg_printf(">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! proxy_listener_acceptcb: TOTAL SIZE=%d <<<<<<\n", total);
// log_dbg_printf(">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! proxy_listener_acceptcb: sizeof(pthread_mutex_t)=%d <<<<<<\n", sizeof(pthread_mutex_t));
// log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! proxy_listener_acceptcb: TOTAL SIZE=%d <<<<<<\n", total);
// log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! proxy_listener_acceptcb: sizeof(pthread_mutex_t)=%d <<<<<<\n", sizeof(pthread_mutex_t));
proxy_conn_meta_ctx_t *mctx = pxy_conn_meta_ctx_new();
pthread_mutex_lock(&mctx->mutex);
mctx->lctx = lctx;
log_dbg_printf(">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb(): fd=%d, previous fd2=%d\n", fd, lctx->fd2);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>>------------------------------------------------------------------------------------ proxy_listener_acceptcb(): fd=%d, previous fd2=%d\n", fd, lctx->fd2);
log_dbg_printf(">>>>> proxy_listener_acceptcb: SETTING UP E2, lctx->clisock=%d\n", lctx->clisock);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> proxy_listener_acceptcb: SETTING UP E2, lctx->clisock=%d\n", lctx->clisock);
evutil_socket_t fd2;
if ((fd2 = privsep_client_opensock_e2(lctx->clisock, lctx->spec)) == -1) {
log_err_printf("Error opening socket: %s (%i)\n",
@ -255,7 +255,7 @@ proxy_listener_acceptcb(UNUSED struct evconnlistener *listener,
return;
}
log_dbg_printf(">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! proxy_listener_acceptcb: fd=%d, prev fd2=%d, NEW fd2=%d <<<<<<\n", fd, lctx->fd2, fd2);
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! proxy_listener_acceptcb: fd=%d, prev fd2=%d, NEW fd2=%d <<<<<<\n", fd, lctx->fd2, fd2);
lctx->fd2 = fd2;
mctx->fd2 = fd2;
@ -283,10 +283,10 @@ proxy_listener_acceptcb(UNUSED struct evconnlistener *listener,
mctx->evcl2 = evcl2;
evconnlistener_set_error_cb(evcl2, proxy_listener_errorcb);
// log_dbg_printf(">>>>> proxy_listener_acceptcb: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< bufferevent_enable(parent_ctx->dst.bev)\n");
// log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> proxy_listener_acceptcb: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< bufferevent_enable(parent_ctx->dst.bev)\n");
// bufferevent_enable(parent_ctx->dst.bev, EV_READ|EV_WRITE);
log_dbg_printf(">>>>> proxy_listener_acceptcb: FINISHED SETTING UP E2 SUCCESS, parent fd=%d, NEW fd2=%d\n", fd, fd2);
log_dbg_level_printf(LOG_DBG_MODE_FINE, ">>>>> proxy_listener_acceptcb: FINISHED SETTING UP E2 SUCCESS, parent fd=%d, NEW fd2=%d\n", fd, fd2);
// pthread_mutex_unlock(lmutex);
pthread_mutex_unlock(&mctx->mutex);
}
@ -316,7 +316,7 @@ static proxy_listener_ctx_t *
proxy_listener_setup(struct event_base *evbase, pxy_thrmgr_ctx_t *thrmgr,
proxyspec_t *spec, opts_t *opts, int clisock)
{
log_dbg_printf(">>>>> proxy_listener_setup\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> proxy_listener_setup\n");
proxy_listener_ctx_t *lctx;
int fd;

File diff suppressed because it is too large Load Diff

@ -318,19 +318,19 @@ int
pxy_thrmgr_attach(pxy_thrmgr_ctx_t *ctx, struct event_base **evbase,
struct evdns_base **dnsbase)
{
log_dbg_printf(">>>>> ENTER pxy_thrmgr_attach()\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> ENTER pxy_thrmgr_attach()\n");
int thridx;
size_t minload;
int err = pthread_mutex_lock(&ctx->mutex);
log_dbg_printf(">>>>> load pxy_thrmgr_attach() err=%d\n", err);
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_printf(">>>>> pxy_thrmgr_attach() goto exit_attach\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> pxy_thrmgr_attach() goto exit_attach\n");
goto exit_attach;
}
@ -340,7 +340,7 @@ pxy_thrmgr_attach(pxy_thrmgr_ctx_t *ctx, struct event_base **evbase,
"thr[%d]: %zu\n", thridx, minload);
#endif /* DEBUG_THREAD */
log_dbg_printf(">>>>> for pxy_thrmgr_attach()\n");
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
@ -351,9 +351,9 @@ pxy_thrmgr_attach(pxy_thrmgr_ctx_t *ctx, struct event_base **evbase,
thridx = idx;
}
}
log_dbg_printf(">>>>> evbase pxy_thrmgr_attach()\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> evbase pxy_thrmgr_attach()\n");
*evbase = ctx->thr[thridx]->evbase;
log_dbg_printf(">>>>> dnsbase pxy_thrmgr_attach()\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> dnsbase pxy_thrmgr_attach()\n");
*dnsbase = ctx->thr[thridx]->dnsbase;
ctx->thr[thridx]->load++;
@ -361,7 +361,7 @@ pxy_thrmgr_attach(pxy_thrmgr_ctx_t *ctx, struct event_base **evbase,
log_dbg_printf("thridx: %d\n", thridx);
#endif /* DEBUG_THREAD */
exit_attach:
log_dbg_printf(">>>>> EXIT pxy_thrmgr_attach()\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> EXIT pxy_thrmgr_attach()\n");
pthread_mutex_unlock(&ctx->mutex);
return thridx;
}
@ -373,10 +373,10 @@ exit_attach:
void
pxy_thrmgr_detach(pxy_thrmgr_ctx_t *ctx, int thridx)
{
log_dbg_printf(">>>>> pxy_thrmgr_detach()\n");
log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> pxy_thrmgr_detach()\n");
pthread_mutex_lock(&ctx->mutex);
// int err = pthread_mutex_trylock(&ctx->mutex);
// log_dbg_printf(">>>>> pxy_thrmgr_detach() err=%d\n", err);
// log_dbg_level_printf(LOG_DBG_MODE_FINEST, ">>>>> pxy_thrmgr_detach() err=%d\n", err);
ctx->thr[thridx]->load--;
// if (!err) {

Loading…
Cancel
Save