From: pk910 Date: Mon, 7 Jan 2013 20:41:10 +0000 (+0100) Subject: remove manager entry from slfh's when a user gets added to the tlfh manager list X-Git-Url: http://git.pk910.de/?p=srvx.git;a=commitdiff_plain;h=bbe8f3f0bc1ae7c41fb2d1799f9e8fe46d0e5e04 remove manager entry from slfh's when a user gets added to the tlfh manager list --- 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; }