Hi,

The following patch adds a property net.slp.port to make the port to use 
configurable, instead of having a fixed '427'. The reason I wanted this 
was that in the same slp network some java applications (using their own 
slp implementation) couldn't use the privileged port 427 because they 
weren't run by user 'root'.

Of course setting a value anything different from 427 will break 
compliance with RFC2608.

The patch is against trunk/r1589.

Kind regards,

  Roel van de Kraats

--- begin patch ---


Make port configurable instead of having fixed value of 427.
Roel van de Kraats

diff -Naur openslp-2.0.beta1.r1589/common/slp_net.c 
openslp-2.0.beta1.configurable_port/common/slp_net.c
--- openslp-2.0.beta1.r1589/common/slp_net.c    2008-03-27 00:27:29.000000000 
+0100
+++ openslp-2.0.beta1.configurable_port/common/slp_net.c        2008-06-27 
14:15:45.000000000 +0200
@@ -714,7 +714,7 @@
        a->sin6_len = sizeof(struct sockaddr_in6);
    #endif
 
-   a->sin6_port = htons(SLP_RESERVED_PORT);
+   a->sin6_port = htons(SLPPropertyAsInteger("net.slp.port"));
 
    return 0;
 }
diff -Naur openslp-2.0.beta1.r1589/common/slp_property.c 
openslp-2.0.beta1.configurable_port/common/slp_property.c
--- openslp-2.0.beta1.r1589/common/slp_property.c       2008-03-27 
00:27:30.000000000 +0100
+++ openslp-2.0.beta1.configurable_port/common/slp_property.c   2008-06-27 
14:15:45.000000000 +0200
@@ -153,6 +153,7 @@
       {"net.slp.activeDADetection", "true", 0},
       {"net.slp.checkSourceAddr", "true", 0},
       {"net.slp.broadcastAddr", "255.255.255.255", 0},
+      {"net.slp.port", "427", 0},
 
    /* Additional properties that are specific to IPv6 */
       {"net.slp.useIPv6", "false", 0},
diff -Naur openslp-2.0.beta1.r1589/common/slp_xcast.c 
openslp-2.0.beta1.configurable_port/common/slp_xcast.c
--- openslp-2.0.beta1.r1589/common/slp_xcast.c  2008-03-27 00:27:29.000000000 
+0100
+++ openslp-2.0.beta1.configurable_port/common/slp_xcast.c      2008-06-27 
14:15:45.000000000 +0200
@@ -91,7 +91,7 @@
                sizeof(ifaceinfo->bcast_addr[socks->sock_count]));
 
          SLPNetSetAddr(&socks->peeraddr[socks->sock_count], AF_INET, 
-               SLP_RESERVED_PORT, 0);
+               SLPPropertyAsInteger("net.slp.port"), 0);
          xferbytes = sendto(socks->sock[socks->sock_count],
                (char *)msg->start, (int)(msg->end - msg->start), 0, 
                (struct sockaddr *)&socks->peeraddr[socks->sock_count],
diff -Naur openslp-2.0.beta1.r1589/etc/slp.conf 
openslp-2.0.beta1.configurable_port/etc/slp.conf
--- openslp-2.0.beta1.r1589/etc/slp.conf        2008-03-27 00:27:57.000000000 
+0100
+++ openslp-2.0.beta1.configurable_port/etc/slp.conf    2008-06-27 
14:15:45.000000000 +0200
@@ -151,6 +151,9 @@
 # other broadcast configuration variables are set (multicast is used by 
default)  
 ;net.slp.broadcastAddr = 255.255.255.255
 
+# Port to use for all SLP messages. Changing this from the reserved SLP
+# listening port will break compliance with RFC2608. (Default is 427).
+;net.slp.port = 427
 
 #----------------------------------------------------------------------------
 # Security
