mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-16 18:13:49 +01:00
nanocoap_sock: add nanocoap_sock_{put, post}_url()
This commit is contained in:
parent
1ce7537d9e
commit
42a8a587c4
@ -240,6 +240,22 @@ ssize_t nanocoap_sock_put(nanocoap_sock_t *sock, const char *path,
|
|||||||
const void *request, size_t len,
|
const void *request, size_t len,
|
||||||
void *response, size_t len_max);
|
void *response, size_t len_max);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Simple synchronous CoAP (confirmable) PUT to URL
|
||||||
|
*
|
||||||
|
* @param[in] url Absolute URL pointer to source path
|
||||||
|
* @param[in] request buffer containing the payload
|
||||||
|
* @param[in] len length of the payload to send
|
||||||
|
* @param[out] response buffer for the response, may be NULL
|
||||||
|
* @param[in] len_max length of @p response
|
||||||
|
*
|
||||||
|
* @returns length of response payload on success
|
||||||
|
* @returns <0 on error
|
||||||
|
*/
|
||||||
|
ssize_t nanocoap_sock_put_url(const char *url,
|
||||||
|
const void *request, size_t len,
|
||||||
|
void *response, size_t len_max);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Simple synchronous CoAP (confirmable) POST
|
* @brief Simple synchronous CoAP (confirmable) POST
|
||||||
*
|
*
|
||||||
@ -257,6 +273,22 @@ ssize_t nanocoap_sock_post(nanocoap_sock_t *sock, const char *path,
|
|||||||
const void *request, size_t len,
|
const void *request, size_t len,
|
||||||
void *response, size_t len_max);
|
void *response, size_t len_max);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Simple synchronous CoAP (confirmable) POST to URL
|
||||||
|
*
|
||||||
|
* @param[in] url Absolute URL pointer to source path
|
||||||
|
* @param[in] request buffer containing the payload
|
||||||
|
* @param[in] len length of the payload to send
|
||||||
|
* @param[out] response buffer for the response, may be NULL
|
||||||
|
* @param[in] len_max length of @p response
|
||||||
|
*
|
||||||
|
* @returns length of response payload on success
|
||||||
|
* @returns <0 on error
|
||||||
|
*/
|
||||||
|
ssize_t nanocoap_sock_post_url(const char *url,
|
||||||
|
const void *request, size_t len,
|
||||||
|
void *response, size_t len_max);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Performs a blockwise coap get request on a socket.
|
* @brief Performs a blockwise coap get request on a socket.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -361,6 +361,36 @@ ssize_t nanocoap_sock_post(nanocoap_sock_t *sock, const char *path,
|
|||||||
return _sock_put_post(sock, path, COAP_METHOD_POST, request, len, response, len_max);
|
return _sock_put_post(sock, path, COAP_METHOD_POST, request, len, response, len_max);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ssize_t _sock_put_post_url(const char *url, unsigned code,
|
||||||
|
const void *request, size_t len,
|
||||||
|
void *response, size_t len_max)
|
||||||
|
{
|
||||||
|
nanocoap_sock_t sock;
|
||||||
|
int res = nanocoap_sock_url_connect(url, &sock);
|
||||||
|
if (res) {
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
res = _sock_put_post(&sock, sock_urlpath(url), code, request, len, response, len_max);
|
||||||
|
nanocoap_sock_close(&sock);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
ssize_t nanocoap_sock_put_url(const char *url,
|
||||||
|
const void *request, size_t len,
|
||||||
|
void *response, size_t len_max)
|
||||||
|
{
|
||||||
|
return _sock_put_post_url(url, COAP_METHOD_PUT, request, len, response, len_max);
|
||||||
|
}
|
||||||
|
|
||||||
|
ssize_t nanocoap_sock_post_url(const char *url,
|
||||||
|
const void *request, size_t len,
|
||||||
|
void *response, size_t len_max)
|
||||||
|
{
|
||||||
|
return _sock_put_post_url(url, COAP_METHOD_POST, request, len, response, len_max);
|
||||||
|
}
|
||||||
|
|
||||||
ssize_t nanocoap_request(coap_pkt_t *pkt, const sock_udp_ep_t *local,
|
ssize_t nanocoap_request(coap_pkt_t *pkt, const sock_udp_ep_t *local,
|
||||||
const sock_udp_ep_t *remote, size_t len)
|
const sock_udp_ep_t *remote, size_t len)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user