pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/libosmo-netif/+/34345?usp=email )
Change subject: stream: Use new libosmocore API osmo_sock_init2_multiaddr2()
......................................................................
stream: Use new libosmocore API osmo_sock_init2_multiaddr2()
Use the new API available in libosmocore to set sockopts related to
ASCONF SCTP features. The old flag OSMO_SOCK_F_SCTP_ASCONF_SUPPORTED has
been dropped. This only affects master builds since there's no release
ever done with that flag defined.
Depends: libosmocore.git Change-Id I1f6fd09a79b0a2bd794e5669d933be25bbf1eeaa
Related: SYS#6501
Related: SYS#6558
Change-Id: I2b2073de72625b4f4f99892179c9406163d28592
---
M TODO-RELEASE
M src/stream_cli.c
M src/stream_srv.c
3 files changed, 57 insertions(+), 8 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/45/34345/1
diff --git a/TODO-RELEASE b/TODO-RELEASE
index a4b381f..830e77b 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -7,5 +7,5 @@
# If any interfaces have been added since the last public release: c:r:a + 1.
# If any interfaces have been removed or changed since the last public release: c:r:0.
#library what description / commit summary line
-libosmocore >1.8.0 osmo_iofd
+libosmocore >1.8.0 osmo_iofd, osmo_sock_init2_multiaddr2()
stream NEW API osmo_stream_srv_link_set_name(), osmo_stream_srv_set_name(),
osmo_stream_cli_set_name()
\ No newline at end of file
diff --git a/src/stream_cli.c b/src/stream_cli.c
index b5ef66c..8f18bfb 100644
--- a/src/stream_cli.c
+++ b/src/stream_cli.c
@@ -733,6 +733,9 @@
*/
int osmo_stream_cli_open2(struct osmo_stream_cli *cli, int reconnect)
{
+#ifdef HAVE_LIBSCTP
+ struct osmo_sock_init2_multiaddr_pars ma_pars;
+#endif
int ret;
/* we are reconfiguring this socket, close existing first. */
@@ -744,10 +747,18 @@
switch (cli->proto) {
#ifdef HAVE_LIBSCTP
case IPPROTO_SCTP:
- ret = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, cli->proto,
+ ma_pars = (struct osmo_sock_init2_multiaddr_pars){
+ .sctp = {
+ .version = 0,
+ .sockopt_auth_supported = {.set = true, .abort_on_failure = false, .value = 1 },
+ .sockopt_asconf_supported = {.set = true, .abort_on_failure = false, .value = 1 },
+ }
+ };
+ ret = osmo_sock_init2_multiaddr2(AF_UNSPEC, SOCK_STREAM, cli->proto,
(const char **)cli->local_addr, cli->local_addrcnt, cli->local_port,
(const char **)cli->addr, cli->addrcnt, cli->port,
- OSMO_SOCK_F_CONNECT|OSMO_SOCK_F_BIND|OSMO_SOCK_F_NONBLOCK|OSMO_SOCK_F_SCTP_ASCONF_SUPPORTED);
+ OSMO_SOCK_F_CONNECT|OSMO_SOCK_F_BIND|OSMO_SOCK_F_NONBLOCK,
+ &ma_pars);
break;
#endif
default:
@@ -805,6 +816,9 @@
* \return negative on error, 0 on success */
int osmo_stream_cli_open(struct osmo_stream_cli *cli)
{
+#ifdef HAVE_LIBSCTP
+ struct osmo_sock_init2_multiaddr_pars ma_pars;
+#endif
int ret, fd = -1;
/* we are reconfiguring this socket, close existing first. */
@@ -823,10 +837,18 @@
switch (cli->proto) {
#ifdef HAVE_LIBSCTP
case IPPROTO_SCTP:
- ret = osmo_sock_init2_multiaddr(cli->sk_domain, cli->sk_type, cli->proto,
+ ma_pars = (struct osmo_sock_init2_multiaddr_pars){
+ .sctp = {
+ .version = 0,
+ .sockopt_auth_supported = {.set = true, .abort_on_failure = false, .value = 1 },
+ .sockopt_asconf_supported = {.set = true, .abort_on_failure = false, .value = 1 },
+ }
+ };
+ ret = osmo_sock_init2_multiaddr2(cli->sk_domain, cli->sk_type, cli->proto,
(const char **)cli->local_addr, cli->local_addrcnt, cli->local_port,
(const char **)cli->addr, cli->addrcnt, cli->port,
- OSMO_SOCK_F_CONNECT|OSMO_SOCK_F_BIND|OSMO_SOCK_F_NONBLOCK|OSMO_SOCK_F_SCTP_ASCONF_SUPPORTED);
+ OSMO_SOCK_F_CONNECT|OSMO_SOCK_F_BIND|OSMO_SOCK_F_NONBLOCK,
+ &ma_pars);
break;
#endif
default:
diff --git a/src/stream_srv.c b/src/stream_srv.c
index f46175b..9818864 100644
--- a/src/stream_srv.c
+++ b/src/stream_srv.c
@@ -387,6 +387,9 @@
* \return negative on error, 0 on success */
int osmo_stream_srv_link_open(struct osmo_stream_srv_link *link)
{
+#ifdef HAVE_LIBSCTP
+ struct osmo_sock_init2_multiaddr_pars ma_pars;
+#endif
int ret;
if (link->ofd.fd >= 0) {
@@ -409,9 +412,16 @@
switch (link->proto) {
#ifdef HAVE_LIBSCTP
case IPPROTO_SCTP:
- ret = osmo_sock_init2_multiaddr(link->sk_domain, link->sk_type, link->proto,
- (const char **)link->addr, link->addrcnt, link->port,
- NULL, 0, 0, OSMO_SOCK_F_BIND|OSMO_SOCK_F_SCTP_ASCONF_SUPPORTED);
+ ma_pars = (struct osmo_sock_init2_multiaddr_pars){
+ .sctp = {
+ .version = 0,
+ .sockopt_auth_supported = {.set = true, .abort_on_failure = false, .value = 1 },
+ .sockopt_asconf_supported = {.set = true, .abort_on_failure = false, .value = 1 },
+ }
+ };
+ ret = osmo_sock_init2_multiaddr2(link->sk_domain, link->sk_type,
link->proto,
+ (const char **)link->addr, link->addrcnt, link->port,
+ NULL, 0, 0, OSMO_SOCK_F_BIND, &ma_pars);
break;
#endif
default:
--
To view, visit
https://gerrit.osmocom.org/c/libosmo-netif/+/34345?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I2b2073de72625b4f4f99892179c9406163d28592
Gerrit-Change-Number: 34345
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange