Commit d4627c06 authored by Juliusz Chroboczek's avatar Juliusz Chroboczek

Special-case IPv4 in really_send_update.

parent e2a0cee7
...@@ -526,15 +526,19 @@ really_send_update(struct network *net, ...@@ -526,15 +526,19 @@ really_send_update(struct network *net,
unsigned short seqno, unsigned short metric) unsigned short seqno, unsigned short metric)
{ {
if(!export_filter(address, prefix, plen)) { if(!export_filter(address, prefix, plen)) {
if(in_prefix(address, prefix, plen)) { if(plen >= 96 && v4mapped(prefix)) {
send_message(net, 3, plen, 0, seqno, metric, address); ;
} else { } else {
unsigned const char *sid; if(in_prefix(address, prefix, plen)) {
start_message(net, 48); send_message(net, 3, plen, 0, seqno, metric, address);
sid = message_source_id(net); } else {
if(sid == NULL || memcmp(address, sid, 16) != 0) unsigned const char *sid;
send_message(net, 3, 0xFF, 0, 0, 0xFFFF, address); start_message(net, 48);
send_message(net, 4, plen, 0, seqno, metric, prefix); sid = message_source_id(net);
if(sid == NULL || memcmp(address, sid, 16) != 0)
send_message(net, 3, 0xFF, 0, 0, 0xFFFF, address);
send_message(net, 4, plen, 0, seqno, metric, prefix);
}
} }
} }
satisfy_request(prefix, plen, seqno, hash_id(address), net); satisfy_request(prefix, plen, seqno, hash_id(address), net);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment