Libical API Documentation 4.0 UNRELEASED Go to the stable 3.0 documentation
Loading...
Searching...
No Matches
icallimits.c
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: Allen Winter <winter@kde.org>
3 * SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
4 */
5
10
11#ifdef HAVE_CONFIG_H
12#include <config.h>
13#endif
14
15#include "icallimits.h"
16#include "icalerror_p.h"
17
18static ICAL_GLOBAL_VAR size_t _MAX_PARSE_FAILURES = 1000;
19static ICAL_GLOBAL_VAR size_t _MAX_PARSE_SEARCH = 100000;
20static ICAL_GLOBAL_VAR size_t _MAX_PARSE_FAILURE_ERROR_MESSAGES = 100;
21static ICAL_GLOBAL_VAR size_t _MAX_PROPERTIES = 10000;
22static ICAL_GLOBAL_VAR size_t _MAX_PARAMETERS = 100;
23static ICAL_GLOBAL_VAR size_t _MAX_VALUE_CHARS = 10485760;
24static ICAL_GLOBAL_VAR size_t _MAX_PROPERTY_VALUES = 500;
25static ICAL_GLOBAL_VAR size_t _MAX_RECURRENCE_SEARCH = 100000;
26static ICAL_GLOBAL_VAR size_t _MAX_RECURRENCE_TIME_STANDING_STILL = 50;
27static ICAL_GLOBAL_VAR size_t _MAX_RRULE_SEARCH = 100;
28
30{
31 switch (kind) {
33 return _MAX_PARSE_FAILURES;
35 return _MAX_PARSE_SEARCH;
37 return _MAX_PARSE_FAILURE_ERROR_MESSAGES;
39 return _MAX_PROPERTIES;
41 return _MAX_PARAMETERS;
43 return _MAX_VALUE_CHARS;
45 return _MAX_PROPERTY_VALUES;
47 return _MAX_RECURRENCE_SEARCH;
49 return _MAX_RECURRENCE_TIME_STANDING_STILL;
51 return _MAX_RRULE_SEARCH;
52 default:
53 icalassert(0);
54 return 0;
55 }
56}
57
58void icallimit_set(icallimits_kind kind, size_t limit)
59{
60 switch (kind) {
62 _MAX_PARSE_FAILURES = limit;
63 break;
65 _MAX_PARSE_SEARCH = limit;
66 break;
68 _MAX_PARSE_FAILURE_ERROR_MESSAGES = limit;
69 break;
71 _MAX_PROPERTIES = limit;
72 break;
74 _MAX_PARAMETERS = limit;
75 break;
77 _MAX_VALUE_CHARS = limit;
78 break;
80 _MAX_PROPERTY_VALUES = limit;
81 break;
83 _MAX_RECURRENCE_SEARCH = limit;
84 break;
86 _MAX_RECURRENCE_TIME_STANDING_STILL = limit;
87 break;
89 _MAX_RRULE_SEARCH = limit;
90 break;
91 default:
92 icalassert(0);
93 }
94}
size_t icallimit_get(icallimits_kind kind)
Definition icallimits.c:29
void icallimit_set(icallimits_kind kind, size_t limit)
Definition icallimits.c:58
Defines the interface for getting/setting internal library limits.
icallimits_kind
Definition icallimits.h:22
@ ICAL_LIMIT_PARSE_FAILURE_ERROR_MESSAGES
Definition icallimits.h:28
@ ICAL_LIMIT_PROPERTIES
Definition icallimits.h:30
@ ICAL_LIMIT_RECURRENCE_SEARCH
Definition icallimits.h:38
@ ICAL_LIMIT_PROPERTY_VALUES
Definition icallimits.h:36
@ ICAL_LIMIT_RRULE_SEARCH
Definition icallimits.h:42
@ ICAL_LIMIT_VALUE_CHARS
Definition icallimits.h:34
@ ICAL_LIMIT_RECURRENCE_TIME_STANDING_STILL
Definition icallimits.h:40
@ ICAL_LIMIT_PARAMETERS
Definition icallimits.h:32
@ ICAL_LIMIT_PARSE_FAILURES
Definition icallimits.h:24
@ ICAL_LIMIT_PARSE_SEARCH
Definition icallimits.h:26