This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
deb-mbse/lib/mbsedb.h
Andrew Leary 0aa9600d73 v1.0.7.4
2018-09-07 05:11:26 -04:00

168 lines
6.1 KiB
C

/*****************************************************************************
*
& $Id: mbsedb.h,v 1.10 2005/10/11 20:49:42 mbse Exp $
* Purpose ...............: MBSE BBS database library header
*
*****************************************************************************
* Copyright (C) 1997-2005
*
* Michiel Broek FIDO: 2:280/2802
* Beekmansbos 10
* 1971 BV IJmuiden
* the Netherlands
*
* This file is part of MBSE BBS.
*
* This BBS is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2, or (at your option) any
* later version.
*
* MBSE BBS is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MBSE BBS; see the file COPYING. If not, write to the Free
* Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*****************************************************************************/
#ifndef _MBSEDB_H
#define _MBSEDB_H
void InitConfig(void); /* Initialize and load config */
void LoadConfig(void); /* Only load config file */
int IsOurAka(fidoaddr); /* Check if our aka */
/*
* Dupes database type
*/
typedef enum {D_ECHOMAIL, D_FILEECHO, D_NEWS} DUPETYPE;
void InitDupes(void);
int CheckDupe(unsigned int, int, int);
void CloseDupes(void);
/*
* Fidonet database
*/
struct _fidonethdr fidonethdr; /* Header record */
struct _fidonet fidonet; /* Fidonet datarecord */
int fidonet_cnt; /* Fidonet records in database */
char fidonet_fil[PATH_MAX]; /* Fidonet database filename */
int InitFidonet(void); /* Initialize fidonet database */
int TestFidonet(unsigned short); /* Test if zone is in memory */
int SearchFidonet(unsigned short); /* Search specified zone and load */
char *GetFidoDomain(unsigned short); /* Search Fidonet domain name */
/*
* Domain alias database
*/
struct _domaliashdr domaliashdr; /* Header record */
struct _domalias domalias; /* Domain alias datarecord */
int domalias_cnt; /* Domain alias records in db */
char domalias_fil[PATH_MAX]; /* Domain alias db filename */
void InitDomAlias(void); /* Initialize domain alias db */
char *SearchDomAlias(char *alias); /* Search alias db - returns string */
/* of domain or NUL if not found */
/*
* Nodes database
*/
struct _nodeshdr nodeshdr; /* Header record */
struct _nodes nodes; /* Nodes datarecord */
int nodes_cnt; /* Node records in database */
int InitNode(void); /* Initialize nodes database */
int TestNode(fidoaddr); /* Check if noderecord is loaded */
int SearchNodeFaddr(faddr *); /* Search specified node and load */
int SearchNode(fidoaddr); /* Search specified node and load */
int UpdateNode(void); /* Update record if changed. */
char *GetNodeMailGrp(int); /* Get nodes mailgroup record */
char *GetNodeFileGrp(int); /* Get nodes filegroup record */
/*
* TIC area database
*/
struct _tichdr tichdr; /* Header record */
struct _tic tic; /* Tics datarecord */
struct _fgrouphdr fgrouphdr; /* Group header record */
struct _fgroup fgroup; /* Group record */
int tic_cnt; /* Tic records in database */
int InitTic(void); /* Initialize tic database */
int SearchTic(char *); /* Search specified msg are */
int TicSystemConnected(sysconnect); /* Is system connected */
int TicSystemConnect(sysconnect *, int); /* Connect/change/delete system*/
int GetTicSystem(sysconnect *, int);/* Get connected system */
void UpdateTic(void); /* Update current messages record */
/*
* User records
*/
struct userhdr usrhdr; /* Header record */
struct userrec usr; /* User datarecord */
int usr_cnt; /* User records in database */
char usr_fil[PATH_MAX]; /* User database filename */
int InitUser(void); /* Initialize user database */
int TestUser(char *); /* Test if user is in memory */
int SearchUser(char *); /* Search specified user and load */
/*
* Message areas database
*/
struct msgareashdr msgshdr; /* Header record */
struct msgareas msgs; /* Msgss datarecord */
struct _mgrouphdr mgrouphdr; /* Group header record */
struct _mgroup mgroup; /* Group record */
int msgs_cnt; /* Msgs records in database */
int InitMsgs(void); /* Initialize msgs database */
int SearchMsgs(char *); /* Search specified msg area */
int SearchMsgsNews(char *); /* Search specified msg area */
int SearchBadBoard(void); /* Search system badboard */
int MsgSystemConnected(sysconnect); /* Is system connected */
int MsgSystemConnect(sysconnect *, int); /* Connect/change/delete system*/
int GetMsgSystem(sysconnect *, int);/* Get connected system */
int SearchNetBoard(unsigned short, unsigned short); /* Search netmail */
void UpdateMsgs(void); /* Update current messages record */
/*
* Structure of current open file area
*/
struct _fdbarea {
int area; /* Area number */
int locked; /* Is area locked */
FILE *fp; /* File pointer */
};
struct _fdbarea *mbsedb_OpenFDB(int, int);
int mbsedb_CloseFDB(struct _fdbarea *);
int mbsedb_LockFDB(struct _fdbarea *, int);
int mbsedb_UnlockFDB(struct _fdbarea *);
int mbsedb_InsertFDB(struct _fdbarea *, struct FILE_record, int);
int mbsedb_PackFDB(struct _fdbarea *);
int mbsedb_SortFDB(struct _fdbarea *);
#endif