update to lksctp-tools-1.0.17

This commit is contained in:
shirely16 2020-06-30 14:46:54 +08:00
parent 5b1a424be4
commit 3a98b9e962
5 changed files with 180 additions and 51 deletions

View File

@ -1,10 +1,10 @@
--- lksctp-tools-1.0.16/src/withsctp/withsctp.in.orig 2014-02-18 10:42:49.000000000 +0000
+++ lksctp-tools-1.0.16/src/withsctp/withsctp.in 2014-05-06 12:24:12.931873787 +0100
--- lksctp-tools-1.0.17/src/withsctp/withsctp.in.orig 2014-02-18 10:42:49.000000000 +0000
+++ lksctp-tools-1.0.17/src/withsctp/withsctp.in 2014-05-06 12:24:12.931873787 +0100
@@ -1,6 +1,6 @@
#!/bin/sh
# -*- sh -*-
-LIBDIR=@libdir@/@PACKAGE@
+LIBDIR=`rpm --eval "%{_libdir}"`/@PACKAGE@
BINDIR=@bindir@
export LD_PRELOAD=${LIBDIR}/libwithsctp.so.1.0.16
export LD_PRELOAD=${LIBDIR}/libwithsctp.so.1.0.17
if ! ${BINDIR}/checksctp 2> /dev/null

Binary file not shown.

View File

