Ensure subnet-up/down scripts are called after HUP when necessary.
[tinc] / src / net.c
index 528e046..a04ba00 100644 (file)
--- a/src/net.c
+++ b/src/net.c
@@ -506,10 +506,15 @@ int main_loop(void) {
                                        subnet = node->data;
                                        if(subnet->expires == 1) {
                                                send_del_subnet(broadcast, subnet);
+                                               if(subnet->owner->status.reachable)
+                                                       subnet_update(subnet->owner, subnet, false);
                                                subnet_del(subnet->owner, subnet);
                                        } else if(subnet->expires == -1) {
-                                               send_add_subnet(broadcast, subnet);
                                                subnet->expires = 0;
+                                       } else {
+                                               send_add_subnet(broadcast, subnet);
+                                               if(subnet->owner->status.reachable)
+                                                       subnet_update(subnet->owner, subnet, true);
                                        }
                                }
                        }