diff options
Diffstat (limited to 'cvs/cvsweb.cgi/code/nelns/admin_service/admin_service.cpp.diff?r1=1.5&r2=1.1')
-rw-r--r-- | cvs/cvsweb.cgi/code/nelns/admin_service/admin_service.cpp.diff?r1=1.5&r2=1.1 | 849 |
1 files changed, 849 insertions, 0 deletions
diff --git a/cvs/cvsweb.cgi/code/nelns/admin_service/admin_service.cpp.diff?r1=1.5&r2=1.1 b/cvs/cvsweb.cgi/code/nelns/admin_service/admin_service.cpp.diff?r1=1.5&r2=1.1 new file mode 100644 index 00000000..e127b1b3 --- /dev/null +++ b/cvs/cvsweb.cgi/code/nelns/admin_service/admin_service.cpp.diff?r1=1.5&r2=1.1 @@ -0,0 +1,849 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> +<HEAD><style> A { color:black }</style> +<!-- hennerik CVSweb $Revision: 1.93 $ --> +<TITLE>code/nelns/admin_service/admin_service.cpp - diff - 1.5</TITLE></HEAD> +<BODY BGCOLOR="#eeeeee"> +<table width="100%" border=0 cellspacing=0 cellpadding=1 bgcolor="#aaaaaa"><tr valign=bottom><td><a href="/cvs/cvsweb.cgi/code/nelns/admin_service/admin_service.cpp"><IMG SRC="http://www.nevrax.org/inc/img/picto-up.gif" ALT="[BACK]" BORDER="0" WIDTH="14" HEIGHT="13"></a> <b>Return to <A HREF="/cvs/cvsweb.cgi/code/nelns/admin_service/admin_service.cpp">admin_service.cpp</A> + CVS log</b> <IMG SRC="http://www.nevrax.org/inc/img/picto-news.gif" ALT="[TXT]" BORDER="0" WIDTH="13" HEIGHT="15"></td><td align=right><IMG SRC="http://www.nevrax.org/inc/img/picto-dir.gif" ALT="[DIR]" BORDER="0" WIDTH="15" HEIGHT="13"> <b>Up to <a href="/cvs/cvsweb.cgi/">Nevrax</a> / <a href="/cvs/cvsweb.cgi/code/">code</a> / <a href="/cvs/cvsweb.cgi/code/nelns/">nelns</a> / <a href="/cvs/cvsweb.cgi/code/nelns/admin_service/">admin_service</a></b></td></tr></table><h3 align=center>Diff for /code/nelns/admin_service/admin_service.cpp between version 1.1 and 1.5</h3> +<table border=0 cellspacing=0 cellpadding=0 width="100%"> +<tr bgcolor="#ffffff"> +<th width="50%" valign=TOP>version 1.1, 2001/05/02 12:36:39</th> +<th width="50%" valign=TOP>version 1.5, 2001/05/31 16:44:54</th> +<tr bgcolor="#dddddd"><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 7</b> <font size=-1></font></td></tr></table></td><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 7</b> <font size=-1></font></td></tr></table></td> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> /* Copyright, 2000 Nevrax Ltd.</font></td><td><font face="Helvetica,Arial" size="-1"> /* Copyright, 2000 Nevrax Ltd.</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> *</font></td><td><font face="Helvetica,Arial" size="-1"> *</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> * This file is part of NEVRAX D.T.C. SYSTEM.</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> * This file is part of NEVRAX NeL Network Services.</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> * NEVRAX D.T.C. SYSTEM is free software; you can redistribute it and/or modify</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> * NEVRAX NeL Network Services is free software; you can redistribute it and/or modify</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> * it under the terms of the GNU General Public License as published by</font></td><td><font face="Helvetica,Arial" size="-1"> * it under the terms of the GNU General Public License as published by</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> * the Free Software Foundation; either version 2, or (at your option)</font></td><td><font face="Helvetica,Arial" size="-1"> * the Free Software Foundation; either version 2, or (at your option)</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> * any later version.</font></td><td><font face="Helvetica,Arial" size="-1"> * any later version.</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> *</font></td><td><font face="Helvetica,Arial" size="-1"> *</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> * NEVRAX D.T.C. SYSTEM is distributed in the hope that it will be useful, but</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> * NEVRAX NeL Network Services is distributed in the hope that it will be useful, but</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> * WITHOUT ANY WARRANTY; without even the implied warranty of</font></td><td><font face="Helvetica,Arial" size="-1"> * WITHOUT ANY WARRANTY; without even the implied warranty of</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</font></td><td><font face="Helvetica,Arial" size="-1"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> * General Public License for more details.</font></td><td><font face="Helvetica,Arial" size="-1"> * General Public License for more details.</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> *</font></td><td><font face="Helvetica,Arial" size="-1"> *</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> * You should have received a copy of the GNU General Public License</font></td><td><font face="Helvetica,Arial" size="-1"> * You should have received a copy of the GNU General Public License</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> * along with NEVRAX D.T.C. SYSTEM; see the file COPYING. If not, write to the</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> * along with NEVRAX NeL Network Services; see the file COPYING. If not, write to the</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,</font></td><td><font face="Helvetica,Arial" size="-1"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> * MA 02111-1307, USA.</font></td><td><font face="Helvetica,Arial" size="-1"> * MA 02111-1307, USA.</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> */</font></td><td><font face="Helvetica,Arial" size="-1"> */</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#ff9999"><font face="Helvetica,Arial" size="-1"> #include <conio.h></font></td><td bgcolor="#cccccc"> </td></tr> +<tr><td bgcolor="#ff9999"><font face="Helvetica,Arial" size="-1"> </font></td><td bgcolor="#cccccc"> </td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> #include <string></font></td><td><font face="Helvetica,Arial" size="-1"> #include <string></font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> #include <list></font></td><td><font face="Helvetica,Arial" size="-1"> #include <list></font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> #include "nel/net/service.h"</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> #include "nel/misc/debug.h"</font></td><td><font face="Helvetica,Arial" size="-1"> #include "nel/misc/debug.h"</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> #include "nel/misc/config_file.h"</font></td><td><font face="Helvetica,Arial" size="-1"> #include "nel/misc/config_file.h"</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#ff9999"><font face="Helvetica,Arial" size="-1"> #include "nel/net/service.h"</font></td><td bgcolor="#cccccc"> </td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> #include "nel/net/net_manager.h"</font></td><td><font face="Helvetica,Arial" size="-1"> #include "nel/net/net_manager.h"</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#ff9999"><font face="Helvetica,Arial" size="-1"> </font></td><td bgcolor="#cccccc"> </td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> using namespace std;</font></td><td><font face="Helvetica,Arial" size="-1"> using namespace std;</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> using namespace NLMISC;</font></td><td><font face="Helvetica,Arial" size="-1"> using namespace NLMISC;</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> using namespace NLNET;</font></td><td><font face="Helvetica,Arial" size="-1"> using namespace NLNET;</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> #include <process.h></font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> ////////////////////////</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> struct CService</font></td><td><font face="Helvetica,Arial" size="-1"> struct CService</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CService(TSockId s) : AESSockId(s), AESId(NextAESId++) { }</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CService () : Id(0xFFFFFFFF), Ready(false), Connected(false), InConfig(false) { }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> TSockId AESSockId; // TSockId of the AES that have this service</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 Id; /// uint32 to identify the service</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 AESId; // TSockId of the AES that have this service</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string AliasName; /// alias of the service used in the AES and AS to find him (unique per AES)</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 SId; // uint32 to identify the service</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string ShortName; /// name of the service in short format ("NS" for example)</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string ShortName;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string LongName; /// name of the service in long format ("naming_service")</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string LongName;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> bool Ready; /// true if the service is ready</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> bool Connected; /// true if the service is connected to the AES</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> bool InConfig; /// true if the service is in the configuration</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> };</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> private:</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> typedef list<CService> TServices;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> typedef list<CService>::iterator SIT;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> struct CAdminExecutorService</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CAdminExecutorService () : Id(NextId++), SockId(NULL), Connected(false) { }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> TSockId SockId; /// connection to the AES</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 Id; /// uint32 to identify the AES where the service is running</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string ServerAlias; /// name of the layer4 connection, used to send message to this AES</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string ServerAddr; /// address in a string format (only the ip)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> bool Connected; /// true if the AES is connected</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> TServices Services;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> vector<string> ServiceAliasList;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> SIT findService (uint32 sid, bool asrt = true)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> SIT sit;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (sit = Services.begin(); sit != Services.end(); sit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if ((*sit).Id == sid)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> break;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (asrt)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlassert (sit != Services.end());</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return sit;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> SIT findService (const string &alias, bool asrt = true)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> SIT sit;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (sit = Services.begin(); sit != Services.end(); sit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if ((*sit).AliasName == alias)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> break;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (asrt)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlassert (sit != Services.end());</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return sit;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> static uint32 NextAESId;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> private:</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> static uint32 NextId;</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> };</font></td><td><font face="Helvetica,Arial" size="-1"> };</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 CService::NextAESId = 0;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 CAdminExecutorService::NextId = 1;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> typedef list<CAdminExecutorService> TAdminExecutorServices;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> typedef list<CAdminExecutorService>::iterator AESIT;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> TAdminExecutorServices AdminExecutorServices;</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> list<CService> Services;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> /////////////////</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> typedef list<CService>::iterator sit;</font></td><td bgcolor="#99cc99"> </td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> sit find (TSockId aesid, uint32 sid)</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> AESIT findAdminExecutorService (uint32 aesid, bool asrt = true)</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> sit it;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> AESIT aesit;</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (it = Services.begin(); it != Services.end(); it++)</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (aesit = AdminExecutorServices.begin(); aesit != AdminExecutorServices.end(); aesit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if ((*aesit).Id == aesid)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> break;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (asrt)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlassert (aesit != AdminExecutorServices.end());</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return aesit;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> AESIT findAdminExecutorService (string ServerAlias, bool asrt = true)</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if ((*it).AESSockId== aesid && (*it).SId == sid) break;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> AESIT aesit;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (aesit = AdminExecutorServices.begin(); aesit != AdminExecutorServices.end(); aesit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if ((*aesit).ServerAlias == ServerAlias)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> break;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (asrt)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlassert (aesit != AdminExecutorServices.end());</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return aesit;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> void displayServices ()</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (AESIT aesit = AdminExecutorServices.begin(); aesit != AdminExecutorServices.end(); aesit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (SIT sit = (*aesit).Services.begin(); sit != (*aesit).Services.end(); sit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo ("> %s %s %s %d %d", (*aesit).SockId->asString().c_str(), (*sit).ShortName.c_str(), (*sit).LongName.c_str(), (*aesit).Id, (*sit).Id);</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#ff9999"><font face="Helvetica,Arial" size="-1"> return it;</font></td><td bgcolor="#cccccc"> </td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> sit find (uint32 aesid, uint32 sid)</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> /////////////////// SCRIPT MANAGER /////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> bool StartAllServices = false;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 StartAllServicesPos;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> void doNextStartAllServicesStep ()</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> sit it;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlassert (StartAllServices);</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (it = Services.begin(); it != Services.end(); it++)</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // get the script</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> try</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if ((*it).AESId == aesid && (*it).SId == sid) break;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CConfigFile::CVar &script = IService::ConfigFile.getVar("Services");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // check the position</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (StartAllServicesPos*2 >= (uint32)script.size())</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> StartAllServices = false;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo("end of the script");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // todo send that the script is finish to the admin</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return it;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // get the script line</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string serverAlias;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string serviceAlias;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> try</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> serverAlias = script.asString (StartAllServicesPos*2);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> serviceAlias = script.asString (StartAllServicesPos*2+1);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> catch(EBadSize &)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlwarning ("'Services' variable does not contains a good number of entries (must be a multiple of 2)");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> StartAllServices = false;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> /*</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> AESIT aesit = findAdminExecutorService (serverAlias, false);</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> NLMISC_COMMAND (start, "start a service", "<service_name>")</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (aesit == AdminExecutorServices.end())</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if(args.size() != 1 && args.size() != 2) return false;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> StartAllServices = false;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlwarning("don't find the server");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA("AES"), "ESC");</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // check if the service is not currently running</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (args[1]);</font></td><td bgcolor="#99cc99"> </td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint8 background = 0;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> StartAllServicesPos++;</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (args.size() == 2)</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> SIT sit = (*aesit).findService (serviceAlias);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if ((*sit).Connected)</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (args[1] == "&")</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // the service is already running, go to the next process</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint8 background = 1;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> doNextStartAllServicesStep ();</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> else</font></td><td bgcolor="#99cc99"> </td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return false;</font></td><td bgcolor="#99cc99"> </td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> else</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // send the resquest to the AES</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (background);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA((*aesit).ServerAlias), "STARTS");</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AES", msgout);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (serviceAlias);</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return true;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ((*aesit).ServerAlias, msgout);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> catch(EUnknownVar&)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlwarning ("'Services' variable is not found");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> StartAllServices = false;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> void initStartAllServices ()</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> if (StartAllServices)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> nlwarning("already running a script, reset it");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> StartAllServices = false;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CLog logstdout;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> try</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CStdDisplayer dispstdout;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CConfigFile::CVar &script = IService::ConfigFile.getVar("Services");</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> NLMISC_COMMAND (stop, "stop a service", "<aesid> <sid>")</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (sint i = 0 ; i < script.size (); i+=2)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string serverAlias = script.asString(i);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> AESIT aesit = findAdminExecutorService (serverAlias, false);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (aesit == AdminExecutorServices.end())</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if(args.size() != 3) return false;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlwarning("aes '%s' not running, can't run the script", serverAlias.c_str());</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> catch(EConfigFile &)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlwarning ("bad config file");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> StartAllServicesPos = 0;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> StartAllServices = true;</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA("AES"), "SS");</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> doNextStartAllServicesStep();</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (args[2]);</font></td><td bgcolor="#99cc99"> </td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AES", msgout);</font></td><td bgcolor="#99cc99"> </td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> */</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td><td><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td><td><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr bgcolor="#dddddd"><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 140</b> <font size=-1></font></td></tr></table></td><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 280</b> <font size=-1></font></td></tr></table></td> +<tr><td><font face="Helvetica,Arial" size="-1"> nlinfo("end of command result");</font></td><td><font face="Helvetica,Arial" size="-1"> nlinfo("end of command result");</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> static void cbServiceList (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> /* // get the service list from the admin exec and send the list to all admin client</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CAdminExecutorService *aes = (CAdminExecutorService*) from->appId();</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> aes->Services.clear();</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "SL");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> uint32 nbaes = 1;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout.serial (nbaes);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout.serial (aes->Id);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> uint32 nbs;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial (nbs);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout.serial (nbs);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> for (uint32 i = 0; i < nbs; i++)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> uint32 sid;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial(sid);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> aes->Services.push_back (CService(sid));</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CService *s = &(aes->Services.back());</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial(s->ShortName, s->LongName, s->Ready);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout.serial (s->Id, s->ShortName, s->LongName, s->Ready);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, 0);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> displayServices ();</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> */}</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> static void cbServiceAliasList (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // get the service list from the admin exec and send the list to all admin client</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CAdminExecutorService *aes = (CAdminExecutorService*) from->appId();</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> aes->ServiceAliasList.clear ();</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serialCont (aes->ServiceAliasList);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "SAL");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout.serial (aes->Id);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout.serialCont (aes->ServiceAliasList);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, 0);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> nlinfo("new service alias list");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> static void cbServiceIdentification (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td><td><font face="Helvetica,Arial" size="-1"> static void cbServiceIdentification (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string ShortName, LongName;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CAdminExecutorService *aes = (CAdminExecutorService*) from->appId();</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial (ShortName);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 sid;</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial (LongName);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string alias;</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo ("%s %s %s is identified", from->asString().c_str(), ShortName.c_str(), LongName.c_str());</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial (sid, alias);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> SIT sit;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (!alias.empty())</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> sit = aes->findService (alias, false);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (sit == aes->Services.end ())</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // the alias is not found</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlwarning ("new service with alias (%s) but not in my list", alias.c_str());</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> aes->Services.push_back (CService ());</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> sit = aes->Services.end();</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> sit--;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> else</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // normal case</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> else</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> sit = aes->findService (sid, false);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (sit == aes->Services.end ())</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // normal case for unknown services</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlwarning ("new service with alias (%s) but not in my list", alias.c_str());</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> else</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlwarning ("new service without alias is already in my list with id %d", sid);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> aes->Services.push_back (CService ());</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> sit = aes->Services.end();</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> sit--;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> (*sit).Id = sid;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> (*sit).AliasName = alias;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> (*sit).Connected = true;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial ((*sit).ShortName, (*sit).LongName);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo ("*:%d:%d is identified to be '%s' '%s' '%s'", aes->Id, sid, (*sit).AliasName.c_str(), (*sit).ShortName.c_str(), (*sit).LongName.c_str());</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // broadcast the message to all admin client</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "SID");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (aes->Id, sid, (*sit).AliasName, (*sit).ShortName, (*sit).LongName);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, 0);</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> static void cbServiceReady (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td><td><font face="Helvetica,Arial" size="-1"> static void cbServiceReady (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string ShortName, LongName;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CAdminExecutorService *aes = (CAdminExecutorService*) from->appId();</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 sid;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial (sid);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> SIT sit = aes->findService(sid);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> (*sit).Ready = true;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo ("*:%d:%d is ready", aes->Id, sid);</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial (ShortName);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // broadcast the message to all admin client</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial (LongName);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "SR");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (aes->Id, sid);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, 0);</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo ("%s %s %s is ready", from->asString().c_str(), ShortName.c_str(), LongName.c_str());</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // if we are in a script execution, continue</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if (StartAllServices)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> doNextStartAllServicesStep();</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> static void cbServiceConnection (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td><td><font face="Helvetica,Arial" size="-1"> static void cbServiceConnection (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo ("%s a service is connected", from->asString().c_str());</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CAdminExecutorService *aes = (CAdminExecutorService*) from->appId();</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 sid;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial (sid);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo ("*:%d:%d connected", aes->Id, sid);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // don't do anything. we have to wait identification to add it in out lists</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> /*</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> aes->Services.push_back (CService(sid));</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> */</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // broadcast the message to all admin client</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "SC");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (aes->Id, sid);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, 0);</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> static void cbServiceDisconnection (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td><td><font face="Helvetica,Arial" size="-1"> static void cbServiceDisconnection (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string ShortName, LongName;</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CAdminExecutorService *aes = (CAdminExecutorService*) from->appId();</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 sid;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial (sid);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo ("*:%d:%d disconnected", aes->Id, sid);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> SIT sit = aes->findService(sid);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // broadcast the message to all admin client</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "SD");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (aes->Id, (*sit).Id);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, 0);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if ((*sit).InConfig)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> (*sit).Ready = (*sit).Connected = false;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> (*sit).Id = 0xFFFFFFFF;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> (*sit).ShortName = (*sit).LongName = "";</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> else</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // erase only if it's not a service in the config</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> aes->Services.erase (sit);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // i'm connected to a new admin executor service</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> void cbAESConnection (const string &serviceName, TSockId from, void *arg)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> AESIT aesit = findAdminExecutorService (serviceName); </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CAdminExecutorService *aes = &(*aesit);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // set the appid to find the aes in O(1)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> from->setAppId ((uint64)aes);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> aes->Connected = true;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo ("*:%d:* connected", aes->Id);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> /*</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // broadcast the message that an admin exec is connected to all admin client</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "AESC");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (aes->Id);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, 0);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> */</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // broadcast the new state of this AES</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "AES_LIST");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 nbaes = 1;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (nbaes);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (aes->Id, aes->ServerAlias, aes->ServerAddr, aes->Connected);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, 0);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // i'm disconnected to an admin executor service</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> void cbAESDisconnection (const string &serviceName, TSockId from, void *arg)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // get the aes with the appid</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CAdminExecutorService *aes = (CAdminExecutorService*) from->appId();</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> aes->Connected = false;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> SIT sit;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (sit = aes->Services.begin(); sit != aes->Services.end(); sit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> (*sit).Id = 0xFFFFFFFF;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> (*sit).ShortName = (*sit).LongName = "";</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> (*sit).Ready = (*sit).Connected = false;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial (ShortName);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo ("*:%d:* disconnected", aes->Id);</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial (LongName);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> /* </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // broadcast the message to all admin client that an admin exec is disconnected</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "AESD");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (aes->Id);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, 0);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> */</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nlinfo ("%s %s %s is disconnected", from->asString().c_str(), ShortName.c_str(), LongName.c_str());</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // broadcast the new state of this AES</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "AES_LIST");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 nbaes = 1;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (nbaes);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (aes->Id, aes->ServerAlias, aes->ServerAddr, aes->Connected);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, 0);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> static void cbLog (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // received an answer for a command, give it to all admin client</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // broadcast the message to the admin service</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "LOG");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> string log;</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgin.serial (log);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (log);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, 0);</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr bgcolor="#dddddd"><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 180</b> <font size=-1></font></td></tr></table></td><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 535</b> <font size=-1></font></td></tr></table></td> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> { "ESCR", cbExecuteSystemCommandResult },</font></td><td><font face="Helvetica,Arial" size="-1"> { "ESCR", cbExecuteSystemCommandResult },</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> { "SL", cbServiceList },</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> { "SID", cbServiceIdentification },</font></td><td><font face="Helvetica,Arial" size="-1"> { "SID", cbServiceIdentification },</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> { "SR", cbServiceReady },</font></td><td><font face="Helvetica,Arial" size="-1"> { "SR", cbServiceReady },</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> { "SC", cbServiceConnection },</font></td><td><font face="Helvetica,Arial" size="-1"> { "SC", cbServiceConnection },</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> { "SD", cbServiceDisconnection },</font></td><td><font face="Helvetica,Arial" size="-1"> { "SD", cbServiceDisconnection },</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> { "SAL", cbServiceAliasList },</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> { "LOG", cbLog },</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> };</font></td><td><font face="Helvetica,Arial" size="-1"> };</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr bgcolor="#dddddd"><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 193</b> <font size=-1></font></td></tr></table></td><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 553</b> <font size=-1></font></td></tr></table></td> +<tr><td><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td><td><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td><td><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> void errorMessage(string message, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CMessage msgout (netbase.getSIDA (), "ERR");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout.serial (message);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> netbase.send (msgout, from);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // A new admin client is connected.</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> void clientConnection (const string &serviceName, TSockId from, void *arg)</font></td><td><font face="Helvetica,Arial" size="-1"> void clientConnection (const string &serviceName, TSockId from, void *arg)</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> // new client, send him all out info about services</font></td><td><font face="Helvetica,Arial" size="-1"> // new client, send him all out info about services</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> nlinfo ("client %s is connected", from->asString().c_str());</font></td><td><font face="Helvetica,Arial" size="-1"> nlinfo ("client %s is connected", from->asString().c_str());</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AESAS"), "SL");</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 size = (uint32)Services.size();</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // send the list of all the aes</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (size);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (sit it = Services.begin(); it != Services.end(); it++)</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout2 (CNetManager::getSIDA ("AS"), "AES_LIST");</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial ((*it).AESId);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> AESIT aesit;</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial ((*it).SId);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 nbaes = (uint32)AdminExecutorServices.size();</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial ((*it).ShortName);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout2.serial (nbaes);</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial ((*it).LongName);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (aesit = AdminExecutorServices.begin(); aesit != AdminExecutorServices.end(); aesit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // send info about the AES</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout2.serial ((*aesit).Id, (*aesit).ServerAlias, (*aesit).ServerAddr, (*aesit).Connected);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout2, from);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // send the list of all services</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA ("AS"), "SERVICE_LIST");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> nbaes = (uint32)AdminExecutorServices.size();</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (nbaes);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (aesit = AdminExecutorServices.begin(); aesit != AdminExecutorServices.end(); aesit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial ((*aesit).Id);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> uint32 nbs = (uint32)(*aesit).Services.size();</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (nbs);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (SIT sit = (*aesit).Services.begin(); sit != (*aesit).Services.end(); sit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // send info about services of the AES</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial ((*sit).Id, (*sit).AliasName, (*sit).ShortName, (*sit).LongName);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial ((*sit).Ready, (*sit).Connected, (*sit).InConfig);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, from);</font></td><td><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout, from);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // send service alias list</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> for (aesit = AdminExecutorServices.begin(); aesit != AdminExecutorServices.end(); aesit++)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CMessage msgout2 (CNetManager::getSIDA ("AS"), "SAL");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout2.serial ((*aesit).Id);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout2.serialCont ((*aesit).ServiceAliasList);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CNetManager::send ("AS", msgout2, from);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> static void cbExecuteSystemCommand (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> string command;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> uint32 aesid;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial (aesid);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial (command);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> AESIT aesit = findAdminExecutorService (aesid, false);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> if (aesit == AdminExecutorServices.end())</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // don't find the aes, send an error message</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> errorMessage ("couldn't execute command, as didn't find the aes", from, netbase);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // send the resquest to the AES</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA((*aesit).ServerAlias), "SYS");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout.serial (command);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CNetManager::send ((*aesit).ServerAlias, msgout);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> static void cbStartService (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> string serviceAlias;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> uint32 aesid;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial (aesid);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial (serviceAlias);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> AESIT aesit = findAdminExecutorService (aesid, false);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> if (aesit == AdminExecutorServices.end())</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // don't find the aes, send an error message</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> errorMessage ("couldn't start service, as didn't find the aes", from, netbase);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // send the resquest to the AES</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA((*aesit).ServerAlias), "STARTS");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout.serial (serviceAlias);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CNetManager::send ((*aesit).ServerAlias, msgout);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> static void cbStopService (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> uint32 aesid, sid;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial (aesid);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial (sid);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> AESIT aesit = findAdminExecutorService (aesid, false);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> if (aesit == AdminExecutorServices.end())</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> errorMessage ("couldn't stop service, as didn't find the aes", from, netbase);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // don't find the aes, send an error message</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> SIT sit = (*aesit).findService (sid, false);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> if (sit == (*aesit).Services.end())</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // don't find the s, send an error message</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> errorMessage ("couldn't stop service, as didn't find the service", from, netbase);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // send the resquest to the AES</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA((*aesit).ServerAlias), "STOPS");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgout.serial (sid);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CNetManager::send ((*aesit).ServerAlias, msgout);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> static void cbExecCommand (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> uint32 aesid, sid;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> string command;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial (aesid);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial (sid);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> msgin.serial (command);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> AESIT aesit = findAdminExecutorService (aesid, false);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> if (aesit == AdminExecutorServices.end())</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> errorMessage ("couldn't stop service, as didn't find the aes", from, netbase);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // don't find the aes, send an error message</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> SIT sit = (*aesit).findService (sid, false);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> if (sit == (*aesit).Services.end())</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // don't find the s, send an error message</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> errorMessage ("couldn't stop service, as didn't find the service", from, netbase);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> return;</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> TCallbackItem ASCallbackArray[] =</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // send the resquest to the AES</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA((*aesit).ServerAlias), "EXEC_COMMAND");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (sid);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial (command);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ((*aesit).ServerAlias, msgout);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> static void cbStartAllServices (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> { "", NULL },</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> initStartAllServices ();</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> static void cbStopAllServices (CMessage& msgin, TSockId from, CCallbackNetBase &netbase)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (AESIT aesit = AdminExecutorServices.begin(); aesit != AdminExecutorServices.end(); aesit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> for (SIT sit = (*aesit).Services.begin(); sit != (*aesit).Services.end(); sit++)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> if ((*sit).Connected)</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CMessage msgout (CNetManager::getSIDA((*aesit).ServerAlias), "STOPS");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> msgout.serial ((*sit).Id);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::send ((*aesit).ServerAlias, msgout);</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> TCallbackItem ClientCallbackArray[] =</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> { "SYS", cbExecuteSystemCommand },</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> { "STARTS", cbStartService },</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> { "STOPS", cbStopService },</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> { "EXEC_COMMAND", cbExecCommand },</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> { "START_ALL_SERVICES", cbStartAllServices },</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> { "STOP_ALL_SERVICES", cbStopAllServices },</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> };</font></td><td><font face="Helvetica,Arial" size="-1"> };</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> ////////////////// SERVICE IMPLEMENTATION //////////////////////////////////////////////////////////////</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> ////////////////////////////////////////////////////////////////////////////////////////////////////////</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> class CAdminService : public IService</font></td><td><font face="Helvetica,Arial" size="-1"> class CAdminService : public IService</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> public:</font></td><td><font face="Helvetica,Arial" size="-1"> public:</font></td></tr> +<tr bgcolor="#dddddd"><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 224</b> <font size=-1></font></td></tr></table></td><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 773</b> <font size=-1></font></td></tr></table></td> +<tr><td><font face="Helvetica,Arial" size="-1"> /// Init the service, load the universal time.</font></td><td><font face="Helvetica,Arial" size="-1"> /// Init the service, load the universal time.</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> void init ()</font></td><td><font face="Helvetica,Arial" size="-1"> void init ()</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> {</font></td><td><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> CNetManager::setConnectionCallback ("AS", clientConnection, NULL);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // DebugLog->addNegativeFilter ("L0:");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // DebugLog->addNegativeFilter ("L1:");</font></td></tr> +<tr><td bgcolor="#99cc99"> </td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> // DebugLog->addNegativeFilter ("L2:");</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#ff9999"><font face="Helvetica,Arial" size="-1"> // connec to the AES</font></td><td bgcolor="#cccccc"> </td></tr> +<tr><td bgcolor="#ff9999"><font face="Helvetica,Arial" size="-1"> CNetManager::addClient ("AES", "localhost:49996");</font></td><td bgcolor="#cccccc"> </td></tr> +<tr><td bgcolor="#ff9999"><font face="Helvetica,Arial" size="-1"> CNetManager::addCallbackArray ("AES", AESCallbackArray, sizeof (AESCallbackArray)/sizeof(AESCallbackArray[0]));</font></td><td bgcolor="#cccccc"> </td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CNetManager::setConnectionCallback ("AS", clientConnection, NULL);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // Get the list of AESHosts, add in the structures and create connection to all AES</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CConfigFile::CVar &host = ConfigFile.getVar ("AESHosts");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> for (sint i = 0 ; i < host.size (); i+=2)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> string serverAlias = host.asString(i);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> string serverAddr = host.asString(i+1);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // add to the list</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CAdminExecutorService aes;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> aes.ServerAlias = serverAlias;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> aes.ServerAddr = serverAddr;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> AdminExecutorServices.push_back (aes);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // connect to the AES</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CNetManager::setConnectionCallback (serverAlias, cbAESConnection, NULL);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CNetManager::setDisconnectionCallback (serverAlias, cbAESDisconnection, NULL);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CNetManager::addClient (serverAlias, serverAddr+":49996");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CNetManager::addCallbackArray (serverAlias, AESCallbackArray, sizeof (AESCallbackArray)/sizeof(AESCallbackArray[0]));</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // Get the list of services in the shard</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> //</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CConfigFile::CVar &serv = ConfigFile.getVar ("Services");</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> for (i = 0 ; i < serv.size (); i+=2)</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> {</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> string serverAlias = serv.asString(i);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> string serviceAlias = serv.asString(i+1);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> AESIT aesit = findAdminExecutorService (serverAlias);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // add new AES in the list</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> CService s;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> s.AliasName = serviceAlias;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> s.InConfig = true;</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> (*aesit).Services.push_back (s);</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> }</font></td><td><font face="Helvetica,Arial" size="-1"> }</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> bool update ()</font></td><td><font face="Helvetica,Arial" size="-1"> bool update ()</font></td></tr> +<tr bgcolor="#dddddd"><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 239</b> <font size=-1></font></td></tr></table></td><td width="50%"><table width="100%" border=1 cellpadding=5><tr><td><b>Line 830</b> <font size=-1></font></td></tr></table></td> +<tr><td><font face="Helvetica,Arial" size="-1"> };</font></td><td><font face="Helvetica,Arial" size="-1"> };</font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> </font></td><td><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // AS is a server connection to the admin client</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> // AESAS is a client connection to the admin executor</font></td></tr> +<tr><td bgcolor="#cccccc"> </td><td bgcolor="#ccccff"><font face="Helvetica,Arial" size="-1"> </font></td></tr> +<tr><td><font face="Helvetica,Arial" size="-1"> /// Naming Service</font></td><td><font face="Helvetica,Arial" size="-1"> /// Naming Service</font></td></tr> +<tr><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> NLNET_SERVICE_MAIN (CAdminService, "AS", "admin_service", 49995, ASCallbackArray);</font></td><td bgcolor="#99ff99"><font face="Helvetica,Arial" size="-1"> NLNET_SERVICE_MAIN (CAdminService, "AS", "admin_service", 49995, ClientCallbackArray);</font></td></tr> +</table><br><hr noshade width="100%"> +<table border=0><tr><td><table border=1><tr><td>Legend:<br><table border=0 cellspacing=0 cellpadding=1> +<tr><td align=center bgcolor="#ff9999">Removed from v.1.1</td><td bgcolor="#cccccc"> </td></tr><tr bgcolor="#99ff99"><td align=center colspan=2>changed lines</td></tr><tr><td bgcolor="#cccccc"> </td><td align=center bgcolor="#ccccff">Added in v.1.5</td></tr></table></td></tr></table> +<td><FORM METHOD="GET" ACTION="/cvs/cvsweb.cgi/code/nelns/admin_service/admin_service.cpp.diff"> +<INPUT TYPE=HIDDEN NAME="r1" VALUE="1.5"> +<INPUT TYPE=HIDDEN NAME="r2" VALUE="1.1"> +<SELECT NAME="f" onchange="submit()"> +<OPTION VALUE=h SELECTED>Colored Diff<OPTION VALUE=H>Long Colored Diff<OPTION VALUE=u>Unidiff<OPTION VALUE=c>Context Diff<OPTION VALUE=s>Side by Side</SELECT><INPUT TYPE=SUBMIT VALUE="Show"> +</FORM> +</td></tr></table>
\ No newline at end of file |