aboutsummaryrefslogtreecommitdiffstats
path: root/mdns-browser.c
diff options
context:
space:
mode:
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);