ShellBanner
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:24.35 GB of 70.42 GB (34.58%)
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,

/ usr/ src/ courier-0.66.1/ pcp/ - drwxrwxrwx

Directory:
Viewing file:     pcp.h (11.25 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef pcp_h
#define pcp_h

/*
** Copyright 2001-2002 Double Precision, Inc.  See COPYING for
** distribution information.
*/


#include "config.h"

#if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
#  include <sys/time.h>
# else
#  include <time.h>
# endif
#endif

#include <time.h>

struct PCP_new_eventid {
    char *eventid;
} ;

struct PCP_event_participant {
    const char *address;
    const char *eventid;
} ;

struct PCP_save_event {

    const struct PCP_event_participant *event_participants;
    unsigned n_event_participants;

    int write_event_fd;    /* ... read from this file descriptor, or ... */
    char *write_event_buf; /* ... read from this 0-terminated buffer, */

    int flags;        /* flags - see below in PCP_commit */

    int (*write_event_func)(char *, int, void *);
    void *write_event_func_misc_ptr;
} ;

/*
** Structure passed to pcp_commit() and pcp_book().
*/

struct PCP_commit {
    int flags;
#define PCP_OK_CONFLICT    1    /* Ok if time conflict with existing events */
#define PCP_OK_PROXY_ERRORS 2    /*
                ** Force through the commit even if there is
                ** an error from the proxy server.
                */

#define PCP_BYPROXY 4           /*
                ** This event is placed on the calendar by
                ** proxy (basically, this event has the
                ** LIST_PROXY bit set by pcp_retr.
                */

    const struct PCP_event_time *event_times;
    unsigned n_event_times;

    int errcode;        /* Extended error code */
/*
** PCP error codes:
*/
#define PCP_ERR_SYSERR          0    /* See errno */
#define PCP_ERR_LOCK        1
#define PCP_ERR_CONFLICT    2
#define PCP_ERR_EVENTNOTFOUND    3
#define PCP_ERR_EVENTLOCKED    4

    int (*add_conflict_callback)(const char *, time_t, time_t,
                     const char *, void *);
    void *add_conflict_callback_ptr;

    /*
    ** Callback function invoked to specify participant userids whose
    ** calendars were updated.
    */

    void (*proxy_callback)(const char *,    /* "NEW" or "DELETE" */
                   const char *,    /* userid */
                   void *);        /* callback ptr */
    void *proxy_callback_ptr;
} ;

struct PCP_delete {
    const char *id;
    int errcode;
    void (*proxy_callback)(const char *,    /* "NEW" or "DELETE" */
                   const char *,    /* userid */
                   void *);        /* callback ptr */
    void *proxy_callback_ptr;
} ;

struct PCP_event_time {
    time_t start;
    time_t end;
} ;

struct PCP_uncancel {
    int errcode;
    int (*uncancel_conflict_callback)(const char *, time_t, time_t,
                      const char *, void *);
    void *uncancel_conflict_callback_ptr;
} ;

/*
** Structure used by pcp_list_all().  List all events within the specified
** time range.
*/


struct PCP_list_all {

    time_t list_from, list_to;    /* 0, or time_t */

    int (*callback_func)(struct PCP_list_all *, void *);
    void *callback_arg;

    /* The following fields will be initialized */

    time_t event_from, event_to;
    const char *event_id;

#define LIST_CANCELLED    1
#define LIST_BOOKED     2
#define    LIST_PROXY    4

} ;

struct PCP_retr {

    int (*callback_func)(struct PCP_retr *, void *);
    void *callback_arg;

    const char * const * event_id_list;
    /* List of event-ids to retrieve */

    const char *event_id;    /* Event-id being retrieved */
    int errcode;

    int (*callback_retr_status)(struct PCP_retr *, int, void *);
    /* Initialize to retrieve the status of the events */

    int (*callback_retr_date)(struct PCP_retr *, time_t, time_t, void *);
    /* Initialize to retrieve starting/ending times */

    int (*callback_retr_participants)(struct PCP_retr *, const char *,
                      const char *, void *);
    /* Initialize to retrieve other participants */


    /*
    ** If callback_headers_func is set callback_begin_func will be
    ** followed by 0 or more callback_headers_func(), followed by
    ** callback_end_func().
    **
    ** If callback_rfc822_func is set, callback_begin_func will be
    ** followed by 0 or more callback_rfc822_func(), followed by
    ** callback_end_func().
    */

    int (*callback_begin_func)(struct PCP_retr *, void *);
    int (*callback_headers_func)(struct PCP_retr *,
                     const char *, const char *, void *);
    int (*callback_rfc822_func)(struct PCP_retr *, const char *, int,
                    void *);
    int (*callback_end_func)(struct PCP_retr *, void *);
} ;

/* Calendar metastructure returned by driver-specific open function */

struct PCP {
    void (*close_func)(struct PCP *);
    const char *(*authtoken_func)(struct PCP *);
    int (*cleanup_func)(struct PCP *);

    void (*noop_func)(struct PCP *);
    struct PCP_new_eventid *
    (*create_new_eventid_func)(struct PCP *,
                   const char *,
                   struct PCP_save_event *);
    void (*destroy_new_eventid_func)(struct PCP *,
                     struct PCP_new_eventid *);

    int (*commit_func)(struct PCP *, struct PCP_new_eventid *,
               struct PCP_commit *);
    int (*book_func)(struct PCP *, struct PCP_new_eventid *,
             struct PCP_commit *);

    int (*list_all_func)(struct PCP *, struct PCP_list_all *);
    int (*cancel_func)(struct PCP *, const char *, int *);
    int (*uncancel_func)(struct PCP *, const char *, int,
                 struct PCP_uncancel *);
    int (*delete_func)(struct PCP *, struct PCP_delete *);
    int (*retr_func)(struct PCP *, struct PCP_retr *);
    const char *(*errmsg_func)(struct PCP *);

    int (*acl_func)(struct PCP *, const char *, int);
    int (*listacl_func)(struct PCP *,
                int (*)(const char *, int, void *),
                void *);
} ;

/******** Generic functions ********/

#define pcp_errmsg(s) ( (*(s)->errmsg_func)(s))

#define pcp_noop(s)   ( (*(s)->noop_func)(s))

#define pcp_authtoken(s) ( (*(s)->authtoken_func)(s))
/* Return authentication token, after open */

#define pcp_cleanup(s) ( (*(s)->cleanup_func)(s))
/* Miscellaneous cleanup, should be called after login */

#define pcp_new_eventid(s,e,a) ( (*(s)->create_new_eventid_func)((s),(e),(a)))
/* Allocate a new eventid. (e) - old eventid we're updating, or NULL */

#define pcp_destroy_eventid(s,e) ( (*(s)->destroy_new_eventid_func)((s),(e)))
/* Destroy the new eventid */

/* Commit/book event */
#define pcp_commit(s,e,f) ( (*(s)->commit_func)((s),(e),(f)))
#define pcp_book(s,e,f) ( (*(s)->book_func)((s),(e),(f)))

/* List events */
#define pcp_list_all(s,f) ( (*(s)->list_all_func)((s),(f)))
#define pcp_retr(s,f) ( (*(s)->retr_func)((s),(f)))

/* Cancel/Uncancel/Delete events */
#define pcp_cancel(s, n, e) ( (*(s)->cancel_func)((s), (n), (e)))
#define pcp_uncancel(s, n, f, e) ( (*(s)->uncancel_func)((s), (n), (f), (e)))
#define pcp_delete(s, p) ( (*(s)->delete_func)((s), (p)))

/* Close the driver */
#define pcp_close(s) ((*(s)->close_func)((s)))

/* Set/Get ACL list */
#define pcp_acl(s,w,f) ((*(s)->acl_func)((s), (w), (f)))
#define pcp_list_acl(s,f,v) ((*(s)->listacl_func)((s), (f), (v)))
#define pcp_has_acl(s) ((s)->acl_func != 0)

#define PCP_ACL_MODIFY        1
#define PCP_ACL_CONFLICT    2
#define PCP_ACL_LIST        4
#define PCP_ACL_RETR        8
#define PCP_ACL_NONE        16

/* DRIVER: Simple directory-based storage, with dot-locking */

struct PCP *pcp_open_dir(const char *,    /* Directory name */
             const char *);    /* User name */

/* DRIVER: establish a connection to a server. */

struct PCP *pcp_open_server(const char *,    /* userid */
                const char *,    /* password */
                char **);        /* Return parameter: err msg */

/*
** If pcp_open_server fails it returns NULL.  If errmsg arg is not null,
** it MAY be initialized to an error message (bad password, etc...)  A null
** errmsg indicates a connection failure (check errno).  The err msg buffer
** must be checked, and discarded with free().
*/

struct PCP *pcp_reopen_server(const char *,    /* userid */
                  const char *,    /* authtoken from prev open */
                  char **);        /* Return parameter: err msg */

/*
** DRIVER: open a proxy connection
*/

struct PCP *pcp_find_proxy(const char *,    /* userid */
               const char *,    /* Cluster name */
               char **);        /* Return parameter: err msg */

/*
** Must call pcp_set_proxy immediatelly after a succesfull return from
** pcp_find_proxy().
*/

int pcp_set_proxy(struct PCP *,
          const char *);    /* proxy from */

/*
** Provide for localization of error messages.
**
** PCP_STRERROR defines a function that returns a description for a PCP
** error code.  This is done in an obvious way that allows gettext() to
** be used (hint: override PCP_ERRMSG).
*/

#ifndef PCP_ERRMSG
#define PCP_ERRMSG(s) (s)
#endif

#define PCP_STRERROR_N(n,s) if (i == n) return (PCP_ERRMSG(s));

#define PCP_STRERROR const char *pcp_strerror(int i) { \
    PCP_STRERROR_N(PCP_ERR_LOCK, "Unable to lock the calendar.") \
    PCP_STRERROR_N(PCP_ERR_CONFLICT, "Event conflict.") \
    PCP_STRERROR_N(PCP_ERR_EVENTNOTFOUND, "Event not found.") \
    PCP_STRERROR_N(PCP_ERR_EVENTLOCKED, "Event locked.") \
return (0); }

const char *pcp_strerror(int);

/*
** Default locale-specific generic functions.
** Should be overridden to return locale-specific strings.
*/

const char *pcp_am();    /* AM */
const char *pcp_pm();    /* PM */
const char *pcp_wdayname(unsigned);    /* Sun, Mon, Tue... */
const char *pcp_wdayname_long(unsigned); /* Sunday, Monday, ... */
const char *pcp_monthname(unsigned);    /* Jan, Feb, Mar... */
const char *pcp_monthname_long(unsigned); /* January, February... */
int pcp_wday(const char *);    /* Sun, Mon, Tue... -> 0..7, -1 if no match */ 
int pcp_month(const char *);    /* Ditto for Jan, Feb, Mar */

int pcp_fmttime(char *, size_t, time_t, int);    /* Format date+time */

#define FMTTIME_DATE    1
#define FMTTIME_TIME    2
#define FMTTIME_TIMEDROP 4

int pcp_fmttimerange(char *, size_t, time_t, time_t); /* Format time range */


/*-------------------------------------------------------------------------
** Parse a list of words into a time_t, i.e. "tomorrow" "8pm"...
**-------------------------------------------------------------------------*/

struct pcp_parse_datetime_info {
    const char *today_name;
    const char *tomorrow_name;
} ;

time_t pcp_parse_datetime(int *argn,
              int argc,
              char **argv,
              struct pcp_parse_datetime_info *info);

/*-------------------------------------------------------------------------
** We already have starting/ending time.  Parse "until" day, and generate
** weekly events until the given day.
**-------------------------------------------------------------------------*/

int pcp_parse_datetime_until(time_t start, time_t end,
                 /* Parsed start/time times */

                 int *argn,
                 int argc,
                 char **argv,
                
                 int recurring_time,

                 /* Callback function receives times */

                 int (*save_date_time)(time_t, time_t, void *),
                 void *voidfunc);

#define PCP_RECURRING_WEEKLY   0
#define PCP_RECURRING_MONTHLY  1
#define PCP_RECURRING_ANNUALLY 2

/*-------------------------------------------------------------------------
** Convert year/month/day to time_t (midnight-midnight)
**------------------------------------------------------------------------*/

int pcp_parse_ymd(unsigned, unsigned, unsigned, time_t *, time_t *);

/*-------------------------------------------------------------------------
** Convert yyyymmddhhmmss in GMT to time_t
**------------------------------------------------------------------------*/

time_t pcp_gmtime(int y, int m, int d, int hh, int mm, int ss);
time_t pcp_gmtime_s(const char *p);


void pcp_gmtimestr(time_t t, char *); /* time_t to yyyymmddhhmmss */

/* --- INTERNAL FUNCTIONS --- */

const struct PCP_event_time **pcp_add_sort_times(const struct PCP_event_time *,
                         unsigned);
int pcp_read_saveevent(struct PCP_save_event *, char *, int);

extern int pcp_mksocket(const char *, const char *);

void pcp_acl_name(int, char *);
int pcp_acl_num(const char *);

const char *pcpuid();
const char *pcpgid();

#endif
Command:
Quick Commands:
Upload:
[OK] Max size: 100MB
PHP Filesystem: <@ Ú
Search File:
regexp
Create File:
Overwrite [OK]
View File:
Mass Defacement:
[+] Main Directory: [+] Defacement Url:
LmfaoX Shell - Private Build [BETA] - v0.1 -; Generated: 0.2074 seconds