Skip to content

Commit

Permalink
Merge branch 'feature/http_server_example_url_decode' into 'master'
Browse files Browse the repository at this point in the history
example/protocols: Added URI encoding/decoding feature

Closes IDFGH-9057 and IDFGH-9170

See merge request espressif/esp-idf!22031
  • Loading branch information
mahavirj committed Jan 27, 2023
2 parents a26ecaf + 167618d commit 0e64ef6
Show file tree
Hide file tree
Showing 7 changed files with 500 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
set(srcs "stdin_out.c"
"addr_from_stdin.c"
"connect.c"
"wifi_connect.c")
"wifi_connect.c"
"protocol_examples_utils.c")

if(CONFIG_EXAMPLE_PROVIDE_WIFI_CONSOLE_CMD)
list(APPEND srcs "console_cmd.c")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/*
* Utility functions for protocol examples
*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/

#pragma once

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif


/**
* @brief Encode an URI
*
* @param dest a destination memory location
* @param src the source string
* @param len the length of the source string
* @return uint32_t the count of escaped characters
*
* @note Please allocate the destination buffer keeping in mind that encoding a
* special character will take up 3 bytes (for '%' and two hex digits).
* In the worst-case scenario, the destination buffer will have to be 3 times
* that of the source string.
*/
uint32_t example_uri_encode(char *dest, const char *src, size_t len);

/**
* @brief Decode an URI
*
* @param dest a destination memory location
* @param src the source string
* @param len the length of the source string
*
* @note Please allocate the destination buffer keeping in mind that a decoded
* special character will take up 2 less bytes than its encoded form.
* In the worst-case scenario, the destination buffer will have to be
* the same size that of the source string.
*/
void example_uri_decode(char *dest, const char *src, size_t len);

#ifdef __cplusplus
}
#endif
Loading

0 comments on commit 0e64ef6

Please sign in to comment.