TSystems.RELOAD.Enroll.ReloadConfigResolve.SimpleNodeIdRequest C# (CSharp) Method

SimpleNodeIdRequest() public method

public SimpleNodeIdRequest ( ) : void
return void
    public void SimpleNodeIdRequest() {
      try {

        if (EnrollmentserverAvailable) {
          HttpWebRequest httpWebPost;

          /* get node id */
          if (m_ReloadConfig.IMSI != null && m_ReloadConfig.IMSI != "")
            httpWebPost = (HttpWebRequest)WebRequest.Create(new Uri(EnrollmentUrl + "?type=imsi&IMSI=" + m_ReloadConfig.IMSI));
          else
            httpWebPost = (HttpWebRequest)WebRequest.Create(new Uri(EnrollmentUrl + "?type=vnode"));

          /* As of RELOAD draft, use POST */
          httpWebPost.Method = "POST";

#if !WINDOWS_PHONE
          // Additional HttpWebRequest parameters are not supported
          httpWebPost.Timeout = ReloadGlobals.WEB_REQUEST_TIMEOUT;
#endif

          HttpWebResponse httpPostResponse = null;
          //Send Web-Request and receive a Web-Response
          httpPostResponse = (HttpWebResponse)httpWebPost.GetResponse();
          //Translate data from the Web-Response to a string
          Stream dataStream2 = httpPostResponse.GetResponseStream();

          TextReader tr_xml2 = new StreamReader(dataStream2, Encoding.UTF8);
          string response = tr_xml2.ReadToEnd();

          string[] words = response.Split(':', ',', '/', '@');

          if (m_ReloadConfig.IMSI != null && m_ReloadConfig.IMSI != "") {
            m_ReloadConfig.E64_Number = words[1];

            ReloadConfigResolve res = new ReloadConfigResolve(m_ReloadConfig);
            m_ReloadConfig.SipUri = res.ResolveNaptr(m_ReloadConfig.E64_Number);

            if (m_ReloadConfig.SipUri == null) {
              m_ReloadConfig.Logger(ReloadGlobals.TRACEFLAGS.T_WARNING, "DNS Enum fallback to sip uri analysis");
              m_ReloadConfig.SipUri = m_ReloadConfig.E64_Number;
              m_ReloadConfig.SipUri = m_ReloadConfig.SipUri.TrimStart(' ');
              m_ReloadConfig.SipUri = m_ReloadConfig.SipUri.Replace(" ", "");
              m_ReloadConfig.SipUri = m_ReloadConfig.SipUri + "@" + m_ReloadConfig.OverlayName;
            }

            m_ReloadConfig.LocalNodeID = new NodeId(HexStringConverter.ToByteArray(words[7]));

            m_ReloadConfig.Logger(ReloadGlobals.TRACEFLAGS.T_TOPO, String.Format("Enrollment Server assigned: NodeId = '{0}' SipUri = '{1}' ", m_ReloadConfig.LocalNodeID, m_ReloadConfig.SipUri));
          }
          else {
            m_ReloadConfig.LocalNodeID = new NodeId(HexStringConverter.ToByteArray(words[4]));
            m_ReloadConfig.Logger(ReloadGlobals.TRACEFLAGS.T_TOPO, String.Format("Enrollment Server assigned: NodeId = '{0}'", m_ReloadConfig.LocalNodeID));
          }
        }
      }
      catch (Exception ex) {
        m_ReloadConfig.Logger(ReloadGlobals.TRACEFLAGS.T_ERROR, "SimpleNodeIdRequest: " + ex.Message);
      }
    }

Usage Example

Esempio n. 1
0
    public bool Init() {

      try {
        if (ReloadGlobals.IgnoreSSLErrors)
          IgnoreSSLErrors();

        m_transport = new MessageTransport();

        if (ReloadGlobals.TLS)
          m_interface_flm = new ReloadFLM(ReloadConfig);
        else
          m_interface_flm = new SimpleFLM(ReloadConfig);

        ReloadConfig.Statistics.SetParams(m_interface_flm);
        m_interface_flm.ReloadFLMEventHandler += 
          new ReloadFLMEvent(m_transport.rfm_ReloadFLMEventHandler);

        ReloadConfig.State = ReloadConfig.RELOAD_State.Init;
        stateUpdates(ReloadConfig.RELOAD_State.Init);

        ReloadConfigResolve resolve = new ReloadConfigResolve(ReloadConfig);

        resolve.ReadConfig();
        if (ReloadGlobals.TLS)
          resolve.EnrollmentProcedure();
        else
          resolve.SimpleNodeIdRequest();

        m_interface_flm.Init();
        m_ReloadConfig.AccessController = new AccessController(m_ReloadConfig);
        m_topology = new TopologyPlugin(this);
        if (!m_topology.Init(this))
          return false;

        m_forwarding = new ForwardingLayer(this);
        m_transport.Init(this);

        //ReloadConfig.State = ReloadConfig.RELOAD_State.Configured;
        //stateUpdates(ReloadConfig.RELOAD_State.Configured);
        BootStrapConfig();

        m_ReloadConfig.StartJoining = DateTime.Now;
        if (m_ReloadConfig.IamClient)
          m_ReloadConfig.StartJoinMobile = DateTime2.Now;
        if (!ReloadConfig.IsBootstrap)
          Arbiter.Activate(ReloadConfig.DispatcherQueue, 
            new IterativeTask<List<BootstrapServer>>(m_BootstrapServerList,
            m_transport.PreJoinProdecure));

//        m_worker_thread.ReportProgress(100); --joscha
        InitUsageManager();
        ReloadConfig.State = ReloadConfig.RELOAD_State.Configured;
        stateUpdates(ReloadConfig.RELOAD_State.Configured);

        /* reporting service */
        Arbiter.Activate(ReloadConfig.DispatcherQueue, new IterativeTask(Reporting));
        /* chord-ping-interval */
        Arbiter.Activate(ReloadConfig.DispatcherQueue, new IterativeTask(Maintenance));
        /* chord-update-interval */
        Arbiter.Activate(ReloadConfig.DispatcherQueue, new IterativeTask(UpdateCycle));
        Arbiter.Activate(ReloadConfig.DispatcherQueue, new IterativeTask(CommandCheckTask));
      }
      catch (Exception ex) {
        ReloadConfig.Logger(ReloadGlobals.TRACEFLAGS.T_ERROR, "Init: " + ex.Message);
      }
      return true;
    }