44 "bufio"
55 "fmt"
66 "io"
7- "log"
87 "net"
98 "net/http"
109 "os"
@@ -52,9 +51,9 @@ func NewDomainProxyServer(domainSocket string, byteBufferSize int, connectionTim
5251}
5352
5453func (dps * DomainProxyServer ) Start () {
55- log .Println ("Starting domain proxy server..." )
56- log .Printf ("Byte buffer size %d" , dps .byteBufferSize ) // TODO Remove
57- log .Printf ("Proxy target whitelist: %v" , dps .proxyTargetWhitelist ) // TODO Remove
54+ Logger .Println ("Starting domain proxy server..." )
55+ Logger .Printf ("Byte buffer size %d" , dps .byteBufferSize ) // TODO Remove
56+ Logger .Printf ("Proxy target whitelist: %v" , dps .proxyTargetWhitelist ) // TODO Remove
5857 dps .executor .Add (1 )
5958 go dps .startServer ()
6059}
@@ -63,23 +62,23 @@ func (dps *DomainProxyServer) startServer() {
6362 defer dps .executor .Done ()
6463 if _ , err := os .Stat (dps .domainSocket ); err == nil {
6564 if err := os .Remove (dps .domainSocket ); err != nil {
66- log .Fatalf ("Failed to delete existing domain socket: %v" , err )
65+ Logger .Fatalf ("Failed to delete existing domain socket: %v" , err )
6766 }
6867 }
6968 var err error
7069 dps .listener , err = net .Listen ("unix" , dps .domainSocket )
7170 if err != nil {
72- log .Fatalf ("Failed to start domain socket listener: %v" , err )
71+ Logger .Fatalf ("Failed to start domain socket listener: %v" , err )
7372 }
74- log .Println ("Domain socket server listening on" , dps .domainSocket )
73+ Logger .Println ("Domain socket server listening on" , dps .domainSocket )
7574 for {
7675 conn , err := dps .listener .Accept ()
7776 if err != nil {
7877 select {
7978 case <- dps .shutdownChan :
8079 return
8180 default :
82- log .Printf ("Failed to accept connection: %v" , err )
81+ Logger .Printf ("Failed to accept connection: %v" , err )
8382 continue
8483 }
8584 }
@@ -95,7 +94,7 @@ func (dps *DomainProxyServer) handleRequest(conn net.Conn) {
9594 reader := bufio .NewReader (conn )
9695 req , err := http .ReadRequest (reader )
9796 if err != nil {
98- log .Printf ("Failed to read request: %v" , err )
97+ Logger .Printf ("Failed to read request: %v" , err )
9998 conn .Close ()
10099 return
101100 }
@@ -109,13 +108,13 @@ func (dps *DomainProxyServer) handleRequest(conn net.Conn) {
109108}
110109
111110func (dps * DomainProxyServer ) handleHttpRequest (w http.ResponseWriter , r * http.Request ) {
112- log .Printf ("Handling HTTP %s Request" , r .Method )
111+ Logger .Printf ("Handling HTTP %s Request" , r .Method )
113112 requestNo := dps .counter
114- log .Printf ("Request %d" , requestNo )
113+ Logger .Printf ("Request %d" , requestNo )
115114 hostPort := strings .Split (r .Host , ":" )
116115 targetHost := hostPort [0 ]
117116 if dps .isTargetWhitelisted (targetHost , w ) {
118- log .Printf ("Target URI %s" , r .RequestURI )
117+ Logger .Printf ("Target URI %s" , r .RequestURI )
119118 startTime := time .Now ()
120119 client := & http.Client {
121120 Transport : & http.Transport {
@@ -141,17 +140,17 @@ func (dps *DomainProxyServer) handleHttpRequest(w http.ResponseWriter, r *http.R
141140 }
142141 w .WriteHeader (resp .StatusCode )
143142 if _ , err = io .CopyBuffer (w , resp .Body , make ([]byte , dps .byteBufferSize )); err != nil {
144- log .Printf ("Error copying response body: %v" , err )
143+ Logger .Printf ("Error copying response body: %v" , err )
145144 }
146- log .Printf ("Request %d took %d ms" , requestNo , time .Since (startTime ).Milliseconds ())
145+ Logger .Printf ("Request %d took %d ms" , requestNo , time .Since (startTime ).Milliseconds ())
147146 // TODO log bytes written/read
148147 }
149148}
150149
151150func (dps * DomainProxyServer ) handleHttpsRequest (sourceConn net.Conn , w http.ResponseWriter , r * http.Request ) {
152- log .Printf ("Handling HTTPS %s Request" , r .Method )
151+ Logger .Printf ("Handling HTTPS %s Request" , r .Method )
153152 requestNo := dps .counter
154- log .Printf ("Request %d" , requestNo )
153+ Logger .Printf ("Request %d" , requestNo )
155154 hostPort := strings .Split (r .Host , ":" )
156155 targetHost := hostPort [0 ]
157156 targetPort := HttpsPort
@@ -161,7 +160,7 @@ func (dps *DomainProxyServer) handleHttpsRequest(sourceConn net.Conn, w http.Res
161160 }
162161 }
163162 if dps .isTargetWhitelisted (targetHost , w ) {
164- log .Printf ("Target URI %s" , r .RequestURI )
163+ Logger .Printf ("Target URI %s" , r .RequestURI )
165164 startTime := time .Now ()
166165 targetConn , err := net .DialTimeout ("tcp" , fmt .Sprintf ("%s:%d" , targetHost , targetPort ), dps .connectionTimeout )
167166 if err != nil {
@@ -178,36 +177,36 @@ func (dps *DomainProxyServer) handleHttpsRequest(sourceConn net.Conn, w http.Res
178177 dps .executor .Add (1 )
179178 go func () {
180179 BiDirectionalTransfer (sourceConn , targetConn , dps .byteBufferSize , dps .idleTimeout , dps .executor )
181- log .Printf ("Request %d took %d ms" , requestNo , (time .Since (startTime ) - dps .idleTimeout ).Milliseconds ())
180+ Logger .Printf ("Request %d took %d ms" , requestNo , (time .Since (startTime ) - dps .idleTimeout ).Milliseconds ())
182181 }()
183182 }
184183}
185184
186185func (dps * DomainProxyServer ) isTargetWhitelisted (targetHost string , w http.ResponseWriter ) bool {
187- log .Printf ("Target host %s" , targetHost )
186+ Logger .Printf ("Target host %s" , targetHost )
188187 if ! dps .proxyTargetWhitelist [targetHost ] && ! dps .nonProxyHosts [targetHost ] {
189- log .Println ("Target host is not whitelisted or a non-proxy host" )
188+ Logger .Println ("Target host is not whitelisted or a non-proxy host" )
190189 http .Error (w , "The requested resource was not found." , http .StatusNotFound )
191190 return false
192191 }
193192 return true
194193}
195194
196195func (dps * DomainProxyServer ) handleErrorResponse (w http.ResponseWriter , err error , message string ) {
197- log .Printf ("%s: %v" , message , err )
196+ Logger .Printf ("%s: %v" , message , err )
198197 http .Error (w , message + ": " + err .Error (), http .StatusBadGateway )
199198}
200199
201200func (dps * DomainProxyServer ) Stop () {
202- log .Println ("Shutting down domain proxy server..." )
201+ Logger .Println ("Shutting down domain proxy server..." )
203202 close (dps .shutdownChan )
204203 if err := dps .listener .Close (); err != nil {
205- log .Printf ("Error closing listener: %v" , err )
204+ Logger .Printf ("Error closing listener: %v" , err )
206205 }
207206 dps .executor .Wait ()
208207 if _ , err := os .Stat (dps .domainSocket ); err == nil {
209208 if err := os .Remove (dps .domainSocket ); err != nil {
210- log .Printf ("Error deleting domain socket: %v" , err )
209+ Logger .Printf ("Error deleting domain socket: %v" , err )
211210 }
212211 }
213212}
@@ -239,11 +238,12 @@ func (rw *responseWriter) WriteHeader(statusCode int) {
239238 }
240239 headers += "\r \n "
241240 if _ , err := rw .conn .Write ([]byte (headers )); err != nil {
242- log .Printf ("Error writing headers to connection: %v" , err )
241+ Logger .Printf ("Error writing headers to connection: %v" , err )
243242 }
244243}
245244
246245func main () {
246+ InitLogger ("Domain Proxy Server" )
247247 server := NewDomainProxyServer (GetDomainSocket (),
248248 GetByteBufferSize (),
249249 GetConnectionTimeout (),
0 commit comments