public void TestTLSIdentity() { // TLS is disabled _listener = CreateListener(false); _listener.TlsIdentity.Should().BeNull(); _listener.Stop(); _listener.TlsIdentity.Should().BeNull(); // Anonymous Identity _listener = CreateListener(true); _listener.TlsIdentity.Should().NotBeNull(); _listener.Stop(); _listener.TlsIdentity.Should().BeNull(); // User Identity TLSIdentity.DeleteIdentity(_store, ServerCertLabel, null); var id = TLSIdentity.CreateIdentity(false, new Dictionary <string, string>() { { Certificate.CommonNameAttribute, "CBL-Server" } }, null, _store, ServerCertLabel, null); var config = CreateListenerConfig(true, true, null, id); _listener = new URLEndpointListener(config); _listener.TlsIdentity.Should().BeNull(); _listener.Start(); _listener.TlsIdentity.Should().NotBeNull(); _listener.TlsIdentity.Should().BeEquivalentTo(config.TlsIdentity); _listener.Stop(); _listener.TlsIdentity.Should().BeNull(); }
private URLEndpointListener Listen(URLEndpointListenerConfiguration config, int expectedErrCode = 0, CouchbaseLiteErrorType expectedErrDomain = 0) { _listener?.Stop(); _listener = new URLEndpointListener(config); _listener.Port.Should().Be(0, "Listener's port should be 0 because the listener has not yet started."); _listener.Urls.Count.Should().Be(0, "Listener's Urls count should be 0 because the listener has not yet started."); _listener.TlsIdentity.Should().BeNull("Listener's TlsIdentity should be null because the listener has not yet started."); _listener.Status.ConnectionCount.Should().Be(0, "Listener's connection count should be 0 because the listener has not yet started."); _listener.Status.ActiveConnectionCount.Should().Be(0, "Listener's active connection count should be 0 because the listener has not yet started."); try { _listener.Start(); } catch (CouchbaseLiteException e) { if (expectedErrCode == 0) { throw; } e.Domain.Should().Be(expectedErrDomain); e.Error.Should().Be(expectedErrCode); } catch (CouchbaseNetworkException ne) { if (expectedErrCode == 0) { throw; } ne.Domain.Should().Be(expectedErrDomain); ne.Error.Should().Be(expectedErrCode); } return(_listener); }
private void ExecuteStartListenerCommand() { if (!IsListening) { try { CreateListener(); //tag::StartListener[] _urlEndpointListener.Start(); //end::StartListener[] if (CoreApp.IsDebugging) { PrintListener(_urlEndpointListener); } } catch (Exception ex) { Debug.WriteLine($"Fail starting listener : {ex}"); return; } IsListening = true; Broadcast(); ListenerStatus = $"Listening on {_urlEndpointListener.Urls[0]}"; } else { //tag::StopListener[] _urlEndpointListener.Stop(); _urlEndpointListener.Dispose(); //end::StopListener[] IsListening = false; ListenerStatus = ""; } }
private URLEndpointListener CreateNewListener() { var config = new URLEndpointListenerConfiguration(OtherDb); var listener = new URLEndpointListener(config); listener.Start(); return(_listener); }
private URLEndpointListener CreateNewListener() { var config = new URLEndpointListenerConfiguration(OtherDb); config.Port = 0; config.DisableTLS = false; var listener = new URLEndpointListener(config); listener.Start(); return(_listener); }
public void TestBusyPort() { _listener = CreateListener(false, false); _listener.Start(); //listener1 uses the same port as listener var config = CreateListenerConfig(false, false, stopListener: false); var listener1 = Listen(config, GetEADDRINUSECode(), CouchbaseLiteErrorType.POSIX, stopListener: false); _listener.Stop(); listener1.Stop(); listener1.Dispose(); }