X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/d52f68e6d38a06c63344eea5d7132949b0f42777..26472225bbf74bc552c23917247ab404febb936c:/cluster.c?ds=inline

diff --git a/cluster.c b/cluster.c
index f248ff0..e78ed69 100644
--- a/cluster.c
+++ b/cluster.c
@@ -1,6 +1,6 @@
 // L2TPNS Clustering Stuff
 
-char const *cvs_id_cluster = "$Id: cluster.c,v 1.11 2004-09-02 04:18:07 fred_nerk Exp $";
+char const *cvs_id_cluster = "$Id: cluster.c,v 1.15 2004-11-02 04:35:03 bodea Exp $";
 
 #include <stdio.h>
 #include <sys/file.h>
@@ -115,12 +115,12 @@ int cluster_init()
 	memcpy(&interface_addr, &ifr.ifr_addr, sizeof(interface_addr));
 	my_address = interface_addr.sin_addr.s_addr;
 
-				// Join multicast group.
+	// Join multicast group.
 	mreq.imr_multiaddr.s_addr = config->cluster_address;
 	mreq.imr_interface = interface_addr.sin_addr;
 
 
-	opt = 0;		// Turn off multicast loopback.
+	opt = 0;	// Turn off multicast loopback.
 	setsockopt(cluster_sockfd, IPPROTO_IP, IP_MULTICAST_LOOP, &opt, sizeof(opt));
 
 	if (setsockopt(cluster_sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0)
@@ -221,7 +221,7 @@ int peer_send_data(u32 peer, char * data, int size)
 	if (!config->cluster_address) return 0;
 
 	if (!peer)	// Odd??
-	return -1;
+		return -1;
 
 	addr.sin_addr.s_addr = peer;
 	addr.sin_port = htons(CLUSTERPORT);
@@ -256,12 +256,12 @@ int peer_send_message(u32 peer, int type, int more, char * data, int size)
 // Forward a state changing packet to the master.
 //
 // The master just processes the payload as if it had
-// received it off the tap device.
+// received it off the tun device.
 //
-int master_forward_packet(char * data, int size, u32 addr, int port)
+int master_forward_packet(char *data, int size, u32 addr, int port)
 {
 	char buf[65536];	// Vast overkill.
-	char * p = buf;
+	char *p = buf;
 
 	if (!config->cluster_master_address) // No election has been held yet. Just skip it.
 		return -1;
@@ -284,10 +284,10 @@ int master_forward_packet(char * data, int size, u32 addr, int port)
 // token bucket queue, and lets normal processing take care
 // of it.
 //
-int master_throttle_packet(int tbfid, char * data, int size)
+int master_throttle_packet(int tbfid, char *data, int size)
 {
 	char buf[65536];	// Vast overkill.
-	char * p = buf;
+	char *p = buf;
 
 	if (!config->cluster_master_address) // No election has been held yet. Just skip it.
 		return -1;
@@ -371,12 +371,12 @@ void cluster_send_ping(time_t basetime)
 
 //
 // Walk the session counters looking for non-zero ones to send
-// to the master. We send up to 100 of them at one time.
-// We examine a maximum of 2000 sessions.
+// to the master. We send up to 600 of them at one time.
+// We examine a maximum of 3000 sessions.
 // (50k max session should mean that we normally
 // examine the entire session table every 25 seconds).
 
-#define MAX_B_RECS (400)
+#define MAX_B_RECS (600)
 void master_update_counts(void)
 {
 	int i, c;
@@ -589,17 +589,10 @@ void cluster_check_master(void)
 
 
 		session[i].tbf_in = session[i].tbf_out = 0; // Remove stale pointers from old master.
-		throttle_session(i, session[i].throttle);
-
-// I'm unsure about this. --mo
-// It's potentially a good thing, but it could send a
-// LOT of packets.
-//		if (session[i].throttle)
-//			cluster_send_session(s);	// Tell the slaves about the new tbf indexes.
+		throttle_session(i, session[i].throttle_in, session[i].throttle_out);
 
 		if (session[i].tunnel != T_FREE && i > config->cluster_highest_sessionid)
 			config->cluster_highest_sessionid = i;
-
 	}
 
 	session[last_free].next = 0;	// End of chain.
@@ -818,7 +811,7 @@ void cluster_heartbeat()
 		exit(1);
 	}
 
-	log(3,0,0,0, "Sending heartbeat #%d with %d changes (%d x-sess, %d x-tunnels, %d highsess, %d hightun size %d)\n",
+	log(3,0,0,0, "Sending heartbeat #%d with %d changes (%d x-sess, %d x-tunnels, %d highsess, %d hightun, size %d)\n",
 			h.seq, config->cluster_num_changes, count, tcount, config->cluster_highest_sessionid,
 			config->cluster_highest_tunnelid, (p-buff));