diff options
author | kraxel <kraxel> | 2006-04-06 09:36:38 +0000 |
---|---|---|
committer | kraxel <kraxel> | 2006-04-06 09:36:38 +0000 |
commit | 1131de02524b7d4d87c804cc18f8ec0337b20e70 (patch) | |
tree | 26e244b831e0277de2ab993729a458007ed417ea | |
parent | 3a84644b70ac7d14ab4e13bd2f4d957f10c53f62 (diff) | |
download | xenwatch-1131de02524b7d4d87c804cc18f8ec0337b20e70.tar.gz |
mdns browser tweaks
-rw-r--r-- | mdns-browser.c | 15 | ||||
-rw-r--r-- | mdns-publish-xendom.c | 13 | ||||
-rw-r--r-- | mdns.c | 65 | ||||
-rw-r--r-- | mdns.h | 9 | ||||
-rw-r--r-- | xd_view.c | 2 |
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) @@ -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 @@ -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); @@ -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; |