Michael Schröder 2018-03-05 16:06:09 +00:00 committed by Git OBS Bridge
parent 2741adccd6
commit 06a409ea87
4 changed files with 44 additions and 3 deletions

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Thu Mar 1 16:59:01 CET 2018 - mls@suse.de
- Use %license (boo#1082318)
- fix slpd using the peer address as local address for TCP
connections [bnc#1076035]
new patch: openslp.localaddr.diff
- use tcp connections for unicast requests [bnc#1080964]
new patch: openslp.tcpunicast.diff
-------------------------------------------------------------------
Wed Nov 29 17:25:48 CET 2017 - ro@suse.de

11
openslp.localaddr.diff Normal file
View File

@ -0,0 +1,11 @@
--- ./slpd/slpd_incoming.c.orig 2018-03-01 15:55:45.008171255 +0000
+++ ./slpd/slpd_incoming.c 2018-03-01 15:56:23.183054003 +0000
@@ -354,7 +354,7 @@ static void IncomingSocketListen(SLPList
connsock->fd = fd;
memcpy(&connsock->peeraddr, &peeraddr,
sizeof(struct sockaddr_storage));
- memcpy(&connsock->localaddr, &peeraddr,
+ memcpy(&connsock->localaddr, &sock->localaddr,
sizeof(struct sockaddr_storage));
connsock->state = STREAM_READ_FIRST;
#ifndef _WIN32

View File

@ -1,7 +1,7 @@
#
# spec file for package openslp
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -64,6 +64,8 @@ Patch15: openslp.noconvenience.diff
Patch16: openslp.xrealloc.diff
Patch17: openslp.foldws.diff
Patch18: openslp.openssl-1.1.diff
Patch19: openslp.localaddr.diff
Patch20: openslp.tcpunicast.diff
%description
Service Location Protocol is an IETF standards track protocol that
@ -134,6 +136,8 @@ such applications.
%patch16
%patch17
%patch18 -p2
%patch19
%patch20
%build
autoreconf -fiv
@ -158,7 +162,7 @@ mkdir -p ${RPM_BUILD_ROOT}/usr/include
cp libslp/slp.h ${RPM_BUILD_ROOT}/usr/include
mkdir -p ${RPM_BUILD_ROOT}%_defaultdocdir/%name
find . -name CVS -o -name .cvsignore -o -name .xvpics | xargs rm -rf
cp -a AUTHORS COPYING README FAQ doc/doc/rfc doc/doc/html %SOURCE2 \
cp -a AUTHORS README FAQ doc/doc/rfc doc/doc/html %SOURCE2 \
${RPM_BUILD_ROOT}%_defaultdocdir/%name
%if 0%{?has_systemd}
ln -s %{_sbindir}/service ${RPM_BUILD_ROOT}/usr/sbin/rcslpd
@ -237,10 +241,10 @@ install -D -m 644 %{S:9} %{buildroot}%{_unitdir}/slpd.service
%files
%defattr(-,root,root)
%license COPYING
%dir %_defaultdocdir/%name
%dir %_defaultdocdir/%name/html
%doc %_defaultdocdir/%name/AUTHORS
%doc %_defaultdocdir/%name/COPYING
%doc %_defaultdocdir/%name/README
%doc %_defaultdocdir/%name/README.SUSE
%_libdir/libslp.so.*

16
openslp.tcpunicast.diff Normal file
View File

@ -0,0 +1,16 @@
--- libslp/libslp_network.c.orig 2018-03-01 16:08:38.813669170 +0000
+++ libslp/libslp_network.c 2018-03-05 15:59:56.140618236 +0000
@@ -1426,7 +1426,12 @@ SLPError NetworkUcastRqstRply(SLPHandleI
/*In reality, this function just sets things up for NetworkRqstRply to operate*/
if(handle->unicastsock == SLP_INVALID_SOCKET) /*The unicast code will certainly reuse this socket*/
- handle->unicastsock = SLPNetworkCreateDatagram(handle->ucaddr.ss_family);
+ {
+ maxwait = SLPPropertyAsInteger("net.slp.unicastMaximumWait");
+ timeout.tv_sec = maxwait / 1000;
+ timeout.tv_usec = (maxwait % 1000) * 1000;
+ handle->unicastsock = SLPNetworkConnectStream(&handle->ucaddr, &timeout);
+ }
if (handle->unicastsock == SLP_INVALID_SOCKET)
return SLP_NETWORK_ERROR;