/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// static void WwwProxy_Request(WwwProxy.ProxyRequest request) { Match urlMatch = Regex.Match(request.Header, "([A-Z]+)\\s+(.*?)\\s+HTTP/\\d\\.\\d\r$", RegexOptions.IgnoreCase | RegexOptions.Multiline); if (urlMatch.Success) { string url = urlMatch.Groups[2].Value; Console.WriteLine(">>>>> WwwProxy_Request({0}, {1}, {2})", request.Id, request.Ssl ? "https" : "http", url); } Console.WriteLine(); Console.WriteLine(request.Header); if (request.Data != null) { Console.WriteLine(); Console.WriteLine(request.Data); } Console.WriteLine(); if (!request.Header.Contains("download.windowsupdate.com")) { wwwProxy_.Pass(request); } else { wwwProxy_.Drop(request); } }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// static void WwwProxy_Response(WwwProxy.ProxyRequest request, WwwProxy.ProxyResponse response) { Match urlMatch = Regex.Match(request.Header, "([A-Z]+)\\s+(.*?)\\s+HTTP/\\d\\.\\d\r$", RegexOptions.IgnoreCase | RegexOptions.Multiline); if (urlMatch.Success) { string url = urlMatch.Groups[2].Value; Console.WriteLine("<<<<< WwwProxy_Response({0}, {1}, {2}, {3})", response.Id, request.Ssl ? "https" : "http", url, response.Completable); } Console.WriteLine(); Console.WriteLine(response.Header); Console.WriteLine(); wwwProxy_.Pass(response); }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// static void WwwProxy_Error(WwwProxy.ProxyRequest request, Exception exception, string error) { Console.WriteLine("WwwProxy_Error(): {0}", error); Console.WriteLine(exception.StackTrace); if (exception != null) { if (exception is SocketException) { if (((SocketException)exception).ErrorCode == 10048) { exitEvent_.Set(); } } } }