/home/dko/projects/mobilec/trunk/src/security/xyssl-0.7/library/net.c File Reference

#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 <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include "xyssl/net.h"

Go to the source code of this file.

Defines

#define _CRT_SECURE_NO_DEPRECATE   1

Functions

int net_connect (int *fd, char *host, unsigned int port)
 Initiate a TCP connection with host:port.
int net_bind (int *fd, char *bind_ip, unsigned int port)
 Create a listening socket on bind_ip:port. If bind_ip == NULL, all interfaces are binded.
static int net_is_blocking (void)
int net_accept (int bind_fd, int *client_fd, unsigned char client_ip[4])
 Accept a connection from a remote client.
int net_set_block (int fd)
int net_set_nonblock (int fd)
 Set the socket non-blocking.
void net_usleep (unsigned long usec)
 Portable usleep helper.
int net_recv (int fd, unsigned char *buf, int *len)
 Read at most 'len' characters. len is updated to reflect the actual number of characters read.
int net_send (int fd, unsigned char *buf, int *len)
 Write at most 'len' characters. len is updated to reflect the number of characters _not_ written.
void net_close (int fd)
 Gracefully shutdown the connection.


Define Documentation

#define _CRT_SECURE_NO_DEPRECATE   1

Definition at line 22 of file net.c.


Function Documentation

int net_accept ( int  bind_fd,
int client_fd,
unsigned char  client_ip[4] 
)

Accept a connection from a remote client.

Returns:
0 if successful, ERR_NET_ACCEPT_FAILED, or ERR_NET_WOULD_BLOCK is bind_fd was set to non-blocking and accept() is blocking.

Definition at line 200 of file net.c.

References ERR_NET_ACCEPT_FAILED, ERR_NET_WOULD_BLOCK, int, and net_is_blocking().

Referenced by main().

int net_bind ( int fd,
char *  bind_ip,
unsigned int  port 
)

Create a listening socket on bind_ip:port. If bind_ip == NULL, all interfaces are binded.

Returns:
0 if successful, or one of: ERR_NET_SOCKET_FAILED, ERR_NET_BIND_FAILED, ERR_NET_LISTEN_FAILED

Definition at line 112 of file net.c.

References ERR_NET_BIND_FAILED, ERR_NET_LISTEN_FAILED, and ERR_NET_SOCKET_FAILED.

Referenced by main().

void net_close ( int  fd  ) 

Gracefully shutdown the connection.

Definition at line 337 of file net.c.

Referenced by main().

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

Initiate a TCP connection with host:port.

Returns:
0 if successful, or one of: ERR_NET_SOCKET_FAILED, ERR_NET_UNKNOWN_HOST, ERR_NET_CONNECT_FAILED

Definition at line 67 of file net.c.

References ERR_NET_CONNECT_FAILED, ERR_NET_SOCKET_FAILED, and ERR_NET_UNKNOWN_HOST.

Referenced by main().

static int net_is_blocking ( void   )  [static]

Definition at line 178 of file net.c.

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

int net_recv ( int  fd,
unsigned char *  buf,
int len 
)

Read at most 'len' characters. len is updated to reflect the actual number of characters read.

Returns:
0 if successful, ERR_NET_CONN_RESET if the connection was closed from the other side, or ERR_NET_WOULD_BLOCK if read() is blocking.

Definition at line 265 of file net.c.

References ERR_NET_CONN_RESET, ERR_NET_RECV_FAILED, ERR_NET_WOULD_BLOCK, and net_is_blocking().

Referenced by main(), and ssl_parse_client_hello().

int net_send ( int  fd,
unsigned char *  buf,
int len 
)

Write at most 'len' characters. len is updated to reflect the number of characters _not_ written.

Returns:
0 if successful, ERR_NET_CONN_RESET if the connection was closed from the other side, or ERR_NET_WOULD_BLOCK if write() is blocking.

Definition at line 302 of file net.c.

References ERR_NET_CONN_RESET, ERR_NET_SEND_FAILED, ERR_NET_WOULD_BLOCK, and net_is_blocking().

Referenced by main(), ssl_flush_output(), and ssl_write_record().

int net_set_block ( int  fd  ) 

Definition at line 231 of file net.c.

int net_set_nonblock ( int  fd  ) 

Set the socket non-blocking.

Returns:
0 if successful, or 1 if the operation failed

Definition at line 241 of file net.c.

void net_usleep ( unsigned long  usec  ) 

Portable usleep helper.

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

Definition at line 254 of file net.c.


Generated on Fri May 16 14:49:56 2008 for Mobile-C by  doxygen 1.5.4