diff -Naur openslp-2.0.beta1.r1589/libslp/libslp_handle.c 
openslp-2.0.beta1.configurable_port/libslp/libslp_handle.c
--- openslp-2.0.beta1.r1589/libslp/libslp_handle.c      2008-03-27 
00:27:22.000000000 +0100
+++ openslp-2.0.beta1.configurable_port/libslp/libslp_handle.c  2008-06-27 
14:15:45.000000000 +0200
@@ -366,7 +366,7 @@
    /** @todo Verify error conditions in associate ip address. */
 
    result = SLPNetResolveHostToAddr(unicast_ip, &handle->ucaddr);
-   if (SLPNetSetPort(&handle->ucaddr, SLP_RESERVED_PORT) != 0)
+   if (SLPNetSetPort(&handle->ucaddr, SLPPropertyAsInteger("net.slp.port")) != 
0)
       return SLP_PARAMETER_BAD;
 
    return SLP_OK;
diff -Naur openslp-2.0.beta1.r1589/libslp/libslp_knownda.c 
openslp-2.0.beta1.configurable_port/libslp/libslp_knownda.c
--- openslp-2.0.beta1.r1589/libslp/libslp_knownda.c     2008-03-27 
04:06:04.000000000 +0100
+++ openslp-2.0.beta1.configurable_port/libslp/libslp_knownda.c 2008-06-27 
14:15:45.000000000 +0200
@@ -403,7 +403,7 @@
    }
    scopelistlen = strlen(ctx.scopelist);
 
-   SLPNetSetAddr(&peeraddr, AF_INET, SLP_RESERVED_PORT, 0);
+   SLPNetSetAddr(&peeraddr, AF_INET, SLPPropertyAsInteger("net.slp.port"), 0);
 
    alp = ctx.addrlist;
 
@@ -462,7 +462,7 @@
          {
             sockfd_t sockfd;
 
-            SLPNetSetParams(&peeraddr, peeraddr.ss_family, SLP_RESERVED_PORT);
+            SLPNetSetParams(&peeraddr, peeraddr.ss_family, 
SLPPropertyAsInteger("net.slp.port"));
             sockfd = SLPNetworkCreateDatagram(peeraddr.ss_family);
             if (sockfd != SLP_INVALID_SOCKET)
             {
@@ -579,7 +579,7 @@
       if ((addr->sa_family == AF_INET6 && SLPNetIsIPV6())
             || (addr->sa_family == AF_INET && SLPNetIsIPV4()))
       {
-         SLPNetSetPort(peeraddr, SLP_RESERVED_PORT);
+         SLPNetSetPort(peeraddr, SLPPropertyAsInteger("net.slp.port"));
          sock = SLPNetworkCreateDatagram(addr->sa_family);
          /*Now test if the DA will actually respond*/
          if((sock != SLP_INVALID_SOCKET) &&
diff -Naur openslp-2.0.beta1.r1589/libslp/libslp_network.c 
openslp-2.0.beta1.configurable_port/libslp/libslp_network.c
--- openslp-2.0.beta1.r1589/libslp/libslp_network.c     2008-03-27 
00:27:22.000000000 +0100
+++ openslp-2.0.beta1.configurable_port/libslp/libslp_network.c 2008-06-27 
14:16:20.000000000 +0200
@@ -73,9 +73,12 @@
 static int NetworkGetMcastAddrs(const char msgtype, uint8_t * msg, 
       SLPIfaceInfo * ifaceinfo)
 {
+   int port;
+
    if (!ifaceinfo)
       return SLP_PARAMETER_BAD;
 
+   port = SLPPropertyAsInteger("net.slp.port");
    ifaceinfo->bcast_count = ifaceinfo->iface_count = 0;
    switch (msgtype) 
    {
@@ -99,7 +102,7 @@
             struct in_addr mcastaddr;
             mcastaddr.s_addr = SLP_MCAST_ADDRESS;
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count], 
-                  AF_INET, SLP_RESERVED_PORT, &mcastaddr);
+                  AF_INET, port, &mcastaddr);
             ifaceinfo->iface_count++;
          }
          break;
@@ -109,13 +112,13 @@
          {
             /* Add IPv6 multicast groups in order they should appear. */
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count],
-                  AF_INET6, SLP_RESERVED_PORT, &in6addr_srvloc_node);
+                  AF_INET6, port, &in6addr_srvloc_node);
             ifaceinfo->iface_count++;
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count],
-                  AF_INET6, SLP_RESERVED_PORT, &in6addr_srvloc_link);
+                  AF_INET6, port, &in6addr_srvloc_link);
             ifaceinfo->iface_count++;
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count],
-                  AF_INET6, SLP_RESERVED_PORT, &in6addr_srvloc_site);
+                  AF_INET6, port, &in6addr_srvloc_site);
             ifaceinfo->iface_count++;
          }
          if (SLPNetIsIPV4()) 
