00001
00023 #ifndef MBEDTLS_NET_SOCKETS_H
00024 #define MBEDTLS_NET_SOCKETS_H
00025
00026 #if !defined(MBEDTLS_CONFIG_FILE)
00027 #include "config.h"
00028 #else
00029 #include MBEDTLS_CONFIG_FILE
00030 #endif
00031
00032 #include "ssl.h"
00033
00034 #include <stddef.h>
00035 #include <stdint.h>
00036
00037 #define MBEDTLS_ERR_NET_SOCKET_FAILED -0x0042
00038 #define MBEDTLS_ERR_NET_CONNECT_FAILED -0x0044
00039 #define MBEDTLS_ERR_NET_BIND_FAILED -0x0046
00040 #define MBEDTLS_ERR_NET_LISTEN_FAILED -0x0048
00041 #define MBEDTLS_ERR_NET_ACCEPT_FAILED -0x004A
00042 #define MBEDTLS_ERR_NET_RECV_FAILED -0x004C
00043 #define MBEDTLS_ERR_NET_SEND_FAILED -0x004E
00044 #define MBEDTLS_ERR_NET_CONN_RESET -0x0050
00045 #define MBEDTLS_ERR_NET_UNKNOWN_HOST -0x0052
00046 #define MBEDTLS_ERR_NET_BUFFER_TOO_SMALL -0x0043
00047 #define MBEDTLS_ERR_NET_INVALID_CONTEXT -0x0045
00049 #define MBEDTLS_NET_LISTEN_BACKLOG 10
00051 #define MBEDTLS_NET_PROTO_TCP 0
00052 #define MBEDTLS_NET_PROTO_UDP 1
00054 #ifdef __cplusplus
00055 extern "C" {
00056 #endif
00057
00065 typedef struct
00066 {
00067 int fd;
00068 }
00069 mbedtls_net_context;
00070
00077 void mbedtls_net_init( mbedtls_net_context *ctx );
00078
00094 int mbedtls_net_connect( mbedtls_net_context *ctx, const char *host, const char *port, int proto );
00095
00113 int mbedtls_net_bind( mbedtls_net_context *ctx, const char *bind_ip, const char *port, int proto );
00114
00130 int mbedtls_net_accept( mbedtls_net_context *bind_ctx,
00131 mbedtls_net_context *client_ctx,
00132 void *client_ip, size_t buf_size, size_t *ip_len );
00133
00141 int mbedtls_net_set_block( mbedtls_net_context *ctx );
00142
00150 int mbedtls_net_set_nonblock( mbedtls_net_context *ctx );
00151
00160 void mbedtls_net_usleep( unsigned long usec );
00161
00174 int mbedtls_net_recv( void *ctx, unsigned char *buf, size_t len );
00175
00188 int mbedtls_net_send( void *ctx, const unsigned char *buf, size_t len );
00189
00211 int mbedtls_net_recv_timeout( void *ctx, unsigned char *buf, size_t len,
00212 uint32_t timeout );
00213
00219 void mbedtls_net_free( mbedtls_net_context *ctx );
00220
00221 #ifdef __cplusplus
00222 }
00223 #endif
00224
00225 #endif