PDA

View Full Version : Bad server name. Unknown reason.


creiss
01-16-2007, 11:28 AM
Hello all,

Allow me to cut right to the chase:
I am running the latest EQ Server from this site, it compiled just great.
So far I have a Linux box (10.0.0.13) and my local game machine (10.0.0.5).
As MiniLogin is only available for Winows(?) I need to run it from 10.0.0.5.

My server config (from 10.0.0.13) reads:


<?xml version="1.0">
<server>
<world>
<shortname>XerxesQuest</shortname>
<longname>My local gameserver</longname>

<!-- Only specify these two if you really think you need to. (r
ead: You don't) -->
<address>10.0.0.13</address>
<!-- <localaddress>10.0.0.13</localaddress> -->

<!-- Loginserver information. Defaults shown -->
<loginserver>
<host>10.0.0.5</host>
<port>5999</port>
<account></account>
<password></password>
</loginserver>
[...]



Now i tried setting address to:
10.0.0.13, eqserver, eq, woop, test...
all in combination with and without a set localaddress (10.0.0.13).

LoginServer on 10.0.0.5 starts, and world too, but it get stuck at this:


[Debug] Starting Log: logs/eqemu_debug_world.log
[Debug] [RULES__CHANGE] Resetting running rules to default values
[Debug] [WORLD__INIT] Loading server configuration..
[Debug] [WORLD__INIT] Warning: Unable to read log.ini
[Debug] [WORLD__INIT] CURRENT_WORLD_VERSION:EQEMu 0.7.0
[Debug] [WORLD__INIT] Connecting to MySQL...
[Status] Starting Log: logs/eqemu_world.log
[Status] Using database 'eq' at localhost:3306
[Debug] [COMMON__THREADS] Starting TCPServerLoop with thread ID 16386
[Debug] [COMMON__THREADS] Starting TCPServerLoop with thread ID 32771
[Debug] [COMMON__THREADS] Starting DBAsyncLoop with thread ID 49156
[Debug] [WORLD__INIT] Starting HTTP world service...
[Debug] [WORLD__HTTP_ERR] Failed to load mime types from 'mime.types'
[Debug] [WORLD__INIT] Loading variables..
[Debug] [WORLD__INIT] Loading zones..
[Debug] [WORLD__INIT] Clearing groups..
[Debug] [WORLD__INIT] Clearing temporary merchant lists..
[Debug] [WORLD__INIT] Loading items..
[Status] libEMuShareMem.so loaded
[Debug] [WORLD__INIT] Loading guilds..
[Error] Starting Log: logs/eqemu_error_world.log
[Error] Error in LoadRules query SELECT ruleset_id FROM rule_sets WHERE name='default': #1146: Table 'eq.rule_sets' doesn't exist
[Debug] [RULES__ERROR] Failed to find ruleset 'default' for load operation. Canceling.
[Debug] [WORLD__INIT] No rule set configured, using default rules
[Debug] [WORLD__INIT] Loading EQ time of day..
[Debug] [WORLD__INIT] Loading launcher list..
[Debug] [WORLD__INIT] Reboot zone modes OFF
[Debug] [WORLD__INIT] Deleted 0 stale player corpses from database
[Debug] [WORLD__INIT] Deleted 0 stale player backups from database
[Debug] [WORLD__INIT] Zone (TCP) listener started.
[Debug] [WORLD__INIT] Client (UDP) listener started.
Unable to open opcodes file 'patch_6.2.conf'. Thats bad.
[Debug] [NET__OPCODES] Error loading opcodes file patch_6.2.conf. Not registering patch 6.2.
Unable to open opcodes file 'patch_Titanium.conf'. Thats bad.
[Debug] [NET__OPCODES] Error loading opcodes file patch_Titanium.conf. Not registering patch Titanium.
Unable to open opcodes file 'patch_Live.conf'. Thats bad.
[Debug] [NET__OPCODES] Error loading opcodes file patch_Live.conf. Not registering patch Live.
[Debug] [COMMON__THREADS] Starting EQStreamFactoryReaderLoop with thread ID 65541
[Debug] [COMMON__THREADS] Starting EQStreamFactoryWriterLoop with thread ID 81926
[Debug] [WORLD__LS] Connecting to login server...
[Debug] [WORLD__LS] Setting World to MiniLogin Server type
[Debug] [COMMON__THREADS] Starting TCPConnectionLoop with thread ID 114696
[Debug] [WORLD__LS] Connected to Loginserver: 10.0.0.5:5999
[Debug] [WORLD__LS_ERR] Login server responded with FatalError. Disabling reconnect.
[Debug] [WORLD__LS_ERR] Bad server name. Unknown reason.


the MiniLogin registers, for a fraction of a second 1 server, then jumps back to zero.

My 10.0.0.5'er MiniLogin LoginServer.ini file:


[LoginServer]
loginserver=10.0.0.5
loginserver2=newlogin1.eqemulator.net
loginport=5999
loginport2=5999
worldname=XerxesQuest
worldaddress=10.0.0.13
locked=false
account=
password=

[WorldServer]
Defaultstatus=
Unavailzone=

[ChatChannelServer]
worldshortname=
chataddress=
chatport=

[LoginConfig]
ServerMode=StandAlone


Any help or pointers would be appreciated!

Thanks!

-Chris.

John Adams
01-16-2007, 11:50 AM
Best way I can answer this is to show you my config. I have World/Zones running on a Fedora Core 4 Linux box. My config is:
<server>
<world>
<shortname>tess</shortname>
<longname>Dev Server</longname>
<address>192.168.0.40</address>
<localaddress>192.168.0.40</localaddress>
<loginserver>
<host>192.168.0.30</host>
<port>5999</port>
<account></account>
<password></password>
</loginserver>
</world>
<database>
<host>localhost</host>
<port>3306</port>
<username>eq</username>
<password>eq</password>
<db>eq</db>
</database>
As you can see, contrary to Mr Condescending who says "read: you don't" without giving a shred of explanation why it's configurable, but never ~yawn~ needed... I use it, and it works. <address> and <localaddress> are set, and they work for me.

192.168.0.40 is my Linux FC4 box (world/zones and MySQL)

My Minilogin.exe is running on a spare Windows Server 2003 box, and here are those configs:
3 files only:
Minilogin.exe
opcodes.conf
loginserver.ini

Loginserver.ini --
[LoginServer]
loginserver=192.168.1.20 <-- wrong but works anyway
loginport=5999 <-- correct
worldname=Dev Server <-- correct
worldaddress=192.168.1.40 <-- wrong but works anyway
locked=false
account=
password=

[WorldServer]
Defaultstatus=
Unavailzone=

[ChatChannelServer]
worldshortname=
chataddress=
chatport=

[LoginConfig]
ServerMode=Minilogin <-- correct
ServerPort=5999 <-- correct
I draw your attention to the fact that even tho this Loginserver.ini doesn't match whatsoever to my actual World info, it still runs anyway. ~boggle~ These devs are better than the docs writers, I tell ya.

Last but not least, in MySQL, table: variables, there is a row called "LoginType". That needs to have a value of "minilogin"
INSERT INTO `variables` (`varname`, `value`, `information`, `ts`) VALUES ('LoginType', 'minilogin', 'Set this to Minilogin to login using a minilogin server :)', '2006-11-24 11:09:41');(which is the part that bites 90% of the emu admins on the ass... ;)

Now I am concluding after only 6 mos of playing with this emulator that half the instructions are written "as needed", and depending on how one guy got his emulator to work. There are likely many, many ways to tie it all together - but the Wiki'd, documented instructions are the best. As you see, even mine is bogus. :) "Works for me".

For my Minilogin server, all the world seems to care about is that there is a Minilogin.exe running "somewhere", and that the name in the INI matches the <longname> in the eqemu_config.xml (not sure why that's so important, except to prevent us from running our own loginservers for our pals).

All of this is described brilliantly in this wiki page (http://www.eqemulator.net/wiki/wikka.php?wakka=MiniLoginConfig).

Sounds like you have a good grasp of how things work. So I hope this helps.

creiss
01-16-2007, 02:56 PM
I have quadruple checked all entries, even falsified the ips you had marked as "incorrect", all to the same conclusion: If my server (10.0.0.13) can somehow connect to the minilogin thingy, i get the "Bad server name. Unknown reason." error.

EDIT: I know all the Wiki pages, thanks :) But the wikis assume one pc only, so my configuration error must lie with the dual-server config.

What exactly is the reason that there is no login server in eqemu anyway? I dont mean this in any way offensive, i am sure it has a reason (which i am unaware of, and thus, asking). But it seems to me a loginserver is a crucial component that should be included first off. Unfortunatly I only know PHP very well, so I cant begin coding on a LoginServer. But it doesnt seem that complicated to me, decrypt, compare login, give server list. Or?

Back to the original matter. I "just" want to stroll around ol' Norrath again, this time, sightseeing, that is, invincible (not playing) on a somewhat spawned world. So I "need" the server local, for me only. And afaik I cant use the real "somewhere else" hosted login server, as that one.. yeah, i am on a private lan. And MiniLogin is refusing to let me in. Are those the only two options?

In any case, HELP!

-Chris
ps: I hope i did not offend anyone here. Offending nor ranting is my intent.

mattmeck
01-16-2007, 03:25 PM
There is a login server, everyone can connect to the public login server, or if they want they can run Minilogin.

There is several reason for not handing out the public login server.

The crypto has to be the same as live, so it would be used to hack live accounts and would make us responcible for it.

We would end up like WOW, 100 server that people cant find because there all in diferent places, our centrialized login server is much better.

The original coder of the login server gave it to the developers with the understanding that it would never be given out because of #1.


There is many many threads dedicated to discussing this over the years, see them for more info.

creiss
01-16-2007, 03:27 PM
Yes I can understand that.

But I doubt i can use the LoginServer (public) for my setup, can I?

-Chris.

mattmeck
01-16-2007, 03:35 PM
Sure can, when the server is locked only people with GM access can get in.

So bring it up locked and only you can get in.

creiss
01-16-2007, 03:39 PM
Just to be clear:

My server has NO external IP. It would report to your login server as 10.0.0.13 - all skill cool?

If yes, all my problems just vannished :)

-Chris.

John Adams
01-17-2007, 02:13 AM
You have no internet access?

If that's the case, then no. You cannot use eqemulator.net:5998 as a login server, and must use minilogin.exe.

Sorry, I gave all the info I know on how to make it work. As stated, my setup is spread over 3 machines, all of differing OS's, and mine works flawlessly. No public IP, no external access - all internal (192.168.x.x network).

I wish you luck.

creiss
01-17-2007, 02:31 AM
Poor choice of words. Loss of precision.

I meant: There is no way for anyone from the internet to connect to my server, there is NO WAY to it. The server, however, CAN, dial out. As can any other PC on this lan.

I also thank you for your configuration, and even a 1:1 (except modified ips) will result in the bad server name error message. Whoever has the code of miniLogin please have a look at the source and debug it, tell us what actually throws this message, and how I can avoid it - thanks :)

