X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmod-hostserv.c;h=d97ed83fceaaa304e84aa6f7e8257b32d753cadc;hb=7b7fd7e3c4d05117751fe89204260333e78e8fe3;hp=da02cbb6c431afd111b882124a78e2ea5fc33d17;hpb=db71854cc3332f6aefdf6c14c25aeff4315f8a36;p=srvx.git diff --git a/src/mod-hostserv.c b/src/mod-hostserv.c index da02cbb..d97ed83 100644 --- a/src/mod-hostserv.c +++ b/src/mod-hostserv.c @@ -58,7 +58,6 @@ static const struct message_entry msgtab[] = { { "HSMSG_MANAGED_FAKEHOST", " $b%s.%s$b assignments: %d" }, { "HSMSG_MANAGE_HOWTO", "Use $bview xxx.yyy$b to view more information about a fakehost group." }, { "HSMSG_UNKNOWN_FAKEHOST", "Fakehost $b%s.%s$b is unknown or you have no access to manage it." }, - { "HSMSG_UNKNOWN_FAKEHOST_TOPLEVEL", "Fakehost $b%s$b is unknown or you have no access to manage it." }, { "HSMSG_TOPLEVEL_FAKEHOSTS", "Fakehosts in group $b*.%s$b:" }, { "HSMSG_TOPLEVEL_FAKEHOST", " $b%s.%s$b assignments: %d managers: %d" }, { "HSMSG_TOPLEVEL_INVALID", "The name of the group you entered is invalid ($b%s$b)" }, @@ -452,8 +451,6 @@ static void hs_del_assignment(struct hs_assignment *assignment, int remove_from_ } else prev_assignment = cassignment; } - if(assignment->user->managements == NULL && assignment->user->assignments == NULL) - hs_del_user(assignment->user); if(assignment->active) { struct handle_info *hi; @@ -462,6 +459,9 @@ static void hs_del_assignment(struct hs_assignment *assignment, int remove_from_ hi->fakehost = NULL; apply_fakehost(hi, NULL); } + + if(assignment->user->managements == NULL && assignment->user->assignments == NULL) + hs_del_user(assignment->user); } free(assignment); } @@ -1121,7 +1121,7 @@ static MODCMD_FUNC(cmd_revoke) { for(assignment = hs_user->assignments; assignment; assignment = assignment->unext) { if(!irccasecmp(slfh_name, assignment->secondlevel->fakehost)) { if(!irccasecmp(tlfh_name, assignment->secondlevel->toplevel->fakehost)) { - if(check_management_access(hi, assignment->secondlevel->toplevel, assignment->secondlevel)) { + if(check_management_access(hiuser, assignment->secondlevel->toplevel, assignment->secondlevel)) { hs_del_assignment(assignment, 1); reply("HSMSG_FAKEHOST_REVOKE_SUCCESS", slfh_name, tlfh_name); return 1;