Changes of Revision 209

libosmocore.spec Changed
x
 
1
@@ -14,13 +14,13 @@
2
 
3
 Name:           libosmocore
4
 Requires: osmocom-master
5
-Version: 1.8.0.226.aea7
6
+Version: 1.8.0.227.e8322
7
 Release:        0
8
 Summary:        The Open Source Mobile Communications Core Library
9
 License:        GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND AGPL-3.0-or-later
10
 Group:          Productivity/Telephony/Utilities
11
 Url:            https://osmocom.org/projects/libosmocore/wiki/Libosmocore
12
-Source: libosmocore_1.8.0.226.aea7.tar.xz
13
+Source: libosmocore_1.8.0.227.e8322.tar.xz
14
 Source1: rpmlintrc
15
 BuildRequires:  automake >= 1.6
16
 BuildRequires:  libtool >= 2
17
commit_aea78a248324e2e52218132ba25377ac437d7cc9.txt Deleted
commit_e83227f735e214d269e6d009436601e812cba59a.txt Added
libosmocore_1.8.0.226.aea7.dsc -> libosmocore_1.8.0.227.e8322.dsc Changed
22
 
1
@@ -2,7 +2,7 @@
2
 Source: libosmocore
3
 Binary: libosmocore, libosmocodec0, libosmocodec-doc, libosmocoding0, libosmocoding-doc, libosmocore20, libosmocore-doc, libosmogb14, libosmogb-doc, libosmogsm18, libosmogsm-doc, libosmoisdn0, libosmoisdn-doc, libosmovty9, libosmovty-doc, libosmoctrl0, libosmoctrl-doc, libosmosim2, libosmosim-doc, libosmousb0, libosmousb-doc, libosmocore-dev, libosmocore-utils, libosmocore-dbg
4
 Architecture: any all
5
-Version: 1.8.0.226.aea7
6
+Version: 1.8.0.227.e8322
7
 Maintainer: Osmocom team <openbsc@lists.osmocom.org>
8
 Homepage: https://projects.osmocom.org/projects/libosmocore
9
 Standards-Version: 3.9.8
10
@@ -35,8 +35,8 @@
11
  libosmovty-doc deb doc optional arch=all
12
  libosmovty9 deb libs optional arch=any
13
 Checksums-Sha1:
14
- 3af66c591d2a704ae08556e5f36a3e0691a0f606 1064744 libosmocore_1.8.0.226.aea7.tar.xz
15
+ d70a5d7339d8dfa7a16cbfe688d2202c9091a326 1064652 libosmocore_1.8.0.227.e8322.tar.xz
16
 Checksums-Sha256:
17
- 901ee9743ad8ae6407b976624e3684944e0fbfcf8b1b91918739b4b754aba9d5 1064744 libosmocore_1.8.0.226.aea7.tar.xz
18
+ 31a36889e6792018868704977233975af083174df2659b68ab02b0116f7d4046 1064652 libosmocore_1.8.0.227.e8322.tar.xz
19
 Files:
20
- f6ec460eccdba3894ddf3116cb8a56d0 1064744 libosmocore_1.8.0.226.aea7.tar.xz
21
+ c985b9c36cd2016d2124867a8e33a17c 1064652 libosmocore_1.8.0.227.e8322.tar.xz
22
libosmocore_1.8.0.226.aea7.tar.xz/.tarball-version -> libosmocore_1.8.0.227.e8322.tar.xz/.tarball-version Changed
4
 
1
@@ -1 +1 @@
2
-1.8.0.226-aea7
3
+1.8.0.227-e8322
4
libosmocore_1.8.0.226.aea7.tar.xz/debian/changelog -> libosmocore_1.8.0.227.e8322.tar.xz/debian/changelog Changed
12
 
1
@@ -1,8 +1,8 @@
2
-libosmocore (1.8.0.226.aea7) unstable; urgency=medium
3
+libosmocore (1.8.0.227.e8322) unstable; urgency=medium
4
 
5
   * Automatically generated changelog entry for building the Osmocom master feed
6
 
7
- -- Osmocom OBS scripts <info@osmocom.org>  Sun, 20 Aug 2023 14:37:28 +0000
8
+ -- Osmocom OBS scripts <info@osmocom.org>  Mon, 21 Aug 2023 08:35:35 +0000
9
 
10
 libosmocore (1.8.0) unstable; urgency=medium
11
 
12
libosmocore_1.8.0.226.aea7.tar.xz/include/osmocom/core/socket.h -> libosmocore_1.8.0.227.e8322.tar.xz/include/osmocom/core/socket.h Changed
10
 
