view src/protocol.h @ 255:52f467c7213b noffle

[svn] * docs/noffle.1,src/Makefile.am,src/Makefile.in,src/content.c, src/content.h,src/database.c,src/database.h,src/expire.c, src/expire.h,src/noffle.c: Split out expire code from database.c, change to remove articles in place (rather than rebuild article database) and add separate command to rebuild article database from articles listed in overviews. This may help if the article database gets corrupted.
author bears
date Wed, 26 Jun 2002 14:15:44 +0100
parents 24d4cd032da5
children 5eece4dfd945
line wrap: on
line source

/*
  protocol.h

  Functions related with the NNTP protocol which are useful for both
  the server and the client.

  $Id: protocol.h 316 2001-10-31 11:44:53Z bears $
*/

#ifndef PRT_H
#define PRT_H

#if HAVE_CONFIG_H
#include <config.h>
#endif

#include "dynamicstring.h"
#include "over.h"

#define STAT_HELP_FOLLOWS        100
#define STAT_DEBUG_FOLLOWS       199

#define STAT_READY_POST_ALLOW    200
#define STAT_READY_NO_POST_ALLOW 201
#define STAT_CMD_OK              202
#define STAT_GOODBYE             205
#define STAT_GRP_SELECTED        211
#define STAT_GRPS_FOLLOW         215
#define STAT_ART_FOLLOWS         220
#define STAT_HEAD_FOLLOWS        221
#define STAT_BODY_FOLLOWS        222
#define STAT_ART_RETRIEVED       223
#define STAT_OVERS_FOLLOW        224
#define STAT_NEW_GRP_FOLLOW      231
#define STAT_POST_OK             240
#define STAT_AUTH_ACCEPTED       250
#define STAT_AUTH_ACCEPTED_DEPREC 281

#define STAT_SEND_ART            340
#define STAT_MORE_AUTH_REQUIRED_DEPREC 381

#define STAT_NO_SUCH_GRP         411
#define STAT_NO_GRP_SELECTED     412
#define STAT_NO_ART_SELECTED     420
#define STAT_NO_NEXT_ART         421
#define STAT_NO_PREV_ART         422
#define STAT_NO_SUCH_NUMB        423
#define STAT_NO_SUCH_ID          430
#define STAT_ART_REJECTED        437
#define STAT_POST_FAILED         441
#define STAT_AUTH_REQUIRED       450
#define STAT_AUTH_REJECTED       452
#define STAT_AUTH_REQUIRED_DEPREC 480
#define STAT_AUTH_REJECTED_DEPREC 482

#define STAT_NO_SUCH_CMD         500
#define STAT_SYNTAX_ERR          501
#define STAT_NO_PERMISSION       502
#define STAT_PROGRAM_FAULT       503

/* 
   Read next line from f into Str, up to "\n" or "\r\n". Don't save "\n"
   or "\r\n" in line. Terminate with '\0'. 
   If timeoutSeconds < 0, no timeout alarm is used.
*/
Bool
Prt_getLn( Str line, FILE *f, int timeoutSeconds );

/*
  Read a text line from server. Returns TRUE if line != ".", removes
  leading '.' otherwise.
  If timeoutSeconds < 0, no timeout alarm is used.
*/
Bool
Prt_getTxtLn( Str line, Bool *err, FILE *f, int timeoutSeconds );

/*
  Write text line to f. Escape "." at the beginning with another ".".
  Terminate with "\r\n".
*/
Bool
Prt_putTxtLn( const char* line, FILE *f );

/*
  Write text buffer of lines each ending with '\n'.
  Replace '\n' by "\r\n".
*/
Bool
Prt_putTxtBuf( const char *buf, FILE *f );

/* 
   Write text-ending "."-line to f
*/
Bool
Prt_putEndOfTxt( FILE *f );

/*
  Splits line in field and value. Field is converted to lower-case. 
*/
Bool
Prt_getField( Str resultField, Str resultValue, const char* line );

/* Search header. Works only with single line headers (ignores continuation
   lines */
Bool
Prt_searchHeader( const char *artTxt, const char* which, Str result );

Bool
Prt_isValidMsgId( const char *msgId );

void
Prt_genMsgId( Str msgId, const char *from, const char *suffix );

void
Prt_genPathHdr( Str pathHdr, const char *from );

Bool
Prt_genFromHdr( Str fromHdr );

#endif