123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537 |
- /*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- namespace OpenSim.GUI
- {
- public partial class Main : Form
- {
- public ProcessManager proc_OpenSim;
- public ProcessManager proc_UserServer;
- public ProcessManager proc_GridServer;
- public ProcessManager proc_AssetServer;
- public Main()
- {
- InitializeComponent();
- }
- private void Main_Load(object sender, EventArgs e)
- {
- txtInputUserServer.KeyPress += new KeyPressEventHandler(txtInputUserServer_KeyPress);
- txtInputGridServer.KeyPress += new KeyPressEventHandler(txtInputGridServer_KeyPress);
- txtInputAssetServer.KeyPress += new KeyPressEventHandler(txtInputAssetServer_KeyPress);
- txtInputRegionServer.KeyPress += new KeyPressEventHandler(txtInputRegionServer_KeyPress);
- tabLogs.Selected += new TabControlEventHandler(tabLogs_Selected);
- UpdateTabVisibility();
- }
- void tabLogs_Selected(object sender, TabControlEventArgs e)
- {
- if (e.TabPage == tabUserServer)
- txtInputUserServer.Focus();
- if (e.TabPage == tabGridServer)
- txtInputGridServer.Focus();
- if (e.TabPage == tabAssetServer)
- txtInputAssetServer.Focus();
- if (e.TabPage == tabRegionServer)
- txtInputRegionServer.Focus();
- }
- void txtInputUserServer_KeyPress(object sender, KeyPressEventArgs e)
- {
- if (e.KeyChar == 13)
- {
- // We got a command
- e.Handled = true;
- proc_UserServer.StandardInput.WriteLine(txtInputUserServer.Text + "\r\n");
- txtInputUserServer.Text = "";
- }
- }
- void txtInputGridServer_KeyPress(object sender, KeyPressEventArgs e)
- {
- if (e.KeyChar == 13)
- {
- // We got a command
- e.Handled = true;
- proc_GridServer.StandardInput.WriteLine(txtInputGridServer.Text + "\r\n");
- txtInputGridServer.Text = "";
- }
- }
- void txtInputAssetServer_KeyPress(object sender, KeyPressEventArgs e)
- {
- if (e.KeyChar == 13)
- {
- // We got a command
- e.Handled = true;
- proc_AssetServer.StandardInput.WriteLine(txtInputAssetServer.Text + "\r\n");
- txtInputAssetServer.Text = "";
- }
- }
- void txtInputRegionServer_KeyPress(object sender, KeyPressEventArgs e)
- {
- if (e.KeyChar == 13)
- {
- // We got a command
- e.Handled = true;
- proc_OpenSim.StandardInput.WriteLine(txtInputRegionServer.Text + "\r\n");
- txtInputRegionServer.Text = "";
- }
- }
- private void btnStart_Click(object sender, EventArgs e)
- {
- noProbe1.Checked = true;
- multiple1.Checked = true;
- loginuri1.Checked = true;
- login1.Checked = true;
- //
- // THIS PART NEEDS TO BE MOVED TO A SEPARATE THREAD OR A TIMER OF SOME SORT
- // should not block on wait
- // ALSO - IF SOME SERVICES ARE NOT CONFIGURED, POP UP CONFIGURATION BOX FOR THAT SERVICE!
- //
- btnStart.Enabled = false;
- btnStop.Enabled = false;
- if (rbGridServer.Checked)
- {
- // Start UserServer
- proc_UserServer = new ProcessManager("OpenSim.Grid.UserServer.exe", "");
- txtMainLog.AppendText("Starting: User server" + "\r\n");
- proc_UserServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived);
- proc_UserServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_UserServer_DataReceived);
- proc_UserServer.StartProcess();
- System.Threading.Thread.Sleep(3000);
- // Start GridServer
- proc_GridServer = new ProcessManager("OpenSim.Grid.GridServer.exe", "");
- txtMainLog.AppendText("Starting: Grid server" + "\r\n");
- proc_GridServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived);
- proc_GridServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_GridServer_DataReceived);
- proc_GridServer.StartProcess();
- System.Threading.Thread.Sleep(3000);
- // Start AssetServer
- proc_AssetServer = new ProcessManager("OpenSim.Grid.AssetServer.exe", "");
- txtMainLog.AppendText("Starting: Asset server" + "\r\n");
- proc_AssetServer.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived);
- proc_AssetServer.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_AssetServer_DataReceived);
- proc_AssetServer.StartProcess();
- System.Threading.Thread.Sleep(3000);
- }
- // Start OpenSim
- string p = "";
- if (rbGridServer.Checked)
- p = "-gridmode=true";
- proc_OpenSim = new ProcessManager("OpenSim.EXE", p);
- txtMainLog.AppendText("Starting: OpenSim (Region server)" + "\r\n");
- proc_OpenSim.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived);
- proc_OpenSim.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(proc_OpenSim_DataReceived);
- proc_OpenSim.StartProcess();
- btnStart.Enabled = false;
- btnStop.Enabled = true;
- }
- public delegate void AppendText(string Text);
- void proc_UserServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
- {
- this.Invoke(new AppendText(txtUserServer.AppendText), new object[] { e.Data + "\r\n" });
- this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "UserServer: " + e.Data + "\r\n" });
- }
- void proc_GridServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
- {
- this.Invoke(new AppendText(txtGridServer.AppendText), new object[] { e.Data + "\r\n" });
- this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "GridServer: " + e.Data + "\r\n" });
- }
- void proc_AssetServer_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
- {
- this.Invoke(new AppendText(txtAssetServer.AppendText), new object[] { e.Data + "\r\n" });
- this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "AssetServer: " + e.Data + "\r\n" });
- }
- void proc_OpenSim_DataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
- {
- this.Invoke(new AppendText(txtOpenSim.AppendText), new object[] { e.Data + "\r\n" });
- this.Invoke(new AppendText(txtMainLog.AppendText), new object[] { "OpenSim: " + e.Data + "\r\n" });
- }
- private void btnStop_Click(object sender, EventArgs e)
- {
- btnStart.Enabled = false;
- btnStop.Enabled = false;
- Stop();
- btnStart.Enabled = true;
- btnStop.Enabled = false;
- }
- private void clear1_Click(object sender, EventArgs e)
- {
- noProbe1.Checked = false; multiple1.Checked = false; loginuri1.Checked = false;
- noMultiple1.Checked = false; korean1.Checked = false; spanish1.Checked = false;
- ignorepixeldepth1.Checked = false; nothread1.Checked = false; safe1.Checked = false;
- noconsole1.Checked = false; log1.Checked = false; helperuri1.Checked = false;
- autologin1.Checked = false; dialog1.Checked = false; previous1.Checked = false;
- simple1.Checked = false; noinvlib1.Checked = false; noutc1.Checked = false;
- debugst1.Checked = false; local1.Checked = false; purge1.Checked = false;
- nofmod1.Checked = false; nosound1.Checked = false; noaudio1.Checked = false;
- url1.Checked = false; port1.Checked = false; drop1.Checked = false;
- inbw1.Checked = false; outbw1.Checked = false; settings1.Checked = false;
- logfile1.Checked = false; yield1.Checked = false; techTag1.Checked = false;
- quitAfter1.Checked = false; loginuri1.Checked = false; set1.Checked = false;
- errmask1.Checked = false; raw1.Checked = false; skin1.Checked = false;
- user1.Checked = false; login1.Checked = false;
- }
- private void Stop()
- {
- if (proc_UserServer != null)
- {
- txtMainLog.AppendText("Shutting down UserServer. CPU time used: " + proc_UserServer.TotalProcessorTime.ToString() + "\r\n");
- proc_UserServer.StopProcess();
- proc_UserServer = null;
- }
- if (proc_GridServer != null)
- {
- txtMainLog.AppendText("Shutting down GridServer. CPU time used: " + proc_GridServer.TotalProcessorTime.ToString() + "\r\n");
- proc_GridServer.StopProcess();
- proc_GridServer = null;
- }
- if (proc_AssetServer != null)
- {
- txtMainLog.AppendText("Shutting down AssetServer. CPU time used: " + proc_AssetServer.TotalProcessorTime.ToString() + "\r\n");
- proc_AssetServer.StopProcess();
- proc_AssetServer = null;
- }
- if (proc_OpenSim != null)
- {
- txtMainLog.AppendText("Shutting down OpenSim. CPU time used: " + proc_OpenSim.TotalProcessorTime.ToString() + "\r\n");
- proc_OpenSim.StopProcess();
- proc_OpenSim = null;
- }
- }
- private void UpdateTabVisibility()
- {
- if (rbStandAloneMode.Checked)
- {
- if (tabLogs.TabPages.Contains(tabUserServer))
- tabLogs.TabPages.Remove(tabUserServer);
- if (tabLogs.TabPages.Contains(tabGridServer))
- tabLogs.TabPages.Remove(tabGridServer);
- if (tabLogs.TabPages.Contains(tabAssetServer))
- tabLogs.TabPages.Remove(tabAssetServer);
- }
- else
- {
- if (!tabLogs.TabPages.Contains(tabUserServer))
- tabLogs.TabPages.Add(tabUserServer);
- if (!tabLogs.TabPages.Contains(tabGridServer))
- tabLogs.TabPages.Add(tabGridServer);
- if (!tabLogs.TabPages.Contains(tabAssetServer))
- tabLogs.TabPages.Add(tabAssetServer);
- }
- }
- private void rbStandAloneMode_CheckedChanged(object sender, EventArgs e)
- {
- UpdateTabVisibility();
- }
- private void rbGridRegionMode_CheckedChanged(object sender, EventArgs e)
- {
- UpdateTabVisibility();
- }
- private void rbGridServer_CheckedChanged(object sender, EventArgs e)
- {
- UpdateTabVisibility();
- }
- private int counter;
- private void Exit()
- {
- counter = 0;
- timer1.Interval = 600;
- timer1.Enabled = true;
- this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
- }
- private void timer1_Tick(object sender, System.EventArgs e)
- {
- if (counter >= 10)
- {
- timer1.Enabled = false;
- counter = 0;
- Application.Exit();
- }
- else
- {
- counter = counter + 1;
- }
- }
- private void exitToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (proc_UserServer != null || proc_GridServer != null || proc_AssetServer != null || proc_OpenSim != null)
- {
- label6.Text = "Stopping server(s) and waiting to safely close..............";
- Stop();
- Exit();
- }
- else
- {
- Application.Exit();
- }
- }
- /// <summary>
- /// CLIENT SECTION
- /// </summary>
- string exeString;
- string exeArgs;
- string usrsvr;
- string error = "Reconsider your commandline choices, you have opposing values selected!";
- private void label6_Click(object sender, EventArgs e)
- {
- label6.Text = clientBox1.Text;
- }
- private void errorSwitches()
- {
- MessageBox.Show(error);
- label6.Text = error;
- }
- bool exists;
- private void Launch1_Click(object sender, EventArgs e)
- {
- if (exists = System.IO.File.Exists(clientBox1.Text + exeBox1.Text))
- {
- executeClient();
- }
- else
- {
- MessageBox.Show("FILE DOES NOT EXIST!!!");
- label6.Text = "FILE DOES NOT EXIST!!!";
- }
- }
- private void NATfix()
- {
- }
- private void executeClient()
- {
- label6.Text = "";
- exeArgs = "";
- exeString = clientBox1.Text;
- exeString = exeString += exeBox1.Text;
- if (multiple1.Checked == true && noMultiple1.Checked == true) errorSwitches();
- else if (korean1.Checked == true && spanish1.Checked == true) errorSwitches();
- else
- {
- if (noProbe1.Checked == true) exeArgs = exeArgs += " -noprobe";
- if (multiple1.Checked == true) exeArgs = exeArgs += " -multiple";
- if (noMultiple1.Checked == true) exeArgs = exeArgs += " -nomultiple";
- if (korean1.Checked == true) exeArgs = exeArgs += " -korean";
- if (spanish1.Checked == true) exeArgs = exeArgs += " -spanish";
- if (ignorepixeldepth1.Checked == true) exeArgs = exeArgs += " -ignorepixeldepth";
- if (nothread1.Checked == true) exeArgs = exeArgs += " -nothread";
- if (safe1.Checked == true) exeArgs = exeArgs += " -safe";
- if (noconsole1.Checked == true) exeArgs = exeArgs += " -noconsole";
- if (log1.Checked == true) exeArgs = exeArgs += " -log";
- if (helperuri1.Checked == true) exeArgs = exeArgs += " -helperuri";
- if (autologin1.Checked == true) exeArgs = exeArgs += " --autologin";
- if (dialog1.Checked == true) exeArgs = exeArgs += " -dialog";
- if (previous1.Checked == true) exeArgs = exeArgs += " -previous";
- if (simple1.Checked == true) exeArgs = exeArgs += " -simple";
- if (noinvlib1.Checked == true) exeArgs = exeArgs += " -noinvlib";
- if (noutc1.Checked == true) exeArgs = exeArgs += " -noutc";
- if (debugst1.Checked == true) exeArgs = exeArgs += " -debugst";
- if (local1.Checked == true) exeArgs = exeArgs += " -local";
- if (purge1.Checked == true) exeArgs = exeArgs += " -purge";
- if (nofmod1.Checked == true) exeArgs = exeArgs += " -nofmod";
- if (nosound1.Checked == true) exeArgs = exeArgs += " -nosound";
- if (noaudio1.Checked == true) exeArgs = exeArgs += " -noaudio";
- if (url1.Checked == true)
- {
- exeArgs = exeArgs += " -url ";
- exeArgs = exeArgs += simBox1.Text;
- }
- if (port1.Checked == true)
- {
- int aPort;
- aPort = Convert.ToInt32(portBox1.Text);
- if (aPort > 13050)
- {
- portBox1.Text = "13050";
- MessageBox.Show("Enter Usable port number, defaulting to 13050.");
- }
- if(aPort < 13000)
- {
- portBox1.Text = "13000";
- MessageBox.Show("Enter Usable port number, defaulting to 13000.");
- }
- else
- {
- }
- exeArgs = exeArgs += " -port ";
- exeArgs = exeArgs += portBox1.Text;
- }
- if (drop1.Checked == true)
- {
- int aPct;
- aPct = Convert.ToInt32(dropBox1.Text);
- if (aPct > 100)
- {
- dropBox1.Text = "100";
- MessageBox.Show("Enter Usable port number, defaulting to 100.");
- }
- if (aPct < 0)
- {
- dropBox1.Text = "0";
- MessageBox.Show("Enter Usable port number, defaulting to 0.");
- }
- else
- {
- }
- exeArgs = exeArgs += " -drop ";
- exeArgs = exeArgs += dropBox1.Text;
- }
- if (inbw1.Checked == true)
- {
- exeArgs = exeArgs += " -inbw ";
- exeArgs = exeArgs += inbwBox1.Text;
- }
- if (outbw1.Checked == true)
- {
- exeArgs = exeArgs += " -outbw ";
- exeArgs = exeArgs += outbwBox1.Text;
- }
- if (settings1.Checked == true)
- {
- exeArgs = exeArgs += " -settings ";
- exeArgs = exeArgs += settingsBox1.Text;
- }
- if (logfile1.Checked == true)
- {
- exeArgs = exeArgs += " -logfile ";
- exeArgs = exeArgs += logfileBox1.Text;
- }
- if (yield1.Checked == true)
- {
- exeArgs = exeArgs += " -yield ";
- exeArgs = exeArgs += yieldBox1.Text;
- }
- if (techTag1.Checked == true)
- {
- exeArgs = exeArgs += " -techtag ";
- exeArgs = exeArgs += techtagBox1.Text;
- }
- if (quitAfter1.Checked == true)
- {
- exeArgs = exeArgs += " -quitafter ";
- exeArgs = exeArgs += quitafterBox1.Text;
- }
- if (loginuri1.Checked == true)
- {
- exeArgs = exeArgs += " -loginuri ";
- exeArgs = exeArgs += loginuriBox1.Text;
- }
- if (set1.Checked == true)
- {
- exeArgs = exeArgs += " -set ";
- exeArgs = exeArgs += setBox1.Text;
- }
- if (errmask1.Checked == true)
- {
- exeArgs = exeArgs += " -errmask ";
- exeArgs = exeArgs += errmaskBox1.Text;
- }
- if (raw1.Checked == true)
- {
- exeArgs = exeArgs += " " + rawBox1.Text;
- }
- if (skin1.Checked == true)
- {
- bool exists;
- if (exists = System.IO.File.Exists(skinBox1.Text + "skin.xml"))
- {
- exeArgs = exeArgs += " -skin ";
- exeArgs = exeArgs += skinBox1.Text + "skin.xml";
- }
- else
- {
- MessageBox.Show("SKIN FILE DOES NOT EXIST AT SPECIFIED LOCATION!!!");
- skin1.Checked = false;
- executeClient();
- }
- }
- if (user1.Checked == true)
- {
- //find actual login urls
- if (comboBox1.Text == "agni") { usrsvr = " -user " + "--agni"; }
- if (comboBox1.Text == "colo") { usrsvr = " -user " + "--colo"; }
- if (comboBox1.Text == "dmz") { usrsvr = " -user " + "--dmz"; }
- if (comboBox1.Text == "durga") { usrsvr = " -user " + "--Durga"; }
- if (comboBox1.Text == "siva") { usrsvr = " -user " + "--siva"; }
- exeArgs = exeArgs += usrsvr;
- }
- if (login1.Checked == true)
- {
- exeArgs = exeArgs += " -login ";
- exeArgs = exeArgs += firstBox1.Text + " " + lastBox1.Text + " " + passBox1.Text;
- }
- label6.Text = exeString + exeArgs;
- System.Diagnostics.Process proc = new System.Diagnostics.Process();
- proc.StartInfo.FileName = exeString;
- proc.StartInfo.Arguments = exeArgs;
- proc.StartInfo.UseShellExecute = false;
- proc.StartInfo.RedirectStandardOutput = false;
- proc.StartInfo.WorkingDirectory = clientBox1.Text;
- proc.Start();
- }
- }
- }
- }
|