Cullen Programming

JAVA Internet Proxy Server

Historical Record of Improvement and Program Fixes

Date       Description of Change (Version 3.2)

06-22-2008 Easy point-and-click install.

05-18-2008 Performance and cosmetic updates.

01-07-2007 Simplify installation.

06-28-2006 Changed log queueing function to bounded buffering construct to enhance
locking performance between concurrent tasks performing logging.
Reduced virtual storage requirements for the product.
Requires JAVA J2SE 5.0 Run Environment.

Date Description of Change (Version 3.1)

06-08-2006 View option to re-permit access to a denied website.

06-01-2006 Improve sort performance on Review Log function.

05-16-2006 Convert client browser issued HTTP GET subcommands as follows:
Keep-Alive: nnn --> Connection: close
Proxy-Connection: Keep-Alive --> Proxy-Connection: close
to relieve problems with KEEP-ALIVE and PIPELINING processing that is not
user configurable in some browsers such as IE and Firefox,
but are configurable in Mozilla and Netscape.

12-01-2004 Ensure startup and quiesce processes are synchronized by semaphores.

10-24-2004 Add support for Base64 Encode/Decode of email userid/password pair requirement
of Internet service providers, and allow email capture.

10-10-2004 Allow SMTP AUTH service extension for authorization relay of userid and
password to outboard smpt server.

09-30-2004 Keep only 1000-2000 most recent lines in logging panel to preserve the virtual
machine memory and ward off out_of_memory conditions.

09-23-2004 Correct autostart function regarding quiesce/resume disable flags.
Update configuration documentation.

08-25-2004 Correct small scheduling window error.
Show next QUIESCE and RESUME schedule in DUMP information.

06-07-2004 Fix dropping of first character of SOCKS message text.
Ensure termination interrupt gets percolated through SOCKS routines.

05-20-2004 Simplify invocation scripts.
Update configuration documentation.
Update JAVA JRE Installation documentation.

05-09-2004 Removed combo boxes for daemon listening port assignment. Any assignments must
be supplied by the configuration file (or the defaults).
Check for null daemon tasks prior to termination/quiesce.

05-08-2004 Configuration option to suppress automatic dialup initiation on Windows machines.
Check that specification for log file is supplied in configuration file, if not
then display error and halt startup.
Check existence of logging file and its subdirectory, create a default if non existant.
Improve configuration file readability.

04-08-2004 Capture copies of user incoming and outgoing email, then send to any email address.
Improve error and logging messages.

03-23-2004 Flush logging panel entries at midnight and recover storage.
Provide automatic log scrolling option.

03-16-2004 Provide file and mechanism for blocking access to listed websites.
File "url.psdata" can contain your prohibited website list.
Correct Windows I/O delimiter problem when accessing PERMIT and LOG files.

03-08-2004 Perform more regular "garbage collection" of unused memory.
Improve HTTP performance.

01-21-2004 Improve review logging and filtering performance.

01-13-2004 Reduce SMTP/POP3 servers storage requirements.
Improve download/upload performance by 300 percent.

01-11-2004 Complete the release of remaining minimum tasks when quiescing system.
Reduce FTP server storage requirements.
Changes in server request backlog will require quiesce/resume operation.
Add DUMP button for developer interrogation of internal variables.

01-06-2004 Re-compute time for proxy utilities when TOD is changed by computer operator.
Improve HTTPS data transfer performance by an order of magnitude.
Improve HTTP data transfer performance by 20 percent.

01-02-2004 Select initial tuning values at startup from configuration file.
Improve button processing code on Tuning Panel.
Disable automatic quiesce and resume prior to startup and after stop of proxy.
Improve I/O timeout detection and storage release for hanging HTTP and SOCKS5 tasks.
Show breakout of HTTPS tasks and highwater mark on Tuning Panel.
Allow user to alter backlog values for listening servers.
Include IDLE task timeout values in configuration file.
Include I/O task timeout values in configuration file.
Provide FTP passive (PASV) file transfer capability.
Provide tunable server backlog request values.
Provide I/O and IDLE task timeout setting capability for each protocol server.
Correct resolution of IP Version 4 and Version 6 address octets in SOCKS5 server
when any octet is greater than 127.
Correct resolution of SOCKS5 port numbers when octet values are greater than 127.
Improve storage management.
Correct possible task enqueue problems should connect to an Internet server fail.


(End of Version 3.0)

12-15-2003 Capability to disable/enable the automated quiesce-resume scheduler function.
Moved Quiesce/Resume function to Tuning Panel.
Corrected task counting for SOCKS5 processing.

