summaryrefslogtreecommitdiff
path: root/omapip/support.c
diff options
context:
space:
mode:
Diffstat (limited to 'omapip/support.c')
-rw-r--r--omapip/support.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/omapip/support.c b/omapip/support.c
index 51ef3512..40a4fb99 100644
--- a/omapip/support.c
+++ b/omapip/support.c
@@ -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,