X-Git-Url: http://git.pk910.de/?p=srvx.git;a=blobdiff_plain;f=src%2Fmod-hostserv.c;h=db4feb53f3dd01b545aacbcf80f240a78633f73e;hp=55ac89e928e5cd7bd957a4c42ea5c2b7236cabb0;hb=bbe8f3f0bc1ae7c41fb2d1799f9e8fe46d0e5e04;hpb=a21e92ca57d7b82dcb540d9ec1c85ed709a28591 diff --git a/src/mod-hostserv.c b/src/mod-hostserv.c index 55ac89e..db4feb5 100644 --- a/src/mod-hostserv.c +++ b/src/mod-hostserv.c @@ -967,8 +967,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; }