]> git.sur5r.net Git - freertos/blob - FreeRTOS-Labs/Source/FreeRTOS-IoT-Libraries/c_sdk/standard/https/include/iot_https_utils.h
Add the Labs projects provided in the V10.2.1_191129 zip file.
[freertos] / FreeRTOS-Labs / Source / FreeRTOS-IoT-Libraries / c_sdk / standard / https / include / iot_https_utils.h
1 /*\r
2  * Amazon FreeRTOS HTTPS Client V1.1.0\r
3  * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
4  *\r
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
6  * this software and associated documentation files (the "Software"), to deal in\r
7  * the Software without restriction, including without limitation the rights to\r
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
9  * the Software, and to permit persons to whom the Software is furnished to do so,\r
10  * subject to the following conditions:\r
11  *\r
12  * The above copyright notice and this permission notice shall be included in all\r
13  * copies or substantial portions of the Software.\r
14  *\r
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
21  *\r
22  * http://aws.amazon.com/freertos\r
23  * http://www.FreeRTOS.org\r
24  */\r
25 \r
26 /**\r
27  * @file iot_https_utils.h\r
28  * @brief User facing HTTPS Client library utilities.\r
29  */\r
30 \r
31 #ifndef IOT_HTTPS_UTILS_H_\r
32 #define IOT_HTTPS_UTILS_H_\r
33 \r
34 #include "types/iot_https_types.h"\r
35 \r
36 /*-----------------------------------------------------------*/\r
37 \r
38 /**\r
39  * @brief Retrieve the path from the input URL.\r
40  *\r
41  * This function retrieves the location and length of the path from within the\r
42  * input the URL. The query is not included in the length returned.\r
43  *\r
44  * The URL MUST start with "http://" or "https://" to find the path.\r
45  *\r
46  * For example, if the URL is:\r
47  * pUrl = "https://www.somewebsite.com/path/to/item.txt?optionalquery=stuff"\r
48  *\r
49  * *pPath = "/path/to/item.txt?optionalquery=stuff"\r
50  * *pPathLen = 17\r
51  *\r
52  * @param[in] pUrl - URL string to parse.\r
53  * @param[in] urlLen - The length of the URL string input.\r
54  * @param[out] pPath - pointer within input url that the path starts at.\r
55  * @param[out] pPathLen - Length of the path.\r
56  *\r
57  * - #IOT_HTTPS_OK if the path was successfully parsed.\r
58  * - #IOT_HTTPS_PARSING_ERROR if there was an error parsing the URL.\r
59  * - #IOT_HTTPS_NOT_FOUND if the path was not found.\r
60  */\r
61 IotHttpsReturnCode_t IotHttpsClient_GetUrlPath( const char * pUrl,\r
62                                                 size_t urlLen,\r
63                                                 const char ** pPath,\r
64                                                 size_t * pPathLen );\r
65 \r
66 /**\r
67  * @brief Retrieve the Address from the input URL.\r
68  *\r
69  * This function retrieves the location and length of the address from within\r
70  * the input URL. The path and query are not included in the length returned.\r
71  *\r
72  * The URL MUST start with "http://" or "https://" to find the address.\r
73  *\r
74  * For example, if the URL is:\r
75  * pUrl = "https://www.somewebsite.com/path/to/item.txt?optionalquery=stuff"\r
76  *\r
77  * *pAddress = "www.somewebsite.com/path/to/item.txt?optionalquery=stuff"\r
78  * *pAddressLen = 19\r
79  *\r
80  * @param[in] pUrl - URL string to parse.\r
81  * @param[in] urlLen - The length of the URL string input.\r
82  * @param[out] pAddress - pointer within input url that the address starts at.\r
83  * @param[out] pAddressLen - Length of the address.\r
84  *\r
85  * @return One of the following:\r
86  * - #IOT_HTTPS_OK if the path was successfully parsed.\r
87  * - #IOT_HTTPS_PARSING_ERROR if there was an error parsing the URL.\r
88  * - #IOT_HTTPS_NOT_FOUND if the address was not found.\r
89  */\r
90 IotHttpsReturnCode_t IotHttpsClient_GetUrlAddress( const char * pUrl,\r
91                                                    size_t urlLen,\r
92                                                    const char ** pAddress,\r
93                                                    size_t * pAddressLen );\r
94 \r
95 #endif /* IOT_HTTPS_UTILS_H_ */\r