]> The Tcpdump Group git mirrors - libpcap/blobdiff - pcap.c
Add pcap_handle(), and deprecate pcap_fileno(), on Windows.
[libpcap] / pcap.c
diff --git a/pcap.c b/pcap.c
index 38aaf379bfaf35c130c70f55b54a5da481c0d5e0..7b89c05126f20ff1be59817ace8967c68cff8182 100644 (file)
--- a/pcap.c
+++ b/pcap.c
@@ -3464,18 +3464,36 @@ pcap_file(pcap_t *p)
        return (p->rfile);
 }
 
+#ifdef _WIN32
+HANDLE
+pcap_handle(pcap_t *p)
+{
+       return (p->handle);
+}
+
 int
 pcap_fileno(pcap_t *p)
 {
-#ifndef _WIN32
-       return (p->fd);
-#else
-       if (p->handle != INVALID_HANDLE_VALUE)
+       if (p->handle != INVALID_HANDLE_VALUE) {
+               /*
+                * This is a bogus and now-deprecated API; we
+                * squelch the narrowing warning for the cast
+                * from HANDLE to DWORD - Windows programmers
+                * should use pcap_handle().
+                */
+DIAG_OFF_NARROWING
                return ((int)(DWORD)p->handle);
-       else
+DIAG_ON_WARINING
+       } else
                return (PCAP_ERROR);
-#endif
 }
+#else /* _WIN32 */
+int
+pcap_fileno(pcap_t *p)
+{
+       return (p->fd);
+}
+#endif /* _WIN32 */
 
 #if !defined(_WIN32) && !defined(MSDOS)
 int