/** * Bouncer 0.6 (Beta 2) * Copyright (c) 2000, 2001 Chris Mason * All Rights Reserved * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #define APPNAME "Bouncer" #define VERSION "0.6 (Beta 2)" #define MAX_CONNECTIONS 32 #define LISTEN_BACKLOG 1024 #define BUFFER_SIZE 4096 #define MAX_RULES 16 #define MAX_IP_LENGTH 16 #define DEFAULT_POLICY_ALLOW 1 #define DEFAULT_POLICY_DENY 2 #define SSL_CONNECT_STRING_NOAUTH "CONNECT %s HTTP/1.0\r\nUser-Agent: Mozilla/4.0\r\nProxy-Connection: Keep-Alive\r\nPragma: No-Cache\r\n\r\n" #define SSL_CONNECT_STRING_AUTH "CONNECT %s HTTP/1.0\r\nUser-Agent: Mozilla/4.0\r\nProxy-Connection: Keep-Alive\r\nPragma: No-Cache\r\nProxy-Authorization: Basic %s\r\n\r\n" #define SSL_TERMINATE_STRING "\r\n\r\n" #define REJECTED_IP_MASK_FAILED "%s [%d] Connection Rejected... Connection Prohibited\n" #define REJECTED_LIMIT_REACHED "%s [%d] Connection Rejected... Connection Limit Reached\n" #define BAC_CONNECTION_REJECTED "%s BAC Connection Rejected... Busy Service\n" #define REJECTED_SOCKS5_FAIL "%s [%d] Connection Rejected... Socks 5 Authentication Failed\n" #define ADMIN_WAITING_BIND "%s Waiting For HTTP Connections On %s:%d\n" #define ADMIN_WAITING_NOBIND "%s Waiting For HTTP Connections On 0.0.0.0:%d\n" #define WAITING_BIND "%s Waiting For TCP Connections On %s:%d\n" #define WAITING_NOBIND "%s Waiting For TCP Connections On 0.0.0.0:%d\n" #define ACCEPTED_CONNECTION "%s Accepted Connection %d From %s\n" #define HTTP_ACCEPTED_CONNECTION "%s Accepted HTTP Connection %d From %s\n" #define SSL_FAILED_NO_TERMINATOR "%s [%d] SSL Tunnelling Failed, Could Not Retrieve Terminator\n" #define SSL_SUCCESSFUL "%s [%d] SSL Tunnelling Successful, Returned %d (%s)\n" #define SSL_OVERFLOW "%s [%d] SSL Overflow Of %d Bytes Detected\n" #define SSL_FAILED "%s [%d] SSL Tunnelling Failed, Returned %d (%s)\n" #define SHUTDOWN_REQUEST "%s Caught Shutdown Request... Terminating Gracefully\n" #define CAUGHT_SIGNAL "%s Caught Signal %d... Terminating Gracefully\n" #define CLOSING_LISTENING_SOCKET "%s Closing Listening Socket\n" #define CLOSING_HTTP_LISTENING_SOCKET "%s Closing HTTP Listening Socket\n" #define CONNECTION_CLOSED "%s Connection %d Closed\n" #define HTTP_CONNECTION_CLOSED "%s HTTP Connection %d Closed\n" #define SOCKS5_UNKNOWN_DATA "%s [%d] Unknown Data Received From Socks 5 Client\n" #define SOCKS5_NEGOTIATING "%s [%d] Negotiating Socks 5 Protocol\n" #define CONNECTION_ATTEMPT "%s Connection %d Attempting To Connect To %s:%d\n" #define CONNECTION_CONNECTED "%s Connection %d Connected To %s:%d\n" #define SSL_TUNNELLING "%s [%d] SSL Tunnelling To %s\n" #define ERROR_CONNECTION "%s [%d] %s:%d - Error %d (%s) - %s\n" #define ERROR_NO_CONNECTION "%s %s:%d - Error %d (%s) - %s\n" #define WINDOWS_DAEMON "%s Bouncer Daemonized - Console Inactive\n" #define LIST_ADMIN_SOCKS "