tcpdump mailing list archives
Re: [clearview-discuss] libdlpi with libpcap
From: sagun shakya <Sagun.Shakya () Sun COM>
Date: Thu, 29 Nov 2007 16:56:48 -0500
Thanks Meem for your comments. I'll look at the comments and revise as needed.
sagun Peter Memishian wrote:
> As there are some clearview team members planning on reviewing the > changes and currently there are other high priority work ongoing, I am > extending the code review timer for another two weeks. I'm setting the > timer to December 13th, 2007. > > The webrev can be found at: > > http://cr.opensolaris.org/~sagun/libpcap/I took a quick look at this. Some offhand observations: * There's too much duplicated code betwen pcap-libdlpi.c and pcap-dlpi.c. For instance, both strioctl() and the pcap_stats() functions are identical, as is the bufmod-related logic (starting with "Loop through packets") in pcap_read(), and the bufmod configuration in pcap_open_live(). I'd move the relevant bits of logic to a new pcap-streams.c file and call those routines from pcap-*dlpi.c. * The linklist structure should be renamed; it's too close to"linked list".* The link chaining logic in list_interfaces() doesn't seem like it would work for more than two links. In particular, seems like you need: if (lwp->lw_list == NULL) { lwp->lw_list = entry; } else { entry->ll_next = lwp->lw_list; lwp->lw_list = entry; } (Also, there's no need to initialize `entry' or cast `lwp'.) * In pcap_read_libdlpi(), I'm not sure what the special error handling after dlpi_recv() is about. It looks to be some holdover from the old pcap-dlpi.c code, but I can't see how it applies to dlpi_recv() since dlpi_recv() only calls getmsg() when poll() has indicated there's data to read, and thus it should never get EINTR or EAGAIN -- and if it did, that is an issue that should be handled inside dlpi_recv() itself. * Seems error handling would be cleaned up quite a bit by introducing a utility function like: static void pcap_libdlpi_err(dlpi_handle_t *dh, const char *func, int err, char *errbuf); * Please check for spelling errors -- e.g. "promsic" on lines 330 and 341. * In pcap_open_live(), `flags' should be removed and DLPI_RAW | DLPI_PASSIVE directly passed into dlpi_open(). Also, the comment above dlpi_open() should be updated to say something more appropriate like "Enable Solaris raw and passive DLPI extensions; see the Solaris dlpi(7P) manpage for details". * Surely line 317 is supposed to set `retv' so that line 320 will print something meaningful? * Would be good to be consistent with either `ret' or `retv' as a variable to house the return value.
- This is the tcpdump-workers list. Visit https://cod.sandelman.ca/ to unsubscribe.
Current thread:
- libdlpi with libpcap sagun shakya (Oct 05)
- Re: libdlpi with libpcap Guy Harris (Oct 08)
- Re: libdlpi with libpcap sagun shakya (Oct 10)
- Message not available
- Re: [clearview-discuss] libdlpi with libpcap sagun shakya (Nov 16)
- Re: [clearview-discuss] libdlpi with libpcap Guy Harris (Nov 17)
- Re: [clearview-discuss] libdlpi with libpcap sagun shakya (Nov 18)
- Re: [clearview-discuss] libdlpi with libpcap Peter Memishian (Nov 18)
- Re: [clearview-discuss] libdlpi with libpcap sagun shakya (Nov 19)
- Re: [clearview-discuss] libdlpi with libpcap sagun shakya (Nov 29)
- Message not available
- Re: [clearview-discuss] libdlpi with libpcap sagun shakya (Nov 30)
- Re: libdlpi with libpcap Guy Harris (Oct 08)