]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Add a strcasecmp for comparing omapi_data_type_t's.
authorTed Lemon <source@isc.org>
Wed, 2 May 2001 17:00:48 +0000 (17:00 +0000)
committerTed Lemon <source@isc.org>
Wed, 2 May 2001 17:00:48 +0000 (17:00 +0000)
includes/omapip/omapip.h
omapip/support.c

index 9824e6cc28782b066fe38bd823d7ad9bc1af6586..ae856fa4dc80f66a4878a45447c1805883aa7cd1 100644 (file)
@@ -521,6 +521,7 @@ isc_result_t omapi_object_update (omapi_object_t *, omapi_object_t *,
 int omapi_data_string_cmp (omapi_data_string_t *, omapi_data_string_t *);
 int omapi_ds_strcmp (omapi_data_string_t *, const char *);
 int omapi_td_strcmp (omapi_typed_data_t *, const char *);
+int omapi_td_strcasecmp (omapi_typed_data_t *, const char *);
 isc_result_t omapi_make_value (omapi_value_t **, omapi_data_string_t *,
                               omapi_typed_data_t *, const char *, int);
 isc_result_t omapi_make_const_value (omapi_value_t **, omapi_data_string_t *,
index 51ef3512dc35cb07234b685657c72ad843ecae3d..40a4fb99e5b4437dd1ac9bcb092ce3fe417a3256 100644 (file)
@@ -621,6 +621,31 @@ int omapi_td_strcmp (omapi_typed_data_t *s1, const char *s2)
        return 0;
 }
 
+int omapi_td_strcasecmp (omapi_typed_data_t *s1, const char *s2)
+{
+       unsigned len, slen;
+       int rv;
+
+       /* If the data type is not compatible, never equal. */
+       if (s1 -> type != omapi_datatype_data &&
+           s1 -> type != omapi_datatype_string)
+               return -1;
+
+       slen = strlen (s2);
+       if (slen > s1 -> u.buffer.len)
+               len = s1 -> u.buffer.len;
+       else
+               len = slen;
+       rv = casecmp (s1 -> u.buffer.value, s2, len);
+       if (rv)
+               return rv;
+       if (s1 -> u.buffer.len > slen)
+               return 1;
+       else if (s1 -> u.buffer.len < slen)
+               return -1;
+       return 0;
+}
+
 isc_result_t omapi_make_value (omapi_value_t **vp,
                               omapi_data_string_t *name,
                               omapi_typed_data_t *value,