From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yuxuan Shui Subject: [nftables PATCH] src: proto: fix byteorder for ip headers. Date: Wed, 4 Jun 2014 20:46:29 +0800 Message-ID: <1401885989-9162-1-git-send-email-yshuiv7@gmail.com> Cc: Yuxuan Shui To: netfilter-devel@vger.kernel.org Return-path: Received: from mail-pd0-f175.google.com ([209.85.192.175]:46325 "EHLO mail-pd0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752619AbaFDMql (ORCPT ); Wed, 4 Jun 2014 08:46:41 -0400 Received: by mail-pd0-f175.google.com with SMTP id z10so6020709pdj.6 for ; Wed, 04 Jun 2014 05:46:41 -0700 (PDT) Sender: netfilter-devel-owner@vger.kernel.org List-ID: Add a new datatype for ip headers which specify the byteorder, this fixes bug 918. Signed-off-by: Yuxuan Shui --- src/proto.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/proto.c b/src/proto.c index 0a37a65..f1556db 100644 --- a/src/proto.c +++ b/src/proto.c @@ -184,13 +184,21 @@ void proto_ctx_update(struct proto_ctx *ctx, enum proto_bases base, proto_ctx_debug(ctx, base); } +const struct datatype net_integer = { + .type = TYPE_INTEGER, + .byteorder = BYTEORDER_BIG_ENDIAN, + .name = "net_integer", + .desc = "network integer", + .basetype = &integer_type, +}; + #define HDR_TEMPLATE(__name, __dtype, __type, __member) \ PROTO_HDR_TEMPLATE(__name, __dtype, \ offsetof(__type, __member) * 8, \ field_sizeof(__type, __member) * 8) #define HDR_FIELD(__name, __struct, __member) \ - HDR_TEMPLATE(__name, &integer_type, __struct, __member) + HDR_TEMPLATE(__name, &net_integer, __struct, __member) #define HDR_BITFIELD(__name, __dtype, __offset, __len) \ PROTO_HDR_TEMPLATE(__name, __dtype, __offset, __len) #define HDR_TYPE(__name, __dtype, __struct, __member) \ -- 2.0.0