diff options
-rw-r--r-- | sbin/natd/natd.8 | 7 | ||||
-rw-r--r-- | sbin/natd/natd.c | 6 |
2 files changed, 9 insertions, 4 deletions
diff --git a/sbin/natd/natd.8 b/sbin/natd/natd.8 index a6bf1b664a4a..90f5c13e46b1 100644 --- a/sbin/natd/natd.8 +++ b/sbin/natd/natd.8 @@ -315,9 +315,12 @@ will be used as a default. Use .Ar address as the aliasing address. -If this option is not specified, the +Either this or the .Fl interface -option must be used. +option must be used (but not both), +if the +.Fl proxy_only +option is not specified. The specified address is usually the address assigned to the .Dq public network interface. diff --git a/sbin/natd/natd.c b/sbin/natd/natd.c index 38f923fe5424..40f68c26e260 100644 --- a/sbin/natd/natd.c +++ b/sbin/natd/natd.c @@ -169,9 +169,11 @@ int main (int argc, char** argv) openlog ("natd", LOG_CONS | LOG_PID | (verbose ? LOG_PERROR : 0), logFacility); /* - * Check that valid aliasing address has been given. + * If not doing the transparent proxying only, + * check that valid aliasing address has been given. */ - if (aliasAddr.s_addr == INADDR_NONE && ifName == NULL) + if (aliasAddr.s_addr == INADDR_NONE && ifName == NULL && + !(PacketAliasSetMode(0,0) & PKT_ALIAS_PROXY_ONLY)) errx (1, "aliasing address not given"); if (aliasAddr.s_addr != INADDR_NONE && ifName != NULL) |