PERFORCE change 137323 for review
Paolo Pisati
piso at FreeBSD.org
Mon Mar 10 16:11:28 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=137323
Change 137323 by piso at piso_ferret on 2008/03/10 16:10:28
-Don't pass the entire pkt to FragmentIn() & FragmentOut()
-Remove some stale comments
Affected files ...
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#67 edit
Differences ...
==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#67 (text+ko) ====
@@ -642,8 +642,6 @@
return (iresult);
}
-
-// XXX ip free
static int
ProtoAliasIn(struct libalias *la, struct in_addr ip_src,
struct in_addr *ip_dst, u_char ip_p, u_short *ip_sum)
@@ -677,7 +675,6 @@
return (PKT_ALIAS_IGNORED);
}
-// XXX ip free
static int
ProtoAliasOut(struct libalias *la, struct in_addr *ip_src,
struct in_addr ip_dst, u_char ip_p, u_short *ip_sum, int create)
@@ -1094,41 +1091,42 @@
*/
/* Local prototypes */
-static int FragmentIn(struct libalias *, struct ip *);
-static int FragmentOut(struct libalias *, struct ip *);
+static int FragmentIn(struct libalias *la, struct in_addr ip_src,
+ struct in_addr *ip_dst, u_char ip_p, u_short *ip_sum);
+static int FragmentOut(struct libalias *, struct in_addr *ip_src,
+ u_short *ip_sum);
-// XXX ip free
static int
-FragmentIn(struct libalias *la, struct ip *pip)
+FragmentIn(struct libalias *la, struct in_addr ip_src, struct in_addr *ip_dst,
+ u_char ip_id, u_short *ip_sum)
{
struct alias_link *lnk;
LIBALIAS_LOCK_ASSERT(la);
- lnk = FindFragmentIn2(la, pip->ip_src, pip->ip_dst, pip->ip_id);
+ lnk = FindFragmentIn2(la, ip_src, *ip_dst, ip_id);
if (lnk != NULL) {
struct in_addr original_address;
GetFragmentAddr(lnk, &original_address);
- DifferentialChecksum(&pip->ip_sum,
- &original_address, &pip->ip_dst, 2);
- pip->ip_dst = original_address;
+ DifferentialChecksum(ip_sum,
+ &original_address, ip_dst, 2);
+ *ip_dst = original_address;
return (PKT_ALIAS_OK);
}
return (PKT_ALIAS_UNRESOLVED_FRAGMENT);
}
-// XXX ip free
static int
-FragmentOut(struct libalias *la, struct ip *pip)
+FragmentOut(struct libalias *la, struct in_addr *ip_src, u_short *ip_sum)
{
struct in_addr alias_address;
LIBALIAS_LOCK_ASSERT(la);
- alias_address = FindAliasAddress(la, pip->ip_src);
- DifferentialChecksum(&pip->ip_sum,
- &alias_address, &pip->ip_src, 2);
- pip->ip_src = alias_address;
+ alias_address = FindAliasAddress(la, *ip_src);
+ DifferentialChecksum(ip_sum,
+ &alias_address, ip_src, 2);
+ *ip_src = alias_address;
return (PKT_ALIAS_OK);
}
@@ -1310,7 +1308,8 @@
}
}
} else {
- iresult = FragmentIn(la, pip);
+ iresult = FragmentIn(la, pip->ip_src, &pip->ip_dst, pip->ip_id,
+ &pip->ip_sum);
}
getout:
@@ -1441,7 +1440,7 @@
break;
}
} else {
- iresult = FragmentOut(la, pip);
+ iresult = FragmentOut(la, &pip->ip_src, &pip->ip_sum);
}
SetDefaultAliasAddress(la, addr_save);
More information about the p4-projects
mailing list