Skip to content

Commit

Permalink
examples/protocols: Added URI encoding/decoding feature
Browse files Browse the repository at this point in the history
  - http_server/simple: Decoding received query
  - esp_http_client: Sending encoded query
  • Loading branch information
laukik-hase committed Jan 25, 2023
1 parent d825753 commit 167618d
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 167618d

Please sign in to comment.