142 lines
2.8 KiB
C
142 lines
2.8 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1992-1997 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
string.c
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
Contains string conversion routines.
|
|||
|
|
|||
|
SnmpUtilIdsToA
|
|||
|
SnmpUtilOidToA
|
|||
|
|
|||
|
Environment:
|
|||
|
|
|||
|
User Mode - Win32
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
///////////////////////////////////////////////////////////////////////////////
|
|||
|
// //
|
|||
|
// Include files //
|
|||
|
// //
|
|||
|
///////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|||
|
#include <snmp.h>
|
|||
|
#include <snmputil.h>
|
|||
|
#include <stdio.h>
|
|||
|
|
|||
|
|
|||
|
///////////////////////////////////////////////////////////////////////////////
|
|||
|
// //
|
|||
|
// Private Definitions //
|
|||
|
// //
|
|||
|
///////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|||
|
#define MAX_STRING_LEN 512
|
|||
|
#define MAX_SUBIDS_LEN 16
|
|||
|
|
|||
|
|
|||
|
///////////////////////////////////////////////////////////////////////////////
|
|||
|
// //
|
|||
|
// Public Procedures //
|
|||
|
// //
|
|||
|
///////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|||
|
LPSTR
|
|||
|
SNMP_FUNC_TYPE
|
|||
|
SnmpUtilIdsToA(
|
|||
|
UINT * pIds,
|
|||
|
UINT nIds
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Converts OID subidentifiers into string.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
pIds - pointer to subidentifiers.
|
|||
|
|
|||
|
nIds - number of subidentifiers.
|
|||
|
|
|||
|
Return Values:
|
|||
|
|
|||
|
Returns pointer to string representation.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
UINT i;
|
|||
|
UINT j;
|
|||
|
|
|||
|
static char szBuf[MAX_STRING_LEN+MAX_SUBIDS_LEN];
|
|||
|
static char szId[MAX_SUBIDS_LEN];
|
|||
|
|
|||
|
if ((pIds != NULL) && (nIds != 0)) {
|
|||
|
|
|||
|
j = sprintf(szBuf, "%d", pIds[0]);
|
|||
|
|
|||
|
for (i = 1; (i < nIds) && (j < MAX_STRING_LEN); i++) {
|
|||
|
j += sprintf(szId, ".%d", pIds[i]);
|
|||
|
if (j >= (MAX_STRING_LEN + MAX_SUBIDS_LEN)-3)
|
|||
|
{
|
|||
|
strcat(szBuf, "...");
|
|||
|
break;
|
|||
|
}
|
|||
|
else
|
|||
|
strcat(szBuf, szId);
|
|||
|
}
|
|||
|
|
|||
|
} else {
|
|||
|
|
|||
|
sprintf(szBuf, "<null oid>");
|
|||
|
}
|
|||
|
|
|||
|
return szBuf;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
LPSTR
|
|||
|
SNMP_FUNC_TYPE
|
|||
|
SnmpUtilOidToA(
|
|||
|
AsnObjectIdentifier * pOid
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Converts OID into string.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
pOid - pointer to object identifier.
|
|||
|
|
|||
|
Return Values:
|
|||
|
|
|||
|
Returns pointer to string representation.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
UINT * pIds = NULL;
|
|||
|
UINT nIds = 0;
|
|||
|
|
|||
|
if (pOid != NULL) {
|
|||
|
|
|||
|
pIds = pOid->ids;
|
|||
|
nIds = pOid->idLength;
|
|||
|
}
|
|||
|
|
|||
|
return SnmpUtilIdsToA(pIds, nIds);
|
|||
|
}
|
|||
|
|