AAO25.com

America's Army => General Chat => Topic started by: pit-23 on Tuesday, February 07, 2012, 03:47:53 AM

Title: server not visible in browser
Post by: pit-23 on Tuesday, February 07, 2012, 03:47:53 AM
I used assist gui to install and start server. GUI says everything is fine, it's visible in battletracker (http://battletracker.com/aaoserver/85.14.85.18:1716 (http://battletracker.com/aaoserver/85.14.85.18:1716)). However it is not present in assist browser, or sometimes it is, but reported as "offline".

All ports are open, aa 2.8 worked fine in this setup.

Any hints?
Title: Re: server not visible in browser
Post by: Jonnym on Tuesday, February 07, 2012, 04:43:56 AM
Shows up in browser ok but cannot join it, I would goto settings and then hit complete re-install. something wrong and i dont know what.
Title: Re: server not visible in browser
Post by: pit-23 on Tuesday, February 07, 2012, 06:02:07 AM
OK, did that, waiting for completion.

What is the exact meaning of "Server offline"? No response to server query?

BTW, is the query protocol in aa2.5 same as aa2.8? I don't remember official name of this (gamespy?) but it was initiated by sending something like '\xFE\xFD\x00ping\x00\xFF\x00' to port 1717.
Title: Re: server not visible in browser
Post by: pit-23 on Tuesday, February 07, 2012, 07:14:41 AM
Complete reinstall finished, didn't help.

Attached is server log, maybe you can spot something there.
Title: Re: server not visible in browser
Post by: Jonnym on Tuesday, February 07, 2012, 07:23:03 AM
Looked at log file, all is OK. I don't know why its not working.
Make sure there is nothing else running on the server using the same ports.
Try using different ports like 1816,1817

There are many threads on this forum about this issue to help you.
Title: Re: server not visible in browser
Post by: Spanky on Tuesday, February 07, 2012, 13:08:22 PM
First thing that comes to mind; are you trying to run a 2.8 server at the same time?
Title: Re: server not visible in browser
Post by: pit-23 on Tuesday, February 07, 2012, 15:28:49 PM
No, 2.8 has been disabled.

One additional fact about browser: I noticed, that when server is visible in browser, but seen as offline, the IP displayed is completely wrong (different country), and it changes from time to time. The rest of info is correct (country flag, map, slots count, round len, etc.) It seems like some incorrect IPs are assigned to the server, and that explains why the server is seen as offline (no query response from those IPs).

This effect is machine specific, e.g. on the server machine, the browser displays the correct IP (and the server is seen as online).

Is it possible to take a look at browser sources? It looks like some browser bug, I can try to find it without taking your time.
Title: Re: server not visible in browser
Post by: pit-23 on Tuesday, February 07, 2012, 17:31:09 PM
Another fact i noticed: the incorrect ip that is displayed for my server (Chickens Farm) is the ip of the server that i deployed to recently.
Title: Re: server not visible in browser
Post by: Jonnym on Wednesday, February 08, 2012, 02:44:09 AM
I will take a look at the code..
either the ip address recorded in the gamespy server list is wrong, or your server reply on a different address/port, assist does not recognise so just places it on the top of the list.
Title: Re: server not visible in browser
Post by: Jonnym on Wednesday, February 08, 2012, 12:28:55 PM
Ok, When i query this server it replies on a different IP address to the one recorded in the gamespy server list. There is nothing i can do about this.
Server is listed on IP address: 85.14.85.18
When i query it i get a reply from: 89.25.239.18
Only you will know why that is, possibly you have bonded multiple internet connections?
Title: Re: server not visible in browser
Post by: pit-23 on Wednesday, February 08, 2012, 15:58:24 PM
OK, thanks, I'll check that.
Title: Re: server not visible in browser
Post by: pit-23 on Wednesday, February 08, 2012, 16:22:11 PM
But wait, why does browser care from which IP the query response arrives?

