PolarSSL v1.2.8
Macros | Functions
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.

Macros

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

Macro Definition Documentation

#define POLARSSL_ERR_NET_ACCEPT_FAILED   -0x004A

Could not accept the incoming connection.

Definition at line 37 of file net.h.

#define POLARSSL_ERR_NET_BIND_FAILED   -0x0046

Binding of the socket failed.

Definition at line 35 of file net.h.

#define POLARSSL_ERR_NET_CONN_RESET   -0x0050

Connection was reset by peer.

Definition at line 40 of file net.h.

#define POLARSSL_ERR_NET_CONNECT_FAILED   -0x0044

The connection to the given server / port failed.

Definition at line 34 of file net.h.

#define POLARSSL_ERR_NET_LISTEN_FAILED   -0x0048

Could not listen on the socket.

Definition at line 36 of file net.h.

#define POLARSSL_ERR_NET_RECV_FAILED   -0x004C

Reading information from the socket failed.

Definition at line 38 of file net.h.

#define POLARSSL_ERR_NET_SEND_FAILED   -0x004E

Sending information through the socket failed.

Definition at line 39 of file net.h.

#define POLARSSL_ERR_NET_SOCKET_FAILED   -0x0042

Failed to open a socket.

Definition at line 33 of file net.h.

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

#define POLARSSL_ERR_NET_WANT_READ   -0x0052

Connection requires a read call.

Definition at line 41 of file net.h.

#define POLARSSL_ERR_NET_WANT_WRITE   -0x0054

Connection requires a write call.

Definition at line 42 of file net.h.

#define POLARSSL_NET_LISTEN_BACKLOG   10

The backlog that listen() should use.

Definition at line 44 of file net.h.

Function Documentation

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

Accept a connection from a remote client.

Parameters
bind_fdRelevant socket
client_fdWill contain the connected client socket
client_ipWill 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.
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
fdSocket to use
bind_ipIP to bind to, can be NULL
portPort 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
void net_close ( int  fd)

Gracefully shutdown the connection.

Parameters
fdThe socket to close
int net_connect ( int *  fd,
const char *  host,
int  port 
)

Initiate a TCP connection with host:port.

Parameters
fdSocket to use
hostHost to connect to
portPort 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
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
ctxSocket
bufThe buffer to write to
lenMaximum 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.
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
ctxSocket
bufThe buffer to read from
lenThe 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.
int net_set_block ( int  fd)

Set the socket blocking.

Parameters
fdSocket to set
Returns
0 if successful, or a non-zero error code
int net_set_nonblock ( int  fd)

Set the socket non-blocking.

Parameters
fdSocket to set
Returns
0 if successful, or a non-zero error code
void 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).