chiark / gitweb /
Use email_valid() to check email addresses throughout
authorRichard Kettlewell <rjk@greenend.org.uk>
Tue, 24 Jun 2008 20:19:06 +0000 (21:19 +0100)
committerRichard Kettlewell <rjk@greenend.org.uk>
Tue, 24 Jun 2008 20:19:06 +0000 (21:19 +0100)
cgi/actions.c
lib/trackdb.c
server/server.c

index a139eaf..4d064e0 100644 (file)
@@ -435,8 +435,7 @@ static void act_register(void) {
   }
   /* We could well do better address validation but for now we'll just do the
    * minimum */
-   /* TODO use email_valid() */
-  if(!strchr(email, '@')) {
+  if(!email_valid(email)) {
     login_error("bademail");
     return;
   }
@@ -525,8 +524,7 @@ static void act_edituser(void) {
     }
   } else
     password = password2 = 0;
-  /* TODO use email_valid() */
-  if(email && !strchr(email, '@')) {
+  if(email && !email_valid(email)) {
     login_error("bademail");
     return;
   }
index 3647f10..08aeac2 100644 (file)
@@ -60,6 +60,7 @@
 #include "unicode.h"
 #include "unidata.h"
 #include "base64.h"
+#include "sendmail.h"
 
 #define RESCAN "disorder-rescan"
 #define DEADLOCK "disorder-deadlock"
@@ -2784,8 +2785,8 @@ int trackdb_edituserinfo(const char *user,
     }
   } else if(!strcmp(key, "email")) {
     if(*value) {
-      if(!strchr(value, '@')) {
-        error(0, "invalid email address '%s' for user '%s'", user, value);
+      if(!email_valid(value)) {
+        error(0, "invalid email address '%s' for user '%s'", value, user);
         return -1;
       }
     } else
index ad3a7ab..c4c889a 100644 (file)
@@ -1426,9 +1426,8 @@ static int c_reminder(struct conn *c,
     sink_writes(ev_writer_sink(c->w), "550 Cannot send a reminder email\n");
     return 1;
   }
-  /* TODO use email_valid() */
   if(!(email = kvp_get(k, "email"))
-     || !strchr(email, '@')) {
+     || !email_valid(email)) {
     error(0, "user '%s' has no valid email address", vec[0]);
     sink_writes(ev_writer_sink(c->w), "550 Cannot send a reminder email\n");
     return 1;