libDummyServ_la_SOURCES = src/modules/DummyServ.mod/bot_DummyServ.c \
src/modules/DummyServ.mod/module.c
-libDummyServ_la_LDFLAGS = -module -rpath /nowhere -avoid-version
+libDummyServ_la_LDFLAGS = -module -rpath /nowhere -avoid-version -no-undefined
+libDummyServ_la_LIBADD = $(MYSQL_LIBS)
libfuncmds_la_SOURCES = src/modules/funcmd.mod/cmd_funcmds.c \
src/modules/funcmd.mod/module.c
-libfuncmds_la_LDFLAGS = -module -rpath /nowhere -avoid-version
+libfuncmds_la_LDFLAGS = -module -rpath /nowhere -avoid-version -no-undefined
+libfuncmds_la_LIBADD = $(MYSQL_LIBS)
libglobalcmd_la_SOURCES = src/modules/global.mod/cmd_global.c \
src/modules/global.mod/cmd_global_bind.c \
src/modules/global.mod/cmd_global_meminfo.c \
src/modules/global.mod/cmd_global_extscript.c \
src/modules/global.mod/module.c
-libglobalcmd_la_LDFLAGS = -module -rpath /nowhere -avoid-version
+libglobalcmd_la_LDFLAGS = -module -rpath /nowhere -avoid-version -no-undefined
+libglobalcmd_la_LIBADD = $(MYSQL_LIBS)
libNeonHelp_la_SOURCES = src/modules/NeonHelp.mod/bot_NeonHelp.c \
src/modules/NeonHelp.mod/cmd_neonhelp.c \
src/modules/NeonHelp.mod/cmd_neonhelp_requests.c \
src/modules/NeonHelp.mod/cmd_neonhelp_stats.c \
src/modules/NeonHelp.mod/module.c
-libNeonHelp_la_LDFLAGS = -module -rpath /nowhere -avoid-version
+libNeonHelp_la_LDFLAGS = -module -rpath /nowhere -avoid-version -no-undefined
+libNeonHelp_la_LIBADD = $(MYSQL_LIBS)
libNeonServ_la_SOURCES = src/modules/NeonServ.mod/bot_NeonServ.c \
src/modules/NeonServ.mod/cmd_neonserv.c \
src/modules/NeonServ.mod/cmd_neonserv_halfopall.c \
src/modules/NeonServ.mod/cmd_neonserv_dehalfopall.c \
src/modules/NeonServ.mod/module.c
-libNeonServ_la_LDFLAGS = -module -rpath /nowhere -avoid-version
+libNeonServ_la_LDFLAGS = -module -rpath /nowhere -avoid-version -no-undefined
+libNeonServ_la_LIBADD = $(MYSQL_LIBS)
libNeonSpam_la_SOURCES = src/modules/NeonSpam.mod/bot_NeonSpam.c \
src/modules/NeonSpam.mod/cmd_neonspam.c \
src/modules/NeonSpam.mod/cmd_neonspam_set.c \
src/modules/NeonSpam.mod/module.c
-libNeonSpam_la_LDFLAGS = -module -rpath /nowhere -avoid-version
+libNeonSpam_la_LDFLAGS = -module -rpath /nowhere -avoid-version -no-undefined
+libNeonSpam_la_LIBADD = $(MYSQL_LIBS)
neonserv_SOURCES = src/version.c \
src/EventLogger.c \
src/module_commands.c \
src/memoryDebug.c
-neonserv_LDADD = $(MYSQL_LIBS) $(WINSOCK_LIBS) -ldl
+neonserv_LDADD = $(MYSQL_LIBS) $(SYSTEM_LIBS)
install-exec-local:
$(INSTALL) -d -m 755 $(prefix)
AC_ARG_WITH([winsock],
[AS_HELP_STRING([--with-winsock], [use winsock (WIN32 systems)])],
- [WINSOCK_LIBS='-lws2_32'],
- [WINSOCK_LIBS=''])
-AC_SUBST([WINSOCK_LIBS])
+ [SYSTEM_LIBS='-lws2_32'],
+ [SYSTEM_LIBS='-ldl'])
+AC_SUBST([SYSTEM_LIBS])
do_have_ssl="no";
AC_CHECK_LIB(ssl, SSL_read, [
AC_FUNC_MALLOC
AC_CHECK_FUNCS([gethostbyname memset select socket strchr strdup strstr])
-MY_SUBDIRS="src"
-AC_SUBST(MY_SUBDIRS)
-AC_CONFIG_FILES(Makefile src/Makefile src/modules/Makefile)
+AC_CONFIG_FILES(Makefile)
AC_OUTPUT
\ No newline at end of file
}
if(flags & PARSER_FLAG_COMMAND) {
int found_command = 0;
+ char *tmp_buffer;
switch(*buffer) {
case '/':
- buffer = strstr(buffer, "\n");
+ tmp_buffer = buffer;
+ buffer = strchr(buffer, '\r');
+ if(!buffer)
+ buffer = strchr(tmp_buffer, '\n');
+ if(!buffer)
+ buffer = tmp_buffer + strlen(tmp_buffer)-1;
found_command = 1;
break;
case '*':
//unregister channel
printf_mysql_query("SELECT `botid`, `channel_name` FROM `bot_channels` LEFT JOIN `channels` ON `chanid` = `channel_id` WHERE `chanid` = '%s' AND `suspended` = '0'", row[1]);
res2 = mysql_use();
- while((row2 = mysql_fetch_row(res))) {
+ while((row2 = mysql_fetch_row(res2))) {
struct ClientSocket *bot;
int clientid = atoi(row2[0]);
for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) {
if(FD_ISSET(server_sockfd, &fds)) {
//new connection
struct sockaddr_in cli_addr;
+ #ifdef WIN32
+ int clilen;
+ #else
socklen_t clilen;
+ #endif
client = malloc(sizeof(*client));
clilen = sizeof(cli_addr);
client->sock = accept(server_sockfd, (struct sockaddr *) &cli_addr, &clilen);
break;
}
}
+ #ifndef WIN32
if(geteuid() == 0 || getuid() == 0) {
fprintf(stderr, "NeonServ may not be run with super user privileges.\n");
exit(0);
}
+ #endif
+ #ifdef ENABLE_MEMORY_DEBUG
+ initMemoryDebug();
+ #endif
if(!loadConfig(CONF_FILE)) {
fprintf(stderr, "Unable to load " CONF_FILE "\n");
exit(0);
signal(SIGSEGV, sighandler);
signal(SIGTERM, sighandler);
- #ifdef ENABLE_MEMORY_DEBUG
- initMemoryDebug();
- #endif
-
start_time = time(0);
#ifdef WIN32
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "modules.h"
+#ifndef WIN32
#include <dlfcn.h>
+#endif
/* 000-011 */ #include "main.h"
/* 012 */ #include "BanNode.h"
if(get_int_field(tmp)) {
modinfo = loadModule(modulelist[i]);
sprintf(tmp, "modules.%s.protected", modulelist[i]);
- if(!get_int_field(tmp))
+ if(get_int_field(tmp))
modinfo->state |= MODINFO_STATE_PROTECTED;
}
i++;
modinfo->startfunc = startfunc;
modinfo->loopfunc = loopfunc;
modinfo->stopfunc = stopfunc;
+ modinfo->state = 0;
modinfo->next = modules;
modules = modinfo;
return modinfo;
*/
#ifndef _modules_h
#define _modules_h
+#include "main.h"
#define MODINFO_STATE_STARTED 0x01
#define MODINFO_STATE_PROTECTED 0x02
#include <stdarg.h>
#include <sys/time.h>
#include <time.h>
+#include <signal.h>
+#ifdef SYNCHRONIZE
+//some winnt machines do already have a SYNCHRONIZE macro defined...
+#undef SYNCHRONIZE
+#endif
#ifdef HAVE_THREADS
#include <pthread.h>
#ifdef WIN32
sigcrash(signum);
break;
}
+ #ifdef WIN32
+ exit(signum);
+ #else
kill(getpid(), signum);
+ #endif
}
static void sigcrash(int signum) {
}
putlog(LOGLEVEL_INFO, "hard shutdown...");
exit_daemon();
- sleep(1);
+ usleep(1000000);
//hard restart
restart_process();
}