annotate common/strhelp.h @ 249:6a7eb102716d

Remove code duplication by unifying the certificatelist. You should now check for isInstallCert to determine wether this certificate should be installed or removed. Leaving the getInstallCertificates and getRemoveCertificates in place for compatibilty would have been easier to keep the tests stable.
author Andre Heinecke <aheinecke@intevation.de>
date Mon, 31 Mar 2014 08:06:17 +0000
parents 6b4ad6ccc48e
children c596568fa45b
rev   line source
60
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
1 #ifndef STRHELP_H
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
2 #define STRHELP_H
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
3
184
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
4 #ifdef __cplusplus
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
5 extern "C" {
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
6 #endif
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
7
131
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
8 #include <stdbool.h>
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
9
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
10 /**
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
11 * @file strhelp.h
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
12 * @brief Helper functions for c strings and memory management
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
13 * @details strhelp contains terminating memory allocation functions and
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
14 * some conveniance functions to work with c strings or arrays of c
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
15 * strings.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
16 */
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
17
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
18 void *xmalloc( size_t n );
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
19 void *xrealloc( void *a, size_t n );
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
20 void *xcalloc( size_t n, size_t m );
60
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
21 char *xstrndup( const char *string, const size_t len );
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
22
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
23 /**
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
24 * @brief Returns the length of the given %NULL-terminated
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
25 * string array str_array.
120
702033705bb8 Removed trailing whitespace.
Sascha Wilde <wilde@intevation.de>
parents: 118
diff changeset
26 * @param[in] str_array a %NULL-terminated array of strings
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
27 * @returns length of str_array.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
28 */
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
29 unsigned int strv_length (char **str_array);
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
30
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
31 /**
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
32 * @brief append a string to a NULL terminated array of strings.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
33 *
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
34 * @param[inout] pArray pointer to the NULL terminated list of string pointers.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
35 * @param[in] string pointer to the string to append to the list.
60
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
36 * @param[in] len length of the string to append to the list
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
37 */
116
c602d8cfa619 Refactoring: unified naming of string vector functions.
Sascha Wilde <wilde@intevation.de>
parents: 91
diff changeset
38 void strv_append (char ***pArray, const char *string, const size_t len);
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
39
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
40 /**
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
41 * @brief append a string to another string.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
42 *
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
43 * @param[inout] pDst pointer to the string to be extended.
91
80ab2168760f Also add output size handling to str_append_str
Andre Heinecke <aheinecke@intevation.de>
parents: 60
diff changeset
44 * @param[inout] dst_len length of the dst string. Will be modified.
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
45 * @param[in] appendage pointer to the string to append.
60
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
46 * @param[in] len length of the string to append.
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
47 */
116
c602d8cfa619 Refactoring: unified naming of string vector functions.
Sascha Wilde <wilde@intevation.de>
parents: 91
diff changeset
48 void str_append_str (char **pDst, size_t *dst_len, const char *appendage,
91
80ab2168760f Also add output size handling to str_append_str
Andre Heinecke <aheinecke@intevation.de>
parents: 60
diff changeset
49 const size_t len);
59
3f6378647371 Start work on cinst. Strhelp new helpers to work with C String
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
50
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
51 /**
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
52 * @brief Frees the given %NULL-terminated string array.
120
702033705bb8 Removed trailing whitespace.
Sascha Wilde <wilde@intevation.de>
parents: 118
diff changeset
53 * @param[inout] str_array a %NULL-terminated array of strings
118
d6a74464430b Fix doxygen documentation.
Sascha Wilde <wilde@intevation.de>
parents: 116
diff changeset
54 */
116
c602d8cfa619 Refactoring: unified naming of string vector functions.
Sascha Wilde <wilde@intevation.de>
parents: 91
diff changeset
55 void strv_free (char **str_array);
131
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
56
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
57 /**
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
58 * @brief Checks whether two strings exactly match
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
59 * @param[in] s1 the first string
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
60 * @param[in] s2 the second string
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
61 * @returns true if s1 and s2 are equal
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
62 */
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
63 bool str_equal (char *s1, char *s2);
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
64
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
65 /**
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
66 * @brief Checks whether s2 exactly matches the beginning of s1.
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
67 * @param[in] s1 the string who's beginning is searched
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
68 * @param[in] s2 the string which is searched for
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
69 * @returns true if s1 starts with s2, false otherwise
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
70 */
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
71 bool str_starts_with (char *s1, char *s2);
9104b1b2e4da Added string comparison functions.
Sascha Wilde <wilde@intevation.de>
parents: 120
diff changeset
72
133
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
73 /**
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
74 * @brief Trims all white space from the start and end of string.
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
75 * @details the start of the string is trimmed by setting *s to the
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
76 * first non white space character. The end is trimmed by setting the
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
77 * first character after the last non white space character to \0.
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
78 * @param[inout] s ponter to the string to strip
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
79 */
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
80 bool str_trim (char **s);
c719d3fdbc15 Added functrion to trim white space from string.
Sascha Wilde <wilde@intevation.de>
parents: 131
diff changeset
81
160
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
82 /** @brief decode base64 encoded data
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
83 *
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
84 * The memory allocated for dest needs to be free'd by the
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
85 * caller.
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
86 *
239
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
87 * _Input warning:_
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
88 * If the input contains invalid base64 characters an error
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
89 * is returned.
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
90 *
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
91 * If the input is invalid base64 but consists of valid
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
92 * base64 characters _no error_ is returned and dst contains
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
93 * the valid input up to the error.
6b4ad6ccc48e Change the specification of str_b64_decode so that it matches the
Andre Heinecke <aheinecke@intevation.de>
parents: 184
diff changeset
94 *
160
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
95 * @param [out] dst Pointer to the destination. Needs to be NULL
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
96 * @param [out] dst_size Size allocated for the destination.
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
97 * @param [in] src Pointer to the base64 encoded data.
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
98 * @param [in] src_size Size of the encoded data.
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
99 *
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
100 * @returns 0 on success a polarssl error or -1 otherwise
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
101 */
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
102 int str_base64_decode(char **dst, size_t *dst_size, char *src,
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
103 size_t src_size);
184
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
104 #ifdef __cplusplus
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
105 }
1f44aae4528e Add C linkage for strhelp. Check for data in commontest.
Andre Heinecke <aheinecke@intevation.de>
parents: 160
diff changeset
106 #endif
160
bf4bfd8843bd Add memory allocating base64 decode function
Andre Heinecke <aheinecke@intevation.de>
parents: 133
diff changeset
107
60
6acb1dae6185 Use strn functions and improve error handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 59
diff changeset
108 #endif

http://wald.intevation.org/projects/trustbridge/