You want to query a server at given IP/port, you create socket, send query to destination, and receive response that arrives at that socket. It's normal that the response can arrive from different IP (due to multiple network interfaces). Is there any special reason to check the IP of the response?
Title: Re: server not visible in browser
Post by: Jonnym on Wednesday, February 08, 2012, 16:43:30 PM
Ok so when I query 70 servers all at once to get the ping times and player lists etc, how am I supposed to know which server the responces came from and put into the correct slots if i can't rely on source IP. Putting a different IP addess on the packet other than the source address is called spoofing.
There are no sockets when using UDP communication, Sockets are for TCP protocol, UDP is a connection-less protocol.

Things are done differenly for the port, becuase of NAT-translation the source port on a packet can be completely random which is why the server port is defined in the gamespy query in field 8. The ip address is not, that should be reliable.
Title: Re: server not visible in browser
Post by: pit-23 on Wednesday, February 08, 2012, 18:58:41 PM
Reply source IP could be ignored if each query was done on separate socket. It's possible, but surely using single socket and checking source address is simpler.

Sockets are used for both UDP and TCP.

OK, so now the question is: in multihomed server case, is it possible to force that the IP seen by the master server when building list is the same as the IP on which game server listens for answering queries? In AA 2.8.5 there was command line option 'multihome=<ip>' and everything worked fine, I don't see such thing in 2.5.
Title: Re: server not visible in browser
Post by: Jonnym on Thursday, February 09, 2012, 03:58:18 AM
No there is not such option.
Title: Re: server not visible in browser
Post by: pit-23 on Friday, February 10, 2012, 17:20:51 PM
Is there any way aa 2.5 server can be reliably used in multihomed host?

In particular, can I influence, what address is given to the auth/master server?

Also, I see UdpTerminate and UdpRestart messages in the server console - what do they mean?

Netstat shows that:
  UDP    0.0.0.0:1716           *:*    [aasrv001.exe]
  UDP    0.0.0.0:1717           *:*    [aaudp001.exe]
  UDP    0.0.0.0:1718           *:*    [aasrv001.exe]
Is it possible to force aaudp001.exe to bind to specific address instead of 'any'?
Title: Re: server not visible in browser
Post by: pit-23 on Saturday, February 11, 2012, 08:53:22 AM
When I start original 2.5 server.exe with option 'multihome=85.14.85.18', and put IP=85.14.85.18 in server.ini section, i get following situation:

UDP    85.14.85.18:1716       *:*
UDP    85.14.85.18:1717       *:*

Now, I'd like to achieve this in 'assist' setup. How can I do it, and if not, can you help with this?
Title: Re: server not visible in browser
Post by: Jonnym on Saturday, February 11, 2012, 09:13:43 AM
it would require some extensive modification to my system. and i don't really want to do it. For one thing I don't get paid for it and no one makes any donations. and thus far you are the only person who has requested this feature. everyone else seems to be OK.
Title: Re: server not visible in browser
Post by: pit-23 on Saturday, February 11, 2012, 09:30:38 AM
So maybe you shall consider opening up the sources? I definitely would be great for community.

Using your time is the last thing I want to do. Give me access to sources and I make a nice patch for you, which you can then review and accept/reject.
Title: Re: server not visible in browser
Post by: Jonnym on Saturday, February 11, 2012, 09:48:10 AM
Yep its publicly available on sourceforge...
http://sourceforge.net/projects/aa25assist/files/
Title: Re: server not visible in browser
Post by: pit-23 on Saturday, February 11, 2012, 09:54:39 AM
Ooops, sorry, I didn't notice it.
Title: Re: server not visible in browser
Post by: [SWISS]Merlin on Monday, February 13, 2012, 02:56:27 AM
hey pit
what about this:
maybe wrong port forwarding with router and nat to your server/workstation?
Title: Re: server not visible in browser
Post by: pit-23 on Monday, February 13, 2012, 11:22:34 AM
Yes, the part of the problem may also lie there. Unfortunately i'm noob as far as those issues are concerned, so I'd like to eliminate more obvious problems first.

If the server is supposed to be visible at a particular IP (i.e. e.g. that browser rejects query response sent with different source address than expected), then the 1716-1718 sockets must be bind at that address, not at INADDR_ANY (0.0.0.0). After some googling I see that this is typical solution to this problem with other UDP servers (e.g. TFTP).