@@ -123,7 +126,7 @@
             struct in_addr mcastaddr;
             mcastaddr.s_addr = SLP_MCAST_ADDRESS;
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count], 
-                  AF_INET, SLP_RESERVED_PORT, &mcastaddr);
+                  AF_INET, port, &mcastaddr);
             ifaceinfo->iface_count++;
          }
          break;
@@ -133,13 +136,13 @@
          {
             /* Add IPv6 multicast groups in order they should appear. */
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count],
-                  AF_INET6, SLP_RESERVED_PORT, &in6addr_srvloc_node);
+                  AF_INET6, port, &in6addr_srvloc_node);
             ifaceinfo->iface_count++;
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count],
-                  AF_INET6, SLP_RESERVED_PORT, &in6addr_srvloc_link);
+                  AF_INET6, port, &in6addr_srvloc_link);
             ifaceinfo->iface_count++;
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count],
-                  AF_INET6, SLP_RESERVED_PORT, &in6addr_srvloc_site);
+                  AF_INET6, port, &in6addr_srvloc_site);
             ifaceinfo->iface_count++;
          }
          if (SLPNetIsIPV4()) 
@@ -147,7 +150,7 @@
             struct in_addr mcastaddr;
             mcastaddr.s_addr = SLP_MCAST_ADDRESS;
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count], 
-                  AF_INET, SLP_RESERVED_PORT, &mcastaddr);
+                  AF_INET, port, &mcastaddr);
             ifaceinfo->iface_count++;
          }
          break;
@@ -157,13 +160,13 @@
          {
             /* Add IPv6 multicast groups in order they should appear. */
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count],
-                  AF_INET6, SLP_RESERVED_PORT, &in6addr_srvlocda_node);
+                  AF_INET6, port, &in6addr_srvlocda_node);
             ifaceinfo->iface_count++;
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count],
-                  AF_INET6, SLP_RESERVED_PORT, &in6addr_srvlocda_link);
+                  AF_INET6, port, &in6addr_srvlocda_link);
             ifaceinfo->iface_count++;
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count],
-                  AF_INET6, SLP_RESERVED_PORT, &in6addr_srvlocda_site);
+                  AF_INET6, port, &in6addr_srvlocda_site);
             ifaceinfo->iface_count++;
          }
          if (SLPNetIsIPV4()) 
@@ -171,7 +174,7 @@
             struct in_addr mcastaddr;
             mcastaddr.s_addr = SLP_MCAST_ADDRESS;
             SLPNetSetAddr(&ifaceinfo->iface_addr[ifaceinfo->iface_count], 
-                  AF_INET, SLP_RESERVED_PORT, &mcastaddr);
+                  AF_INET, port, &mcastaddr);
             ifaceinfo->iface_count++;
          }
          break;
@@ -202,7 +205,7 @@
     does a NetworkRqstRply, which has retry logic for the datagram case*/
 
    if (SLPNetIsIPV6()) 
-      if (!SLPNetSetAddr(peeraddr, AF_INET6, SLP_RESERVED_PORT, 
+      if (!SLPNetSetAddr(peeraddr, AF_INET6, 
SLPPropertyAsInteger("net.slp.port"), 
             &slp_in6addr_loopback))
          sock = SLPNetworkCreateDatagram(AF_INET6);
 
@@ -210,7 +213,7 @@
    {
       int tempAddr = INADDR_LOOPBACK;
       if (SLPNetSetAddr(peeraddr, AF_INET, 
-            SLP_RESERVED_PORT, &tempAddr) == 0)
+            SLPPropertyAsInteger("net.slp.port"), &tempAddr) == 0)
          sock = SLPNetworkCreateDatagram(AF_INET);
    }
    return sock;
