Skip to content

Commit

Permalink
Monitor: Add mode to generate confdb only
Browse files Browse the repository at this point in the history
With this mode we can add socket activated services and have systemd
pre exec sssd to genrate the configuration file w/o starting the whole
sssd if not necessary.

https://fedorahosted.org/sssd/ticket/2243

Reviewed-by: Jakub Hrozek <[email protected]>
  • Loading branch information
simo5 authored and jhrozek committed Jun 29, 2016
1 parent a9d46b8 commit 2aafa48
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 3 deletions.
24 changes: 21 additions & 3 deletions src/monitor/monitor.c
Original file line number Diff line number Diff line change
Expand Up @@ -2768,6 +2768,7 @@ int main(int argc, const char *argv[])
poptContext pc;
int opt_daemon = 0;
int opt_interactive = 0;
int opt_genconf = 0;
int opt_version = 0;
char *opt_config_file = NULL;
char *config_file = NULL;
Expand All @@ -2787,8 +2788,11 @@ int main(int argc, const char *argv[])
_("Run interactive (not a daemon)"), NULL}, \
{"config", 'c', POPT_ARG_STRING, &opt_config_file, 0, \
_("Specify a non-default config file"), NULL}, \
{"version", '\0', POPT_ARG_NONE, &opt_version, 0, \
_("Print version number and exit"), NULL }, \
{"genconf", 'g', POPT_ARG_NONE, &opt_genconf, 0, \
_("Refresh the configuration database, then exit"), \
NULL}, \
{"version", '\0', POPT_ARG_NONE, &opt_version, 0, \
_("Print version number and exit"), NULL }, \
POPT_TABLEEND
};

Expand Down Expand Up @@ -2826,7 +2830,13 @@ int main(int argc, const char *argv[])
return 1;
}

if (!opt_daemon && !opt_interactive) {
if (opt_genconf && (opt_daemon || opt_interactive)) {
fprintf(stderr, "Option -g is incompatible with -D or -i\n");
poptPrintUsage(pc, stderr, 0);
return 1;
}

if (!opt_daemon && !opt_interactive && !opt_genconf) {
opt_daemon = 1;
}

Expand All @@ -2850,6 +2860,10 @@ int main(int argc, const char *argv[])
flags |= FLAGS_INTERACTIVE;
debug_to_stderr = 1;
}
if (opt_genconf) {
flags |= FLAGS_GEN_CONF;
debug_to_stderr = 1;
}

if (opt_config_file) {
config_file = talloc_strdup(tmp_ctx, opt_config_file);
Expand Down Expand Up @@ -2956,6 +2970,10 @@ int main(int argc, const char *argv[])
return 4;
}

/* at this point we are done generating the config file, we may exit
* if that's all we were asked to do */
if (opt_genconf) return 0;

/* set up things like debug , signals, daemonization, etc... */
monitor->conf_path = CONFDB_MONITOR_CONF_ENTRY;
ret = close(STDIN_FILENO);
Expand Down
1 change: 1 addition & 0 deletions src/util/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
#define FLAGS_DAEMON 0x0001
#define FLAGS_INTERACTIVE 0x0002
#define FLAGS_PID_FILE 0x0004
#define FLAGS_GEN_CONF 0x0008

#define PIPE_INIT { -1, -1 }

Expand Down

0 comments on commit 2aafa48

Please sign in to comment.