patch-47 attempted to fix a previously reported error where srvx would
create NickServ, ChanServ, OpServ and Global even if the "nick" entry
was omitted from srvx.conf. This broke persistence of all service
bots added by the modcmd.service\ add comand. (Closes: #932566)
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-48
# arch-tag: automatic-ChangeLog--srvx@srvx.net--2004-srvx/srvx--devo--1.3
#
# arch-tag: automatic-ChangeLog--srvx@srvx.net--2004-srvx/srvx--devo--1.3
#
+2004-04-09 22:18:21 GMT Michael Poole <mdpoole@troilus.org> patch-48
+
+ Summary:
+ Fix service persistence bug in patch-47
+ Revision:
+ srvx--devo--1.3--patch-48
+
+ patch-47 attempted to fix a previously reported error where srvx would
+ create NickServ, ChanServ, OpServ and Global even if the "nick" entry
+ was omitted from srvx.conf. This broke persistence of all service
+ bots added by the modcmd.service\ add comand. (Closes: #932566)
+
+ modified files:
+ ChangeLog src/modcmd.c
+
+
2004-04-09 20:08:58 GMT Michael Poole <mdpoole@troilus.org> patch-47
Summary:
2004-04-09 20:08:58 GMT Michael Poole <mdpoole@troilus.org> patch-47
Summary:
-modcmd_load_bots(struct dict *db) {
+modcmd_load_bots(struct dict *db, int default_nick) {
dict_iterator_t it;
for (it = dict_first(db); it; it = iter_next(it)) {
dict_iterator_t it;
for (it = dict_first(db); it; it = iter_next(it)) {
continue;
}
nick = database_get_data(rd->d.object, "nick", RECDB_QSTRING);
continue;
}
nick = database_get_data(rd->d.object, "nick", RECDB_QSTRING);
+ if (!nick) {
+ if (default_nick)
+ nick = iter_key(it);
+ else
+ continue;
+ }
svc = service_find(nick);
desc = database_get_data(rd->d.object, "description", RECDB_QSTRING);
hostname = database_get_data(rd->d.object, "hostname", RECDB_QSTRING);
svc = service_find(nick);
desc = database_get_data(rd->d.object, "description", RECDB_QSTRING);
hostname = database_get_data(rd->d.object, "hostname", RECDB_QSTRING);
static void
modcmd_conf_read(void) {
static void
modcmd_conf_read(void) {
- modcmd_load_bots(conf_get_data("services", RECDB_OBJECT));
+ modcmd_load_bots(conf_get_data("services", RECDB_OBJECT), 0);
struct record_data *rd, *rd2;
struct service *service;
struct record_data *rd, *rd2;
struct service *service;
- modcmd_load_bots(database_get_data(db, "bots", RECDB_OBJECT));
+ modcmd_load_bots(database_get_data(db, "bots", RECDB_OBJECT), 1);
db2 = database_get_data(db, "services", RECDB_OBJECT);
if (!db2) {
log_module(MAIN_LOG, LOG_ERROR, "Missing section 'services' in modcmd db.");
db2 = database_get_data(db, "services", RECDB_OBJECT);
if (!db2) {
log_module(MAIN_LOG, LOG_ERROR, "Missing section 'services' in modcmd db.");