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