diff --git a/platform/src/acceptor_kni_v1.cpp b/platform/src/acceptor_kni_v1.cpp index 06d5dc0..ccd6db0 100644 --- a/platform/src/acceptor_kni_v1.cpp +++ b/platform/src/acceptor_kni_v1.cpp @@ -246,6 +246,8 @@ void __kni_event_cb(evutil_socket_t fd, short what, void * user) else if (rd < 0) { TFE_LOG_ERROR(__ctx->logger, "Failed at recving fds from KNI connection: %s. ", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __close_kni_connection; } else if (rd == 0) @@ -418,6 +420,8 @@ struct acceptor_kni_v1 * acceptor_kni_v1_create(struct tfe_proxy * proxy, const { TFE_LOG_ERROR(__ctx->logger, "Failed at unlink undomain file %s: %s", __ctx->str_unixdomain_file, strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __errout; } @@ -447,6 +451,8 @@ struct acceptor_kni_v1 * acceptor_kni_v1_create(struct tfe_proxy * proxy, const if (ret < 0) { TFE_LOG_ERROR(__ctx->logger, "Failed at creating listener thread: %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __errout; } diff --git a/platform/src/acceptor_kni_v2.cpp b/platform/src/acceptor_kni_v2.cpp index 873ba7b..b323f47 100644 --- a/platform/src/acceptor_kni_v2.cpp +++ b/platform/src/acceptor_kni_v2.cpp @@ -84,6 +84,8 @@ void acceptor_kni_v2_event(evutil_socket_t fd, short what, void * user) else if (rd <= 0) { TFE_LOG_ERROR(__ctx->logger, "failed at recvmsg from scm socket: %s. ", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __die; } @@ -200,6 +202,8 @@ struct acceptor_kni_v2 * acceptor_kni_v2_create(struct tfe_proxy * proxy, const if (remove(__ctx->str_scm_socket) < 0 && errno != ENOENT) { TFE_LOG_ERROR(__ctx->logger, "Failed at remove(%s) : %s", __ctx->str_scm_socket, strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __errout; } @@ -215,6 +219,8 @@ struct acceptor_kni_v2 * acceptor_kni_v2_create(struct tfe_proxy * proxy, const if (unlikely(__ctx->fd_scm_socket < 0)) { TFE_LOG_ERROR(__ctx->logger, "Failed at create scm socket fd: %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __errout; } @@ -224,6 +230,8 @@ struct acceptor_kni_v2 * acceptor_kni_v2_create(struct tfe_proxy * proxy, const if (unlikely(ret < 0)) { TFE_LOG_ERROR(__ctx->logger, "Failed at binding to %s: %s", __sockaddr_un.sun_path, strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __errout; } @@ -248,6 +256,8 @@ struct acceptor_kni_v2 * acceptor_kni_v2_create(struct tfe_proxy * proxy, const if (unlikely(ret < 0)) { TFE_LOG_ERROR(__ctx->logger, "Failed at creating event thread: %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __errout; } diff --git a/platform/src/key_keeper.cpp b/platform/src/key_keeper.cpp index 13fb115..fa932df 100644 --- a/platform/src/key_keeper.cpp +++ b/platform/src/key_keeper.cpp @@ -486,6 +486,8 @@ static int health_check(struct key_keeper *keeper) if (sockfd == -1) { TFE_LOG_ERROR(keeper->logger, "CertStore health check thread fail to create socket(), %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto error; } memset(&addr, 0, sizeof(addr)); @@ -495,16 +497,22 @@ static int health_check(struct key_keeper *keeper) if (connect(sockfd, (const struct sockaddr *)&addr, sizeof(addr)) == -1) { TFE_LOG_ERROR(keeper->logger, "CertStore health check thread fail to connect(), %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto error; } if (write(sockfd, req_buff, strlen(req_buff)) == -1) { TFE_LOG_ERROR(keeper->logger, "CertStore health check thread fail to write(), %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto error; } if (read(sockfd, rsp_buff, sizeof(rsp_buff)) == -1) { TFE_LOG_ERROR(keeper->logger, "CertStore health check thread fail to read(), %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto error; } close(sockfd); @@ -606,6 +614,8 @@ struct key_keeper* key_keeper_init(const char * profile, const char* section, vo if (unlikely(ret < 0)) { TFE_LOG_ERROR(keeper->logger, "Failed at creating certstore health check thread: %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto error_out; } } diff --git a/platform/src/proxy.cpp b/platform/src/proxy.cpp index 9d814a4..1c5f421 100644 --- a/platform/src/proxy.cpp +++ b/platform/src/proxy.cpp @@ -311,6 +311,8 @@ int tfe_proxy_work_thread_run(struct tfe_proxy * proxy) { TFE_LOG_ERROR(proxy->logger, "Failed at pthread_create() for thread %d, error %d: %s", i, errno, strerror(errno)); + /* after log, reset errno */ + errno = 0; return -1; } } @@ -527,6 +529,8 @@ static bool tfe_breakpad_dump_and_report(const google_breakpad::MinidumpDescript { fprintf(stderr, "Failed at exec the upload program %s: %s\n", instance->upload_tools_filename, strerror(errno)); + /* after log, reset errno */ + errno = 0; } exit(EXIT_FAILURE); @@ -540,6 +544,8 @@ static bool tfe_breakpad_dump_and_report(const google_breakpad::MinidumpDescript { /* failed at fork, cannot upload the minidump */ fprintf(stderr, "Failed at fork(), cannot upload minidump file. : %s\n", strerror(errno)); + /* after log, reset errno */ + errno = 0; return succeeded; } } @@ -592,6 +598,8 @@ int breakpad_init_minidump_upload(struct breakpad_instance * instance, const cha if(unlikely(ret < 0)) { TFE_LOG_ERROR(g_default_logger, "Failed at readlink /proc/self/exec: %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto errout; } @@ -637,6 +645,8 @@ struct breakpad_instance * breakpad_init(const char * profile) if (ret < 0) { TFE_LOG_ERROR(g_default_logger, "setrlimit(RLIMIT_CORE, 0) failed: %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; } } @@ -672,6 +682,8 @@ struct breakpad_instance * breakpad_init(const char * profile) if (ret < 0) { TFE_LOG_ERROR(g_default_logger, "setrlimit(RLIMIT_CORE, 0) failed: %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; } } diff --git a/platform/src/sender_scm.cpp b/platform/src/sender_scm.cpp index 90f7294..9d3cc1a 100644 --- a/platform/src/sender_scm.cpp +++ b/platform/src/sender_scm.cpp @@ -60,6 +60,8 @@ struct sender_scm* sender_scm_init(const char *profile, const char *section, voi if(sockfd < 0) { TFE_LOG_ERROR(logger, "Failed at create udp socket, errno is %d, %s", errno, strerror(errno)); + /* after log, reset errno */ + errno = 0; goto error_out; } @@ -101,6 +103,8 @@ int sender_scm_cmsg_send(struct sender_scm *sender, struct tfe_cmsg *cmsg) if(ret < 0) { TFE_LOG_ERROR(logger, "Failed at send udp data, errno is %d, %s", errno, strerror(errno)); + /* after log, reset errno */ + errno = 0; goto error_out; } FREE(&buff); diff --git a/platform/src/ssl_stream.cpp b/platform/src/ssl_stream.cpp index 30ef691..b2db7b6 100644 --- a/platform/src/ssl_stream.cpp +++ b/platform/src/ssl_stream.cpp @@ -802,6 +802,8 @@ static void peek_client_hello_cb(evutil_socket_t fd, short what, void * arg) { char* addr_string=tfe_string_addr_create_by_fd(fd, CONN_DIR_DOWNSTREAM); TFE_LOG_ERROR(ctx->logger, "Error peeking on fd, aborting connection, addr_string is %s, errno is %d, errmsg is %s\n", addr_string, errno, strerror(errno)); + /* after log, reset errno */ + errno = 0; free(addr_string); goto failed; } @@ -1134,6 +1136,8 @@ unsigned long ssl_stream_log_error(struct bufferevent * bev, enum tfe_conn_dir d ERR_GET_FUNC(sslerr), sslerr ? ERR_func_error_string(sslerr) : "-"); + /* after log, reset errno */ + errno = 0; while ((sslerr = bufferevent_get_openssl_error(bev))) { TFE_LOG_ERROR(logger,"Additional SSL error: " @@ -1166,6 +1170,8 @@ unsigned long ssl_stream_log_error(struct bufferevent * bev, enum tfe_conn_dir d ERR_GET_FUNC(sslerr), sslerr ? ERR_func_error_string(sslerr) : "-"); + /* after log, reset errno */ + errno = 0; while ((sslerr = bufferevent_get_openssl_error(bev))) { TFE_LOG_ERROR(logger,"Additional SSL error: " diff --git a/platform/src/ssl_utils.cpp b/platform/src/ssl_utils.cpp index d84de7b..4580f9b 100644 --- a/platform/src/ssl_utils.cpp +++ b/platform/src/ssl_utils.cpp @@ -181,6 +181,8 @@ int ssl_init(void) if ((fd = open("/dev/urandom", O_RDONLY)) == -1) { TFE_LOG_ERROR(NULL, "Error opening /dev/urandom for reading: %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __errout; } @@ -189,6 +191,8 @@ int ssl_init(void) if (read(fd, buf, sizeof(buf)) == -1) { TFE_LOG_ERROR(NULL, "Error reading from /dev/urandom: %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __errout; } diff --git a/platform/src/tcp_stream.cpp b/platform/src/tcp_stream.cpp index a8691fd..fce9cf2 100644 --- a/platform/src/tcp_stream.cpp +++ b/platform/src/tcp_stream.cpp @@ -536,6 +536,8 @@ static void __stream_bev_passthrough_eventcb(struct bufferevent * bev, short eve { TFE_LOG_INFO(g_default_logger, "%s %s connection error, errno = %d, %s", _stream->str_stream_addr, str_conn_dir, errno, strerror(errno)); + /* after log, reset errno */ + errno = 0; } } @@ -830,6 +832,8 @@ static void __stream_bev_eventcb(struct bufferevent * bev, short events, void * { TFE_LOG_INFO(g_default_logger, "%s %s connection error, errno = %d, %s", _stream->str_stream_addr, str_conn_dir, errno, strerror(errno)); + /* after log, reset errno */ + errno = 0; } } else if (events & BEV_EVENT_EOF && rx_offset == 0 && _stream->session_type == STREAM_PROTO_SSL) @@ -1211,6 +1215,8 @@ int __fd_ttl_option_setup(struct tfe_stream_private * _stream, evutil_socket_t f if (getsockname(fd, (struct sockaddr *) &sk_storage, &sk_storage_len) < 0) { TFE_STREAM_LOG_ERROR(_stream, "getsockname(fd = %d) failed: %s", fd, strerror(errno)); + /* after log, reset errno */ + errno = 0; return -1; } @@ -1234,7 +1240,9 @@ int __fd_ttl_option_setup(struct tfe_stream_private * _stream, evutil_socket_t f if (ret < 0) { TFE_STREAM_LOG_ERROR(_stream, "setsockopt(ttl = %u, fd = %d, family = %s) failed: %s", - __ttl, fd, __str_family, strerror(errno)); + __ttl, fd, __str_family, strerror(errno)); + /* after log, reset errno */ + errno = 0; return -2; } @@ -1257,6 +1265,8 @@ void __stream_fd_option_setup(struct tfe_stream_private * _stream, evutil_socket { TFE_LOG_ERROR(g_default_logger, "%s: setsockopt(SO_RCVBUF, %d) failed, ignored: %s", stream->str_stream_info, tcp_options->sz_rcv_buffer, strerror(errno)); + /* after log, reset errno */ + errno = 0; } } @@ -1267,6 +1277,8 @@ void __stream_fd_option_setup(struct tfe_stream_private * _stream, evutil_socket { TFE_LOG_ERROR(g_default_logger, "%s: setsockopt(SO_SNDBUF, %d) failed, ignored: %s", stream->str_stream_info, tcp_options->sz_snd_buffer, strerror(errno)); + /* after log, reset errno */ + errno = 0; } } @@ -1277,6 +1289,8 @@ void __stream_fd_option_setup(struct tfe_stream_private * _stream, evutil_socket { TFE_LOG_ERROR(g_default_logger, "%s: setsockopt(SO_KEEPALIVE, %d) failed, ignored: %s", stream->str_stream_info, tcp_options->so_keepalive, strerror(errno)); + /* after log, reset errno */ + errno = 0; } } @@ -1286,6 +1300,8 @@ void __stream_fd_option_setup(struct tfe_stream_private * _stream, evutil_socket { TFE_LOG_ERROR(g_default_logger, "%s: setsockopt(TCP_KEEPCNT, %d) failed, ignored: %s", stream->str_stream_info, tcp_options->tcp_keepcnt, strerror(errno)); + /* after log, reset errno */ + errno = 0; } } @@ -1295,6 +1311,8 @@ void __stream_fd_option_setup(struct tfe_stream_private * _stream, evutil_socket { TFE_LOG_ERROR(g_default_logger, "%s: setsockopt(TCP_KEEPINTVL, %d) failed, ignored: %s", stream->str_stream_info, tcp_options->tcp_keepintvl, strerror(errno)); + /* after log, reset errno */ + errno = 0; } } @@ -1304,6 +1322,8 @@ void __stream_fd_option_setup(struct tfe_stream_private * _stream, evutil_socket { TFE_LOG_ERROR(g_default_logger, "%s: setsockopt(TCP_KEEPIDLE, %d) failed, ignored: %s", stream->str_stream_info, tcp_options->tcp_keepidle, strerror(errno)); + /* after log, reset errno */ + errno = 0; } } @@ -1314,6 +1334,8 @@ void __stream_fd_option_setup(struct tfe_stream_private * _stream, evutil_socket { TFE_LOG_ERROR(g_default_logger, "%s: setsockopt(TCP_USER_TIMEOUT, %d) failed, ignored: %s", stream->str_stream_info, tcp_options->tcp_user_timeout, strerror(errno)); + /* after log, reset errno */ + errno = 0; } } diff --git a/platform/src/watchdog_kni.cpp b/platform/src/watchdog_kni.cpp index 3d6585a..1769b16 100644 --- a/platform/src/watchdog_kni.cpp +++ b/platform/src/watchdog_kni.cpp @@ -50,25 +50,37 @@ static int watchdog_kni_fd_make_keepalive(int fd) if (setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (const void *) &so_keepalive, sizeof(int)) == -1) { TFE_LOG_ERROR(g_default_logger, "watchdog fd setup setsockopt(SO_KEEPALIVE, %d) failed : %s", - so_keepalive, strerror(errno)); goto errout; + so_keepalive, strerror(errno)); + /* after log, reset errno */ + errno = 0; + goto errout; } if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT, (const void *) &tcp_keepcnt, sizeof(int)) == -1) { TFE_LOG_ERROR(g_default_logger, "watchdog fd setup setsockopt(TCP_KEEPCNT, %d) failed: %s", - tcp_keepcnt, strerror(errno)); goto errout; + tcp_keepcnt, strerror(errno)); + /* after log, reset errno */ + errno = 0; + goto errout; } if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, (const void *) &tcp_keepintvl, sizeof(int)) == -1) { TFE_LOG_ERROR(g_default_logger, "watchdog fd setup setsockopt(TCP_KEEPINTVL, %d) failed: %s", - tcp_keepintvl, strerror(errno)); goto errout; + tcp_keepintvl, strerror(errno)); + /* after log, reset errno */ + errno = 0; + goto errout; } if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, (const void *) &tcp_keepidle, sizeof(int)) == -1) { TFE_LOG_ERROR(g_default_logger, "watchdog fd setup setsockopt(TCP_KEEPIDLE, %d) failed: %s", - tcp_keepidle, strerror(errno)); goto errout; + tcp_keepidle, strerror(errno)); + /* after log, reset errno */ + errno = 0; + goto errout; } return 0; @@ -155,6 +167,8 @@ static void watchdog_kni_eventcb(struct bufferevent *bev, short what, void *ctx) if (what & BEV_EVENT_ERROR) { TFE_LOG_ERROR(__ctx->logger, "KNI watchdog connection broken: %s.", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto retry; } } @@ -232,6 +246,8 @@ struct watchdog_kni * watchdog_kni_create(struct tfe_proxy * proxy, const char * if (!__ctx->ev_base) { TFE_LOG_ERROR(logger, "failed at watchdog event_base_new(): %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __errout; } @@ -243,6 +259,8 @@ struct watchdog_kni * watchdog_kni_create(struct tfe_proxy * proxy, const char * if (unlikely(ret < 0)) { TFE_LOG_ERROR(__ctx->logger, "Failed at creating watchdog thread: %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto __errout; } diff --git a/plugin/business/traffic-mirror/src/ethdev.cpp b/plugin/business/traffic-mirror/src/ethdev.cpp index 77b34f1..ed7bfee 100644 --- a/plugin/business/traffic-mirror/src/ethdev.cpp +++ b/plugin/business/traffic-mirror/src/ethdev.cpp @@ -214,6 +214,8 @@ struct traffic_mirror_ethdev * traffic_mirror_ethdev_pcap_create(const char * st if(fd < 0) { TFE_LOG_ERROR(logger, "failed at create socket: %s", strerror(errno)); + /* after log, reset errno */ + errno = 0; goto errout; } @@ -223,6 +225,8 @@ struct traffic_mirror_ethdev * traffic_mirror_ethdev_pcap_create(const char * st if(ioctl(fd, SIOCGIFHWADDR, &if_req) < 0) { TFE_LOG_ERROR(logger, "failed at read hwaddr of device %s: %s", str_ethdev, strerror(errno)); + /* after log, reset errno */ + errno = 0; goto errout; } @@ -238,6 +242,8 @@ struct traffic_mirror_ethdev * traffic_mirror_ethdev_pcap_create(const char * st if (ioctl(fd, SIOCGIFMTU, &if_req) < 0) { TFE_LOG_ERROR(logger, "failed at read mtu of device %s: %s", str_ethdev, strerror(errno)); + /* after log, reset errno */ + errno = 0; goto errout; }