diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-04-01 17:07:42 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-04-01 17:07:42 +0000 |
commit | f326e475e311bf0fa211ccd052ba38d8235efa12 (patch) | |
tree | 6171ffe18343d82d035901f0cfb0778876e71987 /docs/module-doc/users_8cpp-source.html | |
parent | 260d107be38928396b5339829ab321c2207f09bc (diff) |
Updated documentation (html)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@937 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'docs/module-doc/users_8cpp-source.html')
-rw-r--r-- | docs/module-doc/users_8cpp-source.html | 284 |
1 files changed, 143 insertions, 141 deletions
diff --git a/docs/module-doc/users_8cpp-source.html b/docs/module-doc/users_8cpp-source.html index 905a59892..8fdd3a919 100644 --- a/docs/module-doc/users_8cpp-source.html +++ b/docs/module-doc/users_8cpp-source.html @@ -26,147 +26,149 @@ 00019 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span> 00020 <span class="preprocessor">#include "inspircd.h"</span> 00021 <span class="preprocessor">#include <stdio.h></span> -00022 -<a name="l00023"></a><a class="code" href="users_8cpp.html#a0">00023</a> <span class="keyword">extern</span> std::stringstream <a class="code" href="channels_8cpp.html#a34">config_f</a>; -00024 -<a name="l00025"></a><a class="code" href="classuserrec.html#a0">00025</a> <a class="code" href="classuserrec.html#a0">userrec::userrec</a>() -00026 { -00027 <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span> -00028 strcpy(<a class="code" href="classuserrec.html#o0">nick</a>,<span class="stringliteral">""</span>); -00029 strcpy(<a class="code" href="classconnection.html#o2">ip</a>,<span class="stringliteral">"127.0.0.1"</span>); -00030 <a class="code" href="classuserrec.html#o10">timeout</a> = 0; -00031 strcpy(<a class="code" href="classuserrec.html#o1">ident</a>,<span class="stringliteral">""</span>); -00032 strcpy(<a class="code" href="classconnection.html#o1">host</a>,<span class="stringliteral">""</span>); -00033 strcpy(<a class="code" href="classuserrec.html#o2">dhost</a>,<span class="stringliteral">""</span>); -00034 strcpy(<a class="code" href="classuserrec.html#o3">fullname</a>,<span class="stringliteral">""</span>); -00035 strcpy(<a class="code" href="classuserrec.html#o4">modes</a>,<span class="stringliteral">""</span>); -00036 strcpy(<a class="code" href="classconnection.html#o3">inbuf</a>,<span class="stringliteral">""</span>); -00037 strcpy(<a class="code" href="classuserrec.html#o6">server</a>,<span class="stringliteral">""</span>); -00038 strcpy(<a class="code" href="classuserrec.html#o7">awaymsg</a>,<span class="stringliteral">""</span>); -00039 <a class="code" href="classconnection.html#o0">fd</a> = <a class="code" href="classconnection.html#o12">lastping</a> = <a class="code" href="classconnection.html#o13">signon</a> = <a class="code" href="classconnection.html#o14">idle_lastmsg</a> = <a class="code" href="classconnection.html#o15">nping</a> = <a class="code" href="classconnection.html#o10">registered</a> = 0; -00040 <a class="code" href="classuserrec.html#o9">flood</a> = <a class="code" href="classconnection.html#o9">port</a> = <a class="code" href="classconnection.html#o4">bytes_in</a> = <a class="code" href="classconnection.html#o5">bytes_out</a> = <a class="code" href="classconnection.html#o6">cmds_in</a> = <a class="code" href="classconnection.html#o7">cmds_out</a> = 0; -00041 <a class="code" href="classconnection.html#o8">haspassed</a> = <span class="keyword">false</span>; -00042 strcpy(<a class="code" href="classuserrec.html#o8">result</a>,<span class="stringliteral">""</span>); -00043 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < MAXCHANS; i++) -00044 { -00045 this-><a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a> = NULL; -00046 this-><a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o0">uc_modes</a> = 0; -00047 } -00048 <a class="code" href="classuserrec.html#r0">invites</a>.clear(); -00049 } -00050 -00051 -00052 -<a name="l00053"></a><a class="code" href="classuserrec.html#a2">00053</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a2">userrec::GetFullHost</a>() -00054 { -00055 snprintf(<a class="code" href="classuserrec.html#o8">result</a>,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#o0">nick</a>,<a class="code" href="classuserrec.html#o1">ident</a>,<a class="code" href="classuserrec.html#o2">dhost</a>); -00056 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#o8">result</a>; -00057 } -00058 -00059 -<a name="l00060"></a><a class="code" href="classuserrec.html#a3">00060</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a3">userrec::GetFullRealHost</a>() -00061 { -00062 snprintf(<a class="code" href="classuserrec.html#o8">result</a>,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#o0">nick</a>,<a class="code" href="classuserrec.html#o1">ident</a>,<a class="code" href="classconnection.html#o1">host</a>); -00063 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#o8">result</a>; -00064 } -00065 -<a name="l00066"></a><a class="code" href="classuserrec.html#a4">00066</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a4">userrec::IsInvited</a>(<span class="keywordtype">char</span>* channel) -00067 { -00068 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#r0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#r0">invites</a>.end(); i++) -00069 { -00070 <span class="keywordflow">if</span> (i->channel) { -00071 <span class="keywordflow">if</span> (!strcasecmp(i->channel,channel)) -00072 { -00073 <span class="keywordflow">return</span> <span class="keyword">true</span>; -00074 } -00075 } -00076 } -00077 <span class="keywordflow">return</span> <span class="keyword">false</span>; -00078 } -00079 -<a name="l00080"></a><a class="code" href="classuserrec.html#a5">00080</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a5">userrec::InviteTo</a>(<span class="keywordtype">char</span>* channel) -00081 { -00082 <a class="code" href="classInvited.html">Invited</a> i; -00083 strlcpy(i.<a class="code" href="classInvited.html#o0">channel</a>,channel,CHANMAX); -00084 <a class="code" href="classuserrec.html#r0">invites</a>.push_back(i); -00085 } -00086 -<a name="l00087"></a><a class="code" href="classuserrec.html#a6">00087</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a6">userrec::RemoveInvite</a>(<span class="keywordtype">char</span>* channel) -00088 { -00089 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Removing invites"</span>); -00090 <span class="keywordflow">if</span> (channel) -00091 { -00092 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#r0">invites</a>.size()) -00093 { -00094 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#r0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#r0">invites</a>.end(); i++) -00095 { -00096 <span class="keywordflow">if</span> (i->channel) -00097 { -00098 <span class="keywordflow">if</span> (!strcasecmp(i->channel,channel)) -00099 { -00100 <a class="code" href="classuserrec.html#r0">invites</a>.erase(i); -00101 <span class="keywordflow">return</span>; -00102 } -00103 } -00104 } -00105 } -00106 } -00107 } -00108 -<a name="l00109"></a><a class="code" href="classuserrec.html#a7">00109</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a7">userrec::HasPermission</a>(<span class="keywordtype">char</span>* command) -00110 { -00111 <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF]; -00112 <span class="keywordtype">char</span>* myclass; -00113 <span class="keywordtype">char</span>* mycmd; -00114 <span class="keywordtype">char</span>* savept; -00115 <span class="keywordtype">char</span>* savept2; -00116 -00117 <span class="comment">// are they even an oper at all?</span> -00118 <span class="keywordflow">if</span> (strchr(this->modes,<span class="charliteral">'o'</span>)) -00119 { -00120 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this->nick); -00121 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j < ConfValueEnum(<span class="stringliteral">"type"</span>,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); j++) -00122 { -00123 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); -00124 <span class="keywordflow">if</span> (!strcmp(TypeName,this->oper)) -00125 { -00126 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this->nick,this->oper); -00127 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); -00128 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&savept); -00129 <span class="keywordflow">while</span> (myclass) -00130 { -00131 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass); -00132 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k < ConfValueEnum(<span class="stringliteral">"class"</span>,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); k++) -00133 { -00134 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); -00135 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass)) -00136 { -00137 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); -00138 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList); -00139 -00140 -00141 mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&savept2); -00142 <span class="keywordflow">while</span> (mycmd) -00143 { -00144 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command)) -00145 { -00146 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** Command %s found, returning true"</span>,command); -00147 <span class="keywordflow">return</span> <span class="keyword">true</span>; -00148 } -00149 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept2); -00150 } -00151 } -00152 } -00153 myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept); -00154 } -00155 } -00156 } -00157 } -00158 <span class="keywordflow">return</span> <span class="keyword">false</span>; -00159 } -00160 -00161 -</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Mar 25 03:49:29 2005 for InspIRCd by +00022 <span class="preprocessor">#include "inspstring.h"</span> +00023 +<a name="l00024"></a><a class="code" href="users_8cpp.html#a0">00024</a> <span class="keyword">extern</span> std::stringstream <a class="code" href="channels_8cpp.html#a34">config_f</a>; +00025 +<a name="l00026"></a><a class="code" href="classuserrec.html#a0">00026</a> <a class="code" href="classuserrec.html#a0">userrec::userrec</a>() +00027 { +00028 <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span> +00029 strcpy(<a class="code" href="classuserrec.html#o0">nick</a>,<span class="stringliteral">""</span>); +00030 strcpy(<a class="code" href="classconnection.html#o2">ip</a>,<span class="stringliteral">"127.0.0.1"</span>); +00031 <a class="code" href="classuserrec.html#o10">timeout</a> = 0; +00032 strcpy(<a class="code" href="classuserrec.html#o1">ident</a>,<span class="stringliteral">""</span>); +00033 strcpy(<a class="code" href="classconnection.html#o1">host</a>,<span class="stringliteral">""</span>); +00034 strcpy(<a class="code" href="classuserrec.html#o2">dhost</a>,<span class="stringliteral">""</span>); +00035 strcpy(<a class="code" href="classuserrec.html#o3">fullname</a>,<span class="stringliteral">""</span>); +00036 strcpy(<a class="code" href="classuserrec.html#o4">modes</a>,<span class="stringliteral">""</span>); +00037 strcpy(<a class="code" href="classconnection.html#o3">inbuf</a>,<span class="stringliteral">""</span>); +00038 strcpy(<a class="code" href="classuserrec.html#o6">server</a>,<span class="stringliteral">""</span>); +00039 strcpy(<a class="code" href="classuserrec.html#o7">awaymsg</a>,<span class="stringliteral">""</span>); +00040 strcpy(<a class="code" href="classuserrec.html#o11">oper</a>,<span class="stringliteral">""</span>); +00041 <a class="code" href="classconnection.html#o0">fd</a> = <a class="code" href="classconnection.html#o12">lastping</a> = <a class="code" href="classconnection.html#o13">signon</a> = <a class="code" href="classconnection.html#o14">idle_lastmsg</a> = <a class="code" href="classconnection.html#o15">nping</a> = <a class="code" href="classconnection.html#o10">registered</a> = 0; +00042 <a class="code" href="classuserrec.html#o9">flood</a> = <a class="code" href="classconnection.html#o9">port</a> = <a class="code" href="classconnection.html#o4">bytes_in</a> = <a class="code" href="classconnection.html#o5">bytes_out</a> = <a class="code" href="classconnection.html#o6">cmds_in</a> = <a class="code" href="classconnection.html#o7">cmds_out</a> = 0; +00043 <a class="code" href="classconnection.html#o8">haspassed</a> = <span class="keyword">false</span>; +00044 strcpy(<a class="code" href="classuserrec.html#o8">result</a>,<span class="stringliteral">""</span>); +00045 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < MAXCHANS; i++) +00046 { +00047 this-><a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o1">channel</a> = NULL; +00048 this-><a class="code" href="classuserrec.html#o5">chans</a>[i].<a class="code" href="classucrec.html#o0">uc_modes</a> = 0; +00049 } +00050 <a class="code" href="classuserrec.html#r0">invites</a>.clear(); +00051 } +00052 +00053 +00054 +<a name="l00055"></a><a class="code" href="classuserrec.html#a2">00055</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a2">userrec::GetFullHost</a>() +00056 { +00057 snprintf(<a class="code" href="classuserrec.html#o8">result</a>,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#o0">nick</a>,<a class="code" href="classuserrec.html#o1">ident</a>,<a class="code" href="classuserrec.html#o2">dhost</a>); +00058 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#o8">result</a>; +00059 } +00060 +00061 +<a name="l00062"></a><a class="code" href="classuserrec.html#a3">00062</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a3">userrec::GetFullRealHost</a>() +00063 { +00064 snprintf(<a class="code" href="classuserrec.html#o8">result</a>,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#o0">nick</a>,<a class="code" href="classuserrec.html#o1">ident</a>,<a class="code" href="classconnection.html#o1">host</a>); +00065 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#o8">result</a>; +00066 } +00067 +<a name="l00068"></a><a class="code" href="classuserrec.html#a4">00068</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a4">userrec::IsInvited</a>(<span class="keywordtype">char</span>* channel) +00069 { +00070 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#r0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#r0">invites</a>.end(); i++) +00071 { +00072 <span class="keywordflow">if</span> (i->channel) { +00073 <span class="keywordflow">if</span> (!strcasecmp(i->channel,channel)) +00074 { +00075 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00076 } +00077 } +00078 } +00079 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00080 } +00081 +<a name="l00082"></a><a class="code" href="classuserrec.html#a5">00082</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a5">userrec::InviteTo</a>(<span class="keywordtype">char</span>* channel) +00083 { +00084 <a class="code" href="classInvited.html">Invited</a> i; +00085 strlcpy(i.<a class="code" href="classInvited.html#o0">channel</a>,channel,CHANMAX); +00086 <a class="code" href="classuserrec.html#r0">invites</a>.push_back(i); +00087 } +00088 +<a name="l00089"></a><a class="code" href="classuserrec.html#a6">00089</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a6">userrec::RemoveInvite</a>(<span class="keywordtype">char</span>* channel) +00090 { +00091 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"Removing invites"</span>); +00092 <span class="keywordflow">if</span> (channel) +00093 { +00094 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#r0">invites</a>.size()) +00095 { +00096 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#r0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#r0">invites</a>.end(); i++) +00097 { +00098 <span class="keywordflow">if</span> (i->channel) +00099 { +00100 <span class="keywordflow">if</span> (!strcasecmp(i->channel,channel)) +00101 { +00102 <a class="code" href="classuserrec.html#r0">invites</a>.erase(i); +00103 <span class="keywordflow">return</span>; +00104 } +00105 } +00106 } +00107 } +00108 } +00109 } +00110 +<a name="l00111"></a><a class="code" href="classuserrec.html#a7">00111</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a7">userrec::HasPermission</a>(<span class="keywordtype">char</span>* command) +00112 { +00113 <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF]; +00114 <span class="keywordtype">char</span>* myclass; +00115 <span class="keywordtype">char</span>* mycmd; +00116 <span class="keywordtype">char</span>* savept; +00117 <span class="keywordtype">char</span>* savept2; +00118 +00119 <span class="comment">// are they even an oper at all?</span> +00120 <span class="keywordflow">if</span> (strchr(this->modes,<span class="charliteral">'o'</span>)) +00121 { +00122 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this->nick); +00123 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j < ConfValueEnum(<span class="stringliteral">"type"</span>,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); j++) +00124 { +00125 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); +00126 <span class="keywordflow">if</span> (!strcmp(TypeName,this->oper)) +00127 { +00128 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this->nick,this->oper); +00129 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); +00130 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&savept); +00131 <span class="keywordflow">while</span> (myclass) +00132 { +00133 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass); +00134 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k < ConfValueEnum(<span class="stringliteral">"class"</span>,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); k++) +00135 { +00136 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); +00137 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass)) +00138 { +00139 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&<a class="code" href="channels_8cpp.html#a34">config_f</a>); +00140 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList); +00141 +00142 +00143 mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&savept2); +00144 <span class="keywordflow">while</span> (mycmd) +00145 { +00146 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command)) +00147 { +00148 log(<a class="code" href="modules_8h.html#a0">DEBUG</a>,<span class="stringliteral">"*** Command %s found, returning true"</span>,command); +00149 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00150 } +00151 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept2); +00152 } +00153 } +00154 } +00155 myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept); +00156 } +00157 } +00158 } +00159 } +00160 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00161 } +00162 +00163 +</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 28 21:09:26 2005 for InspIRCd by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.3 </small></address> |