diff options
author | kraxel <kraxel> | 2006-01-30 13:21:13 +0000 |
---|---|---|
committer | kraxel <kraxel> | 2006-01-30 13:21:13 +0000 |
commit | 0738deb0a0dcfb6256538b577e7d47d11cdfea3c (patch) | |
tree | 39730196856d8a072a9a6853b4fb1b6f10b474f7 /mdns.c | |
parent | 2eb29a6f65cdc025fba80803b68a57f64091bbe6 (diff) | |
download | xenwatch-0738deb0a0dcfb6256538b577e7d47d11cdfea3c.tar.gz |
- add xenstuff to mdns bits.
Diffstat (limited to 'mdns.c')
-rw-r--r-- | mdns.c | 59 |
1 files changed, 47 insertions, 12 deletions
@@ -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); |