Implement a progressive iauth system.
[ircu2.10.12-pk.git] / ircd / m_user.c
index efbe6eb853e2ccef30aba8b684815709159e8a2e..babbd34d88641fcc237dec4889994c00feb8a3a1 100644 (file)
@@ -90,6 +90,7 @@
 #include "ircd_string.h"
 #include "numeric.h"
 #include "numnicks.h"
+#include "s_auth.h"
 #include "s_debug.h"
 #include "s_misc.h"
 #include "s_user.h"
@@ -113,7 +114,6 @@ int m_user(struct Client *cptr, struct Client *sptr, int parc, char *parv[])
 {
   char*        username;
   const char*  info;
-  struct User* user;
 
   assert(0 != cptr);
   assert(cptr == sptr);
@@ -139,23 +139,6 @@ int m_user(struct Client *cptr, struct Client *sptr, int parc, char *parv[])
 
   info     = (EmptyString(parv[4])) ? "No Info" : parv[4];
 
-  user = make_user(cptr);
-
-  user->server = &me;
-  ircd_strncpy(cli_info(cptr), info, REALLEN);
-
-  cli_unreg(sptr) &= ~CLIREG_USER; /* username now set */
-
-  if (!cli_unreg(sptr)) {
-    /*
-     * NICK and PONG already received, now we have USER...
-     */
-    return register_user(cptr, sptr, cli_name(sptr), username);
-  }
-  else {
-    ircd_strncpy(user->username, username, USERLEN);
-    ircd_strncpy(user->host, cli_sockhost(cptr), HOSTLEN);
-  }
-  return 0;
+  return auth_set_user(cli_auth(cptr), username, info);
 }