Beispiel #1
0
 /// <summary><see cref="Ch.Elca.Iiop.IServerConnectionListener.StartListening"</summary>
 public int StartListening(IPAddress bindTo, int listeningPortSuggestion, out TaggedComponent[] taggedComponents) {
     if (!m_isInitalized) {
         throw CreateNotInitalizedException();
     }
     if (m_listenerActive) {
         throw CreateAlreadyListeningException();
     }
     int resultPort = listeningPortSuggestion;
                 
     m_listener = new SecureTcpListener(bindTo, listeningPortSuggestion, m_sslOpts);
     // start TCP-Listening
     m_listener.Start();
     if (listeningPortSuggestion == 0) {
         // auto-assign port selected
         resultPort = ((IPEndPoint)m_listener.LocalEndpoint).Port;
     }
     
     if (m_isSecured) {
         // create ssl tagged component
         SSLComponentData sslData = new SSLComponentData(Convert.ToInt16(m_supportedOptions),
                                                         Convert.ToInt16(m_requiredOptions),
                                                         (short)resultPort);
         taggedComponents = new TaggedComponent[] {
             new TaggedComponent(TAG_SSL_SEC_TRANS.ConstVal,
                                 m_codec.encode_value(sslData)) };
         resultPort = 0; // don't allow unsecured connections -> port is in ssl components
     } else {
         taggedComponents = new TaggedComponent[0];
     }
     
     m_listenerActive = true;
     // start the handler thread
     m_listenerThread.Start();
     return resultPort;
 }