aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/msn/msn.h
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/msn/msn.h')
-rw-r--r--protocols/msn/msn.h170
1 files changed, 80 insertions, 90 deletions
diff --git a/protocols/msn/msn.h b/protocols/msn/msn.h
index 438b2174..6022bc31 100644
--- a/protocols/msn/msn.h
+++ b/protocols/msn/msn.h
@@ -1,4 +1,4 @@
- /********************************************************************\
+/********************************************************************\
* BitlBee -- An IRC to other IM-networks gateway *
* *
* Copyright 2002-2012 Wilmer van der Gaast and others *
@@ -34,9 +34,9 @@
#define SB_KEEPALIVE_MESSAGE "\r\r\rDONT HANG UP ON ME!\r\r\r"
#ifdef DEBUG_MSN
-#define debug( text... ) imcb_log( ic, text );
+#define debug(text ...) imcb_log(ic, text);
#else
-#define debug( text... )
+#define debug(text ...)
#endif
/* This should be MSN Messenger 7.0.0813
@@ -68,30 +68,29 @@
#define MSN_CAP2 0x0000
#define MSN_MESSAGE_HEADERS "MIME-Version: 1.0\r\n" \
- "Content-Type: text/plain; charset=UTF-8\r\n" \
- "User-Agent: BitlBee " BITLBEE_VERSION "\r\n" \
- "X-MMS-IM-Format: FN=MS%20Shell%20Dlg; EF=; CO=0; CS=0; PF=0\r\n" \
- "\r\n"
+ "Content-Type: text/plain; charset=UTF-8\r\n" \
+ "User-Agent: BitlBee " BITLBEE_VERSION "\r\n" \
+ "X-MMS-IM-Format: FN=MS%20Shell%20Dlg; EF=; CO=0; CS=0; PF=0\r\n" \
+ "\r\n"
#define MSN_TYPING_HEADERS "MIME-Version: 1.0\r\n" \
- "Content-Type: text/x-msmsgscontrol\r\n" \
- "TypingUser: %s\r\n" \
- "\r\n\r\n"
+ "Content-Type: text/x-msmsgscontrol\r\n" \
+ "TypingUser: %s\r\n" \
+ "\r\n\r\n"
#define MSN_NUDGE_HEADERS "MIME-Version: 1.0\r\n" \
- "Content-Type: text/x-msnmsgr-datacast\r\n" \
- "\r\n" \
- "ID: 1\r\n" \
- "\r\n"
+ "Content-Type: text/x-msnmsgr-datacast\r\n" \
+ "\r\n" \
+ "ID: 1\r\n" \
+ "\r\n"
#define MSN_SB_KEEPALIVE_HEADERS "MIME-Version: 1.0\r\n" \
- "Content-Type: text/x-ping\r\n" \
- "\r\n\r\n"
+ "Content-Type: text/x-ping\r\n" \
+ "\r\n\r\n"
#define PROFILE_URL "http://members.msn.com/"
-typedef enum
-{
+typedef enum {
MSN_GOT_PROFILE = 1,
MSN_GOT_PROFILE_DN = 2,
MSN_DONE_ADL = 4,
@@ -99,43 +98,41 @@ typedef enum
MSN_EMAIL_UNVERIFIED = 16,
} msn_flags_t;
-struct msn_handler_data
-{
+struct msn_handler_data {
int fd, inpa;
int rxlen;
char *rxq;
-
+
int msglen;
char *cmd_text;
-
+
/* Either ic or sb */
gpointer data;
-
- int (*exec_command) ( struct msn_handler_data *handler, char **cmd, int count );
- int (*exec_message) ( struct msn_handler_data *handler, char *msg, int msglen, char **cmd, int count );
+
+ int (*exec_command) (struct msn_handler_data *handler, char **cmd, int count);
+ int (*exec_message) (struct msn_handler_data *handler, char *msg, int msglen, char **cmd, int count);
};
-struct msn_data
-{
+struct msn_data {
struct im_connection *ic;
-
+
struct msn_handler_data ns[1];
msn_flags_t flags;
-
+
int trId;
char *tokens[4];
char *lock_key, *pp_policy;
char *uuid;
-
+
GSList *msgq, *grpq, *soapq;
GSList *switchboards;
int sb_failures;
time_t first_sb_failure;
-
+
const struct msn_away_state *away_state;
GSList *groups;
char *profile_rid;
-
+
/* Mostly used for sending the ADL command; since MSNP13 the client
is responsible for downloading the contact list and then sending
it to the MSNP server. */
@@ -143,54 +140,48 @@ struct msn_data
int adl_todo;
};
-struct msn_switchboard
-{
+struct msn_switchboard {
struct im_connection *ic;
-
+
/* The following two are also in the handler. TODO: Clean up. */
int fd;
gint inp;
struct msn_handler_data *handler;
gint keepalive;
-
+
int trId;
int ready;
-
+
int session;
char *key;
-
+
GSList *msgq;
char *who;
struct groupchat *chat;
};
-struct msn_away_state
-{
+struct msn_away_state {
char code[4];
char name[16];
};
-struct msn_status_code
-{
+struct msn_status_code {
int number;
char *text;
int flags;
};
-struct msn_message
-{
+struct msn_message {
char *who;
char *text;
};
-struct msn_groupadd
-{
+struct msn_groupadd {
char *who;
char *group;
};
-typedef enum
-{
+typedef enum {
MSN_BUDDY_FL = 1, /* Warning: FL,AL,BL *must* be 1,2,4. */
MSN_BUDDY_AL = 2,
MSN_BUDDY_BL = 4,
@@ -200,14 +191,12 @@ typedef enum
MSN_BUDDY_FED = 512,
} msn_buddy_flags_t;
-struct msn_buddy_data
-{
+struct msn_buddy_data {
char *cid;
msn_buddy_flags_t flags;
};
-struct msn_group
-{
+struct msn_group {
char *name;
char *id;
};
@@ -215,8 +204,8 @@ struct msn_group
/* Bitfield values for msn_status_code.flags */
#define STATUS_FATAL 1
#define STATUS_SB_FATAL 2
-#define STATUS_SB_IM_SPARE 4 /* Make one-to-one conversation switchboard available again, invite failed. */
-#define STATUS_SB_CHAT_SPARE 8 /* Same, but also for groupchats (not used yet). */
+#define STATUS_SB_IM_SPARE 4 /* Make one-to-one conversation switchboard available again, invite failed. */
+#define STATUS_SB_CHAT_SPARE 8 /* Same, but also for groupchats (not used yet). */
extern int msn_chat_id;
extern const struct msn_away_state msn_away_state_list[];
@@ -231,47 +220,48 @@ extern GSList *msn_connections;
extern GSList *msn_switchboards;
/* ns.c */
-int msn_ns_write( struct im_connection *ic, int fd, const char *fmt, ... ) G_GNUC_PRINTF( 3, 4 );
-gboolean msn_ns_connect( struct im_connection *ic, struct msn_handler_data *handler, const char *host, int port );
-void msn_ns_close( struct msn_handler_data *handler );
-void msn_auth_got_passport_token( struct im_connection *ic, const char *token, const char *error );
-void msn_auth_got_contact_list( struct im_connection *ic );
-int msn_ns_finish_login( struct im_connection *ic );
-int msn_ns_sendmessage( struct im_connection *ic, struct bee_user *bu, const char *text );
-void msn_ns_oim_send_queue( struct im_connection *ic, GSList **msgq );
+int msn_ns_write(struct im_connection *ic, int fd, const char *fmt, ...) G_GNUC_PRINTF(3, 4);
+gboolean msn_ns_connect(struct im_connection *ic, struct msn_handler_data *handler, const char *host, int port);
+void msn_ns_close(struct msn_handler_data *handler);
+void msn_auth_got_passport_token(struct im_connection *ic, const char *token, const char *error);
+void msn_auth_got_contact_list(struct im_connection *ic);
+int msn_ns_finish_login(struct im_connection *ic);
+int msn_ns_sendmessage(struct im_connection *ic, struct bee_user *bu, const char *text);
+void msn_ns_oim_send_queue(struct im_connection *ic, GSList **msgq);
/* msn_util.c */
-int msn_buddy_list_add( struct im_connection *ic, msn_buddy_flags_t list, const char *who, const char *realname_, const char *group );
-int msn_buddy_list_remove( struct im_connection *ic, msn_buddy_flags_t list, const char *who, const char *group );
-void msn_buddy_ask( bee_user_t *bu );
-char **msn_linesplit( char *line );
-int msn_handler( struct msn_handler_data *h );
-void msn_msgq_purge( struct im_connection *ic, GSList **list );
-char *msn_p11_challenge( char *challenge );
-gint msn_domaintree_cmp( gconstpointer a_, gconstpointer b_ );
-struct msn_group *msn_group_by_name( struct im_connection *ic, const char *name );
-struct msn_group *msn_group_by_id( struct im_connection *ic, const char *id );
-int msn_ns_set_display_name( struct im_connection *ic, const char *value );
-const char *msn_normalize_handle( const char *handle );
+int msn_buddy_list_add(struct im_connection *ic, msn_buddy_flags_t list, const char *who, const char *realname_,
+ const char *group);
+int msn_buddy_list_remove(struct im_connection *ic, msn_buddy_flags_t list, const char *who, const char *group);
+void msn_buddy_ask(bee_user_t *bu);
+char **msn_linesplit(char *line);
+int msn_handler(struct msn_handler_data *h);
+void msn_msgq_purge(struct im_connection *ic, GSList **list);
+char *msn_p11_challenge(char *challenge);
+gint msn_domaintree_cmp(gconstpointer a_, gconstpointer b_);
+struct msn_group *msn_group_by_name(struct im_connection *ic, const char *name);
+struct msn_group *msn_group_by_id(struct im_connection *ic, const char *id);
+int msn_ns_set_display_name(struct im_connection *ic, const char *value);
+const char *msn_normalize_handle(const char *handle);
/* tables.c */
-const struct msn_away_state *msn_away_state_by_number( int number );
-const struct msn_away_state *msn_away_state_by_code( char *code );
-const struct msn_away_state *msn_away_state_by_name( char *name );
-const struct msn_status_code *msn_status_by_number( int number );
+const struct msn_away_state *msn_away_state_by_number(int number);
+const struct msn_away_state *msn_away_state_by_code(char *code);
+const struct msn_away_state *msn_away_state_by_name(char *name);
+const struct msn_status_code *msn_status_by_number(int number);
/* sb.c */
-int msn_sb_write( struct msn_switchboard *sb, const char *fmt, ... ) G_GNUC_PRINTF( 2, 3 );;
-struct msn_switchboard *msn_sb_create( struct im_connection *ic, char *host, int port, char *key, int session );
-struct msn_switchboard *msn_sb_by_handle( struct im_connection *ic, const char *handle );
-struct msn_switchboard *msn_sb_by_chat( struct groupchat *c );
-struct msn_switchboard *msn_sb_spare( struct im_connection *ic );
-int msn_sb_sendmessage( struct msn_switchboard *sb, char *text );
-struct groupchat *msn_sb_to_chat( struct msn_switchboard *sb );
-void msn_sb_destroy( struct msn_switchboard *sb );
-gboolean msn_sb_connected( gpointer data, gint source, b_input_condition cond );
-int msn_sb_write_msg( struct im_connection *ic, struct msn_message *m );
-void msn_sb_start_keepalives( struct msn_switchboard *sb, gboolean initial );
-void msn_sb_stop_keepalives( struct msn_switchboard *sb );
+int msn_sb_write(struct msn_switchboard *sb, const char *fmt, ...) G_GNUC_PRINTF(2, 3);;
+struct msn_switchboard *msn_sb_create(struct im_connection *ic, char *host, int port, char *key, int session);
+struct msn_switchboard *msn_sb_by_handle(struct im_connection *ic, const char *handle);
+struct msn_switchboard *msn_sb_by_chat(struct groupchat *c);
+struct msn_switchboard *msn_sb_spare(struct im_connection *ic);
+int msn_sb_sendmessage(struct msn_switchboard *sb, char *text);
+struct groupchat *msn_sb_to_chat(struct msn_switchboard *sb);
+void msn_sb_destroy(struct msn_switchboard *sb);
+gboolean msn_sb_connected(gpointer data, gint source, b_input_condition cond);
+int msn_sb_write_msg(struct im_connection *ic, struct msn_message *m);
+void msn_sb_start_keepalives(struct msn_switchboard *sb, gboolean initial);
+void msn_sb_stop_keepalives(struct msn_switchboard *sb);
#endif //_MSN_H