12-07-2003 Capability to quiesce/resume application using an automated scheduler.
Start/re-start TOD functions commence with next minute instead of with the next hour.
External IP address refreshed every minute interval instead of each ten.
Improved logic in main module.

11-03-2003 Produce error message when configuration file is not present or specified.
Preload default configuration values in event configuration file is corrupted
or invalid.

09-20-2003 Add "START" option for autostarting of proxy operations after initialization.

09-14-2003 Disregard IP convention for initializing modem connection when searching for
valid IP address across Internet interface (

08-21-2003 Minor corrections for Linux environments.

08-15-2003 Correct file I/O in Linux environments.
Circumvent Sun's open getAllByName InetAddress() problem in Linux environments
to allow correct selection of Internet IP interface.

07-04-2003 Attempt redials for only Windows OS. Linux and UNIX have re-dial
capabilities built into TCP/IP components.

06-19-2003 Add support for POP3 protocol "CAPA" (capabilities) tag.
"Access Denied" screen for HTTP nopermit setting made louder.

06-17-2003 New configuration data file format includes comment (#) lines.

06-15-2003 Correct time displacement calculations in automation UTIL task.

06-08-2003 Implement remote command facility for providing customer support.

06-04-2003 Standardize operator interruption mechanism for all tasks used during shutdown.

06-01-2003 Include a "critical message" area on the General Panel.

05-31-2003 Improve HTTPS protocol data transfer speed.
Enhance HTTPS trace logging.

05-23-2003 Improve installation with SETUP program to place an icon on the Desktop.
Improve HTTP data transfer speed.

05-16-2003 Correct looping condition in FTP set off by make directory (MKD) request
if using a file transfer gui product.

04-20-2003 Email incoming/outgoing message size limit increased from 2M to unlimited.

03-30-2003 Present list of archived logs sorted in descending date order.

03-15-2003 Select website from logging and have site load into a browser window.
Increase string translation performance on Telnet 3270.
Increase optional maximum_tasks/protocol from 32 to 512.
Name level set as Version 3.0

03-01-2003 Selectable option to log email and instant messaging content without
the intervening email protocol messages.

02-15-2003 Better browser and MAIL performance through faster internal character
conversion algorithm.
Change product download format to a self-extracting ZIP file.

02-11-2003 Correct misnamed program class sent with JAR; used for review filtering.

02-02-2003 Add TIMEOUT of 60 seconds to POP3 incoming mail task.
Improve character string filtering on logging REVIEW panel.
Provide COPY/PASTE edit mechanism to select data from log records for
pasting into a browser.

01-15-2003 Implement character string filtering for archived logs.
Improve storage recovery mechanisms.

12-31-2002 Build logic to accomodate IPV6 addresses in SOCKSv5 protocol.
Correct problem with IPV4 addressing in SOCSKv5 protocol.
Remove double "line-feeds" in logging.
Provide logging feature to "review" up to 100 past log files.

12-16-2002 Ensure that Permissions are saved across initiations of PServer.
Show Program Initial Load date and time on General Panel.
Recover storage after SMTP/POP3 operations.
Show opens subtask counts on Tuning Panel.

11-30-2002 Implement "Protocol User Permissions" for parental control of denying
or allowing access on an individual user basis.
Change log record format to clearly show name of protocol processor.
Improve email performance.

11-17-2002 Eliminate GUI task pause when dialing under Windows.
Show client/server names as well as IP addresses in logging.

11-14-2002 Correct response trace entries for SMTP and POP3, it displayed response
origin as CLIENT when it should have been SERVER.
Improve speed of SMTP client message buffering for data amounts in excess
of 1 Megabytes. Note that using Trace Level 3 will have an impact on
speed when shipping data in excess of 1Mbytes on machines with service
rates of less than 1GHz, and we may lose the Server connection due to
excessive socket idle time while buffering and translating for trace log.
Correct SMTP handshake for Outlook Express mail client.

11-11-2002 Show Proxy "Engine Status" on General Panel.
Show if connected/disconnected to/from the Internet on the General Panel.
Change numerical counters display look from flat to recessed.
Remove need to place Local IP Address in Configuration File.
Add "" to filtration option list.
Scan for multiple JAVASCRIPT PopUps per HTML datastream.

11-06-2002 Add option to suppress PopUps initiated by JAVASCRIPT coding in the HTML
response streams.
Add option to filter HTML coding appearing in SOCKS traffic prior to
displaying in log. This allows parent to clearly view AOL IM messages
in both realtime and in trace log.

10-31-2002 Provide LAN IP address of initiating machine on the trace entries
of SMTP and POP3 traffic.

10-30-2002 Correct CANCEL propagation logic in Telnet Send/Receive tasks.

10-29-2002 Set default I/O Timeout on HTTP requests to preclude possible consumption
of all available worker tasks.
Show HighWater Mark levels for all protocol worker tasks on Tuning Panel.

10-25-2002 Correct loop on I/O exception problem with SOCKS5 service.

10-24-2002 Permit "on-the-fly" buffer tuning. No further need to shutdown
or quiesce the proxy server prior to making these tuning adjustments.
buffering comboboxes on the tuning panel will now remain enabled.

10-20-2002 Upgrade FTP server tasks to accomodate "passive" data port channeling.

10-17-2002 Add horizontal scrollbar to Event Logging display.

10-16-2002 Implement "cookie" suppression option.
Implement options to filter some advertisements and promotions.

10-13-2002 Implement option to filter out some promotions and advertisements incoming
with HTTP protocol (browsing). Filtration Option button under HTTP Daemon.
This will bring up another window with checkboxes from which to select your
filter string matches.

10-12-2002 Correct HTTP POST operation to wait for entire "Content-Length" to be received
from client.

10-10-2002 Re-detect new external IP address leased from Internet Provider after re-dial.

10-07-2002 Show both Internet and Intranet IP addresses for the proxy under the General
Panel. Show the following detected software levels on General Panel:
Operating System
Operating System version
JAVA version
JAVA class version
Show user at startup the number of days remaining in the Evaluation Period.

10-04-2002 Applied PORT selection accomodation when both proxy and client are on the
same machine during a FTP session.

10-01-2002 SOCKS version 5 completed successful testing with new Send/Recv algorithms.

09-25-2002 Permit selective Enable/Disable of 1 or more TCP protocols.

09-23-2002 Permit temporary quiescing of proxy server application to change port listening
assignments, multitasking values or buffering sizes, then resume operations
under the new values.

09-20-2002 Allow filtering of traffic captured in logging.
Three types of filtering.
Default shows sites visited and error information.
Type1 shows socket and task threading information.
Type2 shows command data traffic.
Type3 shows I/O data traffic except for Content-Entities

09-15-2002 Improved HTTPS Tunneling algorithms.

09-14-2002 Provide display counters of JVM virtual storage utilization on Tuning Panel.
Counters for Free Storage, Total Storage available to JVM, percent of
free to total, and change for the last minute.

09-13-2002 Clients can cause dialup of Internet Provider Service remotely when
PServer recognized exceptions of NoHostException and UnknownHostException.
Ability to schedule dialup operation can be countermanded by server through
the manual use of HANGUP service.

09-12-2002 Provide traffic logging to file and scrolling panel.
Use of Enable/Disable buttons.
Log file named by date will be cut at each cross of midnight.
The file residency for drive and directory can be modified by user.
The file name will be the date of form YYYYMMDD and file extension PLOG.

09-10-2002 Improved storage efficiency and cleanup.

09-05-2002 Improved HTTP client socket read algorithm.

09-03-2002 Installed optional task to invoke DIAL UP under windows when no external Internet
connection is present.

06-15-2002 Added SMTP and POP3 protocol support.

04-10-2001 Full send/receive capabilities for FTP protocol modules.

04-17-2001 Developed and tested Telnet and TN3270 protocol modules.
Tested with Rumba, AttachMate Xtra and Exceed 3270.

04-17-2001 Developed and tested Telnet and TN3270 protocol modules.

03-07-2001 Implement new GUI with buffer and thread tuning parameters.
Transmit data as blocks are received for faster throughput and
to permit any size HTTP file transfers.

03-18-2001 Begin coding for FTP protocol modules.
Successfully handshake on both Control and Data ports.

02-01-2001 Begin building support for Secure Port (https) Services.

02-08-2001 Write asynchronous pipeline for special message traffic.

02-10-2001 Write asynchronous queue for informational message traffic.

02-15-2001 Restructured outbound I/O to pure sockets from use of
flawed URL and HttpURLConnection components.
Support for tempory page redirects (code 302).
POST successfully functions.
"PRE" HTML correctly formats.

02-25-2001 Improved performance by reducing internal data movement between
client and server arrays.

02-27-2001 Improved performance by forming a worker thread service pool.
Pool consists of reusable task threads and queueless workunit channel.
Pool size is maintained by load and expansion/contraction
Build tunable TIMEOUT, Expansion and Contraction constants.
Noted 30 percent throughput increase.

02-28-2001 Make serial reusability corrections to HTTP worker threads.

01-15-2001 Begin building support for FTP Services.

01-18-2001 Begin building support for Gaming Port Services.

12-27-2000 Rough out architecture for proxy.

[Return to Index]

[Return to Cullen Programming Home Page]