Nicolas Borla / Mbed OS BBR_1Ebene
Embed: (wiki syntax)

« Back to documentation index

net_sockets.h File Reference

net_sockets.h File Reference

Network communication functions. More...

Go to the source code of this file.

Data Structures

struct  mbedtls_net_context
 Wrapper type for sockets. More...

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.
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.
int mbedtls_net_send (void *ctx, const unsigned char *buf, size_t len)
 Write at most 'len' characters.
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.
void mbedtls_net_free (mbedtls_net_context *ctx)
 Gracefully shutdown the connection and free associated data.

Detailed Description

Network communication functions.

Definition in file net_sockets.h.


Function Documentation

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.

Parameters:
bind_ctxRelevant socket
client_ctxWill contain the connected client socket
client_ipWill contain the client IP address
buf_sizeSize of the client_ip buffer
ip_lenWill receive the size of the client IP written
Returns:
0 if successful, or MBEDTLS_ERR_NET_ACCEPT_FAILED, or MBEDTLS_ERR_NET_BUFFER_TOO_SMALL if buf_size is too small, MBEDTLS_ERR_SSL_WANT_READ if bind_fd was set to non-blocking and accept() would block.

Definition at line 301 of file net_sockets.c.

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.

Parameters:
ctxSocket to use
bind_ipIP to bind to, can be NULL
portPort number to use
protoProtocol: MBEDTLS_NET_PROTO_TCP or MBEDTLS_NET_PROTO_UDP
Returns:
0 if successful, or one of: MBEDTLS_ERR_NET_SOCKET_FAILED, MBEDTLS_ERR_NET_BIND_FAILED, MBEDTLS_ERR_NET_LISTEN_FAILED
Note:
Regardless of the protocol, opens the sockets and binds it. In addition, make the socket listening if protocol is TCP.

Definition at line 184 of file net_sockets.c.

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.

Parameters:
ctxSocket to use
hostHost to connect to
portPort to connect to
protoProtocol: MBEDTLS_NET_PROTO_TCP or MBEDTLS_NET_PROTO_UDP
Returns:
0 if successful, or one of: MBEDTLS_ERR_NET_SOCKET_FAILED, MBEDTLS_ERR_NET_UNKNOWN_HOST, MBEDTLS_ERR_NET_CONNECT_FAILED
Note:
Sets the socket in connected mode even with UDP.

Definition at line 136 of file net_sockets.c.

void mbedtls_net_free ( mbedtls_net_context ctx )

Gracefully shutdown the connection and free associated data.

Parameters:
ctxThe context to free

Definition at line 580 of file net_sockets.c.

void mbedtls_net_init ( mbedtls_net_context ctx )

Initialize a context Just makes the context ready to be used or freed safely.

Parameters:
ctxContext to initialize

Definition at line 128 of file net_sockets.c.

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.

Parameters:
ctxSocket
bufThe buffer to write to
lenMaximum length of the buffer
Returns:
the number of bytes received, or a non-zero error code; with a non-blocking socket, MBEDTLS_ERR_SSL_WANT_READ indicates read() would block.

Definition at line 464 of file net_sockets.c.

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.

Parameters:
ctxSocket
bufThe buffer to write to
lenMaximum length of the buffer
timeoutMaximum number of milliseconds to wait for data 0 means no timeout (wait forever)
Returns:
the number of bytes received, or a non-zero error code: MBEDTLS_ERR_SSL_TIMEOUT if the operation timed out, MBEDTLS_ERR_SSL_WANT_READ if interrupted by a signal.
Note:
This function will block (until data becomes available or timeout is reached) even if the socket is set to non-blocking. Handling timeouts with non-blocking reads requires a different strategy.

Definition at line 500 of file net_sockets.c.

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.

Parameters:
ctxSocket
bufThe buffer to read from
lenThe length of the buffer
Returns:
the number of bytes sent, or a non-zero error code; with a non-blocking socket, MBEDTLS_ERR_SSL_WANT_WRITE indicates write() would block.

Definition at line 544 of file net_sockets.c.

int mbedtls_net_set_block ( mbedtls_net_context ctx )

Set the socket blocking.

Parameters:
ctxSocket to set
Returns:
0 if successful, or a non-zero error code

Definition at line 419 of file net_sockets.c.

int mbedtls_net_set_nonblock ( mbedtls_net_context ctx )

Set the socket non-blocking.

Parameters:
ctxSocket to set
Returns:
0 if successful, or a non-zero error code

Definition at line 430 of file net_sockets.c.

void mbedtls_net_usleep ( unsigned long  usec )

Portable usleep helper.

Parameters:
usecAmount of microseconds to sleep
Note:
Real amount of time slept will not be less than select()'s timeout granularity (typically, 10ms).

Definition at line 444 of file net_sockets.c.