diff --git a/nmap.cc b/nmap.cc index 39bbbad72..11a7bc7ab 100644 --- a/nmap.cc +++ b/nmap.cc @@ -135,8 +135,6 @@ #endif #define DNET_VERSION VERSION -using namespace std; - /* global options */ extern char *optarg; extern int optind; @@ -1569,7 +1567,7 @@ void apply_delayed_options() { int nmap_main(int argc, char *argv[]) { int i; - vector Targets; + std::vector Targets; time_t now; struct hostent *target = NULL; time_t timep; diff --git a/osscan2.cc b/osscan2.cc index 091004da8..c88ee0786 100644 --- a/osscan2.cc +++ b/osscan2.cc @@ -107,7 +107,6 @@ #include -using namespace std; extern NmapOps o; /* 8 options: @@ -316,7 +315,7 @@ int get_ipid_sequence(int numSamples, int *ipids, int islocalhost) { /* Start the timeout clocks of any targets that aren't already timedout */ static void startTimeOutClocks(OsScanInfo *OSI) { - list::iterator hostI; + std::list::iterator hostI; gettimeofday(&now, NULL); for (hostI = OSI->incompleteHosts.begin(); @@ -329,7 +328,7 @@ static void startTimeOutClocks(OsScanInfo *OSI) { /** Sets up the pcap descriptor in HOS (obtains a descriptor and sets the * appropriate BPF filter, based on the supplied list of targets). */ -static void begin_sniffer(HostOsScan *HOS, vector &Targets) { +static void begin_sniffer(HostOsScan *HOS, std::vector &Targets) { char pcap_filter[2048]; /* 20 IPv6 addresses is max (45 byte addy + 14 (" or src host ")) * 20 == 1180 */ char dst_hosts[1200]; @@ -385,7 +384,7 @@ static void begin_sniffer(HostOsScan *HOS, vector &Targets) { * reinitializing some variables of the supplied objects and deleting * some old information. */ static void startRound(OsScanInfo *OSI, HostOsScan *HOS, int roundNum) { - list::iterator hostI; + std::list::iterator hostI; HostOsScanInfo *hsi = NULL; /* Reinitial some parameters of the scan system. */ @@ -403,7 +402,7 @@ static void startRound(OsScanInfo *OSI, HostOsScan *HOS, int roundNum) { /* Run the sequence generation tests (6 TCP probes sent 100ms apart) */ static void doSeqTests(OsScanInfo *OSI, HostOsScan *HOS) { - list::iterator hostI; + std::list::iterator hostI; HostOsScanInfo *hsi = NULL; HostOsScanStats *hss = NULL; unsigned int unableToSend = 0; /* # of times in a row that hosts were unable to send probe */ @@ -569,7 +568,7 @@ static void doSeqTests(OsScanInfo *OSI, HostOsScan *HOS) { /* TCP, UDP, ICMP Tests */ static void doTUITests(OsScanInfo *OSI, HostOsScan *HOS) { - list::iterator hostI; + std::list::iterator hostI; HostOsScanInfo *hsi = NULL; HostOsScanStats *hss = NULL; unsigned int unableToSend; /* # of times in a row that hosts were unable to send probe */ @@ -738,7 +737,7 @@ static void doTUITests(OsScanInfo *OSI, HostOsScan *HOS) { static void endRound(OsScanInfo *OSI, HostOsScan *HOS, int roundNum) { - list::iterator hostI; + std::list::iterator hostI; HostOsScanInfo *hsi = NULL; int distance = -1; enum dist_calc_method distance_calculation_method = DIST_METHOD_NONE; @@ -791,7 +790,7 @@ static void endRound(OsScanInfo *OSI, HostOsScan *HOS, int roundNum) { static void findBestFPs(OsScanInfo *OSI) { - list::iterator hostI; + std::list::iterator hostI; HostOsScanInfo *hsi = NULL; int i; @@ -826,7 +825,7 @@ static void findBestFPs(OsScanInfo *OSI) { static void printFP(OsScanInfo *OSI) { - list::iterator hostI; + std::list::iterator hostI; HostOsScanInfo *hsi = NULL; FingerPrintResultsIPv4 *FPR; @@ -851,8 +850,8 @@ static void printFP(OsScanInfo *OSI) { the maximum number of OS detection tries allowed for it without matching, it is transferred to the passed in unMatchedHosts list. Returns the number of hosts moved to unMatchedHosts. */ -static int expireUnmatchedHosts(OsScanInfo *OSI, list *unMatchedHosts) { - list::iterator hostI, nextHost; +static int expireUnmatchedHosts(OsScanInfo *OSI, std::list *unMatchedHosts) { + std::list::iterator hostI, nextHost; int hostsRemoved = 0; HostOsScanInfo *HOS; @@ -1123,7 +1122,7 @@ void HostOsScanStats::addNewProbe(OFProbeType type, int subid) { /* Remove a probe from the probesActive. */ -void HostOsScanStats::removeActiveProbe(list::iterator probeI) { +void HostOsScanStats::removeActiveProbe(std::list::iterator probeI) { OFProbe *probe = *probeI; probesActive.erase(probeI); delete probe; @@ -1132,8 +1131,8 @@ void HostOsScanStats::removeActiveProbe(list::iterator probeI) { /* Get an active probe from active probe list identified by probe type and subid. Returns probesActive.end() if there isn't one */ -list::iterator HostOsScanStats::getActiveProbe(OFProbeType type, int subid) { - list::iterator probeI; +std::list::iterator HostOsScanStats::getActiveProbe(OFProbeType type, int subid) { + std::list::iterator probeI; OFProbe *probe = NULL; for (probeI = probesActive.begin(); probeI != probesActive.end(); probeI++) { @@ -1154,14 +1153,14 @@ list::iterator HostOsScanStats::getActiveProbe(OFProbeType type, int /* Move a probe from probesToSend to probesActive. */ -void HostOsScanStats::moveProbeToActiveList(list::iterator probeI) { +void HostOsScanStats::moveProbeToActiveList(std::list::iterator probeI) { probesActive.push_back(*probeI); probesToSend.erase(probeI); } /* Move a probe from probesActive to probesToSend. */ -void HostOsScanStats::moveProbeToUnSendList(list::iterator probeI) { +void HostOsScanStats::moveProbeToUnSendList(std::list::iterator probeI) { probesToSend.push_back(*probeI); probesActive.erase(probeI); } @@ -1193,7 +1192,7 @@ double HostOsScanStats::timingRatio() { bool HostOsScan::nextTimeout(HostOsScanStats *hss, struct timeval *when) { assert(hss); struct timeval probe_to, earliest_to; - list::iterator probeI; + std::list::iterator probeI; bool firstgood = true; assert(when); @@ -1323,7 +1322,7 @@ void HostOsScan::buildSeqProbeList(HostOsScanStats *hss) { * timed out. */ void HostOsScan::updateActiveSeqProbes(HostOsScanStats *hss) { assert(hss); - list::iterator probeI, nxt; + std::list::iterator probeI, nxt; OFProbe *probe = NULL; for (probeI = hss->probesActive.begin(); probeI != hss->probesActive.end(); probeI = nxt) { @@ -1405,7 +1404,7 @@ void HostOsScan::buildTUIProbeList(HostOsScanStats *hss) { * 2) Move timedout probes to probeNeedToSend; */ void HostOsScan::updateActiveTUIProbes(HostOsScanStats *hss) { assert(hss); - list::iterator probeI, nxt; + std::list::iterator probeI, nxt; OFProbe *probe = NULL; for (probeI = hss->probesActive.begin(); probeI != hss->probesActive.end(); probeI = nxt) { @@ -1436,7 +1435,7 @@ void HostOsScan::updateActiveTUIProbes(HostOsScanStats *hss) { * return true. */ bool HostOsScan::hostSendOK(HostOsScanStats *hss, struct timeval *when) { assert(hss); - list::iterator probeI; + std::list::iterator probeI; int packTime; struct timeval probe_to, earliest_to, sendTime; long tdiff; @@ -1505,7 +1504,7 @@ bool HostOsScan::hostSendOK(HostOsScanStats *hss, struct timeval *when) { * false; else, fill it with now and return true. */ bool HostOsScan::hostSeqSendOK(HostOsScanStats *hss, struct timeval *when) { assert(hss); - list::iterator probeI; + std::list::iterator probeI; int packTime = 0, maxWait = 0; struct timeval probe_to, earliest_to, sendTime; long tdiff; @@ -1586,7 +1585,7 @@ unsigned long HostOsScan::timeProbeTimeout(HostOsScanStats *hss) { void HostOsScan::sendNextProbe(HostOsScanStats *hss) { assert(hss); - list::iterator probeI; + std::list::iterator probeI; OFProbe *probe = NULL; if (hss->probesToSend.empty()) @@ -1791,7 +1790,7 @@ bool HostOsScan::processResp(HostOsScanStats *hss, struct ip *ip, unsigned int l struct icmp *icmp; int testno; bool isPktUseful = false; - list::iterator probeI; + std::list::iterator probeI; OFProbe *probe; if (len < 20 || len < (4 * ip->ip_hl) + 4U) @@ -3309,7 +3308,7 @@ HostOsScanInfo::~HostOsScanInfo() { * Implementation of class OsScanInfo * ******************************************************************************/ -OsScanInfo::OsScanInfo(vector &Targets) { +OsScanInfo::OsScanInfo(std::vector &Targets) { unsigned int targetno; HostOsScanInfo *hsi; int num_timedout = 0; @@ -3368,7 +3367,7 @@ OsScanInfo::~OsScanInfo() /* Find a HostScanStats by IP its address in the incomplete list. Returns NULL if none are found. */ HostOsScanInfo *OsScanInfo::findIncompleteHost(struct sockaddr_storage *ss) { - list::iterator hostI; + std::list::iterator hostI; struct sockaddr_in *sin = (struct sockaddr_in *) ss; if (sin->sin_family != AF_INET) @@ -3404,7 +3403,7 @@ HostOsScanInfo *OsScanInfo::nextIncompleteHost() { /* Removes any hosts that have completed their scans from the incompleteHosts list. Returns the number of hosts removed. */ int OsScanInfo::removeCompletedHosts() { - list::iterator hostI, nxt; + std::list::iterator hostI, nxt; HostOsScanInfo *hsi = NULL; int hostsRemoved = 0; bool timedout = false; @@ -3469,10 +3468,10 @@ void OSScan::reset() { * too many to be processed at the same time. The threshold is based on Nmap's * timing level (when timing level is above 4, no chunking is performed). * The reason targets are processed in smaller groups is to improve accuracy. */ -int OSScan::chunk_and_do_scan(vector &Targets, int family) { +int OSScan::chunk_and_do_scan(std::vector &Targets, int family) { unsigned int max_os_group_sz = 20; double fudgeratio = 1.2; /* Allow a slightly larger final group rather than finish with a tiny one */ - vector tmpTargets; + std::vector tmpTargets; unsigned int startidx = 0; if (o.timing_level == 4) @@ -3506,11 +3505,11 @@ int OSScan::chunk_and_do_scan(vector &Targets, int family) { /* Performs the OS detection for IPv4 hosts. This method should not be called * directly. os_scan() should be used instead, as it handles chunking so * you don't do too many targets in parallel */ -int OSScan::os_scan_ipv4(vector &Targets) { +int OSScan::os_scan_ipv4(std::vector &Targets) { int itry = 0; /* Hosts which haven't matched and have been removed from incompleteHosts because * they have exceeded the number of retransmissions the host is allowed. */ - list unMatchedHosts; + std::list unMatchedHosts; /* Check we have at least one target*/ if (Targets.size() == 0) { @@ -3572,7 +3571,7 @@ int OSScan::os_scan_ipv4(vector &Targets) { /* Performs the OS detection for IPv6 hosts. This method should not be called * directly. os_scan() should be used instead, as it handles chunking so * you don't do too many targets in parallel */ -int OSScan::os_scan_ipv6(vector &Targets) { +int OSScan::os_scan_ipv6(std::vector &Targets) { /* Object instantiation */ FPEngine6 fp6; @@ -3590,9 +3589,9 @@ int OSScan::os_scan_ipv6(vector &Targets) { * targets and classifies it into two groups: IPv4 and IPv6 targets. Then, * OS detection is carried out for those two separate groups. It returns * OP_SUCCESS on success or OP_FAILURE in case of error. */ -int OSScan::os_scan(vector &Targets) { - vector ip4_targets; - vector ip6_targets; +int OSScan::os_scan(std::vector &Targets) { + std::vector ip4_targets; + std::vector ip6_targets; int res4 = OP_SUCCESS, res6 = OP_SUCCESS; /* Make sure we have at least one target */ diff --git a/output.cc b/output.cc index ef77c7f8d..1ff8d8fea 100644 --- a/output.cc +++ b/output.cc @@ -118,10 +118,6 @@ #include #include -/* Workaround for lack of namespace std on HP-UX 11.00 */ -namespace std {}; -using namespace std; - extern NmapOps o; static const char *logtypes[LOG_NUM_FILES] = LOG_NAMES; @@ -273,8 +269,8 @@ void win32_fatal_raw_sockets(const char *devname) { static void print_iflist_pcap_mapping(const struct interface_info *iflist, int numifs) { pcap_if_t *pcap_ifs; - list leftover_pcap_ifs; - list::iterator leftover_p; + std::list leftover_pcap_ifs; + std::list::iterator leftover_p; int i; /* Build a list of "leftover" libpcap interfaces. Initially it contains all @@ -295,7 +291,7 @@ static void print_iflist_pcap_mapping(const struct interface_info *iflist, if (DnetName2PcapName(iflist[i].devname, pcap_name, sizeof(pcap_name))) { /* We got a name. Remove it from the list of leftovers. */ - list::iterator next; + std::list::iterator next; for (leftover_p = leftover_pcap_ifs.begin(); leftover_p != leftover_pcap_ifs.end(); leftover_p = next) { next = leftover_p; @@ -523,7 +519,7 @@ void printportoutput(Target *currenths, PortList *plist) { int numignoredports = plist->numIgnoredPorts(); int numports = plist->numPorts(); - vector saved_servicefps; + std::vector saved_servicefps; if (o.noportscan) return; @@ -1141,7 +1137,7 @@ static void doscanflags() { }; if (o.scanflags != -1) { - string flagstring; + std::string flagstring; for (unsigned int i = 0; i < sizeof(flags) / sizeof(flags[0]); i++) { if (o.scanflags & flags[i].flag) @@ -2230,7 +2226,7 @@ static void printtraceroute_normal(Target *currenths) { static const int HOP_COL = 0, RTT_COL = 1, HOST_COL = 2; NmapOutputTable Tbl(currenths->traceroute_hops.size() + 1, 3); struct probespec probe; - list::iterator it; + std::list::iterator it; int row; /* No trace, must be localhost. */ @@ -2337,7 +2333,7 @@ static void printtraceroute_normal(Target *currenths) { static void printtraceroute_xml(Target *currenths) { struct probespec probe; - list::iterator it; + std::list::iterator it; /* No trace, must be localhost. */ if (currenths->traceroute_hops.size() == 0) diff --git a/portlist.cc b/portlist.cc index e69c6568c..0c8af8046 100644 --- a/portlist.cc +++ b/portlist.cc @@ -102,8 +102,6 @@ #include "tcpip.h" #include "libnetutil/netutil.h" -using namespace std; - #if HAVE_STRINGS_H #include #endif /* HAVE_STRINGS_H */ diff --git a/scan_engine.cc b/scan_engine.cc index ba998650f..073e22f65 100644 --- a/scan_engine.cc +++ b/scan_engine.cc @@ -114,7 +114,6 @@ #include #include -using namespace std; extern NmapOps o; class UltraScanInfo; @@ -499,7 +498,7 @@ public: /* Removes a probe from probes_outstanding, adjusts HSS and USS active probe stats accordingly, then deletes the probe. */ - void destroyOutstandingProbe(list::iterator probeI); + void destroyOutstandingProbe(std::list::iterator probeI); /* Removes all probes from probes_outstanding using destroyOutstandingProbe. This is used in ping scan to quit waiting @@ -509,7 +508,7 @@ public: /* Mark an outstanding probe as timedout. Adjusts stats accordingly. For connect scans, this closes the socket. */ - void markProbeTimedout(list::iterator probeI); + void markProbeTimedout(std::list::iterator probeI); /* New (active) probes are appended to the end of this list. When a host times out, it will be marked as such, but may hang around on @@ -518,7 +517,7 @@ public: are outstanding. Probes on the bench (reached the current maximum tryno and expired) are not counted in probes_outstanding. */ - list probes_outstanding; + std::list probes_outstanding; /* The number of probes in probes_outstanding, minus the inactive (timed out) ones */ unsigned int num_probes_active; /* Probes timed out but not yet retransmitted because of congestion @@ -537,20 +536,20 @@ public: tryno of benh members is bench_tryno. If the maximum tryno increases, everyone on the bench is moved to the retry_stack. */ - vector probe_bench; + std::vector probe_bench; unsigned int bench_tryno; /* # tryno of probes on the bench */ /* The retry_stack are probespecs that were on the bench but are now slated to be retried. It is kept sorted such that probes with highest retry counts are on top, ready to be taken first. */ - vector retry_stack; + std::vector retry_stack; /* retry_stack_tries MUST BE KEPT IN SYNC WITH retry_stack. retry_stack_tries[i] is the number of completed retries for the probe in retry_stack[i] */ - vector retry_stack_tries; + std::vector retry_stack_tries; /* tryno of probes on the retry queue */ /* Moves the given probe from the probes_outstanding list, to probe_bench, and decrements num_probes_waiting_retransmit accordingly */ - void moveProbeToBench(list::iterator probeI); + void moveProbeToBench(std::list::iterator probeI); /* Dismiss all probe attempts on bench -- the ports are marked 'filtered' or whatever is appropriate for having no response */ void dismissBench(); @@ -623,12 +622,12 @@ private: class UltraScanInfo { public: UltraScanInfo(); - UltraScanInfo(vector &Targets, struct scan_lists *pts, stype scantype) { + UltraScanInfo(std::vector &Targets, struct scan_lists *pts, stype scantype) { Init(Targets, pts, scantype); } ~UltraScanInfo(); /* Must call Init if you create object with default constructor */ - void Init(vector &Targets, struct scan_lists *pts, stype scantp); + void Init(std::vector &Targets, struct scan_lists *pts, stype scantp); unsigned int numProbesPerHost(); @@ -705,11 +704,11 @@ public: /* Any function which messes with (removes elements from) incompleteHosts may have to manipulate nextI */ - list incompleteHosts; + std::list incompleteHosts; /* Hosts are moved from incompleteHosts to completedHosts as they are completed. We keep them around because sometimes responses come back very late, after we consider a host completed. */ - list completedHosts; + std::list completedHosts; /* How long (in msecs) we keep a host in completedHosts */ unsigned int completedHostLifetime; /* The last time we went through completedHosts to remove hosts */ @@ -726,7 +725,7 @@ public: private: unsigned int numInitialTargets; - list::iterator nextI; + std::list::iterator nextI; }; @@ -1203,7 +1202,7 @@ HostScanStats::HostScanStats(Target *t, UltraScanInfo *UltraSI) { } HostScanStats::~HostScanStats() { - list::iterator probeI, next; + std::list::iterator probeI, next; /* Move any hosts from the bench to probes_outstanding for easier deletion */ for (probeI = probes_outstanding.begin(); probeI != probes_outstanding.end(); @@ -1261,7 +1260,7 @@ unsigned long HostScanStats::probeExpireTime(const UltraProbe *probe) { true. */ bool HostScanStats::sendOK(struct timeval *when) { struct ultra_timing_vals tmng; - list::iterator probeI; + std::list::iterator probeI; struct timeval probe_to, earliest_to, sendTime; long tdiff; @@ -1355,7 +1354,7 @@ bool HostScanStats::sendOK(struct timeval *when) { puts now in when. */ bool HostScanStats::nextTimeout(struct timeval *when) { struct timeval probe_to, earliest_to; - list::iterator probeI; + std::list::iterator probeI; bool firstgood = true; assert(when); @@ -1388,7 +1387,7 @@ bool HostScanStats::nextTimeout(struct timeval *when) { the allowedTryno may increase again. If it is false, any probes which have reached the given limit may be dealth with. */ unsigned int HostScanStats::allowedTryno(bool *capped, bool *mayincrease) { - list::iterator probeI; + std::list::iterator probeI; UltraProbe *probe = NULL; bool allfinished = true; unsigned int maxval = 0; @@ -1485,7 +1484,7 @@ HostScanStats *UltraScanInfo::nextIncompleteHost() { /* Return a number between 0.0 and 1.0 inclusive indicating how much of the scan is done. */ double UltraScanInfo::getCompletionFraction() { - list::iterator hostI; + std::list::iterator hostI; double total; /* Add 1 for each completed host. */ @@ -1510,8 +1509,8 @@ double UltraScanInfo::getCompletionFraction() { /* Initialize the state for ports that don't receive a response in all the targets. */ -static void set_default_port_state(vector &targets, stype scantype) { - vector::iterator target; +static void set_default_port_state(std::vector &targets, stype scantype) { + std::vector::iterator target; for (target = targets.begin(); target != targets.end(); target++) { switch (scantype) { @@ -1551,7 +1550,7 @@ static void set_default_port_state(vector &targets, stype scantype) { /* Order of initializations in this function CAN BE IMPORTANT, so be careful mucking with it. */ -void UltraScanInfo::Init(vector &Targets, struct scan_lists *pts, stype scantp) { +void UltraScanInfo::Init(std::vector &Targets, struct scan_lists *pts, stype scantp) { unsigned int targetno = 0; HostScanStats *hss; int num_timedout = 0; @@ -1728,7 +1727,7 @@ unsigned int UltraScanInfo::numProbesPerHost() { bool UltraScanInfo::sendOK(struct timeval *when) { struct timeval lowhtime = {0}; struct timeval tmptv; - list::iterator host; + std::list::iterator host; bool ggood = false; bool thisHostGood = false; bool foundgood = false; @@ -1786,7 +1785,7 @@ bool UltraScanInfo::sendOK(struct timeval *when) { /* Find a HostScanStats by its IP address in the incomplete and completed lists. Returns NULL if none are found. */ HostScanStats *UltraScanInfo::findHost(struct sockaddr_storage *ss) { - list::iterator hss; + std::list::iterator hss; struct sockaddr_storage target_addr; size_t target_addr_len; @@ -1833,7 +1832,7 @@ static bool pingprobe_is_better(const probespec *new_probe, int new_state, list, and remove any hosts from completedHosts which have exceeded their lifetime. Returns the number of hosts removed. */ int UltraScanInfo::removeCompletedHosts() { - list::iterator hostI, nxt; + std::list::iterator hostI, nxt; HostScanStats *hss = NULL; int hostsRemoved = 0; bool timedout = false; @@ -2216,7 +2215,7 @@ int HostScanStats::freshPortsLeft() { /* Removes a probe from probes_outstanding, adjusts HSS and USS active probe stats accordingly, then deletes the probe. */ -void HostScanStats::destroyOutstandingProbe(list::iterator probeI) { +void HostScanStats::destroyOutstandingProbe(std::list::iterator probeI) { UltraProbe *probe = *probeI; assert(!probes_outstanding.empty()); if (!probe->timedout) { @@ -2336,7 +2335,7 @@ static void ultrascan_adjust_timing(UltraScanInfo *USI, HostScanStats *hss, /* Mark an outstanding probe as timedout. Adjusts stats accordingly. For connect scans, this closes the socket. */ -void HostScanStats::markProbeTimedout(list::iterator probeI) { +void HostScanStats::markProbeTimedout(std::list::iterator probeI) { UltraProbe *probe = *probeI; assert(!probe->timedout); assert(!probe->retransmitted); @@ -2774,7 +2773,7 @@ void HostScanStats::retransmitBench() { /* Moves the given probe from the probes_outstanding list, to probe_bench, and decrements num_probes_waiting_retransmit accordingly */ -void HostScanStats::moveProbeToBench(list::iterator probeI) { +void HostScanStats::moveProbeToBench(std::list::iterator probeI) { UltraProbe *probe = *probeI; if (!probe_bench.empty()) assert(bench_tryno == probe->tryno); @@ -2791,7 +2790,7 @@ void HostScanStats::moveProbeToBench(list::iterator probeI) { /* Called when a ping response is discovered. If adjust_timing is false, timing stats are not updated. */ static void ultrascan_ping_update(UltraScanInfo *USI, HostScanStats *hss, - list::iterator probeI, + std::list::iterator probeI, struct timeval *rcvdtime, bool adjust_timing = true) { ultrascan_adjust_timeouts(USI, hss, *probeI, rcvdtime); @@ -2834,7 +2833,7 @@ static bool ultrascan_host_pspec_update(UltraScanInfo *USI, HostScanStats *hss, timing information and other stats as appropriate. If adjust_timing_hint is false, packet stats are not updated. */ static void ultrascan_host_probe_update(UltraScanInfo *USI, HostScanStats *hss, - list::iterator probeI, + std::list::iterator probeI, int newstate, struct timeval *rcvdtime, bool adjust_timing_hint = true) { UltraProbe *probe = *probeI; @@ -2897,7 +2896,7 @@ static void ultrascan_host_probe_update(UltraScanInfo *USI, HostScanStats *hss, instead. If adjust_timing_hint is false, packet stats are not updated. */ static void ultrascan_port_probe_update(UltraScanInfo *USI, HostScanStats *hss, - list::iterator probeI, + std::list::iterator probeI, int newstate, struct timeval *rcvdtime, bool adjust_timing_hint = true) { UltraProbe *probe = *probeI; @@ -3017,7 +3016,7 @@ static UltraProbe *sendConnectScanProbe(UltraScanInfo *USI, HostScanStats *hss, u16 destport, u8 tryno, u8 pingseq) { UltraProbe *probe = new UltraProbe(); - list::iterator probeI; + std::list::iterator probeI; static bool connecterror = false; int rc; int connect_errno = 0; @@ -3758,7 +3757,7 @@ static void sendGlobalPingProbe(UltraScanInfo *USI) { } static void doAnyPings(UltraScanInfo *USI) { - list::iterator hostI; + std::list::iterator hostI; HostScanStats *hss = NULL; gettimeofday(&USI->now, NULL); @@ -3833,11 +3832,11 @@ static void retransmitProbe(UltraScanInfo *USI, HostScanStats *hss, /* Go through the ProbeQueue of each host, identify any timed out probes, then try to retransmit them as appropriate */ static void doAnyOutstandingRetransmits(UltraScanInfo *USI) { - list::iterator hostI; - list::iterator probeI; + std::list::iterator hostI; + std::list::iterator probeI; /* A cache of the last processed probe from each host, to avoid re-examining a bunch of probes to find the next one that needs to be retransmitted. */ - std::map::iterator> probe_cache; + std::map::iterator> probe_cache; HostScanStats *host = NULL; UltraProbe *probe = NULL; int retrans = 0; /* Number of retransmissions during a loop */ @@ -3914,7 +3913,7 @@ static void doAnyOutstandingRetransmits(UltraScanInfo *USI) { debugging information */ static void printAnyStats(UltraScanInfo *USI) { - list::iterator hostI; + std::list::iterator hostI; HostScanStats *hss; struct ultra_timing_vals hosttm; @@ -3962,9 +3961,9 @@ static bool do_one_select_round(UltraScanInfo *USI, struct timeval *stime) { int timeleft; ConnectScanInfo *CSI = USI->gstats->CSI; int sd; - list::iterator hostI; + std::list::iterator hostI; HostScanStats *host; - list::iterator probeI, nextProbeI; + std::list::iterator probeI, nextProbeI; UltraProbe *probe = NULL; unsigned int listsz; unsigned int probenum; @@ -4016,7 +4015,7 @@ static bool do_one_select_round(UltraScanInfo *USI, struct timeval *stime) { and find the relevant ones. Note the peculiar structure of the loop--we iterate through both incompleteHosts and completedHosts, because global timing pings are sent to hosts in completedHosts. */ - list::iterator incompleteHostI, completedHostI; + std::list::iterator incompleteHostI, completedHostI; incompleteHostI = USI->incompleteHosts.begin(); completedHostI = USI->completedHosts.begin(); while ((incompleteHostI != USI->incompleteHosts.end() @@ -4202,7 +4201,7 @@ static bool get_arp_result(UltraScanInfo *USI, struct timeval *stime) { bool timedout = false; struct sockaddr_in sin; HostScanStats *hss = NULL; - list::iterator probeI; + std::list::iterator probeI; int gotone = 0; gettimeofday(&USI->now, NULL); @@ -4273,7 +4272,7 @@ static bool get_ns_result(UltraScanInfo *USI, struct timeval *stime) { bool has_mac = false; struct sockaddr_in6 sin6; HostScanStats *hss = NULL; - list::iterator probeI; + std::list::iterator probeI; int gotone = 0; gettimeofday(&USI->now, NULL); @@ -4351,7 +4350,7 @@ static bool get_pcap_result(UltraScanInfo *USI, struct timeval *stime) { unsigned int bytes; long to_usec; HostScanStats *hss = NULL; - list::iterator probeI; + std::list::iterator probeI; UltraProbe *probe = NULL; int newstate = PORT_UNKNOWN; unsigned int probenum; @@ -4960,7 +4959,7 @@ static int get_ping_pcap_result(UltraScanInfo *USI, struct timeval *stime) { } *ping; long to_usec; HostScanStats *hss = NULL; - list::iterator probeI; + std::list::iterator probeI; UltraProbe *probe = NULL; unsigned int trynum = 0; int newstate = HOST_UNKNOWN; @@ -5455,10 +5454,10 @@ static void waitForResponses(UltraScanInfo *USI) { /* Initiate libpcap or some other sniffer as appropriate to be able to catch responses */ -static void begin_sniffer(UltraScanInfo *USI, vector &Targets) { - string pcap_filter = ""; +static void begin_sniffer(UltraScanInfo *USI, std::vector &Targets) { + std::string pcap_filter = ""; /* 20 IPv6 addresses is max (45 byte addy + 14 (" or src host ")) * 20 == 1180 */ - string dst_hosts = ""; + std::string dst_hosts = ""; unsigned int len = 0; unsigned int targetno; bool doIndividual = Targets.size() <= 20; // Don't bother IP limits if scanning huge # of hosts @@ -5557,8 +5556,8 @@ static void begin_sniffer(UltraScanInfo *USI, vector &Targets) { /* Go through the data structures, making appropriate changes (such as expiring probes, noting when hosts are complete, etc. */ static void processData(UltraScanInfo *USI) { - list::iterator hostI; - list::iterator probeI, nextProbeI; + std::list::iterator hostI; + std::list::iterator probeI, nextProbeI; HostScanStats *host = NULL; UltraProbe *probe = NULL; unsigned int maxtries = 0; @@ -5691,9 +5690,9 @@ static void processData(UltraScanInfo *USI) { } /* Start the timeout clocks of any targets that aren't already timedout */ -static void startTimeOutClocks(vector &Targets) { +static void startTimeOutClocks(std::vector &Targets) { struct timeval tv; - vector::iterator hostI; + std::vector::iterator hostI; gettimeofday(&tv, NULL); for (hostI = Targets.begin(); hostI != Targets.end(); hostI++) { @@ -5708,7 +5707,7 @@ static void startTimeOutClocks(vector &Targets) { changed timing information will be stored in it when the function returns. It exists so timing can be shared across invocations of this function. If to is NULL (its default value), a default timeout_info will be used. */ -void ultra_scan(vector &Targets, struct scan_lists *ports, +void ultra_scan(std::vector &Targets, struct scan_lists *ports, stype scantype, struct timeout_info *to) { o.current_scantype = scantype; diff --git a/service_scan.cc b/service_scan.cc index 59839ff01..2316f7f56 100644 --- a/service_scan.cc +++ b/service_scan.cc @@ -130,10 +130,6 @@ #include #include -/* Workaround for lack of namespace std on HP-UX 11.00 */ -namespace std {}; -using namespace std; - extern NmapOps o; // Details on a particular service (open port) we are trying to match @@ -217,7 +213,7 @@ private: void addServiceChar(char c, int wrapat); // Like addServiceChar, but for a whole zero-terminated string void addServiceString(const char *s, int wrapat); - vector::iterator current_probe; + std::vector::iterator current_probe; u8 *currentresp; int currentresplen; char *servicefp; @@ -228,11 +224,11 @@ private: // This holds the service information for a group of Targets being service scanned. class ServiceGroup { public: - ServiceGroup(vector &Targets, AllProbes *AP); + ServiceGroup(std::vector &Targets, AllProbes *AP); ~ServiceGroup(); - list services_finished; // Services finished (discovered or not) - list services_in_progress; // Services currently being probed - list services_remaining; // Probes not started yet + std::list services_finished; // Services finished (discovered or not) + std::list services_in_progress; // Services currently being probed + std::list services_remaining; // Probes not started yet unsigned int ideal_parallelism; // Max (and desired) number of probes out at once. ScanProgressMeter *SPM; int num_hosts_timedout; // # of hosts timed out during (or before) scan @@ -1039,7 +1035,7 @@ ServiceProbe::ServiceProbe() { } ServiceProbe::~ServiceProbe() { - vector::iterator vi; + std::vector::iterator vi; if (probename) free(probename); if (probestring) free(probestring); @@ -1106,7 +1102,7 @@ void ServiceProbe::setProbeString(const u8 *ps, int stringlen) { } else probestring = NULL; } -void ServiceProbe::setPortVector(vector *portv, const char *portstr, +void ServiceProbe::setPortVector(std::vector *portv, const char *portstr, int lineno) { const char *current_range; char *endptr; @@ -1184,7 +1180,7 @@ void ServiceProbe::setProbablePorts(enum service_tunnel_type tunnel, ports for this probe and tunnel type. Use a tunnel of SERVICE_TUNNEL_SSL or SERVICE_TUNNEL_NONE as appropriate */ bool ServiceProbe::portIsProbable(enum service_tunnel_type tunnel, u16 portno) { - vector *portv; + std::vector *portv; portv = (tunnel == SERVICE_TUNNEL_SSL)? &probablesslports : &probableports; @@ -1196,7 +1192,7 @@ bool ServiceProbe::portIsProbable(enum service_tunnel_type tunnel, u16 portno) { // Returns true if the passed in service name is among those that can // be detected by the matches in this probe; bool ServiceProbe::serviceIsPossible(const char *sname) { - vector::iterator vi; + std::vector::iterator vi; for(vi = detectedServices.begin(); vi != detectedServices.end(); vi++) { if (strcmp(*vi, sname) == 0) @@ -1387,7 +1383,7 @@ int AllProbes::check_excluded_port(unsigned short portno, int proto) // no version matched, that field will be NULL. This function may // return NULL if there are no match lines at all in this probe. const struct MatchDetails *ServiceProbe::testMatch(const u8 *buf, int buflen, int n = 0) { - vector::iterator vi; + std::vector::iterator vi; const struct MatchDetails *MD; for(vi = matches.begin(); vi != matches.end(); vi++) { @@ -1409,7 +1405,7 @@ AllProbes::AllProbes() { } AllProbes::~AllProbes() { - vector::iterator vi; + std::vector::iterator vi; // Delete all the ServiceProbe's inside the probes vector for(vi = probes.begin(); vi != probes.end(); vi++) { @@ -1423,7 +1419,7 @@ AllProbes::~AllProbes() { // Tries to find the probe in this AllProbes class which have the // given name and protocol. It can return the NULL probe. ServiceProbe *AllProbes::getProbeByName(const char *name, int proto) { - vector::iterator vi; + std::vector::iterator vi; if (proto == IPPROTO_TCP && nullProbe && strcmp(nullProbe->getName(), name) == 0) return nullProbe; @@ -1480,7 +1476,7 @@ int AllProbes::isExcluded(unsigned short port, int proto) { // back to probes later in the file. This function also free()s all the // fallbackStrs. void AllProbes::compileFallbacks() { - vector::iterator curr; + std::vector::iterator curr; char *tp; int i; @@ -1832,7 +1828,7 @@ u8 *ServiceNFO::getcurrentproberesponse(int *respstrlen) { } -ServiceGroup::ServiceGroup(vector &Targets, AllProbes *AP) { +ServiceGroup::ServiceGroup(std::vector &Targets, AllProbes *AP) { unsigned int targetno; ServiceNFO *svc; Port *nxtport; @@ -1887,7 +1883,7 @@ ServiceGroup::ServiceGroup(vector &Targets, AllProbes *AP) { } ServiceGroup::~ServiceGroup() { - list::iterator i; + std::list::iterator i; for(i = services_finished.begin(); i != services_finished.end(); i++) delete *i; @@ -2101,7 +2097,7 @@ static void considerPrintingStats(ServiceGroup *SG) { /* Check if target is done (no more probes remaining for it in service group), and responds appropriately if so */ static void handleHostIfDone(ServiceGroup *SG, Target *target) { - list::iterator svcI; + std::list::iterator svcI; bool found = false; for(svcI = SG->services_in_progress.begin(); @@ -2132,7 +2128,7 @@ static void handleHostIfDone(ServiceGroup *SG, Target *target) { // set it to the given probe_state pass NULL for nsi if you don't want // it to be deleted (for example, if you already have done so). static void end_svcprobe(nsock_pool nsp, enum serviceprobestate probe_state, ServiceGroup *SG, ServiceNFO *svc, nsock_iod nsi) { - list::iterator member; + std::list::iterator member; Target *target = svc->target; svc->probe_state = probe_state; @@ -2544,11 +2540,11 @@ static int shouldWePrintFingerprint(ServiceNFO *svc) { // Nmap to output later. static void processResults(ServiceGroup *SG) { -list::iterator svc; +std::list::iterator svc; for(svc = SG->services_finished.begin(); svc != SG->services_finished.end(); svc++) { if ((*svc)->probe_state != PROBESTATE_FINISHED_NOMATCH) { - vector cpe; + std::vector cpe; if (*(*svc)->cpe_a_matched) cpe.push_back((*svc)->cpe_a_matched); @@ -2583,7 +2579,7 @@ list::iterator svc; that this is called before any probes have been launched (so they are all in services_remaining */ static void startTimeOutClocks(ServiceGroup *SG) { - list::iterator svcI; + std::list::iterator svcI; Target *target = NULL; struct timeval tv; @@ -2602,7 +2598,7 @@ static void startTimeOutClocks(ServiceGroup *SG) { // pairs that are excluded. We use AP->isExcluded() to determine which ports // are excluded. static void remove_excluded_ports(AllProbes *AP, ServiceGroup *SG) { - list::iterator i, nxt; + std::list::iterator i, nxt; ServiceNFO *svc; for(i = SG->services_remaining.begin(); i != SG->services_remaining.end(); i=nxt) { @@ -2631,7 +2627,7 @@ static void remove_excluded_ports(AllProbes *AP, ServiceGroup *SG) { /* Execute a service fingerprinting scan against all open ports of the Targets specified. */ -int service_scan(vector &Targets) { +int service_scan(std::vector &Targets) { // int service_scan(Target *targets[], int num_targets) AllProbes *AP; ServiceGroup *SG; diff --git a/targets.cc b/targets.cc index bbd67241d..c49cb74c4 100644 --- a/targets.cc +++ b/targets.cc @@ -106,15 +106,15 @@ #include "nmap_tty.h" #include "utils.h" #include "xml.h" -using namespace std; + extern NmapOps o; /* Conducts an ARP ping sweep of the given hosts to determine which ones are up on a local ethernet network */ static void arpping(Target *hostbatch[], int num_hosts) { - /* First I change hostbatch into a vector, which is what ultra_scan + /* First I change hostbatch into a std::vector, which is what ultra_scan takes. I remove hosts that cannot be ARP scanned (such as localhost) */ - vector targets; + std::vector targets; int targetno; targets.reserve(num_hosts);