private void GetDebuggingPageUrl()
        {
            if (!string.IsNullOrEmpty(DebuggerSecureKey))
            {
                WebSite site = GetWebSite();

                if (null != site)
                {
                    if (site.Bindings.Length > 0)
                    {
                        ServerBinding serverBinding = site.Bindings[0];

                        DebuggingPageUrl = string.Format(
                            "{0}://{1}:{2}{3}/?ape_debug=secure-key-{4}_{5}",
                            serverBinding.Protocol,
                            serverBinding.Host ?? serverBinding.IP,
                            serverBinding.Port,
                            folderPath.SelectedFile.Replace('\\', '/'),
                            DebuggerSecureKey,
                            DebuggerSessionId
                            );
                    }
                }
            }

            // TODO: throw error if url is empty
        }
Esempio n. 2
0
        private void GetApeDebuggerUrl()
        {
            if (RE_APE_DEBUGGER_ENABLED.IsMatch(htaccessContent.Text))
            {
                // already disabled, enable it!
                ApeDebuggerSecureKey = RE_APE_DEBUGGER_ENABLED.Match(htaccessContent.Text).Groups[2].Value;
            }

            ApeDebuggerUrl.Value = "";
            if (!string.IsNullOrEmpty(ApeDebuggerSecureKey))
            {
                WebSite site = ES.Services.WebServers.GetWebSite(PanelRequest.ItemID);

                if (null != site)
                {
                    if (site.Bindings.Length > 0)
                    {
                        ServerBinding serverBinding = site.Bindings[0];
                        ApeDebuggerUrl.Value = string.Format("{0}://{1}:{2}{3}?ape_debug={4}",
                                                             serverBinding.Protocol,
                                                             serverBinding.Host ?? serverBinding.IP,
                                                             serverBinding.Port,
                                                             folderPath.SelectedFile.Replace('\\', '/'),
                                                             ApeDebuggerSecureKey
                                                             );
                    }
                }
            }
        }
        private void GetDebuggerUrl()
        {
            // TODO: interactive binding selection

            if (!string.IsNullOrEmpty(DebuggerSecureKey))
            {
                WebSite site = GetWebSite();

                if (null != site)
                {
                    if (site.Bindings.Length > 0)
                    {
                        ServerBinding serverBinding = site.Bindings[0];
                        DebuggerUrl = string.Format(
                            "{0}://{1}:{2}{3}/_ape_start_developer_session?ape_debug=secure-key-{4}_{5}",
                            serverBinding.Protocol,
                            serverBinding.Host ?? serverBinding.IP,
                            serverBinding.Port,
                            folderPath.SelectedFile.Replace('\\', '/'),
                            DebuggerSecureKey,
                            DebuggerSessionId
                            );
                        DebuggerUrlField.Value = DebuggerUrl;
                    }
                }
            }

            // TODO: throw error if debugger url is empty
        }
Esempio n. 4
0
 public void ConstructionTests()
 {
     ServerBinding serverLoopback = new ServerBinding("mongo://localhost");
     DBBinding b1 = new DBBinding(serverLoopback, "db");
     ServerBinding serverLoopback2 = new ServerBinding("mongo://localhost/db2/test/goat");
     DBBinding b2 = new DBBinding(serverLoopback, "db");
     Assert.That(b1, Is.EqualTo(b2), "should have replaced the database portion if specified");
 }
        public void ConstructionTests()
        {
            //Strings
            ServerBinding loopback = new ServerBinding("mongo://localhost");
            ServerBinding ipv4loopback = new ServerBinding("mongo://127.0.0.1");
            ServerBinding ipv6loopback = new ServerBinding("mongo://[::1]");
            ServerBinding loopbackport = new ServerBinding("mongo://localhost:1910");
            ServerBinding ipv4loopbackport = new ServerBinding("mongo://127.0.0.1:1910");
            ServerBinding ipv6loopbackport = new ServerBinding("mongo://[::1]:1910");

            Assert.That(loopbackport, Is.Not.EqualTo(loopback), "should differ by port number");
            Assert.That(ipv4loopbackport, Is.Not.EqualTo(ipv4loopback), "should differ by port number");
            Assert.That(ipv6loopbackport, Is.Not.EqualTo(ipv6loopback), "should differ by port number");

            ServerBinding host_port_dbname = new ServerBinding("localhost", 1910);

            Assert.That(loopbackport, Is.EqualTo(host_port_dbname), "explicit host + port + db should still be equivalent");
        }
Esempio n. 6
0
 /// <remarks/>
 public void UpdateSiteBindingsAsync(string siteId, ServerBinding[] bindings, object userState) {
     if ((this.UpdateSiteBindingsOperationCompleted == null)) {
         this.UpdateSiteBindingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateSiteBindingsOperationCompleted);
     }
     this.InvokeAsync("UpdateSiteBindings", new object[] {
                 siteId,
                 bindings}, this.UpdateSiteBindingsOperationCompleted, userState);
 }
		private void SyncWebSiteBindingsChanges(string siteId, ServerBinding[] bindings)
		{
			// ensure site bindings
			if (bindings == null || bindings.Length == 0)
				throw new Exception("SiteServerBindingsEmpty");
			
			using (var srvman = GetServerManager())
			{
				var iisObject = srvman.Sites[siteId];
				//
				lock (((ICollection)iisObject.ChildElements).SyncRoot)
				{
                    // remove all "http" bindings
                    int i = 0;
                    while (i < iisObject.Bindings.Count)
                    {
                        if (String.Equals(iisObject.Bindings[i].Protocol, Uri.UriSchemeHttp, StringComparison.InvariantCultureIgnoreCase))
                        {
                            iisObject.Bindings.RemoveAt(i);
                            continue;
                        }
                        else
                        {
                            i++;
                        }
                    }

					// Create HTTP bindings received
					foreach (var serverBinding in bindings)
					{
						var bindingInformation = String.Format("{0}:{1}:{2}", serverBinding.IP, serverBinding.Port, serverBinding.Host);
						iisObject.Bindings.Add(bindingInformation, Uri.UriSchemeHttp);
					}
				}
				//
				srvman.CommitChanges();
			}
		}
Esempio n. 8
0
 /// <remarks/>
 public System.IAsyncResult BeginUpdateSiteBindings(string siteId, ServerBinding[] bindings, System.AsyncCallback callback, object asyncState) {
     return this.BeginInvoke("UpdateSiteBindings", new object[] {
                 siteId,
                 bindings}, callback, asyncState);
 }
Esempio n. 9
0
 /// <remarks/>
 public void UpdateSiteBindingsAsync(string siteId, ServerBinding[] bindings) {
     this.UpdateSiteBindingsAsync(siteId, bindings, null);
 }
Esempio n. 10
0
		/// <summary>
		/// Updates site's bindings with supplied ones.
		/// </summary>
		/// <param name="siteId">Site's id to update bindings for.</param>
		/// <param name="bindings">Bindings information.</param>
        public override void UpdateSiteBindings(string siteId, ServerBinding[] bindings)
		{
			this.webObjectsSvc.UpdateSiteBindings(siteId, bindings);
		}
Esempio n. 11
0
 public void UpdateSiteBindings(string siteId, ServerBinding[] bindings) {
     this.Invoke("UpdateSiteBindings", new object[] {
                 siteId,
                 bindings});
 }
		private void SyncWebSiteBindingsChanges(string siteId, ServerBinding[] bindings)
		{
			// ensure site bindings
			if (bindings == null || bindings.Length == 0)
				throw new Exception("SiteServerBindingsEmpty");
			
			using (var srvman = GetServerManager())
			{
				var iisObject = srvman.Sites[siteId];
				//
				lock (((ICollection)iisObject.ChildElements).SyncRoot)
				{
					var itemsToRemove = new List<Binding>();
					// Determine HTTP bindings to remove
					foreach (Binding element in iisObject.Bindings)
					{
						if (String.Equals(element.Protocol, Uri.UriSchemeHttp))
						{
							itemsToRemove.Add(element);
						}
					}
					// Remove bindings
					while (itemsToRemove.Count > 0)
					{
						iisObject.Bindings.Remove(itemsToRemove[0]);
						itemsToRemove.RemoveAt(0);
					}
					// Create HTTP bindings received
					foreach (var serverBinding in bindings)
					{
						var bindingInformation = String.Format("{0}:{1}:{2}", serverBinding.IP, serverBinding.Port, serverBinding.Host);
						iisObject.Bindings.Add(bindingInformation, Uri.UriSchemeHttp);
					}
				}
				//
				srvman.CommitChanges();
			}
		}
Esempio n. 13
0
 /// <remarks/>
 public void UpdateSiteBindingsAsync(string siteId, ServerBinding[] bindings, bool emptyBindingsAllowed)
 {
     this.UpdateSiteBindingsAsync(siteId, bindings, emptyBindingsAllowed, null);
 }
Esempio n. 14
0
 protected override void EndSession(TcpClient clientProtocol, ServerBinding binding)
 {
     Console.WriteLine("Client Disconnected");
     base.EndSession(clientProtocol, binding);
 }
Esempio n. 15
0
	    private void CheckFtpServerBindings(ServerBinding[] bindings)
	    {
		    if (bindings == null || bindings.Length == 0)
			    throw new ArgumentException("Provide FTP site server bindings", "FtpSite.Bindings");

		    // check for server bindings
		    ManagementObjectCollection objSites = wmi.ExecuteQuery("SELECT * FROM IIsFtpServerSetting");
		    foreach (ManagementObject objProbSite in objSites)
		    {
			    string probSiteId = (string)objProbSite.Properties["Name"].Value;
			    string probSiteComment = (string)objProbSite.Properties["ServerComment"].Value;

			    // check server bindings
			    ManagementBaseObject[] objProbBinings = (ManagementBaseObject[])objProbSite.Properties["ServerBindings"].Value;
			    if (objProbBinings != null)
			    {
				    // check this binding against provided ones
				    foreach (ManagementBaseObject objProbBinding in objProbBinings)
				    {
					    string siteIP = (string)objProbBinding.Properties["IP"].Value;
					    string sitePort = (string)objProbBinding.Properties["Port"].Value;

					    for (int i = 0; i < bindings.Length; i++)
					    {
						    if (siteIP == bindings[i].IP &&
							    sitePort == bindings[i].Port)
							    throw new Exception(String.Format("The FTP site '{0}' ({1}) already uses provided IP and port.",
								    probSiteComment, probSiteId));
					    }
				    }
			    }
		    }
	    }
