shithub: ircd

ref: eaf9a2c0694335ea7d5139f83b3824f6127fb310
dir: /dat.h/

View raw version
typedef struct Prefix Prefix;
typedef struct Request Request;
typedef struct Command Command;
typedef struct Reply Reply;
typedef struct User User;
typedef struct Replybuffer Replybuffer;
typedef struct Client Client;
typedef struct IChan IChan;

#pragma varargck type "R" Request

struct Prefix
{
	char *name;
	char *user;
	char *host;
};

struct Request
{
	Command *cmd;
	Prefix prefix;
	char *args[15];
};

struct Command
{
	char *name;
	void (*func)(Client*,Request*);
};

struct Reply
{
	int nr;
	char *msg;
};

struct Replybuffer
{
	QLock;
	void *reply;
};

struct User
{
	char *name;
	char *host; /* if nil, local use (use sysname) */
	char *realname;
	int greeted;
};

struct Client
{
	ulong fid;
	Replybuffer replies;
	User *user;
	char *nick;
	char *away;
	
	void *channels;
};

struct IChan
{
	char *name;
	char *topic;
	
	void *users;
};

extern int debug;
extern char *sysnameb;
extern char *welcome;