MCPcopy Create free account
hub / github.com/apache/httpd / md_duration_parse

Function md_duration_parse

modules/md/md_time.c:159–214  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

157}
158
159apr_status_t md_duration_parse(apr_interval_time_t *ptimeout, const char *value,
160 const char *def_unit)
161{
162 char *endp;
163 apr_int64_t n;
164
165 n = apr_strtoi64(value, &endp, 10);
166 if (errno) {
167 return errno;
168 }
169 if (!endp || !*endp) {
170 if (!def_unit) def_unit = "s";
171 }
172 else if (endp == value) {
173 return APR_EINVAL;
174 }
175 else {
176 def_unit = endp;
177 }
178
179 switch (*def_unit) {
180 case 'D':
181 case 'd':
182 *ptimeout = apr_time_from_sec(n * MD_SECS_PER_DAY);
183 break;
184 case 's':
185 case 'S':
186 *ptimeout = (apr_interval_time_t) apr_time_from_sec(n);
187 break;
188 case 'h':
189 case 'H':
190 /* Time is in hours */
191 *ptimeout = (apr_interval_time_t) apr_time_from_sec(n * MD_SECS_PER_HOUR);
192 break;
193 case 'm':
194 case 'M':
195 switch (*(++def_unit)) {
196 /* Time is in milliseconds */
197 case 's':
198 case 'S':
199 *ptimeout = (apr_interval_time_t) n * 1000;
200 break;
201 /* Time is in minutes */
202 case 'i':
203 case 'I':
204 *ptimeout = (apr_interval_time_t) apr_time_from_sec(n * 60);
205 break;
206 default:
207 return APR_EGENERAL;
208 }
209 break;
210 default:
211 return APR_EGENERAL;
212 }
213 return APR_SUCCESS;
214}
215
216static apr_status_t percentage_parse(const char *value, int *ppercent)

Callers 7

md_config_set_min_delayFunction · 0.85
run_initFunction · 0.85
md_timeslice_parseFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected