#ifndef MAXNAMELEN
#define MAXNAMELEN 80
#endif
#define DESCRIPLEN 120
/* error numbers for login overloading */
#define HOSTFULL 1 /* host reached maximum limit */
#define GROUPFULL 2 /* group reached maximum limit */
#define VSERVERFULL 3 /* virtual server reached maximum limit */
#define IPHOSTFULL 4 /* per ip limit for the host reached */
#define IPVSERVERFULL 5 /* per ip limit for the virtual server reached */
/* this will be used by sub-programs of muddleftpd to make sure it is running
under the correct version of muddleftpd and it isn't accessing someone elses
memory area */
#define CURRENTMAGIC 704198001
typedef struct
{
int magic;
int serverusercount;
int servermaxcount;
int groupareastart;
int numvserver;
int numgroups;
int numrecs;
pid_t pid;
} SHRMEMHEADER;
typedef struct
{
char name[MAXSECTIONLEN];
int count;
int max;
} SHRMEMDATA;
typedef struct
{
char username[MAXNAMELEN];
char groupname[MAXSECTIONLEN];
char vserver[MAXSECTIONLEN];
char currentop[DESCRIPLEN];
char remotehost[MAXNAMELEN];
int pid;
unsigned int ip;
} SCRFILEREC;
#define SCRF_USERNAME 0
#define SCRF_GROUPNAME MAXNAMELEN
#define SCRF_VSERVER SCRF_GROUPNAME + MAXSECTIONLEN
#define SCRF_CURRENTOP SCRF_VSERVER + MAXSECTIONLEN
#define SCRF_REMOTEHOST SCRF_CURRENTOP + DESCRIPLEN
#define SCRF_PID SCRF_REMOTEHOST + MAXNAMELEN
typedef struct
{
char username[MAXNAMELEN];
char currentop[DESCRIPLEN];
char remotehost[MAXNAMELEN];
int group;
int vserver;
volatile int pid;
unsigned int ip;
} SCRMEMREC;
#define SHRMEMDATPOS(s,x) ((SHRMEMDATA *)((char *)(s) + sizeof(SHRMEMHEADER)) + (x))
#define SHMEMSIZE 1024 * 1024
#define SHMEMPROCSTART 128 * 1024
syntax highlighted by Code2HTML, v. 0.9.1