// Gefahr bei Manchester-Codierung: inverser Header wird leicht fehl-erkannt // da manchester1 und manchester2 nur um 1 bit verschoben int compare2() { int i, j; i = 0; j = bufpos; while (i < HEADLEN) { if (j < 0) j = HEADLEN-1; if (buf[j] != header[HEADOFS+HEADLEN-1-i]) break; j--; i++; } if (i == HEADLEN) return 1; if (option_auto) { i = 0; j = bufpos; while (i < HEADLEN) { if (j < 0) j = HEADLEN-1; if (buf[j] != cb_inv(header[HEADOFS+HEADLEN-1-i])) break; j--; i++; } if (i == HEADLEN) return -1; } return 0; }
int compare_subheader() { int i, j; i = 0; j = bufpos; while (i < RAWHEADLEN) { if (j < 0) j = RAWHEADLEN-1; if (buf[j] != header0x049DCE[RAWHEADLEN-1-i]) break; j--; i++; } if (i == RAWHEADLEN) return 1; i = 0; j = bufpos; while (i < RAWHEADLEN) { if (j < 0) j = RAWHEADLEN-1; if (buf[j] != cb_inv(header0x049DCE[RAWHEADLEN-1-i])) break; j--; i++; } if (i == RAWHEADLEN) return 3; i = 0; j = bufpos; while (i < RAWHEADLEN) { if (j < 0) j = RAWHEADLEN-1; if (buf[j] != header0xFB6230[RAWHEADLEN-1-i]) break; j--; i++; } if (i == RAWHEADLEN) return 2; i = 0; j = bufpos; while (i < RAWHEADLEN) { if (j < 0) j = RAWHEADLEN-1; if (buf[j] != cb_inv(header0xFB6230[RAWHEADLEN-1-i])) break; j--; i++; } if (i == RAWHEADLEN) return 4; return 0; }