[1936] in Moira Commits

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

/svn/moira r4075 - trunk/moira/reg_svr

daemon@ATHENA.MIT.EDU (Garry Zacheiss)
Wed Apr 18 12:22:50 2012

Date: Wed, 18 Apr 2012 12:22:46 -0400
From: Garry Zacheiss <zacheiss@MIT.EDU>
Message-Id: <201204181622.q3IGMkBs021390@drugstore.mit.edu>
To: moira-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Author: zacheiss
Date: 2012-04-18 12:22:46 -0400 (Wed, 18 Apr 2012)
New Revision: 4075

Modified:
   trunk/moira/reg_svr/reg_svr.pc
Log:
Remove dashes from user-supplied MIT ID.

Modified: trunk/moira/reg_svr/reg_svr.pc
===================================================================
--- trunk/moira/reg_svr/reg_svr.pc	2012-03-28 13:24:31 UTC (rev 4074)
+++ trunk/moira/reg_svr/reg_svr.pc	2012-04-18 16:22:46 UTC (rev 4075)
@@ -50,6 +50,7 @@
 int update_user_status(char *username, int account_status);
 void mr_com_err(const char *whoami, long code, const char *fmt, va_list pvar);
 void sigshut(int);
+char *remove_char(char *str, int ch);
 
 reg_client *cl = NULL;
 enum { RS_RUNNING, RS_SLEEPING, RS_EXITING } state = RS_RUNNING;
@@ -317,8 +318,9 @@
   ufirst = argv[0];
   umiddle = argv[1];
   ulast = argv[2];
-  id = argv[3];
-
+  /* Remove dashes from MIT ID */
+  id = remove_char(argv[3], '-');
+  
   EXEC SQL SELECT count(login) INTO :count FROM users WHERE clearid = :id;
 
   /* "ORDER BY status" so that if there's both a matching state 0 entry
@@ -1103,3 +1105,20 @@
 {
   state = RS_EXITING;
 }
+
+char *remove_char(char *str, int ch)
+{
+  char *dst = strchr(str, ch);
+
+  if (dst != NULL)
+    {
+      const char *src = dst;
+      while (*dst != '\0')
+	{
+	  while (*src == ch)
+	    src++;
+	  *dst++ = *src++;
+	}
+    }
+  return str;
+}


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