diff --git a/src/evt_core.c b/src/evt_core.c index cc826be..21df314 100644 --- a/src/evt_core.c +++ b/src/evt_core.c @@ -98,6 +98,15 @@ void evt_core_mv_fd(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo, st fdinfo->cat->cb(ctx, fdinfo); } +gboolean evt_core_fdinfo_url_set(struct evt_core_fdinfo* fdinfo, char* url) { + char *new_url = strdup(url); + if (new_url == NULL) return FALSE; + + free(fdinfo->url); + fdinfo->url = new_url; + return TRUE; +} + void evt_core_mv_fd2(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo, char* to_cat) { struct evt_core_cat* cat = evt_core_get_from_cat (ctx, to_cat); if (cat == NULL) { diff --git a/src/evt_core.h b/src/evt_core.h index 9e65136..390ea72 100644 --- a/src/evt_core.h +++ b/src/evt_core.h @@ -64,3 +64,4 @@ struct evt_core_fdinfo* evt_core_get_from_url(struct evt_core_ctx* ctx, char* ur void evt_core_free_app_ctx_simple(void* v); struct evt_core_cat* evt_core_get_from_cat(struct evt_core_ctx* ctx, char* name); struct evt_core_fdinfo* evt_core_get_first_from_cat(struct evt_core_ctx* ctx, char* name); +gboolean evt_core_fdinfo_url_set(struct evt_core_fdinfo* fdinfo, char* url); diff --git a/src/faketor.c b/src/faketor.c index b1eab68..f94f514 100644 --- a/src/faketor.c +++ b/src/faketor.c @@ -31,7 +31,13 @@ int faketor_control_listen(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdi int faketor_socks5_server_success(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) { printf("success!\n"); + struct socks5_ctx *s5ctx = fdinfo->other; + char buffer[1024]; + sprintf(buffer, "socket:%s:%d", s5ctx->cr.dest_addr.dns.str, s5ctx->cr.port); + + evt_core_fdinfo_url_set(fdinfo, buffer); + printf("new socket name: %s\n", fdinfo->url); return EVT_CORE_FD_EXHAUSTED; }