- Use tcp connects to talk with other DAs [bnc#1117969]
new patch: openslp.tcpknownda.diff - Fix segfault in predicate match if a registered service has a malformed attribute list [bnc#1136136] new patch: openslp.nullattr.diff OBS-URL: https://build.opensuse.org/package/show/network:utilities/openslp?expand=0&rev=66
This commit is contained in:
parent
ec7846d6e9
commit
38796dc333
@ -1,3 +1,12 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 7 16:00:46 CEST 2019 - mls@suse.de
|
||||
|
||||
- Use tcp connects to talk with other DAs [bnc#1117969]
|
||||
new patch: openslp.tcpknownda.diff
|
||||
- Fix segfault in predicate match if a registered service has
|
||||
a malformed attribute list [bnc#1136136]
|
||||
new patch: openslp.nullattr.diff
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 6 16:17:45 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
|
13
openslp.nullattr.diff
Normal file
13
openslp.nullattr.diff
Normal file
@ -0,0 +1,13 @@
|
||||
--- slpd/slpd_predicate.c.orig 2019-06-06 14:12:09.025492155 +0000
|
||||
+++ slpd/slpd_predicate.c 2019-06-06 14:12:56.605386533 +0000
|
||||
@@ -2111,6 +2111,10 @@ int SLPDPredicateTestTree(SLPDPredicateT
|
||||
if (!parseTree)
|
||||
return 1;
|
||||
|
||||
+ /* a NULL set of attribures is always false */
|
||||
+ if (!slp_attr)
|
||||
+ return 0;
|
||||
+
|
||||
err = treeFilter(parseTree, slp_attr);
|
||||
|
||||
return (err == FR_EVAL_TRUE);
|
@ -54,6 +54,8 @@ Patch18: openslp.openssl-1.1.diff
|
||||
Patch19: openslp.localaddr.diff
|
||||
Patch20: openslp.tcpunicast.diff
|
||||
Patch21: openslp-2.0.0-ifdef-slpv2.diff
|
||||
Patch22: openslp.tcpknownda.diff
|
||||
Patch23: openslp.nullattr.diff
|
||||
BuildRequires: bison
|
||||
BuildRequires: flex
|
||||
BuildRequires: libtool
|
||||
@ -140,6 +142,8 @@ such applications.
|
||||
%patch19
|
||||
%patch20
|
||||
%patch21 -p1
|
||||
%patch22
|
||||
%patch23
|
||||
|
||||
%build
|
||||
autoreconf -fiv
|
||||
|
94
openslp.tcpknownda.diff
Normal file
94
openslp.tcpknownda.diff
Normal file
@ -0,0 +1,94 @@
|
||||
--- slpd/slpd_knownda.c.orig 2018-12-06 14:03:06.033908426 +0000
|
||||
+++ slpd/slpd_knownda.c 2018-12-06 14:12:30.448421700 +0000
|
||||
@@ -261,7 +261,7 @@ void SLPDKnownDARegisterAll(SLPMessage *
|
||||
/*----------------------------------------------*/
|
||||
/* Establish a new connection with the known DA */
|
||||
/*----------------------------------------------*/
|
||||
- sock = SLPDOutgoingConnect(0, &(daadvert->peer));
|
||||
+ sock = SLPDOutgoingConnect(1, &(daadvert->peer));
|
||||
if (sock)
|
||||
while (1)
|
||||
{
|
||||
@@ -294,7 +294,8 @@ void SLPDKnownDARegisterAll(SLPMessage *
|
||||
/* link newly constructed buffer to socket resendlist, and send */
|
||||
/*--------------------------------------------------------------*/
|
||||
SLPListLinkTail(&(sock->sendlist), (SLPListItem *) sendbuf);
|
||||
- SLPDOutgoingDatagramWrite(sock, sendbuf);
|
||||
+ if (sock->state == STREAM_CONNECT_IDLE)
|
||||
+ sock->state = STREAM_WRITE_FIRST;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -433,7 +434,7 @@ void SLPDKnownDADeregisterAll(SLPMessage
|
||||
return;
|
||||
|
||||
/* Establish a new connection with the known DA */
|
||||
- sock = SLPDOutgoingConnect(0, &(daadvert->peer));
|
||||
+ sock = SLPDOutgoingConnect(1, &(daadvert->peer));
|
||||
if (sock)
|
||||
while (1)
|
||||
{
|
||||
@@ -459,7 +460,8 @@ void SLPDKnownDADeregisterAll(SLPMessage
|
||||
/* link newly constructed buffer to socket resendlist, and send */
|
||||
/*--------------------------------------------------------------*/
|
||||
SLPListLinkTail(&(sock->sendlist), (SLPListItem *) sendbuf);
|
||||
- SLPDOutgoingDatagramWrite(sock, sendbuf);
|
||||
+ if (sock->state == STREAM_CONNECT_IDLE)
|
||||
+ sock->state = STREAM_WRITE_FIRST;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -502,14 +504,15 @@ int SLPDKnownDAFromDHCP()
|
||||
Get an outgoing socket to the DA and set it up to make
|
||||
the service:directoryagent request
|
||||
--------------------------------------------------------*/
|
||||
- sock = SLPDOutgoingConnect(0, &daaddr);
|
||||
+ sock = SLPDOutgoingConnect(1, &daaddr);
|
||||
if (sock)
|
||||
{
|
||||
buf = 0;
|
||||
if (MakeActiveDiscoveryRqst(0, &buf) == 0)
|
||||
{
|
||||
SLPListLinkTail(&(sock->sendlist), (SLPListItem *) buf);
|
||||
- SLPDOutgoingDatagramWrite(sock, buf);
|
||||
+ if (sock->state == STREAM_CONNECT_IDLE)
|
||||
+ sock->state = STREAM_WRITE_FIRST;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -601,14 +604,15 @@ int SLPKnownDAFromProperties()
|
||||
/* Get an outgoing socket to the DA and set it up to make */
|
||||
/* the service:directoryagent request */
|
||||
/*--------------------------------------------------------*/
|
||||
- sock = SLPDOutgoingConnect(0, &daaddr);
|
||||
+ sock = SLPDOutgoingConnect(1, &daaddr);
|
||||
if (sock)
|
||||
{
|
||||
buf = 0;
|
||||
if (MakeActiveDiscoveryRqst(0, &buf) == 0)
|
||||
{
|
||||
SLPListLinkTail(&(sock->sendlist), (SLPListItem *) buf);
|
||||
- SLPDOutgoingDatagramWrite(sock, buf);
|
||||
+ if (sock->state == STREAM_CONNECT_IDLE)
|
||||
+ sock->state = STREAM_WRITE_FIRST;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1470,14 +1474,15 @@ void SLPDKnownDAEcho(SLPMessage * msg, S
|
||||
/*------------------------------------------*/
|
||||
/* Load the socket with the message to send */
|
||||
/*------------------------------------------*/
|
||||
- sock = SLPDOutgoingConnect(0, &(entry->msg->peer));
|
||||
+ sock = SLPDOutgoingConnect(1, &(entry->msg->peer));
|
||||
if (sock)
|
||||
{
|
||||
dup = SLPBufferDup(buf);
|
||||
if (dup)
|
||||
{
|
||||
SLPListLinkTail(&(sock->sendlist), (SLPListItem *) dup);
|
||||
- SLPDOutgoingDatagramWrite(sock, buf);
|
||||
+ if (sock->state == STREAM_CONNECT_IDLE)
|
||||
+ sock->state = STREAM_WRITE_FIRST;
|
||||
}
|
||||
else
|
||||
sock->state = SOCKET_CLOSE;
|
Loading…
x
Reference in New Issue
Block a user