+/* main.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/>.
+ */
#include "main.h"
#include "ClientSocket.h"
#include "timeq.h"
#include "EventLogger.h"
#include "ModeNode.h"
+#include "IRCQueue.h"
+#include "lib/ini.h"
time_t start_time;
free_lang();
}
+static int load_mysql_config() {
+ char mysql_host[MAXLEN], mysql_port_str[MAXLEN], mysql_user[MAXLEN], mysql_pass[MAXLEN], mysql_base[MAXLEN];
+ int mysql_serverport;
+ if(loadINI("neonserv.ini") == FILE_SUCCESS) {
+ mysql_host[0] = '\0';
+ ReadString("MySQL", "host", mysql_host);
+ if(!*mysql_host) {
+ perror("invalid neonserv.ini: missing MySQL host");
+ return 0;
+ }
+ mysql_port_str[0] = '\0';
+ ReadString("MySQL", "port", mysql_port_str);
+ mysql_serverport = atoi(mysql_port_str);
+ if(!mysql_serverport)
+ mysql_serverport = 3306;
+ mysql_user[0] = '\0';
+ ReadString("MySQL", "user", mysql_user);
+ if(!*mysql_user) {
+ perror("invalid neonserv.ini: missing MySQL user");
+ return 0;
+ }
+ mysql_pass[0] = '\0';
+ ReadString("MySQL", "pass", mysql_pass);
+ if(!*mysql_pass) {
+ perror("invalid neonserv.ini: missing MySQL pass");
+ return 0;
+ }
+ mysql_base[0] = '\0';
+ ReadString("MySQL", "base", mysql_base);
+ if(!*mysql_base) {
+ perror("invalid neonserv.ini: missing MySQL base");
+ return 0;
+ }
+ } else {
+ perror("Unable to load neonserv.ini");
+ return 0;
+ }
+ init_mysql(mysql_host, mysql_serverport, mysql_user, mysql_pass, mysql_base);
+ return 1;
+}
+
int main(void)
{
+
start_time = time(0);
#ifdef WIN32
}
#endif
- init_mysql();
+ if(!load_mysql_config()) return 0;
+
+ queue_init();
init_lang();
init_parser();
init_UserNode();
loop_bots();
clearTempUsers();
destroyEvents();
+ queue_loop();
}
}