So, moving away from the topic of full source disclosure, what's the point in this utility, i don't run a server, what would you otherwise use for rcon, how does this app improve on the standard method?
it's designed for server owners to be able to use rcon without having to open trem with it, so it's useless if you don't own a server/don't have rcon on it
i released this for the benefit of the community
considering it's an open source community with quite a few people running on linux distros, surely you understand the distaste most of us have for closed source software.
it is more than possible to have decent encryption with open source software.
the encryption is just a rijndael cipher, i don't want to release how i encrypted it, not the encryption, so that people can't recreate the password and use it to decrypt the encrypted data
and yes i understand the distaste of closed source software as i use linux too, but the only thing you need to recreate is the gui, all the names and such are pretty self explanatory
string Add;
bool ready = false;
UdpClient cli = new UdpClient();
private void btnSend_Click(object sender, EventArgs e)
{
btnSend.Enabled = false;
try
{
cli = new UdpClient(txtServer.Text, int.Parse(txtPort.Text));
}
catch (Exception ee)
{
MessageBox.Show("Error\n" + ee.ToString());
}
string test = "rcon " + txtPass.Text + " " +txtCmd.Text;
List<byte> bytes = new List<byte>();
for( int i = 0; i < 4; i++ )
bytes.Add((byte)255);
foreach (char c in test)
bytes.Add((byte)c);
byte[] send = new byte[bytes.Count];
for (int i = 0; i < bytes.Count; i++)
send[i] = bytes[i];
cli.Send(send, send.Length);
txtConsole.Text += "]" + txtCmd.Text;
cli.BeginReceive(new AsyncCallback(GetPackets), cli);
ready = false;
while (!ready)
Application.DoEvents();
txtConsole.Text += Add;
txtConsole.SelectionStart = txtConsole.Text.Length;
txtConsole.SelectionLength = 0;
txtConsole.ScrollToCaret();
txtCmd.Text = "";
for (int i = 0; i < 7; i++)
{
Application.DoEvents();
Thread.Sleep(100);
}
btnSend.Enabled = true;
}
private void GetPackets(IAsyncResult iar)
{
Add = "";
try
{
IPEndPoint address = new IPEndPoint(IPAddress.Any, int.Parse([quote author=kharnov link=topic=15440.msg220325#msg220325 date=1301287581]
[quote author=Foe of Eternity link=topic=15440.msg220306#msg220306 date=1301279453]
i gave you enough code that if you knew how to open a C# editor you could compile it
[/quote]
How are we supposed to know if the code you gave us is even in the program?
[quote author=Foe of Eternity link=topic=15440.msg220306#msg220306 date=1301279453]
if you think it's malicious, by all means don't download it, as that is a good security practice
[/quote]
We all think it's malicious. You're not very good at advertising your product.
[/quote]Port.Text));
Byte[] receiveBytes = new Byte[0];
for( int i = 0; i < 1; i++ )
receiveBytes = cli.EndReceive(iar, ref address);
Add = Encoding.ASCII.GetString(receiveBytes);
Add = Add.Remove(0, 9);
ready = true;
}
catch (Exception ee)
{
Add = ee.ToString();
ready = true;
}
}
txtConsole - a textbox representing the console
txtCmd - a textbox representing the entered command
btnSend - a button that when clicked runs btnSend_Click
txtPort - a textbox representing the server port
txtPass - a textbox representing the password
txtServer - a textbox representing the server address
as i said, everything is self explanatory; i would've expected anyone who wanted the source to be able to figure this out...
i gave you enough code that if you knew how to open a C# editor you could compile it
How are we supposed to know if the code you gave us is even in the program?
if you think it's malicious, by all means don't download it, as that is a good security practice
We all think it's malicious. You're not very good at advertising your product.
how are we supposed to know the tremulous executable contains what the source says it does?
you can't.
i gave you enough information to make it yourself if you don't trust it
also, in case you didn't notice, IT'S FREE
it's not a product, i don't care if no one downloads it, as i said i was releasing it for the benefit of the community, if they don't want to use it, it doesn't matter to me
READ THIS POST BEFORE POSTING AGAIN (and the following message)