mirror of
https://github.com/open5gs/open5gs.git
synced 2026-05-05 23:37:22 +00:00
c_sockaddr_t is created for supporting both IPv4 and IPv6 address.
This commit is contained in:
parent
a4d1bae083
commit
6db21f54c1
6 changed files with 184 additions and 118 deletions
|
|
@ -97,8 +97,7 @@ static void *THREAD_FUNC test3_main(thread_id id, void *data)
|
|||
abts_case *tc = data;
|
||||
status_t rv;
|
||||
sock_id sctp;
|
||||
struct sockaddr_in dst_addr;
|
||||
socklen_t addrlen;
|
||||
c_sockaddr_t to;
|
||||
char str[STRLEN];
|
||||
ssize_t size;
|
||||
int rc;
|
||||
|
|
@ -106,14 +105,11 @@ static void *THREAD_FUNC test3_main(thread_id id, void *data)
|
|||
rv = sctp_open(&sctp, AF_INET, SOCK_SEQPACKET, NULL, 0, NULL, 0, 0);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
memset(&dst_addr, 0, sizeof(dst_addr));
|
||||
dst_addr.sin_port = htons(PORT);
|
||||
dst_addr.sin_family = AF_INET;
|
||||
rc = inet_pton(AF_INET, "127.0.0.1", &(dst_addr.sin_addr));
|
||||
ABTS_INT_EQUAL(tc, 1, rc);
|
||||
rv = sock_pton("127.0.0.1", PORT, &to);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
size = sctp_write(sctp, DATASTR, strlen(DATASTR),
|
||||
(struct sockaddr *)&dst_addr, sizeof(struct sockaddr), PPID, 0);
|
||||
&to, sock_len(&to), PPID, 0);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), size);
|
||||
|
||||
rv = sock_delete(sctp);
|
||||
|
|
@ -128,10 +124,10 @@ static void sctp_test3(abts_case *tc, void *data)
|
|||
sock_id sctp;
|
||||
status_t rv;
|
||||
ssize_t size;
|
||||
struct sockaddr_in src_addr;
|
||||
socklen_t addrlen;
|
||||
c_sockaddr_t from;
|
||||
socklen_t fromlen;
|
||||
char str[STRLEN];
|
||||
char buf[INET6_ADDRSTRLEN];
|
||||
char buf[CORE_ADDRSTRLEN];
|
||||
c_uint32_t ppid;
|
||||
|
||||
rv = sctp_open(&sctp, AF_INET, SOCK_SEQPACKET,
|
||||
|
|
@ -141,13 +137,11 @@ static void sctp_test3(abts_case *tc, void *data)
|
|||
rv = thread_create(&test3_thread, NULL, test3_main, tc);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
addrlen = sizeof(src_addr);
|
||||
size = sctp_read(sctp, str, STRLEN,
|
||||
(struct sockaddr *)&src_addr, &addrlen, &ppid, NULL);
|
||||
size = sctp_read(sctp, str, STRLEN, &from, &fromlen, &ppid, NULL);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), size);
|
||||
ABTS_INT_EQUAL(tc, sizeof(src_addr), addrlen);
|
||||
ABTS_INT_EQUAL(tc, sizeof(struct sockaddr_in), fromlen);
|
||||
ABTS_INT_EQUAL(tc, PPID, ppid);
|
||||
ABTS_STR_EQUAL(tc, "127.0.0.1", SOCK_NTOP(&src_addr, buf));
|
||||
ABTS_STR_EQUAL(tc, "127.0.0.1", SOCK_NTOP(&from, buf));
|
||||
|
||||
thread_join(&rv, test3_thread);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), rv);
|
||||
|
|
@ -189,11 +183,11 @@ static void sctp_test4(abts_case *tc, void *data)
|
|||
sock_id sctp;
|
||||
status_t rv;
|
||||
ssize_t size;
|
||||
struct sockaddr_in6 src_addr;
|
||||
socklen_t addrlen;
|
||||
c_sockaddr_t from;
|
||||
socklen_t fromlen;
|
||||
char str[STRLEN];
|
||||
c_uint32_t ppid;
|
||||
char buf[INET6_ADDRSTRLEN];
|
||||
char buf[CORE_ADDRSTRLEN];
|
||||
|
||||
rv = sctp_open(&sctp, AF_INET6, SOCK_SEQPACKET,
|
||||
NULL, PORT, NULL, 0, SOCK_F_BIND);
|
||||
|
|
@ -202,15 +196,13 @@ static void sctp_test4(abts_case *tc, void *data)
|
|||
rv = thread_create(&test4_thread, NULL, test4_main, tc);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
addrlen = sizeof(src_addr);
|
||||
size = sctp_read(sctp, str, STRLEN, (struct sockaddr *)&src_addr, &addrlen, &ppid, NULL);
|
||||
size = sctp_read(sctp, str, STRLEN, &from, &fromlen, &ppid, NULL);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), size);
|
||||
ABTS_INT_EQUAL(tc, sizeof(src_addr), addrlen);
|
||||
ABTS_STR_EQUAL(tc, "::1", SOCK_NTOP(&src_addr, buf));
|
||||
ABTS_INT_EQUAL(tc, sizeof(struct sockaddr_in6), fromlen);
|
||||
ABTS_STR_EQUAL(tc, "::1", SOCK_NTOP(&from, buf));
|
||||
ABTS_INT_EQUAL(tc, PPID, ppid);
|
||||
|
||||
size = sctp_write(sctp, DATASTR, strlen(DATASTR),
|
||||
(struct sockaddr *)&src_addr, addrlen, PPID, 0);
|
||||
size = sctp_write(sctp, DATASTR, strlen(DATASTR), &from, fromlen, PPID, 0);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), size);
|
||||
|
||||
thread_join(&rv, test4_thread);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue