Execute hosts/name-up when a node becomes reachable, and hosts/name-down
when it becomes unreachable.
This commit is contained in:
		
							parent
							
								
									6ad5dd1a9a
								
							
						
					
					
						commit
						d699f3079c
					
				
					 2 changed files with 16 additions and 4 deletions
				
			
		
							
								
								
									
										13
									
								
								src/graph.c
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								src/graph.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -17,7 +17,7 @@
 | 
			
		|||
    along with this program; if not, write to the Free Software
 | 
			
		||||
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 | 
			
		||||
    $Id: graph.c,v 1.1.2.10 2002/03/19 22:48:25 guus Exp $
 | 
			
		||||
    $Id: graph.c,v 1.1.2.11 2002/03/24 16:28:27 guus Exp $
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/* We need to generate two trees from the graph:
 | 
			
		||||
| 
						 | 
				
			
			@ -44,6 +44,9 @@
 | 
			
		|||
   destination address and port of a node if possible.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <syslog.h>
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#include <string.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -59,6 +62,7 @@
 | 
			
		|||
#include "node.h"
 | 
			
		||||
#include "edge.h"
 | 
			
		||||
#include "connection.h"
 | 
			
		||||
#include "process.h"
 | 
			
		||||
 | 
			
		||||
#include "system.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -152,6 +156,7 @@ void sssp_bfs(void)
 | 
			
		|||
  halfconnection_t to_hc, from_hc;
 | 
			
		||||
  avl_tree_t *todo_tree;
 | 
			
		||||
  int indirect;
 | 
			
		||||
  char *name;
 | 
			
		||||
 | 
			
		||||
  todo_tree = avl_alloc_tree(NULL, NULL);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -255,6 +260,9 @@ void sssp_bfs(void)
 | 
			
		|||
          if(debug_lvl >= DEBUG_TRAFFIC)
 | 
			
		||||
            syslog(LOG_DEBUG, _("Node %s (%s) became reachable"), n->name, n->hostname);
 | 
			
		||||
          n->status.reachable = 1;
 | 
			
		||||
	  asprintf(&name, "hosts/%s-up", n->name);
 | 
			
		||||
	  execute_script(name);
 | 
			
		||||
	  free(name);
 | 
			
		||||
	}
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
| 
						 | 
				
			
			@ -267,6 +275,9 @@ void sssp_bfs(void)
 | 
			
		|||
	  n->status.validkey = 0;
 | 
			
		||||
	  n->status.waitingforkey = 0;
 | 
			
		||||
	  n->sent_seqno = 0;
 | 
			
		||||
	  asprintf(&name, "hosts/%s-down", n->name);
 | 
			
		||||
	  execute_script(name);
 | 
			
		||||
	  free(name);
 | 
			
		||||
	}
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@
 | 
			
		|||
    along with this program; if not, write to the Free Software
 | 
			
		||||
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 | 
			
		||||
    $Id: net.c,v 1.35.4.166 2002/03/23 20:13:56 guus Exp $
 | 
			
		||||
    $Id: net.c,v 1.35.4.167 2002/03/24 16:28:27 guus Exp $
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -298,7 +298,7 @@ cp
 | 
			
		|||
      c = (connection_t *)node->data;
 | 
			
		||||
 | 
			
		||||
      if(c->status.remove)
 | 
			
		||||
        return;
 | 
			
		||||
        continue;
 | 
			
		||||
 | 
			
		||||
      if(FD_ISSET(c->socket, f))
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -379,9 +379,10 @@ cp
 | 
			
		|||
 | 
			
		||||
      if((r = select(FD_SETSIZE, &fset, NULL, NULL, &tv)) < 0)
 | 
			
		||||
        {
 | 
			
		||||
          if(errno != EINTR) /* because of a signal */
 | 
			
		||||
          if(errno != EINTR && errno != EAGAIN)
 | 
			
		||||
            {
 | 
			
		||||
              syslog(LOG_ERR, _("Error while waiting for input: %s"), strerror(errno));
 | 
			
		||||
	      dump_connections();
 | 
			
		||||
              return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue