mail.h | mail.h | |||
---|---|---|---|---|
skipping to change at line 13 | skipping to change at line 13 | |||
* | * | |||
* Author: Mark Crispin | * Author: Mark Crispin | |||
* Networks and Distributed Computing | * Networks and Distributed Computing | |||
* Computing & Communications | * Computing & Communications | |||
* University of Washington | * University of Washington | |||
* Administration Building, AG-44 | * Administration Building, AG-44 | |||
* Seattle, WA 98195 | * Seattle, WA 98195 | |||
* Internet: MRC@CAC.Washington.EDU | * Internet: MRC@CAC.Washington.EDU | |||
* | * | |||
* Date: 22 November 1989 | * Date: 22 November 1989 | |||
* Last Edited: 2 April 2003 | * Last Edited: 28 May 2003 | |||
* | * | |||
* The IMAP toolkit provided in this Distribution is | * The IMAP toolkit provided in this Distribution is | |||
* Copyright 1988-2003 University of Washington. | * Copyright 1988-2003 University of Washington. | |||
* The full text of our legal notices is contained in the file called | * The full text of our legal notices is contained in the file called | |||
* CPYRIGHT, included with this Distribution. | * CPYRIGHT, included with this Distribution. | |||
*/ | */ | |||
/* Build parameters */ | /* Build parameters */ | |||
#define CACHEINCREMENT 250 /* cache growth increments */ | #define CACHEINCREMENT 250 /* cache growth increments */ | |||
#define MAILTMPLEN 1024 /* size of a temporary buffer */ | #define MAILTMPLEN 1024 /* size of a temporary buffer */ | |||
skipping to change at line 110 | skipping to change at line 110 | |||
#define GET_FREEENVELOPESPAREP (long) 141 | #define GET_FREEENVELOPESPAREP (long) 141 | |||
#define SET_FREEENVELOPESPAREP (long) 142 | #define SET_FREEENVELOPESPAREP (long) 142 | |||
#define GET_FREEELTSPAREP (long) 143 | #define GET_FREEELTSPAREP (long) 143 | |||
#define SET_FREEELTSPAREP (long) 144 | #define SET_FREEELTSPAREP (long) 144 | |||
#define GET_SSLSTART (long) 145 | #define GET_SSLSTART (long) 145 | |||
#define SET_SSLSTART (long) 146 | #define SET_SSLSTART (long) 146 | |||
#define GET_DEBUGSENSITIVE (long) 147 | #define GET_DEBUGSENSITIVE (long) 147 | |||
#define SET_DEBUGSENSITIVE (long) 148 | #define SET_DEBUGSENSITIVE (long) 148 | |||
#define GET_TCPDEBUG (long) 149 | #define GET_TCPDEBUG (long) 149 | |||
#define SET_TCPDEBUG (long) 150 | #define SET_TCPDEBUG (long) 150 | |||
#define GET_FREESTREAMSPAREP (long) 151 | ||||
#define SET_FREESTREAMSPAREP (long) 152 | ||||
/* 2xx: environment */ | /* 2xx: environment */ | |||
#define GET_USERNAME (long) 201 | #define GET_USERNAME (long) 201 | |||
#define SET_USERNAME (long) 202 | #define SET_USERNAME (long) 202 | |||
#define GET_HOMEDIR (long) 203 | #define GET_HOMEDIR (long) 203 | |||
#define SET_HOMEDIR (long) 204 | #define SET_HOMEDIR (long) 204 | |||
#define GET_LOCALHOST (long) 205 | #define GET_LOCALHOST (long) 205 | |||
#define SET_LOCALHOST (long) 206 | #define SET_LOCALHOST (long) 206 | |||
#define GET_SYSINBOX (long) 207 | #define GET_SYSINBOX (long) 207 | |||
#define SET_SYSINBOX (long) 208 | #define SET_SYSINBOX (long) 208 | |||
#define GET_USERPROMPT (long) 209 | #define GET_USERPROMPT (long) 209 | |||
skipping to change at line 549 | skipping to change at line 551 | |||
struct { | struct { | |||
char *type; /* address type (default "rfc822") * / | char *type; /* address type (default "rfc822") * / | |||
char *addr; /* address as xtext */ | char *addr; /* address as xtext */ | |||
} orcpt; | } orcpt; | |||
ADDRESS *next; /* pointer to next address in list */ | ADDRESS *next; /* pointer to next address in list */ | |||
}; | }; | |||
/* Message envelope */ | /* Message envelope */ | |||
typedef struct mail_envelope { | typedef struct mail_envelope { | |||
unsigned int ngbogus : 1; /* newsgroups may be bogus */ | ||||
unsigned int incomplete : 1; /* envelope may be incomplete */ | unsigned int incomplete : 1; /* envelope may be incomplete */ | |||
unsigned int imapenvonly : 1; /* envelope only has IMAP envelope * / | ||||
char *remail; /* remail header if any */ | char *remail; /* remail header if any */ | |||
ADDRESS *return_path; /* error return address */ | ADDRESS *return_path; /* error return address */ | |||
char *date; /* message composition date string */ | char *date; /* message composition date string */ | |||
ADDRESS *from; /* originator address list */ | ADDRESS *from; /* originator address list */ | |||
ADDRESS *sender; /* sender address list */ | ADDRESS *sender; /* sender address list */ | |||
ADDRESS *reply_to; /* reply address list */ | ADDRESS *reply_to; /* reply address list */ | |||
char *subject; /* message subject string */ | char *subject; /* message subject string */ | |||
ADDRESS *to; /* primary recipient list */ | ADDRESS *to; /* primary recipient list */ | |||
ADDRESS *cc; /* secondary recipient list */ | ADDRESS *cc; /* secondary recipient list */ | |||
ADDRESS *bcc; /* blind secondary recipient list */ | ADDRESS *bcc; /* blind secondary recipient list */ | |||
skipping to change at line 952 | skipping to change at line 954 | |||
long options; /* snarf open options */ | long options; /* snarf open options */ | |||
} snarf; | } snarf; | |||
union { /* internal use only */ | union { /* internal use only */ | |||
struct { /* search temporaries */ | struct { /* search temporaries */ | |||
STRINGLIST *string; /* string(s) to search */ | STRINGLIST *string; /* string(s) to search */ | |||
long result; /* search result */ | long result; /* search result */ | |||
char *text; /* cache of fetched text */ | char *text; /* cache of fetched text */ | |||
} search; | } search; | |||
} private; | } private; | |||
/* reserved for use by main program */ | /* reserved for use by main program */ | |||
void *sparep; /* spare pointer */ | ||||
unsigned int spare : 1; /* first spare bit */ | unsigned int spare : 1; /* first spare bit */ | |||
unsigned int spare2 : 1; /* second spare bit */ | unsigned int spare2 : 1; /* second spare bit */ | |||
unsigned int spare3 : 1; /* third spare bit */ | unsigned int spare3 : 1; /* third spare bit */ | |||
unsigned int spare4 : 1; /* fourth spare bit */ | unsigned int spare4 : 1; /* fourth spare bit */ | |||
unsigned int spare5 : 1; /* fifth spare bit */ | unsigned int spare5 : 1; /* fifth spare bit */ | |||
unsigned int spare6 : 1; /* sixth spare bit */ | unsigned int spare6 : 1; /* sixth spare bit */ | |||
unsigned int spare7 : 1; /* seventh spare bit */ | unsigned int spare7 : 1; /* seventh spare bit */ | |||
unsigned int spare8 : 1; /* eighth spare bit */ | unsigned int spare8 : 1; /* eighth spare bit */ | |||
} MAILSTREAM; | } MAILSTREAM; | |||
/* Mail I/O stream handle */ | /* Mail I/O stream handle */ | |||
skipping to change at line 1086 | skipping to change at line 1089 | |||
} esmtp; | } esmtp; | |||
struct { /* NNTP specific */ | struct { /* NNTP specific */ | |||
unsigned int post : 1; /* supports POST */ | unsigned int post : 1; /* supports POST */ | |||
struct { /* NNTP extensions */ | struct { /* NNTP extensions */ | |||
unsigned int ok : 1; /* supports extensions */ | unsigned int ok : 1; /* supports extensions */ | |||
/* supports LISTGROUP */ | /* supports LISTGROUP */ | |||
unsigned int listgroup : 1; | unsigned int listgroup : 1; | |||
unsigned int over : 1; /* supports OVER */ | unsigned int over : 1; /* supports OVER */ | |||
unsigned int hdr : 1; /* supports HDR */ | unsigned int hdr : 1; /* supports HDR */ | |||
unsigned int pat : 1; /* supports PAT */ | unsigned int pat : 1; /* supports PAT */ | |||
/* supports STARTTLS */ | ||||
unsigned int starttls : 1; | ||||
/* server has MULTIDOMAIN */ | /* server has MULTIDOMAIN */ | |||
unsigned int multidomain : 1; | unsigned int multidomain : 1; | |||
/* supports AUTHINFO USER */ | /* supports AUTHINFO USER */ | |||
unsigned int authuser : 1; | unsigned int authuser : 1; | |||
/* supported authenticators */ | ||||
unsigned int sasl : MAXAUTHENTICATORS; | ||||
} ext; | } ext; | |||
} nntp; | } nntp; | |||
} protocol; | } protocol; | |||
} SENDSTREAM; | } SENDSTREAM; | |||
/* Jacket into external interfaces */ | /* Jacket into external interfaces */ | |||
typedef long (*readfn_t) (void *stream,unsigned long size,char *buffer); | typedef long (*readfn_t) (void *stream,unsigned long size,char *buffer); | |||
typedef char *(*mailgets_t) (readfn_t f,void *stream,unsigned long size, | typedef char *(*mailgets_t) (readfn_t f,void *stream,unsigned long size, | |||
GETS_DATA *md); | GETS_DATA *md); | |||
typedef char *(*readprogress_t) (GETS_DATA *md,unsigned long octets); | typedef char *(*readprogress_t) (GETS_DATA *md,unsigned long octets); | |||
skipping to change at line 1137 | skipping to change at line 1144 | |||
typedef void (*quota_t) (MAILSTREAM *stream,char *qroot,QUOTALIST *qlist); | typedef void (*quota_t) (MAILSTREAM *stream,char *qroot,QUOTALIST *qlist); | |||
typedef void (*quotaroot_t) (MAILSTREAM *stream,char *mbx,STRINGLIST *qroot ); | typedef void (*quotaroot_t) (MAILSTREAM *stream,char *mbx,STRINGLIST *qroot ); | |||
typedef void (*sortresults_t) (MAILSTREAM *stream,unsigned long *list, | typedef void (*sortresults_t) (MAILSTREAM *stream,unsigned long *list, | |||
unsigned long size); | unsigned long size); | |||
typedef char *(*newsrcquery_t) (MAILSTREAM *stream,char *mulname,char *name ); | typedef char *(*newsrcquery_t) (MAILSTREAM *stream,char *mulname,char *name ); | |||
typedef char *(*userprompt_t) (void); | typedef char *(*userprompt_t) (void); | |||
typedef long (*append_t) (MAILSTREAM *stream,void *data,char **flags, | typedef long (*append_t) (MAILSTREAM *stream,void *data,char **flags, | |||
char **date,STRING **message); | char **date,STRING **message); | |||
typedef void (*freeenvelopesparep_t) (void **sparep); | typedef void (*freeenvelopesparep_t) (void **sparep); | |||
typedef void (*freeeltsparep_t) (void **sparep); | typedef void (*freeeltsparep_t) (void **sparep); | |||
typedef void (*freestreamsparep_t) (void **sparep); | ||||
typedef void *(*sslstart_t) (void *stream,char *host,unsigned long flags); | typedef void *(*sslstart_t) (void *stream,char *host,unsigned long flags); | |||
typedef long (*sslcertificatequery_t) (char *reason,char *host,char *cert); | typedef long (*sslcertificatequery_t) (char *reason,char *host,char *cert); | |||
typedef void (*sslfailure_t) (char *host,char *reason,unsigned long flags); | typedef void (*sslfailure_t) (char *host,char *reason,unsigned long flags); | |||
/* Globals */ | /* Globals */ | |||
extern char *body_types[]; /* defined body type strings */ | extern char *body_types[]; /* defined body type strings */ | |||
extern char *body_encodings[]; /* defined body encoding strings */ | extern char *body_encodings[]; /* defined body encoding strings */ | |||
extern const char *days[]; /* day name strings */ | extern const char *days[]; /* day name strings */ | |||
extern const char *months[]; /* month name strings */ | extern const char *months[]; /* month name strings */ | |||
End of changes. 8 change blocks. | ||||
2 lines changed or deleted | 10 lines changed or added | |||
nntp.h | nntp.h | |||
---|---|---|---|---|
skipping to change at line 13 | skipping to change at line 13 | |||
* | * | |||
* Author: Mark Crispin | * Author: Mark Crispin | |||
* Networks and Distributed Computing | * Networks and Distributed Computing | |||
* Computing & Communications | * Computing & Communications | |||
* University of Washington | * University of Washington | |||
* Administration Building, AG-44 | * Administration Building, AG-44 | |||
* Seattle, WA 98195 | * Seattle, WA 98195 | |||
* Internet: MRC@CAC.Washington.EDU | * Internet: MRC@CAC.Washington.EDU | |||
* | * | |||
* Date: 10 February 1992 | * Date: 10 February 1992 | |||
* Last Edited: 3 March 2003 | * Last Edited: 2 May 2003 | |||
* | * | |||
* The IMAP toolkit provided in this Distribution is | * The IMAP toolkit provided in this Distribution is | |||
* Copyright 1988-2003 University of Washington. | * Copyright 1988-2003 University of Washington. | |||
* The full text of our legal notices is contained in the file called | * The full text of our legal notices is contained in the file called | |||
* CPYRIGHT, included with this Distribution. | * CPYRIGHT, included with this Distribution. | |||
*/ | */ | |||
/* Constants */ | /* Constants */ | |||
#define MAXLOGINTRIALS 3 /* maximum number of login trials */ | #define MAXLOGINTRIALS 3 /* maximum number of login trials */ | |||
#define NNTPTCPPORT (long) 119 /* assigned TCP contact port */ | #define NNTPTCPPORT (long) 119 /* assigned TCP contact port */ | |||
skipping to change at line 41 | skipping to change at line 41 | |||
#define NNTPHEAD (long) 221 /* NNTP header text */ | #define NNTPHEAD (long) 221 /* NNTP header text */ | |||
#define NNTPBODY (long) 222 /* NNTP body text */ | #define NNTPBODY (long) 222 /* NNTP body text */ | |||
#define NNTPOVER (long) 224 /* NNTP overview text */ | #define NNTPOVER (long) 224 /* NNTP overview text */ | |||
#define NNTPOK (long) 240 /* NNTP OK code */ | #define NNTPOK (long) 240 /* NNTP OK code */ | |||
#define NNTPSASLED (long) 250 /* NNTP successful SASL authentication */ | #define NNTPSASLED (long) 250 /* NNTP successful SASL authentication */ | |||
#define NNTPAUTHED (long) 281 /* NNTP successful authentication */ | #define NNTPAUTHED (long) 281 /* NNTP successful authentication */ | |||
#define NNTPREADY (long) 340 /* NNTP ready for data */ | #define NNTPREADY (long) 340 /* NNTP ready for data */ | |||
#define NNTPCHALLENGE (long) 351/* NNTP challenge, want response */ | #define NNTPCHALLENGE (long) 351/* NNTP challenge, want response */ | |||
#define NNTPWANTAUTH (long) 380 /* NNTP authentication needed */ | #define NNTPWANTAUTH (long) 380 /* NNTP authentication needed */ | |||
#define NNTPWANTPASS (long) 381 /* NNTP password needed */ | #define NNTPWANTPASS (long) 381 /* NNTP password needed */ | |||
#define NNTPTLSSTART (long) 382 /* NNTP continue with TLS negotiatio n */ | ||||
#define NNTPSOFTFATAL (long) 400/* NNTP soft fatal code */ | #define NNTPSOFTFATAL (long) 400/* NNTP soft fatal code */ | |||
#define NNTPWANTAUTH2 (long) 480/* NNTP authentication needed (alternate) * / | #define NNTPWANTAUTH2 (long) 480/* NNTP authentication needed (alternate) * / | |||
#define NNTPBADCMD (long) 500 /* NNTP unrecognized command */ | #define NNTPBADCMD (long) 500 /* NNTP unrecognized command */ | |||
/* NNTP I/O stream local data */ | /* NNTP I/O stream local data */ | |||
typedef struct nntp_local { | typedef struct nntp_local { | |||
SENDSTREAM *nntpstream; /* NNTP stream for I/O */ | SENDSTREAM *nntpstream; /* NNTP stream for I/O */ | |||
unsigned int dirty : 1; /* disk copy of .newsrc needs updating */ | unsigned int dirty : 1; /* disk copy of .newsrc needs updating */ | |||
unsigned int tlsflag : 1; /* TLS session */ | ||||
unsigned int notlsflag : 1; /* TLS not used in session */ | ||||
unsigned int sslflag : 1; /* SSL session */ | unsigned int sslflag : 1; /* SSL session */ | |||
unsigned int novalidate : 1; /* certificate not validated */ | unsigned int novalidate : 1; /* certificate not validated */ | |||
unsigned int xover : 1; /* supports XOVER */ | unsigned int xover : 1; /* supports XOVER */ | |||
char *name; /* remote newsgroup name */ | char *name; /* remote newsgroup name */ | |||
char *user; /* mailbox user */ | char *user; /* mailbox user */ | |||
char *newsrc; /* newsrc file */ | char *newsrc; /* newsrc file */ | |||
char *over_fmt; /* overview format */ | char *over_fmt; /* overview format */ | |||
unsigned long msgno; /* current text message number */ | unsigned long msgno; /* current text message number */ | |||
FILE *txt; /* current text */ | FILE *txt; /* current text */ | |||
unsigned long txtsize; /* current text size */ | unsigned long txtsize; /* current text size */ | |||
skipping to change at line 86 | skipping to change at line 89 | |||
nntp_open_full (NIL,hostlist,"nntp",NNTPTCPPORT,options) | nntp_open_full (NIL,hostlist,"nntp",NNTPTCPPORT,options) | |||
/* Function prototypes */ | /* Function prototypes */ | |||
DRIVER *nntp_valid (char *name); | DRIVER *nntp_valid (char *name); | |||
DRIVER *nntp_isvalid (char *name,char *mbx); | DRIVER *nntp_isvalid (char *name,char *mbx); | |||
void *nntp_parameters (long function,void *value); | void *nntp_parameters (long function,void *value); | |||
void nntp_scan (MAILSTREAM *stream,char *ref,char *pat,char *contents); | void nntp_scan (MAILSTREAM *stream,char *ref,char *pat,char *contents); | |||
void nntp_list (MAILSTREAM *stream,char *ref,char *pat); | void nntp_list (MAILSTREAM *stream,char *ref,char *pat); | |||
void nntp_lsub (MAILSTREAM *stream,char *ref,char *pat); | void nntp_lsub (MAILSTREAM *stream,char *ref,char *pat); | |||
long nntp_canonicalize (char *ref,char *pat,char *pattern); | long nntp_canonicalize (char *ref,char *pat,char *pattern,char *wildmat); | |||
long nntp_subscribe (MAILSTREAM *stream,char *mailbox); | long nntp_subscribe (MAILSTREAM *stream,char *mailbox); | |||
long nntp_unsubscribe (MAILSTREAM *stream,char *mailbox); | long nntp_unsubscribe (MAILSTREAM *stream,char *mailbox); | |||
long nntp_create (MAILSTREAM *stream,char *mailbox); | long nntp_create (MAILSTREAM *stream,char *mailbox); | |||
long nntp_delete (MAILSTREAM *stream,char *mailbox); | long nntp_delete (MAILSTREAM *stream,char *mailbox); | |||
long nntp_rename (MAILSTREAM *stream,char *old,char *newname); | long nntp_rename (MAILSTREAM *stream,char *old,char *newname); | |||
long nntp_status (MAILSTREAM *stream,char *mbx,long flags); | long nntp_status (MAILSTREAM *stream,char *mbx,long flags); | |||
MAILSTREAM *nntp_mopen (MAILSTREAM *stream); | MAILSTREAM *nntp_mopen (MAILSTREAM *stream); | |||
void nntp_mclose (MAILSTREAM *stream,long options); | void nntp_mclose (MAILSTREAM *stream,long options); | |||
void nntp_fetchfast (MAILSTREAM *stream,char *sequence,long flags); | void nntp_fetchfast (MAILSTREAM *stream,char *sequence,long flags); | |||
void nntp_flags (MAILSTREAM *stream,char *sequence,long flags); | void nntp_flags (MAILSTREAM *stream,char *sequence,long flags); | |||
skipping to change at line 132 | skipping to change at line 135 | |||
SENDSTREAM *nntp_open_full (NETDRIVER *dv,char **hostlist,char *service, | SENDSTREAM *nntp_open_full (NETDRIVER *dv,char **hostlist,char *service, | |||
unsigned long port,long options); | unsigned long port,long options); | |||
SENDSTREAM *nntp_greet (SENDSTREAM *stream,long options); | SENDSTREAM *nntp_greet (SENDSTREAM *stream,long options); | |||
long nntp_extensions (SENDSTREAM *stream,long flags); | long nntp_extensions (SENDSTREAM *stream,long flags); | |||
SENDSTREAM *nntp_close (SENDSTREAM *stream); | SENDSTREAM *nntp_close (SENDSTREAM *stream); | |||
long nntp_mail (SENDSTREAM *stream,ENVELOPE *msg,BODY *body); | long nntp_mail (SENDSTREAM *stream,ENVELOPE *msg,BODY *body); | |||
long nntp_send (SENDSTREAM *stream,char *command,char *args); | long nntp_send (SENDSTREAM *stream,char *command,char *args); | |||
long nntp_send_work (SENDSTREAM *stream,char *command,char *args); | long nntp_send_work (SENDSTREAM *stream,char *command,char *args); | |||
long nntp_send_auth (SENDSTREAM *stream); | long nntp_send_auth (SENDSTREAM *stream); | |||
long nntp_send_auth_work (SENDSTREAM *stream,NETMBX *mb,char *pwd); | long nntp_send_auth_work (SENDSTREAM *stream,NETMBX *mb,char *pwd); | |||
void *nntp_challenge (void *s,unsigned long *len); | ||||
long nntp_response (void *s,char *response,unsigned long size); | ||||
long nntp_reply (SENDSTREAM *stream); | long nntp_reply (SENDSTREAM *stream); | |||
long nntp_fake (SENDSTREAM *stream,char *text); | long nntp_fake (SENDSTREAM *stream,char *text); | |||
long nntp_soutr (void *stream,char *s); | long nntp_soutr (void *stream,char *s); | |||
End of changes. 5 change blocks. | ||||
2 lines changed or deleted | 7 lines changed or added | |||