2009-05-03 5 views
1

私は以前のカーネルバージョンでは構造体 "skbuff"からソースアドレスを取得する必要があるプログラムを持っていました。 "saddr" :struct "skbuff"からsaddressを取得するにはどうすればいいですか?

static __u32 
get_src_ip(const struct sk_buff *skb){ 
    return ntohl(skb->nh.iph->saddr); 
} 

され、次のエラーメッセージ:

error: 'const struct sk_buff' has no member named 'nh' 

は私に右のコードを伝えることができますか?ありがとう!

答えて

2

sk_buffはLinux 2.6.22以降の構造体名を変更しました。代わりにskb->network_headerを使用してください。

まあ、最新のマニュアルを参照するだけで、多くのメンバ変数名を変更する必要があるかもしれません。

+0

便利なマニュアルをどこから入手できますか教えてください。前もって感謝します。 –

+1

パッチセットはhttp://www.linuxhq.com/kernel/v2.6/22/include/linux/skbuff.hにあります。システムにインストールされているskbuff.hをチェックして、正しい構造を見つけてください。 – Francis

+1

最新版はhttp://docs.blackfin.uclinux.org/kernel/generated/networking/re03.htmlから入手できます。 – ismail

関連する問題