check that we are authenticated to server before sending anything.

This commit is contained in:
Yann Leboulanger 2010-03-20 19:00:33 +01:00
parent 8b497d64ec
commit 32a14182df
1 changed files with 45 additions and 45 deletions

View File

@ -514,7 +514,7 @@ class CommonConnection:
groupchat_jid is used when we want to send a request to a real jid and groupchat_jid is used when we want to send a request to a real jid and
act as if the answer comes from the groupchat_jid act as if the answer comes from the groupchat_jid
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
to_whom_jid = jid to_whom_jid = jid
if resource: if resource:
@ -1317,7 +1317,7 @@ class Connection(CommonConnection, ConnectionHandlers):
stanza.setAttr('xml:lang', self.lang) stanza.setAttr('xml:lang', self.lang)
def get_privacy_lists(self): def get_privacy_lists(self):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
common.xmpp.features_nb.getPrivacyLists(self.connection) common.xmpp.features_nb.getPrivacyLists(self.connection)
@ -1336,7 +1336,7 @@ class Connection(CommonConnection, ConnectionHandlers):
Send XMPP Ping (XEP-0199) request. If pingTo is not set, ping is sent to Send XMPP Ping (XEP-0199) request. If pingTo is not set, ping is sent to
server to detect connection failure at application level server to detect connection failure at application level
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
id_ = self.connection.getAnID() id_ = self.connection.getAnID()
if pingTo: if pingTo:
@ -1364,12 +1364,12 @@ class Connection(CommonConnection, ConnectionHandlers):
'accounts', self.name, 'time_for_ping_alive_answer')) 'accounts', self.name, 'time_for_ping_alive_answer'))
def get_active_default_lists(self): def get_active_default_lists(self):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
common.xmpp.features_nb.getActiveAndDefaultPrivacyLists(self.connection) common.xmpp.features_nb.getActiveAndDefaultPrivacyLists(self.connection)
def del_privacy_list(self, privacy_list): def del_privacy_list(self, privacy_list):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
def _on_del_privacy_list_result(result): def _on_del_privacy_list_result(result):
if result: if result:
@ -1383,22 +1383,22 @@ class Connection(CommonConnection, ConnectionHandlers):
_on_del_privacy_list_result) _on_del_privacy_list_result)
def get_privacy_list(self, title): def get_privacy_list(self, title):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
common.xmpp.features_nb.getPrivacyList(self.connection, title) common.xmpp.features_nb.getPrivacyList(self.connection, title)
def set_privacy_list(self, listname, tags): def set_privacy_list(self, listname, tags):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
common.xmpp.features_nb.setPrivacyList(self.connection, listname, tags) common.xmpp.features_nb.setPrivacyList(self.connection, listname, tags)
def set_active_list(self, listname): def set_active_list(self, listname):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
common.xmpp.features_nb.setActivePrivacyList(self.connection, listname, 'active') common.xmpp.features_nb.setActivePrivacyList(self.connection, listname, 'active')
def set_default_list(self, listname): def set_default_list(self, listname):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
common.xmpp.features_nb.setDefaultPrivacyList(self.connection, listname) common.xmpp.features_nb.setDefaultPrivacyList(self.connection, listname)
@ -1441,14 +1441,14 @@ class Connection(CommonConnection, ConnectionHandlers):
""" """
Activate a privacy rule Activate a privacy rule
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq('set', common.xmpp.NS_PRIVACY, xmlns = '') iq = common.xmpp.Iq('set', common.xmpp.NS_PRIVACY, xmlns = '')
iq.getTag('query').setTag('active', {'name': name}) iq.getTag('query').setTag('active', {'name': name})
self.connection.send(iq) self.connection.send(iq)
def send_invisible_presence(self, msg, signed, initial = False): def send_invisible_presence(self, msg, signed, initial = False):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
if not self.privacy_rules_supported: if not self.privacy_rules_supported:
self.dispatch('STATUS', gajim.SHOW_LIST[self.connected]) self.dispatch('STATUS', gajim.SHOW_LIST[self.connected])
@ -1519,7 +1519,7 @@ class Connection(CommonConnection, ConnectionHandlers):
def _discover_server_at_connection(self, con): def _discover_server_at_connection(self, con):
self.connection = con self.connection = con
if not self.connection: if not gajim.account_is_connected(self.name):
return return
self.connection.set_send_timeout(self.keepalives, self.send_keepalive) self.connection.set_send_timeout(self.keepalives, self.send_keepalive)
self.connection.set_send_timeout2(self.pingalives, self.sendPing) self.connection.set_send_timeout2(self.pingalives, self.sendPing)
@ -1545,7 +1545,7 @@ class Connection(CommonConnection, ConnectionHandlers):
def send_custom_status(self, show, msg, jid): def send_custom_status(self, show, msg, jid):
if not show in gajim.SHOW_LIST: if not show in gajim.SHOW_LIST:
return -1 return -1
if not self.connection: if not gajim.account_is_connected(self.name):
return return
sshow = helpers.get_xmpp_show(show) sshow = helpers.get_xmpp_show(show)
if not msg: if not msg:
@ -1593,7 +1593,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.dispatch('STATUS', show) self.dispatch('STATUS', show)
def send_motd(self, jid, subject = '', msg = '', xhtml = None): def send_motd(self, jid, subject = '', msg = '', xhtml = None):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
msg_iq = common.xmpp.Message(to = jid, body = msg, subject = subject, msg_iq = common.xmpp.Message(to = jid, body = msg, subject = subject,
xhtml = xhtml) xhtml = xhtml)
@ -1626,7 +1626,7 @@ class Connection(CommonConnection, ConnectionHandlers):
""" """
Send contacts with RosterX (Xep-0144) Send contacts with RosterX (Xep-0144)
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
if len(contacts) == 1: if len(contacts) == 1:
msg = _('Sent contact: "%s" (%s)') % (contacts[0].get_full_jid(), msg = _('Sent contact: "%s" (%s)') % (contacts[0].get_full_jid(),
@ -1652,14 +1652,14 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(stanza) self.connection.send(stanza)
def ack_subscribed(self, jid): def ack_subscribed(self, jid):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
log.debug('ack\'ing subscription complete for %s' % jid) log.debug('ack\'ing subscription complete for %s' % jid)
p = common.xmpp.Presence(jid, 'subscribe') p = common.xmpp.Presence(jid, 'subscribe')
self.connection.send(p) self.connection.send(p)
def ack_unsubscribed(self, jid): def ack_unsubscribed(self, jid):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
log.debug('ack\'ing unsubscription complete for %s' % jid) log.debug('ack\'ing unsubscription complete for %s' % jid)
p = common.xmpp.Presence(jid, 'unsubscribe') p = common.xmpp.Presence(jid, 'unsubscribe')
@ -1667,7 +1667,7 @@ class Connection(CommonConnection, ConnectionHandlers):
def request_subscription(self, jid, msg='', name='', groups=[], def request_subscription(self, jid, msg='', name='', groups=[],
auto_auth=False, user_nick=''): auto_auth=False, user_nick=''):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
log.debug('subscription request for %s' % jid) log.debug('subscription request for %s' % jid)
if auto_auth: if auto_auth:
@ -1692,21 +1692,21 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(p) self.connection.send(p)
def send_authorization(self, jid): def send_authorization(self, jid):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
p = common.xmpp.Presence(jid, 'subscribed') p = common.xmpp.Presence(jid, 'subscribed')
p = self.add_sha(p) p = self.add_sha(p)
self.connection.send(p) self.connection.send(p)
def refuse_authorization(self, jid): def refuse_authorization(self, jid):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
p = common.xmpp.Presence(jid, 'unsubscribed') p = common.xmpp.Presence(jid, 'unsubscribed')
p = self.add_sha(p) p = self.add_sha(p)
self.connection.send(p) self.connection.send(p)
def unsubscribe(self, jid, remove_auth = True): def unsubscribe(self, jid, remove_auth = True):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
if remove_auth: if remove_auth:
self.connection.getRoster().delItem(jid) self.connection.getRoster().delItem(jid)
@ -1719,7 +1719,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.update_contact(jid, '', []) self.update_contact(jid, '', [])
def unsubscribe_agent(self, agent): def unsubscribe_agent(self, agent):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq('set', common.xmpp.NS_REGISTER, to = agent) iq = common.xmpp.Iq('set', common.xmpp.NS_REGISTER, to = agent)
iq.getTag('query').setTag('remove') iq.getTag('query').setTag('remove')
@ -1774,7 +1774,7 @@ class Connection(CommonConnection, ConnectionHandlers):
groupchat_jid is used when we want to send a request to a real jid and groupchat_jid is used when we want to send a request to a real jid and
act as if the answer comes from the groupchat_jid act as if the answer comes from the groupchat_jid
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
# If we are invisible, do not request # If we are invisible, do not request
if self.connected == gajim.SHOW_LIST.index('invisible'): if self.connected == gajim.SHOW_LIST.index('invisible'):
@ -1797,7 +1797,7 @@ class Connection(CommonConnection, ConnectionHandlers):
groupchat_jid is used when we want to send a request to a real jid and groupchat_jid is used when we want to send a request to a real jid and
act as if the answer comes from the groupchat_jid act as if the answer comes from the groupchat_jid
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
# If we are invisible, do not request # If we are invisible, do not request
if self.connected == gajim.SHOW_LIST.index('invisible'): if self.connected == gajim.SHOW_LIST.index('invisible'):
@ -1819,7 +1819,7 @@ class Connection(CommonConnection, ConnectionHandlers):
""" """
Get Gajim settings as described in XEP 0049 Get Gajim settings as described in XEP 0049
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ='get') iq = common.xmpp.Iq(typ='get')
iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE) iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE)
@ -1827,7 +1827,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq) self.connection.send(iq)
def _request_bookmarks_xml(self): def _request_bookmarks_xml(self):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ='get') iq = common.xmpp.Iq(typ='get')
iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE) iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE)
@ -1845,7 +1845,7 @@ class Connection(CommonConnection, ConnectionHandlers):
storage_type can be set to xml to force request to xml storage storage_type can be set to xml to force request to xml storage
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
if self.pubsub_supported and storage_type != 'xml': if self.pubsub_supported and storage_type != 'xml':
self.send_pb_retrieve('', 'storage:bookmarks') self.send_pb_retrieve('', 'storage:bookmarks')
@ -1862,7 +1862,7 @@ class Connection(CommonConnection, ConnectionHandlers):
storage_type can be set to 'pubsub' or 'xml' so store in only one method storage_type can be set to 'pubsub' or 'xml' so store in only one method
else it will be stored on both else it will be stored on both
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Node(tag='storage', attrs={'xmlns': 'storage:bookmarks'}) iq = common.xmpp.Node(tag='storage', attrs={'xmlns': 'storage:bookmarks'})
for bm in self.bookmarks: for bm in self.bookmarks:
@ -1907,7 +1907,7 @@ class Connection(CommonConnection, ConnectionHandlers):
Get Annonations from storage as described in XEP 0048, and XEP 0145 Get Annonations from storage as described in XEP 0048, and XEP 0145
""" """
self.annotations = {} self.annotations = {}
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ='get') iq = common.xmpp.Iq(typ='get')
iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE) iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE)
@ -1918,7 +1918,7 @@ class Connection(CommonConnection, ConnectionHandlers):
""" """
Set Annonations in private storage as described in XEP 0048, and XEP 0145 Set Annonations in private storage as described in XEP 0048, and XEP 0145
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ='set') iq = common.xmpp.Iq(typ='set')
iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE) iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE)
@ -1935,7 +1935,7 @@ class Connection(CommonConnection, ConnectionHandlers):
""" """
Get metacontacts list from storage as described in XEP 0049 Get metacontacts list from storage as described in XEP 0049
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ='get') iq = common.xmpp.Iq(typ='get')
iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE) iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE)
@ -1949,7 +1949,7 @@ class Connection(CommonConnection, ConnectionHandlers):
""" """
Send meta contacts to the storage namespace Send meta contacts to the storage namespace
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ='set') iq = common.xmpp.Iq(typ='set')
iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE) iq2 = iq.addChild(name='query', namespace=common.xmpp.NS_PRIVATE)
@ -1964,7 +1964,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq) self.connection.send(iq)
def send_agent_status(self, agent, ptype): def send_agent_status(self, agent, ptype):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
show = helpers.get_xmpp_show(gajim.SHOW_LIST[self.connected]) show = helpers.get_xmpp_show(gajim.SHOW_LIST[self.connected])
p = common.xmpp.Presence(to = agent, typ = ptype, show = show) p = common.xmpp.Presence(to = agent, typ = ptype, show = show)
@ -1972,7 +1972,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(p) self.connection.send(p)
def check_unique_room_id_support(self, server, instance): def check_unique_room_id_support(self, server, instance):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ = 'get', to = server) iq = common.xmpp.Iq(typ = 'get', to = server)
iq.setAttr('id', 'unique1') iq.setAttr('id', 'unique1')
@ -1987,7 +1987,7 @@ class Connection(CommonConnection, ConnectionHandlers):
def join_gc(self, nick, room_jid, password, change_nick=False): def join_gc(self, nick, room_jid, password, change_nick=False):
# FIXME: This room JID needs to be normalized; see #1364 # FIXME: This room JID needs to be normalized; see #1364
if not self.connection: if not gajim.account_is_connected(self.name):
return return
show = helpers.get_xmpp_show(gajim.SHOW_LIST[self.connected]) show = helpers.get_xmpp_show(gajim.SHOW_LIST[self.connected])
if show == 'invisible': if show == 'invisible':
@ -2038,7 +2038,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(p) self.connection.send(p)
def send_gc_message(self, jid, msg, xhtml = None): def send_gc_message(self, jid, msg, xhtml = None):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
if not xhtml and gajim.config.get('rst_formatting_outgoing_messages'): if not xhtml and gajim.config.get('rst_formatting_outgoing_messages'):
from common.rst_xhtml_generator import create_xhtml from common.rst_xhtml_generator import create_xhtml
@ -2048,13 +2048,13 @@ class Connection(CommonConnection, ConnectionHandlers):
self.dispatch('MSGSENT', (jid, msg)) self.dispatch('MSGSENT', (jid, msg))
def send_gc_subject(self, jid, subject): def send_gc_subject(self, jid, subject):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
msg_iq = common.xmpp.Message(jid, typ = 'groupchat', subject = subject) msg_iq = common.xmpp.Message(jid, typ = 'groupchat', subject = subject)
self.connection.send(msg_iq) self.connection.send(msg_iq)
def request_gc_config(self, room_jid): def request_gc_config(self, room_jid):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ = 'get', queryNS = common.xmpp.NS_MUC_OWNER, iq = common.xmpp.Iq(typ = 'get', queryNS = common.xmpp.NS_MUC_OWNER,
to = room_jid) to = room_jid)
@ -2062,7 +2062,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq) self.connection.send(iq)
def destroy_gc_room(self, room_jid, reason = '', jid = ''): def destroy_gc_room(self, room_jid, reason = '', jid = ''):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ = 'set', queryNS = common.xmpp.NS_MUC_OWNER, iq = common.xmpp.Iq(typ = 'set', queryNS = common.xmpp.NS_MUC_OWNER,
to = room_jid) to = room_jid)
@ -2109,7 +2109,7 @@ class Connection(CommonConnection, ConnectionHandlers):
""" """
Role is for all the life of the room so it's based on nick Role is for all the life of the room so it's based on nick
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ = 'set', to = room_jid, queryNS =\ iq = common.xmpp.Iq(typ = 'set', to = room_jid, queryNS =\
common.xmpp.NS_MUC_ADMIN) common.xmpp.NS_MUC_ADMIN)
@ -2124,7 +2124,7 @@ class Connection(CommonConnection, ConnectionHandlers):
""" """
Affiliation is for all the life of the room so it's based on jid Affiliation is for all the life of the room so it's based on jid
""" """
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ = 'set', to = room_jid, queryNS =\ iq = common.xmpp.Iq(typ = 'set', to = room_jid, queryNS =\
common.xmpp.NS_MUC_ADMIN) common.xmpp.NS_MUC_ADMIN)
@ -2136,7 +2136,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq) self.connection.send(iq)
def send_gc_affiliation_list(self, room_jid, users_dict): def send_gc_affiliation_list(self, room_jid, users_dict):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ = 'set', to = room_jid, queryNS = \ iq = common.xmpp.Iq(typ = 'set', to = room_jid, queryNS = \
common.xmpp.NS_MUC_ADMIN) common.xmpp.NS_MUC_ADMIN)
@ -2149,7 +2149,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq) self.connection.send(iq)
def get_affiliation_list(self, room_jid, affiliation): def get_affiliation_list(self, room_jid, affiliation):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ = 'get', to = room_jid, queryNS = \ iq = common.xmpp.Iq(typ = 'get', to = room_jid, queryNS = \
common.xmpp.NS_MUC_ADMIN) common.xmpp.NS_MUC_ADMIN)
@ -2158,7 +2158,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq) self.connection.send(iq)
def send_gc_config(self, room_jid, form): def send_gc_config(self, room_jid, form):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
iq = common.xmpp.Iq(typ = 'set', to = room_jid, queryNS =\ iq = common.xmpp.Iq(typ = 'set', to = room_jid, queryNS =\
common.xmpp.NS_MUC_OWNER) common.xmpp.NS_MUC_OWNER)
@ -2168,7 +2168,7 @@ class Connection(CommonConnection, ConnectionHandlers):
self.connection.send(iq) self.connection.send(iq)
def change_password(self, password): def change_password(self, password):
if not self.connection: if not gajim.account_is_connected(self.name):
return return
hostname = gajim.config.get_per('accounts', self.name, 'hostname') hostname = gajim.config.get_per('accounts', self.name, 'hostname')
username = gajim.config.get_per('accounts', self.name, 'name') username = gajim.config.get_per('accounts', self.name, 'name')