summaryrefslogtreecommitdiff
path: root/omapip/support.c
diff options
context:
space:
mode:
authorTed Lemon <source@isc.org>2001-05-02 17:00:48 +0000
committerTed Lemon <source@isc.org>2001-05-02 17:00:48 +0000
commit085b94452bfc6544eb98da2a6d90084bb2b79fd6 (patch)
treedb10169902a8155bd5f5cabb67d119855c094612 /omapip/support.c
parent5a4163c60b7f0eefc4c06f9cfa1b19cd8bafdab4 (diff)
downloadisc-dhcp-085b94452bfc6544eb98da2a6d90084bb2b79fd6.tar.gz
Add a strcasecmp for comparing omapi_data_type_t's.
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,