[23050] in Source-Commits

home help back first fref pref prev next nref lref last post

/svn/athena r22713 - in trunk/athena/bin/discuss: include libds server

daemon@ATHENA.MIT.EDU (andersk@MIT.EDU)
Tue Jan 29 01:59:00 2008

Date: Tue, 29 Jan 2008 01:58:29 -0500 (EST)
From: andersk@MIT.EDU
Message-Id: <200801290658.BAA11137@drugstore.mit.edu>
To: source-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Author: andersk
Date: 2008-01-29 01:58:28 -0500 (Tue, 29 Jan 2008)
New Revision: 22713

Modified:
   trunk/athena/bin/discuss/include/config.h.sed
   trunk/athena/bin/discuss/libds/res_module.c
   trunk/athena/bin/discuss/server/rpproc.c
Log:
Fall back to port 2100 if getservbyname fails.
* discuss/include/config.h.sed: Define DISCUSS_FALLBACK_PORT.
* discuss/server/rpproc.c, discuss/libds/res_module.c: Use
  DISCUSS_FALLBACK_PORT.


Modified: trunk/athena/bin/discuss/include/config.h.sed
===================================================================
--- trunk/athena/bin/discuss/include/config.h.sed	2008-01-28 17:29:48 UTC (rev 22712)
+++ trunk/athena/bin/discuss/include/config.h.sed	2008-01-29 06:58:28 UTC (rev 22713)
@@ -78,6 +78,11 @@
 #define SERVICE_NAME "discuss"
 #endif
 
+/* Service fallback port */
+#ifndef DISCUSS_FALLBACK_PORT
+#define DISCUSS_FALLBACK_PORT 2100
+#endif
+
 /* Place where dsmail can find dspipe */
 #ifndef DSPIPE
 #define DSPIPE "/usr/athena/bin/dspipe"

Modified: trunk/athena/bin/discuss/libds/res_module.c
===================================================================
--- trunk/athena/bin/discuss/libds/res_module.c	2008-01-28 17:29:48 UTC (rev 22712)
+++ trunk/athena/bin/discuss/libds/res_module.c	2008-01-29 06:58:28 UTC (rev 22713)
@@ -221,12 +221,7 @@
     /* otherwise, we have to generate the port number */
     if (service_port == 0) {
 	sp = getservbyname (SERVICE_NAME, "tcp");
-	if (!sp) {
-	    *result = RPC_SERV_UNKNOWN;
-	    return;
-	}
-
-	service_port = sp -> s_port;
+	service_port = (sp) ? sp->s_port : htons(DISCUSS_FALLBACK_PORT);
     }
 
     *port = service_port;

Modified: trunk/athena/bin/discuss/server/rpproc.c
===================================================================
--- trunk/athena/bin/discuss/server/rpproc.c	2008-01-28 17:29:48 UTC (rev 22712)
+++ trunk/athena/bin/discuss/server/rpproc.c	2008-01-29 06:58:28 UTC (rev 22713)
@@ -164,12 +164,10 @@
     pe = getprotobyname("tcp");
     setservent(0);			    /* get service information */
     
-    if((se = getservbyname("discuss", "tcp")) == NULL) {
-	*code = RPC_SERV_UNKNOWN;
-	return;
-    }
+    se = getservbyname(SERVICE_NAME, "tcp");
     sai.sin_addr.s_addr = INADDR_ANY;
-    sai.sin_port = se->s_port;		    /* set up socket */
+    sai.sin_port = (se) ? se->s_port : htons(DISCUSS_FALLBACK_PORT);
+					    /* set up socket */
     if((s = socket(AF_INET, SOCK_STREAM, pe->p_proto)) < 0) {
 	*code = errno;
 	return;


home help back first fref pref prev next nref lref last post