public void UpdatePACURL(Configuration config) { _config = config; string usedSecret = _config.secureLocalPac ? $"&secret={PacSecret}" : ""; string contentHash = GetHash(_pacDaemon.GetPACContent()); PacUrl = $"http://{config.LocalHost}:{config.localPort}/{RESOURCE_NAME}?hash={contentHash}{usedSecret}"; logger.Debug("Set PAC URL:" + PacUrl); }
public void SendResponse(Socket socket, bool useSocks) { try { IPEndPoint localEndPoint = (IPEndPoint)socket.LocalEndPoint; string proxy = GetPACAddress(localEndPoint, useSocks); string pacContent = _pacDaemon.GetPACContent().Replace("__PROXY__", proxy); string responseHead = String.Format(@"HTTP/1.1 200 OK Server: Shadowsocks Content-Type: application/x-ns-proxy-autoconfig Content-Length: {0} Connection: Close ", Encoding.UTF8.GetBytes(pacContent).Length); byte[] response = Encoding.UTF8.GetBytes(responseHead + pacContent); socket.BeginSend(response, 0, response.Length, 0, new AsyncCallback(SendCallback), socket); Utils.ReleaseMemory(true); } catch (Exception e) { Logging.LogUsefulException(e); socket.Close(); } }
public void SendResponse(Socket socket, bool useSocks) { try { IPEndPoint localEndPoint = (IPEndPoint)socket.LocalEndPoint; string proxy = GetPACAddress(localEndPoint, useSocks); string pacContent = $"var __PROXY__ = '{proxy}';\n" + _pacDaemon.GetPACContent(); string responseHead = $@"HTTP/1.1 200 OK Server: ShadowsocksWindows/{UpdateChecker.Version} Content-Type: application/x-ns-proxy-autoconfig Content-Length: { Encoding.UTF8.GetBytes(pacContent).Length} Connection: Close "; byte[] response = Encoding.UTF8.GetBytes(responseHead + pacContent); socket.BeginSend(response, 0, response.Length, 0, new AsyncCallback(SendCallback), socket); Utils.ReleaseMemory(true); } catch (Exception e) { Logging.LogUsefulException(e); socket.Close(); } }