Hello community,
here is the log from the commit of package openslp
checked in at Fri Nov 17 19:05:17 CET 2006.
--------
--- openslp/openslp.changes 2006-09-12 15:33:22.000000000 +0200
+++ /mounts/work_src_done/STABLE/openslp/openslp.changes 2006-11-17 12:41:14.000000000 +0100
@@ -1,0 +2,10 @@
+Thu Nov 16 17:13:01 CET 2006 - mls@suse.de
+
+- truncate oversized udp messages, finally fixes [#185483]
+ (can be turned of with "net.slp.oversizedUDP" option)
+- do not try to send back empty answers
+- add option "net.slp.allowDoubleEqualInPredicate" to make openslp
+ work with some buggy clients that use "==" for comparison [#95043]
+- changed SLPGetPeer interface to support IPv6
+
+-------------------------------------------------------------------
New:
----
openslp.doubleequal.diff
openslp.emptyanswer.diff
openslp.truncate.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openslp.spec ++++++
--- /var/tmp/diff_new_pack.6HBuSm/_old 2006-11-17 19:05:11.000000000 +0100
+++ /var/tmp/diff_new_pack.6HBuSm/_new 2006-11-17 19:05:11.000000000 +0100
@@ -14,8 +14,8 @@
BuildRequires: openssl-devel
Summary: An OpenSLP Implementation of Service Location Protocol V2
Version: 1.2.0
-Release: 26
-License: BSD, Other License(s), see package
+Release: 43
+License: BSD License and BSD-like, Other License(s), see package
Group: System/Daemons
URL: http://www.openslp.org/
PreReq: %fillup_prereq %insserv_prereq
@@ -36,6 +36,9 @@
Patch8: openslp.v1sladdr.diff
Patch9: openslp.tcpclearovr.diff
Patch10: openslp.checkovr.diff
+Patch11: openslp.truncate.diff
+Patch12: openslp.emptyanswer.diff
+Patch13: openslp.doubleequal.diff
%description
Service Location Protocol is an IETF standards track protocol that
@@ -122,6 +125,10 @@
%patch7
%patch8
%patch9
+%patch10
+%patch11
+%patch12
+%patch13
autoreconf --force --install
%build
@@ -241,6 +248,13 @@
%_libdir/libslp.so
%changelog -n openslp
+* Thu Nov 16 2006 - mls@suse.de
+- truncate oversized udp messages, finally fixes [#185483]
+ (can be turned of with "net.slp.oversizedUDP" option)
+- do not try to send back empty answers
+- add option "net.slp.allowDoubleEqualInPredicate" to make openslp
+ work with some buggy clients that use "==" for comparison [#95043]
+- changed SLPGetPeer interface to support IPv6
* Tue Sep 12 2006 - mls@suse.de
- obey OVERFLOW bit of incoming udp messages [#185483]
- use right length in send() calls [#185483]
++++++ extensions.diff ++++++
--- /var/tmp/diff_new_pack.6HBuSm/_old 2006-11-17 19:05:11.000000000 +0100
+++ /var/tmp/diff_new_pack.6HBuSm/_new 2006-11-17 19:05:11.000000000 +0100
@@ -1,5 +1,5 @@
---- ./common/Makefile.am.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./common/Makefile.am 2006-09-12 11:49:02.000000000 +0000
+--- ./common/Makefile.am.orig 2003-02-13 05:19:57.000000000 +0000
++++ ./common/Makefile.am 2006-11-16 16:19:30.000000000 +0000
@@ -24,6 +24,7 @@ libcommonlibslp_la_SOURCES = \
slp_parse.c \
slp_pid.c \
@@ -24,8 +24,8 @@
slp_dhcp.h
AM_YFLAGS = -d
---- ./common/slp_compare.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./common/slp_compare.c 2006-09-12 11:49:02.000000000 +0000
+--- ./common/slp_compare.c.orig 2002-12-03 21:04:49.000000000 +0000
++++ ./common/slp_compare.c 2006-11-16 16:19:30.000000000 +0000
@@ -146,6 +146,17 @@ int SLPCompareNamingAuth(int srvtypelen,
if(namingauthlen == 0xffff) /* match all naming authorities */
return 0;
@@ -44,8 +44,8 @@
dot = memchr(srvtype,'.',srvtypelen);
if(!namingauthlen) /* IANA naming authority */
---- ./common/slp_mdns.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./common/slp_mdns.c 2006-09-12 11:49:02.000000000 +0000
+--- ./common/slp_mdns.c.orig 2006-11-16 16:19:30.000000000 +0000
++++ ./common/slp_mdns.c 2006-11-16 16:19:30.000000000 +0000
@@ -0,0 +1,573 @@
+#include "slp_mdns.h"
+#include "slp_message.h"
@@ -620,8 +620,8 @@
+ return 0;
+}
+
---- ./common/slp_mdns.h.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./common/slp_mdns.h 2006-09-12 11:49:02.000000000 +0000
+--- ./common/slp_mdns.h.orig 2006-11-16 16:19:30.000000000 +0000
++++ ./common/slp_mdns.h 2006-11-16 16:19:30.000000000 +0000
@@ -0,0 +1,102 @@
+#ifndef SLP_MDNS_H_INCLUDED
+#define SLP_MDNS_H_INCLUDED
@@ -725,8 +725,8 @@
+ int valuelen);
+
+#endif
---- ./common/slp_message.h.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./common/slp_message.h 2006-09-12 11:49:02.000000000 +0000
+--- ./common/slp_message.h.orig 2003-04-04 06:52:07.000000000 +0000
++++ ./common/slp_message.h 2006-11-16 16:19:30.000000000 +0000
@@ -170,6 +170,10 @@ typedef UINT32* PUINT32;
#define SLP_REG_SOURCE_LOCAL 2 /* from localhost or IPC */
#define SLP_REG_SOURCE_STATIC 3 /* from the slp.reg file */
@@ -747,8 +747,8 @@
/* The following are not part of the RFC protocol. They are used by */
/* the OpenSLP implementation for convenience */
int source;
---- ./common/slp_net.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./common/slp_net.c 2006-09-12 11:49:02.000000000 +0000
+--- ./common/slp_net.c.orig 2006-11-16 16:19:17.000000000 +0000
++++ ./common/slp_net.c 2006-11-16 16:19:30.000000000 +0000
@@ -80,7 +80,19 @@ int SLPNetGetThisHostname(char** hostfdn
if(gethostname(host, MAX_HOST_NAME) == 0)
@@ -770,8 +770,8 @@
if(he)
{
/* if the hostname has a '.' then it is probably a qualified
---- ./common/slp_property.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./common/slp_property.c 2006-09-12 11:49:02.000000000 +0000
+--- ./common/slp_property.c.orig 2002-12-03 21:04:50.000000000 +0000
++++ ./common/slp_property.c 2006-11-16 16:19:30.000000000 +0000
@@ -219,7 +219,7 @@ int SetDefaultValues()
@@ -864,8 +864,8 @@
int SLPPropertyAsBoolean(const char* property)
/*=========================================================================*/
{
---- ./common/slp_spi.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./common/slp_spi.c 2006-09-12 11:49:02.000000000 +0000
+--- ./common/slp_spi.c.orig 2006-11-16 16:19:17.000000000 +0000
++++ ./common/slp_spi.c 2006-11-16 16:19:30.000000000 +0000
@@ -395,6 +395,8 @@ SLPCryptoDSAKey* SLPSpiGetDSAKey(SLPSpiH
}
@@ -892,8 +892,8 @@
+ entry = (SLPSpiEntry*)entry->listitem.next;
+ }
+}
---- ./common/slp_spi.h.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./common/slp_spi.h 2006-09-12 11:49:02.000000000 +0000
+--- ./common/slp_spi.h.orig 2002-03-19 23:52:15.000000000 +0000
++++ ./common/slp_spi.h 2006-11-16 16:19:30.000000000 +0000
@@ -172,7 +172,13 @@ int SLPSpiCanSign(SLPSpiHandle hspi,
/* Returns Non-zero if we sign using the specified SPI */
/*=========================================================================*/
@@ -909,8 +909,8 @@
+#endif
---- ./common/slp_xcast.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./common/slp_xcast.c 2006-09-12 11:49:02.000000000 +0000
+--- ./common/slp_xcast.c.orig 2003-04-04 06:52:07.000000000 +0000
++++ ./common/slp_xcast.c 2006-11-16 16:19:30.000000000 +0000
@@ -72,6 +72,7 @@
#include "slp_xcast.h"
@@ -950,8 +950,8 @@
socks->peeraddr[socks->sock_count].sin_family = AF_INET;
socks->peeraddr[socks->sock_count].sin_port = htons(SLP_RESERVED_PORT);
---- ./libslp/Makefile.am.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./libslp/Makefile.am 2006-09-12 11:49:02.000000000 +0000
+--- ./libslp/Makefile.am.orig 2001-07-11 21:03:59.000000000 +0000
++++ ./libslp/Makefile.am 2006-11-16 16:19:30.000000000 +0000
@@ -23,6 +23,7 @@ libslp_la_SOURCES = libslp_dereg.c \
libslp_delattrs.c \
libslp_findsrvtypes.c \
@@ -961,7 +961,7 @@
libslp_la_LIBADD = ../common/libcommonlibslp.la
libslp_la_LDFLAGS = -version-info 1:0:0
--- ./libslp/libslp_findsrvs.c.orig 2003-04-04 06:52:08.000000000 +0000
-+++ ./libslp/libslp_findsrvs.c 2006-09-12 12:53:52.000000000 +0000
++++ ./libslp/libslp_findsrvs.c 2006-11-16 16:29:43.000000000 +0000
@@ -54,7 +54,8 @@ SLPBoolean ColateSLPSrvURLCallback(SLPHa
const char* pcSrvURL,
unsigned short sLifetime,
@@ -987,21 +987,22 @@
collateditem->lifetime = sLifetime;
/* Add the new item to the collated list */
-@@ -146,6 +148,37 @@ CLEANUP:
+@@ -146,6 +148,38 @@ CLEANUP:
return SLP_FALSE;
}
-+SLPError SLPAPI SLPGetPeer(SLPHandle hSLP, const char *pcURL, struct sockaddr_in *peerinfo)
++char * SLPAPI SLPGetPeer(SLPHandle hSLP, const char *pcURL)
+{
+ PSLPHandleInfo handle;
+ SLPSrvUrlColatedItem* collateditem;
++ struct sockaddr_in peer;
+
+ /*------------------------------*/
+ /* check for invalid parameters */
+ /*------------------------------*/
+ if(hSLP == 0 || *(unsigned int*)hSLP != SLP_HANDLE_SIG || pcURL == 0 || pcURL[0] == 0)
+ {
-+ return SLP_PARAMETER_BAD;
++ return 0;
+ }
+
+ /*-----------------------------------------*/
@@ -1014,18 +1015,18 @@
+ {
+ if (strcmp(collateditem->srvurl, pcURL) == 0)
+ {
-+ memcpy((char *)peerinfo, collateditem->srvurl + strlen(collateditem->srvurl) + 1, sizeof(*peerinfo));
-+ return SLP_OK;
++ memcpy((char *)&peer, collateditem->srvurl + strlen(collateditem->srvurl) + 1, sizeof(peer));
++ return xstrdup(inet_ntoa(peer.sin_addr));
+ }
+ collateditem = (SLPSrvUrlColatedItem*)collateditem->listitem.next;
+ }
-+ return SLP_PARAMETER_BAD;
++ return 0;
+}
+
/*-------------------------------------------------------------------------*/
SLPBoolean ProcessSrvRplyCallback(SLPError errorcode,
struct sockaddr_in* peerinfo,
-@@ -173,7 +206,8 @@ SLPBoolean ProcessSrvRplyCallback(SLPErr
+@@ -173,7 +207,8 @@ SLPBoolean ProcessSrvRplyCallback(SLPErr
0,
0,
errorcode,
@@ -1035,7 +1036,7 @@
}
/*--------------------*/
-@@ -215,7 +249,8 @@ SLPBoolean ProcessSrvRplyCallback(SLPErr
+@@ -215,7 +250,8 @@ SLPBoolean ProcessSrvRplyCallback(SLPErr
urlentry[i].url,
(unsigned short)urlentry[i].lifetime,
SLP_OK,
@@ -1045,7 +1046,7 @@
if(result == SLP_FALSE)
{
break;
-@@ -242,7 +277,8 @@ SLPBoolean ProcessSrvRplyCallback(SLPErr
+@@ -242,7 +278,8 @@ SLPBoolean ProcessSrvRplyCallback(SLPErr
replymsg->body.daadvert.url,
SLP_LIFETIME_MAXIMUM,
SLP_OK,
@@ -1055,7 +1056,7 @@
}
else if(replymsg->header.functionid == SLP_FUNCT_SAADVERT)
{
-@@ -264,7 +300,8 @@ SLPBoolean ProcessSrvRplyCallback(SLPErr
+@@ -264,7 +301,8 @@ SLPBoolean ProcessSrvRplyCallback(SLPErr
replymsg->body.saadvert.url,
SLP_LIFETIME_MAXIMUM,
SLP_OK,
@@ -1065,8 +1066,8 @@
}
}
---- ./libslp/libslp_mdns.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./libslp/libslp_mdns.c 2006-09-12 11:49:02.000000000 +0000
+--- ./libslp/libslp_mdns.c.orig 2006-11-16 16:19:30.000000000 +0000
++++ ./libslp/libslp_mdns.c 2006-11-16 16:19:30.000000000 +0000
@@ -0,0 +1,915 @@
+#ifdef _WIN32
+#define WIN32_LEAN_AND_MEAN
@@ -1983,8 +1984,8 @@
+ return result;
+}
+
---- ./libslp/libslp_mdns.h.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./libslp/libslp_mdns.h 2006-09-12 11:49:02.000000000 +0000
+--- ./libslp/libslp_mdns.h.orig 2006-11-16 16:19:30.000000000 +0000
++++ ./libslp/libslp_mdns.h 2006-11-16 16:19:30.000000000 +0000
@@ -0,0 +1,14 @@
+#include "slp_mdns.h"
+#include "libslp.h"
@@ -2000,8 +2001,8 @@
+ struct sockaddr_in* peeraddr,
+ struct timeval* timeout,
+ SLPBuffer mdnssendbuf, int buftype, PSLPHandleInfo handle);
---- ./libslp/libslp_network.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./libslp/libslp_network.c 2006-09-12 13:01:38.000000000 +0000
+--- ./libslp/libslp_network.c.orig 2003-08-20 05:25:58.000000000 +0000
++++ ./libslp/libslp_network.c 2006-11-16 16:19:30.000000000 +0000
@@ -49,6 +49,7 @@
#include "slp.h"
@@ -2158,9 +2159,9 @@
handle->unicastsock = SLPNetworkConnectStream(&(handle->unicastaddr), &timeout);
if ( handle->unicastsock >= 0 ) {
retval1 = SLPNetworkSendMessage(handle->unicastsock, SOCK_STREAM, sendbuf, &(handle->unicastaddr), &timeout);
---- ./libslp/slp.h.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./libslp/slp.h 2006-09-12 13:08:32.000000000 +0000
-@@ -981,6 +981,44 @@ SLPEXP SLPError SLPAPI SLPParseAttrs(con
+--- ./libslp/slp.h.orig 2003-04-21 11:26:54.000000000 +0000
++++ ./libslp/slp.h 2006-11-16 16:42:16.000000000 +0000
+@@ -981,6 +981,41 @@ SLPEXP SLPError SLPAPI SLPParseAttrs(con
/* was not found otherwise SLP_OK */
/*=========================================================================*/
@@ -2184,29 +2185,26 @@
+
+
+/*=========================================================================*/
-+struct sockaddr_in;
-+SLPEXP SLPError SLPAPI SLPGetPeer(SLPHandle hSLP,
-+ const char *pcURL,
-+ struct sockaddr_in *peerinfo);
++SLPEXP char * SLPAPI SLPGetPeer(SLPHandle hSLP,
++ const char *pcURL);
+/* */
+/* Used to get the peer info corresponding to a service URL. This function */
+/* may only be called from a SLPSrvURLCallback. */
++/* The memory should be freed by calling SLPFree(). */
+/* */
+/* hSLP The language specific SLPHandle on which to search for */
+/* the MDNS name. */
+/* */
+/* pcURL (IN) The service URL. */
+/* */
-+/* peerinfo (OUT) The peer information. */
-+/* */
-+/* Returns: SLP_OK if the peerinfo was available. */
++/* Returns: the ip address if the peer, NULL if not available */
+/*=========================================================================*/
+
#if(defined __cplusplus)
}
#endif
---- ./libslpattr/libslpattr.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./libslpattr/libslpattr.c 2006-09-12 11:49:02.000000000 +0000
+--- ./libslpattr/libslpattr.c.orig 2002-11-23 03:44:53.000000000 +0000
++++ ./libslpattr/libslpattr.c 2006-11-16 16:19:30.000000000 +0000
@@ -360,6 +360,11 @@ int find_value_list_end(char const *valu
(*cur)++;
}
@@ -2219,8 +2217,8 @@
*type = type_guess;
return 1;
}
---- ./slpd/Makefile.am.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/Makefile.am 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/Makefile.am.orig 2002-03-19 23:52:15.000000000 +0000
++++ ./slpd/Makefile.am 2006-11-16 16:19:30.000000000 +0000
@@ -38,6 +38,7 @@ slpd_regfile.c \
slpd_knownda.c \
slpd_incoming.c \
@@ -2237,8 +2235,8 @@
slpd_socket.h
slpd_LDADD = ../common/libcommonslpd.la \
---- ./slpd/slpd_database.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_database.c 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_database.c.orig 2003-03-19 05:03:21.000000000 +0000
++++ ./slpd/slpd_database.c 2006-11-16 16:19:30.000000000 +0000
@@ -69,6 +69,13 @@
#include "slp_xmalloc.h"
#include "slp_pid.h"
@@ -2511,8 +2509,8 @@
return 0;
}
---- ./slpd/slpd_database.h.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_database.h 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_database.h.orig 2001-05-10 15:04:19.000000000 +0000
++++ ./slpd/slpd_database.h 2006-11-16 16:19:30.000000000 +0000
@@ -266,7 +266,7 @@ int SLPDDatabaseIsEmpty();
@@ -2540,8 +2538,8 @@
#ifdef DEBUG
/*=========================================================================*/
void SLPDDatabaseDeinit(void);
---- ./slpd/slpd_knownda.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_knownda.c 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_knownda.c.orig 2003-02-04 20:41:15.000000000 +0000
++++ ./slpd/slpd_knownda.c 2006-11-16 16:19:30.000000000 +0000
@@ -1640,7 +1640,7 @@ void SLPDKnownDARegisterWithAllDas(SLPMe
/* Returns: None */
/*=========================================================================*/
@@ -2551,8 +2549,8 @@
{
/* Simply echo the message through as is */
SLPDKnownDAEcho(msg,buf);
---- ./slpd/slpd_log.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_log.c 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_log.c.orig 2002-12-03 21:04:53.000000000 +0000
++++ ./slpd/slpd_log.c 2006-11-16 16:19:30.000000000 +0000
@@ -271,6 +271,7 @@ void SLPDLogSrvTypeRqstMessage(SLPSrvTyp
/*-------------------------------------------------------------------------*/
{
@@ -2561,8 +2559,8 @@
}
/*-------------------------------------------------------------------------*/
---- ./slpd/slpd_main.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_main.c 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_main.c.orig 2002-12-03 21:04:53.000000000 +0000
++++ ./slpd/slpd_main.c 2006-11-16 16:19:30.000000000 +0000
@@ -54,6 +54,7 @@
#include "slpd_log.h"
#include "slpd_socket.h"
@@ -2711,8 +2709,8 @@
}
/*----------------*/
---- ./slpd/slpd_mdns.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_mdns.c 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_mdns.c.orig 2006-11-16 16:19:30.000000000 +0000
++++ ./slpd/slpd_mdns.c 2006-11-16 16:19:30.000000000 +0000
@@ -0,0 +1,906 @@
+#include "slpd_mdns.h"
+#include "slpd_socket.h"
@@ -3620,8 +3618,8 @@
+#endif
+ return 0;
+}
---- ./slpd/slpd_mdns.h.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_mdns.h 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_mdns.h.orig 2006-11-16 16:19:30.000000000 +0000
++++ ./slpd/slpd_mdns.h 2006-11-16 16:19:30.000000000 +0000
@@ -0,0 +1,50 @@
+#ifndef SLPD_MDNS_H_INCLUDE
+#define SLPD_MDNS_H_INCLUDE
@@ -3673,8 +3671,8 @@
+/*=========================================================================*/
+
+#endif
---- ./slpd/slpd_process.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_process.c 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_process.c.orig 2003-02-20 16:43:57.000000000 +0000
++++ ./slpd/slpd_process.c 2006-11-16 16:19:30.000000000 +0000
@@ -1331,11 +1331,14 @@ int SLPDProcessMessage(struct sockaddr_i
SLPDLogMessage(SLPDLOG_TRACEMSG_IN,peerinfo,recvbuf);
@@ -3693,8 +3691,8 @@
/* zero out the header before parsing it */
memset(&header,0,sizeof(header));
---- ./slpd/slpd_property.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_property.c 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_property.c.orig 2002-06-11 17:25:40.000000000 +0000
++++ ./slpd/slpd_property.c 2006-11-16 16:19:30.000000000 +0000
@@ -65,6 +65,7 @@
/*=========================================================================*/
@@ -3834,8 +3832,8 @@
}
/*----------------------------------*/
---- ./slpd/slpd_property.h.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_property.h 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_property.h.orig 2002-06-11 17:25:40.000000000 +0000
++++ ./slpd/slpd_property.h 2006-11-16 16:19:30.000000000 +0000
@@ -61,6 +61,8 @@ typedef struct _SLPDProperty
{
int myUrlLen;
@@ -3853,8 +3851,8 @@
int localeLen;
const char* locale;
int isBroadcastOnly;
---- ./slpd/slpd_regfile.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_regfile.c 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_regfile.c.orig 2002-03-19 23:52:15.000000000 +0000
++++ ./slpd/slpd_regfile.c 2006-11-16 16:19:30.000000000 +0000
@@ -153,6 +153,7 @@ int SLPDRegFileReadSrvReg(FILE* fd,
{
char* slider1;
@@ -3922,8 +3920,8 @@
CLEANUP:
---- ./slpd/slpd_socket.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_socket.c 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_socket.c.orig 2006-11-16 16:19:17.000000000 +0000
++++ ./slpd/slpd_socket.c 2006-11-16 16:19:30.000000000 +0000
@@ -412,6 +412,8 @@ SLPDSocket* SLPDSocketCreateBoundDatagra
sock->fd = socket(PF_INET, SOCK_DGRAM, 0);
if(sock->fd >=0)
@@ -3942,8 +3940,8 @@
if(BindSocketToInetAddr(sock->fd, peeraddr) >= 0)
{
if(listen(sock->fd,5) == 0)
---- ./slpd/slpd_socket.h.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_socket.h 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_socket.h.orig 2002-12-03 21:04:54.000000000 +0000
++++ ./slpd/slpd_socket.h 2006-11-16 16:19:30.000000000 +0000
@@ -97,6 +97,7 @@ typedef struct _SLPDSocket
int fd;
time_t age; /* in seconds */
@@ -3952,8 +3950,8 @@
struct sockaddr_in peeraddr;
/* Incoming socket stuff */
---- ./slpd/slpd_spi.c.orig 2006-09-12 11:48:53.000000000 +0000
-+++ ./slpd/slpd_spi.c 2006-09-12 11:49:02.000000000 +0000
+--- ./slpd/slpd_spi.c.orig 2001-04-16 22:17:31.000000000 +0000
++++ ./slpd/slpd_spi.c 2006-11-16 16:19:30.000000000 +0000
@@ -68,6 +68,8 @@ int SLPDSpiInit(const char* spifile)
}
@@ -3963,19 +3961,20 @@
return (G_SlpdSpiHandle == 0);
}
---- ./slptool/slptool.c.orig 2006-09-12 12:28:05.000000000 +0000
-+++ ./slptool/slptool.c 2006-09-12 12:57:21.000000000 +0000
-@@ -329,6 +329,19 @@ SLPBoolean mySrvUrlCallback( SLPHandle h
+--- ./slptool/slptool.c.orig 2003-04-21 11:19:19.000000000 +0000
++++ ./slptool/slptool.c 2006-11-16 16:47:44.000000000 +0000
+@@ -329,6 +329,20 @@ SLPBoolean mySrvUrlCallback( SLPHandle h
{
if(errcode == SLP_OK)
{
+ SLPToolCommandLine* cmdline = cookie;
+ if (cmdline->peerinfo)
+ {
-+ struct sockaddr_in peerinfo;
-+ if (SLPGetPeer(hslp, srvurl, &peerinfo) == SLP_OK)
++ char *peer = SLPGetPeer(hslp, srvurl);
++ if (peer)
+ {
-+ printf("%s\t", inet_ntoa(peerinfo.sin_addr));
++ printf("%s\t", peer);
++ SLPFree(peer);
+ }
+ else
+ {
@@ -3985,7 +3984,7 @@
printf("%s,%i\n",srvurl,lifetime);
}
-@@ -350,7 +363,7 @@ void FindSrvs(SLPToolCommandLine* cmdlin
+@@ -350,7 +364,7 @@ void FindSrvs(SLPToolCommandLine* cmdlin
cmdline->scopes,
cmdline->cmdparam2,
mySrvUrlCallback,
@@ -3994,7 +3993,7 @@
if(result != SLP_OK)
{
printf("errorcode: %i\n",result);
-@@ -382,7 +395,7 @@ void FindSrvsUsingIFList(SLPToolCommandL
+@@ -382,7 +396,7 @@ void FindSrvsUsingIFList(SLPToolCommandL
cmdline->scopes,
cmdline->cmdparam2,
mySrvUrlCallback,
@@ -4003,7 +4002,7 @@
if(result != SLP_OK)
{
printf("errorcode: %i\n",result);
-@@ -414,7 +427,7 @@ void UnicastFindSrvs(SLPToolCommandLine*
+@@ -414,7 +428,7 @@ void UnicastFindSrvs(SLPToolCommandLine*
cmdline->scopes,
cmdline->cmdparam2,
mySrvUrlCallback,
@@ -4012,7 +4011,7 @@
if(result != SLP_OK)
{
printf("errorcode: %i\n",result);
-@@ -599,6 +612,11 @@ int ParseCommandLine(int argc,char* argv
+@@ -599,6 +613,11 @@ int ParseCommandLine(int argc,char* argv
return 1;
}
}
@@ -4024,8 +4023,8 @@
else if(strcasecmp(argv[i],"findsrvs") == 0)
{
cmdline->cmd = FINDSRVS;
---- ./slptool/slptool.h.orig 2006-09-12 12:28:46.000000000 +0000
-+++ ./slptool/slptool.h 2006-09-12 12:55:13.000000000 +0000
+--- ./slptool/slptool.h.orig 2003-04-21 11:17:58.000000000 +0000
++++ ./slptool/slptool.h 2006-11-16 16:19:30.000000000 +0000
@@ -40,6 +40,8 @@
#include