#ifndef _NODELIST_HPP_
#define _NODELIST_HPP_
#include <time.h>
#include "fidoaddr.h"
#define DefaultIndex "ftrack.ndl" // default index file
#define NdlSign 0xfeda3033U // Signature of nodelist index
#define A_NONE 0x00000000U
#define A_DOWN 0x01000000U
#define A_HOLD 0x02000000U
#define A_HUB 0x03000000U
#define A_HOST 0x04000000U
#define A_PVT 0x05000000U
#define A_REGION 0x06000000U
#define A_NONODE 0xffffffffU
#define A_MASK 0xffff0000U
extern char *NodelistPath;
typedef struct {
char Name[512];
time_t Time;
dword StartZone;
} NodeListElem;
typedef struct _Nch {
dword Number;
struct _Nch *Sub;
} Nch;
class NodeLists {
NodeListElem *NList;
int Lists;
char *IndexName;
Nch *Index;
int StartZone;
private:
int CompileNeed(void);
int Compile(void);
int LoadOneIndex(FILE *fh, Nch *&Ind);
Nch *Srch(Nch *Addr, unsigned int Number);
public:
NodeLists();
~NodeLists();
int AddNodelist(char *tmt, int TempZone);
void IndexFile(char *Name);
void Print(void);
int Load(void);
unsigned int ExistInNodelist(FA const &f);
unsigned int GetFlags(FA const &f);
int InSubHubs(FA const &Addr, FA const &Mask);
int Enabled(void) { return (Lists != 0); };
char *Names(char *Buf);
};
int SetMaxNodelistAge(int tmt);
int SetNodelist(char *tmt, int TempZone);
void SayNodelistFlags(FA const &f);
#endif
syntax highlighted by Code2HTML, v. 0.9.1