1/*************************************************************************** 2 * LPRng - An Extended Print Spooler System 3 * 4 * Copyright 1988-2003, Patrick Powell, San Diego, CA 5 * papowell@lprng.com 6 * See LICENSE for conditions of use. 7 * $Id: utilities.h,v 1.1.1.1 2008/10/15 03:28:27 james26_jang Exp $ 8 ***************************************************************************/ 9 10 11 12#ifndef _UTILITIES_H_ 13#define _UTILITIES_H_ 1 14 15#include <setjmp.h> 16 17EXTERN volatile int Alarm_timed_out; /* flag */ 18EXTERN volatile int Timeout_pending; 19 20#if defined(HAVE_SIGLONGJMP) 21EXTERN sigjmp_buf Timeout_env; 22# define Set_timeout() (sigsetjmp(Timeout_env,1)==0) 23#else 24EXTERN jmp_buf Timeout_env; 25# define Set_timeout() (setjmp(Timeout_env)==0) 26#endif 27 28/* VARARGS2 */ 29#ifdef HAVE_STDARGS 30 void safefprintf (int fd, char *format,...) 31#else 32 void safefprintf (va_alist) va_dcl 33#endif 34; 35 36/* PROTOTYPES */ 37char *Time_str(int shortform, time_t t); 38char *Pretty_time( time_t t ); 39time_t Convert_to_time_t( char *str ); 40void Printlist( char **m, int fd ); 41int Write_fd_len( int fd, const char *msg, int len ); 42int Write_fd_len_timeout( int timeout, int fd, const char *msg, int len ); 43int Write_fd_str( int fd, const char *msg ); 44int Write_fd_str_timeout( int timeout, int fd, const char *msg ); 45int Read_fd_len_timeout( int timeout, int fd, char *msg, int len ); 46plp_sigfunc_t plp_signal (int signo, plp_sigfunc_t func); 47plp_sigfunc_t plp_signal_break (int signo, plp_sigfunc_t func); 48void plp_block_all_signals ( plp_block_mask *oblock ); 49void plp_unblock_all_signals ( plp_block_mask *oblock ); 50void plp_set_signal_mask ( plp_block_mask *in, plp_block_mask *out ); 51void plp_unblock_one_signal ( int sig, plp_block_mask *oblock ); 52void plp_block_one_signal( int sig, plp_block_mask *oblock ); 53void plp_sigpause( void ); 54int safestrcasecmp (const char *s1, const char *s2); 55int safestrncasecmp (const char *s1, const char *s2, int len ); 56int safestrcmp( const char *s1, const char *s2 ); 57int safestrlen( const char *s1 ); 58int safestrncmp( const char *s1, const char *s2, int len ); 59char *safestrchr( const char *s1, int c ); 60char *safestrrchr( const char *s1, int c ); 61char *safestrpbrk( const char *s1, const char *s2 ); 62char *safestrappend4( char *s1, const char *s2, const char *s3, const char *s4 ); 63int plp_usleep( int i ); 64int plp_sleep( int i ); 65int Get_max_servers( void ); 66int Get_max_fd( void ); 67char *Brk_check_size( void ); 68char *mystrncat( char *s1, const char *s2, int len ); 69char *mystrncpy( char *s1, const char *s2, int len ); 70int Get_nonblock_io( int fd ); 71int Set_nonblock_io( int fd ); 72int Set_block_io( int fd ); 73int Read_write_timeout( 74 int readfd, char *inbuffer, int maxinlen, int *readlen, 75 int writefd, char **outbuffer, int *outlen, int timeout ); 76void Set_timeout_signal_handler( int timeout, plp_sigfunc_t handler ); 77void Set_timeout_alarm( int timeout ); 78void Set_timeout_break( int timeout ); 79void Clear_timeout( void ); 80void Setup_uid(void); 81int To_euid_root(void); 82int To_daemon(void); 83int To_user(void); 84int To_ruid(int ruid); 85int To_euid( int euid ); 86int setuid_wrapper(uid_t to); 87int Full_daemon_perms(void); 88int Full_root_perms(void); 89int Full_user_perms(void); 90int Getdaemon(void); 91int Getdaemon_group(void); 92int Set_full_group( int euid, int gid ); 93int Setdaemon_group(void); 94void Reset_daemonuid(void); 95double Space_avail( char *pathname ); 96/* VARARGS2 */ 97#ifdef HAVE_STDARGS 98 void safefprintf (int fd, char *format,...) 99#else 100 void safefprintf (va_alist) va_dcl 101#endif 102; 103 104#endif 105