aboutsummaryrefslogtreecommitdiffstats
path: root/mdns.c
diff options
context:
space:
mode:
authorkraxel <kraxel>2006-01-30 13:21:13 +0000
committerkraxel <kraxel>2006-01-30 13:21:13 +0000
commit0738deb0a0dcfb6256538b577e7d47d11cdfea3c (patch)
tree39730196856d8a072a9a6853b4fb1b6f10b474f7 /mdns.c
parent2eb29a6f65cdc025fba80803b68a57f64091bbe6 (diff)
downloadxenwatch-0738deb0a0dcfb6256538b577e7d47d11cdfea3c.tar.gz
- add xenstuff to mdns bits.
Diffstat (limited to 'mdns.c')
-rw-r--r--mdns.c59
1 files changed, 47 insertions, 12 deletions
diff --git a/mdns.c b/mdns.c
index 10d52be..33c33b1 100644
--- a/mdns.c
+++ b/mdns.c
@@ -45,6 +45,8 @@ enum {
/* other */
ST_COL_URL,
+ ST_COL_XEN_DOM_ID,
+ ST_COL_XEN_VM_UUID,
ST_NUM_COLS
};
@@ -200,9 +202,9 @@ static void resolve_callback(AvahiServiceResolver *r,
};
struct mdns_window *mdns = userdata;
char a[AVAHI_ADDRESS_STR_MAX], p[32], url[256];
- unsigned char *path = NULL;
+ unsigned char *txtstr = NULL;
char *proto = NULL;
- AvahiStringList *pathlist;
+ AvahiStringList *txtlist;
GtkTreeIter iter;
char nif[32];
int defport, i;
@@ -221,14 +223,34 @@ static void resolve_callback(AvahiServiceResolver *r,
ST_COL_PORT, p,
-1);
+ /* xen stuff */
+ txtlist = avahi_string_list_find(txt, "domid");
+ if (txtlist) {
+ txtstr = avahi_string_list_get_text(txtlist);
+ if (txtstr) {
+ gtk_list_store_set(mdns->store, &iter,
+ ST_COL_XEN_DOM_ID, txtstr+6,
+ -1);
+ }
+ }
+ txtlist = avahi_string_list_find(txt, "vmuuid");
+ if (txtlist) {
+ txtstr = avahi_string_list_get_text(txtlist);
+ if (txtstr) {
+ gtk_list_store_set(mdns->store, &iter,
+ ST_COL_XEN_VM_UUID, txtstr+7,
+ -1);
+ }
+ }
+
/* path */
- pathlist = avahi_string_list_find(txt, "path");
- if (pathlist)
- path = avahi_string_list_get_text(pathlist);
- if (!path)
+ txtlist = avahi_string_list_find(txt, "path");
+ if (txtlist)
+ txtstr = avahi_string_list_get_text(txtlist);
+ if (!txtstr)
break;
gtk_list_store_set(mdns->store, &iter,
- ST_COL_PATH, path+5,
+ ST_COL_PATH, txtstr+5,
-1);
/* url */
@@ -243,10 +265,10 @@ static void resolve_callback(AvahiServiceResolver *r,
break;
if (defport != port)
snprintf(url, sizeof(url), "%s://%s:%d%s",
- proto, host_name, port, path+5);
+ proto, host_name, port, txtstr+5);
else
snprintf(url, sizeof(url), "%s://%s%s",
- proto, host_name, path+5);
+ proto, host_name, txtstr+5);
gtk_list_store_set(mdns->store, &iter,
ST_COL_URL, url,
-1);
@@ -536,7 +558,6 @@ static GtkWidget *mdns_create_view(struct mdns_window *mdns)
"text", ST_COL_NAME,
NULL);
-#if 0
renderer = gtk_cell_renderer_text_new();
gtk_tree_view_insert_column_with_attributes
(GTK_TREE_VIEW(view), -1, "type", renderer,
@@ -548,7 +569,6 @@ static GtkWidget *mdns_create_view(struct mdns_window *mdns)
(GTK_TREE_VIEW(view), -1, "domain", renderer,
"text", ST_COL_DOMAIN,
NULL);
-#endif
renderer = gtk_cell_renderer_text_new();
gtk_tree_view_insert_column_with_attributes
@@ -595,6 +615,18 @@ static GtkWidget *mdns_create_view(struct mdns_window *mdns)
"text", ST_COL_URL,
NULL);
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_insert_column_with_attributes
+ (GTK_TREE_VIEW(view), -1, "id", renderer,
+ "text", ST_COL_XEN_DOM_ID,
+ NULL);
+
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_insert_column_with_attributes
+ (GTK_TREE_VIEW(view), -1, "vm", renderer,
+ "text", ST_COL_XEN_VM_UUID,
+ NULL);
+
/* fill remaining space */
renderer = gtk_cell_renderer_text_new();
gtk_tree_view_insert_column_with_attributes
@@ -655,7 +687,10 @@ struct mdns_window *mdns_create_window(int standalone)
G_TYPE_STRING, // ST_COL_PORT
G_TYPE_STRING, // ST_COL_PATH
- G_TYPE_STRING); // ST_COL_URL
+ G_TYPE_STRING, // ST_COL_URL
+ G_TYPE_STRING, // ST_COL_XEN_DOM_ID
+ G_TYPE_STRING, // ST_COL_XEN_VM_UUID
+ NULL);
mdns->view = mdns_create_view(mdns);
#if 0
g_signal_connect(mdns->view, "row-activated", G_CALLBACK(activate), mdns);