Hans Leidekker : snmpapi: Implement SnmpUtilOctets{Cmp, Cpy, Free,
NCmp}.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Jan 22 07:05:32 CST 2007
Module: wine
Branch: master
Commit: bca85b3da397366fe05cb3d148c1bcc496664235
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bca85b3da397366fe05cb3d148c1bcc496664235
Author: Hans Leidekker <hans at it.vu.nl>
Date: Mon Jan 22 11:06:13 2007 +0100
snmpapi: Implement SnmpUtilOctets{Cmp,Cpy,Free,NCmp}.
---
dlls/snmpapi/main.c | 74 +++++++++++++++++++++++++++++++++++++++++++++
dlls/snmpapi/snmpapi.spec | 8 ++--
2 files changed, 78 insertions(+), 4 deletions(-)
diff --git a/dlls/snmpapi/main.c b/dlls/snmpapi/main.c
index 163477b..8031162 100644
--- a/dlls/snmpapi/main.c
+++ b/dlls/snmpapi/main.c
@@ -179,6 +179,80 @@ void WINAPI SnmpUtilAsnAnyFree(AsnAny *a
}
/***********************************************************************
+ * 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.@)
*/
INT WINAPI SnmpUtilOidCpy(AsnObjectIdentifier *dst, AsnObjectIdentifier *src)
diff --git a/dlls/snmpapi/snmpapi.spec b/dlls/snmpapi/snmpapi.spec
index 006c8b3..cd6dcd0 100644
--- a/dlls/snmpapi/snmpapi.spec
+++ b/dlls/snmpapi/snmpapi.spec
@@ -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)
More information about the wine-cvs
mailing list