|
|
|
@ -98,7 +98,7 @@ static void mock_accept_cb(socket_t sock, void *arg) { |
|
|
|
m->conn_sock = accept(sock, (struct sockaddr *)&sa, &sl); |
|
|
|
m->conn_sock = accept(sock, (struct sockaddr *)&sa, &sl); |
|
|
|
if (m->conn_sock == SOCKET_INVALID) return; |
|
|
|
if (m->conn_sock == SOCKET_INVALID) return; |
|
|
|
socket_set_nonblocking(m->conn_sock); |
|
|
|
socket_set_nonblocking(m->conn_sock); |
|
|
|
m->conn_id = uasync_add_socket_t(m->ua, m->conn_sock, mock_read_cb, NULL, NULL, m); |
|
|
|
m->conn_id = uasync_add_socket_t(m->ua, m->conn_sock, mock_read_cb, NULL, NULL, "mock_conn", m); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static int mock_start(struct mock *m, struct UASYNC *ua, int port, uint8_t mode) { |
|
|
|
static int mock_start(struct mock *m, struct UASYNC *ua, int port, uint8_t mode) { |
|
|
|
@ -112,7 +112,7 @@ static int mock_start(struct mock *m, struct UASYNC *ua, int port, uint8_t mode) |
|
|
|
a.sin_family = AF_INET; a.sin_addr.s_addr = htonl(INADDR_LOOPBACK); a.sin_port = htons((uint16_t)port); |
|
|
|
a.sin_family = AF_INET; a.sin_addr.s_addr = htonl(INADDR_LOOPBACK); a.sin_port = htons((uint16_t)port); |
|
|
|
if (bind(m->listen_sock, (struct sockaddr *)&a, sizeof(a)) < 0) return -1; |
|
|
|
if (bind(m->listen_sock, (struct sockaddr *)&a, sizeof(a)) < 0) return -1; |
|
|
|
if (listen(m->listen_sock, 8) < 0) return -1; |
|
|
|
if (listen(m->listen_sock, 8) < 0) return -1; |
|
|
|
m->listen_id = uasync_add_socket_t(ua, m->listen_sock, mock_accept_cb, NULL, NULL, m); |
|
|
|
m->listen_id = uasync_add_socket_t(ua, m->listen_sock, mock_accept_cb, NULL, NULL, "mock_listen", m); |
|
|
|
return m->listen_id ? 0 : -1; |
|
|
|
return m->listen_id ? 0 : -1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -200,7 +200,7 @@ static void umock_accept_cb(socket_t sock, void *arg) { |
|
|
|
m->ctrl_sock = cs; |
|
|
|
m->ctrl_sock = cs; |
|
|
|
m->cstate = 0; |
|
|
|
m->cstate = 0; |
|
|
|
m->cblen = 0; |
|
|
|
m->cblen = 0; |
|
|
|
m->ctrl_id = uasync_add_socket_t(m->ua, cs, umock_ctrl_read_cb, NULL, NULL, m); |
|
|
|
m->ctrl_id = uasync_add_socket_t(m->ua, cs, umock_ctrl_read_cb, NULL, NULL, "umock_ctrl", m); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Релей: принять обёрнутую датаграмму, сохранить dst (peer) + payload, отправить эхо с SRC=peer.
|
|
|
|
// Релей: принять обёрнутую датаграмму, сохранить dst (peer) + payload, отправить эхо с SRC=peer.
|
|
|
|
@ -265,7 +265,7 @@ static int umock_start(struct udp_mock *m, struct UASYNC *ua, int listen_port) { |
|
|
|
a.sin_family = AF_INET; a.sin_addr.s_addr = htonl(INADDR_LOOPBACK); a.sin_port = htons((uint16_t)listen_port); |
|
|
|
a.sin_family = AF_INET; a.sin_addr.s_addr = htonl(INADDR_LOOPBACK); a.sin_port = htons((uint16_t)listen_port); |
|
|
|
if (bind(m->listen_sock, (struct sockaddr *)&a, sizeof(a)) < 0) return -1; |
|
|
|
if (bind(m->listen_sock, (struct sockaddr *)&a, sizeof(a)) < 0) return -1; |
|
|
|
if (listen(m->listen_sock, 8) < 0) return -1; |
|
|
|
if (listen(m->listen_sock, 8) < 0) return -1; |
|
|
|
m->listen_id = uasync_add_socket_t(ua, m->listen_sock, umock_accept_cb, NULL, NULL, m); |
|
|
|
m->listen_id = uasync_add_socket_t(ua, m->listen_sock, umock_accept_cb, NULL, NULL, "umock_listen", m); |
|
|
|
|
|
|
|
|
|
|
|
m->udp_sock = socket(AF_INET, SOCK_DGRAM, 0); |
|
|
|
m->udp_sock = socket(AF_INET, SOCK_DGRAM, 0); |
|
|
|
if (m->udp_sock == SOCKET_INVALID) return -1; |
|
|
|
if (m->udp_sock == SOCKET_INVALID) return -1; |
|
|
|
@ -276,7 +276,7 @@ static int umock_start(struct udp_mock *m, struct UASYNC *ua, int listen_port) { |
|
|
|
struct sockaddr_in got; socklen_t gl = sizeof(got); |
|
|
|
struct sockaddr_in got; socklen_t gl = sizeof(got); |
|
|
|
getsockname(m->udp_sock, (struct sockaddr *)&got, &gl); |
|
|
|
getsockname(m->udp_sock, (struct sockaddr *)&got, &gl); |
|
|
|
m->udp_port = ntohs(got.sin_port); |
|
|
|
m->udp_port = ntohs(got.sin_port); |
|
|
|
m->udp_id = uasync_add_socket_t(ua, m->udp_sock, umock_udp_read_cb, NULL, NULL, m); |
|
|
|
m->udp_id = uasync_add_socket_t(ua, m->udp_sock, umock_udp_read_cb, NULL, NULL, "umock_udp", m); |
|
|
|
return (m->listen_id && m->udp_id) ? 0 : -1; |
|
|
|
return (m->listen_id && m->udp_id) ? 0 : -1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -332,7 +332,7 @@ static int test1_noauth_v4(void) { |
|
|
|
TASSERT(m.got_connect == 1); |
|
|
|
TASSERT(m.got_connect == 1); |
|
|
|
|
|
|
|
|
|
|
|
int got = 0; |
|
|
|
int got = 0; |
|
|
|
void *sid = uasync_add_socket_t(ua, g_sock, read_echo_cb, NULL, NULL, &got); |
|
|
|
void *sid = uasync_add_socket_t(ua, g_sock, read_echo_cb, NULL, NULL, "echo", &got); |
|
|
|
TASSERT(sid != NULL); |
|
|
|
TASSERT(sid != NULL); |
|
|
|
uint8_t x = 'A'; |
|
|
|
uint8_t x = 'A'; |
|
|
|
send(g_sock, &x, 1, 0); |
|
|
|
send(g_sock, &x, 1, 0); |
|
|
|
|