MCPcopy Create free account
hub / github.com/OpenVPN/openvpn3-linux / StatusChangeCallback

Method StatusChangeCallback

src/python/openvpn3/SessionManager.py:324–352  ·  view source on GitHub ↗
(self, cbfnc)

Source from the content-addressed store, hash-verified

322 # (integer) StatusMajor, (integer) StatusMinor, (string) message
323 #
324 def StatusChangeCallback(self, cbfnc):
325 if cbfnc is not None and self.__status_callback is not None:
326 # In this case, the program must first disable the
327 # current StatusChangeCallback() before setting a new one.
328 raise RuntimeError('StatusChangeCallback() is already enabled')
329
330 if cbfnc is None and self.__status_callback is None:
331 # This is fine: disabling a callback when there is no
332 # callback is a simple no-op.
333 return
334
335 if cbfnc is not None:
336 # Subscribe to StatusChange signals, which will be processed
337 # by the callback function
338 self.__status_callback = cbfnc
339 self.__dbuscon.add_signal_receiver(cbfnc,
340 signal_name='StatusChange',
341 dbus_interface='net.openvpn.v3.backends',
342 bus_name='net.openvpn.v3.log',
343 path=self.__session_path)
344 else:
345 # Only remove the callback if there actually *is* a callback
346 # currently.
347 if self.__status_callback is not None:
348 self.__dbuscon.remove_signal_receiver(self.__status_callback,
349 'StatusChange')
350 self.__status_callback = None
351
352 self.__set_log_forward()
353
354
355 ##

Callers 2

__del__Method · 0.95

Calls 1

__set_log_forwardMethod · 0.95

Tested by

no test coverage detected