[Modify] Replace them

This commit is contained in:
sta 2016-10-27 15:36:55 +09:00
parent 25e429259b
commit 8212ca03de

View File

@ -70,11 +70,13 @@ namespace WebSocketSharp.Server
private Logger _logger; private Logger _logger;
private int _port; private int _port;
private string _realm; private string _realm;
private string _realmInUse;
private Thread _receiveThread; private Thread _receiveThread;
private bool _reuseAddress; private bool _reuseAddress;
private bool _secure; private bool _secure;
private WebSocketServiceManager _services; private WebSocketServiceManager _services;
private ServerSslConfiguration _sslConfig; private ServerSslConfiguration _sslConfig;
private ServerSslConfiguration _sslConfigInUse;
private volatile ServerState _state; private volatile ServerState _state;
private object _sync; private object _sync;
private Func<IIdentity, NetworkCredential> _userCredFinder; private Func<IIdentity, NetworkCredential> _userCredFinder;
@ -786,8 +788,8 @@ namespace WebSocketSharp.Server
ThreadPool.QueueUserWorkItem ( ThreadPool.QueueUserWorkItem (
state => { state => {
try { try {
var ctx = cl.GetWebSocketContext (null, _secure, _sslConfig, _logger); var ctx = cl.GetWebSocketContext (null, _secure, _sslConfigInUse, _logger);
if (!ctx.Authenticate (_authSchemes, getRealm (), _userCredFinder)) if (!ctx.Authenticate (_authSchemes, _realmInUse, _userCredFinder))
return; return;
processRequest (ctx); processRequest (ctx);
@ -940,13 +942,27 @@ namespace WebSocketSharp.Server
/// </summary> /// </summary>
public void Start () public void Start ()
{ {
lock (_sync) { string msg;
var msg = _state.CheckIfAvailable (true, false, false) ?? checkIfCertificateExists (); if (!checkIfAvailable (true, false, false, true, out msg)) {
if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
return; return;
} }
var sslConfig = getSslConfiguration ();
if (!checkSslConfiguration (sslConfig, out msg)) {
_logger.Error (msg);
return;
}
lock (_sync) {
if (!checkIfAvailable (true, false, false, true, out msg)) {
_logger.Error (msg);
return;
}
_realmInUse = getRealm ();
_sslConfigInUse = sslConfig;
_services.Start (); _services.Start ();
startReceiving (); startReceiving ();