diff -Naur openslp-2.0.beta1.r1589/slpd/slpd_incoming.c 
openslp-2.0.beta1.configurable_port/slpd/slpd_incoming.c
--- openslp-2.0.beta1.r1589/slpd/slpd_incoming.c        2008-06-26 
13:33:21.000000000 +0200
+++ openslp-2.0.beta1.configurable_port/slpd/slpd_incoming.c    2008-06-27 
14:15:45.000000000 +0200
@@ -596,12 +596,12 @@
    if(SLPNetIsIPV4())
    {
       int tmpaddr = INADDR_LOOPBACK;
-      SLPNetSetAddr(&lo4addr, AF_INET, SLP_RESERVED_PORT, &tmpaddr);
+      SLPNetSetAddr(&lo4addr, AF_INET, G_SlpdProperty.port, &tmpaddr);
       tmpaddr = SLP_MCAST_ADDRESS;
-      SLPNetSetAddr(&mcast4addr, AF_INET, SLP_RESERVED_PORT, &tmpaddr);
+      SLPNetSetAddr(&mcast4addr, AF_INET, G_SlpdProperty.port, &tmpaddr);
 #if defined(ENABLE_SLPv1)
       tmpaddr = SLPv1_DA_MCAST_ADDRESS;
-      SLPNetSetAddr(&v1mcast4addr, AF_INET, SLP_RESERVED_PORT, &tmpaddr);
+      SLPNetSetAddr(&v1mcast4addr, AF_INET, G_SlpdProperty.port, &tmpaddr);
 #endif
 
    }
@@ -612,13 +612,13 @@
    if(SLPNetIsIPV6())
    {
       /*All of these addresses are needed to support RFC 3111*/
-      SLPNetSetAddr(&lo6addr, AF_INET6, SLP_RESERVED_PORT, 
&slp_in6addr_loopback);
-      SLPNetSetAddr(&srvloc6addr_node, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvloc_node);
-      SLPNetSetAddr(&srvloc6addr_link, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvloc_link);
-      SLPNetSetAddr(&srvloc6addr_site, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvloc_site);
-      SLPNetSetAddr(&srvlocda6addr_node, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvlocda_node);
-      SLPNetSetAddr(&srvlocda6addr_link, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvlocda_link);
-      SLPNetSetAddr(&srvlocda6addr_site, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvlocda_site);
+      SLPNetSetAddr(&lo6addr, AF_INET6, G_SlpdProperty.port, 
&slp_in6addr_loopback);
+      SLPNetSetAddr(&srvloc6addr_node, AF_INET6, G_SlpdProperty.port, 
&in6addr_srvloc_node);
+      SLPNetSetAddr(&srvloc6addr_link, AF_INET6, G_SlpdProperty.port, 
&in6addr_srvloc_link);
+      SLPNetSetAddr(&srvloc6addr_site, AF_INET6, G_SlpdProperty.port, 
&in6addr_srvloc_site);
+      SLPNetSetAddr(&srvlocda6addr_node, AF_INET6, G_SlpdProperty.port, 
&in6addr_srvlocda_node);
+      SLPNetSetAddr(&srvlocda6addr_link, AF_INET6, G_SlpdProperty.port, 
&in6addr_srvlocda_link);
+      SLPNetSetAddr(&srvlocda6addr_site, AF_INET6, G_SlpdProperty.port, 
&in6addr_srvlocda_site);
    }
 
    /*--------------------------------------------------------------------*/
