diff options
author | James Peach <jpeach@samba.org> | 2006-05-16 02:50:49 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:17:03 -0500 |
commit | 0ed76af63d25fe98fc0366708675a514a3c5bddb (patch) | |
tree | b9be0ddf6f61f4e4842e1f6d977127d5702458b1 | |
parent | 62f61caff4cb36070a0987bfccc679ade091f73b (diff) | |
download | samba-0ed76af63d25fe98fc0366708675a514a3c5bddb.tar.gz samba-0ed76af63d25fe98fc0366708675a514a3c5bddb.tar.bz2 samba-0ed76af63d25fe98fc0366708675a514a3c5bddb.zip |
r15631: Add a new option "enable core files". Administrators can use this to
disable automatic core file dumping. Core files are enabled by default.
(This used to be commit b59189280057849b67ac65f31cec23b859e21c91)
-rw-r--r-- | source3/lib/fault.c | 9 | ||||
-rw-r--r-- | source3/param/loadparm.c | 4 |
2 files changed, 13 insertions, 0 deletions
diff --git a/source3/lib/fault.c b/source3/lib/fault.c index 8ae45f2435..dc8c276d02 100644 --- a/source3/lib/fault.c +++ b/source3/lib/fault.c @@ -151,6 +151,15 @@ void dump_core_setup(const char *progname) void dump_core(void) { + /* Note that even if core dumping has been disabled, we still set up + * the core path. This is to handle the case where core dumping is + * turned on in smb.conf and the relevant daemon is not restarted. + */ + if (!lp_enable_core_files()) { + DEBUG(0, ("Exiting on internal error (core file administratively disabled\n")); + exit(1); + } + if (*corepath != '\0') { /* The chdir might fail if we dump core before we finish * processing the config file. diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 695e7f1aac..fadd4d0ee3 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -289,6 +289,7 @@ typedef struct { BOOL bDebugHiresTimestamp; BOOL bDebugPid; BOOL bDebugUid; + BOOL bEnableCoreFiles; BOOL bHostMSDfs; BOOL bUseMmap; BOOL bHostnameLookups; @@ -947,6 +948,7 @@ static struct parm_struct parm_table[] = { {"debug hires timestamp", P_BOOL, P_GLOBAL, &Globals.bDebugHiresTimestamp, NULL, NULL, FLAG_ADVANCED}, {"debug pid", P_BOOL, P_GLOBAL, &Globals.bDebugPid, NULL, NULL, FLAG_ADVANCED}, {"debug uid", P_BOOL, P_GLOBAL, &Globals.bDebugUid, NULL, NULL, FLAG_ADVANCED}, + {"enable core files", P_BOOL, P_GLOBAL, &Globals.bEnableCoreFiles, NULL, NULL, FLAG_ADVANCED}, {N_("Protocol Options"), P_SEP, P_SEPARATOR}, @@ -1504,6 +1506,7 @@ static void init_globals(BOOL first_time_only) Globals.bDebugHiresTimestamp = False; Globals.bDebugPid = False; Globals.bDebugUid = False; + Globals.bEnableCoreFiles = True; Globals.max_ttl = 60 * 60 * 24 * 3; /* 3 days default. */ Globals.max_wins_ttl = 60 * 60 * 24 * 6; /* 6 days default. */ Globals.min_wins_ttl = 60 * 60 * 6; /* 6 hours default. */ @@ -1875,6 +1878,7 @@ FN_GLOBAL_BOOL(lp_timestamp_logs, &Globals.bTimestampLogs) FN_GLOBAL_BOOL(lp_debug_hires_timestamp, &Globals.bDebugHiresTimestamp) FN_GLOBAL_BOOL(lp_debug_pid, &Globals.bDebugPid) FN_GLOBAL_BOOL(lp_debug_uid, &Globals.bDebugUid) +FN_GLOBAL_BOOL(lp_enable_core_files, &Globals.bEnableCoreFiles) FN_GLOBAL_BOOL(lp_browse_list, &Globals.bBrowseList) FN_GLOBAL_BOOL(lp_nis_home_map, &Globals.bNISHomeMap) static FN_GLOBAL_BOOL(lp_time_server, &Globals.bTimeServer) |