Skip to content

Loading builds...

Changes

#4719 (Mar 16, 2026, 11:30:07 AM)

osmo_io: Rewrite iofd_handle_send_completion() to fix multiple issues

Previous implementation had multiple issues, which this patch addresses:
* Didn't call user cb updating completed bytes for a given msg which had
  a partial write.
* rc checks against "Incomplete write" were wrong, because rc was not
  being decremented with previous msgs idxs being processed.
* Didn't take into account the write(0, fd, buf) = 0 valid user case for
  regular files.

The rewrite also simplifies the logic by splitting the "rc < 0" (error) paths
from the "rc >= 0" (successful) paths.

Related: SYS#7842
Change-Id: Ia016e4df7be5e534a8212f7271caff9779e08eb1
Pau Espin Pedrol at
osmo_io: Fix msgb memleak if iofd is unregistered during write_cb with >1 io buffers

The msgbs are not allocated under the msghdr, hence if user unregistered
the iofd we need to manually free all remaining msgbs when freeing the
msghdr.

Change-Id: I579bc2142bba02947021c47d94bf2fe4f2040b01
Pau Espin Pedrol at

#4718 (Mar 16, 2026, 10:10:06 AM)

gsup: encode_pdp_info(): fix wrong pdp_address index

The `PDP_TYPE_N_IETF_IPv4v6` case encodes two addresses: IPv4 from
`pdp_address[0]` and IPv6 from `pdp_address[1]`.  The IPv4 part is
encoded correctly, but the IPv6 part checks the wrong index.

The decoder decode_pdp_address() correctly puts the IPv4 address in
`pdp_address[0]` and the IPv6 address in `pdp_address[1]`.  Because
`pdp_address[0].sa_family` is `AF_INET` (not `AF_INET6`), the second
condition is always false in a proper dual-stack context, so the IPv6
part is silently dropped from every outgoing dual-stack GSUP message.

Change-Id: Ibc4a438ee7b06346839e78dc14d9d5b11b1c5bbd
Vadim Yanitskiy at
socket: osmo_sockaddr_from_str_and_uint(): fix memleak

`addrinfo_helper()` internally calls `getaddrinfo()`, whose result
must be freed with `freeaddrinfo()`.  On the size-check error path
the function returns early without freeing.  Fix this.

Change-Id: Ib05e1b8f2465e0db79e7b45de151dc9945e27924
Vadim Yanitskiy at
stats: osmo_stats_reporter_udp_open(): fix unconditional jump

Change-Id: Ifb4842ea11e4df0cae8733438b3812a086396b99
Fixes: cc3694b65 ("Fix build for OSX")
Vadim Yanitskiy at
gsm48: fix missing/misspelled value-strings

Change-Id: I8d2333290c7715fd75ce7e7c759cb564a26b7461
Vadim Yanitskiy at
gsm48: remove duplicate GSM48_MT_RR_HANDO_INFO

Change-Id: Ic1cbba2b2a746667b9920ed2ed19b3848185977d
Vadim Yanitskiy at
gsmtap_util: gsmtap_gsm_channel_names[]: fix PTCCH string

Change-Id: Ic65668ae0363b991966bcf8ba4fb913940639964
Vadim Yanitskiy at

#4711 (Mar 10, 2026, 7:10:09 PM)

core: fix config.h

While exploring why logging is disabled but still shows up in the binaries
I kind of wondered how all the config.h HAVE_XX checks we have everwhere work.
Apparently they do not work at all, due to missing or misplaced include of config.h.

This affects tons of other checks as well.

The jenkins hook ensures the include order is checked to ensure config.h
does not get misplaced or lost in the future.

Change-Id: Ic2cf52a3b60f43a2f5d3fe01c41a41f6fd9a8000
laforge at

#4704 (Mar 4, 2026, 10:35:09 AM)

Bump version: 1.13.0.1-6d38 → 1.13.1

Change-Id: Ic648f4165427d04b25855d7c42d3b44ba155e1ad
Pau Espin Pedrol at

#4698 (Feb 27, 2026, 8:45:09 AM)

fix --disable-log-macros

Before 9197c1ac, the AC_ARG_ENABLE(log_macros, ...)
action was hardcoded to [log_macros="yes"], so *any*
use of the flag --enable-log-macros or --disable-log-macros
would set log_macros="yes" -> AC_DEFINE([LIBOSMOCORE_NO_LOGGING]).

The commit changed this to the standard [log_macros=$enableval], but
broke the conditional test, so
- AC_ARG_ENABLE sets $enableval to "no" for --disable-* flags
-> log_macros is now "no"
-> test fails
-> LIBOSMOCORE_NO_LOGGING is never defined...

The opposite of what it should do...

Change-Id: I809ab2f61e72428ba21061055296eb83d6d710ab
ewild at

#4689 (Feb 19, 2026, 1:10:07 PM)

Bump version: 1.12.0.73-10f3 → 1.13.0

Change-Id: I877d255890a525a34fbf89101b3ff0bbd0989c87
Pau Espin Pedrol at

#475 (Sep 15, 2018, 8:00:08 AM)

gsm0808: fix wrong codec defaults for OFR_AMR_WB
3GPP TS 48.008 chapter 3.2.2.103 states that the configuration bits of
OFR_AMR_WB are coded as follows:
"S0, S2, S4 indicates the supported Codec Configurations. S1, S3, S5,
S6, S7 are reserved and coded with zeroes."
The current default setting of 0x3F violates this requirement. Lets set
the "forbidden" settings zu zero and keep only the allowed ones.
Change-Id: I4a481def59e9c98cfdcafc2b80c0ac7df0c14130
pmaier@sysmocom.de at
gsm0808: add function to convert amr gsm0408 setings to gsm0808
Add a function to convert struct gsm48_multi_rate_conf, which holds the
codec settings for AMR, to S0-S15 bit representation as defined in 3GPP
TS 48.008 3.2.2.49
Change-Id: I4e656731b16621736c7a2f4e64d9ce63b1064e98 Related: OS#3548
pmaier@sysmocom.de at