(self, host, port)
| 842 | self._player.setPaused(paused) |
| 843 | |
| 844 | def start(self, host, port): |
| 845 | if self._running: |
| 846 | return |
| 847 | self._running = True |
| 848 | if self._playerClass: |
| 849 | perPlayerArguments = utils.getPlayerArgumentsByPathAsArray(self._config['perPlayerArguments'], self._config['playerPath']) |
| 850 | if perPlayerArguments: |
| 851 | self._config['playerArgs'].extend(perPlayerArguments) |
| 852 | filePath = self._config['file'] |
| 853 | if self._config['sharedPlaylistEnabled'] and filePath is not None: |
| 854 | self.delayedLoadPath = filePath |
| 855 | filePath = "" |
| 856 | reactor.callLater(0.1, self._playerClass.run, self, self._config['playerPath'], filePath, self._config['playerArgs'], ) |
| 857 | self._playerClass = None |
| 858 | self.protocolFactory = SyncClientFactory(self) |
| 859 | if '[' in host: |
| 860 | host = host.strip('[]') |
| 861 | port = int(port) |
| 862 | self._endpoint = HostnameEndpoint(reactor, host, port) |
| 863 | try: |
| 864 | certs = pem.parse_file(SSL_CERT_FILE) |
| 865 | trustRoot = trustRootFromCertificates([Certificate.loadPEM(str(cert)) for cert in certs]) |
| 866 | self.protocolFactory.options = optionsForClientTLS(hostname=host, trustRoot=trustRoot) |
| 867 | self._clientSupportsTLS = True |
| 868 | except Exception as e: |
| 869 | self.ui.showDebugMessage(str(e)) |
| 870 | self.protocolFactory.options = None |
| 871 | self._clientSupportsTLS = False |
| 872 | |
| 873 | def retry(retries): |
| 874 | # Use shared state reset method |
| 875 | self._performRetryStateReset() |
| 876 | if retries == 0: |
| 877 | self.onDisconnect() |
| 878 | if retries > constants.RECONNECT_RETRIES: |
| 879 | reactor.callLater(0.1, self.ui.showErrorMessage, getMessage("connection-failed-notification"), |
| 880 | True) |
| 881 | reactor.callLater(0.1, self.stop, True) |
| 882 | return None |
| 883 | |
| 884 | return(0.1 * (2 ** min(retries, 5))) |
| 885 | |
| 886 | self._reconnectingService = ClientService(self._endpoint, self.protocolFactory, retryPolicy=retry) |
| 887 | try: |
| 888 | waitForConnection = self._reconnectingService.whenConnected(failAfterFailures=1) |
| 889 | except TypeError: |
| 890 | waitForConnection = self._reconnectingService.whenConnected() |
| 891 | self._reconnectingService.startService() |
| 892 | |
| 893 | def connectedNow(f): |
| 894 | hostIP = connectionHandle.result.transport.addr[0] |
| 895 | self.ui.showMessage(getMessage("reachout-successful-notification").format(host, hostIP)) |
| 896 | return |
| 897 | |
| 898 | def failed(f): |
| 899 | reactor.callLater(0.1, self.ui.showErrorMessage, getMessage("connection-failed-notification"), True) |
| 900 | reactor.callLater(0.1, self.stop, True) |
| 901 |
no test coverage detected