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);
}
}
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; }