| 62 | } |
| 63 | |
| 64 | size_t h2_util_hex_dump(char *buffer, size_t maxlen, |
| 65 | const char *data, size_t datalen) |
| 66 | { |
| 67 | size_t offset = 0; |
| 68 | size_t maxoffset = (maxlen-4); |
| 69 | size_t i; |
| 70 | for (i = 0; i < datalen && offset < maxoffset; ++i) { |
| 71 | const char *sep = (i && i % 16 == 0)? "\n" : " "; |
| 72 | int n = apr_snprintf(buffer+offset, maxoffset-offset, |
| 73 | "%2x%s", ((unsigned int)data[i]&0xff), sep); |
| 74 | offset += n; |
| 75 | } |
| 76 | strcpy(buffer+offset, (i<datalen)? "..." : ""); |
| 77 | return strlen(buffer); |
| 78 | } |
| 79 | |
| 80 | void h2_util_camel_case_header(char *s, size_t len) |
| 81 | { |