PolarSSL v1.1.4
Defines | 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.

Defines

#define POLARSSL_ERR_NET_UNKNOWN_HOST   -0x0040
 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.

#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   -0x0040

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