Browse Source

Revert "Better host parse"

This reverts commit d1e8f38767.
tags/3.4.3
noisyfox 8 years ago
parent
commit
f149851e3b
1 changed files with 24 additions and 23 deletions
  1. +24
    -23
      shadowsocks-csharp/Controller/Service/Http2Socks5.cs

+ 24
- 23
shadowsocks-csharp/Controller/Service/Http2Socks5.cs View File

@@ -378,25 +378,6 @@ namespace Shadowsocks.Controller.Service
private int _targetPort; private int _targetPort;
private readonly Queue<string> _headers = new Queue<string>(); private readonly Queue<string> _headers = new Queue<string>();


private bool ParseHost(string host)
{
var locs = host.Split(':');
_targetHost = locs[0];
if (locs.Length > 1)
{
if (!int.TryParse(locs[1], out _targetPort))
{
return false;
}
}
else
{
_targetPort = 80;
}

return true;
}

private bool OnLineRead(string line, object state) private bool OnLineRead(string line, object state)
{ {
if (_closed) if (_closed)
@@ -422,9 +403,19 @@ namespace Shadowsocks.Controller.Service
{ {
_isConnect = true; _isConnect = true;


if (!ParseHost(m.Groups[2].Value))
var location = m.Groups[2].Value;
var locs = location.Split(':');
_targetHost = locs[0];
if (locs.Length > 1)
{ {
throw new Exception("Bad http header: " + line);
if (!int.TryParse(locs[1], out _targetPort))
{
throw new Exception("Bad http header: " + line);
}
}
else
{
_targetPort = 80;
} }
} }
} }
@@ -440,9 +431,19 @@ namespace Shadowsocks.Controller.Service
{ {
if (line.StartsWith("Host: ")) if (line.StartsWith("Host: "))
{ {
if (!ParseHost(line.Substring(6).Trim()))
var location = line.Substring(6).Trim();
var locs = location.Split(':');
_targetHost = locs[0];
if (locs.Length > 1)
{
if (!int.TryParse(locs[1], out _targetPort))
{
throw new Exception("Bad http header: " + line);
}
}
else
{ {
throw new Exception("Bad http header: " + line);
_targetPort = 80;
} }
} }
} }


Loading…
Cancel
Save