From d527a0b7b63e43263384540b5525714484bb089f Mon Sep 17 00:00:00 2001
|
From: Mingli Yu <Mingli.Yu@windriver.com>
|
Date: Mon, 3 Sep 2018 14:40:56 +0800
|
Subject: [PATCH] libfdcore/sctp.c: update the old sctp api check
|
|
The initial sctp api check for freediameter as below:
|
===
|
commit d3c5e991cb532ea09684d69fb4d0d58e9bc39a0c
|
Author: Sebastien Decugis <sdecugis@freediameter.net>
|
Date: Mon Jun 3 12:05:37 2013 +0800
|
|
Add some compliancy to RFC6458. Not tested however as Ubuntu does not support this yet
|
|
[snip]
|
+/* Use old draft-ietf-tsvwg-sctpsocket-17 API ? If not defined, RFC6458 API will be used */
|
+/* #define OLD_SCTP_SOCKET_API */
|
+
|
+/* Automatically fallback to old API if some of the new symbols are not defined */
|
+#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO)))
|
+# define OLD_SCTP_SOCKET_API
|
+#endif
|
===
|
|
SCTP_RECVRCVINFO is defined in <linux/sctp.h>,
|
but <linux/sctp.h> is't included in the source code
|
previouly. So defined(SCTP_RECVRCVINFO) can be 0
|
and it make old sctp socket api definiton in effect
|
as below:
|
# define OLD_SCTP_SOCKET_API
|
|
After lksctp-tools upgrade to 1.0.18, there is below
|
commit introduced:
|
===
|
commit 3c8bd0d26b64611c690f33f5802c734b0642c1d8
|
Author: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
|
Date: Tue Apr 17 20:17:14 2018 -0300
|
|
sctp.h: make use kernel UAPI header
|
|
and with that, remove tons of duplicated declarations. These were
|
lagging behind the kernel header, which is always the most updated one,
|
and as the library is intended to be run only on Linux, there is no
|
reason that we cannot re-use what is in there.
|
|
That said, this patch drops all duplicated declarations and includes
|
linux/sctp.h to bring them into lksctp-tools.
|
|
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
|
|
[snip]
|
#include <stdint.h>
|
#include <linux/types.h>
|
#include <sys/socket.h>
|
+#include <linux/sctp.h>
|
[snip]
|
===
|
|
And above logic make defined(SCTP_RECVRCVINFO) to
|
be 1 and the old sctp socket api macro as below
|
won't be defined.
|
# define OLD_SCTP_SOCKET_API
|
|
And it encouters below build error:
|
| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1262:9: error: 'SCTP_SEND_FAILED_EVENT' undeclared (first use in this function); did you mean 'SCTP_SEND_FAILED'?
|
case SCTP_SEND_FAILED_EVENT:
|
^~~~~~~~~~~~~~~~~~~~~~
|
SCTP_SEND_FAILED
|
| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1262:9: note: each undeclared identifier is reported only once for each function it appears in
|
| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1274:9: error: 'SCTP_NOTIFICATIONS_STOPPED_EVENT' undeclared (first use in this function); did you mean 'SCTP_AUTHENTICATION_EVENT'?
|
case SCTP_NOTIFICATIONS_STOPPED_EVENT:
|
|
Update the old sctp socket api check to fix
|
the above build error.
|
|
Upstream-Status: Pending
|
|
Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
|
---
|
libfdcore/sctp.c | 2 +-
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
diff --git a/libfdcore/sctp.c b/libfdcore/sctp.c
|
index c80a497..83440c7 100644
|
--- a/libfdcore/sctp.c
|
+++ b/libfdcore/sctp.c
|
@@ -48,7 +48,7 @@
|
/* #define OLD_SCTP_SOCKET_API */
|
|
/* Automatically fallback to old API if some of the new symbols are not defined */
|
-#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO)))
|
+#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_NOTIFICATIONS_STOPPED_EVENT)) || (!defined(SCTP_SNDINFO)))
|
# define OLD_SCTP_SOCKET_API
|
#endif
|
|
--
|
2.7.4
|