Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(81)

Side by Side Diff: nss/lib/libpkix/pkix/params/pkix_resourcelimits.c

Issue 2078763002: Delete bundled copy of NSS and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/nss@master
Patch Set: Delete bundled copy of NSS and replace with README. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 /*
5 * pkix_resourcelimits.c
6 *
7 * Resourcelimits Params Object Functions
8 *
9 */
10
11 #include "pkix_resourcelimits.h"
12
13 /* --Private-Functions-------------------------------------------- */
14
15 /*
16 * FUNCTION: pkix_ResourceLimits_Destroy
17 * (see comments for PKIX_PL_DestructorCallback in pkix_pl_system.h)
18 */
19 static PKIX_Error *
20 pkix_ResourceLimits_Destroy(
21 PKIX_PL_Object *object,
22 void *plContext)
23 {
24 PKIX_ResourceLimits *rLimits = NULL;
25
26 PKIX_ENTER(RESOURCELIMITS, "pkix_ResourceLimits_Destroy");
27 PKIX_NULLCHECK_ONE(object);
28
29 /* Check that this object is a ResourceLimits object */
30 PKIX_CHECK(pkix_CheckType(object, PKIX_RESOURCELIMITS_TYPE, plContext),
31 PKIX_OBJECTNOTRESOURCELIMITS);
32
33 rLimits = (PKIX_ResourceLimits *)object;
34
35 rLimits->maxTime = 0;
36 rLimits->maxFanout = 0;
37 rLimits->maxDepth = 0;
38 rLimits->maxCertsNumber = 0;
39 rLimits->maxCrlsNumber = 0;
40
41 cleanup:
42
43 PKIX_RETURN(RESOURCELIMITS);
44 }
45
46 /*
47 * FUNCTION: pkix_ResourceLimits_Equals
48 * (see comments for PKIX_PL_EqualsCallback in pkix_pl_system.h)
49 */
50 static PKIX_Error *
51 pkix_ResourceLimits_Equals(
52 PKIX_PL_Object *first,
53 PKIX_PL_Object *second,
54 PKIX_Boolean *pResult,
55 void *plContext)
56 {
57 PKIX_UInt32 secondType;
58 PKIX_Boolean cmpResult;
59 PKIX_ResourceLimits *firstRLimits = NULL;
60 PKIX_ResourceLimits *secondRLimits = NULL;
61
62 PKIX_ENTER(RESOURCELIMITS, "pkix_ResourceLimits_Equals");
63 PKIX_NULLCHECK_THREE(first, second, pResult);
64
65 PKIX_CHECK(pkix_CheckType(first, PKIX_RESOURCELIMITS_TYPE, plContext),
66 PKIX_FIRSTOBJECTNOTRESOURCELIMITS);
67
68 PKIX_CHECK(PKIX_PL_Object_GetType(second, &secondType, plContext),
69 PKIX_COULDNOTGETTYPEOFSECONDARGUMENT);
70
71 *pResult = PKIX_FALSE;
72
73 if (secondType != PKIX_RESOURCELIMITS_TYPE) goto cleanup;
74
75 firstRLimits = (PKIX_ResourceLimits *)first;
76 secondRLimits = (PKIX_ResourceLimits *)second;
77
78 cmpResult = (firstRLimits->maxTime == secondRLimits->maxTime) &&
79 (firstRLimits->maxFanout == secondRLimits->maxFanout) &&
80 (firstRLimits->maxDepth == secondRLimits->maxDepth) &&
81 (firstRLimits->maxCertsNumber ==
82 secondRLimits->maxCertsNumber) &&
83 (firstRLimits->maxCrlsNumber ==
84 secondRLimits->maxCrlsNumber);
85
86 *pResult = cmpResult;
87
88 cleanup:
89
90 PKIX_RETURN(RESOURCELIMITS);
91 }
92
93 /*
94 * FUNCTION: pkix_ResourceLimits_Hashcode
95 * (see comments for PKIX_PL_HashcodeCallback in pkix_pl_system.h)
96 */
97 static PKIX_Error *
98 pkix_ResourceLimits_Hashcode(
99 PKIX_PL_Object *object,
100 PKIX_UInt32 *pHashcode,
101 void *plContext)
102 {
103 PKIX_ResourceLimits *rLimits = NULL;
104 PKIX_UInt32 hash = 0;
105
106 PKIX_ENTER(RESOURCELIMITS, "pkix_ResourceLimits_Hashcode");
107 PKIX_NULLCHECK_TWO(object, pHashcode);
108
109 PKIX_CHECK(pkix_CheckType(object, PKIX_RESOURCELIMITS_TYPE, plContext),
110 PKIX_OBJECTNOTRESOURCELIMITS);
111
112 rLimits = (PKIX_ResourceLimits*)object;
113
114 hash = 31 * rLimits->maxTime + (rLimits->maxFanout << 1) +
115 (rLimits->maxDepth << 2) + (rLimits->maxCertsNumber << 3) +
116 rLimits->maxCrlsNumber;
117
118 *pHashcode = hash;
119
120 cleanup:
121
122 PKIX_RETURN(RESOURCELIMITS);
123 }
124
125 /*
126 * FUNCTION: pkix_ResourceLimits_ToString
127 * (see comments for PKIX_PL_ToStringCallback in pkix_pl_system.h)
128 */
129 static PKIX_Error *
130 pkix_ResourceLimits_ToString(
131 PKIX_PL_Object *object,
132 PKIX_PL_String **pString,
133 void *plContext)
134 {
135 PKIX_ResourceLimits *rLimits = NULL;
136 char *asciiFormat = NULL;
137 PKIX_PL_String *formatString = NULL;
138 PKIX_PL_String *rLimitsString = NULL;
139
140 PKIX_ENTER(RESOURCELIMITS, "pkix_ResourceLimits_ToString");
141 PKIX_NULLCHECK_TWO(object, pString);
142
143 PKIX_CHECK(pkix_CheckType(object, PKIX_RESOURCELIMITS_TYPE, plContext),
144 PKIX_OBJECTNOTRESOURCELIMITS);
145
146 /* maxCertsNumber and maxCrlsNumber are not supported */
147 asciiFormat =
148 "[\n"
149 "\tMaxTime: \t\t%d\n"
150 "\tMaxFanout: \t\t%d\n"
151 "\tMaxDepth: \t\t%d\n"
152 "]\n";
153
154 PKIX_CHECK(PKIX_PL_String_Create
155 (PKIX_ESCASCII,
156 asciiFormat,
157 0,
158 &formatString,
159 plContext),
160 PKIX_STRINGCREATEFAILED);
161
162 rLimits = (PKIX_ResourceLimits*)object;
163
164 PKIX_CHECK(PKIX_PL_Sprintf
165 (&rLimitsString,
166 plContext,
167 formatString,
168 rLimits->maxTime,
169 rLimits->maxFanout,
170 rLimits->maxDepth),
171 PKIX_SPRINTFFAILED);
172
173 *pString = rLimitsString;
174
175 cleanup:
176
177 PKIX_DECREF(formatString);
178
179 PKIX_RETURN(RESOURCELIMITS);
180 }
181
182 /*
183 * FUNCTION: pkix_ResourceLimits_RegisterSelf
184 * DESCRIPTION:
185 * Registers PKIX_RESOURCELIMITS_TYPE and its related functions with
186 * systemClasses[]
187 * THREAD SAFETY:
188 * Not Thread Safe - for performance and complexity reasons
189 *
190 * Since this function is only called by PKIX_PL_Initialize, which should
191 * only be called once, it is acceptable that this function is not
192 * thread-safe.
193 */
194 PKIX_Error *
195 pkix_ResourceLimits_RegisterSelf(void *plContext)
196 {
197
198 extern pkix_ClassTable_Entry systemClasses[PKIX_NUMTYPES];
199 pkix_ClassTable_Entry entry;
200
201 PKIX_ENTER(RESOURCELIMITS, "pkix_ResourceLimits_RegisterSelf");
202
203 entry.description = "ResourceLimits";
204 entry.objCounter = 0;
205 entry.typeObjectSize = sizeof(PKIX_ResourceLimits);
206 entry.destructor = pkix_ResourceLimits_Destroy;
207 entry.equalsFunction = pkix_ResourceLimits_Equals;
208 entry.hashcodeFunction = pkix_ResourceLimits_Hashcode;
209 entry.toStringFunction = pkix_ResourceLimits_ToString;
210 entry.comparator = NULL;
211 entry.duplicateFunction = NULL;
212
213 systemClasses[PKIX_RESOURCELIMITS_TYPE] = entry;
214
215 PKIX_RETURN(RESOURCELIMITS);
216 }
217
218 /* --Public-Functions--------------------------------------------- */
219
220 /*
221 * FUNCTION: PKIX_ResourceLimits_Create (see comments in pkix_params.h)
222 */
223 PKIX_Error *
224 PKIX_ResourceLimits_Create(
225 PKIX_ResourceLimits **pResourceLimits,
226 void *plContext)
227 {
228 PKIX_ResourceLimits *rLimits = NULL;
229
230 PKIX_ENTER(RESOURCELIMITS, "PKIX_ResourceLimits_Create");
231 PKIX_NULLCHECK_ONE(pResourceLimits);
232
233 PKIX_CHECK(PKIX_PL_Object_Alloc
234 (PKIX_RESOURCELIMITS_TYPE,
235 sizeof (PKIX_ResourceLimits),
236 (PKIX_PL_Object **)&rLimits,
237 plContext),
238 PKIX_COULDNOTCREATERESOURCELIMITOBJECT);
239
240 /* initialize fields */
241 rLimits->maxTime = 0;
242 rLimits->maxFanout = 0;
243 rLimits->maxDepth = 0;
244 rLimits->maxCertsNumber = 0;
245 rLimits->maxCrlsNumber = 0;
246
247 *pResourceLimits = rLimits;
248
249 cleanup:
250
251 PKIX_RETURN(RESOURCELIMITS);
252
253 }
254
255 /*
256 * FUNCTION: PKIX_ResourceLimits_GetMaxTime
257 * (see comments in pkix_params.h)
258 */
259 PKIX_Error *
260 PKIX_ResourceLimits_GetMaxTime(
261 PKIX_ResourceLimits *rLimits,
262 PKIX_UInt32 *pMaxTime,
263 void *plContext)
264 {
265 PKIX_ENTER(RESOURCELIMITS, "PKIX_ResourceLimits_GetMaxTime");
266 PKIX_NULLCHECK_TWO(rLimits, pMaxTime);
267
268 *pMaxTime = rLimits->maxTime;
269
270 PKIX_RETURN(RESOURCELIMITS);
271 }
272
273 /*
274 * FUNCTION: PKIX_ResourceLimits_SetMaxTime
275 * (see comments in pkix_params.h)
276 */
277 PKIX_Error *
278 PKIX_ResourceLimits_SetMaxTime(
279 PKIX_ResourceLimits *rLimits,
280 PKIX_UInt32 maxTime,
281 void *plContext)
282 {
283 PKIX_ENTER(RESOURCELIMITS, "PKIX_ResourceLimits_SetMaxTime");
284 PKIX_NULLCHECK_ONE(rLimits);
285
286 rLimits->maxTime = maxTime;
287
288 PKIX_RETURN(RESOURCELIMITS);
289 }
290
291 /*
292 * FUNCTION: PKIX_ResourceLimits_GetMaxFanout
293 * (see comments in pkix_params.h)
294 */
295 PKIX_Error *
296 PKIX_ResourceLimits_GetMaxFanout(
297 PKIX_ResourceLimits *rLimits,
298 PKIX_UInt32 *pMaxFanout,
299 void *plContext)
300 {
301 PKIX_ENTER(RESOURCELIMITS, "PKIX_ResourceLimits_GetMaxFanout");
302 PKIX_NULLCHECK_TWO(rLimits, pMaxFanout);
303
304 *pMaxFanout = rLimits->maxFanout;
305
306 PKIX_RETURN(RESOURCELIMITS);
307 }
308
309 /*
310 * FUNCTION: PKIX_ResourceLimits_SetMaxFanout
311 * (see comments in pkix_params.h)
312 */
313 PKIX_Error *
314 PKIX_ResourceLimits_SetMaxFanout(
315 PKIX_ResourceLimits *rLimits,
316 PKIX_UInt32 maxFanout,
317 void *plContext)
318 {
319 PKIX_ENTER(RESOURCELIMITS, "PKIX_ResourceLimits_SetMaxFanout");
320 PKIX_NULLCHECK_ONE(rLimits);
321
322 rLimits->maxFanout = maxFanout;
323
324 PKIX_RETURN(RESOURCELIMITS);
325 }
326
327 /*
328 * FUNCTION: PKIX_ResourceLimits_GetMaxDepth
329 * (see comments in pkix_params.h)
330 */
331 PKIX_Error *
332 PKIX_ResourceLimits_GetMaxDepth(
333 PKIX_ResourceLimits *rLimits,
334 PKIX_UInt32 *pMaxDepth,
335 void *plContext)
336 {
337 PKIX_ENTER(RESOURCELIMITS, "PKIX_ResourceLimits_GetMaxDepth");
338 PKIX_NULLCHECK_TWO(rLimits, pMaxDepth);
339
340 *pMaxDepth = rLimits->maxDepth;
341
342 PKIX_RETURN(RESOURCELIMITS);
343 }
344
345 /*
346 * FUNCTION: PKIX_ResourceLimits_SetMaxDepth
347 * (see comments in pkix_params.h)
348 */
349 PKIX_Error *
350 PKIX_ResourceLimits_SetMaxDepth(
351 PKIX_ResourceLimits *rLimits,
352 PKIX_UInt32 maxDepth,
353 void *plContext)
354 {
355 PKIX_ENTER(RESOURCELIMITS, "PKIX_ResourceLimits_SetMaxDepth");
356 PKIX_NULLCHECK_ONE(rLimits);
357
358 rLimits->maxDepth = maxDepth;
359
360 PKIX_RETURN(RESOURCELIMITS);
361 }
362
363 /*
364 * FUNCTION: PKIX_ResourceLimits_GetMaxNumberOfCerts
365 * (see comments in pkix_params.h)
366 */
367 PKIX_Error *
368 PKIX_ResourceLimits_GetMaxNumberOfCerts(
369 PKIX_ResourceLimits *rLimits,
370 PKIX_UInt32 *pMaxNumber,
371 void *plContext)
372 {
373 PKIX_ENTER(RESOURCELIMITS, "PKIX_ResourceLimits_GetMaxNumberOfCerts");
374 PKIX_NULLCHECK_TWO(rLimits, pMaxNumber);
375
376 *pMaxNumber = rLimits->maxCertsNumber;
377
378 PKIX_RETURN(RESOURCELIMITS);
379 }
380
381 /*
382 * FUNCTION: PKIX_ResourceLimits_SetMaxNumberOfCerts
383 * (see comments in pkix_params.h)
384 */
385 PKIX_Error *
386 PKIX_ResourceLimits_SetMaxNumberOfCerts(
387 PKIX_ResourceLimits *rLimits,
388 PKIX_UInt32 maxNumber,
389 void *plContext)
390 {
391 PKIX_ENTER(RESOURCELIMITS, "PKIX_ResourceLimits_SetMaxNumberOfCerts");
392 PKIX_NULLCHECK_ONE(rLimits);
393
394 rLimits->maxCertsNumber = maxNumber;
395
396 PKIX_RETURN(RESOURCELIMITS);
397 }
398
399 /*
400 * FUNCTION: PKIX_ResourceLimits_GetMaxNumberOfCRLs
401 * (see comments in pkix_params.h)
402 */
403 PKIX_Error *
404 PKIX_ResourceLimits_GetMaxNumberOfCRLs(
405 PKIX_ResourceLimits *rLimits,
406 PKIX_UInt32 *pMaxNumber,
407 void *plContext)
408 {
409 PKIX_ENTER(RESOURCELIMITS, "PKIX_ResourceLimits_GetMaxNumberOfCRLs");
410 PKIX_NULLCHECK_TWO(rLimits, pMaxNumber);
411
412 *pMaxNumber = rLimits->maxCrlsNumber;
413
414 PKIX_RETURN(RESOURCELIMITS);
415 }
416
417 /*
418 * FUNCTION: PKIX_ResourceLimits_SetMaxNumberOfCRLs
419 * (see comments in pkix_params.h)
420 */
421 PKIX_Error *
422 PKIX_ResourceLimits_SetMaxNumberOfCRLs(
423 PKIX_ResourceLimits *rLimits,
424 PKIX_UInt32 maxNumber,
425 void *plContext)
426 {
427 PKIX_ENTER(RESOURCELIMITS, "PKIX_ResourceLimits_SetMaxNumberOfCRLs");
428 PKIX_NULLCHECK_ONE(rLimits);
429
430 rLimits->maxCrlsNumber = maxNumber;
431
432 PKIX_RETURN(RESOURCELIMITS);
433 }
OLDNEW
« no previous file with comments | « nss/lib/libpkix/pkix/params/pkix_resourcelimits.h ('k') | nss/lib/libpkix/pkix/params/pkix_trustanchor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698