Browse Source

Send need credential error on more cases.

Adam Ierymenko 9 years ago
parent
commit
5ee1ccd659
1 changed files with 4 additions and 0 deletions
  1. 4 0
      node/IncomingPacket.cpp

+ 4 - 0
node/IncomingPacket.cpp

@@ -737,6 +737,8 @@ bool IncomingPacket::_doMULTICAST_LIKE(const RuntimeEnvironment *RR,const Shared
 				if ((!network)||(network->id() != nwid))
 				if ((!network)||(network->id() != nwid))
 					network = RR->node->network(nwid);
 					network = RR->node->network(nwid);
 				const bool authOnNet = ((network)&&(network->gate(peer)));
 				const bool authOnNet = ((network)&&(network->gate(peer)));
+				if (!authOnNet)
+					_sendErrorNeedCredentials(RR,peer,nwid);
 				trustEstablished |= authOnNet;
 				trustEstablished |= authOnNet;
 				if (authOnNet||RR->mc->cacheAuthorized(peer->address(),nwid,now)) {
 				if (authOnNet||RR->mc->cacheAuthorized(peer->address(),nwid,now)) {
 					auth = true;
 					auth = true;
@@ -1019,6 +1021,8 @@ bool IncomingPacket::_doMULTICAST_GATHER(const RuntimeEnvironment *RR,const Shar
 		}
 		}
 
 
 		const bool trustEstablished = ((network)&&(network->gate(peer)));
 		const bool trustEstablished = ((network)&&(network->gate(peer)));
+		if (!trustEstablished)
+			_sendErrorNeedCredentials(RR,peer,nwid);
 		if ( ( trustEstablished || RR->mc->cacheAuthorized(peer->address(),nwid,RR->node->now()) ) && (gatherLimit > 0) ) {
 		if ( ( trustEstablished || RR->mc->cacheAuthorized(peer->address(),nwid,RR->node->now()) ) && (gatherLimit > 0) ) {
 			Packet outp(peer->address(),RR->identity.address(),Packet::VERB_OK);
 			Packet outp(peer->address(),RR->identity.address(),Packet::VERB_OK);
 			outp.append((unsigned char)Packet::VERB_MULTICAST_GATHER);
 			outp.append((unsigned char)Packet::VERB_MULTICAST_GATHER);