show error message when we try to register to an unavailable transport. fixes #1574
This commit is contained in:
parent
ac9220116e
commit
7cdb177558
2 changed files with 14 additions and 12 deletions
|
@ -167,14 +167,14 @@ class Connection(ConnectionHandlers):
|
|||
def _event_dispatcher(self, realm, event, data):
|
||||
if realm == common.xmpp.NS_REGISTER:
|
||||
if event == common.xmpp.features_nb.REGISTER_DATA_RECEIVED:
|
||||
# data is (agent, DataFrom, is_form)
|
||||
# data is (agent, DataFrom, is_form, error_msg)
|
||||
if self.new_account_info and \
|
||||
self.new_account_info['hostname'] == data[0]:
|
||||
# it's a new account
|
||||
if not data[1]: # wrong answer
|
||||
self.dispatch('ACC_NOT_OK', (
|
||||
_('Transport %s answered wrongly to register request.') % \
|
||||
data[0]))
|
||||
_('Transport %s answered wrongly to register request: %s')\
|
||||
% (data[0], data[3])))
|
||||
return
|
||||
req = data[1].asDict()
|
||||
req['username'] = self.new_account_info['name']
|
||||
|
@ -200,8 +200,8 @@ class Connection(ConnectionHandlers):
|
|||
return
|
||||
if not data[1]: # wrong answer
|
||||
self.dispatch('ERROR', (_('Invalid answer'),
|
||||
_('Transport %s answered wrongly to register request.') % \
|
||||
data[0]))
|
||||
_('Transport %s answered wrongly to register request: %s') % \
|
||||
(data[0], data[3])))
|
||||
return
|
||||
is_form = data[2]
|
||||
if is_form:
|
||||
|
|
|
@ -117,26 +117,28 @@ def getRegInfo(disp, host, info={}, sync=True):
|
|||
|
||||
def _ReceivedRegInfo(con, resp, agent):
|
||||
iq=Iq('get',NS_REGISTER,to=agent)
|
||||
if not isResultNode(resp):
|
||||
con.Event(NS_REGISTER,REGISTER_DATA_RECEIVED,(agent,None,False))
|
||||
if not isResultNode(resp):
|
||||
error_msg = resp.getErrorMsg()
|
||||
con.Event(NS_REGISTER,REGISTER_DATA_RECEIVED,(agent,None,False,error_msg))
|
||||
return
|
||||
tag=resp.getTag('query',namespace=NS_REGISTER)
|
||||
if not tag:
|
||||
con.Event(NS_REGISTER,REGISTER_DATA_RECEIVED,(agent,None,False))
|
||||
error_msg = resp.getErrorMsg()
|
||||
con.Event(NS_REGISTER,REGISTER_DATA_RECEIVED,(agent,None,False,error_msg))
|
||||
return
|
||||
df=tag.getTag('x',namespace=NS_DATA)
|
||||
if df:
|
||||
con.Event(NS_REGISTER,REGISTER_DATA_RECEIVED,(agent,DataForm(node=df),True))
|
||||
con.Event(NS_REGISTER,REGISTER_DATA_RECEIVED,(agent,DataForm(node=df),True,''))
|
||||
return
|
||||
df=DataForm(typ='form')
|
||||
for i in resp.getQueryPayload():
|
||||
if not isinstance(i, Node):
|
||||
pass
|
||||
elif i.getName()=='instructions':
|
||||
elif i.getName()=='instructions':
|
||||
df.addInstructions(i.getData())
|
||||
else:
|
||||
else:
|
||||
df.setField(i.getName()).setValue(i.getData())
|
||||
con.Event(NS_REGISTER, REGISTER_DATA_RECEIVED, (agent,df,False))
|
||||
con.Event(NS_REGISTER, REGISTER_DATA_RECEIVED, (agent,df,False,''))
|
||||
|
||||
def register(disp, host, info, cb):
|
||||
""" Perform registration on remote server with provided info.
|
||||
|
|
Loading…
Add table
Reference in a new issue