| ... |
... |
@@ -438,7 +438,7 @@ class Client(Observable): |
|
438
|
438
|
|
|
439
|
439
|
def _on_stream_end(self, _dispatcher, _signal_name, error):
|
|
440
|
440
|
if not self.has_error:
|
|
441
|
|
- self._set_error(StreamError.STREAM, 'stream-end', error)
|
|
|
441
|
+ self._set_error(StreamError.STREAM, error or 'stream-end')
|
|
442
|
442
|
|
|
443
|
443
|
self._con.shutdown_input()
|
|
444
|
444
|
if not self._stream_close_initiated:
|
| ... |
... |
@@ -638,9 +638,6 @@ class Client(Observable): |
|
638
|
638
|
elif self.state == StreamState.WAIT_FOR_BIND:
|
|
639
|
639
|
self._on_bind(stanza)
|
|
640
|
640
|
|
|
641
|
|
- elif self.state == StreamState.BIND_FAILED:
|
|
642
|
|
- self._disconnect_with_error(StreamError.BIND, 'bind-failed')
|
|
643
|
|
-
|
|
644
|
641
|
elif self.state == StreamState.BIND_SUCCESSFUL:
|
|
645
|
642
|
self._smacks.send_enable()
|
|
646
|
643
|
self._dispatcher.set_dispatch_callback(None)
|
| ... |
... |
@@ -650,9 +647,6 @@ class Client(Observable): |
|
650
|
647
|
elif self.state == StreamState.WAIT_FOR_SESSION:
|
|
651
|
648
|
self._on_session(stanza)
|
|
652
|
649
|
|
|
653
|
|
- elif self.state == StreamState.SESSION_FAILED:
|
|
654
|
|
- self._disconnect_with_error(StreamError.SESSION, 'session-failed')
|
|
655
|
|
-
|
|
656
|
650
|
elif self.state == StreamState.WAIT_FOR_RESUMED:
|
|
657
|
651
|
self._smacks.delegate(stanza)
|
|
658
|
652
|
|
| ... |
... |
@@ -735,12 +729,9 @@ class Client(Observable): |
|
735
|
729
|
|
|
736
|
730
|
def _on_bind(self, stanza):
|
|
737
|
731
|
if not isResultNode(stanza):
|
|
738
|
|
- self._log.error('Binding failed: %s.', stanza.getTag('error'))
|
|
739
|
|
- if stanza.getError() == 'conflict' and self.resource is not None:
|
|
740
|
|
- self._log.info('Try to request server generated resource')
|
|
741
|
|
- self._start_bind()
|
|
742
|
|
- return
|
|
743
|
|
- self.set_state(StreamState.BIND_FAILED)
|
|
|
732
|
+ self._disconnect_with_error(StreamError.BIND,
|
|
|
733
|
+ stanza.getError(),
|
|
|
734
|
+ stanza.getErrorMsg())
|
|
744
|
735
|
return
|
|
745
|
736
|
|
|
746
|
737
|
jid = stanza.getTag('bind').getTagData('jid')
|
| ... |
... |
@@ -762,7 +753,9 @@ class Client(Observable): |
|
762
|
753
|
self.set_state(StreamState.BIND_SUCCESSFUL)
|
|
763
|
754
|
else:
|
|
764
|
755
|
self._log.error('Session open failed')
|
|
765
|
|
- self.set_state(StreamState.SESSION_FAILED)
|
|
|
756
|
+ self._disconnect_with_error(StreamError.SESSION,
|
|
|
757
|
+ stanza.getError(),
|
|
|
758
|
+ stanza.getErrorMsg())
|
|
766
|
759
|
|
|
767
|
760
|
def _ping(self):
|
|
768
|
761
|
iq = Iq('get', to=self._jid.getBare())
|