aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/jabber/iq.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2006-10-07 15:01:02 +0200
committerWilmer van der Gaast <wilmer@gaast.net>2006-10-07 15:01:02 +0200
commit090f1cbe72373b31e753af4a1442ddd53b02791b (patch)
treea679fb6f763357e60a830a0dc4185cae75afba02 /protocols/jabber/iq.c
parent101d84fe3018ba138a9cb5f0f030997e8ff7bdbe (diff)
Never mind about those privacy lists, they're horrible and not supported
by any client I know of. Also, they're already working on a (probably completely incompatible) standard: JEP-191. Maybe BitlBee will implement it too some day...
Diffstat (limited to 'protocols/jabber/iq.c')
-rw-r--r--protocols/jabber/iq.c152
1 files changed, 2 insertions, 150 deletions
diff --git a/protocols/jabber/iq.c b/protocols/jabber/iq.c
index b77ee9ff..4739d6ab 100644
--- a/protocols/jabber/iq.c
+++ b/protocols/jabber/iq.c
@@ -108,42 +108,6 @@ xt_status jabber_pkt_iq( struct xt_node *node, gpointer data )
account_online( gc );
}
- if( strcmp( type, "result" ) == 0 && xmlns && strcmp( xmlns, "jabber:iq:privacy" ) == 0 )
- {
- struct xt_node *node;
-
- /* When receiving a list of lists: */
- if( ( node = xt_find_node( query->children, "active" ) ) )
- {
- if( ( s = xt_find_attr( node, "name" ) ) )
- {
- set_t *set;
-
- g_free( jd->privacy_active );
- jd->privacy_active = g_strdup( s );
-
- /* Save it so the user can see it. */
- if( ( set = set_find( &gc->acc->set, "privacy_list" ) ) )
- {
- g_free( set->value );
- set->value = g_strdup( s );
- }
-
- if( !jabber_get_privacy( gc ) )
- return XT_ABORT;
- }
- }
- /* When receiving an actual list: */
- else if( ( node = xt_find_node( query->children, "list" ) ) )
- {
- xt_free_node( jd->privacy_list );
- jd->privacy_list = xt_dup( node );
- }
- else if( query->children == NULL )
- {
- /* What to do here if there is no privacy list defined yet... */
- }
- }
else if( strcmp( type, "result" ) == 0 && orig )
{
struct xt_node *c;
@@ -156,7 +120,7 @@ xt_status jabber_pkt_iq( struct xt_node *node, gpointer data )
/* This happens when we just successfully authenticated
the old (non-SASL) way. */
jd->flags |= JFLAG_AUTHENTICATED;
- if( !jabber_get_roster( gc ) || !jabber_get_privacy( gc ) )
+ if( !jabber_get_roster( gc ) )
return XT_ABORT;
}
/* Tricky: Look for <bind> in the reply, because the server
@@ -180,21 +144,10 @@ xt_status jabber_pkt_iq( struct xt_node *node, gpointer data )
if( ( jd->flags & ( JFLAG_WAIT_BIND | JFLAG_WAIT_SESSION ) ) == 0 )
{
- if( !jabber_get_roster( gc ) || !jabber_get_privacy( gc ) )
+ if( !jabber_get_roster( gc ) )
return XT_ABORT;
}
}
- else if( ( c = xt_find_node( orig->children, "query" ) ) &&
- ( c = xt_find_node( c->children, "active" ) ) )
- {
- /* We just successfully activated a (different)
- privacy list. Fetch it now. */
- g_free( jd->privacy_active );
- jd->privacy_active = g_strdup( xt_find_attr( c, "name" ) );
-
- if( !jabber_get_privacy( gc ) )
- return XT_ABORT;
- }
}
else if( strcmp( type, "error" ) == 0 )
{
@@ -208,33 +161,6 @@ xt_status jabber_pkt_iq( struct xt_node *node, gpointer data )
signoff( gc );
return XT_ABORT;
}
- else if( ( xmlns && strcmp( xmlns, "jabber:iq:privacy" ) == 0 ) ||
- ( orig &&
- ( c = xt_find_node( orig->children, "query" ) ) &&
- ( s = xt_find_attr( c, "xmlns" ) ) &&
- strcmp( s, "jabber:iq:privacy" ) == 0 ) )
- {
- /* All errors related to privacy lists. */
- if( ( c = xt_find_node( node->children, "error" ) ) == NULL )
- {
- hide_login_progress_error( gc, "Received malformed error packet" );
- signoff( gc );
- return XT_ABORT;
- }
-
- if( xt_find_node( c->children, "item-not-found" ) )
- {
- serv_got_crap( gc, "Error while activating privacy list, maybe it doesn't exist" );
- /* Should I do anything else here? */
- }
- else if( xt_find_node( c->children, "feature-not-implemented" ) )
- {
- jd->flags |= JFLAG_PRIVACY_BROKEN;
- /* Probably there's no need to inform the user.
- We can do that if the user ever tries to use
- the block/allow commands. */
- }
- }
}
return XT_HANDLED;
@@ -315,77 +241,3 @@ int jabber_remove_from_roster( struct gaim_connection *gc, char *handle )
xt_free_node( node );
return st;
}
-
-/* Request the privacy list from the server. We need this, because every
- time we remove/add something we have to send the whole new list to the
- server again... If no privacy list is specified yet, this function will
- first ask for the list of lists (XMPP supports multiple "privacy lists",
- don't ask me why), later we can then fetch the list we want to use. */
-int jabber_get_privacy( struct gaim_connection *gc )
-{
- struct jabber_data *jd = gc->proto_data;
- struct xt_node *node = NULL;
- char *name;
- int st;
-
- if( jd->privacy_active )
- {
- /* If we know what is the active list right now, fetch it. */
- node = xt_new_node( "list", NULL, NULL );
- xt_add_attr( node, "name", jd->privacy_active );
- }
- /* Okay, we don't know yet. If the user set a specific list, we'll
- activate that one. Otherwise, we should figure out which list is
- currently active. */
- else if( ( name = set_getstr( &gc->acc->set, "privacy_list" ) ) )
- {
- return jabber_set_privacy( gc, name );
- }
- /* else: sending this packet without a <list/> element will give
- a list of available lists and information about the currently
- active list. */
-
- node = xt_new_node( "query", NULL, node );
- xt_add_attr( node, "xmlns", "jabber:iq:privacy" );
- node = jabber_make_packet( "iq", "get", NULL, node );
-
- jabber_cache_packet( gc, node );
- st = jabber_write_packet( gc, node );
-
- return st;
-}
-
-int jabber_set_privacy( struct gaim_connection *gc, char *name )
-{
- struct xt_node *node;
-
- node = xt_new_node( "active", NULL, NULL );
- xt_add_attr( node, "name", name );
- node = xt_new_node( "query", NULL, node );
- xt_add_attr( node, "xmlns", "jabber:iq:privacy" );
-
- node = jabber_make_packet( "iq", "set", NULL, node );
- jabber_cache_packet( gc, node );
-
- return jabber_write_packet( gc, node );
-}
-
-char *set_eval_privacy_list( set_t *set, char *value )
-{
- account_t *acc = set->data;
- struct jabber_data *jd = acc->gc->proto_data;
-
- if( jd->flags & JFLAG_PRIVACY_BROKEN )
- {
- serv_got_crap( acc->gc, "Privacy lists not supported by this server" );
- return NULL;
- }
-
- /* If we're on-line, return NULL and let the server decide if the
- chosen list is valid. If we're off-line, just accept it and we'll
- see later (when we connect). */
- if( acc->gc )
- jabber_set_privacy( acc->gc, value );
-
- return acc->gc ? NULL : value;
-}