]> git.meshlink.io Git - catta/blobdiff - announce.c
* correctly build probe packets
[catta] / announce.c
index b0960b149dd9c82ce49db47c07bc46c56c1dccaa..613d10d99cb4589d02f0847217fd8bea4bccaf6a 100644 (file)
@@ -46,10 +46,10 @@ void flx_entry_group_check_probed(flxEntryGroup *g, gboolean immediately) {
 
     /* Check whether all group members have been probed */
     
-    if (g->status != FLX_ENTRY_GROUP_REGISTERING || g->n_probing > 0) 
+    if (g->state != FLX_ENTRY_GROUP_REGISTERING || g->n_probing > 0) 
         return;
 
-    flx_entry_group_run_callback(g, g->status = FLX_ENTRY_GROUP_ESTABLISHED);
+    flx_entry_group_change_state(g, FLX_ENTRY_GROUP_ESTABLISHED);
 
     if (g->dead)
         return;
@@ -105,7 +105,7 @@ static void next_state(flxAnnouncement *a) {
                 a->entry->group->n_probing--;
             }
             
-            if (a->entry->group && a->entry->group->status == FLX_ENTRY_GROUP_REGISTERING)
+            if (a->entry->group && a->entry->group->state == FLX_ENTRY_GROUP_REGISTERING)
                 a->state = FLX_WAITING;
             else {
                 a->state = FLX_ANNOUNCING;
@@ -200,7 +200,7 @@ static void new_announcement(flxServer *s, flxInterface *i, flxEntry *e) {
         a->state = FLX_PROBING;
     else if (!(e->flags & FLX_ENTRY_NOANNOUNCE)) {
 
-        if (!e->group || e->group->status == FLX_ENTRY_GROUP_ESTABLISHED)
+        if (!e->group || e->group->state == FLX_ENTRY_GROUP_ESTABLISHED)
             a->state = FLX_ANNOUNCING;
         else
             a->state = FLX_WAITING;
@@ -367,11 +367,10 @@ void flx_goodbye_interface(flxServer *s, flxInterface *i, gboolean goodbye) {
 void flx_goodbye_entry(flxServer *s, flxEntry *e, gboolean goodbye) {
     g_assert(s);
     g_assert(e);
-    g_assert(!e->dead);
     
     g_message("goodbye entry: %p", e);
     
-    if (goodbye)
+    if (goodbye && !e->dead)
         flx_interface_monitor_walk(s->monitor, 0, AF_UNSPEC, send_goodbye_callback, e);
 
     while (e->announcements)