version 1.38.10.14, 2013/12/12 15:20:22
|
version 1.42.2.2, 2019/10/08 13:00:42
|
Line 12 terms:
|
Line 12 terms:
|
All of the documentation and software included in the ELWIX and AITNET |
All of the documentation and software included in the ELWIX and AITNET |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
|
|
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 | Copyright 2004 - 2019 |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
|
|
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
Line 51 SUCH DAMAGE.
|
Line 51 SUCH DAMAGE.
|
|
|
#include <assert.h> |
#include <assert.h> |
#include <syslog.h> |
#include <syslog.h> |
#include <openssl/evp.h> | #include <openssl/crypto.h> |
#include <openssl/aes.h> |
#include <openssl/aes.h> |
#include <sys/tty.h> | #include <openssl/evp.h> |
#include <sys/ioctl_compat.h> | #if OPENSSL_VERSION_NUMBER >= 0x10100000L |
| #include <openssl/modes.h> |
| #endif |
#include <sys/socket.h> |
#include <sys/socket.h> |
#include <sys/un.h> |
#include <sys/un.h> |
#include <sys/uio.h> |
#include <sys/uio.h> |
|
#ifndef __linux__ |
|
#include <sys/tty.h> |
|
#include <sys/ioctl_compat.h> |
#include <net/if_dl.h> |
#include <net/if_dl.h> |
#include <net/bpf.h> |
#include <net/bpf.h> |
|
#endif |
#include <netinet/in.h> |
#include <netinet/in.h> |
#include <elwix.h> |
#include <elwix.h> |
#include <aitsched.h> |
#include <aitsched.h> |
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10100000L |
|
#ifndef evp_cipher_ctx_st |
|
struct evp_cipher_ctx_st { |
|
const EVP_CIPHER *cipher; |
|
ENGINE *engine; /* functional reference if 'cipher' is |
|
* ENGINE-provided */ |
|
int encrypt; /* encrypt or decrypt */ |
|
int buf_len; /* number we have left */ |
|
unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */ |
|
unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */ |
|
unsigned char buf[EVP_MAX_BLOCK_LENGTH]; /* saved partial block */ |
|
int num; /* used by cfb/ofb/ctr mode */ |
|
/* FIXME: Should this even exist? It appears unused */ |
|
void *app_data; /* application stuff */ |
|
int key_len; /* May change for variable length cipher */ |
|
unsigned long flags; /* Various flags */ |
|
void *cipher_data; /* per EVP data */ |
|
int final_used; |
|
int block_mask; |
|
unsigned char final[EVP_MAX_BLOCK_LENGTH]; /* possible final block */ |
|
} /* EVP_CIPHER_CTX */ ; |
|
#endif |
|
#endif |
|
|
#ifndef STRSIZ |
#ifndef STRSIZ |
#define STRSIZ 256 |
#define STRSIZ 256 |
#endif |
#endif |
Line 94 typedef void *(*sock_cb_t)(sock_cli_t*);
|
Line 124 typedef void *(*sock_cb_t)(sock_cli_t*);
|
struct tagCliSock { |
struct tagCliSock { |
void *cli_parent; |
void *cli_parent; |
int cli_fd; |
int cli_fd; |
int cli_pty; | intptr_t cli_pty; |
sockaddr_t cli_addr; |
sockaddr_t cli_addr; |
char cli_name[64]; |
char cli_name[64]; |
char cli_cmdline[PATH_MAX]; |
char cli_cmdline[PATH_MAX]; |
Line 149 prog_t *io_progInit(const char *progName,
|
Line 179 prog_t *io_progInit(const char *progName,
|
* |
* |
* @prg = program pool |
* @prg = program pool |
* @execNum = execute program(s) (0 max) |
* @execNum = execute program(s) (0 max) |
* return: 0 error, >0 executed programs and abs(<0) executed programs with logged error | * return: -1 error, >0 executed programs |
*/ |
*/ |
int io_progOpen(prog_t * __restrict prg, unsigned int execNum); |
int io_progOpen(prog_t * __restrict prg, unsigned int execNum); |
/* |
/* |
|
* io_progOpen2() - Start program from pool on first unused slot |
|
* |
|
* @prg = program pool |
|
* return: -1 error, >-1 reside at slot |
|
*/ |
|
int io_progOpen2(prog_t * __restrict prg); |
|
/* |
* io_progGrow() - Execute to number of programs in pool |
* io_progGrow() - Execute to number of programs in pool |
* |
* |
* @prg = program pool |
* @prg = program pool |
Line 178 int io_progVacuum(prog_t * __restrict prg, unsigned in
|
Line 215 int io_progVacuum(prog_t * __restrict prg, unsigned in
|
*/ |
*/ |
int io_progCloseAt(prog_t * __restrict prg, unsigned int idx); |
int io_progCloseAt(prog_t * __restrict prg, unsigned int idx); |
/* |
/* |
|
* io_progCloseOf() - Close program at pool with certain handle |
|
* |
|
* @prg = program pool |
|
* @h = handle of program |
|
* return: 0 error, >0 closed programs |
|
*/ |
|
#ifdef POPEN_STREAM |
|
int io_progCloseOf(prog_t * __restrict prg, FILE *h); |
|
#else |
|
int io_progCloseOf(prog_t * __restrict prg, int h); |
|
#endif |
|
/* |
* io_progClose() - Close all programs in pool |
* io_progClose() - Close all programs in pool |
* |
* |
* @prg = program pool |
* @prg = program pool |
Line 197 void io_progDestroy(prog_t ** __restrict pprg);
|
Line 246 void io_progDestroy(prog_t ** __restrict pprg);
|
* io_progCheck() - Check exit status of program pool |
* io_progCheck() - Check exit status of program pool |
* |
* |
* @prg = program pool |
* @prg = program pool |
* @re = resurrect program | * @re = resurrect program to init number |
* return: -1 error or >-1 exited programs |
* return: -1 error or >-1 exited programs |
*/ |
*/ |
int io_progCheck(prog_t * __restrict prg, int re); |
int io_progCheck(prog_t * __restrict prg, int re); |
Line 257 void ioCloseSocket(sock_t ** __restrict s);
|
Line 306 void ioCloseSocket(sock_t ** __restrict s);
|
*/ |
*/ |
int ioCloseClient(sock_cli_t * __restrict c); |
int ioCloseClient(sock_cli_t * __restrict c); |
/* |
/* |
* ioSetupProg() - Setup program pool to socket server | * ioSetupProg2Socket() - Setup program pool to socket server |
* |
* |
* @s = Socket |
* @s = Socket |
* @p = Program pool |
* @p = Program pool |
* return: -1 error or 0 ok |
* return: -1 error or 0 ok |
*/ |
*/ |
int ioSetupProg(sock_t * __restrict s, prog_t * __restrict p); | int ioSetupProg2Socket(sock_t * __restrict s, prog_t * __restrict p); |
/* |
/* |
* ioUpSocket() - Setup socket for use |
* ioUpSocket() - Setup socket for use |
* |
* |
Line 612 FILE *io_fd2buf(int fd, const char *mode);
|
Line 661 FILE *io_fd2buf(int fd, const char *mode);
|
* return: -1 error or open file handle |
* return: -1 error or open file handle |
*/ |
*/ |
int io_dumbFile(const char *csFile, int mode, off_t size); |
int io_dumbFile(const char *csFile, int mode, off_t size); |
|
#define io_emptyFile io_dumbFile |
|
|
|
|
/* |
/* |
* io_get1stiface() - Get first interface of host |
|
* |
|
* @szIface = interface string buffer |
|
* @iflen = size of interface buffer |
|
* return: -1 error or 0 ok |
|
*/ |
|
int io_get1stiface(char *szIface, int iflen); |
|
/* |
|
* io_getmaciface() - Get MAC address from interface name |
|
* |
|
* @csIface = interface name |
|
* @ea = ethernet address |
|
* return: -1 error, 0 ok or 1 not found |
|
*/ |
|
int io_getmaciface(const char *csIface, ether_addr_t * __restrict ea); |
|
/* |
|
* io_etherOpen() - Open BPF interface to device |
* io_etherOpen() - Open BPF interface to device |
* |
* |
* @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 | * @wdlt = with data link type, on Linux is protocol number |
* @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 wdlt, | int io_etherOpen(const char *csIface, int flags, unsigned int whdr, |
unsigned int *buflen, void **zcbuf); | unsigned int wdlt, unsigned int *buflen, void **zcbuf); |
/* |
/* |
* io_etherClose() - Close BPF interface |
* io_etherClose() - Close BPF interface |
* |
* |
Line 652 int io_etherOpen(const char *csIface, int flags, int w
|
Line 686 int io_etherOpen(const char *csIface, int flags, int w
|
*/ |
*/ |
void io_etherClose(int eth, void **zcbuf); |
void io_etherClose(int eth, void **zcbuf); |
|
|
|
#ifndef __linux__ |
/* |
/* |
* io_etherFilter() - BPF filter routine |
* io_etherFilter() - BPF filter routine |
* |
* |
Line 663 void io_etherClose(int eth, void **zcbuf);
|
Line 698 void io_etherClose(int eth, void **zcbuf);
|
* return: -1 error or 0 ok |
* return: -1 error or 0 ok |
*/ |
*/ |
int io_etherFilter(int eth, int io, struct bpf_insn * __restrict insn, size_t insnlen); |
int io_etherFilter(int eth, int io, struct bpf_insn * __restrict insn, size_t insnlen); |
|
#endif |
|
|
/* |
/* |
* io_etherSend() - Send packet to bpf |
* io_etherSend() - Send packet to bpf |