X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=tools.h;h=54a0cfa9e7ec8489732350b022f785f1e15e0fc9;hb=795115bf680185ae01043bd1222b78bfed8c1d87;hp=f34787d6d0efbb4d452a3299af7095284ee93eba;hpb=e882e640e4e36173bdc586ddc235fdb0d9d8e34d;p=NeonServV5.git diff --git a/tools.h b/tools.h index f34787d..54a0cfa 100644 --- a/tools.h +++ b/tools.h @@ -3,10 +3,13 @@ #include "main.h" -#define TABLE_FLAG_USE_POINTER 0x01 -#define TABLE_FLAG_COL_BOLD 0x02 +#define TABLE_FLAG_USE_POINTER 0x01 +#define TABLE_FLAG_COL_BOLD 0x02 +#define TABLE_FLAG_COL_CONTENTS 0x04 +struct ClientSocket; struct UserNode; +struct ChanNode; struct Table { char ***contents; @@ -21,15 +24,47 @@ struct Table { char **table_lines; //we just store this to free it in table_free }; +struct ModeBuffer { + struct ClientSocket *client; + struct ChanNode *chan; + char addModes[MAXMODES]; + char delModes[MAXMODES]; + char *addModesParams[MAXMODES]; + char *delModesParams[MAXMODES]; + int addCount; + int delCount; +}; + int match(const char *mask, const char *name); struct Table *table_init(int width, int length, int flags); int table_add(struct Table *table, char **entry); +int table_change(struct Table *table, int row, char **entry); +int table_change_field(struct Table *table, int row, int col, char *entry); int table_set_bold(struct Table *table, int collum, int bold); char **table_end(struct Table *table); void table_free(struct Table *table); -int timeToStr(struct UserNode *user, int seconds, int items, char *buf); +char* timeToStr(struct UserNode *user, int seconds, int items, char *buf); +int strToTime(struct UserNode *user, char *str); + +struct ModeBuffer* initModeBuffer(struct ClientSocket *client, struct ChanNode *chan); +#define modeBufferSimpleMode(MODEBUF,ADD,MODE) modeBufferSet(MODEBUF, ADD, MODE, NULL) +#define modeBufferOp(MODEBUF,USER) modeBufferSet(MODEBUF, 1, 'o', USER) +#define modeBufferDeop(MODEBUF,USER) modeBufferSet(MODEBUF, 0, 'o', USER) +#define modeBufferVoice(MODEBUF,USER) modeBufferSet(MODEBUF, 1, 'v', USER) +#define modeBufferDevoice(MODEBUF,USER) modeBufferSet(MODEBUF, 0, 'v', USER) +#define modeBufferBan(MODEBUF,MASK) modeBufferSet(MODEBUF, 1, 'b', MASK) +#define modeBufferUnban(MODEBUF,MASK) modeBufferSet(MODEBUF, 0, 'b', MASK) +void modeBufferSet(struct ModeBuffer *modeBuf, int add, char mode, char *param); +void flushModeBuffer(struct ModeBuffer *modeBuf); +void freeModeBuffer(struct ModeBuffer *modeBuf); + +int is_ircmask(const char *text); + +char* generate_banmask(struct UserNode *user, char *buffer); +char* make_banmask(char *input, char* buffer); +int isFakeHost(char *host); void init_tools();