aboutsummaryrefslogtreecommitdiffstats
path: root/mdns-browser.c
diff options
context:
space:
mode:
authorkraxel <kraxel>2007-02-07 15:44:40 +0000
committerkraxel <kraxel>2007-02-07 15:44:40 +0000
commit7d906990781d561e9b196138356300460b2c0da2 (patch)
tree10e7cd650335b807c4580a305b349aa75c4b6c3e /mdns-browser.c
parent3afcd6538aeba46332c5ed8a2b020750a5f06d8a (diff)
downloadxenwatch-7d906990781d561e9b196138356300460b2c0da2.tar.gz
misc
Diffstat (limited to 'mdns-browser.c')
-rw-r--r--mdns-browser.c15
1 files changed, 14 insertions, 1 deletions
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);