debug: 增加终端日志测试连通性
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#include "peer_kcp_client.h"
|
||||
|
||||
#include <pthread.h>
|
||||
#include <string.h>
|
||||
|
||||
typedef struct kcppeer_receive_ctx {
|
||||
kcp_client_t *client;
|
||||
@@ -242,10 +243,12 @@ int main(int argc, char **argv) {
|
||||
actual_dial_target = relay_via[0] != '\0' ? relay_via : server_addr;
|
||||
client = kcp_client_dial(server_addr, relay_via, peer_id, bind_ip, bind_device, latency_logger, packet_logger, stats_logger, stats_interval_ms);
|
||||
if (client == NULL) {
|
||||
int saved_errno = errno;
|
||||
const char *reason = saved_errno != 0 ? strerror(saved_errno) : "unknown error";
|
||||
if (relay_via[0] != '\0') {
|
||||
fprintf(stderr, "kcppeer: dial target %s failed (logical server %s)\n", actual_dial_target, server_addr);
|
||||
fprintf(stderr, "kcppeer: dial target %s failed (logical server %s): %s (errno=%d)\n", actual_dial_target, server_addr, reason, saved_errno);
|
||||
} else {
|
||||
fprintf(stderr, "kcppeer: dial kcp server %s failed\n", server_addr);
|
||||
fprintf(stderr, "kcppeer: dial kcp server %s failed: %s (errno=%d)\n", server_addr, reason, saved_errno);
|
||||
}
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "peer_kcp_client.h"
|
||||
|
||||
#include <pthread.h>
|
||||
#include <string.h>
|
||||
|
||||
struct kcp_client {
|
||||
char id[OMNI_MAX_PEER_ID];
|
||||
@@ -80,6 +81,7 @@ kcp_client_t *kcp_client_dial(const char *server_addr, const char *dial_addr, co
|
||||
kcp_client_t *client;
|
||||
const char *actual_dial_addr = (dial_addr != NULL && dial_addr[0] != '\0') ? dial_addr : server_addr;
|
||||
message_t register_msg;
|
||||
int saved_errno = 0;
|
||||
|
||||
client = (kcp_client_t *) calloc(1, sizeof(*client));
|
||||
if (client == NULL) {
|
||||
@@ -91,7 +93,9 @@ kcp_client_t *kcp_client_dial(const char *server_addr, const char *dial_addr, co
|
||||
client->logger = logger;
|
||||
client->conn = kcp_conn_dial(actual_dial_addr, bind_ip, bind_device, packet_logger, logger, OMNI_NODE_ROLE_PEER, peer_id, stats_logger, stats_interval_ms);
|
||||
if (client->conn == NULL) {
|
||||
saved_errno = errno;
|
||||
kcp_client_free(client);
|
||||
errno = saved_errno;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -101,7 +105,9 @@ kcp_client_t *kcp_client_dial(const char *server_addr, const char *dial_addr, co
|
||||
snprintf(register_msg.from, sizeof(register_msg.from), "%s", peer_id);
|
||||
snprintf(register_msg.to, sizeof(register_msg.to), "%s", SERVER_PEER_ID);
|
||||
if (kcp_conn_send(client->conn, ®ister_msg) != 0) {
|
||||
saved_errno = errno;
|
||||
kcp_client_free(client);
|
||||
errno = saved_errno;
|
||||
return NULL;
|
||||
}
|
||||
return client;
|
||||
|
||||
@@ -766,6 +766,7 @@ static void *kcp_socket_debug_errqueue_thread(void *arg) {
|
||||
}
|
||||
|
||||
static int kcp_socket_debug_init(kcp_socket_debug_state_t *state, int fd, kcp_packet_debug_logger_t *logger, const char *node_role, const char *node_id) {
|
||||
int thread_rc;
|
||||
memset(state, 0, sizeof(*state));
|
||||
state->fd = fd;
|
||||
state->logger = logger;
|
||||
@@ -779,7 +780,9 @@ static int kcp_socket_debug_init(kcp_socket_debug_state_t *state, int fd, kcp_pa
|
||||
pthread_mutex_destroy(&state->pending_mu);
|
||||
return -1;
|
||||
}
|
||||
if (pthread_create(&state->errqueue_thread, NULL, kcp_socket_debug_errqueue_thread, state) != 0) {
|
||||
thread_rc = pthread_create(&state->errqueue_thread, NULL, kcp_socket_debug_errqueue_thread, state);
|
||||
if (thread_rc != 0) {
|
||||
errno = thread_rc;
|
||||
pthread_mutex_destroy(&state->write_mu);
|
||||
pthread_mutex_destroy(&state->pending_mu);
|
||||
return -1;
|
||||
@@ -1202,6 +1205,7 @@ kcp_conn_t *kcp_conn_dial(const char *server_addr, const char *bind_ip, const ch
|
||||
int fd = kcp_socket_open_dial(server_addr, bind_ip, bind_device, &remote_addr, &remote_len, &family);
|
||||
kcp_conn_t *conn;
|
||||
kcp_socket_debug_state_t *sock_state;
|
||||
int thread_rc;
|
||||
(void) family;
|
||||
if (fd < 0) {
|
||||
return NULL;
|
||||
@@ -1225,7 +1229,9 @@ kcp_conn_t *kcp_conn_dial(const char *server_addr, const char *bind_ip, const ch
|
||||
}
|
||||
conn->is_client = 1;
|
||||
conn->owns_socket = 1;
|
||||
if (pthread_create(&conn->recv_thread, NULL, kcp_client_recv_thread_main, conn) != 0) {
|
||||
thread_rc = pthread_create(&conn->recv_thread, NULL, kcp_client_recv_thread_main, conn);
|
||||
if (thread_rc != 0) {
|
||||
errno = thread_rc;
|
||||
kcp_conn_free(conn);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user