Also, AA 2.8 and 3.0 worked in this server for years without problems, and the first difference is that they _do_ bind at particular address, not 0.0.0.0. Therefore I assume, that changing binding will most probably solve the problem.
Title: Re: server not visible in browser
Post by: pit-23 on Monday, February 13, 2012, 11:43:18 AM
Yep its publicly available on sourceforge...
http://sourceforge.net/projects/aa25assist/files/

Thanks again, I'll take a look at this.

Now I have just one more request: can you give some links to any existing descriptions of e.g. protocols, that can be helpful in understanding those sources?
Title: Re: server not visible in browser
Post by: Jonnym on Monday, February 13, 2012, 12:22:11 PM
There are none, it was all done by reverse engineeing using packet sniffers and such.
Title: Re: server not visible in browser
Post by: Go_Cat75 on Wednesday, February 15, 2012, 03:12:41 AM
Looked at log file, all is OK. I don't know why its not working.
Make sure there is nothing else running on the server using the same ports.
Try using different ports like 1816,1817

There are many threads on this forum about this issue to help you.

I had a similar problem after I forwarded port 1718 it worked so I guess you use 1818.
Title: Re: server not visible in browser
Post by: pit-23 on Thursday, February 16, 2012, 20:46:40 PM
http://g.images.memegenerator.net/instances/400x/14712310.jpg

