net.h File Reference

Network communication functions. More...

#include <string.h>
Include dependency graph for net.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define POLARSSL_ERR_NET_UNKNOWN_HOST   -0x0056
 Failed to get an IP address for the given hostname.
#define POLARSSL_ERR_NET_SOCKET_FAILED   -0x0042
 Failed to open a socket.
#define POLARSSL_ERR_NET_CONNECT_FAILED   -0x0044
 The connection to the given server / port failed.
#define POLARSSL_ERR_NET_BIND_FAILED   -0x0046
 Binding of the socket failed.
#define POLARSSL_ERR_NET_LISTEN_FAILED   -0x0048
 Could not listen on the socket.
#define POLARSSL_ERR_NET_ACCEPT_FAILED   -0x004A
 Could not accept the incoming connection.
#define POLARSSL_ERR_NET_RECV_FAILED   -0x004C
 Reading information from the socket failed.
#define POLARSSL_ERR_NET_SEND_FAILED   -0x004E
 Sending information through the socket failed.
#define POLARSSL_ERR_NET_CONN_RESET   -0x0050
 Connection was reset by peer.
#define POLARSSL_ERR_NET_WANT_READ   -0x0052
 Connection requires a read call.
#define POLARSSL_ERR_NET_WANT_WRITE   -0x0054
 Connection requires a write call.
#define POLARSSL_NET_LISTEN_BACKLOG   10
 The backlog that listen() should use.

Functions

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.
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.

Detailed Description

Network communication functions.

Copyright (C) 2006-2011, Brainspark B.V.

This file is part of PolarSSL (http://www.polarssl.org) Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>

All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Definition in file net.h.


Define Documentation

#define POLARSSL_ERR_NET_ACCEPT_FAILED   -0x004A

Could not accept the incoming connection.

Definition at line 37 of file net.h.

Referenced by net_accept(), and polarssl_strerror().

#define POLARSSL_ERR_NET_BIND_FAILED   -0x0046

Binding of the socket failed.

Definition at line 35 of file net.h.

Referenced by net_bind(), and polarssl_strerror().

#define POLARSSL_ERR_NET_CONN_RESET   -0x0050

Connection was reset by peer.

Definition at line 40 of file net.h.

Referenced by net_recv(), net_send(), and polarssl_strerror().

#define POLARSSL_ERR_NET_CONNECT_FAILED   -0x0044

The connection to the given server / port failed.

Definition at line 34 of file net.h.

Referenced by net_connect(), and polarssl_strerror().

#define POLARSSL_ERR_NET_LISTEN_FAILED   -0x0048

Could not listen on the socket.

Definition at line 36 of file net.h.

Referenced by net_bind(), and polarssl_strerror().

#define POLARSSL_ERR_NET_RECV_FAILED   -0x004C

Reading information from the socket failed.

Definition at line 38 of file net.h.

Referenced by net_recv(), and polarssl_strerror().

#define POLARSSL_ERR_NET_SEND_FAILED   -0x004E

Sending information through the socket failed.

Definition at line 39 of file net.h.

Referenced by net_send(), and polarssl_strerror().

#define POLARSSL_ERR_NET_SOCKET_FAILED   -0x0042

Failed to open a socket.

Definition at line 33 of file net.h.

Referenced by net_bind(), net_connect(), and polarssl_strerror().

#define POLARSSL_ERR_NET_UNKNOWN_HOST   -0x0056

Failed to get an IP address for the given hostname.

Definition at line 32 of file net.h.

Referenced by net_connect(), and polarssl_strerror().

#define POLARSSL_ERR_NET_WANT_READ   -0x0052

Connection requires a read call.

Definition at line 41 of file net.h.

Referenced by net_accept(), net_recv(), polarssl_strerror(), and ssl_read().

#define POLARSSL_ERR_NET_WANT_WRITE   -0x0054

Connection requires a write call.

Definition at line 42 of file net.h.

Referenced by net_send(), and polarssl_strerror().

#define POLARSSL_NET_LISTEN_BACKLOG   10

The backlog that listen() should use.

Definition at line 44 of file net.h.

Referenced by net_bind().


Function Documentation

int net_accept ( int  bind_fd,
int *  client_fd,
void *  client_ip 
)

Accept a connection from a remote client.

Parameters:
bind_fd Relevant socket
client_fd Will contain the connected client socket
client_ip Will contain the client IP address
Returns:
0 if successful, POLARSSL_ERR_NET_ACCEPT_FAILED, or POLARSSL_ERR_NET_WOULD_BLOCK is bind_fd was set to non-blocking and accept() is blocking.

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.

Parameters:
fd Socket to use
bind_ip IP to bind to, can be NULL
port Port number to use
Returns:
0 if successful, or one of: POLARSSL_ERR_NET_SOCKET_FAILED, POLARSSL_ERR_NET_BIND_FAILED, POLARSSL_ERR_NET_LISTEN_FAILED

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  ) 

Gracefully shutdown the connection.

Parameters:
fd The socket to close

Definition at line 391 of file net.c.

int net_connect ( int *  fd,
const char *  host,
int  port 
)

Initiate a TCP connection with host:port.

Parameters:
fd Socket to use
host Host to connect to
port Port to connect to
Returns:
0 if successful, or one of: POLARSSL_ERR_NET_SOCKET_FAILED, POLARSSL_ERR_NET_UNKNOWN_HOST, POLARSSL_ERR_NET_CONNECT_FAILED

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.

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.

Parameters:
ctx Socket
buf The buffer to write to
len Maximum length of the buffer
Returns:
This function returns the number of bytes received, or a non-zero error code; POLARSSL_ERR_NET_WANT_READ indicates read() is blocking.

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.

Parameters:
ctx Socket
buf The buffer to read from
len The length of the buffer
Returns:
This function returns the number of bytes sent, or a non-zero error code; POLARSSL_ERR_NET_WANT_WRITE indicates write() is blocking.

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  ) 

Set the socket blocking.

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

Definition at line 293 of file net.c.

int net_set_nonblock ( int  fd  ) 

Set the socket non-blocking.

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

Definition at line 304 of file net.c.

void net_usleep ( unsigned long  usec  ) 

Portable usleep helper.

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

Definition at line 319 of file net.c.


Generated on 20 Jan 2015 for PolarSSL v1.3.2 by  doxygen 1.6.1