+ silc_buffer_set(&buf, data, data_len);
+
+ if (ignore_header) {
+ SilcBool header = FALSE;
+ for (i = 0; i < data_len; i++) {
+ if (data_len > i + 4 &&
+ data[i ] == '-' && data[i + 1] == '-' &&
+ data[i + 2] == '-' && data[i + 3] == '-') {
+
+ if (data_len > i + 5 && (data[i + 4] == '\r' ||
+ tmp[i + 4] == '\n')) {
+ /* End of line, header */
+ if (data_len > i + 6 && data[i + 4] == '\r' &&
+ data[i + 5] == '\n')
+ i++;
+ i += 5;
+ silc_buffer_pull(&buf, i);
+ header = TRUE;
+ } else if (i > 0 && data_len > i + 5 && data[i + 4] != '-' &&
+ header) {
+ /* Start of line, footer */
+ silc_buffer_push_tail(&buf, silc_buffer_truelen(&buf) - i);
+ break;
+ }
+ }
+ }
+ }
+