X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmod-hostserv.c;h=ce8a3745d64ad405d5ef7e8ffe4ddd696a315d4c;hb=0ea4b1784096e92ed94bb6a46cd050fda6b6b5b8;hp=461b6cd801dc8ca863a35fe727fab0c00fbc8870;hpb=694148bf2cb62eb30e8217c335e672d58de9fa65;p=srvx.git diff --git a/src/mod-hostserv.c b/src/mod-hostserv.c index 461b6cd..ce8a374 100644 --- a/src/mod-hostserv.c +++ b/src/mod-hostserv.c @@ -1168,7 +1168,7 @@ static MODCMD_FUNC(cmd_oset) { struct handle_info *hi; char *fakehost; struct hs_assignment *assignment; - if(!strchr(argv[1], '.')) { + if(!strchr(argv[1], '.') && strcmp(argv[1], "*")) { if (!(hi = modcmd_get_handle_info(user, argv[1]))) return 0; fakehost = argv[2]; @@ -1190,7 +1190,7 @@ static MODCMD_FUNC(cmd_oset) { reply("HSMSG_ACCESS_DENIED"); return 0; } - if(!strcmp(argv[1], "*")) { + if(!strcmp(fakehost, "*")) { if(!assignment) return 0; //simply ignore (there is no assignment in use) hs_activate_assignment(hs_user, NULL); @@ -1244,29 +1244,29 @@ static void hostserv_conf_read(void) { hostserv_conf.modes = (str ? str : NULL); str = database_get_data(conf_node, "toplevel_access", RECDB_QSTRING); - unsigned int toplevel_access = atoi(str); + unsigned int toplevel_access = (str ? atoi(str) : 0); hostserv_conf.toplevel_access = (toplevel_access ? toplevel_access : 600); str = database_get_data(conf_node, "fallback_other_assignment", RECDB_QSTRING); - hostserv_conf.fallback_other_assignment = (atoi(str) ? 1 : 0); + hostserv_conf.fallback_other_assignment = (str && atoi(str) ? 1 : 0); str = database_get_data(conf_node, "manager_can_del_toplevel", RECDB_QSTRING); - hostserv_conf.manager_can_del_toplevel = (atoi(str) ? 1 : 0); + hostserv_conf.manager_can_del_toplevel = (str && atoi(str) ? 1 : 0); str = database_get_data(conf_node, "manager_can_del_secondlevel", RECDB_QSTRING); - hostserv_conf.manager_can_del_secondlevel = (atoi(str) ? 1 : 0); + hostserv_conf.manager_can_del_secondlevel = (str && atoi(str) ? 1 : 0); str = database_get_data(conf_node, "manager_can_rename_toplevel", RECDB_QSTRING); - hostserv_conf.manager_can_rename_toplevel = (atoi(str) ? 1 : 0); + hostserv_conf.manager_can_rename_toplevel = (str && atoi(str) ? 1 : 0); str = database_get_data(conf_node, "manager_can_rename_secondlevel", RECDB_QSTRING); - hostserv_conf.manager_can_rename_secondlevel = (atoi(str) ? 1 : 0); + hostserv_conf.manager_can_rename_secondlevel = (str && atoi(str) ? 1 : 0); str = database_get_data(conf_node, "manager_toplevel_can_oset", RECDB_QSTRING); - hostserv_conf.manager_toplevel_can_oset = (atoi(str) ? 1 : 0); + hostserv_conf.manager_toplevel_can_oset = (str && atoi(str) ? 1 : 0); str = database_get_data(conf_node, "manager_secondlevel_can_oset", RECDB_QSTRING); - hostserv_conf.manager_secondlevel_can_oset = (atoi(str) ? 1 : 0); + hostserv_conf.manager_secondlevel_can_oset = (str && atoi(str) ? 1 : 0); } static int hostserv_saxdb_read_secondlevel(const char *name, void *data, UNUSED_ARG(void *extra));