0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 17:51:53 +00:00

Bird's info are now understood by ripquery.

This commit is contained in:
Pavel Machek 1998-07-30 07:43:45 +00:00
parent 279f4c7b7b
commit bf65d27dea

View File

@ -33,8 +33,10 @@ int infinity = 16;
static void static void
rip_reply(struct proto *p) rip_reply(struct proto *p)
{ {
#if 0
P->listen->tbuf = "ACK!"; P->listen->tbuf = "ACK!";
sk_send_to( P->listen, 5, P->listen->faddr, P->listen->fport ); sk_send_to( P->listen, 5, P->listen->faddr, P->listen->fport );
#endif
} }
/* /*
@ -148,16 +150,16 @@ givemore:
return; return;
} }
packet->heading.command = 99; /* FIXME */ packet->heading.command = RIPCMD_RESPONSE;
packet->heading.version = RIP_V2; packet->heading.version = RIP_V2;
packet->heading.unused = 0; packet->heading.unused = 0;
for (i = 0; i < 25; i++) { for (i = 0; i < 25; i++) {
if (!(NODE c->sendptr)->next) if (!(NODE c->sendptr)->next)
break; break;
debug( "." ); debug( "." );
packet->block[i].family = htons( 0 ); /* Is it right? */ packet->block[i].family = htons( 2 ); /* AF_INET */
packet->block[i].tag = htons( 0 ); /* What should I set it to? */ packet->block[i].tag = htons( 0 ); /* What should I set it to? */
packet->block[i].network = c->sendptr->network; packet->block[i].network = c->sendptr->network;
packet->block[i].netmask = ipa_mkmask( c->sendptr->pxlen ); packet->block[i].netmask = ipa_mkmask( c->sendptr->pxlen );
packet->block[i].nexthop = IPA_NONE; /* FIXME: How should I set it? */ packet->block[i].nexthop = IPA_NONE; /* FIXME: How should I set it? */
@ -169,9 +171,9 @@ givemore:
c->sendptr = (void *) (NODE c->sendptr)->next; c->sendptr = (void *) (NODE c->sendptr)->next;
} }
debug( ", sending %d blocks, ", i+1 ); debug( ", sending %d blocks, ", i );
i = sk_send( s, sizeof( struct rip_packet_heading ) + (i+1)*sizeof( struct rip_block ) ); i = sk_send( s, sizeof( struct rip_packet_heading ) + i*sizeof( struct rip_block ) );
if (i<0) rip_tx_err( s, i ); if (i<0) rip_tx_err( s, i );
if (i>0) { if (i>0) {
debug( "it wants more\n" ); debug( "it wants more\n" );
@ -202,7 +204,7 @@ rip_sendto( struct proto *p, ip_addr daddr, int dport )
c->send->data = c; c->send->data = c;
c->send->tbuf = mb_alloc( p->pool, sizeof( struct rip_packet )); c->send->tbuf = mb_alloc( p->pool, sizeof( struct rip_packet ));
if (sk_open(c->send)<0) { if (sk_open(c->send)<0) {
log( L_ERR "Could not send data to %I:%d\n", daddr, dport ); log( L_ERR "Could not open socket for data send to %I:%d\n", daddr, dport );
return; return;
} }
@ -375,8 +377,10 @@ rip_timer(timer *t)
} }
} }
#if 0
debug( "RIP: Broadcasting routing tables\n" ); debug( "RIP: Broadcasting routing tables\n" );
rip_sendto( p, _MI( 0x0a000001 ), RIP_PORT ); rip_sendto( p, _MI( 0x0a000001 ), RIP_PORT );
#endif
debug( "RIP: tick tock done\n" ); debug( "RIP: tick tock done\n" );
} }