Your input to the topic is very valuable. Same as in the 'honor server + why AA2.5' thread.
Title: Re: server not visible in browser
Post by: pit-23 on Thursday, February 16, 2012, 21:08:19 PM
I don't know what 'D&M' is, but hey, come to my place, and I buy you all you can drink.
Title: Re: server not visible in browser
Post by: ^^UnDiSpUtEd^^ on Friday, February 17, 2012, 04:57:24 AM
;) This topic keeps me creepy too:) You can ask at least with teamviewer or smth but not inviting unknow people to ur place;) stranger:P YEH back to topic
Title: Re: server not visible in browser
Post by: pit-23 on Saturday, February 18, 2012, 08:52:49 AM
Johnny, can you upload latest sources to sourceforge? The currently present ones seem to not match the latest binaries.
Title: Re: server not visible in browser
Post by: Jonnym on Saturday, February 18, 2012, 09:07:39 AM
Will do this later, i need to remove the sensitive stuff that could be abused first.
Title: Re: server not visible in browser
Post by: Jonnym on Saturday, February 18, 2012, 11:59:35 AM
Code has now been published on sourceforge.
Title: Re: server not visible in browser
Post by: pit-23 on Saturday, February 18, 2012, 12:22:21 PM
Thanks.
Title: Re: server not visible in browser
Post by: pit-23 on Saturday, February 18, 2012, 12:47:52 PM
And regarding the parts that are removed: which parts of the projects are complete (can be rebuild from sources) and which not? I assume that dedisrv.rbp and aaudp.rbp (the two which comprise dedicated server part) are complete, right?
Title: Re: server not visible in browser
Post by: Jonnym on Saturday, February 18, 2012, 13:18:25 PM
All server side stuff is complete.
Title: Re: server not visible in browser
Post by: pit-23 on Saturday, February 18, 2012, 19:52:48 PM
OK, I finally found some time to go through the server-side code, and add the multihome option. I just made the aaudp.exe to bind at given IP, and passed the "multihome" option to AA server, so that it binds there too. That way all ports 1716-1718 are bound at given address, not "0.0.0.0". And as I suspected, this seems to solve the problem (so I don't understand why you said that it will require "extensive modifications" to your system).

Now, I'd like you to merge my changes into your source. I can't live with my own compiled version, since I use trial version of real studio IDE, and my binaries die after 5 minutes :-D.

How do you want me to give you those changes? Previously I talked about diff-s, but it seems impossible in this shitty binary blob world of realbasic. Oh, there is some option to export to xml, so i could diff this, but it doesn't seem to be easy to merge either. For the moment, I will just describe the needed changes in this thread below.

I would appreciate if you merge this and release new binary quickly - I can't run server until then. Or maybe you could tell me IDE which will build those .rpb without any time limits - then I don't need your new release.
Title: Re: server not visible in browser
Post by: pit-23 on Saturday, February 18, 2012, 20:43:37 PM
Here are the changes. As I said, for the moment I just will try to make a manual diff below, in order to make your merging job easier. As for collors, yellow means context and comment information, red means removed lines, green means added lines. There may be some typos in there, but that's because I had to craft it manually.

[In aaudp.rbp :: App :: Event Handlers :: Run
We bind UDP socket to the IP given in third command line arg (if any)]
  UDPs.RouterHops = 255
  UDPs.Port = val(args(1))
  if UBound(args) >= 3 then
    Dim multihomeIp As String
    multihomeIp = args(3)
    Dim i as Integer
    For i = 0 to System.NetworkInterfaceCount - 1
      Dim n As NetworkInterface
      n = System.GetNetworkInterface(i)
      if n.IPAddress = multihomeIp then
        UDPs.NetworkInterface = n
      end if
    Next
  end if
  UDPs.Connect

[In dedisrv.rbp :: App :: Methods :: setno
We assign number to additional aa25.ini param "multihomeip"]
  CASE "colour"
    RETURN 28
  CASE "multihomeip"
    RETURN 29
  CASE "processid"
    RETURN 98

[In dedisrv.rbp :: App :: Methods :: RunSrv
We propagate multihome IP (if present) to serverx.exe and aaudp.exe]
    Dim srvOptions As String
    srvOptions = "LAN "+ Filename(map) + " ini=aa25srv.ini log=aa25srv.log"
    if settings(29) <> "" then srvOptions = srvOptions + " multihome=" + settings(29)
   
    Dim udpOptions As String
    udpOptions = str(srvport+1) + " " + str(srvport+2)
    if settings(29) <> "" then udpOptions = udpOptions + " " + settings(29)   

    if success = true then
      Mshell.Execute "aasrv"+settings(98)+".exe LAN "+Filename(map)+" ini=aa25srv.ini log=aa25srv.log"
      Mshell.Execute "aasrv"+settings(98)+".exe " + srvOptions
      udpx.Execute "aaudp"+settings(98)+".exe " + str(srvport+1) + " " + str(srvport+2)
      udpx.Execute "aaudp"+settings(98)+".exe "+ udpOptions
    else
      Mshell.Execute chr(34)+aahome.child("System").ShellPath+"\aasrv"+settings(98)+".exe"+chr(34)+" LAN "+Filename(map)+" ini=aa25srv.ini log=aa25srv.log"
      Mshell.Execute chr(34)+aahome.child("System").ShellPath+"\aasrv"+settings(98)+".exe"+chr(34)+" " + srvOptions
      udpx.Execute chr(34)+aahome.child("System").ShellPath+"\aaudp"+settings(98)+".exe"+chr(34)+" " + str(srvport+1) + " " + str(srvport+2)
      udpx.Execute chr(34)+aahome.child("System").ShellPath+"\aaudp"+settings(98)+".exe"+chr(34)+" " + udpOptions
    end if
    SrvRun = true

[In dedisrv.rbp :: aqrtime :: action
We propagate multihome IP (if present) to udp test code]
      Dim udpTestIp As String
      if app.settings(29) = "" Then udpTestIp = "127.0.0.1" else udpTestIp = app.settings(29)
...
        if app.prcnt > 3 then
          if not app.UDPtest.IsConnected  then app.UDPtest.Connect
          app.udptest.Write ("127.0.0.1:"+str(app.SrvPort+1),"aa25ping")
          app.udptest.Write (udpTestIp + ":"+str(app.SrvPort+1),"aa25ping")
          app.out "Ongoing port test trying"
        end if
...
     if app.prcnt > 20 then
...
      else
        app.prcnt = app.prcnt + 1
        if not app.UDPtest.IsConnected  then app.UDPtest.Connect
        app.udptest.Write ("127.0.0.1:"+str(app.SrvPort+1),"aa25ping")
        app.udptest.Write (udpTestIp + ":"+str(app.SrvPort+1),"aa25ping")
      end if
             
Title: Re: server not visible in browser
Post by: Jonnym on Sunday, February 19, 2012, 04:00:18 AM
Have you tested this? I seems to me this would break auth comms between armyops and assist becuase they are locked to 127.0.0.1 in the uscripts for security reasons. We cannot have the Uscipt auth module respond to any address other than 127 or external source could send in auth message and do all sorts of things. and if you bind udpqr to external network address it will be ignored by the U script.
Title: Re: server not visible in browser
Post by: pit-23 on Sunday, February 19, 2012, 08:40:00 AM
I started the server, it was visible in browser correctly, and I joined it. Seemed to work ok, but I didn't do any extensive testing due to trial version time limit.

Anyway, the change should be safe, as it only affects those who will set the 'multihomeip' option - the rest works as previously.
Title: Re: server not visible in browser
Post by: pit-23 on Sunday, February 19, 2012, 08:52:25 AM
I checked again: some time after joining there is a message like 'server running in not authorized mode'.
Title: Re: server not visible in browser
Post by: pit-23 on Sunday, February 19, 2012, 09:02:58 AM
One thing that can be done is to add ip checking in .u script if given IP is a local interface. Or maybe just .ini parameter that will be used instead of 127.0.0.1 if given.

What do you propose?
Title: Re: server not visible in browser
Post by: ^^UnDiSpUtEd^^ on Sunday, February 19, 2012, 10:29:10 AM
As it has been said by major we have enough servers:)
Title: Re: server not visible in browser
Post by: pit-23 on Sunday, February 19, 2012, 12:16:11 PM
Johny, maybe in auth.u, instead of using "127.0.0.1", you could use the IP that 1718 socket is bound to (using GetLocalIP function)? This would work in both normal and multihome case.