diff -Naur openslp-2.0.beta1.r1589/slpd/slpd_knownda.c 
openslp-2.0.beta1.configurable_port/slpd/slpd_knownda.c
--- openslp-2.0.beta1.r1589/slpd/slpd_knownda.c 2008-03-27 03:04:40.000000000 
+0100
+++ openslp-2.0.beta1.configurable_port/slpd/slpd_knownda.c     2008-06-27 
14:15:45.000000000 +0200
@@ -1535,13 +1535,13 @@
                {
                   MakeActiveDiscoveryRqst(1, &(sock->sendbuf));
 
-                  SLPNetSetAddr(&mcastaddr, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvlocda_node);
+                  SLPNetSetAddr(&mcastaddr, AF_INET6, G_SlpdProperty.port, 
&in6addr_srvlocda_node);
                   SLPDOutgoingDatagramMcastWrite(sock, &mcastaddr, 
sock->sendbuf);
-                  SLPNetSetAddr(&mcastaddr, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvlocda_link);
+                  SLPNetSetAddr(&mcastaddr, AF_INET6, G_SlpdProperty.port, 
&in6addr_srvlocda_link);
                   SLPDOutgoingDatagramMcastWrite(sock, &mcastaddr, 
sock->sendbuf);
                   if (!IN6_IS_ADDR_LINKLOCAL(&(((struct sockaddr_in6 *) 
&sock->localaddr)->sin6_addr)))
                   {
-                     SLPNetSetAddr(&mcastaddr, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvlocda_site);
+                     SLPNetSetAddr(&mcastaddr, AF_INET6, G_SlpdProperty.port, 
&in6addr_srvlocda_site);
                      SLPDOutgoingDatagramMcastWrite(sock, &mcastaddr, 
sock->sendbuf);
                   }
                }
@@ -1550,7 +1550,7 @@
                   int tmpaddr = SLP_MCAST_ADDRESS;
                   MakeActiveDiscoveryRqst(1, &(sock->sendbuf));
 
-                  SLPNetSetAddr(&mcastaddr, AF_INET, SLP_RESERVED_PORT, 
&tmpaddr);
+                  SLPNetSetAddr(&mcastaddr, AF_INET, G_SlpdProperty.port, 
&tmpaddr);
                   SLPDOutgoingDatagramMcastWrite(sock, &mcastaddr, 
sock->sendbuf);
                }
             }
@@ -1635,13 +1635,13 @@
                {
                   if (SLPDKnownDAGenerateMyDAAdvert(&sock->localaddr, 0, 
dadead, 0, &(sock->sendbuf)) == 0)
                   {
-                     SLPNetSetAddr(&mcastaddr, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvlocda_node);
+                     SLPNetSetAddr(&mcastaddr, AF_INET6, G_SlpdProperty.port, 
&in6addr_srvlocda_node);
                      SLPDOutgoingDatagramMcastWrite(sock, &mcastaddr, 
sock->sendbuf);
-                     SLPNetSetAddr(&mcastaddr, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvlocda_link);
+                     SLPNetSetAddr(&mcastaddr, AF_INET6, G_SlpdProperty.port, 
&in6addr_srvlocda_link);
                      SLPDOutgoingDatagramMcastWrite(sock, &mcastaddr, 
sock->sendbuf);
                      if (!IN6_IS_ADDR_LINKLOCAL(&(((struct sockaddr_in6 *) 
&sock->localaddr)->sin6_addr)))
                      {
-                        SLPNetSetAddr(&mcastaddr, AF_INET6, SLP_RESERVED_PORT, 
&in6addr_srvlocda_site);
+                        SLPNetSetAddr(&mcastaddr, AF_INET6, 
G_SlpdProperty.port, &in6addr_srvlocda_site);
                         SLPDOutgoingDatagramMcastWrite(sock, &mcastaddr, 
sock->sendbuf);
                      }
                   }
@@ -1652,7 +1652,7 @@
 
                   if (SLPDKnownDAGenerateMyDAAdvert(&sock->localaddr, 0, 
dadead, 0, &(sock->sendbuf)) == 0)
                   {
-                        SLPNetSetAddr(&mcastaddr, AF_INET, SLP_RESERVED_PORT, 
&tmpaddr);
+                        SLPNetSetAddr(&mcastaddr, AF_INET, 
G_SlpdProperty.port, &tmpaddr);
                         SLPDOutgoingDatagramMcastWrite(sock, &mcastaddr, 
sock->sendbuf);
                   }
 #ifdef ENABLE_SLPv1
@@ -1660,7 +1660,7 @@
                                     SLP_CHAR_UTF8, 0, &(sock->sendbuf)) == 0)
                   {
                         tmpaddr = SLPv1_DA_MCAST_ADDRESS;
-                        SLPNetSetAddr(&mcastaddr, AF_INET, SLP_RESERVED_PORT, 
&tmpaddr);
+                        SLPNetSetAddr(&mcastaddr, AF_INET, 
G_SlpdProperty.port, &tmpaddr);
                         SLPDOutgoingDatagramMcastWrite(sock, &mcastaddr, 
sock->sendbuf);
                   }
 #endif