Esempio n. 16
0
 protected override void StartSession(TcpClient clientProtocol, ServerBinding binding)
 {
     Console.WriteLine("Session Started");
     MockClients.Add(clientProtocol);
     base.StartSession(clientProtocol, binding);
 }
Esempio n. 17
0
 /// <summary>
 /// Updates site's bindings with supplied ones.
 /// </summary>
 /// <param name="siteId">Site's id to update bindings for.</param>
 /// <param name="bindings">Bindings information.</param>
 public override void UpdateSiteBindings(string siteId, ServerBinding[] bindings, bool emptyBindingsAllowed)
 {
     this.webObjectsSvc.UpdateSiteBindings(siteId, bindings, emptyBindingsAllowed);
 }
		public void UpdateSiteBindings(string siteId, ServerBinding[] bindings, bool emptyBindingsAllowed)
		{
            using (ServerManager srvman = GetServerManager())
            {
                // Ensure web site exists
                if (!SiteExists(srvman, siteId))
                    return;
            }
			//
            SyncWebSiteBindingsChanges(siteId, bindings, emptyBindingsAllowed);
		}
		public void UpdateSiteBindings(string siteId, ServerBinding[] bindings)
		{
			// Ensure web site exists
			if (!SiteExists(siteId))
				return;
			//
			SyncWebSiteBindingsChanges(siteId, bindings);
		}
Esempio n. 20
0
        public virtual void UpdateSiteBindings(string siteId, ServerBinding[] bindings)
        {
            ManagementObject objSite = wmi.GetObject(String.Format("IIsWebServerSetting='{0}'", siteId));

            // update bindings
            ManagementClass clsBinding = wmi.GetClass("ServerBinding");
            ManagementObject[] objBinings = new ManagementObject[bindings.Length];

            for (int i = 0; i < objBinings.Length; i++)
            {
                objBinings[i] = clsBinding.CreateInstance();
                objBinings[i]["Hostname"] = bindings[i].Host;
                objBinings[i]["IP"] = bindings[i].IP;
                objBinings[i]["Port"] = bindings[i].Port;
            }
            objSite.Properties["ServerBindings"].Value = objBinings;
            objSite.Put();
        }
Esempio n. 21
0
        private void SaveDomain(FtpSite site, ServerState state)
        {
            StringBuilder sb = new StringBuilder();

            // append header
            sb.Append("[Domain]\n");

            // build IP bindings
            if (site.Bindings != null)
            {
                for (int i = 0; i < site.Bindings.Length; i++)
                {
                    ServerBinding binding = site.Bindings[i];
                    sb.Append("IP").Append(i).Append("=")
                    .Append((binding.IP == "" || binding.IP == "*") ? "*" : binding.IP).Append(",")
                    .Append(binding.Port).Append(",\n");
                }
            }

            // site state
            string domainStatus = "0"; // online "1" - closed, "2" - offline

            switch (state)
            {
            case ServerState.Continuing: domainStatus = "0"; break; // online

            case ServerState.Paused: domainStatus = "1"; break;     // closed

            case ServerState.Started: domainStatus = "0"; break;    // online

            case ServerState.Stopped: domainStatus = "2"; break;    // offline

            default: domainStatus = "0"; break;                     // online
            }

            sb.Append("Status=").Append(domainStatus).Append("\n");

            // footer (default settings)
            sb.Append(@"LogList0=Default,W3C,""-1,$DOM_NAME-$year-$mm-$dd.log,0""
LogList1=Transfers,W3C,""-1,$DOM_NAME-$year-$mm-$dd.log,0""
LogList2=Bandwidth,W3C,""-1,$DOM_NAME-$year-$mm-$dd.log,0""
MaxClients=0
MaxConnectionsPerIP=0
Running=1392
StatsCurrentlyLogged=0
CanDeleteReadOnly=-1
ChangeDataIPDependingOnClientIP=-1
DontLimitSpeedForLAN=-1
DontLimitTransferForLAN=-1
HammerResetOnLogin=-1
LogCacheEnabled=-1
LogEnabled=-1
NoCompressionForLAN=-1
ResolveIP=-1
TransferLimitType=never");

            // save domain file
            WriteTextFile(GetDomainSettingsPath(site.Name), sb.ToString());

            // flush cache
            FlushCache();
        }
Esempio n. 22
0
 public void UpdateSiteBindings(string siteId, ServerBinding[] bindings, bool emptyBindingsAllowed)
 {
     this.Invoke("UpdateSiteBindings", new object[] {
                 siteId,
                 bindings,
                 emptyBindingsAllowed});
 }