diff --git a/src/common/connection.py b/src/common/connection.py index 4dc864ddb2d08d60796ca2631845dda80633c392..73a3005b310448bd888fc73f3a122beb3923d9a1 100644 --- a/src/common/connection.py +++ b/src/common/connection.py @@ -167,14 +167,14 @@ def _connection_lost(self): 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 @@ def _on_register_result(result): 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: diff --git a/src/common/xmpp/features_nb.py b/src/common/xmpp/features_nb.py index aa51898702394223a1cf45925dc50114d9f3b3d4..0b754e1ef085c3470ce6a4b9d5acd57b23709dd2 100644 --- a/src/common/xmpp/features_nb.py +++ b/src/common/xmpp/features_nb.py @@ -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.