| /* |
| * Copyright (c) 1995 Danny Gasparovski. |
| * |
| * Please read the file COPYRIGHT for the |
| * terms and conditions of the copyright. |
| */ |
| |
| #ifdef HAVE_SYS_SELECT_H |
| #include <sys/select.h> |
| #endif |
| |
| #define TOWRITEMAX 512 |
| |
| extern struct timeval tt; |
| extern int link_up; |
| extern int slirp_socket; |
| extern int slirp_socket_unit; |
| extern int slirp_socket_port; |
| extern u_int32_t slirp_socket_addr; |
| extern char *slirp_socket_passwd; |
| extern int ctty_closed; |
| extern int slirp_restrict; |
| |
| /* |
| * Get the difference in 2 times from updtim() |
| * Allow for wraparound times, "just in case" |
| * x is the greater of the 2 (current time) and y is |
| * what it's being compared against. |
| */ |
| #define TIME_DIFF(x,y) (x)-(y) < 0 ? ~0-(y)+(x) : (x)-(y) |
| |
| #define DNS_ADDR_MAX 4 |
| |
| extern char *slirp_tty; |
| extern char *exec_shell; |
| extern u_int curtime; |
| extern fd_set *global_readfds, *global_writefds, *global_xfds; |
| extern uint32_t ctl_addr_ip; |
| extern uint32_t special_addr_ip; |
| extern uint32_t alias_addr_ip; |
| extern uint32_t our_addr_ip; |
| extern uint32_t loopback_addr_ip; |
| extern uint32_t dns_addr[DNS_ADDR_MAX]; |
| extern int dns_addr_count; |
| extern char *username; |
| extern char *socket_path; |
| extern int towrite_max; |
| extern int ppp_exit; |
| extern int tcp_keepintvl; |
| extern uint8_t client_ethaddr[6]; |
| extern const char *slirp_special_ip; |
| extern int slirp_restrict; |
| |
| #define PROTO_SLIP 0x1 |
| #ifdef USE_PPP |
| #define PROTO_PPP 0x2 |
| #endif |
| |
| void if_encap(const uint8_t *ip_data, int ip_data_len); |
| ssize_t slirp_send(struct socket *so, const void *buf, size_t len, int flags); |