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:
@@ -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)
|
||||||
|
@@ -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
30
doc/api/httplib_strdup.md
Normal 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)
|
@@ -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)
|
||||||
|
@@ -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)
|
||||||
|
@@ -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 */
|
||||||
|
Reference in New Issue
Block a user