X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-ui%2Fbssh.c;h=3c06420d03277bed3881cee360c9a64728072bae;hb=0728897e6e2de7b63b5261ce1bc455355e01d5cf;hp=32b0ccbab7a22ba17db7119f57fb7f4c0be70eec;hpb=300f7ba9449afc23c2b0e23f7b4dba995452b44e;p=catta diff --git a/avahi-ui/bssh.c b/avahi-ui/bssh.c index 32b0ccb..3c06420 100644 --- a/avahi-ui/bssh.c +++ b/avahi-ui/bssh.c @@ -2,17 +2,17 @@ /*** This file is part of avahi. - + avahi is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + avahi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with avahi; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 @@ -27,6 +27,7 @@ #include #include #include +#include #include @@ -34,22 +35,31 @@ #include #include #include +#include #include "avahi-ui.h" int main(int argc, char*argv[]) { GtkWidget *d; + avahi_init_i18n(); + setlocale(LC_ALL, ""); + gtk_init(&argc, &argv); - if (g_str_has_suffix(argv[0], "bvnc")) { - d = aui_service_dialog_new("Choose VNC server", NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_CONNECT, GTK_RESPONSE_ACCEPT, NULL); + if (g_str_has_suffix(argv[0], "bshell")) { + d = aui_service_dialog_new(_("Choose Shell Server"), NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_CONNECT, GTK_RESPONSE_ACCEPT, NULL); + aui_service_dialog_set_browse_service_types(AUI_SERVICE_DIALOG(d), "_rfb._tcp", "_ssh._tcp", NULL); + aui_service_dialog_set_service_type_name(AUI_SERVICE_DIALOG(d), "_rfb._tcp", _("Desktop")); + aui_service_dialog_set_service_type_name(AUI_SERVICE_DIALOG(d), "_ssh._tcp", _("Terminal")); + } else if (g_str_has_suffix(argv[0], "bvnc")) { + d = aui_service_dialog_new(_("Choose VNC server"), NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_CONNECT, GTK_RESPONSE_ACCEPT, NULL); aui_service_dialog_set_browse_service_types(AUI_SERVICE_DIALOG(d), "_rfb._tcp", NULL); } else { - d = aui_service_dialog_new("Choose SSH server", NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_CONNECT, GTK_RESPONSE_ACCEPT, NULL); + d = aui_service_dialog_new(_("Choose SSH server"), NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_CONNECT, GTK_RESPONSE_ACCEPT, NULL); aui_service_dialog_set_browse_service_types(AUI_SERVICE_DIALOG(d), "_ssh._tcp", NULL); } - + aui_service_dialog_set_resolve_service(AUI_SERVICE_DIALOG(d), TRUE); aui_service_dialog_set_resolve_host_name(AUI_SERVICE_DIALOG(d), !avahi_nss_support()); @@ -59,40 +69,40 @@ int main(int argc, char*argv[]) { char a[AVAHI_ADDRESS_STR_MAX], *u = NULL, *n = NULL; char *h = NULL, *t = NULL; const AvahiStringList *txt; - + t = g_strdup(aui_service_dialog_get_service_type(AUI_SERVICE_DIALOG(d))); n = g_strdup(aui_service_dialog_get_service_name(AUI_SERVICE_DIALOG(d))); - + if (avahi_nss_support()) h = g_strdup(aui_service_dialog_get_host_name(AUI_SERVICE_DIALOG(d))); else h = g_strdup(avahi_address_snprint(a, sizeof(a), aui_service_dialog_get_address(AUI_SERVICE_DIALOG(d)))); - g_print("Connecting to '%s' ...\n", n); - + g_print(_("Connecting to '%s' ...\n"), n); + if (avahi_domain_equal(t, "_rfb._tcp")) { char p[AVAHI_DOMAIN_NAME_MAX+16]; snprintf(p, sizeof(p), "%s:%u", h, aui_service_dialog_get_port(AUI_SERVICE_DIALOG(d))-5900); gtk_widget_destroy(d); - + g_print("xvncviewer %s\n", p); - execlp("xvncviewer", "xvncviewer", p, NULL); - + execlp("xvncviewer", "xvncviewer", p, NULL); + } else { char p[16]; - + snprintf(p, sizeof(p), "%u", aui_service_dialog_get_port(AUI_SERVICE_DIALOG(d))); - + for (txt = aui_service_dialog_get_txt_data(AUI_SERVICE_DIALOG(d)); txt; txt = txt->next) { char *key, *value; - + if (avahi_string_list_get_pair((AvahiStringList*) txt, &key, &value, NULL) < 0) break; - + if (strcmp(key, "u") == 0) u = g_strdup(value); - + avahi_free(key); avahi_free(value); } @@ -105,36 +115,35 @@ int main(int argc, char*argv[]) { if (isatty(0) || !getenv("DISPLAY")) execlp("ssh", "ssh", "-p", p, "-l", u, h, NULL); else { - execlp("x-terminal-emulator", "x-terminal-emulator", "-T", n, "-e", "ssh", "-p", p, "-l", u, h, NULL); + execlp("x-terminal-emulator", "x-terminal-emulator", "-T", n, "-e", "ssh", "-p", p, "-l", u, h, NULL); execlp("gnome-terminal", "gnome-terminal", "-t", n, "-x", "ssh", "-p", p, "-l", u, h, NULL); execlp("xterm", "xterm", "-T", n, "-e", "ssh", "-p", p, "-l", u, h, NULL); } } else { g_print("ssh -p %s %s\n", p, h); - + if (isatty(0) || !getenv("DISPLAY")) - execlp("ssh", "ssh", "-p", p, h, NULL); + execlp("ssh", "ssh", "-p", p, h, NULL); else { - execlp("x-terminal-emulator", "x-terminal-emulator", "-T", n, "-e", "ssh", "-p", p, h, NULL); + execlp("x-terminal-emulator", "x-terminal-emulator", "-T", n, "-e", "ssh", "-p", p, h, NULL); execlp("gnome-terminal", "gnome-terminal", "-t", n, "-x", "ssh", "-p", p, h, NULL); execlp("xterm", "xterm", "-T", n, "-e", "ssh", "-p", p, h, NULL); } } } - g_warning("execlp() failed: %s\n", strerror(errno)); + g_warning(_("execlp() failed: %s\n"), strerror(errno)); g_free(h); g_free(u); g_free(t); g_free(n); - + } else { gtk_widget_destroy(d); - g_print("Canceled.\n"); + g_print(_("Canceled.\n")); } - + return 1; - }