#include "polarssl/config.h"
#include "polarssl/net.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/time.h>
#include <unistd.h>
#include <signal.h>
#include <fcntl.h>
#include <netdb.h>
#include <errno.h>
#include <endian.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <inttypes.h>
Go to the source code of this file.
Defines | |
#define | POLARSSL_HTONS(n) |
#define | POLARSSL_HTONL(n) |
#define | net_htons(n) POLARSSL_HTONS(n) |
#define | net_htonl(n) POLARSSL_HTONL(n) |
Functions | |
unsigned short | net_htons (unsigned short n) |
unsigned long | net_htonl (unsigned long n) |
int | net_connect (int *fd, const char *host, int port) |
Initiate a TCP connection with host:port. | |
int | net_bind (int *fd, const char *bind_ip, int port) |
Create a listening socket on bind_ip:port. | |
static int | net_is_blocking (void) |
int | net_accept (int bind_fd, int *client_fd, void *client_ip) |
Accept a connection from a remote client. | |
int | net_set_block (int fd) |
Set the socket blocking. | |
int | net_set_nonblock (int fd) |
Set the socket non-blocking. | |
void | net_usleep (unsigned long usec) |
Portable usleep helper. | |
int | net_recv (void *ctx, unsigned char *buf, size_t len) |
Read at most 'len' characters. | |
int | net_send (void *ctx, const unsigned char *buf, size_t len) |
Write at most 'len' characters. | |
void | net_close (int fd) |
Gracefully shutdown the connection. |
#define net_htonl | ( | n | ) | POLARSSL_HTONL(n) |
Definition at line 115 of file net.c.
Referenced by net_bind().
#define net_htons | ( | n | ) | POLARSSL_HTONS(n) |
Definition at line 114 of file net.c.
Referenced by net_bind(), and net_connect().
#define POLARSSL_HTONL | ( | n | ) |
#define POLARSSL_HTONS | ( | n | ) |
int net_accept | ( | int | bind_fd, | |
int * | client_fd, | |||
void * | client_ip | |||
) |
Accept a connection from a remote client.
bind_fd | Relevant socket | |
client_fd | Will contain the connected client socket | |
client_ip | Will contain the client IP address |
Definition at line 261 of file net.c.
References net_is_blocking(), POLARSSL_ERR_NET_ACCEPT_FAILED, and POLARSSL_ERR_NET_WANT_READ.
int net_bind | ( | int * | fd, | |
const char * | bind_ip, | |||
int | port | |||
) |
Create a listening socket on bind_ip:port.
If bind_ip == NULL, all interfaces are binded.
fd | Socket to use | |
bind_ip | IP to bind to, can be NULL | |
port | Port number to use |
Definition at line 169 of file net.c.
References net_htonl, net_htons, POLARSSL_ERR_NET_BIND_FAILED, POLARSSL_ERR_NET_LISTEN_FAILED, POLARSSL_ERR_NET_SOCKET_FAILED, and POLARSSL_NET_LISTEN_BACKLOG.
void net_close | ( | int | fd | ) |
int net_connect | ( | int * | fd, | |
const char * | host, | |||
int | port | |||
) |
Initiate a TCP connection with host:port.
fd | Socket to use | |
host | Host to connect to | |
port | Port to connect to |
Definition at line 120 of file net.c.
References net_htons, POLARSSL_ERR_NET_CONNECT_FAILED, POLARSSL_ERR_NET_SOCKET_FAILED, and POLARSSL_ERR_NET_UNKNOWN_HOST.
unsigned long net_htonl | ( | unsigned long | n | ) |
unsigned short net_htons | ( | unsigned short | n | ) |
static int net_is_blocking | ( | void | ) | [static] |
Definition at line 238 of file net.c.
Referenced by net_accept(), net_recv(), and net_send().
int 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 |
Definition at line 331 of file net.c.
References net_is_blocking(), POLARSSL_ERR_NET_CONN_RESET, POLARSSL_ERR_NET_RECV_FAILED, and POLARSSL_ERR_NET_WANT_READ.
int 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 |
Definition at line 361 of file net.c.
References net_is_blocking(), POLARSSL_ERR_NET_CONN_RESET, POLARSSL_ERR_NET_SEND_FAILED, and POLARSSL_ERR_NET_WANT_WRITE.
int net_set_block | ( | int | fd | ) |
int net_set_nonblock | ( | int | fd | ) |