| using System; |
| using System.Diagnostics; |
| using Gtk; |
| using Avahi.UI; |
| |
| public class EntryPoint { |
| public static void Main () { |
| Application.Init (); |
| |
| ServiceDialog dialog = new ServiceDialog ("Choose SSH Server", null, |
| Stock.Cancel, ResponseType.Cancel, |
| Stock.Connect, ResponseType.Accept); |
| dialog.BrowseServiceTypes = new string[] { "_ssh._tcp" }; |
| dialog.ResolveServiceEnabled = true; |
| |
| if (dialog.Run () == (int) ResponseType.Accept) { |
| Console.WriteLine ("Connecting to {0}:{1}", dialog.Address, dialog.Port); |
| |
| string user = Environment.UserName; |
| |
| foreach (byte[] txtBytes in dialog.TxtData) { |
| string txt = System.Text.Encoding.UTF8.GetString (txtBytes); |
| string[] splitTxt = txt.Split(new char[] { '=' }, 2); |
| |
| if (splitTxt.Length != 2) |
| continue; |
| |
| if (splitTxt[0] == "u") { |
| user = splitTxt[1]; |
| } |
| |
| string args = String.Format ("gnome-terminal -t {0} -x ssh -p {1} -l {2} {3}", |
| dialog.HostName, dialog.Port, user, dialog.Address.ToString ()); |
| Console.WriteLine ("Launching: " + args); |
| Process.Start (args); |
| } |
| } |
| } |
| } |