version 1.31.2.2, 2013/06/24 14:42:59
|
version 1.33.2.1, 2013/08/12 23:19:58
|
Line 59 SUCH DAMAGE.
|
Line 59 SUCH DAMAGE.
|
#include <sys/un.h> |
#include <sys/un.h> |
#include <sys/uio.h> |
#include <sys/uio.h> |
#include <net/if_dl.h> |
#include <net/if_dl.h> |
|
#include <net/bpf.h> |
#include <netinet/in.h> |
#include <netinet/in.h> |
|
#include <elwix.h> |
|
|
|
|
#ifndef STRSIZ |
#ifndef STRSIZ |
#define STRSIZ 256 | #define STRSIZ 256 |
#endif |
#endif |
|
|
|
#define IO_SOCK_TYPE_CLIENT 0 |
|
#define IO_SOCK_TYPE_SERVER 1 |
|
|
|
|
|
typedef struct { |
|
int sock_role; |
|
int sock_backq; |
|
int sock_type; |
|
int sock_proto; |
|
int sock_fd; |
|
sockaddr_t sock_addr; |
|
|
|
sockaddr_t sock_peer; |
|
|
|
ait_val_t sock_buf; |
|
} sock_t; |
|
|
|
|
// io_GetErrno() Get error code of last operation |
// io_GetErrno() Get error code of last operation |
int io_GetErrno(); |
int io_GetErrno(); |
// io_GetError() Get error text of last operation |
// io_GetError() Get error text of last operation |
Line 74 const char *io_GetError();
|
Line 93 const char *io_GetError();
|
|
|
|
|
/* |
/* |
|
* ioInitSocket() - Init socket and allocate resources |
|
* |
|
* @role = Socket role |
|
* @type = Socket type |
|
* @proto = Socket protocol |
|
* @addr = Bind to address |
|
* @port = Bind to port |
|
* @buflen = Socket buffer, optional if =0 == BUFSIZ |
|
* return: NULL error or !=NULL created socket |
|
*/ |
|
sock_t *ioInitSocket(int role, int type, int proto, |
|
const char *addr, unsigned short port, size_t buflen); |
|
/* |
|
* ioCloseSocket() - Close socket and free resources |
|
* |
|
* @s = Socket |
|
* return: none |
|
*/ |
|
void ioCloseSocket(sock_t ** __restrict s); |
|
/* |
|
* ioUpSocket() - Setup socket for use |
|
* |
|
* @s = Socket |
|
* @arg = Server role = listen backlog queue and Client role = peer address |
|
* return: -1 error or 0 ok |
|
*/ |
|
int ioUpSocket(sock_t * __restrict s, void *arg); |
|
|
|
/* |
* ioPromptRead() - Read data from input h[0] with prompt to output h[1] |
* ioPromptRead() - Read data from input h[0] with prompt to output h[1] |
* |
* |
* @h = file handles h[0] = input, h[1] = output, if NULL use stdin, stdout |
* @h = file handles h[0] = input, h[1] = output, if NULL use stdin, stdout |
Line 401 int io_get1stiface(char *szIface, int iflen);
|
Line 449 int io_get1stiface(char *szIface, int iflen);
|
* @csIface = interface name |
* @csIface = interface name |
* @flags = open flags |
* @flags = open flags |
* @whdr = with complete headers |
* @whdr = with complete headers |
|
* @wdlt = with data link type |
* @buflen = buffer length |
* @buflen = buffer length |
* @zcbuf = zero copy buffer, if BPF supports it and isn't NULL |
* @zcbuf = zero copy buffer, if BPF supports it and isn't NULL |
* return: -1 error or >-1 bpf handle |
* return: -1 error or >-1 bpf handle |
*/ |
*/ |
int io_etherOpen(const char *csIface, int flags, int whdr, | int io_etherOpen(const char *csIface, int flags, int whdr, int wdlt, |
unsigned int buflen, void **zcbuf); | unsigned int *buflen, void **zcbuf); |
/* |
/* |
* io_etherClose() - Close BPF interface |
* io_etherClose() - Close BPF interface |
* |
* |
Line 415 int io_etherOpen(const char *csIface, int flags, int w
|
Line 464 int io_etherOpen(const char *csIface, int flags, int w
|
* return: none |
* return: none |
*/ |
*/ |
void io_etherClose(int eth, void **zcbuf); |
void io_etherClose(int eth, void **zcbuf); |
|
|
|
/* |
|
* io_etherSend() - Send packet to bpf |
|
* |
|
* @eth = bpf handle |
|
* @buf = buffer |
|
* @buflen = buffer length |
|
* return: -1 error or !=-1 written bytes |
|
*/ |
|
ssize_t io_etherSend(int eth, const void *buf, size_t buflen); |
|
/* |
|
* io_etherRecv() - Receive packet from bpf |
|
* |
|
* @eth = bpf handle |
|
* @buf = buffer |
|
* @buflen = buffer length |
|
* @zcbuf = zero copy buffer, if BPF supports it and isn't NULL |
|
* return: -1 error or !=-1 readed bytes |
|
*/ |
|
ssize_t io_etherRecv(int eth, void * __restrict buf, |
|
size_t buflen, void * __restrict zcbuf); |
|
|
|
|
#endif |
#endif |