Newer
Older
/* Synchronet node information structure and constant definitions */
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program 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 *
* of the License, or (at your option) any later version. *
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
/************************************************************/
/* Constants, macros, and typedefs for use ONLY with SBBS */
/************************************************************/
#ifndef _NODEDEFS_H
#define _NODEDEFS_H
#include "smbdefs.h" /* uchar, ushort, ulong and _PACK */
#include "limits.h"
enum node_status { /* Node Status */
NODE_WFC /* Waiting for Call */
,NODE_LOGON /* at logon prompt */
,NODE_NEWUSER /* New user applying */
,NODE_INUSE /* In Use */
,NODE_QUIET /* In Use - quiet mode */
,NODE_OFFLINE /* Offline */
,NODE_NETTING /* Networking */
,NODE_EVENT_WAITING /* Waiting for all nodes to be inactive */
,NODE_EVENT_RUNNING /* Running an external event */
,NODE_EVENT_LIMBO /* Allowing another node to run an event */
,NODE_LOGOUT /* Logging out */
#define NODE_INVALID_STATUS 0xff /* Invalid status value */
#define NODE_CLIENT_CONNECTED(s) ((s) >= NODE_LOGON && (s) <= NODE_QUIET)
/* Bit values for node.misc */
#define NODE_ANON (1<<0) /* Anonymous User */
#define NODE_LOCK (1<<1) /* Locked for sysops only */
#define NODE_INTR (1<<2) /* Interrupted - hang up */
#define NODE_MSGW (1<<3) /* Message is waiting (old way) */
#define NODE_POFF (1<<4) /* Page disabled */
#define NODE_AOFF (1<<5) /* Activity Alert disabled */
#define NODE_UDAT (1<<6) /* User data has been updated */
#define NODE_RRUN (1<<7) /* Re-run this node when log off */
#define NODE_EVENT (1<<8) /* Must run node event after log off */
#define NODE_DOWN (1<<9) /* Down this node after logoff */
#define NODE_RPCHT (1<<10) /* Reset private chat */
#define NODE_NMSG (1<<11) /* Node message waiting (new way) */
#define NODE_EXT (1<<12) /* Extended info on node action */
#define NODE_LCHAT (1<<13) /* Being pulled into local chat */

Rob Swindell
committed
#define NODE_FCHAT (1<<14) /* Being forced into private chat */
enum node_action { /* Node Action */
NODE_MAIN /* Main Prompt */
,NODE_RMSG /* Reading Messages */
,NODE_RMAL /* Reading Mail */
,NODE_SMAL /* Sending Mail */
,NODE_RTXT /* Reading G-Files */
,NODE_RSML /* Reading Sent Mail */
,NODE_PMSG /* Posting Message */
,NODE_AMSG /* Auto-message */
,NODE_XTRN /* Running External Program */
,NODE_DFLT /* Main Defaults Section */
,NODE_XFER /* Transfer Prompt */
,NODE_DLNG /* Downloading File */
,NODE_ULNG /* Uploading File */
,NODE_BXFR /* Bidirectional Transfer */
,NODE_LFIL /* Listing Files */
,NODE_LOGN /* Logging on */
,NODE_LCHT /* In Local Chat with Sysop */
,NODE_MCHT /* In Multi-Chat with Other Nodes */
,NODE_GCHT /* In Local Chat with Guru */
,NODE_CHAT /* In Chat Section */
,NODE_SYSP /* Sysop Activity */
,NODE_TQWK /* Transferring QWK packet */
,NODE_PCHT /* In Private Chat */
,NODE_PAGE /* Paging another node for Private Chat */
,NODE_RFSD /* Retrieving file from seq dev (aux=dev)*/
,NODE_LAST_ACTION /* Must be last */
};
#pragma pack(push,1)

rswindell
committed
#define SIZEOF_NODE_T 15 /* Must == sizeof(node_t) */
typedef struct { /* Node information kept in node.dab */
uchar status, /* Current Status of Node (enum node_status) */
errors, /* Number of Critical Errors */
action; /* Action User is doing on Node (enum node_action) */
uint16_t useron, /* User on Node */
connection, /* Connection rate of Node */
#define NODE_CONNECTION_LOCAL 0
#define NODE_CONNECTION_TELNET USHRT_MAX /* 0xffff */
#define NODE_CONNECTION_RLOGIN (USHRT_MAX-1)
#define NODE_CONNECTION_SSH (USHRT_MAX-2)
#define NODE_CONNECTION_RAW (USHRT_MAX-3)
misc, /* Miscellaneous bits for node */
aux; /* Auxiliary word for node */
uint32_t extaux; /* Extended aux dword for node */
} node_t;