26 April 1999. Timur Kazimrov (timur@r1.sax.inkom.ru) and Daniel Hellerstein (danielh@econ.ag.gov) PACKBACK An SRE-http pre-reply procedure that strips CRLFs, unused spaces, and comments from outgoing HTML documents, for selected clients. This can be useful for large HTML documents in low bandwidth situations. You can also run it in stand-alone mode (possibly even under non-os/2 rexx) A) Setup: 1) Copy this to your GoServe\SRE "working directory" 2) Modify the user-changeable parameters (described below) 2) Edit the ClientsToPack. parameters 3) Modify the other user-changeable parameters -- pay special attention to pieces_size and maxdocsize 4) Idenfity PACKBACK as a Pre-Reply procedure (see PREREPLY.DOC for instructions on working with Pre-Reply procedures. Notes: * If you are using more then one pre-reply procedure, you'll have to create your own "pre-reply" manager that calls each pre-reply procedure in the proper sequence. B) The User Changeable Parameters ClientsToPack a) set ClientsToPack.0= # of entries b) set ClientsToPack.n= a numeric IP address (n=1,..,ClientsToPack.0). You can use * as wildcards. For example: if the client's IP address is 199.122.33.1, then the following will match: ClientsToPack.3='199.122.33.1' ClientsToPack.3='199.122.*' ClientsToPack.3='199.12*' Example: CLIENTSTOPACK.0=1 CLIENTSTOPACK.1='199.*' MaxDocSize: If the source document is larger than MAXDOCSIZE the compression won't be performed. This parameter should be tuned. Size is in bytes. Note: large files can take a minute or longer to process, which can cause an "inactive-timeout". To avoid this, increase the options-limit- end_client_after_inactive GoServe parameter Example: MAXDOCSIZE=1500000 /* All documents larger that 1,500,000 bytes won't be compressed */ MinDocSize If the source document is smaller than MINDOCSIZE the compressing won't be performed. This parameter should be tuned. Size is in bytes. Example: MINDOCSIZE=2000 /* All documents smaller that 2000 bytes won't be compressed */ Pieces_Size If size exceeds this limit (in bytes), and is less then maxdocsize, then send it 'in pieces'. This avoids inactive-timeout problems, but also means that transfer-encoding and encryption will NOT be attempted To disable, set pieces_size > maxdocsize / Example: Pieces_Size=2000