summaryrefslogtreecommitdiff
path: root/lib/libalias/alias.c
diff options
context:
space:
mode:
authorBrian Somers <brian@FreeBSD.org>1999-06-22 11:20:03 +0000
committerBrian Somers <brian@FreeBSD.org>1999-06-22 11:20:03 +0000
commit0622eafc89d86e8dd20dda2d88940fb75e3f8cfd (patch)
tree6b3e64750c8cacf88acf9a6f69b98644822f9a2e /lib/libalias/alias.c
parent378d10a91d8c974338dec9966139a4bf302b393f (diff)
Notes
Diffstat (limited to 'lib/libalias/alias.c')
-rw-r--r--lib/libalias/alias.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/libalias/alias.c b/lib/libalias/alias.c
index 10e0ccc31643..8b18a73af140 100644
--- a/lib/libalias/alias.c
+++ b/lib/libalias/alias.c
@@ -1174,8 +1174,12 @@ PacketAliasIn(char *ptr, int maxpacketsize)
struct ip *pip;
int iresult;
- if (packetAliasMode & PKT_ALIAS_REVERSE)
- return PacketAliasOut(ptr, maxpacketsize);
+ if (packetAliasMode & PKT_ALIAS_REVERSE) {
+ packetAliasMode &= ~PKT_ALIAS_REVERSE;
+ iresult = PacketAliasOut(ptr, maxpacketsize);
+ packetAliasMode |= PKT_ALIAS_REVERSE;
+ return iresult;
+ }
HouseKeeping();
ClearCheckNewLink();
@@ -1256,8 +1260,12 @@ PacketAliasOut(char *ptr, /* valid IP packet */
struct in_addr addr_save;
struct ip *pip;
- if (packetAliasMode & PKT_ALIAS_REVERSE)
- return PacketAliasIn(ptr, maxpacketsize);
+ if (packetAliasMode & PKT_ALIAS_REVERSE) {
+ packetAliasMode &= ~PKT_ALIAS_REVERSE;
+ iresult = PacketAliasIn(ptr, maxpacketsize);
+ packetAliasMode |= PKT_ALIAS_REVERSE;
+ return iresult;
+ }
HouseKeeping();
ClearCheckNewLink();