Przeglądaj źródła

dispatcher(k): mi ds_list prints combined flags

Daniel-Constantin Mierla 14 lat temu
rodzic
commit
5319d08db2
1 zmienionych plików z 16 dodań i 7 usunięć
  1. 16 7
      modules_k/dispatcher/dispatch.c

+ 16 - 7
modules_k/dispatcher/dispatch.c

@@ -2206,7 +2206,7 @@ int ds_print_mi_list(struct mi_node* rpl)
 {
 	int len, j;
 	char* p;
-	char c;
+	char c[3];
 	str data;
 	ds_set_t *list;
 	struct mi_node* node = NULL;
@@ -2238,16 +2238,25 @@ int ds_print_mi_list(struct mi_node* rpl)
   			if(node == NULL)
   				return -1;
 
-  			if (list->dlist[j].flags & DS_INACTIVE_DST) c = 'I';
-  			else if (list->dlist[j].flags & DS_PROBING_DST) c = 'P';
-  			else c = 'A';
+			memset(&c, 0, sizeof(c));
+			if (list->dlist[j].flags & DS_INACTIVE_DST)
+				c[0] = 'I';
+			else if (list->dlist[j].flags & DS_DISABLED_DST)
+				c[0] = 'D';
+			else
+				c[0] = 'A';
 
-  			attr = add_mi_attr (node, MI_DUP_VALUE, "flag",4, &c, 1);
-  			if(attr == 0)
+			if (list->dlist[j].flags & DS_PROBING_DST)
+				c[1] = 'P';
+			else
+				c[1] = 'X';
+
+			attr = add_mi_attr (node, MI_DUP_VALUE, "flags", 5, c, 2);
+			if(attr == 0)
   				return -1;
 
 			data.s = int2str(list->dlist[j].priority, &data.len);
-  			attr = add_mi_attr (node, MI_DUP_VALUE, "priority", 8,
+			attr = add_mi_attr (node, MI_DUP_VALUE, "priority", 8,
 					data.s, data.len);
   			if(attr == 0)
   				return -1;