| 3818 header_len = strlen(header); |
3818 header_len = strlen(header); |
| 3819 |
3819 |
| 3820 /* Note: data is _not_ nul-terminated. */ |
3820 /* Note: data is _not_ nul-terminated. */ |
| 3821 if (data_len > header_len) { |
3821 if (data_len > header_len) { |
| 3822 if (header[0] == '\n') |
3822 if (header[0] == '\n') |
| 3823 p = (g_strncasecmp(data, header + 1, header_len - 1) == 0) ? data : NULL; |
3823 p = (g_ascii_strncasecmp(data, header + 1, header_len - 1) == 0) ? data : NULL; |
| 3824 if (!p) |
3824 if (!p) |
| 3825 p = purple_strcasestr(data, header); |
3825 p = purple_strcasestr(data, header); |
| 3826 if (p) |
3826 if (p) |
| 3827 p += header_len; |
3827 p += header_len; |
| 3828 } |
3828 } |
| 3855 |
3855 |
| 3856 static gboolean |
3856 static gboolean |
| 3857 content_is_chunked(const char *data, size_t data_len) |
3857 content_is_chunked(const char *data, size_t data_len) |
| 3858 { |
3858 { |
| 3859 const char *p = find_header_content(data, data_len, "\nTransfer-Encoding: ", sizeof("\nTransfer-Encoding: ") - 1); |
3859 const char *p = find_header_content(data, data_len, "\nTransfer-Encoding: ", sizeof("\nTransfer-Encoding: ") - 1); |
| 3860 if (p && g_strncasecmp(p, "chunked", 7) == 0) |
3860 if (p && g_ascii_strncasecmp(p, "chunked", 7) == 0) |
| 3861 return TRUE; |
3861 return TRUE; |
| 3862 |
3862 |
| 3863 return FALSE; |
3863 return FALSE; |
| 3864 } |
3864 } |
| 3865 |
3865 |