1
0
mirror of https://github.com/lammertb/libhttp.git synced 2025-08-06 05:02:40 +03:00

httplib_strdup() now global

This commit is contained in:
Lammert Bies
2016-12-19 11:30:11 +01:00
parent 226b792ce7
commit 40889e9f8e
6 changed files with 54 additions and 3 deletions

View File

@@ -79,6 +79,7 @@ LibHTTP is often used as HTTP and HTTPS library inside a larger application. A
* [`httplib_base64_encode( src, src_len, dst, dst_len );`](api/httplib_base64_encode.md) * [`httplib_base64_encode( src, src_len, dst, dst_len );`](api/httplib_base64_encode.md)
* [`httplib_md5( buf, ... );`](api/httplib_md5.md) * [`httplib_md5( buf, ... );`](api/httplib_md5.md)
* [`httplib_strcasecmp( s1, s2 );`](api/httplib_strcasecmp.md) * [`httplib_strcasecmp( s1, s2 );`](api/httplib_strcasecmp.md)
* [`httplib_strdup( str );`](api/httplib_strdup.md)
* [`httplib_strlcpy( dst, src, len );`](api/httplib_strlcpy.md) * [`httplib_strlcpy( dst, src, len );`](api/httplib_strlcpy.md)
* [`httplib_strncasecmp( s1, s2, len );`](api/httplib_strncasecmp.md) * [`httplib_strncasecmp( s1, s2, len );`](api/httplib_strncasecmp.md)
* [`httplib_strndup( str, len );`](api/httplib_strndup.md) * [`httplib_strndup( str, len );`](api/httplib_strndup.md)

View File

@@ -21,4 +21,6 @@ The function `httplib_strcasecmp()` is a helper function to compare two strings.
### See Also ### See Also
* [`httplib_strdup();`](httplib_strdup.md)
* [`httplib_strncasecmp();`](httplib_strncasecmp.md) * [`httplib_strncasecmp();`](httplib_strncasecmp.md)
* [`httplib_strndup();`](httplib_strndup.md)

30
doc/api/httplib_strdup.md Normal file
View File

@@ -0,0 +1,30 @@
# LibHTTP API Reference
### `httplib_strdup( str );`
### Parameters
| Parameter | Type | Description |
| :--- | :--- | :--- |
|**`str`**|`const char *`|Pointer to the source string which must be duplicated|
### Return Value
| Type | Description |
| :--- | :--- |
|`char *`|Pointer to the duplicate, or NULL if an error occured|
### Description
The function `httplib_strdup()` duplicates a NUL terminated string to a new string. The duplicate is stored in a newly allocated block of memory. The function is equivalent to the Posix `strdup()` function with the difference that the LibHTTP memory allocation functions are used which allow for tracking of allocation requests and memory leaks through a monitor hook.
If the duplicate of the string is no longer used, the allocated memory should be returned to the heap with a call to [`httplib_free()`](httplib_free.md).
If the function fails the value `NULL` is returned, otherwise a pointer to the duplicate.
### See Also
* [`httplib_free();`](httplib_free.md)
* [`httplib_strcasecmp();`](httplib_strcasecmp.md)
* [`httplib_strncasecmp();`](httplib_strncasecmp.md)
* [`httplib_strndup();`](httplib_strndup.md)

View File

@@ -23,3 +23,5 @@ The function `httplib_strncasecmp()` is a helper function to compare two strings
### See Also ### See Also
* [`httplib_strcasecmp();`](httplib_strcasecmp.md) * [`httplib_strcasecmp();`](httplib_strcasecmp.md)
* [`httplib_strdup();`](httplib_strdup.md)
* [`httplib_strndup();`](httplib_strndup.md)

View File

@@ -27,4 +27,5 @@ If the function fails the value `NULL` is returned, otherwise a pointer to the d
* [`httplib_free();`](httplib_free.md) * [`httplib_free();`](httplib_free.md)
* [`httplib_strcasecmp();`](httplib_strcasecmp.md) * [`httplib_strcasecmp();`](httplib_strcasecmp.md)
* [`httplib_strdup();`](httplib_strdup.md)
* [`httplib_strncasecmp();`](httplib_strncasecmp.md) * [`httplib_strncasecmp();`](httplib_strncasecmp.md)

View File

@@ -22,14 +22,29 @@
* THE SOFTWARE. * THE SOFTWARE.
* *
* ============ * ============
* Release: 1.8 * Release: 2.0
*/ */
#include "httplib_main.h" #include "httplib_main.h"
#include "httplib_string.h" #include "httplib_string.h"
char * XX_httplib_strdup( const char *str ) { /*
* char *httplib_strdup( const char *str );
*
* The function httplib_strdup() duplicates a NUL terminated string. This
* function is equivalent to the Posix strdup() function, with the difference
* that the own LibHTTP memory allocation functions are used. The memory used
* by the duplicated string should therefore after use be returned to the heap
* with a call to httplib_free().
*
* If the function succeeds, a pointer to the duplicate is returned. Otherwise
* the returned value is NULL.
*/
char *httplib_strdup( const char *str ) {
if ( str == NULL ) return NULL;
return httplib_strndup(str, strlen( str ) ); return httplib_strndup(str, strlen( str ) );
} /* XX_httplib_strdup */ } /* httplib_strdup */