Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Jul 2009 20:06:03 GMT
From:      Ana Kukec <anchie@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 166103 for review
Message-ID:  <200907142006.n6EK63x8037413@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=166103

Change 166103 by anchie@anchie_malimis on 2009/07/14 20:05:33

	Write to routing socket, to send a message processed by SEND 
	application back to kernel.	

Affected files ...

.. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#18 edit

Differences ...

==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#18 (text+ko) ====

@@ -39,6 +39,7 @@
 #include <netinet/in.h>
 #include <net/route.h>
 #include <net/if.h>
+#include <netinet/in.h>
 #include <netinet6/send.h>
 
 #include "config.h"
@@ -143,8 +144,19 @@
 	DBG(&dbg_snd, "%d bytes on %s", b->len, pi->ifinfo->name);
 
 	rtm = sbuff_data(b);
-	rtm->rtm_msglen = sizeof(struct rt_msghdr) + b->len;	
-	DBG(&dbg_snd, "RTM_VERSION = %d", rtm->rtm_version);
+
+	/* RTM header already has rtm version, type, etc. set up */
+	rtm->rtm_msglen = b->len;
+	rtm->rtm_addrs = 0;
+
+	if (send(sndsock, rtm, rtm->rtm_msglen, 0) < 0) {
+		DBG(&dbg_snd, "Failed to send routing message back to kernel.");
+		perror("Failed");
+		snd_put_buf(b);
+		return;
+	}
+
+	snd_put_buf(b);
 }
 
 void
@@ -243,6 +255,9 @@
 		goto done;
 	}
 
+	DBG(&dbg_snd, "rtm->rtm_addrs = %x", rtm->rtm_addrs);
+	DBG(&dbg_snd, "rtm->rtm_msglen = %d", rtm->rtm_msglen);
+
 	switch (rtm->rtm_type) {
 	case RTM_IFANNOUNCE:
 		/* XXX: Do we need this? */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907142006.n6EK63x8037413>