1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-10 17:59:04 +00:00

Fix up indentation in targets.cc.

This commit is contained in:
david
2010-06-07 21:25:53 +00:00
parent 7c790dbf3b
commit 2111c0ab54

View File

@@ -128,7 +128,7 @@ static void arpping(Target *hostbatch[], int num_hosts) {
int targetno; int targetno;
targets.reserve(num_hosts); targets.reserve(num_hosts);
for(targetno = 0; targetno < num_hosts; targetno++) { for (targetno = 0; targetno < num_hosts; targetno++) {
initialize_timeout_info(&hostbatch[targetno]->to); initialize_timeout_info(&hostbatch[targetno]->to);
/* Default timout should be much lower for arp */ /* Default timout should be much lower for arp */
hostbatch[targetno]->to.timeout = MIN(o.initialRttTimeout(), 100) * 1000; hostbatch[targetno]->to.timeout = MIN(o.initialRttTimeout(), 100) * 1000;
@@ -167,8 +167,8 @@ void returnhost(HostGroupState *hs) {
hs->next_batch_no--; hs->next_batch_no--;
} }
/* Is the host passed as Target to be excluded, much of this logic had (mdmcl) /* Is the host passed as Target to be excluded? Much of this logic had
* to be rewritten from wam's original code to allow for the objects */ to be rewritten from wam's original code to allow for the objects */
static int hostInExclude(struct sockaddr *checksock, size_t checksocklen, static int hostInExclude(struct sockaddr *checksock, size_t checksocklen,
TargetGroup *exclude_group) { TargetGroup *exclude_group) {
unsigned long tmpTarget; /* ip we examine */ unsigned long tmpTarget; /* ip we examine */
@@ -193,8 +193,7 @@ static int hostInExclude(struct sockaddr *checksock, size_t checksocklen,
targets_type = exclude_group[i].get_targets_type(); targets_type = exclude_group[i].get_targets_type();
/* Lets go through the targets until we reach our uninitialized placeholder */ /* Lets go through the targets until we reach our uninitialized placeholder */
while (exclude_group[i].get_targets_type() != TargetGroup::TYPE_NONE) while (exclude_group[i].get_targets_type() != TargetGroup::TYPE_NONE) {
{
/* while there are still hosts in the target group */ /* while there are still hosts in the target group */
while (exclude_group[i].get_next_host(&ss, &slen) == 0) { while (exclude_group[i].get_next_host(&ss, &slen) == 0) {
tmpTarget = sin->sin_addr.s_addr; tmpTarget = sin->sin_addr.s_addr;
@@ -208,8 +207,7 @@ static int hostInExclude(struct sockaddr *checksock, size_t checksocklen,
if ((tmpTarget & mask) == (checkhost_in->sin_addr.s_addr & mask)) { if ((tmpTarget & mask) == (checkhost_in->sin_addr.s_addr & mask)) {
exclude_group[i].rewind(); exclude_group[i].rewind();
return 1; return 1;
} } else {
else {
break; break;
} }
} }
@@ -222,8 +220,8 @@ static int hostInExclude(struct sockaddr *checksock, size_t checksocklen,
if (tmpTarget == checkhost_in->sin_addr.s_addr) { if (tmpTarget == checkhost_in->sin_addr.s_addr) {
exclude_group[i].rewind(); exclude_group[i].rewind();
return 1; return 1;
} } else {
else { /* note these are in network byte order */ /* note these are in network byte order */
if ((tmpTarget & 0x000000ff) != (checkhost_in->sin_addr.s_addr & 0x000000ff)) if ((tmpTarget & 0x000000ff) != (checkhost_in->sin_addr.s_addr & 0x000000ff))
exclude_group[i].skip_range(TargetGroup::FIRST_OCTET); exclude_group[i].skip_range(TargetGroup::FIRST_OCTET);
else if ((tmpTarget & 0x0000ff00) != (checkhost_in->sin_addr.s_addr & 0x0000ff00)) else if ((tmpTarget & 0x0000ff00) != (checkhost_in->sin_addr.s_addr & 0x0000ff00))
@@ -342,14 +340,12 @@ size_t read_host_from_file(FILE *fp, char *buf, size_t n)
return i; return i;
} }
/* A debug routine to dump some information to stdout. (mdmcl) /* A debug routine to dump some information to stdout. Invoked if debugging is
* Invoked if debugging is set to 3 or higher set to 3 or higher. I had to make significant changes from wam's code.
* I had to make signigicant changes from wam's code. Although wam Although wam displayed much more detail, alot of this is now hidden inside of
* displayed much more detail, alot of this is now hidden inside the Target Group Object. Rather than writing a bunch of methods to return
* of the Target Group Object. Rather than writing a bunch of methods private attributes, which would only be used for debugging, I went for the
* to return private attributes, which would only be used for method below. */
* debugging, I went for the method below.
*/
int dumpExclude(TargetGroup *exclude_group) { int dumpExclude(TargetGroup *exclude_group) {
int i=0, debug_save=0, type=TargetGroup::TYPE_NONE; int i=0, debug_save=0, type=TargetGroup::TYPE_NONE;
unsigned int mask = 0; unsigned int mask = 0;
@@ -357,13 +353,12 @@ int dumpExclude(TargetGroup *exclude_group) {
struct sockaddr_in *sin = (struct sockaddr_in *) &ss; struct sockaddr_in *sin = (struct sockaddr_in *) &ss;
size_t slen; size_t slen;
/* shut off debugging for now, this is a debug routine in itself, /* shut off debugging for now, this is a debug routine in itself, we don't
* we don't want to see all the debug messages inside of the object */ want to see all the debug messages inside of the object */
debug_save = o.debugging; debug_save = o.debugging;
o.debugging = 0; o.debugging = 0;
while ((type = exclude_group[i].get_targets_type()) != TargetGroup::TYPE_NONE) while ((type = exclude_group[i].get_targets_type()) != TargetGroup::TYPE_NONE) {
{
switch (type) { switch (type) {
case TargetGroup::IPV4_NETMASK: case TargetGroup::IPV4_NETMASK:
exclude_group[i].get_next_host(&ss, &slen); exclude_group[i].get_next_host(&ss, &slen);
@@ -426,11 +421,11 @@ static void massping(Target *hostbatch[], int num_hosts, struct scan_lists *port
Target *nexthost(HostGroupState *hs, TargetGroup *exclude_group, Target *nexthost(HostGroupState *hs, TargetGroup *exclude_group,
struct scan_lists *ports, int pingtype) { struct scan_lists *ports, int pingtype) {
int hidx = 0; int hidx = 0;
int i; int i;
struct sockaddr_storage ss; struct sockaddr_storage ss;
size_t sslen; size_t sslen;
struct intf_entry *ifentry; struct intf_entry *ifentry;
u32 ifbuf[200] ; u32 ifbuf[200] ;
struct route_nfo rnfo; struct route_nfo rnfo;
bool arpping_done = false; bool arpping_done = false;
@@ -438,19 +433,18 @@ struct intf_entry *ifentry;
ifentry = (struct intf_entry *) ifbuf; ifentry = (struct intf_entry *) ifbuf;
ifentry->intf_len = sizeof(ifbuf); // TODO: May want to use a larger buffer if interface aliases prove important. ifentry->intf_len = sizeof(ifbuf); // TODO: May want to use a larger buffer if interface aliases prove important.
if (hs->next_batch_no < hs->current_batch_sz) { if (hs->next_batch_no < hs->current_batch_sz) {
/* Woop! This is easy -- we just pass back the next host struct */ /* Woop! This is easy -- we just pass back the next host struct */
return hs->hostbatch[hs->next_batch_no++]; return hs->hostbatch[hs->next_batch_no++];
} }
/* Doh, we need to refresh our array */ /* Doh, we need to refresh our array */
/* for(i=0; i < hs->max_batch_sz; i++) hs->hostbatch[i] = new Target(); */ /* for (i=0; i < hs->max_batch_sz; i++) hs->hostbatch[i] = new Target(); */
hs->current_batch_sz = hs->next_batch_no = 0; hs->current_batch_sz = hs->next_batch_no = 0;
do { do {
/* Grab anything we have in our current_expression */ /* Grab anything we have in our current_expression */
while (hs->current_batch_sz < hs->max_batch_sz && while (hs->current_batch_sz < hs->max_batch_sz &&
hs->current_expression.get_next_host(&ss, &sslen) == 0) hs->current_expression.get_next_host(&ss, &sslen) == 0) {
{
if (hostInExclude((struct sockaddr *)&ss, sslen, exclude_group)) { if (hostInExclude((struct sockaddr *)&ss, sslen, exclude_group)) {
continue; /* Skip any hosts the user asked to exclude */ continue; /* Skip any hosts the user asked to exclude */
} }
@@ -492,7 +486,8 @@ do {
if (rnfo.ii.device_type == devt_ethernet) { if (rnfo.ii.device_type == devt_ethernet) {
if (o.spoofMACAddress()) if (o.spoofMACAddress())
hs->hostbatch[hidx]->setSrcMACAddress(o.spoofMACAddress()); hs->hostbatch[hidx]->setSrcMACAddress(o.spoofMACAddress());
else hs->hostbatch[hidx]->setSrcMACAddress(rnfo.ii.mac); else
hs->hostbatch[hidx]->setSrcMACAddress(rnfo.ii.mac);
} }
hs->hostbatch[hidx]->setSourceSockAddr(&rnfo.srcaddr, sizeof(rnfo.srcaddr)); hs->hostbatch[hidx]->setSourceSockAddr(&rnfo.srcaddr, sizeof(rnfo.srcaddr));
if (hidx == 0) /* Because later ones can have different src addy and be cut off group */ if (hidx == 0) /* Because later ones can have different src addy and be cut off group */
@@ -501,10 +496,9 @@ do {
// printf("Target %s %s directly connected, goes through local iface %s, which %s ethernet\n", hs->hostbatch[hidx]->NameIP(), hs->hostbatch[hidx]->directlyConnected()? "IS" : "IS NOT", hs->hostbatch[hidx]->deviceName(), (hs->hostbatch[hidx]->ifType() == devt_ethernet)? "IS" : "IS NOT"); // printf("Target %s %s directly connected, goes through local iface %s, which %s ethernet\n", hs->hostbatch[hidx]->NameIP(), hs->hostbatch[hidx]->directlyConnected()? "IS" : "IS NOT", hs->hostbatch[hidx]->deviceName(), (hs->hostbatch[hidx]->ifType() == devt_ethernet)? "IS" : "IS NOT");
} }
/* In some cases, we can only allow hosts that use the same device in a
/* In some cases, we can only allow hosts that use the same group. Similarly, we don't mix directly-connected boxes with those that
device in a group. Similarly, we don't mix aren't */
directly-connected boxes with those that aren't */
if (o.af() == AF_INET && o.isr00t && hidx > 0 && if (o.af() == AF_INET && o.isr00t && hidx > 0 &&
hs->hostbatch[hidx]->deviceName() && hs->hostbatch[hidx]->deviceName() &&
(hs->hostbatch[hidx]->v4source().s_addr != hs->hostbatch[0]->v4source().s_addr || (hs->hostbatch[hidx]->v4source().s_addr != hs->hostbatch[0]->v4source().s_addr ||
@@ -518,7 +512,7 @@ do {
goto batchfull; goto batchfull;
} }
hs->current_batch_sz++; hs->current_batch_sz++;
} }
if (hs->current_batch_sz < hs->max_batch_sz && if (hs->current_batch_sz < hs->max_batch_sz &&
hs->next_expression < hs->num_expressions) { hs->next_expression < hs->num_expressions) {
@@ -527,20 +521,20 @@ do {
if (hs->next_expression >= hs->num_expressions) if (hs->next_expression >= hs->num_expressions)
break; break;
} else break; } else break;
} while(1); } while(1);
batchfull: batchfull:
if (hs->current_batch_sz == 0) if (hs->current_batch_sz == 0)
return NULL; return NULL;
/* OK, now we have our complete batch of entries. The next step is to /* OK, now we have our complete batch of entries. The next step is to
randomize them (if requested) */ randomize them (if requested) */
if (hs->randomize) { if (hs->randomize) {
hoststructfry(hs->hostbatch, hs->current_batch_sz); hoststructfry(hs->hostbatch, hs->current_batch_sz);
} }
/* First I'll do the ARP ping if all of the machines in the group are /* First I'll do the ARP ping if all of the machines in the group are
directly connected over ethernet. I may need the MAC addresses directly connected over ethernet. I may need the MAC addresses
later anyway. */ later anyway. */
if (hs->hostbatch[0]->ifType() == devt_ethernet && if (hs->hostbatch[0]->ifType() == devt_ethernet &&
@@ -553,23 +547,26 @@ if (hs->randomize) {
gettimeofday(&now, NULL); gettimeofday(&now, NULL);
if ((o.sendpref & PACKET_SEND_ETH) && if ((o.sendpref & PACKET_SEND_ETH) &&
hs->hostbatch[0]->ifType() == devt_ethernet) { hs->hostbatch[0]->ifType() == devt_ethernet) {
for(i=0; i < hs->current_batch_sz; i++) for (i=0; i < hs->current_batch_sz; i++) {
if (!(hs->hostbatch[i]->flags & HOST_DOWN) && if (!(hs->hostbatch[i]->flags & HOST_DOWN) &&
!hs->hostbatch[i]->timedOut(&now)) !hs->hostbatch[i]->timedOut(&now)) {
if (!setTargetNextHopMAC(hs->hostbatch[i])) if (!setTargetNextHopMAC(hs->hostbatch[i])) {
fatal("%s: Failed to determine dst MAC address for target %s", fatal("%s: Failed to determine dst MAC address for target %s",
__func__, hs->hostbatch[i]->NameIP()); __func__, hs->hostbatch[i]->NameIP());
} }
}
}
}
/* TODO: Maybe I should allow real ping scan of directly connected /* TODO: Maybe I should allow real ping scan of directly connected
ethernet hosts? */ ethernet hosts? */
/* Then we do the mass ping (if required - IP-level pings) */ /* Then we do the mass ping (if required - IP-level pings) */
if ((pingtype == PINGTYPE_NONE && !arpping_done) || hs->hostbatch[0]->ifType() == devt_loopback) { if ((pingtype == PINGTYPE_NONE && !arpping_done) || hs->hostbatch[0]->ifType() == devt_loopback) {
for(i=0; i < hs->current_batch_sz; i++) { for (i=0; i < hs->current_batch_sz; i++) {
if (!hs->hostbatch[i]->timedOut(&now)) { if (!hs->hostbatch[i]->timedOut(&now)) {
initialize_timeout_info(&hs->hostbatch[i]->to); initialize_timeout_info(&hs->hostbatch[i]->to);
hs->hostbatch[i]->flags |= HOST_UP; /*hostbatch[i].up = 1;*/ hs->hostbatch[i]->flags |= HOST_UP; /*hostbatch[i].up = 1;*/
if(pingtype == PINGTYPE_NONE && !arpping_done) if (pingtype == PINGTYPE_NONE && !arpping_done)
hs->hostbatch[i]->reason.reason_id = ER_USER; hs->hostbatch[i]->reason.reason_id = ER_USER;
else else
hs->hostbatch[i]->reason.reason_id = ER_LOCALHOST; hs->hostbatch[i]->reason.reason_id = ER_LOCALHOST;
@@ -579,7 +576,8 @@ if (hs->randomize) {
massping(hs->hostbatch, hs->current_batch_sz, ports); massping(hs->hostbatch, hs->current_batch_sz, ports);
} }
if (!o.noresolve) nmap_mass_rdns(hs->hostbatch, hs->current_batch_sz); if (!o.noresolve)
nmap_mass_rdns(hs->hostbatch, hs->current_batch_sz);
return hs->hostbatch[hs->next_batch_no++]; return hs->hostbatch[hs->next_batch_no++];
} }