// Path: jxnet-core/src/main/java/com/ardikars/jxnet/exception/NativeException.java
// public class NativeException extends RuntimeException {
// 
// 	private static final long serialVersionUID = -3993889826336916332L;
// 
// 	public NativeException() {
// 		this("");
// 	}
// 
// 	public NativeException(final String message) {
// 		this(message, new RuntimeException(message));
// 	}
// 
// 	public NativeException(final Throwable cause) {
// 		this(cause.getMessage(), cause);
// 	}
// 
// 	public NativeException(final String message, final Throwable cause) {
// 		super(message, cause);
// 	}
// 
// }
// 
// Path: jxnet-core/src/main/java/com/ardikars/jxnet/exception/PlatformNotSupportedException.java
// public class PlatformNotSupportedException extends RuntimeException {
// 
//     private static final long serialVersionUID = -5714154798477963289L;
// 
//     public PlatformNotSupportedException() {
//         this("");
//     }
// 
//     public PlatformNotSupportedException(final String message) {
//         this(message, new RuntimeException(message));
//     }
// 
//     public PlatformNotSupportedException(final Throwable cause) {
//         this(cause.getMessage(), cause);
//     }
// 
//     public PlatformNotSupportedException(final String message, final Throwable cause) {
//         super(message, cause);
//     }
// 
// }


import com.ardikars.common.annotation.Mutable;
import com.ardikars.common.net.Inet4Address;
import com.ardikars.common.util.Platforms;
import com.ardikars.common.util.Validate;
import com.ardikars.jxnet.exception.NativeException;
import com.ardikars.jxnet.exception.PlatformNotSupportedException;
import java.io.IOException;
import java.util.concurrent.locks.ReentrantReadWriteLock;
		}

		private void setEnableRfMon(Pcap pcap) throws NativeException {
			if (enableRfMon) {
				if (Jxnet.PcapCanSetRfMon(pcap) == 1) {
					int mode = RadioFrequencyMonitorMode.RFMON.getValue();
					if (Jxnet.PcapSetRfMon(pcap, mode) < Jxnet.OK) {
						throw new NativeException(Jxnet.PcapGetErr(pcap));
					}
				}
			} else {
				if (Jxnet.PcapSetRfMon(pcap, RadioFrequencyMonitorMode.NON_RFMON.getValue()) < Jxnet.OK) {
					throw new NativeException(Jxnet.PcapGetErr(pcap));
				}
			}
		}

		/**
		 * Only set the {@link Pcap} handle into non-blocking mode if we have a timeout greater than zero
		 * and enbaleNonBlock property is true.
		 * @param pcap pcap handle.
		 * @throws NativeException native exception.
		 */
		private void setEnableNonBlock(Pcap pcap) throws NativeException {
			if (enableNonBlock && timeout > 0) {
				if (Jxnet.PcapSetNonBlock(pcap, 1, errbuf) < Jxnet.OK) {
					throw new NativeException(Jxnet.PcapGetErr(pcap));
				}
			} else {
				if (Jxnet.PcapSetNonBlock(pcap, 0, errbuf) < Jxnet.OK) {
// Path: jxnet-core/src/main/java/com/ardikars/jxnet/exception/NativeException.java
// public class NativeException extends RuntimeException {
// 
// 	private static final long serialVersionUID = -3993889826336916332L;
// 
// 	public NativeException() {
// 		this("");
// 	}
// 
// 	public NativeException(final String message) {
// 		this(message, new RuntimeException(message));
// 	}
// 
// 	public NativeException(final Throwable cause) {
// 		this(cause.getMessage(), cause);
// 	}
// 
// 	public NativeException(final String message, final Throwable cause) {
// 		super(message, cause);
// 	}
// 
// }
// 
// Path: jxnet-core/src/main/java/com/ardikars/jxnet/exception/PlatformNotSupportedException.java
// public class PlatformNotSupportedException extends RuntimeException {
// 
//     private static final long serialVersionUID = -5714154798477963289L;
// 
//     public PlatformNotSupportedException() {
//         this("");
//     }
// 
//     public PlatformNotSupportedException(final String message) {
//         this(message, new RuntimeException(message));
//     }
// 
//     public PlatformNotSupportedException(final Throwable cause) {
//         this(cause.getMessage(), cause);
//     }
// 
//     public PlatformNotSupportedException(final String message, final Throwable cause) {
//         super(message, cause);
//     }
// 
// }


// Path: jxnet-core/src/main/java/com/ardikars/jxnet/Pcap.java
import com.ardikars.common.annotation.Mutable;
import com.ardikars.common.net.Inet4Address;
import com.ardikars.common.util.Platforms;
import com.ardikars.common.util.Validate;
import com.ardikars.jxnet.exception.NativeException;
import com.ardikars.jxnet.exception.PlatformNotSupportedException;
import java.io.IOException;
import java.util.concurrent.locks.ReentrantReadWriteLock;

		}

		private void setEnableRfMon(Pcap pcap) throws NativeException {
			if (enableRfMon) {
				if (Jxnet.PcapCanSetRfMon(pcap) == 1) {
					int mode = RadioFrequencyMonitorMode.RFMON.getValue();
					if (Jxnet.PcapSetRfMon(pcap, mode) < Jxnet.OK) {
						throw new NativeException(Jxnet.PcapGetErr(pcap));
					}
				}
			} else {
				if (Jxnet.PcapSetRfMon(pcap, RadioFrequencyMonitorMode.NON_RFMON.getValue()) < Jxnet.OK) {
					throw new NativeException(Jxnet.PcapGetErr(pcap));
				}
			}
		}

		/**
		 * Only set the {@link Pcap} handle into non-blocking mode if we have a timeout greater than zero
		 * and enbaleNonBlock property is true.
		 * @param pcap pcap handle.
		 * @throws NativeException native exception.
		 */
		private void setEnableNonBlock(Pcap pcap) throws NativeException {
			if (enableNonBlock && timeout > 0) {
				if (Jxnet.PcapSetNonBlock(pcap, 1, errbuf) < Jxnet.OK) {
					throw new NativeException(Jxnet.PcapGetErr(pcap));
				}
			} else {
				if (Jxnet.PcapSetNonBlock(pcap, 0, errbuf) < Jxnet.OK) {
					throw new NativeException(Jxnet.PcapGetErr(pcap));