mirror of
https://github.com/open5gs/open5gs.git
synced 2026-05-05 23:37:22 +00:00
previous archi is failed in FreeBSD OS
re-architecture socket library
This commit is contained in:
parent
113cbd0e9e
commit
f186ec93dd
12 changed files with 893 additions and 638 deletions
|
|
@ -1,6 +1,6 @@
|
|||
#include "core_debug.h"
|
||||
#include "core_thread.h"
|
||||
#include "core_sctp.h"
|
||||
#include "core_network.h"
|
||||
|
||||
#include "testutil.h"
|
||||
|
||||
|
|
@ -14,22 +14,19 @@ static void sctp_test1(abts_case *tc, void *data)
|
|||
sock_id sctp;
|
||||
status_t rv;
|
||||
|
||||
rv = sctp_open(&sctp, AF_UNSPEC, SOCK_SEQPACKET,
|
||||
0, PORT, NULL, 0, SOCK_F_BIND);
|
||||
rv = sctp_socket(&sctp, AF_INET6, SOCK_SEQPACKET);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
rv = sock_delete(sctp);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
rv = sctp_open(&sctp, AF_UNSPEC, SOCK_STREAM,
|
||||
"127.0.0.1", PORT, NULL, 0, SOCK_F_BIND);
|
||||
rv = sctp_server(&sctp, AF_UNSPEC, SOCK_STREAM, "127.0.0.1", PORT);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
rv = sock_delete(sctp);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
rv = sctp_open(&sctp, AF_UNSPEC, SOCK_SEQPACKET,
|
||||
"::1", PORT, NULL, 0, SOCK_F_BIND);
|
||||
rv = sctp_server(&sctp, AF_UNSPEC, SOCK_SEQPACKET, "::1", PORT);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
rv = sock_delete(sctp);
|
||||
|
|
@ -45,12 +42,12 @@ static void *THREAD_FUNC test2_main(thread_id id, void *data)
|
|||
char str[STRLEN];
|
||||
ssize_t size;
|
||||
c_uint32_t ppid;
|
||||
c_sockaddr_t sa;
|
||||
|
||||
rv = sctp_open(&sctp, AF_UNSPEC, SOCK_SEQPACKET,
|
||||
NULL, 0, "::1", PORT, SOCK_F_CONNECT);
|
||||
rv = sctp_client(&sctp, AF_UNSPEC, SOCK_SEQPACKET, "::1", PORT);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
size = sctp_read(sctp, str, STRLEN, NULL, NULL, &ppid, NULL);
|
||||
size = core_sctp_recvmsg(sctp, str, STRLEN, &sa, &ppid, NULL);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), size);
|
||||
ABTS_INT_EQUAL(tc, PPID, ppid);
|
||||
|
||||
|
|
@ -63,22 +60,21 @@ static void *THREAD_FUNC test2_main(thread_id id, void *data)
|
|||
|
||||
static void sctp_test2(abts_case *tc, void *data)
|
||||
{
|
||||
sock_id sctp, sctp2;
|
||||
status_t rv;
|
||||
sock_id sctp, sctp2;
|
||||
c_sockaddr_t sa;
|
||||
ssize_t size;
|
||||
|
||||
rv = sctp_open(&sctp, AF_INET6, SOCK_STREAM,
|
||||
NULL, PORT, NULL, 0, SOCK_F_BIND);
|
||||
rv = sctp_server(&sctp, AF_INET6, SOCK_STREAM, NULL, PORT);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
rv = thread_create(&test2_thread, NULL, test2_main, tc);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
rv = sock_accept(&sctp2, sctp);
|
||||
rv = sock_accept(&sctp2, &sa, sctp);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
size = sctp_write(sctp2, DATASTR, strlen(DATASTR),
|
||||
NULL, 0, PPID, 0);
|
||||
size = core_sctp_sendmsg(sctp2, DATASTR, strlen(DATASTR), NULL, PPID, 0);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), size);
|
||||
|
||||
thread_join(&rv, test2_thread);
|
||||
|
|
@ -97,21 +93,23 @@ static void *THREAD_FUNC test3_main(thread_id id, void *data)
|
|||
abts_case *tc = data;
|
||||
status_t rv;
|
||||
sock_id sctp;
|
||||
c_sockaddr_t to;
|
||||
c_sockaddr_t *sa;
|
||||
char str[STRLEN];
|
||||
ssize_t size;
|
||||
int rc;
|
||||
|
||||
rv = sctp_open(&sctp, AF_INET, SOCK_SEQPACKET, NULL, 0, NULL, 0, 0);
|
||||
rv = sctp_socket(&sctp, AF_INET, SOCK_SEQPACKET);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
rv = core_pton("127.0.0.1", PORT, &to);
|
||||
rv = core_getaddrinfo(&sa, AF_UNSPEC, "127.0.0.1", PORT, 0);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
size = sctp_write(sctp, DATASTR, strlen(DATASTR),
|
||||
&to, sockaddr_len(&to), PPID, 0);
|
||||
size = core_sctp_sendmsg(sctp, DATASTR, strlen(DATASTR), sa, PPID, 0);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), size);
|
||||
|
||||
rv = core_freeaddrinfo(sa);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
rv = sock_delete(sctp);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
|
|
@ -124,24 +122,22 @@ static void sctp_test3(abts_case *tc, void *data)
|
|||
sock_id sctp;
|
||||
status_t rv;
|
||||
ssize_t size;
|
||||
c_sockaddr_t from;
|
||||
socklen_t fromlen;
|
||||
c_sockaddr_t sa;
|
||||
char str[STRLEN];
|
||||
char buf[CORE_ADDRSTRLEN];
|
||||
c_uint32_t ppid;
|
||||
|
||||
rv = sctp_open(&sctp, AF_INET, SOCK_SEQPACKET,
|
||||
NULL, PORT, NULL, 0, SOCK_F_BIND);
|
||||
rv = sctp_server(&sctp, AF_INET, SOCK_SEQPACKET, NULL, PORT);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
rv = thread_create(&test3_thread, NULL, test3_main, tc);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
size = sctp_read(sctp, str, STRLEN, &from, &fromlen, &ppid, NULL);
|
||||
size = core_sctp_recvmsg(sctp, str, STRLEN, &sa, &ppid, NULL);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), size);
|
||||
ABTS_INT_EQUAL(tc, sizeof(struct sockaddr_in), fromlen);
|
||||
ABTS_INT_EQUAL(tc, sizeof(struct sockaddr_in), sa.sa_len);
|
||||
ABTS_INT_EQUAL(tc, PPID, ppid);
|
||||
ABTS_STR_EQUAL(tc, "127.0.0.1", CORE_NTOP(&from, buf));
|
||||
ABTS_STR_EQUAL(tc, "127.0.0.1", CORE_NTOP(&sa, buf));
|
||||
|
||||
thread_join(&rv, test3_thread);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), rv);
|
||||
|
|
@ -160,14 +156,13 @@ static void *THREAD_FUNC test4_main(thread_id id, void *data)
|
|||
ssize_t size;
|
||||
c_uint32_t ppid;
|
||||
|
||||
rv = sctp_open(&sctp, AF_UNSPEC, SOCK_STREAM,
|
||||
NULL, 0, "::1", PORT, SOCK_F_CONNECT);
|
||||
rv = sctp_client(&sctp, AF_UNSPEC, SOCK_STREAM, "::1", PORT);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
size = sctp_write(sctp, DATASTR, strlen(DATASTR), NULL, 0, PPID, 0);
|
||||
size = core_sctp_sendmsg(sctp, DATASTR, strlen(DATASTR), NULL, PPID, 0);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), size);
|
||||
|
||||
size = sctp_read(sctp, str, STRLEN, NULL, NULL, &ppid, NULL);
|
||||
size = core_sctp_recvmsg(sctp, str, STRLEN, NULL, &ppid, NULL);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), size);
|
||||
ABTS_INT_EQUAL(tc, PPID, ppid);
|
||||
|
||||
|
|
@ -183,26 +178,24 @@ static void sctp_test4(abts_case *tc, void *data)
|
|||
sock_id sctp;
|
||||
status_t rv;
|
||||
ssize_t size;
|
||||
c_sockaddr_t from;
|
||||
socklen_t fromlen;
|
||||
c_sockaddr_t sa;
|
||||
char str[STRLEN];
|
||||
c_uint32_t ppid;
|
||||
char buf[CORE_ADDRSTRLEN];
|
||||
|
||||
rv = sctp_open(&sctp, AF_INET6, SOCK_SEQPACKET,
|
||||
NULL, PORT, NULL, 0, SOCK_F_BIND);
|
||||
rv = sctp_server(&sctp, AF_INET6, SOCK_SEQPACKET, NULL, PORT);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
rv = thread_create(&test4_thread, NULL, test4_main, tc);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
||||
size = sctp_read(sctp, str, STRLEN, &from, &fromlen, &ppid, NULL);
|
||||
size = core_sctp_recvmsg(sctp, str, STRLEN, &sa, &ppid, NULL);
|
||||
ABTS_INT_EQUAL(tc, strlen(DATASTR), size);
|
||||
ABTS_INT_EQUAL(tc, sizeof(struct sockaddr_in6), fromlen);
|
||||
ABTS_STR_EQUAL(tc, "::1", CORE_NTOP(&from, buf));
|
||||
ABTS_INT_EQUAL(tc, sizeof(struct sockaddr_in6), sa.sa_len);
|
||||
ABTS_STR_EQUAL(tc, "::1", CORE_NTOP(&sa, buf));
|
||||
ABTS_INT_EQUAL(tc, PPID, ppid);
|
||||
|
||||
size = sctp_write(sctp, DATASTR, strlen(DATASTR), &from, fromlen, PPID, 0);
|
||||
size = core_sctp_sendmsg(sctp, DATASTR, strlen(DATASTR), &sa, 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