10
10
11
11
#********* CONSTANT VARIABLES *********
12
12
BACKLOG = 50 # how many pending connections queue will hold
13
- MAX_DATA_RECV = 4096 # max number of bytes we receive at once
14
- DEBUG = False # set to True to see the debug msgs
13
+ MAX_DATA_RECV = 999999 # max number of bytes we receive at once
14
+ DEBUG = True # set to True to see the debug msgs
15
+ BLOCKED = [] # just an example. Remove with [""] for no blocking at all.
15
16
16
17
#**************************************
17
18
#********* MAIN PROGRAM ***************
@@ -27,6 +28,8 @@ def main():
27
28
host = '' # blank for localhost
28
29
port = int (sys .argv [1 ]) # port from argument
29
30
31
+ print "Proxy Server Running on " ,host ,":" ,sys .argv [1 ]
32
+
30
33
try :
31
34
# create a socket
32
35
s = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
@@ -69,11 +72,14 @@ def proxy_thread(conn, client_addr):
69
72
# get url
70
73
url = first_line .split (' ' )[1 ]
71
74
72
- if (DEBUG ):
73
- print first_line
74
- print
75
- print "URL:" ,url
76
- print
75
+ for i in range (0 ,len (BLOCKED )):
76
+ if BLOCKED [i ] in url :
77
+ print "\033 [91mBlocked: " ,first_line ,"\033 [0m"
78
+ sys .exit (1 )
79
+
80
+ print "\033 [92mRequest: " ,first_line ,"\033 [0m"
81
+ # print "URL:",url
82
+ # print
77
83
78
84
# find the webserver and port
79
85
http_pos = url .find ("://" ) # find pos of ://
@@ -98,14 +104,12 @@ def proxy_thread(conn, client_addr):
98
104
port = int ((temp [(port_pos + 1 ):])[:webserver_pos - port_pos - 1 ])
99
105
webserver = temp [:port_pos ]
100
106
101
- print "Connect to:" , webserver , port
102
-
103
107
try :
104
108
# create a socket to connect to the web server
105
109
s = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
106
110
s .connect ((webserver , port ))
107
111
s .send (request ) # send request to webserver
108
-
112
+
109
113
while 1 :
110
114
# receive data from web server
111
115
data = s .recv (MAX_DATA_RECV )
@@ -122,7 +126,7 @@ def proxy_thread(conn, client_addr):
122
126
s .close ()
123
127
if conn :
124
128
conn .close ()
125
- print "Runtime Error :" , message
129
+ print "\033 [93mPeer Reset :" ,first_line , " \033 [0m"
126
130
sys .exit (1 )
127
131
#********** END PROXY_THREAD ***********
128
132
0 commit comments