END_TEST START_TEST (_strncasestrn) { char *p; char *string = "This is a testing string"; int stringlen = strlen(string); p = strncasestrn (string, stringlen, "iS A", 4); ch_assert (p != NULL); p = strncasestrn (string, stringlen, "tHIS IS A TESTING STRiNG", stringlen); ch_assert (p != NULL); ch_assert (p == string); p = strncasestrn (string, stringlen, string, stringlen); ch_assert (p != NULL); ch_assert (p == string); p = strncasestrn (string, stringlen, "TeStInG", 7); ch_assert (p != NULL); p = strncasestrn (string, stringlen, "is a trick that I'm playing", 4); ch_assert (p != NULL); p = strncasestrn (string, stringlen, "foobar", 6); ch_assert (p == NULL); }
static ret_t remove_header (cherokee_buffer_t *buffer, cherokee_buffer_t *header) { char *p, *s; p = strncasestrn (buffer->buf, buffer->len, header->buf, header->len); if (p == NULL) return ret_not_found; if (p[header->len] != ':') return ret_not_found; s = strchr (p, '\r'); if (s == NULL) return ret_eof; cherokee_buffer_remove_chunk (buffer, p - buffer->buf, s-p +2); return ret_ok; }