The process involved is rather simple. The proxy will act/respond as a standard web server (HTTP .1) with the following specs:
1. Windows NT Service (NT4/2K/XP/2K3)
2. Configuration INI files indicating IP Addresses (bind list) and host list to proxy to (example will be provided)
3. Service receives header and based on host provided in header redirects user to the server (IP/Port) listed within the INI file
4. INI file is re-loaded every 'x' seconds (again, based on setting within INI) to allow for an automatic update (additions/changes to hosting list)
5. In the event a host is not listed, a special 404 page should be returned. (Standard HTML)
6. In the event of system maintenance (offline), another page should be returned. (Standard HTML)
Scenario: User is visiting [[login to view URL]][1] and via DNS is given the IP of [login to view URL] - the proxy service answers, indicates that [login to view URL] is listed within its host file, creates a socket and forwards the received headers to [login to view URL] (the IP:PORT listed for that host) and proxies all information between the server and visitor from that point on until the socket is closed or a time-out value expires.
WINNT Service specifications: Microsoft C++ version 6, non-MFC, Speed enhanced and preferably low CPU consumption. Log file should be generated for each 'transaction' proxied.
PROJECT: PART 1 of 2
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Example INI (Values shown in seconds):
**[BINDINGS]
**BINDCOUNT=2
BIND1=[login to view URL]
BIND2=[login to view URL]
**[SETTINGS]
**TIMEOUT=300
RELOADINI=1800
ERR404=[login to view URL]
OFFLINE=[login to view URL]
MAXSOCKETS=1000
**[HOSTS]**
HOSTCOUNT=2
HOST1=[login to view URL]:[login to view URL]
HOST2=[login to view URL]:[login to view URL]
Example Log File:
**Log File Name = date based ([login to view URL])
**Time Stamp File Name File Size
============================
m-d-Y_h:i:s [login to view URL] 12015
Questions and comments welcome!
This is part one of a two part project.