diff -Naur openslp-2.0.beta1.r1589/slpd/slpd_main.c 
openslp-2.0.beta1.configurable_port/slpd/slpd_main.c
--- openslp-2.0.beta1.r1589/slpd/slpd_main.c    2008-03-27 00:27:31.000000000 
+0100
+++ openslp-2.0.beta1.configurable_port/slpd/slpd_main.c        2008-06-27 
14:15:45.000000000 +0200
@@ -510,6 +510,8 @@
          || SLPDKnownDAInit())
       SLPDFatal("slpd initialization failed\n");
    SLPDLog("Agent Interfaces = %s\n", G_SlpdProperty.interfaces);
+   if (G_SlpdProperty.port != SLP_RESERVED_PORT)
+      SLPDLog("Using port %d instead of default %d\n", G_SlpdProperty.port, 
SLP_RESERVED_PORT);
 
    /* make slpd run as a daemon */
    if (Daemonize(G_SlpdCommandLine.pidfile))
diff -Naur openslp-2.0.beta1.r1589/slpd/slpd_process.c 
openslp-2.0.beta1.configurable_port/slpd/slpd_process.c
--- openslp-2.0.beta1.r1589/slpd/slpd_process.c 2008-03-27 03:09:04.000000000 
+0100
+++ openslp-2.0.beta1.configurable_port/slpd/slpd_process.c     2008-06-27 
14:15:45.000000000 +0200
@@ -231,10 +231,10 @@
             if(SLPNetIsIPV4())
             {
                int addr = INADDR_LOOPBACK;
-               SLPNetSetAddr(&loaddr, AF_INET, SLP_RESERVED_PORT, &addr);
+               SLPNetSetAddr(&loaddr, AF_INET, G_SlpdProperty.port, &addr);
             }
             else
