mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-26 08:55:18 +03:00
systemd-coredump: allow setting external core size to infinity
Make it compatible to the ulimit setting: unlimited
This commit is contained in:
parent
548614cc9a
commit
6e8791a042
@ -98,6 +98,8 @@
|
||||
|
||||
<listitem><para>The maximum (compressed or uncompressed) size in bytes of a core to be saved. Unit
|
||||
suffixes are allowed just as in <option>ProcessSizeMax=</option>.</para></listitem>
|
||||
|
||||
<para><varname>ExternalSizeMax=infinity</varname> sets the core size to unlimited.</para>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
|
@ -154,13 +154,13 @@ static uint64_t arg_max_use = UINT64_MAX;
|
||||
|
||||
static int parse_config(void) {
|
||||
static const ConfigTableItem items[] = {
|
||||
{ "Coredump", "Storage", config_parse_coredump_storage, 0, &arg_storage },
|
||||
{ "Coredump", "Compress", config_parse_bool, 0, &arg_compress },
|
||||
{ "Coredump", "ProcessSizeMax", config_parse_iec_uint64, 0, &arg_process_size_max },
|
||||
{ "Coredump", "ExternalSizeMax", config_parse_iec_uint64, 0, &arg_external_size_max },
|
||||
{ "Coredump", "JournalSizeMax", config_parse_iec_size, 0, &arg_journal_size_max },
|
||||
{ "Coredump", "KeepFree", config_parse_iec_uint64, 0, &arg_keep_free },
|
||||
{ "Coredump", "MaxUse", config_parse_iec_uint64, 0, &arg_max_use },
|
||||
{ "Coredump", "Storage", config_parse_coredump_storage, 0, &arg_storage },
|
||||
{ "Coredump", "Compress", config_parse_bool, 0, &arg_compress },
|
||||
{ "Coredump", "ProcessSizeMax", config_parse_iec_uint64, 0, &arg_process_size_max },
|
||||
{ "Coredump", "ExternalSizeMax", config_parse_iec_uint64_infinity, 0, &arg_external_size_max },
|
||||
{ "Coredump", "JournalSizeMax", config_parse_iec_size, 0, &arg_journal_size_max },
|
||||
{ "Coredump", "KeepFree", config_parse_iec_uint64, 0, &arg_keep_free },
|
||||
{ "Coredump", "MaxUse", config_parse_iec_uint64, 0, &arg_max_use },
|
||||
{}
|
||||
};
|
||||
|
||||
|
@ -677,6 +677,31 @@ int config_parse_iec_uint64(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_iec_uint64_infinity(
|
||||
const char* unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
const char *section,
|
||||
unsigned section_line,
|
||||
const char *lvalue,
|
||||
int ltype,
|
||||
const char *rvalue,
|
||||
void *data,
|
||||
void *userdata) {
|
||||
|
||||
uint64_t *bytes = data;
|
||||
|
||||
assert(rvalue);
|
||||
assert(data);
|
||||
|
||||
if (streq(rvalue, "infinity")) {
|
||||
*bytes = UINT64_MAX;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return config_parse_iec_uint64(unit, filename, line, section, section_line, lvalue, ltype, rvalue, data, userdata);
|
||||
}
|
||||
|
||||
int config_parse_bool(
|
||||
const char* unit,
|
||||
const char *filename,
|
||||
|
@ -126,6 +126,7 @@ CONFIG_PARSER_PROTOTYPE(config_parse_double);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_iec_size);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_si_uint64);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_iec_uint64);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_iec_uint64_infinity);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_bool);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_id128);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tristate);
|
||||
|
Loading…
Reference in New Issue
Block a user