Debugging a blackbox (closed source) without proper (or any) documentation on error(!) messages is always hard. :P

-Chris.

LostZaphod
01-17-2007, 05:00 AM
Some use wine to run minilogin.exe on the unix box, though i think you have to have a graphic desktop installed.
I bet your real issue is related to tcp/ip port blocking, as John's config works. Check your unix and Microsoft box's
and make sure the ports are open (Firewall's turned off etc..).

These are the port's i know of...
5999 (minilogin)
3306 (mysql)
7000-8000 (zone's)
9000 (world)
9080 (world)(html admin pages)

Angelox
01-17-2007, 05:35 AM
I run wine minilogin all the time - runs just as good under Linux - graphical or not.
But the catch is, you can't use wine for anything else , because when it's kill time, you have to really "murder" wine, else the wineserver won't let loose minilogin port. when you restart, there'll be no minilogin.
Here's my "hackish" approach, and it works fine;
startup;
#!/bin/sh
wine MiniLogin.exe > logs/MiniLogin.log &
P=`pwd`
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$P"
#make sure we have a place to log
mkdir -p logs 2>&1 > /dev/null

#boot up world
if [ ! -e .lock-world ] ; then
touch .lock-world
./world &
# wait for shared memory to load
sleep 20
fi
#start up the official launcher
if [ ! -e .lock-launcher ]; then
touch .lock-launcher
./eqlaunch zones &
sleep 80
fi

stop;
#!/bin/sh

killall wine MiniLogin.exe world eqlaunch zone wineserver wine-preloader
sleep 3

if ps ax|grep -e 'w[o]rld' -e 'z[o]ne' -e 'eq[l]aunch' >/dev/null; then
killall -9 world eqlaunch zone
sleep 2
fi

./cleanipc
rm -f .lock-zones .lock-world .lock-login .lock-launcher

sleep 3
killall wine-preloader
sleep 3
killall wine-preloader
sleep 3
killall wine-preloader #wine-preloader never makes it to the third one :)

creiss
01-17-2007, 10:11 AM
Good stuff,

But before I compile wine on that thing, will that actually kill the error i am getting?

-Chris.

creiss
01-18-2007, 02:21 AM
I fixed it by setting worldnames to NOT MATCHING variables, then it works.
If they match i get the bad server name.

Good stuff.

-Chris

John Adams
01-18-2007, 11:17 AM
/boggle

Now that doesn't make sense. But, cheers just the same. :)