fixes for multi thread support
[NeonServV5.git] / src / cmd_neonserv_adduser.c
index 9021760abd2c6149381c2abb62c61053e9f4054f..0e8432b34c6a696d8be3e034dda81bbc59d98280 100644 (file)
@@ -1,5 +1,5 @@
-/* cmd_neonserv_adduser.c - NeonServ v5.2
- * Copyright (C) 2011  Philipp Kreil (pk910)
+/* cmd_neonserv_adduser.c - NeonServ v5.3
+ * Copyright (C) 2011-2012  Philipp Kreil (pk910)
  * 
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -43,7 +43,7 @@ CMD_BIND(neonserv_cmd_adduser) {
         reply(getTextBot(), user, "NS_INVALID_ACCESS", caccess);
         return;
     }
-    if(caccess >= getChannelAccess(user, chan, 0)) {
+    if(caccess >= getChannelAccess(user, chan)) {
         if(isGodMode(user)) {
             event->flags |= CMDFLAG_OPLOG;
         } else {
@@ -80,6 +80,10 @@ CMD_BIND(neonserv_cmd_adduser) {
         struct UserNode *cuser = getUserByNick(argv[0]);
         if(!cuser) {
             cuser = createTempUser(argv[0]);
+                       if(!cuser) {
+                reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]);
+                return;
+            }
             cuser->flags |= USERFLAG_ISTMPUSER;
         }
         if(cuser->flags & USERFLAG_ISAUTHED) {
@@ -147,7 +151,7 @@ static void neonserv_cmd_adduser_async1(struct ClientSocket *client, struct Clie
         }
     } else {
         printf_mysql_query("INSERT INTO `users` (`user_user`) VALUES ('%s')", escape_string(auth));
-        userid = (int) mysql_insert_id(mysql_conn);
+        userid = (int) mysql_insert_id(get_mysql_conn());
     }
     printf_mysql_query("INSERT INTO `chanusers` (`chanuser_cid`, `chanuser_uid`, `chanuser_access`) VALUES ('%d', '%d', '%d')", chan->channel_id, userid, caccess);
     reply(textclient, user, "NS_ADDUSER_DONE", nick, chan->name, caccess);