*** VERSION 5.2.0 ***
[NeonServV5.git] / src / event_neonserv_join.c
index a117c18b0c7afa4145ea63a05c42c46a83864d6a..1a7493f544a30d4e041cc89f0845400fc5e1ef27 100644 (file)
@@ -1,3 +1,19 @@
+/* event_neonserv_join.c - NeonServ v5.2
+ * Copyright (C) 2011  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/>. 
+ */
 
 struct neonserv_event_join_cache {
     struct ClientSocket *client;
@@ -63,7 +79,7 @@ static void neonserv_event_join_async1(struct ClientSocket *client, struct ChanU
     printf_mysql_query("SELECT `channel_maxusers`, `channel_greeting`, `channel_usergreeting`, `channel_getop`, `channel_getvoice`, `channel_userinfo`, `channel_dynlimit` FROM `channels` WHERE `channel_id` = '%d'", chan->channel_id);
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) == NULL) return;
-    if(!row[3] || !row[4]) {
+    if(!row[3] || !row[4] || !row[5]) {
         printf_mysql_query("SELECT `channel_getop`, `channel_getvoice`, `channel_userinfo` FROM `channels` WHERE `channel_name` = 'defaults'");
         res = mysql_use();
         defaultrow = mysql_fetch_row(res);
@@ -78,6 +94,8 @@ static void neonserv_event_join_async1(struct ClientSocket *client, struct ChanU
         chanuserrow = mysql_fetch_row(res);
     } else
         chanuserrow = NULL;
+    if(!chanuserrow)
+        printf_mysql_query("UPDATE `channels` SET `channel_lastvisit` = UNIX_TIMESTAMP() WHERE `channel_id` = '%d'", chan->channel_id);
     int userflags = (chanuserrow ? atoi(chanuserrow[1]) : 0);
     int uaccess = ((chanuserrow && !(userflags & DB_CHANUSER_SUSPENDED)) ? atoi(chanuserrow[0]) : 0);
     //GREETING