Replace Opaque and Strict options with a TunnelServer option.

This commit is contained in:
Guus Sliepen 2003-11-17 15:30:18 +00:00
parent 0e59fb022c
commit e3220cacb5
12 changed files with 82 additions and 49 deletions

View file

@ -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: protocol_auth.c,v 1.1.4.29 2003/11/10 22:31:53 guus Exp $
$Id: protocol_auth.c,v 1.1.4.30 2003/11/17 15:30:18 guus Exp $
*/
#include "system.h"
@ -476,19 +476,6 @@ bool send_ack(connection_t *c)
if((get_config_bool(lookup_config(c->config_tree, "TCPOnly"), &choice) && choice) || myself->options & OPTION_TCPONLY)
c->options |= OPTION_TCPONLY | OPTION_INDIRECT;
choice = false;
get_config_bool(lookup_config(config_tree, "Opaque"), &choice);
get_config_bool(lookup_config(c->config_tree, "Opaque"), &choice);
c->status.opaque = choice;
if(c->status.opaque)
c->options |= OPTION_INDIRECT;
choice = false;
get_config_bool(lookup_config(config_tree, "Strict"), &choice);
get_config_bool(lookup_config(c->config_tree, "Strict"), &choice);
c->status.strict = choice;
return send_request(c, "%d %s %d %lx", ACK, myport, c->estimated_weight, c->options);
}
@ -501,6 +488,15 @@ static void send_everything(connection_t *c)
/* Send all known subnets and edges */
if(tunnelserver) {
for(node = myself->subnet_tree->head; node; node = node->next) {
s = node->data;
send_add_subnet(c, s);
}
return;
}
for(node = node_tree->head; node; node = node->next) {
n = node->data;
@ -565,8 +561,7 @@ bool ack_h(connection_t *c)
/* Send him everything we know */
if(!c->status.opaque)
send_everything(c);
send_everything(c);
/* Create an edge_t for this connection */
@ -586,10 +581,10 @@ bool ack_h(connection_t *c)
/* Notify everyone of the new edge */
if(c->status.opaque)
send_add_edge(broadcast, c->edge);
else
if(tunnelserver)
send_add_edge(c, c->edge);
else
send_add_edge(broadcast, c->edge);
/* Run MST and SSSP algorithms */