@ -0,0 +1,117 @@
From 18272a1f3cf8c3fe287c1bf8a007d0ef4de4cf2f Mon Sep 17 00:00:00 2001
Message-Id: <18272a1f3cf8c3fe287c1bf8a007d0ef4de4cf2f.1467043686.git.marcelo.leitner@gmail.com>
From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Date: Thu, 23 Jun 2016 18:27:26 -0300
Subject: [PATCH] sctp_status: fix hostname resolution
getaddrinfo already returns the IP address in binary format for the
given hostname/IP address, so there is no need to use inet_pton()
afterwards.
Such usage, actually, was causing localhost6 to be evaluated as ::.
Also, fix a leak on getaddrinfo results.
Signed-off-by: Marcelo R. Leitner <marcelo.leitner@gmail.com>
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
---
src/apps/sctp_status.c | 38 +++++++++++++++++++++++---------------
1 file changed, 23 insertions(+), 15 deletions(-)
diff --git a/src/apps/sctp_status.c b/src/apps/sctp_status.c
index 5bb48efc18074cb706112b10aa0d4a098954c3cd..46e9ca2af08ade626517a2d52bf0289d6be362e6 100644
--- a/src/apps/sctp_status.c
+++ b/src/apps/sctp_status.c
@@ -280,11 +280,12 @@ int main(int argc, char *argv[]) {
case AF_INET:
t_addr = (struct sockaddr_in *)&s_rem;
- t_addr->sin_family = AF_INET;
+ memcpy(t_addr, res->ai_addr,
+ res->ai_addrlen);
+ t_addr->sin_family = res->ai_family;
t_addr->sin_port = htons(remote_port);
- inet_pton(AF_INET, remote_host, &t_addr->sin_addr);
- r_len = sizeof (struct sockaddr_in);
+ r_len = res->ai_addrlen;
#ifdef __FreeBSD__
t_addr->sin_len = r_len;
#endif
@@ -292,13 +293,14 @@ int main(int argc, char *argv[]) {
case AF_INET6:
t_addr6 = (struct sockaddr_in6 *)&s_rem;
+ memcpy(t_addr6, res->ai_addr,
+ res->ai_addrlen);
+ t_addr6->sin6_family = res->ai_family;
+ t_addr6->sin6_port = htons(remote_port);
if (interface)
t_addr6->sin6_scope_id = if_nametoindex(interface);
- t_addr6->sin6_family = AF_INET6;
- t_addr6->sin6_port = htons(remote_port);
- inet_pton(AF_INET6, remote_host, &t_addr6->sin6_addr);
- r_len = sizeof (struct sockaddr_in6);
+ r_len = res->ai_addrlen;
#ifdef __FreeBSD__
t_addr6->sin6_len = r_len;
@@ -311,6 +313,8 @@ int main(int argc, char *argv[]) {
DEBUG_PRINT(DEBUG_MAX, "remote:addr=%s, port=%s, family=%d\n",
host_s, serv_s, res->ai_family);
+
+ freeaddrinfo(res);
}
if (local_host != NULL) {
@@ -342,11 +346,13 @@ int main(int argc, char *argv[]) {
switch (res->ai_family) {
case AF_INET:
t_addr = (struct sockaddr_in *)&s_loc;
- t_addr->sin_family = AF_INET;
+
+ memcpy(t_addr, res->ai_addr,
+ res->ai_addrlen);
+ t_addr->sin_family = res->ai_family;
t_addr->sin_port = htons(local_port);
- inet_pton(AF_INET, local_host, &t_addr->sin_addr);
- l_len = sizeof (struct sockaddr_in);
+ l_len = res->ai_addrlen;
#ifdef __FreeBSD__
t_addr->sin_len = l_len;
#endif
@@ -354,14 +360,14 @@ int main(int argc, char *argv[]) {
case AF_INET6:
t_addr6 = (struct sockaddr_in6 *)&s_loc;
+ memcpy(t_addr6, res->ai_addr,
+ res->ai_addrlen);
+ t_addr6->sin6_family = res->ai_family;
+ t_addr6->sin6_port = htons(local_port);
if (interface)
t_addr6->sin6_scope_id = if_nametoindex(interface);
- t_addr6->sin6_family = AF_INET6;
- t_addr6->sin6_port = htons(local_port);
- inet_pton(AF_INET6, local_host, &t_addr6->sin6_addr);
-
- l_len = sizeof (struct sockaddr_in6);
+ l_len = res->ai_addrlen;
#ifdef __FreeBSD__
t_addr6->sin6_len = l_len;
@@ -377,6 +383,8 @@ int main(int argc, char *argv[]) {
DEBUG_PRINT(DEBUG_MAX, "local:addr=%s, port=%s, family=%d\n",
host_s, serv_s, res->ai_family);
+
+ freeaddrinfo(res);
}
/* Let the testing begin. */
--
2.5.5

BIN
lksctp-tools-1.0.17.tar.gz Normal file

Binary file not shown.

View File

@ -1,83 +1,95 @@
Name: lksctp-tools
Version: 1.0.16
Release: 11
Summary: Linux Kernel Stream Control Transmission Protocol Tools
License: GPLv2 and GPLv2+ and LGPLv2 and MIT
URL: http://lksctp.sourceforge.net
Source0: https://downloads.sourceforge.net/project/lksctp/lksctp-tools/%{name}-%{version}.tar.gz
BuildRequires: make gcc libtool autoconf automake
Summary: User-space access to Linux Kernel SCTP
Name: lksctp-tools
Version: 1.0.17
Release: 1%{?dist}
# src/apps/bindx_test.C is GPLv2, I've asked upstream for clarification
License: GPLv2 and GPLv2+ and LGPLv2 and MIT
Group: System Environment/Libraries
URL: http://lksctp.sourceforge.net
Source0: http://downloads.sourceforge.net/lksctp/%{name}-%{version}.tar.gz
Patch0: lksctp-tools-1.0.16-libdir.patch
Patch1: lksctp-tools-1.0.17-sctp_status-fix-hostname-resolution.patch
BuildRequires: libtool, automake, autoconf
%description
The lksctp-tools project provides a Linux user space library for SCTP (libsctp)
including C language header files (netinet/sctp.h) for accessing SCTP specific
application programming interfaces not provided by the standard sockets,
and also some helper utilities around SCTP.
This is the lksctp-tools package for Linux Kernel SCTP (Stream Control
Transmission Protocol) Reference Implementation.
For more information on the features and functions currently supported by
lksctp, please refer to the documentation in the Linux kernel resp. in the
lksctp-tools package. The lksctp-tools source contains a set of test programs
which would also serve as example applications.
This package is intended to supplement the Linux Kernel SCTP Reference
Implementation now available in the Linux kernel source tree in
versions 2.5.36 and following. For more information on LKSCTP see the
package documentation README file, section titled "LKSCTP - Linux
Kernel SCTP."
This package contains the base run-time library and command-line tools.
%package devel
Summary: Development files for %{name}
Requires: %{name} = %{version}-%{release}
%package devel
Summary: Development files for lksctp-tools
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
Development files for %{name} which include header files and dynamic
libraries.
Development files for lksctp-tools which include man pages, header files,
static libraries, symlinks to dynamic libraries and some tutorial source code.
%package doc
Summary: Documents pertaining to SCTP
Group: System Environment/Libraries
Requires: %{name} = %{version}-%{release}
%package_help
%description doc
Documents pertaining to LKSCTP & SCTP in general (IETF RFC's & Internet
Drafts).
%prep
%autosetup -n %{name}-%{version} -p1
%setup -q
%patch0 -p1
%patch1 -p1
%build
rm -rf configure && sh bootstrap
[ ! -x ./configure ] && sh bootstrap
%configure --disable-static
%disable_rpath
%make_build
# remove rpath from libtool
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
make %{?_smp_mflags}
%install
%make_install
%delete_la
rm -f doc/rfc2960.txt doc/states.txt
make install DESTDIR="$RPM_BUILD_ROOT" INSTALL="install -p"
find $RPM_BUILD_ROOT/%{_libdir}/ -name "*.la" | xargs rm -f
%pre
%preun
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root)
%license COPYING*
%files
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING* README
%{_bindir}/*
%{_libdir}/libsctp.so.*
%dir %{_libdir}/lksctp-tools/
%{_libdir}/lksctp-tools/libwithsctp.so.*
%{_mandir}/man7/*
%files devel
%defattr(-,root,root,-)
%{_includedir}/*
%{_libdir}/libsctp.so
%{_libdir}/lksctp-tools/libwithsctp.so
%{_libdir}/pkgconfig/libsctp.pc
%{_datadir}/lksctp-tools/
%files help
%doc AUTHORS ChangeLog README doc/*.txt
%{_mandir}/man3/*
%{_mandir}/man7/*
%files doc
%defattr(-,root,root,-)
%doc doc/*.txt
%changelog
* Tue Jun 30 2020 hanhui <hanhui15@huawei.com> - 1.0.17-1
- openEuler Mainline Update to 1.0.17
%changelog
* Thu Nov 28 2019 Qianbiao.NG <Qianbiao.NG@turnbig.net> - 1.0.16-11
- Repackage for openEuler OS
- repackage for openEuler OS