pcap 사용시 compile 에러발생됩니다...

zhangyuan의 이미지

int main(int argc, char *argv[])
{
    struct  bpf_program fcode;
    pcap_handler printer;
    char    ebuf[PCAP_ERRBUF_SIZE];
    int     c, i, snaplen = 1514, size, packetcnt;
    bpf_u_int32 myself, localnet, netmask;
    unsigned char   *pcap_userdata;
    struct in_addr net_addr;
 
    filter_rule = argv[1];          /* example : "src host xxx.xxx.xxx.xxx and tcp port 80" */
 
    signal(SIGINT,sig_int);
 
    opterr = 0;
 
    if(argc-1 < 1) {
        usage();
        exit(1);
    }
 
    if (device == NULL ) {
        if ( (device = pcap_lookupdev(ebuf) ) == NULL) {
            perror(ebuf);
            exit(-1);
        }
    }
    fprintf(stdout, "device = %s\n", device);
 
    pd = pcap_open_live(device, snaplen, PROMISCUOUS, 1000, ebuf);
    if(pd == NULL) {
        perror(ebuf);
        exit(-1);
    }
 
    fprintf(stdout, "DEBUG00.\n");
#if 0
    i = pcap_snapshot(pd);
    if(snaplen < i) {
        perror(ebuf);
        exit(-1);
    }
#endif
 
    fprintf(stdout, "DEBUG01.\n");
    if(pcap_lookupnet(device, &localnet, &netmask, ebuf) < 0) {
        perror(ebuf);
        exit(-1);
    }
 
    setuid(getuid());
 
    fprintf(stdout, "DEBUG02.\n");
    net_addr.s_addr = localnet;
    fprintf(stdout, "localnet:%s\n", inet_ntoa(net_addr));
    net_addr.s_addr = netmask;
    fprintf(stdout, "netmask: %s.\n", inet_ntoa(net_addr));
 
    if(pcap_compile(pd, &fcode, filter_rule, 0, localnet) < 0) {
        perror(ebuf);
        exit(-1);
    }
 
    ...
    ...
}

===============
위와 같이 구성을 하고 실행을 해보면,
device = hme0
DEBUG00.
DEBUG01.
DEBUG02.
localnet:10.10.0.0
netmask: 255.255.0.0.
No such file or directory

이런 결과가 얻어지는데... 뭐가 문제인지 모르겠네요...
device는 제대로 인식한것 같은데... 무슨 파일에 불만이 있는것인지...
아시는분 답변 부탁드립니다..

환경은
SunOS proto 5.8 Generic_108528-17 sun4u sparc SUNW,Ultra-80