From 8808689fe340bec6e90ab13dd502292b0579cf1f Mon Sep 17 00:00:00 2001 From: Michael Krelin Date: Sat, 08 Dec 2012 21:19:17 +0000 Subject: initial osx port Signed-off-by: Michael Krelin --- (limited to 'shared-code/SNMPExtDll.h') diff --git a/shared-code/SNMPExtDll.h b/shared-code/SNMPExtDll.h deleted file mode 100644 index 14c920d..0000000 --- a/shared-code/SNMPExtDll.h +++ b/dev/null @@ -1,252 +0,0 @@ -#ifndef __SNMPEXTDLL_H -#define __SNMPEXTDLL_H - -#include "snmpeer.h" - -#include - -namespace Klever { - -class CSNMPExtDLL : public CSNMPeer { -public: - HINSTANCE m_hInstance; - HANDLE m_hEvent; - AsnObjectIdentifier m_OID; - BOOL (SNMP_FUNC_TYPE *m_extInit)(DWORD dw,HANDLE h,AsnObjectIdentifier* aoid); - BOOL (SNMP_FUNC_TYPE *m_extQuery)(BYTE b,RFC1157VarBindList* rvbl,AsnInteger* ai1,AsnInteger* ai2); - BOOL (SNMP_FUNC_TYPE *m_extTrap)(AsnObjectIdentifier*,AsnNetworkAddress*,AsnInteger*,AsnInteger*,AsnTimeticks*,RFC1157VarBindList*); - - HINSTANCE m_hSNMPAPI; - void (SNMP_FUNC_TYPE *m_snmpOIDFree)(AsnObjectIdentifier*); - LPVOID (SNMP_FUNC_TYPE *m_snmpAlloc)(UINT); - void (SNMP_FUNC_TYPE *m_snmpFree)(LPVOID); - void (SNMP_FUNC_TYPE *m_snmpVBLFree)(RFC1157VarBindList* vbl); - void InitSNMP() { - m_hSNMPAPI = ::LoadLibraryEx("SNMPAPI",NULL,0); - if(!m_hSNMPAPI) - return; - *(FARPROC*)&m_snmpOIDFree = ::GetProcAddress(m_hSNMPAPI,"SnmpUtilOidFree"); - *(FARPROC*)&m_snmpAlloc = ::GetProcAddress(m_hSNMPAPI,"SnmpUtilMemAlloc"); - *(FARPROC*)&m_snmpFree = ::GetProcAddress(m_hSNMPAPI,"SnmpUtilMemFree"); - *(FARPROC*)&m_snmpVBLFree = ::GetProcAddress(m_hSNMPAPI,"SnmpUtilVarBindListFree"); - if( - (m_snmpFree && !m_snmpAlloc) || - (m_snmpAlloc && !m_snmpFree) - ) - DeinitSNMP(); - } - void DeinitSNMP() { - if(!m_hSNMPAPI) - return; - ::FreeLibrary(m_hSNMPAPI); - m_hSNMPAPI=NULL; - } - void SNMPFreeOID(AsnObjectIdentifier* oid) { - if(m_hSNMPAPI && m_snmpOIDFree) - (*m_snmpOIDFree)(oid); - else - ::GlobalFree((HGLOBAL)oid->ids); - } - LPVOID SNMPAlloc(UINT size) { - if(m_hSNMPAPI && m_snmpAlloc) - return (*m_snmpAlloc)(size); - else - return ::GlobalAlloc(GMEM_FIXED,size); - } - void SNMPFree(LPVOID addr) { - if(m_hSNMPAPI && m_snmpFree) - (*m_snmpFree)(addr); - else - :: GlobalFree((HGLOBAL)addr); - } - void SNMPFreeVBL(RFC1157VarBindList& vbl) { - if(m_hSNMPAPI && m_snmpVBLFree) - (*m_snmpVBLFree)(&vbl); - else{ - for(UINT tmp=0;tmpsizeof(i)) - return FALSE; - i.s_addr=0; - memmove(&i,ip.stream,ip.length); - ou.Set(i); - return TRUE; - } - - - CSNMPExtDLL(LPCTSTR dllName) : m_hInstance(NULL) { InitSNMP(); Init(dllName); } - ~CSNMPExtDLL() { Deinit(); DeinitSNMP(); } - - BOOL Init(LPCTSTR dllName) { - Deinit(); - m_hInstance = ::LoadLibraryEx(dllName,NULL,0); - if(!m_hInstance) - return FALSE; - *(FARPROC*)&m_extInit = ::GetProcAddress(m_hInstance,"SnmpExtensionInit"); - *(FARPROC*)&m_extQuery = ::GetProcAddress(m_hInstance,"SnmpExtensionQuery"); - *(FARPROC*)&m_extTrap = ::GetProcAddress(m_hInstance,"SnmpExtensionTrap"); - if(!(m_extInit && m_extQuery && m_extTrap)){ - Deinit(); - return FALSE; - } - if(!((*m_extInit)(GetCurrentTime(),&m_hEvent,&m_OID))){ - Deinit(); - return FALSE; - } - return TRUE; - } - void Deinit() { - if(!m_hInstance) - return; - ::FreeLibrary(m_hInstance); - } - virtual BOOL Request(BYTE type,CSNMPVarBindList& in,CSNMPVarBindList& ou) { - RFC1157VarBindList vbl; - SNMPBuildVBL(vbl,in); - AsnInteger errorStatus, errorIndex; - (*m_extQuery)(type,&vbl,&errorStatus,&errorIndex); - ou.RemoveAll(); - SNMPParseVBL(vbl,ou); - SNMPFreeVBL(vbl); - return TRUE; - } -}; - -}; - -#endif // __SNMPEXTDLL_H -- cgit v0.9.0.2