[1936] in Moira Commits
/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;
+}