X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=io.h;h=41c0cdb42412c2fc5b81bc850e7fc2b90dff2815;hb=e26682667e15433cad518e622c3c061840b487dd;hp=f8fb25677bfda2be58b3952632102ff06f9bbd2f;hpb=e1550b15c5975d9554a175033a35d89645be2b76;p=nssm.git diff --git a/io.h b/io.h index f8fb256..41c0cdb 100644 --- a/io.h +++ b/io.h @@ -1,9 +1,38 @@ #ifndef IO_H #define IO_H -int get_createfile_parameters(HKEY, char *, char *, unsigned long *, unsigned long, unsigned long *, unsigned long, unsigned long *, unsigned long); -HANDLE append_to_file(char *, unsigned long, SECURITY_ATTRIBUTES *, unsigned long, unsigned long); -int get_output_handles(HKEY, STARTUPINFO *); +#define NSSM_STDIN_SHARING FILE_SHARE_WRITE +#define NSSM_STDIN_DISPOSITION OPEN_EXISTING +#define NSSM_STDIN_FLAGS FILE_ATTRIBUTE_NORMAL +#define NSSM_STDOUT_SHARING (FILE_SHARE_READ | FILE_SHARE_WRITE) +#define NSSM_STDOUT_DISPOSITION OPEN_ALWAYS +#define NSSM_STDOUT_FLAGS FILE_ATTRIBUTE_NORMAL +#define NSSM_STDERR_SHARING (FILE_SHARE_READ | FILE_SHARE_WRITE) +#define NSSM_STDERR_DISPOSITION OPEN_ALWAYS +#define NSSM_STDERR_FLAGS FILE_ATTRIBUTE_NORMAL + +typedef struct { + TCHAR *service_name; + TCHAR *path; + unsigned long sharing; + unsigned long disposition; + unsigned long flags; + HANDLE read_handle; + HANDLE write_handle; + __int64 size; + unsigned long *tid_ptr; + unsigned long *rotate_online; + bool copy_and_truncate; + unsigned long rotate_delay; +} logger_t; + +int get_createfile_parameters(HKEY, TCHAR *, TCHAR *, unsigned long *, unsigned long, unsigned long *, unsigned long, unsigned long *, unsigned long, bool *); +int set_createfile_parameter(HKEY, TCHAR *, TCHAR *, unsigned long); +int delete_createfile_parameter(HKEY, TCHAR *, TCHAR *); +HANDLE write_to_file(TCHAR *, unsigned long, SECURITY_ATTRIBUTES *, unsigned long, unsigned long); +void rotate_file(TCHAR *, TCHAR *, unsigned long, unsigned long, unsigned long, unsigned long, bool); +int get_output_handles(nssm_service_t *, STARTUPINFO *); void close_output_handles(STARTUPINFO *); +unsigned long WINAPI log_and_rotate(void *); #endif