1
@@ -94,6 +94,8 @@
2
 #define OSMO_SOCK_F_NO_MCAST_ALL  (1 << 4)
3
 /*! use SO_REUSEADDR on UDP ports (required for multicast) */
4
 #define OSMO_SOCK_F_UDP_REUSEADDR (1 << 5)
5
+/*! use SCTP_AUTH_SUPPORTED + SCTP_ASCONF_SUPPORTED on SCTP socket (required for ASCONF / Peer Primary Address feature) */
6
+#define OSMO_SOCK_F_SCTP_ASCONF_SUPPORTED (1 << 6)
7
 
8
 /*! use OSMO_SOCK_F_DSCP(x) to set IP DSCP 'x' for packets transmitted on the socket */
9
 #define OSMO_SOCK_F_DSCP(x)    (((x)&0x3f) << 24)
10
libosmocore_1.8.0.226.aea7.tar.xz/src/core/socket.c -> libosmocore_1.8.0.227.e8322.tar.xz/src/core/socket.c Changed
68
 
1
@@ -696,6 +696,36 @@
2
    return 0;
3
 }
4
 
5
+static int setsockopt_sctp_auth_supported(int fd)
6
+{
7
+#ifdef SCTP_AUTH_SUPPORTED
8
+   struct sctp_assoc_value assoc_val = {
9
+       .assoc_id = SCTP_FUTURE_ASSOC,
10
+       .assoc_value = 1,
11
+   };
12
+   return setsockopt(fd, IPPROTO_SCTP, SCTP_AUTH_SUPPORTED, &assoc_val, sizeof(assoc_val));
13
+#else
14
+#pragma message "setsockopt(SCTP_AUTH_SUPPORTED) not supported! some SCTP features may not be available!"
15
+   LOGP(DLGLOBAL, LOGL_NOTICE, "Built without support for setsockopt(SCTP_AUTH_SUPPORTED), skipping\n");
16
+   return 0;
17
+#endif
18
+}
19
+
20
+static int setsockopt_sctp_asconf_supported(int fd)
21
+{
22
+#ifdef SCTP_ASCONF_SUPPORTED
23
+   struct sctp_assoc_value assoc_val = {
24
+       .assoc_id = SCTP_FUTURE_ASSOC,
25
+       .assoc_value = 1,
26
+   };
27
+   return setsockopt(fd, IPPROTO_SCTP, SCTP_ASCONF_SUPPORTED, &assoc_val, sizeof(assoc_val));
28
+#else
29
+#pragma message "setsockopt(SCTP_ASCONF_SUPPORTED) not supported! some SCTP features may not be available!"
30
+   LOGP(DLGLOBAL, LOGL_NOTICE, "Built without support for setsockopt(SCTP_ASCONF_SUPPORTED), skipping\n");
31
+   return 0;
32
+#endif
33
+}
34
+
35
 /*! Initialize a socket (including bind and/or connect) with multiple local or remote addresses.
36
  *  \paramin family Address Family like AF_INET, AF_INET6, AF_UNSPEC
37
  *  \paramin type Socket type like SOCK_DGRAM, SOCK_STREAM
38
@@ -811,6 +841,29 @@
39
            goto ret_close;
40
        }
41
 
42
+       if (flags & OSMO_SOCK_F_SCTP_ASCONF_SUPPORTED) {
43
+           /* RFC 5061 4.2.7: ASCONF also requires AUTH feature. */
44
+           rc = setsockopt_sctp_auth_supported(sfd);
45
+           if (rc < 0) {
46
+               int err = errno;
47
+               multiaddr_snprintf(strbuf, sizeof(strbuf), local_hosts, local_hosts_cnt);
48
+               LOGP(DLGLOBAL, LOGL_ERROR,
49
+                    "cannot setsockopt(SCTP_AUTH_SUPPORTED) socket: %s:%u: %s\n",
50
+                    strbuf, local_port, strerror(err));
51
+               goto ret_close;
52
+           }
53
+
54
+           rc = setsockopt_sctp_asconf_supported(sfd);
55
+           if (rc < 0) {
56
+               int err = errno;
57
+               multiaddr_snprintf(strbuf, sizeof(strbuf), local_hosts, local_hosts_cnt);
58
+               LOGP(DLGLOBAL, LOGL_ERROR,
59
+                    "cannot setsockopt(SCTP_ASCONF_SUPPORTED) socket: %s:%u: %s\n",
60
+                    strbuf, local_port, strerror(err));
61
+               goto ret_close;
62
+           }
63
+       }
64
+
65
        /* Build array of addresses taking first entry for each host.
66
           TODO: Ideally we should use backtracking storing last used
67
           indexes and trying next combination if connect() fails .*/
68