14#include <sys/socket.h>
15#include <netinet/in.h>
25 : mInitialPort{initialPort},
26 mFinalPort{finalPort},
28 mSocket{socket(AF_INET, SOCK_STREAM, 0)}
34 struct sockaddr_in addr;
35 memset(&addr, 0,
sizeof(addr));
36 addr.sin_family = AF_INET;
37 addr.sin_addr.s_addr = INADDR_ANY;
38 addr.sin_port = htons(
port);
39 return bind(mSocket, (
struct sockaddr*)&addr,
sizeof(addr)) == 0;
44 for (mPort = mInitialPort; mPort < mFinalPort; mPort += mStep) {
47 LOG(warn) <<
"Port range [" << mPort <<
", " << mPort + mStep
48 <<
"] already taken. Skipping";
53 LOG(info) <<
"Using port range [" << mPort <<
", " << mPort + mStep <<
"]";
bool testPort(int port) const
Test one specific port.
unsigned short range() const
Get the range size.
unsigned short port() const
Get the first port in the selected range.
FreePortFinder(unsigned short initialPort, unsigned short finalPort, unsigned short step)
void scan()
Start the scan.
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"