keep in sync with OGN upstream (SVN-321)
[ircu2.10.12-pk.git] / ircd / s_auth.c
index 405978eb1d3a55ea79ea20aefb46084250ad7b74..71c86385db89e66b589a99c4abae9ecc37da5a65 100644 (file)
@@ -1052,7 +1052,7 @@ signed int auth_loc_query(struct AuthRequest *auth, const char *account, const c
 }
 
 /** Finishes a LOC request. */
-void auth_loc_reply(const char *numeric, const char *account, const char *fakehost, const char *flags[], signed int argc) {
+void auth_loc_reply(const char *numeric, const char *account, const char *fakehost, char *flags[], signed int argc) {
     char *timestamp;
     struct AuthRequest *auth;
 
@@ -1328,12 +1328,6 @@ void start_auth(struct Client* client)
   /* Set unregistered numnick. */
   auth_set_numnick(auth);
 
-  /* Try to start DNS lookup. */
-  start_dns_query(auth);
-
-  /* Try to start ident lookup. */
-  start_auth_query(auth);
-
   /* Set required client inputs for users. */
   if (IsUserPort(client)) {
     cli_user(client) = make_user(client);
@@ -1345,6 +1339,12 @@ void start_auth(struct Client* client)
     if(start_iauth_query(auth)) return;
   }
 
+  /* Try to start DNS lookup. */
+  start_dns_query(auth);
+
+  /* Try to start ident lookup. */
+  start_auth_query(auth);
+
   /* Add client to GlobalClientList. */
   add_client_to_list(client);
 
@@ -2303,8 +2303,10 @@ static int iauth_cmd_done_account(struct IAuth *iauth, struct Client *cli,
   }
   /* If account has a creation timestamp, use it. */
   assert(cli_user(cli) != NULL);
-  if (params[0][len] == ':')
+  if (params[0][len] == ':') {
     cli_user(cli)->acc_create = strtoul(params[0] + len + 1, NULL, 10);
+    params[0][len] = '\0';
+  }
 
   /* Copy account name to User structure. */
   ircd_strncpy(cli_user(cli)->account, params[0], ACCOUNTLEN);