Exemplo n.º 1
0
        private void threadSpinCore()
        {
            TcpClient     newsock = null;
            ErlConnection conn;

            m_Node.OnNodeStatusChange(m_Node.NodeName, true, null);

            while (m_Active)
            {
                conn = null;

                try
                {
                    newsock = m_Sock.AcceptTcpClient();
                }
                catch (System.Exception e)
                {
                    m_Node.OnNodeStatusChange(m_Node.NodeName, false, e);
                    break;
                }

                try
                {
                    conn = new ErlConnection(m_Node, newsock);
                    m_Node.Add(conn);
                }
                catch (ErlAuthException e)
                {
                    m_Node.OnConnectAttempt(conn != null ? conn.Name : ErlAtom.Null, Direction.Inbound, e);
                    closeSock(newsock);
                }
                catch (ErlException e)
                {
                    m_Node.OnConnectAttempt(conn != null ? conn.Name : ErlAtom.Null, Direction.Inbound, e);
                    closeSock(newsock);
                }
                catch (Exception e)
                {
                    closeSock(newsock);
                    closeSock(m_Sock);
                    m_Node.OnNodeStatusChange(m_Node.NodeName, false, e);
                    break;
                }
            }

            App.Log.Write(Log.MessageType.Info,
                          StringConsts.ERL_STOPPING_SERVER.Args(m_Node.NodeLongName, "Listener"));

            stop();
            m_Thread = null;
        }
Exemplo n.º 2
0
    private void threadSpinCore()
    {
      TcpClient newsock = null;
      ErlConnection conn;

      m_Node.OnNodeStatusChange(m_Node.NodeName, true, null);

      while (m_Active)
      {
        conn = null;

        try
        {
          newsock = m_Sock.AcceptTcpClient();
        }
        catch (System.Exception e)
        {
          m_Node.OnNodeStatusChange(m_Node.NodeName, false, e);
          break;
        }

        try
        {
          conn = new ErlConnection(m_Node, newsock);
          m_Node.Add(conn);
        }
        catch (ErlAuthException e)
        {
          m_Node.OnConnectAttempt(conn != null ? conn.Name : ErlAtom.Null, Direction.Inbound, e);
          closeSock(newsock);
        }
        catch (ErlException e)
        {
          m_Node.OnConnectAttempt(conn != null ? conn.Name : ErlAtom.Null, Direction.Inbound, e);
          closeSock(newsock);
        }
        catch (Exception e)
        {
          closeSock(newsock);
          closeSock(m_Sock);
          m_Node.OnNodeStatusChange(m_Node.NodeName, false, e);
          break;
        }
      }

      App.Log.Write(Log.MessageType.Info,
          StringConsts.ERL_STOPPING_SERVER.Args(m_Node.NodeLongName, "Listener"));

      stop();
      m_Thread = null;
    }