X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmod-hostserv.c;h=3ac51d288ac910ce035f5f8e78ec27b3323d7acd;hb=296fbfc38aef2d6061044391557813838457fd55;hp=da02cbb6c431afd111b882124a78e2ea5fc33d17;hpb=db71854cc3332f6aefdf6c14c25aeff4315f8a36;p=srvx.git diff --git a/src/mod-hostserv.c b/src/mod-hostserv.c index da02cbb..3ac51d2 100644 --- a/src/mod-hostserv.c +++ b/src/mod-hostserv.c @@ -27,6 +27,9 @@ * }; * }; * + * After you started srvx make the bot active: + /msg opserv bind hostserv * hostserv.* + /msg opserv bind hostserv help *modcmd.help */ #include "chanserv.h" @@ -58,7 +61,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)" }, @@ -80,7 +82,7 @@ static const struct message_entry msgtab[] = { { "HSMSG_MANAGER_NOT", "$b%s$b is not a manager of %s.%s" }, { "HSMSG_MANAGER_DELETED", "$b%s$b is no longer a manager of %s.%s" }, { "HSMSG_FAKEHOST_ASSIGN_SUCCESS", "Group $b%s.%s$b was assigned successfully." }, - { "HSMSG_FAKEHOST_REVOKE_SUCCESS", "Group $b%s.%s$b was revoked successfully." }, + { "HSMSG_FAKEHOST_UNASSIGN_SUCCESS", "Group $b%s.%s$b was unassigned successfully." }, { NULL, NULL } }; @@ -452,8 +454,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 +462,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); } @@ -1082,7 +1085,7 @@ static MODCMD_FUNC(cmd_assign) { return 0; } -static MODCMD_FUNC(cmd_revoke) { +static MODCMD_FUNC(cmd_unassign) { struct handle_info *hi; struct handle_info *hiuser; char *fakehost; @@ -1121,9 +1124,9 @@ 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); + reply("HSMSG_FAKEHOST_UNASSIGN_SUCCESS", slfh_name, tlfh_name); return 1; } reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name); @@ -1347,7 +1350,7 @@ int hostserv_init() { modcmd_register(hostserv_module, "delmanager", cmd_delmanager, 3, MODCMD_REQUIRE_AUTHED, NULL); modcmd_register(hostserv_module, "set", cmd_set, 2, MODCMD_REQUIRE_AUTHED, NULL); modcmd_register(hostserv_module, "assign", cmd_assign, 3, MODCMD_REQUIRE_AUTHED, NULL); - modcmd_register(hostserv_module, "revoke", cmd_revoke, 3, MODCMD_REQUIRE_AUTHED, NULL); + modcmd_register(hostserv_module, "unassign", cmd_unassign, 3, MODCMD_REQUIRE_AUTHED, NULL); modcmd_register(hostserv_module, "addhost", cmd_addhost, 2, MODCMD_REQUIRE_AUTHED, NULL); modcmd_register(hostserv_module, "delhost", cmd_delhost, 2, MODCMD_REQUIRE_AUTHED, NULL); message_register_table(msgtab);