--- a/connectors/PYRO/PSK_Adapter.py Wed Mar 13 14:27:24 2019 +0300
+++ b/connectors/PYRO/PSK_Adapter.py Wed Mar 13 15:43:45 2019 +0300
@@ -70,9 +70,6 @@
return _getProtocolAdapter(protocol)
-Pyro.protocol.getProtocolAdapter = getProtocolAdapter
_processStringURI = Pyro.core.processStringURI
@@ -91,4 +88,13 @@
return _processStringURI(URI)
-Pyro.core.processStringURI = processStringURI
+ Add PyroAdapter to the list of available in + Pyro adapters and handle new supported protocols + This function should be called after + reimport of Pyro module to enable PYROS:// again. + Pyro.protocol.getProtocolAdapter = getProtocolAdapter + Pyro.core.processStringURI = processStringURI --- a/connectors/PYRO/__init__.py Wed Mar 13 14:27:24 2019 +0300
+++ b/connectors/PYRO/__init__.py Wed Mar 13 15:43:45 2019 +0300
@@ -37,13 +37,19 @@
from Pyro.errors import PyroError
import PSKManagement as PSK
+import connectors.PYRO.PSK_Adapter from runtime import PlcStatus
-# this module attribute contains a list of DNS-SD (Zeroconf) service types
-# supported by this connector confnode.
-# for connectors that do not support DNS-SD, this attribute can be omitted
-# or set to an empty list.
+def switch_pyro_adapter(use_ssl): + Reloads Pyro module with new settings. + This is workaround for Pyro, because it doesn't work with SSL wrapper. + # Pyro.config.PYRO_BROKEN_MSGWAITALL = use_ssl + connectors.PYRO.PSK_Adapter.setupPSKAdapter() def PYRO_connector_factory(uri, confnodesroot):
@@ -53,8 +59,9 @@
confnodesroot.logger.write(_("PYRO connecting to URI : %s\n") % uri)
scheme, location = uri.split("://")
- import connectors.PYRO.PSK_Adapter # pylint: disable=wrong-import-order,unused-import,wrong-import-position
+ use_ssl = scheme == "PYROS" + switch_pyro_adapter(use_ssl) schemename = "PYROLOCPSK"
url, ID = location.split('#') # TODO fix exception when # not found