Register forum user name Search FAQ

Gammon Forum

Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to "verify" your details, making threats, or asking for money, are spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the password reset link.
 Entire forum ➜ SMAUG ➜ SMAUG coding ➜ FNDELAY! FNDELAY!

FNDELAY! FNDELAY!

It is now over 60 days since the last post. This thread is closed.     Refresh page


Posted by Nick Cash   USA  (626 posts)  Bio
Date Tue 12 Jul 2005 08:33 PM (UTC)
Message
I was working with SWFotE 2.0 and when I booted through GDB I got spammed like crazy with the error below. I'm not even sure what it is, but I know I've never had the problem before and I don't have time to look just yet. Maybe you could help me? :P


    if ( fcntl( desc, F_SETFL, FNDELAY ) == -1 )
    {
        perror( "New_descriptor: fcntl: FNDELAY" );
        set_alarm( 0 );
        return;
    }


Thanks :P

~Nick Cash
http://www.nick-cash.com
Top

Posted by David Haley   USA  (3,881 posts)  Bio
Date Reply #1 on Tue 12 Jul 2005 08:43 PM (UTC)
Message
If fcntl is returning an error there, that's telling you that you're not allowed to make the socket desc non-blocking. As to why it won't let you make it non-blocking, that's a darn good question. :-) What have you changed recently, what are you doing differently? Has your server provider changed anything?

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
Top

Posted by Nick Cash   USA  (626 posts)  Bio
Date Reply #2 on Wed 13 Jul 2005 12:57 AM (UTC)
Message
Quote:
What have you changed recently,

Nothing really. I was just installing the codebase and making the needed adjustments.

Quote:
what are you doing differently?

Nothing I know of. However, I was able to connect just fine to it later. I think it might only be if I boot it via gdb.

Quote:
Has your server provider changed anything?

No.



I think booting in gdb might really be the case on this one. I was able to connect just fine. No one was trying to connect when I got the spam, unless I'm being bombarded constantly (pesky spammers).

I'll do a little testing and check back. Think gdb could be the case? I usually attach or run core files with it, not generally boot.

~Nick Cash
http://www.nick-cash.com
Top

Posted by David Haley   USA  (3,881 posts)  Bio
Date Reply #3 on Wed 13 Jul 2005 01:03 AM (UTC)
Message
I'd be fairly astounded if gdb were responsible. AFAIK, the no-delay is an almost standard command in MUDs, and people boot their MUD in gdb all the time.

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
Top

Posted by Nick Cash   USA  (626 posts)  Bio
Date Reply #4 on Thu 14 Jul 2005 08:39 PM (UTC)
Message
Yeah, I've booted it via GDB many times without the warning. I think perhaps my web site may be at fault, since using PHP it trys to tell if the mud is open or not via this line:

$status = fsockopen( "ew.xidus.net", 3002, $errno, $errstr, 2 );


Seems likely to me. If it doesnt stop connections I guess it doesnt really matter.

~Nick Cash
http://www.nick-cash.com
Top

Posted by David Haley   USA  (3,881 posts)  Bio
Date Reply #5 on Thu 14 Jul 2005 09:53 PM (UTC)
Message
Does your website open and then immediately close the socket? It is possible - and this is just a guess - that on the MUD side, you accept the socket, which makes the PHP code close it, and then the MUD tries to set the socket option, but in the meantime the socket is no longer there because the PHP code closed it. All this happens fairly rapidly though so I'd be surprised if it actually occurred over a network. If it all happened locally, the chances would be higher, I suppose.

Or it could be a property of the socket connection opened by PHP. *shrug* :)

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
Top

The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).

To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.


15,359 views.

It is now over 60 days since the last post. This thread is closed.     Refresh page

Go to topic:           Search the forum


[Go to top] top

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.