0

HTTP ペイロードを観察しようとしていますが、TCP ヘッダー以外には何もないようです。

コードスニペット:

    struct tcphdr *tcph = data + eth_offset + sizeof(*iph);
    if (tcph + 1 > data_end) {
        return XDP_PASS;
    }

    tcp_header_length = tcph->doff << 2;

    unsigned char *payload = (unsigned char *)tcph + tcp_header_length;
    if ((void *)payload + 1 > data_end) {
        return XDP_DROP; <-- is always true
    }

何らかの理由でデータがないように見えますが、これは真実ではありません。インターフェイスからコードを切り離し、HTTP リクエストを送信しても問題ありません (http データを含む)

どんなヒントでも大歓迎です。

ありがとう!

4

0 に答える 0