ID:1702171
 
BYOND Version:506
Operating System:windows server 2012
Web Browser:Firefox 31.0
Applies to:Dream Daemon
Status: Open

Issue hasn't been assigned a status value.
Descriptive Problem Summary:

Numbered Steps to Reproduce Problem:

Code Snippet (if applicable) to Reproduce Problem:
client/New(TopicData)
src << link("byond://BYOND.world.1688605902")
del(src)


Expected Results:
Client would be connected to byond://BYOND.world.1688605902 and connection would be dropped on the current server
Actual Results:
Client does not open a connection via the hub link and only gets connection died message.
Does the problem occur:
Every time? Or how often?
Every time
In other games?
Unknown
In other user accounts?
Yes
On other computers?
Yes

When does the problem NOT occur?
when using a byond link formatted as
byond://ip:port or byond://url.com:port
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)

Workarounds:
Using byond://url:port or byond://ip:port instead of a hub link (byond://BYOND.world.1688605902)


The hub link i used as a test case isn't any server in particular it was just one of the random servers that was picked and in my log.
When you don't let client.New() run its default action, all you will get is a dead connection.

Try this:
client/New()
. = ..()
src << link("...")


Incidentally, when I do this, I get an advertisement while joining a game, even when I have advertisements disabled. I join the game as a guest even though I'm logged into the pager.
I don't know. My pager gained the Option>Login even though it was already logged in. Some kind of weird unrelated bug?
Thing is using byond://ip:port works fine with the example given even without calling super.
I think ive figured out another piece of the puzzle.

If i generate myself a list of all hub servers' byond:// links when i pick() one and send it to the client it does nothing. but if i send one manually or just pick from a list of 2 or less it works fine.
You should put in some debug output to make sure that the link you're sending is actually what you think it is--and that there aren't any spurious spaces or such possibly interfering. Being picked from a list shouldn't cause the link not to work, because the URL is just a string; its origin is completely irrelevant to the link() proc. The most likely suspect therefore is the process by which you generated or parsed the links.
I have, when its supposed to redirect somebody it prints out the url. Right now i have a list of 2 servers made manually and sometimes it redirects, most of the time the connection just gets dropped and nothing else.
Here is an example program

/*
These are simple defaults for your project.
*/


world
fps = 25 // 25 frames per second
icon_size = 32 // 32x32 icon size by default

view = 6 // show up to 6 tiles outward from center (13x13 view)


// Make objects move 8 pixels per tick when walking

mob
step_size = 8

obj
step_size = 8

/client/New(topicdata)
. = ..()
src << link(pick("byond://BYOND.world.567642165", "byond://BYOND.world.771649257", "byond://BYOND.world.490714040", "byond://BYOND.world.1478780582", "byond://BYOND.world.820966258", "byond://BYOND.world.1291674172", "byond://BYOND.world.1419339187", "byond://BYOND.world.328569677", "byond://BYOND.world.2051564578", "byond://BYOND.world.1966280164", "byond://BYOND.world.2136356236", "byond://BYOND.world.956978314", "byond://BYOND.world.721982708", "byond://BYOND.world.1247867336", "byond://BYOND.world.1436560659", "byond://BYOND.world.1371832080", "byond://BYOND.world.1144226552", "byond://BYOND.world.752262017", "byond://BYOND.world.1201579478", "byond://BYOND.world.490714040", "byond://BYOND.world.1688605902", "byond://BYOND.world.1250026560", "byond://BYOND.world.2066067470", "byond://BYOND.world.254794411", "byond://BYOND.world.527125164", "byond://BYOND.world.1512865042", "byond://BYOND.world.128577862", "byond://BYOND.world.551413809", "byond://BYOND.world.300604737", "byond://BYOND.world.2008688319", "byond://BYOND.world.1474884672", "byond://BYOND.world.920085649", "byond://BYOND.world.118435823", "byond://BYOND.world.1894052647", "byond://BYOND.world.2078007928", "byond://BYOND.world.2066683249", "byond://BYOND.world.1520724890", "byond://BYOND.world.445707951", "byond://BYOND.world.327073471", "byond://BYOND.world.227908533", "byond://BYOND.world.1548428520", "byond://BYOND.world.1878260824", "byond://BYOND.world.1762890941", "byond://BYOND.world.1693817610", "byond://BYOND.world.1232378614", "byond://BYOND.world.1439860817", "byond://BYOND.world.1846456074", "byond://BYOND.world.1115996474", "byond://BYOND.world.332982757", "byond://BYOND.world.121986563", "byond://BYOND.world.1650074192", "byond://BYOND.world.1825001758"))
del(src)


Dont double click on the dmb to host, it just closes the window immediately afterwards. Host with dreamdaemon and connect, you get connection closed and no redirect.
Have you tried not doing this in client/New()? That's a very problematic place to be doing this sort of thing. mob/Login() is much safer for doing initialization. You could be running up against a timing issue where the client simply isn't properly initialized yet.
changing /client/New(topicdata) to /mob/Login() results in the same behavior.