 }
 
 // get edge
-int get_edge(String e_type, String msg) {
+int get_edge(String e_type, String msg, int from) {
   int i;
   String t, n;
   for (i = 0; i < 10; i++) {
     t = edges[i].type;
     n = edges[i].name;
-    if (t == e_type && n == msg) {
+    if (t == e_type && (n == msg || (msg == "*" && edges[i].from == from))) {
       return i;
     }
   }

// run_node(n1);
void run_node(int n_index) {
  #ifdef DUBUG_BUILD
  debug("test of run_node");
  debug(nodes[n_index].name);
  #endif
}

void set_run_state(short new_state) {

    set_run_state(0);
    return;
  }
  e_index = get_edge("msg", msg, -1);
  if (e_index < 0) {
    e_index = get_edge("flo", msg, -1);
  }
  if (e_index < 0) {
    #ifdef DUBUG_BUILD
