diff options
author | Damien Miller <djm@mindrot.org> | 2011-05-20 19:04:14 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2011-05-20 19:04:14 +1000 |
commit | f2e407e2dd83addc26b68b4218d8b6ceaceca54b (patch) | |
tree | b059a9e677f7bcb911da414f621a03f672dd1412 /monitor_wrap.c | |
parent | c2411909c7ff298744998e00c7a5f1f64fbb0349 (diff) | |
download | openssh-git-f2e407e2dd83addc26b68b4218d8b6ceaceca54b.tar.gz |
- djm@cvs.openbsd.org 2011/05/20 03:25:45
[monitor.c monitor_wrap.c servconf.c servconf.h]
use a macro to define which string options to copy between configs
for Match. This avoids problems caused by forgetting to keep three
code locations in perfect sync and ordering
"this is at once beautiful and horrible" + ok dtucker@
Diffstat (limited to 'monitor_wrap.c')
-rw-r--r-- | monitor_wrap.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/monitor_wrap.c b/monitor_wrap.c index 1a5dda56..d3f27402 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor_wrap.c,v 1.70 2010/08/31 11:54:45 djm Exp $ */ +/* $OpenBSD: monitor_wrap.c,v 1.71 2011/05/20 03:25:45 djm Exp $ */ /* * Copyright 2002 Niels Provos <provos@citi.umich.edu> * Copyright 2002 Markus Friedl <markus@openbsd.org> @@ -245,8 +245,15 @@ out: newopts = buffer_get_string(&m, &len); if (len != sizeof(*newopts)) fatal("%s: option block size mismatch", __func__); - if (newopts->banner != NULL) - newopts->banner = buffer_get_string(&m, NULL); + +#define M_CP_STROPT(x) do { \ + if (newopts->x != NULL) \ + newopts->x = buffer_get_string(&m, NULL); \ + } while (0) + /* See comment in servconf.h */ + COPY_MATCH_STRING_OPTS(); +#undef M_CP_STROPT + copy_set_server_options(&options, newopts, 1); xfree(newopts); |