Check indirectdata option before forwarding certain requests.
This commit is contained in:
parent
c426e981ee
commit
156ec67652
1 changed files with 7 additions and 5 deletions
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: protocol.c,v 1.28.4.85 2001/03/04 13:59:28 guus Exp $
|
$Id: protocol.c,v 1.28.4.86 2001/03/13 21:33:31 guus Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
@ -325,6 +325,7 @@ cp
|
||||||
subnet = (subnet_t *)node->data;
|
subnet = (subnet_t *)node->data;
|
||||||
send_add_subnet(cl, subnet);
|
send_add_subnet(cl, subnet);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* And send him all the hosts and their subnets we know... */
|
/* And send him all the hosts and their subnets we know... */
|
||||||
|
|
||||||
for(node = connection_tree->head; node; node = node->next)
|
for(node = connection_tree->head; node; node = node->next)
|
||||||
|
@ -644,7 +645,7 @@ int send_add_subnet(connection_t *cl, subnet_t *subnet)
|
||||||
char *netstr;
|
char *netstr;
|
||||||
char *owner;
|
char *owner;
|
||||||
cp
|
cp
|
||||||
if(cl->options & OPTION_INDIRECT)
|
if((cl->options | myself->options | subnet->owner->options) & OPTION_INDIRECT)
|
||||||
owner = myself->name;
|
owner = myself->name;
|
||||||
else
|
else
|
||||||
owner = subnet->owner->name;
|
owner = subnet->owner->name;
|
||||||
|
@ -810,7 +811,7 @@ cp
|
||||||
int send_add_host(connection_t *cl, connection_t *other)
|
int send_add_host(connection_t *cl, connection_t *other)
|
||||||
{
|
{
|
||||||
cp
|
cp
|
||||||
if(!(cl->options & OPTION_INDIRECT))
|
if(!((cl->options | myself->options | other->options) & OPTION_INDIRECT))
|
||||||
return send_request(cl, "%d %s %lx:%d %lx", ADD_HOST,
|
return send_request(cl, "%d %s %lx:%d %lx", ADD_HOST,
|
||||||
other->name, other->address, other->port, other->options);
|
other->name, other->address, other->port, other->options);
|
||||||
else
|
else
|
||||||
|
@ -904,7 +905,7 @@ cp
|
||||||
int send_del_host(connection_t *cl, connection_t *other)
|
int send_del_host(connection_t *cl, connection_t *other)
|
||||||
{
|
{
|
||||||
cp
|
cp
|
||||||
if(!(cl->options & OPTION_INDIRECT))
|
if(!((cl->options | myself->options) & OPTION_INDIRECT))
|
||||||
return send_request(cl, "%d %s %lx:%d %lx", DEL_HOST,
|
return send_request(cl, "%d %s %lx:%d %lx", DEL_HOST,
|
||||||
other->name, other->address, other->port, other->options);
|
other->name, other->address, other->port, other->options);
|
||||||
else
|
else
|
||||||
|
@ -1126,7 +1127,8 @@ cp
|
||||||
from->status.validkey = 0;
|
from->status.validkey = 0;
|
||||||
from->status.waitingforkey = 0;
|
from->status.waitingforkey = 0;
|
||||||
|
|
||||||
send_key_changed(from, cl);
|
if(!(from->options | cl->options | myself->options) & OPTION_INDIRECT)
|
||||||
|
send_key_changed(from, cl);
|
||||||
cp
|
cp
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue