From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Brivio To: passt-dev@passt.top Subject: [PATCH 2/8] conf: Drop duplicate, diverging optstring assignments Date: Fri, 07 Oct 2022 02:47:36 +0200 Message-ID: <20221007004742.1188933-3-sbrivio@redhat.com> In-Reply-To: <20221007004742.1188933-1-sbrivio@redhat.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5964177068493543759==" --===============5964177068493543759== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit This originated as a result of copy and paste to introduce a second stage for processing options related to port forwarding, has already bitten David in the past, and just gave me hours of fun. As a matter of fact, the second set of optstring assignments was already incorrect, but it didn't matter because the first one was more restrictive, not allowing optional arguments for -P, -D, -S. Signed-off-by: Stefano Brivio --- conf.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/conf.c b/conf.c index ba1d8de..e9cd4a7 100644 --- a/conf.c +++ b/conf.c @@ -1043,25 +1043,23 @@ void conf(struct ctx *c, int argc, char **argv) struct fqdn *dnss = c->dns_search; uint32_t *dns4 = c->ip4.dns; int name, ret, mask, b, i; + const char *optstring; unsigned int ifi = 0; char *runas = NULL; uid_t uid; gid_t gid; - if (c->mode == MODE_PASTA) + if (c->mode == MODE_PASTA) { c->no_dhcp_dns = c->no_dhcp_dns_search = 1; + optstring = "dqfehI:p:P:m:a:n:M:g:i:D:S:46t:u:T:U:"; + } else { + optstring = "dqfehs:p:P:m:a:n:M:g:i:D:S:46t:u:"; + } c->tcp.fwd_in.mode = c->tcp.fwd_out.mode = 0; c->udp.fwd_in.f.mode = c->udp.fwd_out.f.mode = 0; do { - const char *optstring; - - if (c->mode == MODE_PASST) - optstring = "dqfehs:p:P:m:a:n:M:g:i:D:S:46t:u:"; - else - optstring = "dqfehI:p:P:m:a:n:M:g:i:D:S:46t:u:T:U:"; - name = getopt_long(argc, argv, optstring, options, NULL); switch (name) { @@ -1505,12 +1503,6 @@ void conf(struct ctx *c, int argc, char **argv) optind = 1; do { struct port_fwd *fwd = NULL; - const char *optstring; - - if (c->mode == MODE_PASST) - optstring = "dqfehs:p::P:m:a:n:M:g:i:D::S::46t:u:"; - else - optstring = "dqfehI:p::P:m:a:n:M:g:i:D::S::46t:u:T:U:"; name = getopt_long(argc, argv, optstring, options, NULL); switch (name) { -- 2.35.1 --===============5964177068493543759==--