PERFORCE change 165605 for review
Ana Kukec
anchie at FreeBSD.org
Sat Jul 4 18:37:09 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=165605
Change 165605 by anchie at anchie_malimis on 2009/07/04 18:36:59
Write information about the raw socket into snd_ifinfo structure.
Affected files ...
.. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#11 edit
.. //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd.c#8 edit
Differences ...
==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#11 (text+ko) ====
@@ -92,6 +92,7 @@
int
snd_handle_iface(const char *ifname, int ifidx)
{
+ applog(LOG_ERR, "snd_handle_iface");
struct snd_ifinfo *p;
if ((p = malloc(sizeof (*p))) == NULL) {
@@ -101,7 +102,9 @@
memset(p, 0, sizeof (*p));
snprintf(p->name, sizeof (p->name), "%s", ifname);
+ DBG(&dbg_snd, "snd_handle_iface -> p->name = %s", p->name);
p->ifidx = ifidx;
+ DBG(&dbg_snd, "snd_handle_iface -> p->ifidx = %d", ifidx);
p->snds = -1;
list_add_tail(&p->list, &ifaces);
@@ -109,14 +112,16 @@
}
void
-snd_add_fds(fd_set *fds, int *maxfd)
+snd_add_fds(fd_set *fds, int *maxfd, int sock)
{
struct snd_ifinfo *p;
list_for_each_entry(p, &ifaces, list) {
+ DBG(&dbg_snd, "*maxfd = %d, p->snds = %d", *maxfd, p->snds);
*maxfd = *maxfd > p->snds ? *maxfd : p->snds;
+ p->snds = sock;
+ FD_SET(p->snds, fds);
applog(LOG_ERR, "snds added to snd_ifinfo.");
- FD_SET(p->snds, fds);
}
}
@@ -128,6 +133,7 @@
applog(LOG_ERR, "SEND must be active on at least one iface");
return (-1);
}
+
return (0);
}
@@ -335,6 +341,8 @@
applog(LOG_ERR, "%s: routing socket created.", __FUNCTION__);
}
+ applog(LOG_ERR, "*icmp6sock = %d, *sndsock = %d", *icmp6sock, *sndsock);
+
v = 255;
if (setsockopt(*icmp6sock, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &v,
sizeof (v)) < 0) {
@@ -361,4 +369,6 @@
__FUNCTION__, strerror(errno));
return (-1);
}
+
+ return (0);
}
==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/sendd.c#8 (text+ko) ====
@@ -95,9 +95,10 @@
FD_SET(icmps, fds);
FD_SET(ctlfd, fds);
/* Routing socket instead of using netgraph for ND/SeND */
- FD_SET(snds, fds);
+ /* FD_SET(snds, fds); */
/* os_specific_add_fds(fds, &maxfd); */
- snd_add_fds(fds, &maxfd);
+ snd_add_fds(fds, &maxfd, snds);
+ DBG(&snd_dbg, "after snd_add_fds");
tv = get_next_wait(tvb);
if (select(maxfd + 1, fds, NULL, NULL, tv) < 0) {
@@ -162,7 +163,7 @@
{
const char **lm = applog_get_methods();
- fprintf(stderr, "-> Usage: %s [-fV] [-c <conf>] [-i <iface>] "
+ fprintf(stderr, "---> Usage: %s [-fV] [-c <conf>] [-i <iface>] "
"[-l <log method>]\n", this);
fprintf(stderr, " log methods: ");
for (; *lm; lm++) {
@@ -177,6 +178,8 @@
int r, c, icmps, snds, ctlfd, do_daemon = 1;
char *cfile = SNDD_CONF_FILE;
+ icmps = snds = (int *) malloc(sizeof(int));
+
#ifdef DEBUG
if (applog_open(L_STDERR, SENDD_NAME) < 0) {
exit(1);
More information about the p4-projects
mailing list