-               SLPNetSetAddr(&loaddr, AF_INET6, SLP_RESERVED_PORT, 
&slp_in6addr_loopback);
+               SLPNetSetAddr(&loaddr, AF_INET6, G_SlpdProperty.port, 
&slp_in6addr_loopback);
 
             if(0 == SLPDKnownDAGenerateMyDAAdvert(&loaddr, 0, 0, 
message->header.xid, &tmp))
             {
diff -Naur openslp-2.0.beta1.r1589/slpd/slpd_property.c 
openslp-2.0.beta1.configurable_port/slpd/slpd_property.c
--- openslp-2.0.beta1.r1589/slpd/slpd_property.c        2008-03-27 
00:27:31.000000000 +0100
+++ openslp-2.0.beta1.configurable_port/slpd/slpd_property.c    2008-06-27 
14:15:45.000000000 +0200
@@ -110,6 +110,7 @@
    G_SlpdProperty.securityEnabled = 
SLPPropertyAsBoolean("net.slp.securityEnabled");
    G_SlpdProperty.checkSourceAddr = 
SLPPropertyAsBoolean("net.slp.checkSourceAddr");
    G_SlpdProperty.DAHeartBeat = SLPPropertyAsInteger("net.slp.DAHeartBeat");
+   G_SlpdProperty.port = SLPPropertyAsInteger("net.slp.port");
 
    /* set the net.slp.interfaces property */
    if (SLPNetIsIPV4() && SLPNetIsIPV6())
diff -Naur openslp-2.0.beta1.r1589/slpd/slpd_property.h 
openslp-2.0.beta1.configurable_port/slpd/slpd_property.h
--- openslp-2.0.beta1.r1589/slpd/slpd_property.h        2008-03-27 
00:27:31.000000000 +0100
+++ openslp-2.0.beta1.configurable_port/slpd/slpd_property.h    2008-06-27 
14:15:45.000000000 +0200
@@ -70,6 +70,7 @@
    SLPIfaceInfo ifaceInfo;
    size_t interfacesLen;
    char * interfaces;
+   int port;
    size_t localeLen;
    char * locale;
    int isBroadcastOnly;
diff -Naur openslp-2.0.beta1.r1589/slpd/slpd_socket.c 
openslp-2.0.beta1.configurable_port/slpd/slpd_socket.c
--- openslp-2.0.beta1.r1589/slpd/slpd_socket.c  2008-03-27 00:27:31.000000000 
+0100
+++ openslp-2.0.beta1.configurable_port/slpd/slpd_socket.c      2008-06-27 
14:15:45.000000000 +0200
@@ -237,7 +237,7 @@
          addr->ss_family = AF_INET;
          ((struct sockaddr_in *)addr)->sin_addr.s_addr = INADDR_ANY;
       }
-      ((struct sockaddr_in *)addr)->sin_port = htons(SLP_RESERVED_PORT);
+      ((struct sockaddr_in *)addr)->sin_port = htons(G_SlpdProperty.port);
       addrsz = sizeof(struct sockaddr_in);
    }
    else if (SLPNetIsIPV6() && family == AF_INET6)
@@ -253,7 +253,7 @@
          memcpy(&((struct sockaddr_in6*)addr)->sin6_addr, 
                &slp_in6addr_any, sizeof(struct in6_addr));
       }
-      ((struct sockaddr_in6*)addr)->sin6_port = htons(SLP_RESERVED_PORT);
+      ((struct sockaddr_in6*)addr)->sin6_port = htons(G_SlpdProperty.port);
       addrsz = sizeof(struct sockaddr_in6);
    }
 
@@ -414,7 +414,7 @@
             if (peeraddr->ss_family == AF_INET) 
             {
                ((struct sockaddr_in*) &(sock->peeraddr))->sin_port 
-                     = htons(SLP_RESERVED_PORT);
+                     = htons(G_SlpdProperty.port);
                sock->state = type;
             }
             else if (peeraddr->ss_family == AF_INET6) 
@@ -422,7 +422,7 @@
                /* @todo if DATAGRAM_MULTICAST is ever used with this function, 
we may want to
                   clear out the scope id*/
                ((struct sockaddr_in6*) &(sock->peeraddr))->sin6_port 
-                     = htons(SLP_RESERVED_PORT);
+                     = htons(G_SlpdProperty.port);
                sock->state = type;
             }
             else 
@@ -694,7 +694,7 @@
       ((struct sockaddr_in *)&(sock->peeraddr))->sin_addr 
             = ((struct sockaddr_in*) addr)->sin_addr;
       ((struct sockaddr_in *)&(sock->peeraddr))->sin_port 
-            = htons(SLP_RESERVED_PORT);
+            = htons(G_SlpdProperty.port);
    }
    else if (addr->ss_family == AF_INET6) 
    {
@@ -702,7 +702,7 @@
       ((struct sockaddr_in6 *)&(sock->peeraddr))->sin6_addr 
             = ((struct sockaddr_in6*) addr)->sin6_addr;
       ((struct sockaddr_in6 *)&(sock->peeraddr))->sin6_port 
-            = htons(SLP_RESERVED_PORT);
+            = htons(G_SlpdProperty.port);
    }
    else 
       goto FAILURE;  /* only ipv4 and ipv6 addresses are supported */



-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Openslp-devel mailing list
Openslp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openslp-devel

Reply via email to