/* * psnmp.cxx * * SNMP base and support classes. * * Portable Windows Library * * Copyright (c) 1993-2002 Equivalence Pty. Ltd. * * The contents of this file are subject to the Mozilla Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. * * The Original Code is Portable Windows Library. * * The Initial Developer of the Original Code is Equivalence Pty. Ltd. * * Contributor(s): ______________________________________. * * $Log: psnmp.cxx,v $ * Revision 1.9 2002/11/06 22:47:25 robertj * Fixed header comment (copyright etc) * * Revision 1.8 1998/11/30 04:52:06 robertj * New directory structure * * Revision 1.7 1998/10/13 14:06:32 robertj * Complete rewrite of memory leak detection code. * * Revision 1.6 1998/09/23 06:22:33 robertj * Added open source copyright license. * * Revision 1.5 1998/01/26 02:50:17 robertj * GNU Support * * Revision 1.4 1997/07/20 08:50:04 craigs * Changed var binding list to use ASN NULL rather than empty string * * Revision 1.3 1997/07/14 11:47:17 robertj * Added "const" to numerous variables. * * Revision 1.2 1996/11/04 03:59:19 robertj * Added selectable read buffer size. * * Revision 1.1 1996/09/14 13:02:18 robertj * Initial revision * * Revision 1.9 1996/05/29 10:44:51 craigs * Latest version wil traps and discovery * * Revision 1.8 1996/05/09 13:23:49 craigs * Added trap functions * * Revision 1.7 1996/04/23 12:12:46 craigs * Changed to use GetErrorText function * * Revision 1.6 1996/04/16 13:20:43 craigs * Final version prior to beta1 release * * Revision 1.5 1996/04/15 09:05:30 craigs * Latest version prior to integration with Robert's changes * * Revision 1.4 1996/04/06 11:38:35 craigs * Lots of changes - working version prior to discover changes * * Revision 1.3 1996/04/01 12:50:44 craigs * CHanged for clean compile under NT * * Revision 1.2 1996/04/01 12:34:06 craigs * Added RCS header * * */ #ifdef __GNUC__ #pragma implementation "psnmp.h" #endif #include #include #define new PNEW static char const * const SnmpErrorCodeTable[] = { "no error", "too big", "no such name", "bad value", "read only", "gen err", "no response", "malformed response", "send failed", "rx buff too small", "tx data too big" }; static char const * const TrapCodeToText[PSNMP::NumTrapTypes] = { "Cold Start", "Warm Start", "Link Down", "Link Up", "Auth Fail", "EGP Loss", "Enterprise" }; /////////////////////////////////////////////////////////////// // // PSNMPVarBindingList // void PSNMPVarBindingList::Append(const PString & objectID) { objectIds.AppendString(objectID); values.Append(new PASNNull()); } void PSNMPVarBindingList::Append(const PString & objectID, PASNObject * obj) { objectIds.AppendString(objectID); values.Append(obj); } void PSNMPVarBindingList::AppendString(const PString & objectID, const PString & str) { Append(objectID, new PASNString(str)); } void PSNMPVarBindingList::RemoveAll() { objectIds.RemoveAll(); values.RemoveAll(); } PINDEX PSNMPVarBindingList::GetSize() const { return objectIds.GetSize(); } PASNObject & PSNMPVarBindingList::operator[](PINDEX idx) const { return values[idx]; } PString PSNMPVarBindingList::GetObjectID(PINDEX idx) const { return objectIds[idx]; } void PSNMPVarBindingList::PrintOn(ostream & strm) const { for (PINDEX i = 0; i < GetSize(); i++) strm << objectIds[i] << " = " << values[i]; } PString PSNMP::GetTrapTypeText(PINDEX code) { PString str; if (code >= NumTrapTypes) return "Unknown"; else return TrapCodeToText[code]; } PString PSNMP::GetErrorText(ErrorType err) { if (err >= NumErrors) return "unknown error"; else return SnmpErrorCodeTable[err]; } // End Of File ///////////////////////////////////////////////////////////////