6a3a52c9a4
that chooses right alias_address for outgoing packets that already have corresponding state in one of aliasing instances. This feature works just fine for ICMP, UDP, TCP and SCTP packes but not for others. For example, outgoing PPtP/GRE packets always get alias_address of latest configured instance no matter whether such packets have corresponding state or not. This change unbreaks translation of transit PPtP/GRE connections for "nat global" case fixing a bug in static ProtoAliasOut() function that ignores its "create" argument and performs translation regardless of its value. This static function is called only by LibAliasOutLocked() function and only for packers other than ICMP, UDP, TCP and SCTP. LibAliasOutLocked() passes its "create" argument unmodified. We have only two consumers of LibAliasOutLocked() in the source tree calling it with "create" unequal to 1: "ipfw nat global" code and similar natd code having same problem. All other consumers of LibAliasOutLocked() call it with create = 1 and the patch is "no-op" for such cases. PR: 218968 Approved by: ae, vsevolod (mentor) MFC after: 1 week |
||
---|---|---|
.. | ||
alias_cuseeme.c | ||
alias_db.c | ||
alias_dummy.c | ||
alias_ftp.c | ||
alias_irc.c | ||
alias_local.h | ||
alias_mod.c | ||
alias_mod.h | ||
alias_nbt.c | ||
alias_pptp.c | ||
alias_proxy.c | ||
alias_sctp.c | ||
alias_sctp.h | ||
alias_skinny.c | ||
alias_smedia.c | ||
alias_util.c | ||
alias.c | ||
alias.h | ||
HISTORY | ||
libalias.3 |