Merge branch 'HostServ' of ssh://git.pk910.de:16110/srvx into HostServ
[srvx.git] / src / mod-qserver.c
index da9c941dfbbe6e6623d1d937ba762b995693cbed..cc91924490b03b735e831d9085717cce70af82db 100644 (file)
@@ -89,7 +89,7 @@ qserver_readable(struct io_fd *fd)
         tmpline[--len] = '\0';
     argc = split_line(tmpline, false, ArrayLength(argv), argv);
     if (argc < 3) {
-        ioset_printf(fd, "MISSING_ARGS");
+        ioset_printf(fd, "MISSING_ARGS\n");
         return;
     }
     if (!strcmp(argv[1], "PASS")
@@ -134,7 +134,6 @@ qserver_accept(UNUSED_ARG(struct io_fd *listener), struct io_fd *fd)
 
     client = calloc(1, sizeof(*client));
     fd->data = client;
-    fd->wants_reads = 1;
     fd->line_reads = 1;
     fd->readable_cb = qserver_readable;
     fd->destroy_cb = qserver_destroy_fd;
@@ -161,7 +160,7 @@ qserver_accept(UNUSED_ARG(struct io_fd *listener), struct io_fd *fd)
         if (getnameinfo((struct sockaddr*)&ss, sa_len, host, sizeof(host), NULL, 0, 0) != 0)
             safestrncpy(host, ip, sizeof(host));
     }
-    client->user = AddLocalUser(nick, nick+1, host, "qserver dummy user", "*+i");
+    client->user = AddLocalUser(nick, nick+1, host, "qserver dummy user", "*+oi");
     irc_pton(&client->user->ip, NULL, ip);
     dict_insert(qserver_dict, client->user->nick, client);
 
@@ -184,7 +183,9 @@ qserver_conf_read(void)
     node = conf_get_data("modules/qserver", RECDB_OBJECT);
     if (!node)
         return;
-    str1 = database_get_data(node, "address", RECDB_QSTRING);
+    str1 = database_get_data(node, "bind_address", RECDB_QSTRING);
+    if (!str1)
+        str1 = database_get_data(node, "address", RECDB_QSTRING);
     str2 = database_get_data(node, "port", RECDB_QSTRING);
     if (!str2)
         return;
@@ -206,6 +207,7 @@ qserver_cleanup(void)
 {
     unsigned int ii;
 
+    ioset_close(qserver_listener, 1);
     for (ii = 0; ii < qserver_nbots; ++ii)
         if (qserver_clients[ii])
             DelUser(qserver_clients[ii]->user, NULL, 0, "module finalizing");