<html> <head> <meta http-equiv="Content-Language" content="en-us"> <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>All packets</title> <meta name="Microsoft Theme" content="none"> <meta name="Microsoft Border" content="none"> </head> <body> <span class="870525523-28072002"> <p dir="ltr" style="margin-right: 0px" align="center"><font size="5"><b>Q Algorithm<br> </b></font> <!--webbot bot="Navigation" S-Type="sequence" S-Orientation="horizontal" S-Rendering="graphics" B-Include-Home="FALSE" B-Include-Up="FALSE" U-Page="sid:1100" startspan --><nobr>[ <a href="q.htm" target="">Construct</a> ]</nobr> <nobr>[ Algorithm ]</nobr><!--webbot bot="Navigation" i-checksum="15504" endspan --></p> <span class="120581313-31072002"> <p dir="ltr" style="MARGIN-RIGHT: 0px"><font face="Arial" size="2">All packets:<br> {<br> If there is a q construct in the path:<br> Skip to "All packets with q constructs"</font></p> <p dir="ltr" style="MARGIN-RIGHT: 0px"><font face="Arial" size="2"> If the packet entered the server from an UDP port:<br> {<br> Append ,qAU,SERVERLOGIN<br> Quit q processing<br> }</font></p> <p dir="ltr" style="MARGIN-RIGHT: 0px"><font face="Arial" size="2"> If the packet entered the server from an unverified connection and has been converted to TCPXX format (per current validation algorithm):<br> {<br> (All packets not deemed "OK" from an unverified connection should never make it here.)<br> Append ,qAX,FROMCALL<br> Skip to "All packets with q constructs"<br> }</font></p> <p dir="ltr" style="MARGIN-RIGHT: 0px"><font face="Arial"><font size="2"> If packet entered the server from a verified connection:<br> {<br> <font color="#ff00ff"> If header is terminated with ,I:<br> </font></font><font color="#ff00ff" size="2"> {<br> If the VIACALL preceding the ,I matches the login:</font></font><br> <font size="2" face="Arial"><font color="#ff00ff"> Change from ,VIACALL,I to ,qAR,VIACALL<br> Else<br> Change from ,VIACALL,I to ,qAr,VIACALL<br> }<br> </font> Else If the FROMCALL matches the login:<br> Append ,qAC,FROMCALL<br> Else<br> Append ,qAS,login<br> Skip to "All packets with q constructs"<br> }</font></p> <p dir="ltr" style="MARGIN-RIGHT: 0px"><font face="Arial" size="2"> If packet entered the server from an outbound connection (to another server's port 1313, for instance):<br> {<br> </font><font face="Arial" color="#ff00ff" size="2"> If header is terminated with ,I:<br> Change from ,VIACALL,I to ,qAr,VIACALL<br> </font><font size="2" face="Arial"><font color="#ff00ff">Else<br> </font><font color="#ff0000"> </font><font color="#00FF00">Append ,qAS,IPADDR (IPADDR is an 8 character hex representation of the IP address of the remote server)<br> </font> }<br> }</font></p> <p dir="ltr" style="MARGIN-RIGHT: 0px"><font face="Arial" size="2">All packets with q constructs:<br> {<br> if ,qAZ, is the q construct:<br> {<br> Dump to the packet to the reject log<br> Quit processing the packet<br> }</font></p> <p dir="ltr" style="MARGIN-RIGHT: 0px"><font face="Arial" size="2"> If ,SERVERLOGIN or IGATECALL is found after the q construct:<br> {</font><font size="+0"><br> </font><font face="Arial" size="2"> Dump to the loop log with the sender's IP address for identification<br> Quit processing the packet<br> }</font></p> <p dir="ltr" style="MARGIN-RIGHT: 0px"><font face="Arial" size="2"> If the packet is from a verified port and the login is found after the q construct but is not the LAST VIACALL:<br> {<br> Dump to the loop log with the sender's IP address for identification<br> Quit processing the packet<br> }</font></p> <p dir="ltr" style="MARGIN-RIGHT: 0px"><font size="2" face="Arial"> If trace is on, the q construct is qAI<font color="#0000FF">, or the FROMCALL is on the server's trace list</font>:<br> {<br> If the packet is from a verified port where the login is not found after the q construct:<br> Append ,login<br> Append ,SERVERLOGIN<br> }<br> }</font></p> </span> </span> </body> </html>