summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--proto/rip/rip.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/proto/rip/rip.c b/proto/rip/rip.c
index 37076e65..233ded67 100644
--- a/proto/rip/rip.c
+++ b/proto/rip/rip.c
@@ -116,15 +116,8 @@ rip_tx( sock *s )
DBG( "Sending to %I\n", s->daddr );
do {
- if (c->done) {
- im_done:
- DBG( "Looks like I'm" );
- c->rif->busy = NULL;
- rem_node(NODE c);
- mb_free(c);
- DBG( " done\n" );
- return;
- }
+ if (c->done)
+ goto done;
DBG( "Preparing packet to send: " );
@@ -159,14 +152,12 @@ rip_tx( sock *s )
if (!i) {
DBG( "not sending NULL update\n" );
c->done = 1;
- goto im_done;
- }
- else {
- if (ipa_nonzero(c->daddr))
- i = sk_send_to( s, packetlen, c->daddr, c->dport );
- else
- i = sk_send( s, packetlen );
+ goto done;
}
+ if (ipa_nonzero(c->daddr))
+ i = sk_send_to( s, packetlen, c->daddr, c->dport );
+ else
+ i = sk_send( s, packetlen );
DBG( "it wants more\n" );
@@ -176,6 +167,13 @@ rip_tx( sock *s )
DBG( "blocked\n" );
return;
+done:
+ DBG( "Looks like I'm" );
+ c->rif->busy = NULL;
+ rem_node(NODE c);
+ mb_free(c);
+ DBG( " done\n" );
+ return;
}
static void