diff options
Diffstat (limited to 'protocols/jabber/jabber.c')
-rw-r--r-- | protocols/jabber/jabber.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c index 8ec6b70c..39d93d16 100644 --- a/protocols/jabber/jabber.c +++ b/protocols/jabber/jabber.c @@ -41,8 +41,7 @@ static void jabber_acc_init( account_t *acc ) s = set_add( &acc->set, "priority", "0", set_eval_priority, acc ); - s = set_add( &acc->set, "privacy_list", NULL, NULL, acc ); - /* TODO: Add evaluator. */ + s = set_add( &acc->set, "privacy_list", NULL, set_eval_privacy_list, acc ); s = set_add( &acc->set, "resource", "BitlBee", NULL, acc ); s->flags |= ACC_SET_OFFLINE_ONLY; @@ -231,12 +230,24 @@ static void jabber_keepalive( struct gaim_connection *gc ) static void jabber_add_permit( struct gaim_connection *gc, char *who ) { - presence_send_request( gc, who, "subscribed" ); + struct jabber_data *jd = gc->proto_data; + + if( jd->flags & JFLAG_PRIVACY_BROKEN ) + { + serv_got_crap( gc, "Privacy lists not supported by this server" ); + return; + } } static void jabber_rem_permit( struct gaim_connection *gc, char *who ) { - presence_send_request( gc, who, "unsubscribed" ); + struct jabber_data *jd = gc->proto_data; + + if( jd->flags & JFLAG_PRIVACY_BROKEN ) + { + serv_got_crap( gc, "Privacy lists not supported by this server" ); + return; + } } /* XMPP doesn't have both a block- and and allow-list, so these two functions |