diff options
author | kraxel <kraxel> | 2007-02-07 15:44:40 +0000 |
---|---|---|
committer | kraxel <kraxel> | 2007-02-07 15:44:40 +0000 |
commit | 7d906990781d561e9b196138356300460b2c0da2 (patch) | |
tree | 10e7cd650335b807c4580a305b349aa75c4b6c3e | |
parent | 3afcd6538aeba46332c5ed8a2b020750a5f06d8a (diff) | |
download | xenwatch-7d906990781d561e9b196138356300460b2c0da2.tar.gz |
misc
-rw-r--r-- | GNUmakefile | 4 | ||||
-rw-r--r-- | mdns-browser.c | 15 | ||||
-rw-r--r-- | mdns-publish-vnc.c | 4 | ||||
-rw-r--r-- | mdns.c | 11 |
4 files changed, 28 insertions, 6 deletions
diff --git a/GNUmakefile b/GNUmakefile index 643d5a6..0876691 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -16,7 +16,7 @@ NEEDS_XENSTORE := xenlog xenscreen xenwatch mdns-publish-xendom mdns-publish-vnc NEEDS_XENAPI := xenapi NEEDS_GTK := xenwatch mdns-browser vnc-client NEEDS_MDNS := xenwatch mdns-browser mdns-publish-xendom mdns-publish-vnc -NEEDS_VNC := xenwatch vnc-client +NEEDS_VNC := xenwatch mdns-browser vnc-client # default target all: build @@ -97,7 +97,7 @@ xenlog: xenlog.o xenstore.o xenscreen: xenscreen.o xenstore.o apps.o xenwatch: xenwatch.o xs_view.o xs_store.o xd_view.o xd_store.o \ apps.o apps-x11.o tcp.o mdns.o vnc.o x11.o -mdns-browser: mdns-browser.o mdns.o apps.o apps-x11.o +mdns-browser: mdns-browser.o mdns.o vnc.o x11.o apps.o apps-x11.o mdns-publish-xendom: mdns-publish-xendom.o mdns-publish.o mdns-publish-vnc: mdns-publish-vnc.o mdns-publish.o xenstore.o vnc-client: vnc-client.o vnc.o x11.o diff --git a/mdns-browser.c b/mdns-browser.c index bca3ab1..ec5c1a2 100644 --- a/mdns-browser.c +++ b/mdns-browser.c @@ -13,6 +13,7 @@ #include "mdns.h" #include "apps.h" +#include "vnc.h" /* ------------------------------------------------------------------ */ @@ -22,6 +23,7 @@ static struct mdns_window *mdns; static char *service = "_ssh._tcp"; static char *domain = NULL; static enum mdns_view view = MDNS_VIEW_DEFAULT; +static mdns_callback callback = NULL; /* ------------------------------------------------------------------ */ @@ -47,6 +49,12 @@ static void usage(FILE *fp) service); } +static void vnc_callback(struct mdns_window *mdns, char *name, char *type, + char *host, int port, char *url) +{ + vnc_open(host, port, VNC_FLAG_US_KBD, 0); +} + int main(int argc, char *argv[]) { @@ -89,7 +97,12 @@ main(int argc, char *argv[]) fcntl(ConnectionNumber(dpy),F_SETFD,FD_CLOEXEC); detect_desktop(); - mdns = mdns_create_window(1, view, NULL); +#ifdef HAVE_VNCCLIENT + if (0 == strcmp(service, "_rfb._tcp")) + callback = vnc_callback; +#endif + + mdns = mdns_create_window(1, view, callback); if (NULL == mdns) { fprintf(stderr,"Oops: mDNS did't initialize ok\n"); exit(1); diff --git a/mdns-publish-vnc.c b/mdns-publish-vnc.c index 48b4e73..f73f586 100644 --- a/mdns-publish-vnc.c +++ b/mdns-publish-vnc.c @@ -71,8 +71,8 @@ static void try_attach_domain(struct mdns_pub *mdns, struct dom *dom, int boot) if (!dom->vnc_port) return; - snprintf(dom->label, sizeof(dom->label), "%s (%d), at %s", - dom->name, dom->domid, uts.nodename); + snprintf(dom->label, sizeof(dom->label), "Xen guest %s (%s, #%d)", + dom->name, uts.nodename, dom->domid); mdns_log_printf(mdns, LOG_INFO, "pub: %s (%d)\n", dom->name, dom->domid); dom->entry = mdns_pub_add(mdns, dom->label, "_rfb._tcp", dom->vnc_port, NULL); @@ -57,12 +57,21 @@ struct actions { static const struct actions default_actions[] = { { - /* let KDE decide how to handle it ... */ + .desktop = DESKTOP_ANY, + .needurl = 1, + .tryapp = "xdg-open", + .cmdline = "xdg-open %u", + },{ .desktop = DESKTOP_KDE, .needurl = 1, .tryapp = "kfmclient", .cmdline = "kfmclient exec %u", },{ + .desktop = DESKTOP_GNOME, + .needurl = 1, + .tryapp = "gnome-open", + .cmdline = "gnome-open %u", + },{ .desktop = DESKTOP_ANY, .type = "_ssh._tcp", .cmdline = "xterm -title \"%n\" -e ssh -p %p \"%h\"", |