File openslp.diff of Package openslp
--- ./common/slp_iface.c.orig 2006-09-12 13:17:00.000000000 +0000
+++ ./common/slp_iface.c 2006-09-12 13:17:08.000000000 +0000
@@ -128,6 +128,7 @@ int SLPIfaceGetInfo(const char* useiface
#endif
{
perror("ioctl failed");
+ close(fd);
return 1;
}
@@ -183,6 +184,7 @@ int SLPIfaceGetInfo(const char* useiface
}
}
+ close(fd);
return 0;
}
#else
--- ./common/slp_net.c.orig 2006-09-12 13:17:00.000000000 +0000
+++ ./common/slp_net.c 2006-09-12 13:17:08.000000000 +0000
@@ -92,7 +92,7 @@ int SLPNetGetThisHostname(char** hostfdn
}
else
{
- ifaddr.s_addr = *((unsigned long*)he->h_addr);
+ ifaddr = *((struct in_addr *)he->h_addr);
*hostfdn = xstrdup(inet_ntoa(ifaddr));
}
--- ./common/slp_spi.c.orig 2006-09-12 13:17:00.000000000 +0000
+++ ./common/slp_spi.c 2006-09-12 13:17:08.000000000 +0000
@@ -267,9 +267,9 @@ SLPSpiHandle SLPSpiOpen(const char* spif
fp = fopen(spifile,"r");
if(fp)
{
- result = xmalloc(sizeof(structSLPSpiHandle));
+ result = xmalloc(sizeof(struct _SLPSpiHandle));
if(result == 0) return 0;
- memset(result, 0, sizeof(structSLPSpiHandle));
+ memset(result, 0, sizeof(struct _SLPSpiHandle));
result->spifile = xstrdup(spifile);
result->cacheprivate = cacheprivate;
--- ./configure.in.orig 2006-09-12 13:17:00.000000000 +0000
+++ ./configure.in 2006-09-12 13:17:08.000000000 +0000
@@ -171,5 +171,12 @@ AC_CHECK_LIB(socket, main)
AC_CHECK_LIB(nsl, gethostbyname)
AC_CHECK_LIB(m, main)
AC_CHECK_FUNCS(ceil log10 strncasecmp strcasecmp )
-AC_OUTPUT(Makefile common/Makefile libslpattr/Makefile libslp/Makefile \
- slpd/Makefile slptool/Makefile test/Makefile slp.list)
+AC_CONFIG_FILES([ Makefile ])
+AC_CONFIG_FILES([ common/Makefile ])
+AC_CONFIG_FILES([ libslpattr/Makefile ])
+AC_CONFIG_FILES([ libslp/Makefile ])
+AC_CONFIG_FILES([ slpd/Makefile ])
+AC_CONFIG_FILES([ slptool/Makefile ])
+AC_CONFIG_FILES([ test/Makefile ])
+AC_CONFIG_FILES([ slp.list ])
+AC_OUTPUT
--- ./etc/slp.reg.orig 2006-09-12 13:17:00.000000000 +0000
+++ ./etc/slp.reg 2006-09-12 13:17:08.000000000 +0000
@@ -37,3 +37,10 @@
##Register telnet service with no attributes
#service:telnet.myorg://192.168.100.1,en,65535
#use default scopes
+
+##Register vnc kdm service, can be used via krdc
+#service:remotedesktop.kde:vnc://192.168.100.1:1,en,65535
+#attrid=(type=shared),(username=joe),(fullname=Joe User),(serviceid=1235456)
+#description=KDE remote login
+
+
--- ./slpd/slpd_incoming.c.orig 2006-09-12 13:17:00.000000000 +0000
+++ ./slpd/slpd_incoming.c 2006-09-12 13:19:18.000000000 +0000
@@ -137,11 +137,11 @@ void IncomingStreamWrite(SLPList* sockli
sock->state = STREAM_WRITE;
}
- if (sock->sendbuf->end - sock->sendbuf->start != 0)
+ if (sock->sendbuf->end - sock->sendbuf->curpos != 0)
{
byteswritten = send(sock->fd,
sock->sendbuf->curpos,
- sock->sendbuf->end - sock->sendbuf->start,
+ sock->sendbuf->end - sock->sendbuf->curpos,
flags);
if (byteswritten > 0)
{
@@ -157,9 +157,9 @@ void IncomingStreamWrite(SLPList* sockli
else
{
#ifdef _WIN32
- if (WSAEWOULDBLOCK == WSAGetLastError())
+ if (WSAEWOULDBLOCK != WSAGetLastError())
#else
- if (errno == EWOULDBLOCK)
+ if (errno != EWOULDBLOCK)
#endif
{
/* Error occured or connection was closed */
@@ -516,6 +516,7 @@ int SLPDIncomingInit()
/* Create socket that will handle multicast UDP. */
/*----------------------------------------------------------------*/
+ mcastaddr.s_addr = htonl(SLP_MCAST_ADDRESS);
sock = SLPDSocketCreateBoundDatagram(&myaddr,
&mcastaddr,
DATAGRAM_MULTICAST);
--- ./slpd/slpd_outgoing.c.orig 2002-12-03 21:04:54.000000000 +0000
+++ ./slpd/slpd_outgoing.c 2006-09-12 13:19:47.000000000 +0000
@@ -328,11 +328,11 @@ void OutgoingStreamWrite(SLPList* sockli
sock->state = STREAM_WRITE;
}
- if ( sock->sendbuf->end - sock->sendbuf->start > 0 )
+ if ( sock->sendbuf->end - sock->sendbuf->curpos > 0 )
{
byteswritten = send(sock->fd,
sock->sendbuf->curpos,
- sock->sendbuf->end - sock->sendbuf->start,
+ sock->sendbuf->end - sock->sendbuf->curpos,
flags);
if ( byteswritten > 0 )
{
--- ./slpd/slpd_socket.c.orig 2006-09-12 13:17:00.000000000 +0000
+++ ./slpd/slpd_socket.c 2006-09-12 13:17:08.000000000 +0000
@@ -183,7 +183,7 @@ int DropSLPMulticastGroup(sockfd_t sockf
memcpy(&mreq.imr_multiaddr, maddr, sizeof(struct in_addr));
/* drop for the specified interface */
- memcpy(&mreq.imr_interface,addr,sizeof(addr));
+ memcpy(&mreq.imr_interface,addr,sizeof(struct in_addr));
return setsockopt(sockfd, IPPROTO_IP, IP_DROP_MEMBERSHIP, (char*)&mreq,sizeof(mreq));
}