Skip to content

Commit 9cfc265

Browse files
committed
Remove unpublished '*all' syntax in favor of --resolve-all option
1 parent f148855 commit 9cfc265

File tree

1 file changed

+7
-42
lines changed

1 file changed

+7
-42
lines changed

TargetGroup.cc

+7-42
Original file line numberDiff line numberDiff line change
@@ -160,15 +160,13 @@ extern NmapOps o;
160160
class NetBlock {
161161
public:
162162
virtual ~NetBlock() {}
163-
NetBlock() : resolveall(false) {
163+
NetBlock() {
164164
current_addr = resolvedaddrs.begin();
165165
}
166166
std::string hostname;
167167
std::list<struct sockaddr_storage> resolvedaddrs;
168168
std::list<struct sockaddr_storage> unscanned_addrs;
169169
std::list<struct sockaddr_storage>::const_iterator current_addr;
170-
/* Scan all resolved addresses? */
171-
bool resolveall;
172170

173171
/* Parses an expression such as 192.168.0.0/16, 10.1.0-5.1-254, or
174172
fe80::202:e3ff:fe14:1102/112 and returns a newly allocated NetBlock. The af
@@ -220,7 +218,7 @@ class NetBlockIPv6Netmask : public NetBlock {
220218

221219
class NetBlockHostname : public NetBlock {
222220
public:
223-
NetBlockHostname(const char *hostname, int af, bool resolveall);
221+
NetBlockHostname(const char *hostname, int af);
224222
int af;
225223
int bits;
226224

@@ -325,32 +323,9 @@ static int parse_ipv4_ranges(octet_bitvector octets[4], const char *spec) {
325323
return 0;
326324
}
327325

328-
static char *split_resolveall(const char *expr, bool *resolveall) {
329-
const char *star;
330-
331-
star = strrchr(expr, '*');
332-
if (star != NULL) {
333-
if (strcmp(star + 1, "all") == 0) {
334-
*resolveall = true;
335-
}
336-
else {
337-
// Invalid syntax
338-
return NULL;
339-
}
340-
}
341-
else {
342-
star = expr + strlen(expr);
343-
*resolveall = false;
344-
}
345-
346-
return mkstr(expr, star);
347-
}
348-
349326
static NetBlock *parse_expr_without_netmask(const char *hostexp, int af) {
350327
struct sockaddr_storage ss;
351328
size_t sslen;
352-
char *hostn;
353-
bool resolveall = false;
354329

355330
if (af == AF_INET) {
356331
NetBlockIPv4Ranges *netblock_ranges;
@@ -375,15 +350,7 @@ static NetBlock *parse_expr_without_netmask(const char *hostexp, int af) {
375350
return netblock_ipv6;
376351
}
377352

378-
hostn = split_resolveall(hostexp, &resolveall);
379-
if (hostn == NULL) {
380-
error("Invalid '*' in target expression: \"%s\"", hostexp);
381-
return NULL;
382-
}
383-
384-
NetBlockHostname *netblock_hostname = new NetBlockHostname(hostn, af, resolveall || o.resolve_all);
385-
free(hostn);
386-
return netblock_hostname;
353+
return new NetBlockHostname(hostexp, af);
387354
}
388355

389356
/* Parses an expression such as 192.168.0.0/16, 10.1.0-5.1-254, or
@@ -476,7 +443,7 @@ bool NetBlockIPv4Ranges::next(struct sockaddr_storage *ss, size_t *sslen) {
476443
break;
477444
}
478445
if (i >= 4) {
479-
if (this->resolveall && !this->resolvedaddrs.empty() && current_addr != this->resolvedaddrs.end() && ++current_addr != this->resolvedaddrs.end()) {
446+
if (o.resolve_all && !this->resolvedaddrs.empty() && current_addr != this->resolvedaddrs.end() && ++current_addr != this->resolvedaddrs.end()) {
480447
this->set_addr((struct sockaddr_in *) &*current_addr);
481448
}
482449
else {
@@ -637,7 +604,7 @@ bool NetBlockIPv6Netmask::next(struct sockaddr_storage *ss, size_t *sslen) {
637604
struct sockaddr_in6 *sin6;
638605

639606
if (this->exhausted){
640-
if (this->resolveall && !this->resolvedaddrs.empty() && current_addr != this->resolvedaddrs.end() && ++current_addr != this->resolvedaddrs.end()) {
607+
if (o.resolve_all && !this->resolvedaddrs.empty() && current_addr != this->resolvedaddrs.end() && ++current_addr != this->resolvedaddrs.end()) {
641608
this->set_addr((struct sockaddr_in6 *) &*current_addr);
642609
}
643610
else {
@@ -773,7 +740,7 @@ NetBlock *NetBlockHostname::resolve() {
773740
for (addr = addrs; addr != NULL; addr = addr->ai_next) {
774741
if (addr->ai_addrlen < sizeof(ss)) {
775742
memcpy(&ss, addr->ai_addr, addr->ai_addrlen);
776-
if ((resolveall || resolvedaddrs.empty()) && addr->ai_family == this->af) {
743+
if ((o.resolve_all || resolvedaddrs.empty()) && addr->ai_family == this->af) {
777744
resolvedaddrs.push_back(ss);
778745
}
779746
else {
@@ -830,18 +797,16 @@ NetBlock *NetBlockHostname::resolve() {
830797
netblock->hostname = this->hostname;
831798
netblock->resolvedaddrs = resolvedaddrs;
832799
netblock->unscanned_addrs = unscanned_addrs;
833-
netblock->resolveall = this->resolveall;
834800
netblock->current_addr = netblock->resolvedaddrs.begin();
835801
netblock->apply_netmask(this->bits);
836802

837803
return netblock;
838804
}
839805

840-
NetBlockHostname::NetBlockHostname(const char *hostname, int af, bool resolveall) {
806+
NetBlockHostname::NetBlockHostname(const char *hostname, int af) {
841807
this->hostname = hostname;
842808
this->af = af;
843809
this->bits = -1;
844-
this->resolveall = resolveall;
845810
}
846811

847812
bool NetBlockHostname::next(struct sockaddr_storage *ss, size_t *sslen) {

0 commit comments

Comments
 (0)