Blame SOURCES/xinetd-2.3.14-rpc-specific-port.patch

76ef8a
commit 1b91f7b0f67fba11ea8bbcdddef844656434c53c
76ef8a
Author: Jeffrey Bastian <jbastian@redhat.com>
76ef8a
Date:   Tue Aug 17 13:45:20 2010 -0500
76ef8a
76ef8a
    Let RPC services bind to a port
76ef8a
76ef8a
diff --git a/xinetd/service.c b/xinetd/service.c
76ef8a
index 9f21f93..5d26885 100644
76ef8a
--- a/xinetd/service.c
76ef8a
+++ b/xinetd/service.c
76ef8a
@@ -165,6 +165,7 @@ static status_e activate_rpc( struct service *sp )
76ef8a
    socklen_t              sin_len = sizeof(tsin);
76ef8a
    unsigned long          vers ;
76ef8a
    struct service_config *scp = SVC_CONF( sp ) ;
76ef8a
+   uint16_t               service_port = SC_PORT( scp ) ;
76ef8a
    struct rpc_data       *rdp = SC_RPCDATA( scp ) ;
76ef8a
    char                  *sid = SC_ID( scp ) ;
76ef8a
    unsigned               registered_versions = 0 ;
76ef8a
@@ -181,9 +182,11 @@ static status_e activate_rpc( struct service *sp )
76ef8a
    }
76ef8a
    if( SC_IPV4( scp ) ) {
76ef8a
       tsin.sa_in.sin_family = AF_INET ;
76ef8a
+      tsin.sa_in.sin_port = htons( service_port ) ;
76ef8a
       sin_len = sizeof(struct sockaddr_in);
76ef8a
    } else if( SC_IPV6( scp ) ) {
76ef8a
       tsin.sa_in6.sin6_family = AF_INET6 ;
76ef8a
+      tsin.sa_in6.sin6_port = htons( service_port );
76ef8a
       sin_len = sizeof(struct sockaddr_in6);
76ef8a
    }
76ef8a