summaryrefslogtreecommitdiff
path: root/pysnmp/entity/rfc3413/oneliner/sync/compat/ntforg.py
diff options
context:
space:
mode:
Diffstat (limited to 'pysnmp/entity/rfc3413/oneliner/sync/compat/ntforg.py')
-rw-r--r--pysnmp/entity/rfc3413/oneliner/sync/compat/ntforg.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/pysnmp/entity/rfc3413/oneliner/sync/compat/ntforg.py b/pysnmp/entity/rfc3413/oneliner/sync/compat/ntforg.py
new file mode 100644
index 0000000..7a9291c
--- /dev/null
+++ b/pysnmp/entity/rfc3413/oneliner/sync/compat/ntforg.py
@@ -0,0 +1,48 @@
+from pysnmp.entity.rfc3413.oneliner.ntforg import *
+
+if version_info[:2] < (2, 6):
+ def next(iter):
+ return iter.next()
+
+#
+# Synchronous one-liner SNMP Notification Originator application
+#
+
+def sendNotification(snmpEngine, authData, transportTarget, contextData,
+ notifyType, varBinds, **options):
+
+ def cbFun(snmpEngine, sendRequestHandle,
+ errorIndication, errorStatus, errorIndex,
+ varBinds, cbCtx):
+ cbCtx['errorIndication'] = errorIndication
+ cbCtx['errorStatus'] = errorStatus
+ cbCtx['errorIndex'] = errorIndex
+ cbCtx['varBinds'] = varBinds
+
+ cbCtx = {}
+
+ ntfOrg = AsyncNotificationOriginator()
+
+ if varBinds:
+ ntfOrg.sendNotification(
+ snmpEngine,
+ authData,
+ transportTarget,
+ contextData,
+ notifyType,
+ varBinds,
+ (cbFun, cbCtx),
+ options.get('lookupMib', True)
+ )
+
+ snmpEngine.transportDispatcher.runDispatcher()
+
+ errorIndication = cbCtx.get('errorIndication')
+ errorStatus = cbCtx.get('errorStatus')
+ errorIndex = cbCtx.get('errorIndex')
+ varBinds = cbCtx.get('varBinds', [])
+ else:
+ errorIndication = errorStatus = errorIndex = None
+ varBinds = []
+
+ yield errorIndication, errorStatus, errorIndex, varBinds