From 90ca8aca0154db099155e70ac9771946cb135ea4 Mon Sep 17 00:00:00 2001 From: ruti Date: Sat, 24 Feb 2024 20:44:54 +0300 Subject: [PATCH] Move LOG to error.h --- conev.c | 6 +++--- desync.c | 10 ++++++---- error.h | 34 +++++++++++++++++++++++++++++----- params.h | 16 ---------------- proxy.c | 24 ++++++++++++------------ 5 files changed, 50 insertions(+), 40 deletions(-) diff --git a/conev.c b/conev.c index 21e9981..af829d5 100644 --- a/conev.c +++ b/conev.c @@ -19,7 +19,7 @@ struct poolhd *init_pool(int count) #ifndef NOEPOLL int efd = epoll_create(count); if (efd < 0) { - perror("epoll_create"); + uniperror("epoll_create"); free(pool); return 0; } @@ -149,7 +149,7 @@ struct eval *next_event(struct poolhd *pool, int *offs, int *type) if (i < 0) { i = (epoll_wait(pool->efd, pool->pevents, pool->max, -1) - 1); if (i < 0) { - perror("epoll_wait"); + uniperror("epoll_wait"); return 0; } } @@ -171,7 +171,7 @@ int mod_etype(struct poolhd *pool, struct eval *val, int type, char add) val->events = ev.events; int s = epoll_ctl(pool->efd, EPOLL_CTL_MOD, val->fd, &ev); if (s) - perror("epoll_ctl"); + uniperror("epoll_ctl"); return s; } diff --git a/desync.c b/desync.c index efb9d39..2209d07 100644 --- a/desync.c +++ b/desync.c @@ -75,7 +75,7 @@ int fake_attack(int sfd, char *buffer, int ffd = memfd_create("name", O_RDWR); if (ffd < 0) { - perror("memfd_create"); + uniperror("memfd_create"); return -1; } char *p = 0; @@ -83,12 +83,12 @@ int fake_attack(int sfd, char *buffer, while (status) { if (ftruncate(ffd, pos) < 0) { - perror("ftruncate"); + uniperror("ftruncate"); break; } p = mmap(0, pos, PROT_WRITE, MAP_SHARED, ffd, 0); if (p == MAP_FAILED) { - perror("mmap"); + uniperror("mmap"); p = 0; break; } @@ -163,6 +163,7 @@ int desync(int sfd, char *buffer, size_t bfsize, } if (type == IS_HTTP && params.mod_http) { + LOG(LOG_S, "modify HTTP: n=%ld\n", n); if (mod_http(buffer, n, params.mod_http)) { fprintf(stderr, "mod http error\n"); return -1; @@ -176,6 +177,7 @@ int desync(int sfd, char *buffer, size_t bfsize, else if (o < 0) { o += n; } + LOG(LOG_S, "tlsrec: pos=%d, n=%ld\n", o, n); n = part_tls(buffer, bfsize, n, o); } @@ -188,7 +190,7 @@ int desync(int sfd, char *buffer, size_t bfsize, else if (pos < 0) { pos += n; } - LOG(LOG_L, "split pos: %d, n: %ld\n", pos, n); + LOG(LOG_L, "split-pos=%d, n=%ld\n", pos, n); if (params.custom_ttl) { if (setttl(sfd, params.def_ttl, fa) < 0) { diff --git a/error.h b/error.h index 3b8a16c..1b27641 100644 --- a/error.h +++ b/error.h @@ -2,7 +2,10 @@ #include #ifdef _WIN32 -#include + #include +#endif +#ifdef ANDROID_APP + #include #endif #ifdef _WIN32 @@ -14,11 +17,17 @@ #endif #ifdef _WIN32 -#define uniperror(str) \ - fprintf(stderr, "%s: %d\n", str, WSAGetLastError()) + #define uniperror(str) \ + fprintf(stderr, "%s: %d\n", str, WSAGetLastError()) #else -#define uniperror(str) \ - perror(str) + #ifdef ANDROID_APP + #define uniperror(str) \ + __android_log_print(ANDROID_LOG_ERROR, "proxy", + "%s: %s\n", str, strerror(errno)) + #else + #define uniperror(str) \ + perror(str) + #endif #endif inline const int unie(int e) @@ -39,3 +48,18 @@ inline const int unie(int e) #endif return e; } + +#ifdef ANDROID_APP + #define LOG_E ANDROID_LOG_ERROR + #define LOG_S ANDROID_LOG_DEBUG + #define LOG_L ANDROID_LOG_VERBOSE + #define LOG(s, str, ...) \ + __android_log_print(s, "proxy", str, ##__VA_ARGS__) +#else + #define LOG_E -1 + #define LOG_S 1 + #define LOG_L 2 + #define LOG(s, str, ...) \ + if (params.debug >= s) \ + fprintf(stderr, str, ##__VA_ARGS__) +#endif \ No newline at end of file diff --git a/params.h b/params.h index bc113e5..0024b25 100644 --- a/params.h +++ b/params.h @@ -5,9 +5,6 @@ #else #include #endif -#if __ANDROID_NDK__ - #include -#endif enum demode { DESYNC_NONE, @@ -46,16 +43,3 @@ struct packet { }; extern struct packet fake_tls; extern struct packet fake_http; - -#if __ANDROID_NDK__ - #define LOG_S ANDROID_LOG_DEBUG - #define LOG_L ANDROID_LOG_VERBOSE - #define LOG(s, str, ...) \ - __android_log_print(s, "proxy", str, ##__VA_ARGS__) -#else - #define LOG_S 1 - #define LOG_L 2 - #define LOG(s, str, ...) \ - if (params.debug >= s) printf(str, ##__VA_ARGS__) -#endif - diff --git a/proxy.c b/proxy.c index 3591b78..23150bf 100644 --- a/proxy.c +++ b/proxy.c @@ -81,7 +81,7 @@ static inline int nb_socket(int domain, int type) #else #ifndef __linux__ if (fcntl(fd, F_SETFL, O_NONBLOCK) < 0) { - perror("fcntl"); + uniperror("fcntl"); close(fd); return -1; } @@ -202,7 +202,7 @@ int s4_get_addr(char *buff, size_t n, return -1; } if (resolve(id_end + 1, len, dst)) { - fprintf(stderr, "not resolved: %.*s\n", len, id_end + 1); + LOG(LOG_E, "not resolved: %.*s\n", len, id_end + 1); return -1; } } @@ -224,11 +224,11 @@ int s5_get_addr(char *buffer, ssize_t n, (r->atp == S_ATP_ID ? r->id.len + S_SIZE_ID : (r->atp == S_ATP_I6 ? S_SIZE_I6 : 0))); if (n < o) { - fprintf(stderr, "ss: bad request\n"); + LOG(LOG_E, "ss: bad request\n"); return S_ER_GEN; } if (r->cmd != S_CMD_CONN) { - fprintf(stderr, "ss: unsupported cmd: 0x%x\n", r->cmd); + LOG(LOG_E, "ss: unsupported cmd: 0x%x\n", r->cmd); return S_ER_CMD; } switch (r->atp) { @@ -243,7 +243,7 @@ int s5_get_addr(char *buffer, ssize_t n, } if (r->id.len < 3 || resolve(r->id.domain, r->id.len, addr)) { - fprintf(stderr, "not resolved: %.*s\n", r->id.len, r->id.domain); + LOG(LOG_E, "not resolved: %.*s\n", r->id.len, r->id.domain); return S_ER_HOST; } break; @@ -272,7 +272,7 @@ int create_conn(struct poolhd *pool, map_fix(&addr, 0); } if (addr.sa.sa_family != params.baddr.sin6_family) { - fprintf(stderr, "different addresses family\n"); + LOG(LOG_E, "different addresses family\n"); return -1; } int sfd = nb_socket(addr.sa.sa_family, SOCK_STREAM); @@ -350,7 +350,7 @@ static inline int on_request(struct poolhd *pool, struct eval *val, return 0; } if (n < S_SIZE_MIN) { - fprintf(stderr, "ss: request to small\n"); + LOG(LOG_E, "ss: request to small\n"); return -1; } int s5e = s5_get_addr(buffer, n, &dst); @@ -377,7 +377,7 @@ static inline int on_request(struct poolhd *pool, struct eval *val, } } else { - fprintf(stderr, "ss: invalid version: 0x%x (%lu)\n", *buffer, n); + LOG(LOG_E, "ss: invalid version: 0x%x (%lu)\n", *buffer, n); return -1; } val->type = EV_IGNORE; @@ -411,7 +411,7 @@ static inline int on_accept(struct poolhd *pool, struct eval *val) uniperror("ioctlsocket"); #else if (fcntl(c, F_SETFL, O_NONBLOCK) < 0) { - perror("fcntl"); + uniperror("fcntl"); #endif close(c); continue; @@ -603,11 +603,11 @@ int big_loop(int srvfd) continue; default: - fprintf(stderr, "???\n"); + LOG(LOG_E, "???\n"); NOT_EXIT = 0; } } - fprintf(stderr, "exit\n"); + LOG(LOG_E, "exit\n"); free(buffer); destroy_pool(pool); return 0; @@ -618,7 +618,7 @@ int listener(struct sockaddr_ina srv) { #ifdef SIGPIPE if (signal(SIGPIPE, SIG_IGN)) - perror("signal SIGPIPE!"); + uniperror("signal SIGPIPE!"); #endif signal(SIGINT, on_cancel);