|
@@ -140,7 +140,7 @@ bool PacketDecoder::_doERROR(const RuntimeEnvironment *_r,const SharedPtr<Peer>
|
|
case Packet::ERROR_IDENTITY_COLLISION:
|
|
case Packet::ERROR_IDENTITY_COLLISION:
|
|
// TODO: if it comes from a supernode, regenerate a new identity
|
|
// TODO: if it comes from a supernode, regenerate a new identity
|
|
break;
|
|
break;
|
|
- case Packet::ERROR_NO_MEMBER_CERTIFICATE:
|
|
|
|
|
|
+ case Packet::ERROR_NEED_MEMBERSHIP_CERTIFICATE:
|
|
// TODO: send member certificate
|
|
// TODO: send member certificate
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
@@ -358,7 +358,7 @@ bool PacketDecoder::_doFRAME(const RuntimeEnvironment *_r,const SharedPtr<Peer>
|
|
Packet outp(source(),_r->identity.address(),Packet::VERB_ERROR);
|
|
Packet outp(source(),_r->identity.address(),Packet::VERB_ERROR);
|
|
outp.append((unsigned char)Packet::VERB_FRAME);
|
|
outp.append((unsigned char)Packet::VERB_FRAME);
|
|
outp.append(packetId());
|
|
outp.append(packetId());
|
|
- outp.append((unsigned char)Packet::ERROR_NO_MEMBER_CERTIFICATE);
|
|
|
|
|
|
+ outp.append((unsigned char)Packet::ERROR_NEED_MEMBERSHIP_CERTIFICATE);
|
|
outp.append(network->id());
|
|
outp.append(network->id());
|
|
outp.armor(peer->key(),true);
|
|
outp.armor(peer->key(),true);
|
|
_r->demarc->send(_localPort,_remoteAddress,outp.data(),outp.size(),-1);
|
|
_r->demarc->send(_localPort,_remoteAddress,outp.data(),outp.size(),-1);
|
|
@@ -466,7 +466,7 @@ bool PacketDecoder::_doMULTICAST_FRAME(const RuntimeEnvironment *_r,const Shared
|
|
Packet outp(source(),_r->identity.address(),Packet::VERB_ERROR);
|
|
Packet outp(source(),_r->identity.address(),Packet::VERB_ERROR);
|
|
outp.append((unsigned char)Packet::VERB_FRAME);
|
|
outp.append((unsigned char)Packet::VERB_FRAME);
|
|
outp.append(packetId());
|
|
outp.append(packetId());
|
|
- outp.append((unsigned char)Packet::ERROR_NO_MEMBER_CERTIFICATE);
|
|
|
|
|
|
+ outp.append((unsigned char)Packet::ERROR_NEED_MEMBERSHIP_CERTIFICATE);
|
|
outp.append(nwid);
|
|
outp.append(nwid);
|
|
outp.armor(peer->key(),true);
|
|
outp.armor(peer->key(),true);
|
|
_r->demarc->send(_localPort,_remoteAddress,outp.data(),outp.size(),-1);
|
|
_r->demarc->send(_localPort,_remoteAddress,outp.data(),outp.size(),-1);
|