|
|
| version 1.11.2.13, 2011/09/07 13:49:28 | version 1.12.2.2, 2011/10/31 15:05:13 |
|---|---|
| Line 47 SUCH DAMAGE. | Line 47 SUCH DAMAGE. |
| #define __AITIO_H | #define __AITIO_H |
| #define COMPAT_43TTY | |
| #include <assert.h> | #include <assert.h> |
| #include <openssl/evp.h> | #include <openssl/evp.h> |
| #include <openssl/aes.h> | |
| #include <sys/tty.h> | |
| #include <sys/ioctl_compat.h> | |
| #include <sys/socket.h> | |
| #include <sys/un.h> | |
| #include <net/if_dl.h> | |
| #include <netinet/in.h> | |
| #define VACUUM_LEFT 1 | #define VACUUM_LEFT 1 |
| Line 227 typedef struct { | Line 236 typedef struct { |
| AIT_LEN(__val) = 0; \ | AIT_LEN(__val) = 0; \ |
| } while (0) | } while (0) |
| struct io_ether_addr { | |
| u_int8_t ether_addr_octet[6]; | |
| }; | |
| typedef struct io_ether_addr io_ether_addr_t; | |
| typedef union { | |
| struct sockaddr_storage ss; | |
| struct sockaddr sa; | |
| struct sockaddr_un sun; | |
| struct sockaddr_in sin; | |
| struct sockaddr_in6 sin6; | |
| struct sockaddr_dl sdl; | |
| } io_sockaddr_t; | |
| // io_GetErrno() Get error code of last operation | // io_GetErrno() Get error code of last operation |
| inline int io_GetErrno(); | inline int io_GetErrno(); |
| // io_GetError() Get error text of last operation | // io_GetError() Get error text of last operation |
| Line 235 inline const char *io_GetError(); | Line 258 inline const char *io_GetError(); |
| /* | /* |
| * io_ether_ntoa() Convert ethernet address to string | |
| * @n = ethernet address structure, like struct ether_addr | |
| * @a = string | |
| * @len = string length | |
| * return: NULL error or !=NULL string a | |
| */ | |
| inline char *io_ether_ntoa(const struct io_ether_addr *n, char * __restrict a, int len); | |
| /* | |
| * io_ether_aton() Convert string to ethernet address | |
| * @a = string | |
| * @e = ethernet address structure, like struct ether_addr | |
| * return: NULL error or !=NULL ethernet address structure | |
| */ | |
| inline struct io_ether_addr *io_ether_aton(const char *a, struct io_ether_addr *e); | |
| /* | |
| * io_vals2buffer() Marshaling data from array with variables to buffer | * io_vals2buffer() Marshaling data from array with variables to buffer |
| * @buf = Buffer | * @buf = Buffer |
| * @buflen = Size of buffer | * @buflen = Size of buffer |
| Line 749 int ioCipher(unsigned char *pInput, int inLen, unsigne | Line 788 int ioCipher(unsigned char *pInput, int inLen, unsigne |
| */ | */ |
| int io_Blowfish(unsigned char *pInput, int inLen, unsigned char **ppOutput, | int io_Blowfish(unsigned char *pInput, int inLen, unsigned char **ppOutput, |
| unsigned char *pKey, unsigned char *pIV, int nMode); | unsigned char *pKey, unsigned char *pIV, int nMode); |
| /* | |
| * io_ctr_AES() Encrypt/Decrypt stream cipher CTR_AES | |
| * @pInput = Input buffer with ASCII | |
| * @inLen = Input buffer data length | |
| * @ppOutput = Output buffer with cipher data, must be free after use | |
| * @pKey = Key | |
| * @IV = IVector/Nonce/Counter, Warning: IV must be variable, because we write there!!! | |
| * return: -1 error or >-1 how many cipher blocks proceeded | |
| */ | |
| int io_ctr_AES(unsigned char *pInput, int inLen, unsigned char **ppOutput, | |
| unsigned char *pKey, unsigned char IV[AES_BLOCK_SIZE]); | |
| /* | |
| * ioAllocPTY() Allocate new PTY and TTY | |
| * @ptyfd = master fd, pty | |
| * @ttyfd = slave fd, tty | |
| * @name = tty device name if not null | |
| * @namesiz = name length, must be above 63 bytes. | |
| * @term = termios for terminal | |
| * @winz = winsize for terminal | |
| * return: -1 error or 0 ok | |
| */ | |
| inline int ioAllocPTY(int *ptyfd, int *ttyfd, char * __restrict name, int namesiz, | |
| struct termios * __restrict term, struct winsize * __restrict winz); | |
| /* | |
| * ioFreePTY() Release PTY and TTY device | |
| * @ptyfd = master fd, pty (==-1 skip closing pty) | |
| * @ttyname = tty filename | |
| * return: none | |
| */ | |
| inline void ioFreePTY(int ptyfd, const char *ttyname); | |
| /* | |
| * ioChgWinPTY() Change window size of PTY | |
| * @ptyfd = master fd, pty | |
| * @row = row | |
| * @col = col | |
| * @xpxl = x pixels | |
| * @ypxl = y pixels | |
| * return: -1 error or 0 ok | |
| */ | |
| inline int ioChgWinPTY(int ptyfd, unsigned short row, unsigned short col, | |
| unsigned short xpxl, unsigned short ypxl); | |
| /* | |
| * ioSetOwnerTTY() Set owner to TTY | |
| * @ttyname = tty filename | |
| * @UID = uid | |
| * @GID = gid | |
| * return: -1 error or 0 ok | |
| */ | |
| int ioSetOwnerTTY(const char *ttyname, uid_t UID, gid_t GID); | |
| /* | |
| * ioSetSidTTY() Makes the process's controlling TTY and sets it to sane modes. | |
| * @ttyfd = slave fd, tty | |
| * @ttyname = tty filename | |
| * return: -1 error or 0 ok | |
| */ | |
| int ioSetSidTTY(int *ttyfd, const char *ttyname); | |
| /* | |
| * ioSetRAWMode() Enter into RAW mode | |
| * @fd = tty fd | |
| * @otio = saved old termios for later restore if !=NULL | |
| * return: -1 error or 0 ok | |
| */ | |
| inline int ioSetRAWMode(int fd, struct termios *otio); | |
| /* | |
| * ioRestoreMode() Restore termios to tty fd | |
| * @fd = tty fd | |
| * @tio = termios structure for restore | |
| * return: -1 error or 0 ok | |
| */ | |
| inline int ioRestoreMode(int fd, struct termios tio); | |
| /* | |
| * ioForkPTY() Fork new process with session leader and new TTY | |
| * @ptyfd = master fd, pty | |
| * @name = tty device name if not null | |
| * @namesiz = name length, must be above 63 bytes. | |
| * @term = termios for terminal | |
| * @winz = winsize for terminal | |
| * @otio = old termios structure for restore | |
| * return: -1 error, 0 child process or >0 parent: pid of child | |
| */ | |
| pid_t ioForkPTY(int *ptyfd, char * __restrict name, int namesiz, struct termios * __restrict term, | |
| struct winsize * __restrict winz, struct termios * __restrict otio); | |
| /* | |
| * ioCreatePIDFile() Create PID file | |
| * @csName = PID filename | |
| * @ifExists = !=0 if filename exists return error | |
| * return: -1 error or 0 ok | |
| */ | |
| inline int ioCreatePIDFile(const char *csName, int ifExists); | |
| #endif | #endif |