From 3025a26988fe2de9d14867056c945e20f490ec1e Mon Sep 17 00:00:00 2001 From: James Willcox Date: Thu, 19 Apr 2007 21:01:45 +0000 Subject: add avahi-ui-sharp git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1444 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-ui-sharp/zssh.cs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 avahi-ui-sharp/zssh.cs (limited to 'avahi-ui-sharp/zssh.cs') diff --git a/avahi-ui-sharp/zssh.cs b/avahi-ui-sharp/zssh.cs new file mode 100644 index 0000000..ad45ca9 --- /dev/null +++ b/avahi-ui-sharp/zssh.cs @@ -0,0 +1,37 @@ +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.Close, ResponseType.Cancel); + 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); + } + } + } +} -- cgit