SMBServer: Moved socket parameters to the Start method

This commit is contained in:
Tal Aloni 2017-03-04 11:09:33 +02:00
parent c93bb66152
commit f4fa70a280
2 changed files with 17 additions and 18 deletions

View file

@ -27,43 +27,43 @@ namespace SMBLibrary.Server
private ShareCollection m_shares; // e.g. Shared folders private ShareCollection m_shares; // e.g. Shared folders
private GSSProvider m_securityProvider; private GSSProvider m_securityProvider;
private NamedPipeShare m_services; // Named pipes private NamedPipeShare m_services; // Named pipes
private Guid m_serverGuid;
private IPAddress m_serverAddress; private IPAddress m_serverAddress;
private SMBTransportType m_transport; private SMBTransportType m_transport;
private bool m_enableSMB1; private bool m_enableSMB1;
private bool m_enableSMB2; private bool m_enableSMB2;
private Socket m_listenerSocket; private Socket m_listenerSocket;
private bool m_listening; private bool m_listening;
private Guid m_serverGuid;
private DateTime m_serverStartTime; private DateTime m_serverStartTime;
public event EventHandler<LogEntry> OnLogEntry; public event EventHandler<LogEntry> OnLogEntry;
public SMBServer(ShareCollection shares, GSSProvider securityProvider, IPAddress serverAddress, SMBTransportType transport) : this(shares, securityProvider, serverAddress, transport, true, true) public SMBServer(ShareCollection shares, GSSProvider securityProvider)
{
}
public SMBServer(ShareCollection shares, GSSProvider securityProvider, IPAddress serverAddress, SMBTransportType transport, bool enableSMB1, bool enableSMB2)
{ {
m_shares = shares; m_shares = shares;
m_securityProvider = securityProvider; m_securityProvider = securityProvider;
m_serverAddress = serverAddress;
m_serverGuid = Guid.NewGuid();
m_serverStartTime = DateTime.Now;
m_transport = transport;
m_enableSMB1 = enableSMB1;
m_enableSMB2 = enableSMB2;
m_services = new NamedPipeShare(shares.ListShares()); m_services = new NamedPipeShare(shares.ListShares());
m_serverGuid = Guid.NewGuid();
}
public void Start(IPAddress serverAddress, SMBTransportType transport)
{
Start(serverAddress, transport, true, true);
} }
/// <exception cref="System.Net.Sockets.SocketException"></exception> /// <exception cref="System.Net.Sockets.SocketException"></exception>
public void Start() public void Start(IPAddress serverAddress, SMBTransportType transport, bool enableSMB1, bool enableSMB2)
{ {
if (!m_listening) if (!m_listening)
{ {
Log(Severity.Information, "Starting server"); Log(Severity.Information, "Starting server");
m_serverAddress = serverAddress;
m_transport = transport;
m_enableSMB1 = enableSMB1;
m_enableSMB2 = enableSMB2;
m_listening = true; m_listening = true;
m_serverStartTime = DateTime.Now;
m_listenerSocket = new Socket(m_serverAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp); m_listenerSocket = new Socket(m_serverAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
int port = (m_transport == SMBTransportType.DirectTCPTransport ? DirectTCPPort : NetBiosOverTCPPort); int port = (m_transport == SMBTransportType.DirectTCPTransport ? DirectTCPPort : NetBiosOverTCPPort);

View file

@ -84,7 +84,6 @@ namespace SMBServer
authenticationMechanism = new IndependentNTLMAuthenticationProvider(users.GetUserPassword); authenticationMechanism = new IndependentNTLMAuthenticationProvider(users.GetUserPassword);
} }
ShareCollection shares; ShareCollection shares;
try try
{ {
@ -97,12 +96,12 @@ namespace SMBServer
} }
GSSProvider securityProvider = new GSSProvider(authenticationMechanism); GSSProvider securityProvider = new GSSProvider(authenticationMechanism);
m_server = new SMBLibrary.Server.SMBServer(shares, securityProvider, serverAddress, transportType, chkSMB1.Checked, chkSMB2.Checked); m_server = new SMBLibrary.Server.SMBServer(shares, securityProvider);
m_server.OnLogEntry += new EventHandler<LogEntry>(Server_OnLogEntry); m_server.OnLogEntry += new EventHandler<LogEntry>(Server_OnLogEntry);
try try
{ {
m_server.Start(); m_server.Start(serverAddress, transportType, chkSMB1.Checked, chkSMB2.Checked);
if (transportType == SMBTransportType.NetBiosOverTCP) if (transportType == SMBTransportType.NetBiosOverTCP)
{ {
if (serverAddress.AddressFamily == AddressFamily.InterNetwork && !IPAddress.Equals(serverAddress, IPAddress.Any)) if (serverAddress.AddressFamily == AddressFamily.InterNetwork && !IPAddress.Equals(serverAddress, IPAddress.Any))