Network communication functions. More...
#include "config.h"
#include "ssl.h"
#include <stddef.h>
#include <stdint.h>
Go to the source code of this file.
Data Structures | |
struct | mbedtls_net_context |
Defines | |
#define | MBEDTLS_ERR_NET_SOCKET_FAILED -0x0042 |
#define | MBEDTLS_ERR_NET_CONNECT_FAILED -0x0044 |
#define | MBEDTLS_ERR_NET_BIND_FAILED -0x0046 |
#define | MBEDTLS_ERR_NET_LISTEN_FAILED -0x0048 |
#define | MBEDTLS_ERR_NET_ACCEPT_FAILED -0x004A |
#define | MBEDTLS_ERR_NET_RECV_FAILED -0x004C |
#define | MBEDTLS_ERR_NET_SEND_FAILED -0x004E |
#define | MBEDTLS_ERR_NET_CONN_RESET -0x0050 |
#define | MBEDTLS_ERR_NET_UNKNOWN_HOST -0x0052 |
#define | MBEDTLS_ERR_NET_BUFFER_TOO_SMALL -0x0043 |
#define | MBEDTLS_ERR_NET_INVALID_CONTEXT -0x0045 |
#define | MBEDTLS_NET_LISTEN_BACKLOG 10 |
#define | MBEDTLS_NET_PROTO_TCP 0 |
#define | MBEDTLS_NET_PROTO_UDP 1 |
Functions | |
void | mbedtls_net_init (mbedtls_net_context *ctx) |
Initialize a context Just makes the context ready to be used or freed safely. | |
int | mbedtls_net_connect (mbedtls_net_context *ctx, const char *host, const char *port, int proto) |
Initiate a connection with host:port in the given protocol. | |
int | mbedtls_net_bind (mbedtls_net_context *ctx, const char *bind_ip, const char *port, int proto) |
Create a receiving socket on bind_ip:port in the chosen protocol. If bind_ip == NULL, all interfaces are bound. | |
int | mbedtls_net_accept (mbedtls_net_context *bind_ctx, mbedtls_net_context *client_ctx, void *client_ip, size_t buf_size, size_t *ip_len) |
Accept a connection from a remote client. | |
int | mbedtls_net_set_block (mbedtls_net_context *ctx) |
Set the socket blocking. | |
int | mbedtls_net_set_nonblock (mbedtls_net_context *ctx) |
Set the socket non-blocking. | |
void | mbedtls_net_usleep (unsigned long usec) |
Portable usleep helper. | |
int | mbedtls_net_recv (void *ctx, unsigned char *buf, size_t len) |
Read at most 'len' characters. If no error occurs, the actual amount read is returned. | |
int | mbedtls_net_send (void *ctx, const unsigned char *buf, size_t len) |
Write at most 'len' characters. If no error occurs, the actual amount read is returned. | |
int | mbedtls_net_recv_timeout (void *ctx, unsigned char *buf, size_t len, uint32_t timeout) |
Read at most 'len' characters, blocking for at most 'timeout' seconds. If no error occurs, the actual amount read is returned. | |
void | mbedtls_net_free (mbedtls_net_context *ctx) |
Gracefully shutdown the connection and free associated data. |
Network communication functions.
Definition in file net_sockets.h.
#define MBEDTLS_ERR_NET_ACCEPT_FAILED -0x004A |
Could not accept the incoming connection.
Definition at line 69 of file net_sockets.h.
#define MBEDTLS_ERR_NET_BIND_FAILED -0x0046 |
Binding of the socket failed.
Definition at line 67 of file net_sockets.h.
#define MBEDTLS_ERR_NET_BUFFER_TOO_SMALL -0x0043 |
Buffer is too small to hold the data.
Definition at line 74 of file net_sockets.h.
#define MBEDTLS_ERR_NET_CONN_RESET -0x0050 |
Connection was reset by peer.
Definition at line 72 of file net_sockets.h.
#define MBEDTLS_ERR_NET_CONNECT_FAILED -0x0044 |
The connection to the given server / port failed.
Definition at line 66 of file net_sockets.h.
#define MBEDTLS_ERR_NET_INVALID_CONTEXT -0x0045 |
The context is invalid, eg because it was free()ed.
Definition at line 75 of file net_sockets.h.
#define MBEDTLS_ERR_NET_LISTEN_FAILED -0x0048 |
Could not listen on the socket.
Definition at line 68 of file net_sockets.h.
#define MBEDTLS_ERR_NET_RECV_FAILED -0x004C |
Reading information from the socket failed.
Definition at line 70 of file net_sockets.h.
#define MBEDTLS_ERR_NET_SEND_FAILED -0x004E |
Sending information through the socket failed.
Definition at line 71 of file net_sockets.h.
#define MBEDTLS_ERR_NET_SOCKET_FAILED -0x0042 |
Failed to open a socket.
Definition at line 65 of file net_sockets.h.
#define MBEDTLS_ERR_NET_UNKNOWN_HOST -0x0052 |
Failed to get an IP address for the given hostname.
Definition at line 73 of file net_sockets.h.
#define MBEDTLS_NET_LISTEN_BACKLOG 10 |
The backlog that listen() should use.
Definition at line 77 of file net_sockets.h.
#define MBEDTLS_NET_PROTO_TCP 0 |
The TCP transport protocol
Definition at line 79 of file net_sockets.h.
#define MBEDTLS_NET_PROTO_UDP 1 |
The UDP transport protocol
Definition at line 80 of file net_sockets.h.
int mbedtls_net_accept | ( | mbedtls_net_context * | bind_ctx, | |
mbedtls_net_context * | client_ctx, | |||
void * | client_ip, | |||
size_t | buf_size, | |||
size_t * | ip_len | |||
) |
Accept a connection from a remote client.
bind_ctx | Relevant socket | |
client_ctx | Will contain the connected client socket | |
client_ip | Will contain the client IP address, can be NULL | |
buf_size | Size of the client_ip buffer | |
ip_len | Will receive the size of the client IP written, can be NULL if client_ip is null |
int mbedtls_net_bind | ( | mbedtls_net_context * | ctx, | |
const char * | bind_ip, | |||
const char * | port, | |||
int | proto | |||
) |
Create a receiving socket on bind_ip:port in the chosen protocol. If bind_ip == NULL, all interfaces are bound.
ctx | Socket to use | |
bind_ip | IP to bind to, can be NULL | |
port | Port number to use | |
proto | Protocol: MBEDTLS_NET_PROTO_TCP or MBEDTLS_NET_PROTO_UDP |
int mbedtls_net_connect | ( | mbedtls_net_context * | ctx, | |
const char * | host, | |||
const char * | port, | |||
int | proto | |||
) |
Initiate a connection with host:port in the given protocol.
ctx | Socket to use | |
host | Host to connect to | |
port | Port to connect to | |
proto | Protocol: MBEDTLS_NET_PROTO_TCP or MBEDTLS_NET_PROTO_UDP |
void mbedtls_net_free | ( | mbedtls_net_context * | ctx | ) |
Gracefully shutdown the connection and free associated data.
ctx | The context to free |
void mbedtls_net_init | ( | mbedtls_net_context * | ctx | ) |
Initialize a context Just makes the context ready to be used or freed safely.
ctx | Context to initialize |
int mbedtls_net_recv | ( | void * | ctx, | |
unsigned char * | buf, | |||
size_t | len | |||
) |
Read at most 'len' characters. If no error occurs, the actual amount read is returned.
ctx | Socket | |
buf | The buffer to write to | |
len | Maximum length of the buffer |
int mbedtls_net_recv_timeout | ( | void * | ctx, | |
unsigned char * | buf, | |||
size_t | len, | |||
uint32_t | timeout | |||
) |
Read at most 'len' characters, blocking for at most 'timeout' seconds. If no error occurs, the actual amount read is returned.
ctx | Socket | |
buf | The buffer to write to | |
len | Maximum length of the buffer | |
timeout | Maximum number of milliseconds to wait for data 0 means no timeout (wait forever) |
int mbedtls_net_send | ( | void * | ctx, | |
const unsigned char * | buf, | |||
size_t | len | |||
) |
Write at most 'len' characters. If no error occurs, the actual amount read is returned.
ctx | Socket | |
buf | The buffer to read from | |
len | The length of the buffer |
int mbedtls_net_set_block | ( | mbedtls_net_context * | ctx | ) |
Set the socket blocking.
ctx | Socket to set |
int mbedtls_net_set_nonblock | ( | mbedtls_net_context * | ctx | ) |
Set the socket non-blocking.
ctx | Socket to set |
void mbedtls_net_usleep | ( | unsigned long | usec | ) |
Portable usleep helper.
usec | Amount of microseconds to sleep |