bezrkdos.h
上传用户:ycwykj01
上传日期:2007-01-04
资源大小:1819k
文件大小:4k
源码类别:

网络编程

开发平台:

Unix_Linux

  1. /*
  2.  * Program: Berkeley mail routines
  3.  *
  4.  * Author: Mark Crispin
  5.  * Networks and Distributed Computing
  6.  * Computing & Communications
  7.  * University of Washington
  8.  * Administration Building, AG-44
  9.  * Seattle, WA  98195
  10.  * Internet: MRC@CAC.Washington.EDU
  11.  *
  12.  * Date: 24 June 1992
  13.  * Last Edited: 15 April 1997
  14.  *
  15.  * Copyright 1997 by the University of Washington
  16.  *
  17.  *  Permission to use, copy, modify, and distribute this software and its
  18.  * documentation for any purpose and without fee is hereby granted, provided
  19.  * that the above copyright notice appears in all copies and that both the
  20.  * above copyright notice and this permission notice appear in supporting
  21.  * documentation, and that the name of the University of Washington not be
  22.  * used in advertising or publicity pertaining to distribution of the software
  23.  * without specific, written prior permission.  This software is made
  24.  * available "as is", and
  25.  * THE UNIVERSITY OF WASHINGTON DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
  26.  * WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT LIMITATION ALL IMPLIED
  27.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND IN
  28.  * NO EVENT SHALL THE UNIVERSITY OF WASHINGTON BE LIABLE FOR ANY SPECIAL,
  29.  * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  30.  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, TORT
  31.  * (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF OR IN CONNECTION
  32.  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  33.  *
  34.  */
  35. /* Dedication:
  36.  *  This file is dedicated with affection to those Merry Marvels of Musical
  37.  * Madness . . .
  38.  *  ->  The Incomparable Leland Stanford Junior University Marching Band  <-
  39.  * who entertain, awaken, and outrage Stanford fans in the fact of repeated
  40.  * losing seasons and shattered Rose Bowl dreams [Cardinal just don't have
  41.  * HUSKY FEVER!!!].
  42.  *
  43.  */
  44. /* Build parameters */
  45. #define CHUNK 4096
  46. /* Berkeley I/O stream local data */
  47. typedef struct bezerk_local {
  48.   int fd; /* file descriptor for I/O */
  49.   off_t filesize; /* file size parsed */
  50.   char *buf; /* temporary buffer */
  51. } BEZERKLOCAL;
  52. /* Convenient access to local data */
  53. #define LOCAL ((BEZERKLOCAL *) stream->local)
  54. /* Function prototypes */
  55. DRIVER *bezerk_valid (char *name);
  56. long bezerk_isvalid (char *name,char *tmp);
  57. int bezerk_valid_line (char *s,char **rx,int *rzn);
  58. void *bezerk_parameters (long function,void *value);
  59. void bezerk_scan (MAILSTREAM *stream,char *ref,char *pat,char *contents);
  60. void bezerk_list (MAILSTREAM *stream,char *ref,char *pat);
  61. void bezerk_lsub (MAILSTREAM *stream,char *ref,char *pat);
  62. long bezerk_create (MAILSTREAM *stream,char *mailbox);
  63. long bezerk_delete (MAILSTREAM *stream,char *mailbox);
  64. long bezerk_rename (MAILSTREAM *stream,char *old,char *newname);
  65. MAILSTREAM *bezerk_open (MAILSTREAM *stream);
  66. void bezerk_close (MAILSTREAM *stream,long options);
  67. char *bezerk_header (MAILSTREAM *stream,unsigned long msgno,
  68.      unsigned long *length,long flags);
  69. long bezerk_text (MAILSTREAM *stream,unsigned long msgno,STRING *bs,
  70.   long flags);
  71. long bezerk_ping (MAILSTREAM *stream);
  72. void bezerk_check (MAILSTREAM *stream);
  73. void bezerk_expunge (MAILSTREAM *stream);
  74. long bezerk_copy (MAILSTREAM *stream,char *sequence,char *mailbox,
  75.   long options);
  76. long bezerk_append (MAILSTREAM *stream,char *mailbox,char *flags,char *date,
  77.     STRING *message);
  78. long bezerk_append_putc (int fd,char *s,int *i,char c);
  79. void bezerk_gc (MAILSTREAM *stream,long gcflags);
  80. char *bezerk_file (char *dst,char *name);
  81. long bezerk_badname (char *tmp,char *s);
  82. long bezerk_parse (MAILSTREAM *stream);
  83. unsigned long bezerk_hdrpos (MAILSTREAM *stream,unsigned long msgno,
  84.      unsigned long *size);