mirror of
https://github.com/FastTunnel/FastTunnel.git
synced 2025-02-08 02:39:29 +08:00
修复已知的bug
This commit is contained in:
parent
c0f87daf7a
commit
5dc91523f9
|
@ -17,7 +17,7 @@ namespace FastTunnel.Core.Handlers.Server
|
|||
readonly IServerConfig _serverSettings;
|
||||
readonly FastTunnelServer _fastTunnelServer;
|
||||
|
||||
readonly LoginMessageHandler _loginHandler;
|
||||
readonly LoginHandler _loginHandler;
|
||||
readonly HeartMessageHandler _heartHandler;
|
||||
readonly SwapMessageHandler _swapMsgHandler;
|
||||
Action<Socket> offLineAction;
|
||||
|
@ -28,7 +28,7 @@ namespace FastTunnel.Core.Handlers.Server
|
|||
_serverSettings = serverSettings;
|
||||
_fastTunnelServer = fastTunnelServer;
|
||||
|
||||
_loginHandler = new LoginMessageHandler(logger);
|
||||
_loginHandler = new LoginHandler(logger);
|
||||
_heartHandler = new HeartMessageHandler();
|
||||
_swapMsgHandler = new SwapMessageHandler(logger);
|
||||
}
|
||||
|
|
|
@ -112,13 +112,6 @@ namespace FastTunnel.Core.Handlers.Server
|
|||
return;
|
||||
}
|
||||
|
||||
if (!web.Socket.Connected)
|
||||
{
|
||||
_fastTunnelServer.WebList.TryRemove(domain, out WebInfo invalidWeb);
|
||||
HandlerClientNotOnLine(httpClient, domain, buffer);
|
||||
return;
|
||||
}
|
||||
|
||||
var msgid = Guid.NewGuid().ToString();
|
||||
|
||||
byte[] bytes = new byte[count];
|
||||
|
@ -130,8 +123,16 @@ namespace FastTunnel.Core.Handlers.Server
|
|||
Buffer = bytes
|
||||
});
|
||||
|
||||
_logger.LogDebug($"OK");
|
||||
web.Socket.Send(new Message<NewCustomerMassage> { MessageType = MessageType.S_NewCustomer, Content = new NewCustomerMassage { MsgId = msgid, WebConfig = web.WebConfig } });
|
||||
try
|
||||
{
|
||||
_logger.LogDebug($"OK");
|
||||
web.Socket.Send(new Message<NewCustomerMassage> { MessageType = MessageType.S_NewCustomer, Content = new NewCustomerMassage { MsgId = msgid, WebConfig = web.WebConfig } });
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
HandlerClientNotOnLine(httpClient, domain, buffer);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
@ -14,14 +14,16 @@ using System.Text;
|
|||
|
||||
namespace FastTunnel.Core.Handlers
|
||||
{
|
||||
public class LoginMessageHandler : IClientMessageHandler
|
||||
public class LoginHandler : IClientMessageHandler
|
||||
{
|
||||
ILogger _logger;
|
||||
|
||||
public bool NeedRecive => true;
|
||||
IConfigHandler _configHandler;
|
||||
|
||||
public LoginMessageHandler(ILogger logger)
|
||||
static object _locker = new object();
|
||||
|
||||
public LoginHandler(ILogger logger)
|
||||
{
|
||||
_logger = logger;
|
||||
var custome = FastTunnelGlobal.GetCustomHandler<IConfigHandler>();
|
||||
|
@ -35,14 +37,17 @@ namespace FastTunnel.Core.Handlers
|
|||
|
||||
public void HandlerMsg(FastTunnelServer server, Socket client, Message<JObject> msg)
|
||||
{
|
||||
HandleLogin(server, client, GetConfig(msg.Content));
|
||||
lock (_locker)
|
||||
{
|
||||
HandleLogin(server, client, GetConfig(msg.Content));
|
||||
}
|
||||
}
|
||||
|
||||
public void HandleLogin(FastTunnelServer server, Socket client, LogInMassage requet)
|
||||
{
|
||||
bool hasTunnel = false;
|
||||
|
||||
var filters = Global.FastTunnelGlobal.GetFilters(typeof(IFastTunnelAuthenticationFilter));
|
||||
var filters = FastTunnelGlobal.GetFilters(typeof(IFastTunnelAuthenticationFilter));
|
||||
if (filters.Count() > 0)
|
||||
{
|
||||
foreach (IFastTunnelAuthenticationFilter item in filters)
|
||||
|
@ -71,8 +76,8 @@ namespace FastTunnel.Core.Handlers
|
|||
var info = new WebInfo { Socket = client, WebConfig = item };
|
||||
|
||||
_logger.LogDebug($"new domain '{hostName}'");
|
||||
server.WebList.AddOrUpdate(hostName, info, (key, info) => { return info; });
|
||||
sb.Append($"{Environment.NewLine} http://{hostName}{(server.ServerSettings.WebHasNginxProxy ? string.Empty : ":" + server.ServerSettings.WebProxyPort)} => {item.LocalIp}:{item.LocalPort}");
|
||||
server.WebList.AddOrUpdate(hostName, info, (key, oldInfo) => { return info; });
|
||||
sb.Append($"{Environment.NewLine} http://{hostName}{(server.ServerSettings.WebHasNginxProxy ? string.Empty : ":" + server.ServerSettings.WebProxyPort)} => {item.LocalIp}:{item.LocalPort}");
|
||||
|
||||
if (item.WWW != null)
|
||||
{
|
||||
|
@ -80,13 +85,13 @@ namespace FastTunnel.Core.Handlers
|
|||
{
|
||||
if (!www.EndsWith(server.ServerSettings.WebDomain))
|
||||
{
|
||||
server.WebList.AddOrUpdate(www, info, (key, info) => { return info; });
|
||||
server.WebList.AddOrUpdate(www, info, (key, oldInfo) => { return info; });
|
||||
sb.Append($"{Environment.NewLine} http://{www}{(server.ServerSettings.WebHasNginxProxy ? string.Empty : ":" + server.ServerSettings.WebProxyPort)} => {item.LocalIp}:{item.LocalPort}");
|
||||
}
|
||||
else
|
||||
{
|
||||
// cant use WebDomain
|
||||
_logger.LogDebug($"USE WebDomain IN WWW {www}");
|
||||
// can`t use WebDomain
|
||||
_logger.LogError($"Invalid WebDomain IN WWW {www}");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user