view src/database.h @ 494:372f8b55506e noffle

[svn] Apply patch from Jan De Luyck. Add new option 'add-messageid-if-missing', which optionally postpones adding a message ID to the upstream server. If this is done, post-locally must be off. This is to deal with an upstream server troubling Jan. It usually (but not always) rejects posts with a Noffle message ID. I have changed Jan's original option of 'add-message-id-if-missing' for consistency with 'replace-messageid' and added the manual page entry. See SourceForge feature request 1513395.
author bears
date Wed, 12 Jul 2006 20:26:41 +0100
parents a04c52f87b6e
children
line wrap: on
line source

/*
  database.h

  Article database.

  $Id: database.h 629 2004-10-13 23:26:48Z bears $
*/

#ifndef DB_H
#define DB_H

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

#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 "common.h"
#include "dynamicstring.h"
#include "over.h"

/* Article status flags: */
#define DB_INTERESTING       0x01u  /* Was article ever tried to read? */
#define DB_NOT_DOWNLOADED    0x02u  /* Not fully downloaded */
#define DB_RETRIEVING_FAILED 0x04u  /* Retrieving of article failed */

/* Open database for r/w. Locking must be done by the caller! */
Bool
Db_open( void );

void
Db_close( void );

/*
  Creates an database entry for the article from the overview
  information. Xref is replaced by grp:numb.
*/
Bool
Db_prepareEntry( const Over *ov, const char *grp, int numb );

/* Store full article. Can only be used after Db_prepareEntry. */
Bool
Db_storeArt( const char *msgId, const char *artTxt );

void
Db_setStatus( const char *msgId, unsigned status );

void
Db_updateLastAccess( const char *msgId );

/* Xref header line without hostname */
void
Db_setXref( const char *msgId, const char *xref );

const char *
Db_header( const char *msgId );

const char *
Db_body( const char *msgId );

unsigned
Db_status( const char *msgId );

/* Get last modification time of entry. Returns -1, if msgId non-existing. */
time_t
Db_lastAccess( const char *msgId );

/* Value of the References header line */
const char *
Db_ref( const char *msgId );

/* Value of the From header line */
const char *
Db_from( const char *msgId );

/* Value of the Date header line */
const char *
Db_date( const char *msgId );

/* Xref header line without hostname */
const char *
Db_xref( const char *msgId );

/* Overview - need to del_Over result when finished with */
Over *
Db_over( const char *msgId );

Bool
Db_contains( const char *msgId );

/* Delete entry from database */
void
Db_delete( const char *msgId );

Bool
Db_first( const char** msgId );

Bool
Db_next( const char** msgId );

/* Compact database if appropriate - give deleted article space back to OS */
void
Db_compact( void );

/* Rebuild the article database. */
Bool
Db_rebuild( void );

/* Utility function - find the upstream server for a particular message */
Bool
Db_findServer( const char *msgId, Str server );

#endif