fixes for multi thread support
[NeonServV5.git] / src / cmd_neonserv_adduser.c
index c63c176aeb6f090eb1a7edcfcada09b03dfc932b..0e8432b34c6a696d8be3e034dda81bbc59d98280 100644 (file)
@@ -1,3 +1,19 @@
+/* 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
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License 
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. 
+ */
 
 #include "cmd_neonserv.h"
 
@@ -27,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 {
@@ -64,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) {
@@ -131,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);