Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/libalias/alias.c
Show First 20 Lines • Show All 1,324 Lines • ▼ Show 20 Lines | LibAliasInLocked(struct libalias *la, struct ip *pip, int maxpacketsize) | ||||
if (la->packetAliasMode & PKT_ALIAS_REVERSE) { | if (la->packetAliasMode & PKT_ALIAS_REVERSE) { | ||||
la->packetAliasMode &= ~PKT_ALIAS_REVERSE; | la->packetAliasMode &= ~PKT_ALIAS_REVERSE; | ||||
iresult = LibAliasOutLocked(la, pip, maxpacketsize, 1); | iresult = LibAliasOutLocked(la, pip, maxpacketsize, 1); | ||||
la->packetAliasMode |= PKT_ALIAS_REVERSE; | la->packetAliasMode |= PKT_ALIAS_REVERSE; | ||||
goto getout; | goto getout; | ||||
} | } | ||||
HouseKeeping(la); | HouseKeeping(la); | ||||
ClearCheckNewLink(la); | |||||
alias_addr = pip->ip_dst; | alias_addr = pip->ip_dst; | ||||
/* Defense against mangled packets */ | /* Defense against mangled packets */ | ||||
if (ntohs(pip->ip_len) > maxpacketsize | if (ntohs(pip->ip_len) > maxpacketsize | ||||
|| (pip->ip_hl << 2) > maxpacketsize) { | || (pip->ip_hl << 2) > maxpacketsize) { | ||||
iresult = PKT_ALIAS_IGNORED; | iresult = PKT_ALIAS_IGNORED; | ||||
goto getout; | goto getout; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 114 Lines • ▼ Show 20 Lines | ) | ||||
if (la->packetAliasMode & PKT_ALIAS_REVERSE) { | if (la->packetAliasMode & PKT_ALIAS_REVERSE) { | ||||
la->packetAliasMode &= ~PKT_ALIAS_REVERSE; | la->packetAliasMode &= ~PKT_ALIAS_REVERSE; | ||||
iresult = LibAliasInLocked(la, pip, maxpacketsize); | iresult = LibAliasInLocked(la, pip, maxpacketsize); | ||||
la->packetAliasMode |= PKT_ALIAS_REVERSE; | la->packetAliasMode |= PKT_ALIAS_REVERSE; | ||||
goto getout; | goto getout; | ||||
} | } | ||||
HouseKeeping(la); | HouseKeeping(la); | ||||
ClearCheckNewLink(la); | |||||
/* Defense against mangled packets */ | /* Defense against mangled packets */ | ||||
if (ntohs(pip->ip_len) > maxpacketsize | if (ntohs(pip->ip_len) > maxpacketsize | ||||
|| (pip->ip_hl << 2) > maxpacketsize) { | || (pip->ip_hl << 2) > maxpacketsize) { | ||||
iresult = PKT_ALIAS_IGNORED; | iresult = PKT_ALIAS_IGNORED; | ||||
goto getout; | goto getout; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 322 Lines • Show Last 20 Lines |