aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/jabber/jabber.h
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2006-09-23 18:18:24 +0200
committerWilmer van der Gaast <wilmer@gaast.net>2006-09-23 18:18:24 +0200
commit5e202b09f2cd9faff5f316ae6804facb5342eace (patch)
treed2531aa515457d66b303cbcb94ea5d7243fcb041 /protocols/jabber/jabber.h
parentd8e04849607d4a5ca590752dce37954f12179580 (diff)
Implemented a list of away states, using this for a better set_away(), and
got rid of the double <presence> tag sent because of presence_announce().
Diffstat (limited to 'protocols/jabber/jabber.h')
-rw-r--r--protocols/jabber/jabber.h51
1 files changed, 31 insertions, 20 deletions
diff --git a/protocols/jabber/jabber.h b/protocols/jabber/jabber.h
index c2d3867e..29cf6a84 100644
--- a/protocols/jabber/jabber.h
+++ b/protocols/jabber/jabber.h
@@ -38,6 +38,33 @@ typedef enum
JFLAG_WAIT_BIND = 16, /* ... for <bind> tag. */
} jabber_flags_t;
+struct jabber_data
+{
+ struct gaim_connection *gc;
+
+ int fd;
+ void *ssl;
+ char *txq;
+ int tx_len;
+ int r_inpa, w_inpa;
+
+ struct xt_parser *xt;
+ jabber_flags_t flags;
+
+ char *username; /* USERNAME@server */
+ char *server; /* username@SERVER -=> server/domain, not hostname */
+ struct jabber_away_state *away_state;
+ char *away_message;
+
+ struct xt_node *node_cache;
+};
+
+struct jabber_away_state
+{
+ char code[5];
+ char *full_name;
+};
+
/* iq.c */
xt_status jabber_pkt_iq( struct xt_node *node, gpointer data );
int jabber_start_iq_auth( struct gaim_connection *gc );
@@ -47,7 +74,6 @@ xt_status jabber_pkt_message( struct xt_node *node, gpointer data );
/* presence.c */
xt_status jabber_pkt_presence( struct xt_node *node, gpointer data );
-int presence_announce( struct gaim_connection *gc );
int presence_send( struct gaim_connection *gc, char *to, char *show, char *status );
/* jabber_util.c */
@@ -56,6 +82,10 @@ char *set_eval_tls( set_t *set, char *value );
struct xt_node *jabber_make_packet( char *name, char *type, char *to, struct xt_node *children );
void jabber_cache_packet( struct gaim_connection *gc, struct xt_node *node );
struct xt_node *jabber_packet_from_cache( struct gaim_connection *gc, char *id );
+const struct jabber_away_state *jabber_away_state_by_code( char *code );
+const struct jabber_away_state *jabber_away_state_by_name( char *name );
+
+extern const struct jabber_away_state jabber_away_state_list[];
/* io.c */
int jabber_write_packet( struct gaim_connection *gc, struct xt_node *node );
@@ -70,23 +100,4 @@ xt_status sasl_pkt_challenge( struct xt_node *node, gpointer data );
xt_status sasl_pkt_result( struct xt_node *node, gpointer data );
gboolean sasl_supported( struct gaim_connection *gc );
-struct jabber_data
-{
- struct gaim_connection *gc;
-
- int fd;
- void *ssl;
- char *txq;
- int tx_len;
- int r_inpa, w_inpa;
-
- struct xt_parser *xt;
- jabber_flags_t flags;
-
- char *username; /* USERNAME@server */
- char *server; /* username@SERVER -=> server/domain, not hostname */
-
- struct xt_node *node_cache;
-};
-
#endif