1 #ifndef _MISC_H_ 2 #define _MISC_H_ 3 #include "tlswrap.h" 4 5 #ifndef HAVE_STRLCPY 6 #include <stdio.h> 7 size_t 8 strlcpy(char *dst, const char *src, size_t siz); 9 #endif 10 11 extern int dns_write_pipe, dns_read_pipe, pipe01[2], pipe02[2]; 12 13 #ifndef HAVE_GETOPT 14 #ifndef _GETOPT_DECLARED 15 #define _GETOPT_DECLARED 16 int getopt(int, char * const [], const char *); 17 char *_getprogname(void); 18 extern char *optarg; /* getopt(3) external variables */ 19 extern int optind, opterr, optopt; 20 #endif /* _GETOPT_DECLARED */ 21 #endif /*!HAVE_GETOPT */ 22 void sys_err(const char *); 23 size_t extr_str(const char *, size_t , char *, size_t); 24 int print_to_ud(struct user_data *, const char *); 25 /* int find_max_fd(fd_set *fd_r, fd_set *fd_w); */ 26 int find_max_fd(int, struct user_data *, int); 27 void init_ud(struct user_data *, int); 28 int find_free_slot(struct user_data *, int); 29 int print_to_serv(struct user_data *, const char *); 30 void user_close(struct user_data *); 31 void data_close(struct user_data *); 32 #ifdef WIN32 33 #define WIN32_LEAN_AND_MEAN /* Exclude rarely-used stuff from Windows headers */ 34 #define BOOL int 35 #define true 1 36 #define false 0 37 38 HANDLE hServiceThread; 39 SERVICE_STATUS_HANDLE nServiceStatusHandle; 40 HANDLE killServiceEvent; 41 DWORD nServiceCurrentStatus; 42 #include <windows.h> 43 #include <winsvc.h> 44 struct parm { 45 int argc; 46 char **argv; 47 }; 48 void service_main(DWORD argc, LPTSTR *argv); 49 void service_ctrl_handler(DWORD nControlCode); 50 BOOL update_service_status(DWORD dwCurrentState, DWORD dwWin32ExitCode, 51 DWORD dwServiceSpecificExitCode, DWORD dwCheckPoint, 52 DWORD dwWaitHint); 53 BOOL start_service_thread(void); 54 DWORD service_execution_thread(LPDWORD param); 55 void install_service(char*, char*, int); 56 void remove_service(int); 57 void kill_service(void); 58 BOOL CtrlHandler(DWORD fdwCtrlType); 59 #endif 60 #endif 61