2009-05-03 2 views
1

구조체 "skbuff"에서 소스 주소를 가져와야하는 프로그램이 있는데 이전 커널 버전에서는 다음 줄을 사용하여 "saddr"을 얻을 수 있습니다 :구조체 "skbuff"에서 saddress를 얻는 방법

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

는 IS 다음과 같은 오류 메시지

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