aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkraxel <kraxel>2006-04-06 09:36:38 +0000
committerkraxel <kraxel>2006-04-06 09:36:38 +0000
commit1131de02524b7d4d87c804cc18f8ec0337b20e70 (patch)
tree26e244b831e0277de2ab993729a458007ed417ea
parent3a84644b70ac7d14ab4e13bd2f4d957f10c53f62 (diff)
downloadxenwatch-1131de02524b7d4d87c804cc18f8ec0337b20e70.tar.gz
mdns browser tweaks
-rw-r--r--mdns-browser.c15
-rw-r--r--mdns-publish-xendom.c13
-rw-r--r--mdns.c65
-rw-r--r--mdns.h9
-rw-r--r--xd_view.c2
5 files changed, 78 insertions, 26 deletions
diff --git a/mdns-browser.c b/mdns-browser.c
index 340e587..7e3400a 100644
--- a/mdns-browser.c
+++ b/mdns-browser.c
@@ -18,10 +18,9 @@
static Display *dpy;
static struct mdns_window *mdns;
-static char *service = "_ssh._tcp";
-static char *domain = NULL;
-static int urlmode = 0;
-static int xenmode = 0;
+static char *service = "_ssh._tcp";
+static char *domain = NULL;
+static enum mdns_view view = MDNS_VIEW_DEFAULT;
/* ------------------------------------------------------------------ */
@@ -37,7 +36,7 @@ static void usage(FILE *fp)
" -d <domain> specify domain\n"
" -u url mode, displays a different set of default\n"
" columns, useful for _http._tcp & friends.\n"
- " -x xen mode, yet another sefault column set, this\n"
+ " -x xen mode, yet another default column set, this\n"
" also sets service to _xendom._tcp\n"
"\n"
"-- \n"
@@ -62,11 +61,11 @@ main(int argc, char *argv[])
domain = optarg;
break;
case 'u':
- urlmode = 1;
+ view = MDNS_VIEW_URL;
break;
case 'x':
service = "_xendom._tcp";
- xenmode = 1;
+ view = MDNS_VIEW_XEN;
break;
case 'h':
usage(stdout);
@@ -80,7 +79,7 @@ main(int argc, char *argv[])
dpy = gdk_x11_display_get_xdisplay(gdk_display_get_default());
fcntl(ConnectionNumber(dpy),F_SETFD,FD_CLOEXEC);
- mdns = mdns_create_window(1, urlmode, xenmode);
+ mdns = mdns_create_window(1, view);
if (NULL == mdns) {
fprintf(stderr,"Oops: mDNS did't initialize ok\n");
exit(1);
diff --git a/mdns-publish-xendom.c b/mdns-publish-xendom.c
index 430bfd0..4401794 100644
--- a/mdns-publish-xendom.c
+++ b/mdns-publish-xendom.c
@@ -390,12 +390,13 @@ int main(int argc, char*argv[])
ret = 0;
avahi_threaded_poll_start(thread_poll);
-#if 0 /* hmm, not working */
- if (0 != xen_watch_add("memory/target"))
- goto fail;
- xen_watch_add("vm");
- xen_watch_add("domid");
-#endif
+ if (0) {
+ /* hmm, not working */
+ if (0 != xen_watch_add("memory/target"))
+ goto fail;
+ xen_watch_add("vm");
+ xen_watch_add("domid");
+ }
for (;;) {
if (app_quit)
diff --git a/mdns.c b/mdns.c
index 39166cb..d50fc10 100644
--- a/mdns.c
+++ b/mdns.c
@@ -505,6 +505,24 @@ int mdns_browse(struct mdns_window *mdns,
/* ---------------------------------------------------------------------- */
+static void menu_cb_view_default(GtkToggleAction *action, gpointer userdata)
+{
+ struct mdns_window *mdns = userdata;
+ mdns_view(mdns, MDNS_VIEW_DEFAULT);
+}
+
+static void menu_cb_view_url(GtkToggleAction *action, gpointer userdata)
+{
+ struct mdns_window *mdns = userdata;
+ mdns_view(mdns, MDNS_VIEW_URL);
+}
+
+static void menu_cb_view_xen(GtkToggleAction *action, gpointer userdata)
+{
+ struct mdns_window *mdns = userdata;
+ mdns_view(mdns, MDNS_VIEW_XEN);
+}
+
static void menu_cb_view_col(GtkToggleAction *action, gpointer userdata, int id)
{
struct mdns_window *mdns = userdata;
@@ -605,6 +623,18 @@ static const GtkActionEntry entries[] = {
.label = "_Close",
.accelerator = "<control>Q",
.callback = G_CALLBACK(menu_cb_close),
+ },{
+ .name = "ViewDefault",
+ .label = "_Default",
+ .callback = G_CALLBACK(menu_cb_view_default),
+ },{
+ .name = "ViewURL",
+ .label = "_URL",
+ .callback = G_CALLBACK(menu_cb_view_url),
+ },{
+ .name = "ViewXen",
+ .label = "_Xen",
+ .callback = G_CALLBACK(menu_cb_view_xen),
},
};
@@ -674,6 +704,10 @@ static char ui_xml[] =
" <menuitem action='Close'/>"
" </menu>"
" <menu action='ViewMenu'>"
+" <menuitem action='ViewDefault'/>"
+" <menuitem action='ViewURL'/>"
+" <menuitem action='ViewXen'/>"
+" <separator/>"
" <menuitem action='ColType'/>"
" <menuitem action='ColDomain'/>"
" <menuitem action='ColInterface'/>"
@@ -829,7 +863,7 @@ static GtkWidget *mdns_create_view(struct mdns_window *mdns)
return view;
}
-static void set_default_visible_cols(struct mdns_window *mdns, int url, int xen)
+static void set_default_visible_cols(struct mdns_window *mdns, enum mdns_view view)
{
GtkToggleAction *ta;
@@ -846,22 +880,22 @@ static void set_default_visible_cols(struct mdns_window *mdns, int url, int xen)
gtk_toggle_action_set_active(ta, TRUE);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColAddress"));
- gtk_toggle_action_set_active(ta, !xen && !url);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_DEFAULT);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColPort"));
- gtk_toggle_action_set_active(ta, !xen && !url);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_DEFAULT);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColPath"));
- gtk_toggle_action_set_active(ta, !xen && !url);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_DEFAULT);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColURL"));
- gtk_toggle_action_set_active(ta, url);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_URL);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColXenDomID"));
- gtk_toggle_action_set_active(ta, xen);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_XEN);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColXenVmUUID"));
- gtk_toggle_action_set_active(ta, xen);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_XEN);
}
-struct mdns_window *mdns_create_window(int standalone, int url, int xen)
+struct mdns_window *mdns_create_window(int standalone, enum mdns_view view)
{
struct mdns_window *mdns;
GtkWidget *vbox, *menubar, *toolbar, *scroll;
@@ -944,7 +978,7 @@ struct mdns_window *mdns_create_window(int standalone, int url, int xen)
gtk_container_add(GTK_CONTAINER(scroll), mdns->view);
gtk_box_pack_end(GTK_BOX(vbox), mdns->status, FALSE, TRUE, 0);
- set_default_visible_cols(mdns, url, xen);
+ set_default_visible_cols(mdns, view);
return mdns;
}
@@ -958,11 +992,17 @@ void mdns_destroy_window(struct mdns_window *mdns)
gtk_widget_destroy(mdns->toplevel);
}
+int mdns_view(struct mdns_window *mdns, enum mdns_view view)
+{
+ set_default_visible_cols(mdns, view);
+ return 0;
+}
+
/* ---------------------------------------------------------------------- */
#else /* ! HAVE_AVAHI */
-struct mdns_window *mdns_create_window(int standalone, int url, int xen)
+struct mdns_window *mdns_create_window(int standalone, enum mdns_view view)
{
fprintf(stderr,"Compiled without mDNS support, sorry.\n");
return NULL;
@@ -977,4 +1017,9 @@ int mdns_browse(struct mdns_window *mdns,
return -1;
}
+int mdns_view(struct mdns_window *mdns, enum mdns_view view)
+{
+ return -1;
+}
+
#endif
diff --git a/mdns.h b/mdns.h
index cc0b33b..78ac755 100644
--- a/mdns.h
+++ b/mdns.h
@@ -1,8 +1,15 @@
struct mdns_window;
-struct mdns_window *mdns_create_window(int standalone, int url, int xen);
+enum mdns_view {
+ MDNS_VIEW_DEFAULT = 0,
+ MDNS_VIEW_URL,
+ MDNS_VIEW_XEN,
+};
+
+struct mdns_window *mdns_create_window(int standalone, enum mdns_view view);
void mdns_show_window(struct mdns_window *mdns);
void mdns_destroy_window(struct mdns_window *mdns);
+int mdns_view(struct mdns_window *mdns, enum mdns_view view);
int mdns_browse(struct mdns_window *mdns,
const char *service, const char *domain);
diff --git a/xd_view.c b/xd_view.c
index 06e562a..dbec3cd 100644
--- a/xd_view.c
+++ b/xd_view.c
@@ -426,7 +426,7 @@ static void menu_cb_mdns(void)
#ifdef HAVE_AVAHI
struct mdns_window *mdns;
- mdns = mdns_create_window(0,0,1);
+ mdns = mdns_create_window(0, MDNS_VIEW_XEN);
if (NULL == mdns) {
gtk_message(GTK_MESSAGE_ERROR, "Can't setup mDNS browser, sorry.\n");
return;