[23050] in Source-Commits
/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;