The Proxomitron - Universal Web Filter

새 버전에서 달라진점

4.4 버전에서 달라진 점

* Added KEYCHK command.  This can be used to test for keypress 
  combinations inside a filter.  It works like any matching test
  and can be used in a filter's match or a URL match. When the
  match is done KEYCHK will return as "matched" if the keys
  being tested for are currently pressed.  Most keys can be tested
  by using their *unshifted* values.  However, there's several
  special key tests which begin with a carat "^" symbol....

  ^A  = ALT
  ^S  = SHIFT
  ^T  = TAB
  ^F1 = Function key #1
  ^F2 = Function key #2
  ^32 = Virtual keycode 32 (spacebar)
  ^65 = Virtual keycode 65 ("A")

  These are not case sensitive so either "^c" or "^C" may be used.
  Multiple keys can be included to test for combinations. For 

  $KEYCHK(^AG)    = ALT+G

  This will work for any combination the keyboard allows.  Other
  special keys can also be tested if you know the Windows virtual
  keycode - this is a number between 0-255.  For instance ^2 tests
  for the right mouse button.

* Added LOGFILE option to blockfiles.  Adding this keyword to the top
  of any blockfile tells Proxomitron not to treat the contents as 
  matching tests or to load them into memory. This makes it safe to
  use the file as a log file when using $ADDLST(). It also increases
  speed - normally $ADDLST opens the file, appends the new entry, and
  then closes the file again.  However in LOGFILE mode the file will
  remain open between writes to make inserting large amounts of data
  much more efficient.  

  It's important to keep this in mind if you load a logfile into another
  program while it's in use since recent entries may still be in the
  file buffer and not written yet.  However, reloading the config or
  editing a log via the "Edit blockfile" option from a Proxomitron
  menu will flush any unwritten data to the log.  You can give your
  logfiles a filename extension other than ".txt" then associate that
  extension with a specialized logfile viewer if you wish. This allows
  the "edit blockfile" option to be used to launch your log viewer.

* Added $FILE(filename) command.  This will insert the contents of any file
  into the replace section of any filter. It's most useful in web filters,
  but will work in header filters too (keep in mind headers should only be
  one line and no more than around 4k in size).

* Added $RESP(match) matching command.  This command can be used to match
  or capture the response code returned by a web server. Normally this
  will look something like...

  "200 OK" or "404 Not Found" etc.

  The match starts directly with the return code so does not include the
  "HTTP/x.x" portion of the reply line. However any message text after
  the code is included in the match.  For example, to match redirects
  you could use "$RESP(302*)". This can also be useful to capture this
  information for a log file.

* Entries added to a non-existent blocklist will cause a new "temporary"
  list to be created with that name.  This list will be memory only, and
  can be used like a hash array to store information globally. Note that
  the list won't appear on any menus and can't be edited (since it's not
  a file), but can be called in a match and added to just like any other

  Also keep in mind reloading the config or restarting Proxomitron will
  clear all temporary list. Use a normal file based list if you wish to
  store the information longer term.

* Multi-match replace buffers can now insert any amount of data 
  as long as there's enough memory (previously they were limited to 32k).
  Keep in mind when desigining filters this does allocate extra memory, 
  so should be used carefully (especially if using the new $FILE command).

* Fixed error with stale file handles being reused - may help the 
  "half-loaded" page problem some people were reporting.

* Fixed reused connections still using the proxy after "Use remote
  proxy" has been deselected.

* Fixed "Read overflow" warning from needlessly popping up.

* Fixed bug that could cause some hostnames not to resolve properly
  when contacting a webserver on ports other than 80.

* Created a work-around for servers that send "deflate" content
  encoding with/without the normal header bytes. Seems not all
  servers format it the same.

* Updated proxcert.pem for another year. This is a self-signed
  certificate Proxomitron uses for it's experimental SSL filtering
  (not enabled by default).  It's not an actual valid server