open5gs/lib/core
Sukchan Lee 753523033d [SMF] Refactor core address‐resolution to robustly support both IP literals and hostnames (#4008)
This change revises the existing ogs_addaddrinfo() function to handle
partial failures without aborting the process, ensure proper cleanup
of any nodes allocated before an error, and emit more informative logs
(including getaddrinfo() errors and situations where no usable addresses
 are returned).

By introducing “tail” and “first_new” pointers, new entries can be appended
to an existing list and safely detached if memory allocation fails mid‐stream.

On top of that, a new helper API, ogs_sockaddr_from_ip_or_fqdn(), was added.

It automatically detects whether its input is a numeric IPv4/IPv6 literal
or a hostname (using AI_NUMERICHOST when appropriate), then delegates
resolution to ogs_addaddrinfo().

Errors are logged at the error level but do not trigger a fatal exit,
and any partial lists are cleaned up before returning.

Finally, the SMF configuration parser in context.c was updated to use
this new API for “p-cscf” entries, allowing both raw IP addresses
and DNS names in smf.yaml.

Corresponding adjustments were made in context.h (to change the p_cscf
and p_cscf6 arrays to mutable char pointers) and in the cleanup routine
smf_context_final() to free any dynamically allocated strings.

Together, these improvements eliminate duplicate parsing logic,
streamline configuration handling, and increase the overall resilience
of address resolution across Open5GS.
2025-07-21 16:44:45 +09:00
..
abts.c [tests] Upgrade tests for multiple NFs 2024-09-03 22:09:56 +09:00
abts.h Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
arc4random.c Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
meson.build Introduced Subscription identifier de-concealing 2022-12-24 20:22:45 +09:00
ogs-abort.c Add exception handling for #568 2020-09-18 19:39:02 -04:00
ogs-abort.h Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
ogs-compat.h test: Porting FreeBSD 2021-02-08 14:25:40 -05:00
ogs-conv.c [DBI] Improve YAML policy config by adding SUPI range filtering 2025-02-05 21:56:15 +09:00
ogs-conv.h [DBI] Improve YAML policy config by adding SUPI range filtering 2025-02-05 21:56:15 +09:00
ogs-core.c [PFCP/GTP] SEID/TEID Randomness (#1303) 2023-04-16 12:30:36 +09:00
ogs-core.h Introduced Subscription identifier de-concealing 2022-12-24 20:22:45 +09:00
ogs-env.c Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
ogs-env.h Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
ogs-epoll.c [CORE] Fix busy loop and blocking in curl with EPOLLERR handling in Open5GS 2.7.x (#3807, #2411, #2312) 2025-03-30 21:46:31 +09:00
ogs-errno.c [ALL] Removing trailing whitespace and tab 2022-09-02 23:38:39 +09:00
ogs-errno.h [AMF/MME] Fixed crash when no NG/S1 context(#2012) 2023-01-23 10:37:22 +09:00
ogs-file.c Introduced Subscription identifier de-concealing 2022-12-24 20:22:45 +09:00
ogs-file.h Introduced Subscription identifier de-concealing 2022-12-24 20:22:45 +09:00
ogs-fsm.c Move src/../nf-sm.[ch] to lib/sbi/nf-sm.[ch] 2022-08-12 14:03:53 +09:00
ogs-fsm.h Move src/../nf-sm.[ch] to lib/sbi/nf-sm.[ch] 2022-08-12 14:03:53 +09:00
ogs-getopt.c License update 2020-11-12 20:58:08 -05:00
ogs-getopt.h License update 2020-11-12 20:58:08 -05:00
ogs-hash.c Fixed MacOSX compile error 2023-04-04 21:53:39 +09:00
ogs-hash.h [5GC/EPC] tested with concurrent 500 UEs (#949) 2021-04-29 22:01:34 +09:00
ogs-kqueue.c [ALL] Removing trailing whitespace and tab 2022-09-02 23:38:39 +09:00
ogs-list.h [MME] Hangs on an invalid S1AP message 2024-01-17 20:17:55 +09:00
ogs-log.c [CORE] logger: add option to disable timestamps 2024-04-18 21:08:35 +09:00
ogs-log.h [CORE] logger: add option to disable timestamps 2024-04-18 21:08:35 +09:00
ogs-macros.h [POOL] change cycle to hash id in xact (#3196) 2024-06-30 22:03:13 +09:00
ogs-memory.c [LOG] remove ogs_expect_or_return()/return_val() 2023-01-24 00:01:36 +09:00
ogs-memory.h [PFCP/GTP] SEID/TEID Randomness (#1303) 2023-04-16 12:30:36 +09:00
ogs-misc.c License update 2020-11-12 20:58:08 -05:00
ogs-misc.h License update 2020-11-12 20:58:08 -05:00
ogs-notify.c Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
ogs-notify.h Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
ogs-pkbuf.c [PFCP/GTP] SEID/TEID Randomness (#1303) 2023-04-16 12:30:36 +09:00
ogs-pkbuf.h [core] Fix a couple of warnings when using C++ compiler or more strict settings 2024-01-09 17:50:22 +09:00
ogs-poll-private.h Change Number of UEs usage [#533] 2020-08-25 23:05:01 -04:00
ogs-poll.c [LOG] remove ogs_expect_or_return()/return_val() 2023-01-24 00:01:36 +09:00
ogs-poll.h [5GC/EPC] tested with concurrent 500 UEs (#949) 2021-04-29 22:01:34 +09:00
ogs-pool.h [POOL] REMOVE ogs_pool_cycle() (#3196) 2024-06-30 22:03:13 +09:00
ogs-process.c [AMF] Follow-up on #3380 2025-05-31 20:51:41 +09:00
ogs-process.h [AMF] Fix UE context transfer when only NRF is client (#3880) 2025-05-31 20:51:06 +09:00
ogs-queue.c [LOG] remove ogs_expect_or_return()/return_val() 2023-01-24 00:01:36 +09:00
ogs-queue.h License update 2020-11-12 20:58:08 -05:00
ogs-rand.c [ALL] Removing trailing whitespace and tab 2022-09-02 23:38:39 +09:00
ogs-rand.h Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
ogs-rbtree.c Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
ogs-rbtree.h [core] Fix a couple of warnings when using C++ compiler or more strict settings 2024-01-09 17:50:22 +09:00
ogs-select.c Update ogs_pollset library 2020-11-09 22:57:14 -05:00
ogs-signal.c [CORE] Fix busy loop and blocking in curl with EPOLLERR handling in Open5GS 2.7.x (#3807, #2411, #2312) 2025-03-30 21:46:31 +09:00
ogs-signal.h License update 2020-11-12 20:58:08 -05:00
ogs-sockaddr.c [SMF] Refactor core address‐resolution to robustly support both IP literals and hostnames (#4008) 2025-07-21 16:44:45 +09:00
ogs-sockaddr.h [SMF] Refactor core address‐resolution to robustly support both IP literals and hostnames (#4008) 2025-07-21 16:44:45 +09:00
ogs-socket.c [LOG] remove ogs_expect_or_return()/return_val() 2023-01-24 00:01:36 +09:00
ogs-socket.h Improve the socket option configuration (#1404) 2022-03-15 22:03:50 +09:00
ogs-socknode.c [LOG] remove ogs_expect_or_return()/return_val() 2023-01-24 00:01:36 +09:00
ogs-socknode.h Improve the socket option configuration (#1404) 2022-03-15 22:03:50 +09:00
ogs-sockopt.c Change EPERM to OGS_EPERM (#1436,#1404) 2022-03-16 20:32:19 +09:00
ogs-sockopt.h Move src/../nf-sm.[ch] to lib/sbi/nf-sm.[ch] 2022-08-12 14:03:53 +09:00
ogs-sockpair.c Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
ogs-sockpair.h Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
ogs-strings.c [LOG] remove ogs_expect_or_return()/return_val() 2023-01-24 00:01:36 +09:00
ogs-strings.h [PFCP/GTP] SEID/TEID Randomness (#1303) 2023-04-16 12:30:36 +09:00
ogs-tcp.c Improve the socket option configuration (#1404) 2022-03-15 22:03:50 +09:00
ogs-tcp.h Improve the socket option configuration (#1404) 2022-03-15 22:03:50 +09:00
ogs-thread.c [LOG] remove ogs_expect_or_return()/return_val() 2023-01-24 00:01:36 +09:00
ogs-thread.h Rename Project to Open5GS 2019-10-27 17:41:14 +09:00
ogs-time.c Follow-up on #1770 2022-09-25 16:42:46 +09:00
ogs-time.h [NRF] Fix the subscription valdityTime (#3360 #3361 #3363 #3364) 2024-08-04 13:32:53 +09:00
ogs-timer.c [POOL] refactor memory in GTP/PFCP xact (#3196) 2024-06-30 22:03:13 +09:00
ogs-timer.h [AMF/MME] Remove code that doesn't work (#2013) 2023-07-23 14:54:06 +09:00
ogs-tlv-msg.c [GTP] gtp_message_fuzz: Abrt in ogs_abort 2023-08-24 22:19:42 +09:00
ogs-tlv-msg.h Changes MAX TLV MORE to 16 2022-06-29 14:35:01 +09:00
ogs-tlv.c A minor typo fix (#2707) 2023-10-28 22:11:58 +09:00
ogs-tlv.h Introduce Gn interface (GTPv1C) Support to PGW (#1351) 2022-02-18 22:23:45 +09:00
ogs-udp.c Improve the socket option configuration (#1404) 2022-03-15 22:03:50 +09:00
ogs-udp.h Improve the socket option configuration (#1404) 2022-03-15 22:03:50 +09:00
ogs-uuid.c Follow-up on #1770 2022-09-25 16:42:46 +09:00
ogs-uuid.h License update 2020-11-12 20:58:08 -05:00