X-Git-Url: http://git.pk910.de/?p=srvx.git;a=blobdiff_plain;f=src%2Fmod-hostserv.c;h=234d6100a028cb08bcd1f418fc541cb1b7394a75;hp=29ef3e3f442c479b591b02376bc7ab60667c9036;hb=80d9ed728be4b02ac483f3339cbb184f6602d15b;hpb=ac567991f64b672b38bbcba48294bf6f6bff6228 diff --git a/src/mod-hostserv.c b/src/mod-hostserv.c index 29ef3e3..234d610 100644 --- a/src/mod-hostserv.c +++ b/src/mod-hostserv.c @@ -969,8 +969,20 @@ static MODCMD_FUNC(cmd_addmanager) { } if(fhinfo.slfh) hs_add_manager_secondlevel(fhinfo.slfh, huser); - else + else { hs_add_manager_toplevel(fhinfo.tlfh, huser); + //remove from all slfh's + struct hs_manager *next_manager; + struct hs_secondlevel *slfh; + for(manager = huser->managements; manager; manager = next_manager) { + next_manager = manager->next; + if(manager->type == 2) { + slfh = manager->object; + if(slfh->toplevel == fhinfo.tlfh) + hs_del_manager(manager, 1); + } + } + } reply("HSMSG_MANAGER_ADDED", hi->handle, fhinfo.slfh_name, fhinfo.tlfh_name); return 1; }