diff options
| author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-03-26 08:14:37 -0400 | 
|---|---|---|
| committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-03-26 08:14:37 -0400 | 
| commit | 3ddb7477f51d3cf1632e2a8b6f7da4c0609a52cb (patch) | |
| tree | 4ed5b267d5968fa462c2d84de73f789216b3284e /irc.h | |
| parent | ba7d16f3c90de2744243efe6373ccebe51cfcb5a (diff) | |
One total mess that doesn't do much yet, but reorganised some stuff and
untying the IRC and the core parts a little bit. Lots of work left to do.
Diffstat (limited to 'irc.h')
| -rw-r--r-- | irc.h | 93 | 
1 files changed, 46 insertions, 47 deletions
@@ -4,7 +4,7 @@    * Copyright 2002-2004 Wilmer van der Gaast and others                *    \********************************************************************/ -/* The big hairy IRCd part of the project                               */ +/* The IRC-based UI (for now the only one)                              */  /*    This program is free software; you can redistribute it and/or modify @@ -48,6 +48,8 @@ typedef enum  	USTATUS_SHUTDOWN = 8  } irc_status_t; +struct irc_user; +  typedef struct irc  {  	int fd; @@ -58,86 +60,83 @@ typedef struct irc  	char *readbuffer;  	GIConv iconv, oconv; -	int sentbytes; -	time_t oldtime; +	struct irc_user *root; +	struct irc_user *user; -	char *nick; -	char *user; -	char *host; -	char *realname;  	char *password; /* HACK: Used to save the user's password, but before  	                   logging in, this may contain a password we should  	                   send to identify after USER/NICK are received. */  	char umode[8]; -	char *myhost; -	char *mynick; - -	char *channel; -	int c_id; - -	char is_private;		/* Not too nice... */ -	char *last_target; -	  	struct query *queries;  	struct account *accounts;  	GSList *file_transfers;  	struct chat *chatrooms; -	struct __USER *users; -	GHashTable *userhash; +	GSList *users; +	GHashTable *nick_user_hash;  	GHashTable *watches; -	struct __NICK *nicks; -	struct set *set;  	gint r_watch_source_id;  	gint w_watch_source_id;  	gint ping_source_id; +	 +	struct bee *b;  } irc_t; +typedef struct irc_user +{ +	char *nick; +	char *user; +	char *host; +	char *fullname; +	 +	/* Nickname in lowercase for case sensitive searches */ +	char *key; +	 +	char is_private; +	 +	char *sendbuf; +	int sendbuf_len; +	guint sendbuf_timer; +	int sendbuf_flags; +	 +	//struct user *b; +} irc_user_t; +  #include "user.h" +/* irc.c */  extern GSList *irc_connection_list;  irc_t *irc_new( int fd );  void irc_abort( irc_t *irc, int immed, char *format, ... ) G_GNUC_PRINTF( 3, 4 );  void irc_free( irc_t *irc ); -void irc_exec( irc_t *irc, char **cmd );  void irc_process( irc_t *irc );  char **irc_parse_line( char *line );  char *irc_build_line( char **cmd ); -void irc_vawrite( irc_t *irc, char *format, va_list params );  void irc_write( irc_t *irc, char *format, ... ) G_GNUC_PRINTF( 2, 3 );  void irc_write_all( int now, char *format, ... ) G_GNUC_PRINTF( 2, 3 ); -void irc_reply( irc_t *irc, int code, char *format, ... ) G_GNUC_PRINTF( 3, 4 ); -G_MODULE_EXPORT int irc_usermsg( irc_t *irc, char *format, ... ) G_GNUC_PRINTF( 2, 3 ); -char **irc_tokenize( char *buffer ); +void irc_vawrite( irc_t *irc, char *format, va_list params ); -void irc_login( irc_t *irc );  int irc_check_login( irc_t *irc ); -void irc_motd( irc_t *irc ); -void irc_names( irc_t *irc, char *channel ); -void irc_topic( irc_t *irc, char *channel ); -void irc_umode_set( irc_t *irc, char *s, int allow_priv ); -void irc_who( irc_t *irc, char *channel ); -void irc_spawn( irc_t *irc, user_t *u ); -void irc_join( irc_t *irc, user_t *u, char *channel ); -void irc_part( irc_t *irc, user_t *u, char *channel ); -void irc_kick( irc_t *irc, user_t *u, char *channel, user_t *kicker ); -void irc_kill( irc_t *irc, user_t *u ); -void irc_invite( irc_t *irc, char *nick, char *channel ); -void irc_whois( irc_t *irc, char *nick ); -void irc_setpass( irc_t *irc, const char *pass ); /* USE WITH CAUTION! */ - -int irc_send( irc_t *irc, char *nick, char *s, int flags ); -int irc_privmsg( irc_t *irc, user_t *u, char *type, char *to, char *prefix, char *msg ); -int irc_msgfrom( irc_t *irc, char *nick, char *msg ); -int irc_noticefrom( irc_t *irc, char *nick, char *msg ); - -void buddy_send_handler( irc_t *irc, user_t *u, char *msg, int flags ); -struct groupchat *irc_chat_by_channel( irc_t *irc, char *channel ); + +/* irc_commands.c */ +void irc_exec( irc_t *irc, char **cmd ); + +/* irc_send.c */ +void irc_send_num( irc_t *irc, int code, char *format, ... ) G_GNUC_PRINTF( 3, 4 ); +void irc_send_login( irc_t *irc ); +void irc_send_motd( irc_t *irc ); +int irc_usermsg( irc_t *irc, char *format, ... ); + +/* irc_user.c */ +irc_user_t *irc_user_new( irc_t *irc, const char *nick ); +int irc_user_free( irc_t *irc, const char *nick ); +irc_user_t *irc_user_find( irc_t *irc, const char *nick ); +int irc_user_rename( irc_t *irc, const char *old, const char *new );  #endif  | 
