@@ -160,15 +160,13 @@ extern NmapOps o;
160
160
class NetBlock {
161
161
public:
162
162
virtual ~NetBlock () {}
163
- NetBlock () : resolveall( false ) {
163
+ NetBlock () {
164
164
current_addr = resolvedaddrs.begin ();
165
165
}
166
166
std::string hostname;
167
167
std::list<struct sockaddr_storage > resolvedaddrs;
168
168
std::list<struct sockaddr_storage > unscanned_addrs;
169
169
std::list<struct sockaddr_storage >::const_iterator current_addr;
170
- /* Scan all resolved addresses? */
171
- bool resolveall;
172
170
173
171
/* Parses an expression such as 192.168.0.0/16, 10.1.0-5.1-254, or
174
172
fe80::202:e3ff:fe14:1102/112 and returns a newly allocated NetBlock. The af
@@ -220,7 +218,7 @@ class NetBlockIPv6Netmask : public NetBlock {
220
218
221
219
class NetBlockHostname : public NetBlock {
222
220
public:
223
- NetBlockHostname (const char *hostname, int af, bool resolveall );
221
+ NetBlockHostname (const char *hostname, int af);
224
222
int af;
225
223
int bits;
226
224
@@ -325,32 +323,9 @@ static int parse_ipv4_ranges(octet_bitvector octets[4], const char *spec) {
325
323
return 0 ;
326
324
}
327
325
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
-
349
326
static NetBlock *parse_expr_without_netmask (const char *hostexp, int af) {
350
327
struct sockaddr_storage ss;
351
328
size_t sslen;
352
- char *hostn;
353
- bool resolveall = false ;
354
329
355
330
if (af == AF_INET) {
356
331
NetBlockIPv4Ranges *netblock_ranges;
@@ -375,15 +350,7 @@ static NetBlock *parse_expr_without_netmask(const char *hostexp, int af) {
375
350
return netblock_ipv6;
376
351
}
377
352
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);
387
354
}
388
355
389
356
/* 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) {
476
443
break ;
477
444
}
478
445
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 ()) {
480
447
this ->set_addr ((struct sockaddr_in *) &*current_addr);
481
448
}
482
449
else {
@@ -637,7 +604,7 @@ bool NetBlockIPv6Netmask::next(struct sockaddr_storage *ss, size_t *sslen) {
637
604
struct sockaddr_in6 *sin6;
638
605
639
606
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 ()) {
641
608
this ->set_addr ((struct sockaddr_in6 *) &*current_addr);
642
609
}
643
610
else {
@@ -773,7 +740,7 @@ NetBlock *NetBlockHostname::resolve() {
773
740
for (addr = addrs; addr != NULL ; addr = addr->ai_next ) {
774
741
if (addr->ai_addrlen < sizeof (ss)) {
775
742
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 ) {
777
744
resolvedaddrs.push_back (ss);
778
745
}
779
746
else {
@@ -830,18 +797,16 @@ NetBlock *NetBlockHostname::resolve() {
830
797
netblock->hostname = this ->hostname ;
831
798
netblock->resolvedaddrs = resolvedaddrs;
832
799
netblock->unscanned_addrs = unscanned_addrs;
833
- netblock->resolveall = this ->resolveall ;
834
800
netblock->current_addr = netblock->resolvedaddrs .begin ();
835
801
netblock->apply_netmask (this ->bits );
836
802
837
803
return netblock;
838
804
}
839
805
840
- NetBlockHostname::NetBlockHostname (const char *hostname, int af, bool resolveall ) {
806
+ NetBlockHostname::NetBlockHostname (const char *hostname, int af) {
841
807
this ->hostname = hostname;
842
808
this ->af = af;
843
809
this ->bits = -1 ;
844
- this ->resolveall = resolveall;
845
810
}
846
811
847
812
bool NetBlockHostname::next (struct sockaddr_storage *ss, size_t *sslen) {
0 commit comments