|
System | : | Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686 |
Software | : | Apache. PHP/5.3.6-13ubuntu3.10 |
ID | : | uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
|
|
Safe Mode | : | OFF |
Open_Basedir | : | OFF |
Freespace | : | 25.77 GB of 70.42 GB (36.59%) |
|
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON |
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
|
[ System Info ]
[ Processes ]
[ SQL Manager ]
[ Eval ]
[ Encoder ]
[ Mailer ]
[ Back Connection ]
[ Backdoor Server ]
[ Kernel Exploit Search ]
[ MD5 Decrypter ]
[ Reverse IP ]
[ Kill Shell ]
[ FTP Brute-Force ]
|
|
/
usr/
src/
courier-0.66.1/
liblock/
- drwxrwxrwx
|
Viewing file: mail.h (2.48 KB) -rw-rw-rw-Select action/file-type:  ( +) |  ( +) |  ( +) | Code ( +) | Session ( +) |  ( +) | SDB ( +) |  ( +) |  ( +) |  ( +) |  ( +) |  ( +) |
#ifndef liblockmail_h #define liblockmail_h
/* ** Copyright 2002 Double Precision, Inc. See COPYING for ** distribution information. */
#ifdef __cplusplus extern "C" { #endif
/* ** Functions for mbox mail locks */
struct ll_mail { char *file; /* File being locked */
/* c-client type lock */
int cclientfd; char *cclientfile;
/* dotlock */
char *dotlock; };
struct ll_mail *ll_mail_alloc(const char *filename);
/* ** Create a c-client type lock. NOTE: c-clients will ping you with SIGUSR2, ** which must be ignored for this implementation. ** Returns: 0 - ok, < 0 - error. ** ** An error return from ll_mail_lock carries some additional context in ** errno: ** ** errno == EAGAIN: potential race condition. The current lock holder MIGHT ** have just terminated. The caller should sleep for AT LEAST 5 seconds, then ** try again. ** ** errno == EEXIST: another process on this server DEFINITELY has the lock. ** ** Implementations might choose to wait and try again on EEXIST as well. */
int ll_mail_lock(struct ll_mail *);
/* ** Open the mail file, read/write (creating a dot-lock). ** Returns: >= 0 - file descriptor, < 0 - error (if EPERM, try ll_open_ro). ** ** errno == EEXIST: another process appears to hold a dot-lock. ** ** errno == EAGAIN: We just blew away a stale dotlock, should try again ** in at least five seconds. Should NOT get two EAGAIN's in a row. */
int ll_mail_open(struct ll_mail *);
/* ** Open in read-only mode. */
int ll_mail_open_ro(struct ll_mail *);
/* ** Release all locks, deallocate structure. NOTE: file descriptor from ** ll_mail_open(_ro)? is NOT closed, it's your responsibility to do that. */
void ll_mail_free(struct ll_mail *);
/* ** As long as we have the logic done already, here's a generic dot-locking ** function. ** ** dotlock - the actual filename of a dotlock file. ** tmpfile - the filename of a temporary file to create first. ** timeout - optional timeout. ** ** Return code: 0: dotlock is created. Just unlink(dotlock) when you're done. ** ** -1 error. Check errno: ** ** EEXIST - dotlock is locked ** ** EAGAIN - dotlock is stale (dotlock created on this machine, and the ** process no longer exists, or dotlock created on another ** machine, and timeout argument was > 0, and the dotlock's ** timestamp was older than timeout seconds. ** ** E????? - something's broken. ** */
int ll_dotlock(const char *dotlock, const char *tmpfile, int timeout);
#ifdef __cplusplus } #endif
#endif
|