examples/protocols: Added URI encoding/decoding feature

- http_server/simple: Decoding received query
  - esp_http_client: Sending encoded query
This commit is contained in:
Laukik Hase
2023-01-25 16:45:01 +05:30
parent d825753387
commit 167618d6a4
7 changed files with 500 additions and 11 deletions

View File

@@ -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