$darkmode
Libical API Documentation 4.0 STABLE VERSION Visit the v3.0 documentation
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 
11 #ifdef HAVE_CONFIG_H
12 #include <config.h>
13 #endif
14 
15 #include "icallimits.h"
16 #include "icalerror_p.h"
17 
18 static ICAL_GLOBAL_VAR size_t _MAX_PARSE_FAILURES = 1000;
19 static ICAL_GLOBAL_VAR size_t _MAX_PARSE_SEARCH = 100000;
20 static ICAL_GLOBAL_VAR size_t _MAX_PARSE_FAILURE_ERROR_MESSAGES = 100;
21 static ICAL_GLOBAL_VAR size_t _MAX_PROPERTIES = 10000;
22 static ICAL_GLOBAL_VAR size_t _MAX_PARAMETERS = 100;
23 static ICAL_GLOBAL_VAR size_t _MAX_VALUE_CHARS = 10485760;
24 static ICAL_GLOBAL_VAR size_t _MAX_PROPERTY_VALUES = 500;
25 static ICAL_GLOBAL_VAR size_t _MAX_RECURRENCE_SEARCH = 100000;
26 static ICAL_GLOBAL_VAR size_t _MAX_RECURRENCE_TIME_STANDING_STILL = 50;
27 static ICAL_GLOBAL_VAR size_t _MAX_RRULE_SEARCH = 500;
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 
58 void 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:21