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