snmpapi: Implement SnmpUtilOctets{Cmp,Cpy,Free,NCmp}.

This commit is contained in:
Hans Leidekker 2007-01-22 11:06:13 +01:00 committed by Alexandre Julliard
parent 1928c7c4c0
commit bca85b3da3
2 changed files with 78 additions and 4 deletions

View File

@ -178,6 +178,80 @@ void WINAPI SnmpUtilAsnAnyFree(AsnAny *any)
asn_any_free(any);
}
/***********************************************************************
* SnmpUtilOctetsCpy (SNMPAPI.@)
*/
INT WINAPI SnmpUtilOctetsCpy(AsnOctetString *dst, AsnOctetString *src)
{
TRACE("(%p, %p)\n", dst, src);
if (!dst) return SNMPAPI_ERROR;
if (!src)
{
dst->dynamic = FALSE;
dst->length = 0;
dst->stream = NULL;
return SNMPAPI_NOERROR;
}
if ((dst->stream = HeapAlloc(GetProcessHeap(), 0, src->length)))
{
unsigned int i;
dst->dynamic = TRUE;
dst->length = src->length;
for (i = 0; i < dst->length; i++) dst->stream[i] = src->stream[i];
return SNMPAPI_NOERROR;
}
return SNMPAPI_ERROR;
}
/***********************************************************************
* SnmpUtilOctetsFree (SNMPAPI.@)
*/
void WINAPI SnmpUtilOctetsFree(AsnOctetString *octets)
{
TRACE("(%p)\n", octets);
if (octets)
{
octets->length = 0;
if (octets->dynamic) HeapFree(GetProcessHeap(), 0, octets->stream);
octets->stream = NULL;
octets->dynamic = FALSE;
}
}
/***********************************************************************
* SnmpUtilOctetsNCmp (SNMPAPI.@)
*/
INT WINAPI SnmpUtilOctetsNCmp(AsnOctetString *octets1, AsnOctetString *octets2, UINT count)
{
INT ret;
unsigned int i;
TRACE("(%p, %p, %d)\n", octets1, octets2, count);
if (!octets1 || !octets2) return 0;
for (i = 0; i < count; i++)
if ((ret = octets1->stream[i] - octets2->stream[i])) return ret;
return 0;
}
/***********************************************************************
* SnmpUtilOctetsCmp (SNMPAPI.@)
*/
INT WINAPI SnmpUtilOctetsCmp(AsnOctetString *octets1, AsnOctetString *octets2)
{
TRACE("(%p, %p)\n", octets1, octets2);
if (octets1->length < octets2->length) return -1;
if (octets1->length > octets2->length) return 1;
return SnmpUtilOctetsNCmp(octets1, octets2, octets1->length);
}
/***********************************************************************
* SnmpUtilOidCpy (SNMPAPI.@)
*/

View File

@ -25,10 +25,10 @@
@ stdcall SnmpUtilMemAlloc(long)
@ stdcall SnmpUtilMemFree(ptr)
@ stdcall SnmpUtilMemReAlloc(ptr long)
@ stub SnmpUtilOctetsCmp
@ stub SnmpUtilOctetsCpy
@ stub SnmpUtilOctetsFree
@ stub SnmpUtilOctetsNCmp
@ stdcall SnmpUtilOctetsCmp(ptr ptr)
@ stdcall SnmpUtilOctetsCpy(ptr ptr)
@ stdcall SnmpUtilOctetsFree(ptr)
@ stdcall SnmpUtilOctetsNCmp(ptr ptr long)
@ stub SnmpUtilOidAppend
@ stub SnmpUtilOidCmp
@ stdcall SnmpUtilOidCpy(ptr ptr)