E. Hietbrink wrote: > Carlos Y. Villalpando wrote: > >>> ;-) of course. I'd like to ask for nl.netrek.org to be added, but first >>> I am curious what makes the automates setup fail. David Watson (Volcane) >>> also wondered why eurotwinks.netrek.org didn't get listed a while ago, >>> so it is not just my server. >> >> No clue. I could do a metaserver log and a tcpdump log to find out if >> stuff is getting to my sever to begin with. >> >> Let us know when you want it added. > > Small update. I now know what makes it fail. Now I still need to fix it. > > What I did: First checked if I didn't see any PDUs sent out to any > metaserver. Nothing. Then I started checking the file ERRORS. Ahum. > Should have done that sooner ;-) I got loads and loads of these two > types of messages: > > solicit: udp_attach: unable to bind to desired interface > (this.host.name field): Can't assign requested address > solicit: udp_tx: sendto: Can't assign requested address > > Closer investigation and debugging in solicit.c reveals that somehow > the calls to gethostbyname(m->ours) and gethostbyname(m->host) return > garbage. Wierd. This I need to look into. I seem to have a 64-bit problem. I run a Sun UltraSparc with NetBSD and the Vanilla server code isn't 64-bit safe. Example: changing the pointer copy in solicit.c from: m->address.sin_addr.s_addr = *(long *) hp->h_addr; to: ((char *)&(m->address.sin_addr.s_addr))[0] = hp->h_addr[0]; ((char *)&(m->address.sin_addr.s_addr))[1] = hp->h_addr[1]; ((char *)&(m->address.sin_addr.s_addr))[2] = hp->h_addr[2]; ((char *)&(m->address.sin_addr.s_addr))[3] = hp->h_addr[3]; solved my gethostbyname() issue. I think the ultrasparc is capable of running both 64 as 32 bit binairies concurrently, however I haven't found any compiler flag to enforce 32bit compiles. What's the procedure to follow here? Make the entire server 64-bit safe? > I did see another thing. Namely I run the server on a box behind a > NAT firewall. So my internal addresses won't be the same as the call to > gethostbyname("nl.netrek.org") returns. As a result the bind() call will > fail with (errno = 49 = EADDRNOTAVAIL) and the automated registration > will still fail. > > Is the bind() call really necessary? What if the server simply sends > the raw announcement PDU. Does the metaserver run a check on sender > address with the DNS-lookup-result of the reported serveraddress? That > would still make it `failsafe'. At the moment i'm running with the bind call deleted. Greetx, Erik _______________________________________________ vanilla-metaserver mailing list vanilla-metaserver at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/vanilla-metaserver