Nmap Development mailing list archives

Re: small patch allowing build with -stdlib=libc++


From: Daniel Miller <bonsaiviking () gmail com>
Date: Thu, 17 Apr 2014 14:50:05 -0500

On 04/17/2014 02:23 PM, olli hauer wrote:
Hi,

is it possible to adopt the following patch to make the compiler happy and also allow usage of -stdlib=libc++


Index: scan_engine.cc
===================================================================
--- scan_engine.cc      (revision 32836)
+++ scan_engine.cc      (working copy)
@@ -3129,7 +3129,7 @@
    }
    if (o.spoofsource && !bind_failed) {
      o.SourceSockAddr(&ss, &sslen);
-    if (bind(sd, (struct sockaddr*)&ss, sslen) != 0) {
+    if (::bind(sd, (struct sockaddr*)&ss, sslen) != 0) {
        error("%s: Problem binding source address (%s), errno: %d", __func__, inet_socktop(&ss), socket_errno());
        perror("bind");
        bind_failed = 1;
Index: traceroute.cc
===================================================================
--- traceroute.cc       (revision 32836)
+++ traceroute.cc       (working copy)
@@ -221,8 +221,6 @@
  /* A global random token used to distinguish this traceroute's probes from
     those of other traceroutes possibly running on the same machine. */
  static u16 global_id;
-/* A global cache of known hops, indexed by TTL and address. */
-static std::map<struct HopIdent, Hop *> hop_cache;
  /* A list of timedout hops, which are not kept in hop_cache, so we can delete
     all hops on occasion. */
  static std::list<Hop *> timedout_hops;
@@ -235,6 +233,9 @@
  static struct timeval get_now(struct timeval *now = NULL);
  static const char *ss_to_string(const struct sockaddr_storage *ss);

+/* A global cache of known hops, indexed by TTL and address. */
+static std::map<struct HopIdent, Hop *> hop_cache;
+
  struct Hop {
    Hop *parent;
    struct sockaddr_storage tag;




_______________________________________________
Sent through the dev mailing list
http://nmap.org/mailman/listinfo/dev
Archived at http://seclists.org/nmap-dev/
Olli,

I appreciate your reports improving Nmap's standards compliance. I think I understand qualifying ::bind to avoid collision with std::bind, but what is the purpose of the second part of the patch? What is the error that clang++ is giving? I don't have my clang build environment up and running at the moment, unfortunately.

Dan
_______________________________________________
Sent through the dev mailing list
http://nmap.org/mailman/listinfo/dev
Archived at http://seclists.org/nmap-dev/


Current thread: