[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ntop-dev
Subject:    RE: [Ntop-dev] Re: [Ntop] V 3.0 -- won't run as daemon on Mac OS X
From:       "Burton M. Strauss III" <Burton () ntopsupport ! com>
Date:       2004-04-01 15:09:54
Message-ID: JIEPJGFPFMFIGBNCPKGGKEOAFFAA.Burton () ntopsupport ! com
[Download RAW message or body]

I don't do OS X, so this is really just a some random thoughts.  Hopefully
Luca will look at it.  But this is as far as I'm going to take it.

1. You seem to have some IPv6 stuff - enough so it compiles.  Don't know
what support there really is in OS X, but ./configure --disable-ipv6 may be
a good start.  That's what #undef INET6 did.

2. I'm still suspicious of the IPv6 code in initSocket() [webInterface.c] -
if getaddrinfo() succeeds, but returns nothing usable, then the ai_addrlen
would be zero/uninitialized, and that would cause the EINVAL.  There's
nothing in the Linux man page that says the returned array can't be null.
You could try changing this chunk of code, around 7415:

  if((rc = getaddrinfo(addr,strport,&hints,&aitop)) !=0) {
    traceEvent(CONST_TRACE_ERROR, "INITWEB: getaddrinfo() error %s(%d)",
gai_strerror(rc), rc);
    traceEvent(CONST_TRACE_ERROR, "INITWEB: Unable to convert address '%s' -
"
               "not binding to a particular interface", addr);
  } else {
    for (ai = aitop; ai; ai = ai->ai_next) {

to this:

  if((rc = getaddrinfo(addr,strport,&hints,&aitop)) !=0) {
    traceEvent(CONST_TRACE_ERROR, "INITWEB: getaddrinfo() error %s(%d)",
gai_strerror(rc), rc);
    traceEvent(CONST_TRACE_ERROR, "INITWEB: Unable to convert address '%s' -
"
               "not binding to a particular interface", addr);
  } else if(aitop == NULL) {
    traceEvent(CONST_TRACE_WARNING, "INITWEB: getaddrinfo() returned no
data - %s(%d)", gai_strerror(rc), rc);
  } else {    for (ai = aitop; ai; ai = ai->ai_next) {

That won't FIX it - the bind() call will still be wrong, but there would be
a log message to prove/disprove the hypothesis (oh, yeah, you would need to
#define INET6 in config.h).

3) When you #undef INET6 (equiv to ./configure --disable-ipv6), you
definitely got further. The messages you reported could - only could - be
related to some of the other work-arounds we have in place.

You might try adding the HAVE_FILEDESCRIPTORBUG line (see, for example
configureextra/LINUXfedora) in configureextra/darwin.  Then do
./configure --disable-ipv6, make, make install, etc.


But I remain completely puzzled why your system fails and 80-odd (41 of whom
are running 3.0) others work.

Here's the relevant log extract...

count   OS      Version        Cpu         kernel/rlse     s n GCC
          http? ssl    gdbm  zlib  pcap       interfaces
------- ------- ------- -------------- ----------- ---------------
     - - ------ ----- ------ ----- ----- ---------- ----------
     27 Darwin  7.3.0          powerpc     7.3.0               3.3.0
         http  0.9.7b 1.8.3 1.1.4 0.8        en0
      8 Darwin  7.3.0          powerpc     7.3.0               3.3.0
         http  0.9.7b 1.8.3 1.1.4 0.8        en1
      3 Darwin  7.3.0          powerpc     7.3.0               3.3.0
         both  0.9.7b 1.8.3 1.1.4 0.8        en1
      3 Darwin  7.3.0          powerpc     7.3.0               3.3.0
         both  0.9.7b 1.8.3 1.1.4 0.8        en0

So I guess we've really only seen real users running 7.3...  maybe more info
on your specific config would be helpful, beyond 'OS X'.





-----Burton




_______________________________________________
Ntop-dev mailing list
Ntop-dev@unipi.it
http://listgateway.unipi.it/mailman/listinfo/ntop-dev
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic