コード例 #1
0
ファイル: tcp-fingerprint.c プロジェクト: aNeutrino/lanmap2
static void test(void)
{
  unsigned i;
  for (i = 0; i < sizeof TestCase / sizeof TestCase[0]; i++) {
    char p0fbuf[256];
    parse_frame pf = { PROT_IPv4, T->iplen, T->ip, NULL };
    parse_frame pf2 = { PROT_TCP, T->tcplen, T->tcp, NULL };
    /* print */
    printf("#%2u:\n", i);
    /* parse ip and tcp in order */
    ipv4_parse(T->ip, T->iplen, &pf, NULL);
    tcp_parse(T->tcp, T->tcplen, &pf2, NULL);
    /* generate fingerprint */
    p0f2str(p0fbuf, sizeof p0fbuf, (tcp*)T->tcp, T->tcplen,
                                   (ipv4*)T->ip, T->iplen, 0);
    if (0 == strcmp(p0fbuf, T->expected_p0f)) {
      printf("OK\n");
    } else {
      printf("%s p0f:   %s\nexpected: %s)\n", "!!", p0fbuf, T->expected_p0f);
      printf("  IP len=%u ", T->iplen);
      dump_chars(T->ip, T->iplen, stdout);
      fputc('\n', stdout);
      printf("  TCP len=%u ", T->tcplen);
      dump_chars(T->tcp, T->tcplen, stdout);
      fputc('\n', stdout);
      ipv4_dump(&pf, 0, stdout);
      tcp_dump(&pf2, 0, stdout);
    }
    T++;
  }
}
コード例 #2
0
void value_dump(const value_t * value, fieldtype_t type) {
    switch (type) {
#ifdef USE_IPV4
        case TYPE_IPV4:
            ipv4_dump(&value->ipv4);
            break;
#endif
#ifdef USE_IPV6
        case TYPE_IPV6:
            ipv6_dump(&value->ipv6);
            break;
#endif
#ifdef USE_BITS
        case TYPE_BITS:
            fprintf(stderr, "value_dump: type not supported (%d) (%s), use value_dump_hex instead\n", type, field_type_to_string(type));
            break;
#endif
        case TYPE_UINT8:
            printf("%hhu", value->int8);
            break;
        case TYPE_UINT16:
            printf("%hu", value->int16);
            break;
        case TYPE_UINT32:
            printf("%u", value->int32);
            break;
        case TYPE_UINT64:
            printf("%llu", (unsigned long long) value->int64);
            break;
        case TYPE_DOUBLE:
            printf("%lf", value->dbl);
            break;
        case TYPE_UINTMAX:
            printf("%ju", value->intmax);
            break;
        case TYPE_STRING:
            printf("%s", value->string);
            break;
        case TYPE_GENERATOR:
            generator_dump(value->generator);
            break;
        case TYPE_UINT128:
        default:
            fprintf(stderr, "value_dump: type not supported (%d) (%s)\n", type, field_type_to_string(type));
            break;
    }
}