Title: Re: server not visible in browser
Post by: Jonnym on Sunday, February 19, 2012, 14:18:14 PM
Yes good idea, I will take a look at this in the next couple of days and build you a new binary... Thanks for the info.
Title: Re: server not visible in browser
Post by: Spanky on Sunday, February 19, 2012, 14:45:35 PM
I have nothing to contribute other than to say this is really cool to see collaboration between you two :) This will only make the community better.
Title: Re: server not visible in browser
Post by: Jonnym on Monday, February 20, 2012, 12:19:18 PM
Pit... I have e-mailed you the multihome server binarys for you to test
Good luck.
Title: Re: server not visible in browser
Post by: pit-23 on Wednesday, February 22, 2012, 15:30:19 PM
Seems to works OK, i'm authenticated after joning now (oh, and that "server not running in authorized mode" seems to be always present, so it's probably just about this original authentication).

Thanks.
Title: Re: server not visible in browser
Post by: guily6669 on Thursday, February 23, 2012, 13:25:41 PM
Pit, it's cool to have ppl like you around...

I hope more would come, there's just infinite possibilities for this AA, like using mass physics on some crazy ass map.

ps: Hell we need is good people who want to spent their time 4 all of us... ~Johny is god ;).
Keep Cool
Title: Re: server not visible in browser
Post by: Jonnym on Thursday, February 23, 2012, 14:43:07 PM
Hey pit, your polish right? Have you though about making a polish port of 2.5Assist since you have the source?
Title: Re: server not visible in browser
Post by: Spanky on Thursday, February 23, 2012, 14:47:34 PM
Hey pit, your polish right?

I was waiting for a punchline.

But really, this would be great if people came about with translations that Assist could load. Select language on startup kinda thing. Koden's good for some Italian :)
Title: Re: server not visible in browser
Post by: Koden on Thursday, February 23, 2012, 15:03:50 PM
I was waiting for a punchline.

But really, this would be great if people came about with translations that Assist could load. Select language on startup kinda thing. Koden's good for some Italian :)

Uh eh oh? Ciao bella? xD

[youtube]http://www.youtube.com/watch?v=gfxcGenetPU[/youtube]

/kidding :D

i would really like to help if you need someone to translate Assist text to Italian.
Title: Re: server not visible in browser
Post by: Spanky on Thursday, February 23, 2012, 15:10:10 PM
I lol'd so hard.
Title: Re: server not visible in browser
Post by: pit-23 on Saturday, February 25, 2012, 10:23:54 AM
Hey pit, your polish right? Have you though about making a polish port of 2.5Assist since you have the source?

No, I don't feel like translating.

But when you will have all strings extracted to some external file instead of embedded in sources, I'm sure there will be people willing to translate it.