PERFORCE change 165786 for review
Ana Kukec
anchie at FreeBSD.org
Tue Jul 7 20:24:54 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=165786
Change 165786 by anchie at anchie_malimis on 2009/07/07 20:23:54
Process the information about the interface on which SeND
message was received.
Affected files ...
.. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#15 edit
.. //depot/projects/soc2009/anchie_send/send_0.2/sendd/proto.c#7 edit
.. //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd.c#10 edit
.. //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd_local.h#4 edit
Differences ...
==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#15 (text+ko) ====
@@ -89,6 +89,18 @@
int direction;
};
+void
+snd_dispatch_fds(fd_set *fds)
+{
+ struct snd_ifinfo *p;
+
+ list_for_each_entry(p, &ifaces, list) {
+ if (FD_ISSET(sndsock, fds)) {
+ snd_sock_read(p);
+ }
+ }
+}
+
int
snd_handle_iface(const char *ifname, int ifidx)
{
@@ -177,13 +189,13 @@
}
void
-snd_sock_read()
+snd_sock_read(struct snd_ifinfo *p)
{
struct rt_msghdr *rtm;
struct if_announcemsghdr *ifan;
struct sbuff *b, *b1;
struct snd_packet_info *pi;
- int n, ifidx = -1;
+ int n;
if ((b = snd_get_buf()) == NULL) {
return;
@@ -219,7 +231,7 @@
/* n = RTM hdr + m as passed to nd6_ns_input() */
b = (struct rt_msghdr *) &ifan[1];
/* ToDo: Extract ifidx. */
- snd_recv_pkt(b, ifidx, SND_IN);
+ snd_recv_pkt(b, p->ifidx, SND_IN);
break;
case RTM_SND_OUT:
applog(LOG_ERR, "RTM_SND_OUT");
@@ -229,8 +241,7 @@
goto done;
}
- /* ToDo: Extract ifidx. */
- snd_recv_pkt(b, ifidx, SND_OUT);
+ snd_recv_pkt(b, p->ifidx, SND_OUT);
break;
}
break;
==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/proto.c#7 (text+ko) ====
@@ -667,11 +667,10 @@
void *start;
struct ip6_hdr *iph;
-#if 0
- if (!snd_iface_ok_(ifidx)) {
+ if (!snd_iface_ok(ifidx)) {
return;
}
-#endif
+
#if 0
if (!in)
if (sbuff_pull(b, sizeof (struct ether_header)) == NULL) {
==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd.c#10 (text+ko) ====
@@ -95,7 +95,6 @@
FD_SET(icmps, fds);
FD_SET(ctlfd, fds);
/* Routing socket instead of using netgraph for ND/SeND */
- /* FD_SET(snds, fds); */
/* os_specific_add_fds(fds, &maxfd); */
snd_add_fds(fds, &maxfd, snds);
DBG(&snd_dbg, "after snd_add_fds");
@@ -125,10 +124,10 @@
if (FD_ISSET(ctlfd, fds)) {
snd_ctl_read(ctlfd);
}
- if (FD_ISSET(snds, fds)) {
- snd_sock_read();
- }
- /* os_specific_dispatch_fds(fds); */
+#if 0
+ os_specific_dispatch_fds(fds);
+#endif
+ snd_dispatch_fds(fds);
snd_replace_non_cga_linklocals();
}
}
==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd_local.h#4 (text+ko) ====
@@ -130,7 +130,6 @@
/* net.c */
extern void snd_icmp_sock_read(void);
-extern void snd_sock_read(void);
extern int snd_net_init(int *, int *);
extern struct sbuff *snd_get_buf(void);
extern void snd_put_buf(struct sbuff *);
More information about the p4-projects
mailing list