?? maildirquota.h
字號:
/* $Id: maildirquota.h,v 1.2 2003/10/20 18:59:57 tomcollins Exp $ This is a composite of deliverquota's maildirquota.h, maildirmisc.h, and numlib.h. I only consolidated them to keep this patch to vpopmail a bit less intrusive. -Bill Shupp *//* I've removed pretty much the whole file execept for some public functions so as to not conflict with courier. I"ve made the courier functions static. - Brian Kolaci*/int readdomainquota(const char *dir, long *sizep, int *cntp);int readuserquota(const char* dir, long *sizep, int *cntp);int domain_over_maildirquota(const char *userdir);int user_over_maildirquota(const char *dir, const char *quota);void add_warningsize_to_quota( const char *dir, const char *quota);int vmaildir_readquota(const char *dir, const char *quota);/* skip the rest... */#if 0/* from maildirquota.h */#ifndef maildirquota_h#define maildirquota_h/*** Copyright 1998 - 1999 Double Precision, Inc.** See COPYING for distribution information.*/#include <sys/types.h>#include <stdio.h>#include <time.h>#ifdef __cplusplusextern "C" {#endifstatic const char maildirquota_h_rcsid[]="$Id: maildirquota.h,v 1.2 2003/10/20 18:59:57 tomcollins Exp $";int maildir_checkquota(const char *, /* Pointer to directory */ int *, /* Initialized to -1, or opened descriptor for maildirsize */ const char *, /* The quota */ long, /* Extra bytes planning to add/remove from maildir */ int); /* Extra messages planning to add/remove from maildir */int maildir_addquota(const char *, /* Pointer to the maildir */ int, /* Must be the int pointed to by 2nd arg to checkquota */ const char *, /* The quota */ long, /* +/- bytes */ int); /* +/- files */int maildir_readquota(const char *, /* Directory */ const char *); /* Quota, from getquota */int maildir_parsequota(const char *, unsigned long *); /* Attempt to parse file size encoded in filename. Returns 0 if ** parsed, non-zero if we didn't parse. */#ifdef __cplusplus}#endif#endif/* from maildirmisc.h */#ifndef maildirmisc_h#define maildirmisc_h/*** Copyright 2000 Double Precision, Inc.** See COPYING for distribution information.*/#ifdef __cplusplusextern "C" {#endifstatic const char maildirmisc_h_rcsid[]="$Id: maildirquota.h,v 1.2 2003/10/20 18:59:57 tomcollins Exp $";/***** Miscellaneous maildir-related code***//* Some special folders */#define INBOX "INBOX"#define DRAFTS "Drafts"#define SENT "Sent"#define TRASH "Trash"#define SHAREDSUBDIR "shared-folders"char *maildir_folderdir(const char *, /* maildir */ const char *); /* folder name */ /* Returns the directory corresponding to foldername (foldername is ** checked to make sure that it's a valid name, else we set errno ** to EINVAL, and return (0). */char *maildir_filename(const char *, /* maildir */ const char *, /* folder */ const char *); /* filename */ /* ** Builds the filename to this message, suitable for opening. ** If the file doesn't appear to be there, search the maildir to ** see if someone changed the flags, and return the current filename. */int maildir_safeopen(const char *, /* filename */ int, /* mode */ int); /* perm *//*** Same arguments as open(). When we're accessing a shared maildir,** prevent someone from playing cute and dumping a bunch of symlinks** in there. This function will open the indicate file only if the** last component is not a symlink.** This is implemented by opening the file with O_NONBLOCK (to prevent** a DOS attack of someone pointing the symlink to a pipe, causing** the open to hang), clearing O_NONBLOCK, then stat-int the file** descriptor, lstating the filename, and making sure that dev/ino** match.*/int maildir_semisafeopen(const char *, /* filename */ int, /* mode */ int); /* perm *//*** Same thing, except that we allow ONE level of soft link indirection,** because we're reading from our own maildir, which points to the** message in the sharable maildir.*/int maildir_mkdir(const char *); /* directory *//*** Create maildir including all subdirectories in the path (like mkdir -p)*/void maildir_purgetmp(const char *); /* maildir */ /* purges old stuff out of tmp */void maildir_purge(const char *, /* directory */ unsigned); /* time_t to purge */void maildir_getnew(const char *, /* maildir */ const char *); /* folder */ /* move messages from new to cur */int maildir_deletefolder(const char *, /* maildir */ const char *); /* folder */ /* deletes a folder */int maildir_mddelete(const char *); /* delete a maildir folder by path */void maildir_list_sharable(const char *, /* maildir */ void (*)(const char *, void *), /* callback function */ void *); /* 2nd arg to callback func */ /* list sharable folders */int maildir_shared_subscribe(const char *, /* maildir */ const char *); /* folder */ /* subscribe to a shared folder */void maildir_list_shared(const char *, /* maildir */ void (*)(const char *, void *), /* callback function */ void *); /* 2nd arg to the callback func */ /* list subscribed folders */int maildir_shared_unsubscribe(const char *, /* maildir */ const char *); /* folder */ /* unsubscribe from a shared folder */char *maildir_shareddir(const char *, /* maildir */ const char *); /* folder */ /* ** Validate and return a path to a shared folder. folderdir must be ** a name of a valid shared folder. */void maildir_shared_sync(const char *); /* maildir */ /* "sync" the shared folder */int maildir_sharedisro(const char *); /* maildir */ /* maildir is a shared read-only folder */int maildir_unlinksharedmsg(const char *); /* filename */ /* Remove a message from a shared folder *//* Internal function that reads a symlink */char *maildir_getlink(const char *); /* Determine whether the maildir filename has a certain flag */int maildir_hasflag(const char *filename, char);#define MAILDIR_DELETED(f) maildir_hasflag((f), 'T')#ifdef __cplusplus}#endif#endif/* from numlib.h */#ifndef numlib_h#define numlib_h/*** Copyright 1998 - 1999 Double Precision, Inc.** See COPYING for distribution information.*/#ifdef __cplusplusextern "C" {#endifstatic const char numlib_h_rcsid[]="$Id: maildirquota.h,v 1.2 2003/10/20 18:59:57 tomcollins Exp $";#define NUMBUFSIZE 60/* Convert various system types to decimal */char *str_time_t(time_t, char *);char *str_off_t(off_t, char *);char *str_pid_t(pid_t, char *);char *str_ino_t(ino_t, char *);char *str_uid_t(uid_t, char *);char *str_gid_t(gid_t, char *);char *str_size_t(size_t, char *);char *str_sizekb(unsigned long, char *); /* X Kb or X Mb *//* Convert selected system types to hex */char *strh_time_t(time_t, char *);char *strh_pid_t(pid_t, char *);char *strh_ino_t(ino_t, char *);#ifdef __cplusplus}#endif#endif#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -