[Winpcap-users] pcap_fopen_offline not exported?
Fish
fish at infidels.org
Thu Jul 24 16:36:00 GMT 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Okraszewski,Marcin wrote:
[...]
> Maybe Winpcap could export an alternative function which
> would work on file descriptor?
No. Use Win32 HANDLEs instead, not CRT file descriptors.
> This shouldn't have the CRT compatibility issues. It
> could look like this:
Actually it will. :(
> pcap_t* pcap_fdopen_offline(int fd, char *errorbuf) {
> FILE *file = _fdopen(fd, "rb");
> if ( file == NULL ) {
> strerror_s(errorbuf, PCAP_ERRBUF_SIZE, errno);
> return NULL;
> }
> return pcap_fopen_offline(file, errorbuf);
> }
>
> Then also it could override pcap_fopen_offline calls with a macro:
>
> #define pcap_fopen_offline(file, errorbuf) \
> pcap_fdopen_offline(_fileno(file), errorbuf)
>
> This together would make it compatible with libpcap.
Actually it won't, but you're on the right track.
Try this instead:
pcap_t* pcap_openw32_offline(HANDLE h, char *errorbuf) {
int fd = _open_osfhandle(h);
FILE *file = _fdopen(fd, "rb");
if ( file == NULL ) {
strerror_s(errorbuf, PCAP_ERRBUF_SIZE, errno);
return NULL;
}
return pcap_fopen_offline(file, errorbuf);
}
(p.s. the're also "_get_osfhandle" too in case you need it)
- --
"Fish" (David B. Trout) - fish(at)infidels.org
Fight Spam! Join CAUCE! <http://www.cauce.org/>
(Any HTML email received will be deleted unread)
PGP key fingerprints:
RSA: 6B37 7110 7201 9917 9B0D 99E3 55DB 5D58 FADE 4A52
DH/DSS: 9F9B BAB0 BA7F C458 1A89 FE26 48F5 D7F4 C4EE 3E2A
-----BEGIN PGP SIGNATURE-----
Version: PGP 8.1
iQA/AwUBSIivb0j11/TE7j4qEQKxGwCg9vkWlLjLy7+uAZc4I+9qCq5DCEQAoPBf
bdpgKPjKLjBYI09Id3hyr4cN
=EzOh
-----END PGP SIGNATURE-----
More information about the Winpcap-users
mailing list