Project 1999

Project 1999 (/forums/index.php)
-   Technical Discussion (/forums/forumdisplay.php?f=40)
-   -   Server select empty when using wifi (linux) (/forums/showthread.php?t=218666)

Indefinite 11-15-2015 02:26 PM

Server select empty when using wifi (linux)
 
On 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u5
Using iwlwifi firmware version 23.214.9.0 for ac7260

I have no problem using a wifi connection for anything else, but if I try to play p99 I always get an empty server select regardless of the wifi connection I use. For some reason, my RX is 6 Mbit/s, which I think is related to the problem. Though, disabling the power saving features for wifi and raising RX to ~150Mbit/s didn't fix it. Ethernet cable works fine. Has anyone experienced and resolved a similar problem?

Big_Japan 11-16-2015 10:24 PM

I get this almost everytime I log in over wifi -- I have to log in 4-5 times to get the server list to appear. If persistence doesn't pay off I don't know what to tell you though.

Swish 11-17-2015 05:44 AM

Yes can relate with the wifi, its a case of logging in a few times to get the server list to pop.

Ethernet all the way if you can do it.

ctre 11-17-2015 10:33 PM

Quote:

Originally Posted by Indefinite (Post 2107938)
On 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u5
Using iwlwifi firmware version 23.214.9.0 for ac7260

I have no problem using a wifi connection for anything else, but if I try to play p99 I always get an empty server select regardless of the wifi connection I use. For some reason, my RX is 6 Mbit/s, which I think is related to the problem. Though, disabling the power saving features for wifi and raising RX to ~150Mbit/s didn't fix it. Ethernet cable works fine. Has anyone experienced and resolved a similar problem?

Just a suggestion.
Assuming your wi-fi port re-director has it, (your wi-fi device).
Give your EQ Packets Priority. Was my problem once, and that fixed it.
It might not be the solution.. but worth a shot.

Zaela 11-17-2015 11:32 PM

Always had problems with empty server select on Linux. Threw together a little Windows app that does nothing but connect to the login server and dump the server name strings. Never had any problems getting the server list using this app through Wine.

I assumed there was some issue with Wine's implementation of the Win32-specific socket functions (WSASocket and friends -- of course Verant and SOE used all the Windows-specific calls instead of the equivalent standard ones). Maybe it delays things just enough to exacerbate issues with wifi... but if it happens on Windows too, there's probably more to it than that.

No idea why Login specifically would be so fragile, char select and zones use the same packet protocol to address dropped packets. Maybe it doesn't actually wait until you receive the whole server list and just goes "they hit the Connect button, we're going to server select in x milliseconds whether we have anything to show them or not!" ? Would be a bizarre choice for a game that started in the dialup days, though.

dmorawski 11-18-2015 01:42 PM

Quote:

Originally Posted by ctre (Post 2110750)
Just a suggestion.
Assuming your wi-fi port re-director has it, (your wi-fi device).
Give your EQ Packets Priority. Was my problem once, and that fixed it.
It might not be the solution.. but worth a shot.

How would you go about configuring this?

I've always had this problem, as well, though only on Linux (both Ubuntu and Lubuntu). It seems there are a few different threads about this, but no solutions. Apparently...:
Quote:

Originally Posted by Rogean (Post 766025)
This mainly happens when you're using wireless or any other flakey connection. The loginserver has no dropped packet correction so it doesn't recover from them easily.


dafier 11-18-2015 05:32 PM

Quote:

Originally Posted by dmorawski (Post 2111403)
How would you go about configuring this?

I've always had this problem, as well, though only on Linux (both Ubuntu and Lubuntu). It seems there are a few different threads about this, but no solutions. Apparently...:

I am pretty sure he means your router. Because I did what he said on my router and it appeared to have worked once, then it randomly kept not showing the server list.

I had weird issues using my Wireless N (100% connection strength). One was server select and the other was zoning. It just wouldn't load the zone even after 5 minutes. I just killed eqgame in my task manager, start it back up and sometimes wait for my LD in game to clear and reconnect. THAT was really annoying.

I use PoE right now and that works LOADS better, but omg I don't recommend it. The round trip between my comp and router is 8 to 10ms. (100 to 200 feet)

Indefinite 11-18-2015 10:41 PM

Quote:

Originally Posted by ctre (Post 2110750)
Just a suggestion.
Assuming your wi-fi port re-director has it, (your wi-fi device).
Give your EQ Packets Priority. Was my problem once, and that fixed it.
It might not be the solution.. but worth a shot.

I've used the same router and traffic priorities to play p99 on a different laptop and have the same issue on other wifi networks; I don't think the problem is related to my router. I'm considering trying an older firmware version of iwlwifi, otherwise might just be out of luck =/

Zaela 11-19-2015 12:10 AM

I had a thought after my last post. I know that, in my case at least, the server list packets are getting through fine, it's just that the Client chokes on them for whatever reason.

The EQEmu login server does have a lot of servers listed on it, so the server list is somewhat big (~6k), and gets split into several fragments (10 or so) to be sent over the wire. So I thought, why not just filter out all the non-P99 servers before letting the client see them? That way the client only has to deal with a few hundred bytes, in a single packet.

I made a tiny, localhost man-in-the-middle program between the client and the login server to do just that. It is totally working for me, server select is much much more reliable with it running. Some of the code is a bit of a mess right now (lots of last-minute debugging, couldn't test it while I was coding it at work), but you can find it here: https://github.com/Zaela/p99-login-middlemand. Includes a makefile. You can check for yourself, but I can promise that it doesn't try to sniff passwords or anything dumb like that -- all client-to-server packets are simply forwarded and maybe tweaked slightly due to the filtering desychronizing the session somewhat.

Definitely could have some bugs, but I urge you to at least give it a quick try. If it works out well, it shouldn't be too hard to set it up as a daemon and forget about all your server select problems for good.

One thing you will need to do if you want to try it is to update your eqhost.txt to point at the middleman:
Code:

[LoginServer]
Host=localhost:5998

It's configured to forward things to the EQEmu login server by default.

Zaela 11-19-2015 03:18 AM

http://i.imgur.com/bLU00ZJ.png?1

Cause of failure in normal circumstances remains mysterious -- was starting to think that maybe something about some linux wifi implementations (or kernel versions, who knows) was making UDP packets much more likely to be delivered out of order... but on closer inspection, even when the server list fragments come through perfectly in order, the client will still choke.

But only on one of my machines. Two laptops running Linux Mint (17.0 and 17.2), both about the same distance and equally obstructed from the router (it's on a different floor); one has no problems with server select, the other fails more than 90% of the time unless the middleman filter is running (in which case it succeeds more than 90% of the time so far).


All times are GMT -4. The time now is 03:34 AM.

Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.