www.pudn.com > snmp.rar > string.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  
#include  
#include  
 
 
/////////////////////////////////////////////////////////////////////////////// 
//                                                                           // 
// 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, ""); 
    } 
 
    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);  
}