This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

sendq exceeded

Old posts that have not been replied to for several years.
Locked
s
spant

sendq exceeded

Post by spant »

Lo!

I got a problem. My eggdrop always gets disconnected from server with the reason "max sendq exceeded" when it joins the channel (> 1000 users). I think the reason is that it's sending a /who when its joining the chan.
Does anybody have any other conception?

If not is it possible to put a timer in the source to execute this /who later and not exactly when the bot joins the channel?

Thanks for you help
User avatar
user
 
Posts: 1452
Joined: Tue Mar 18, 2003 9:58 pm
Location: Norway

Re: sendq exceeded

Post by user »

spant wrote:If not is it possible to put a timer in the source to execute this /who later and not exactly when the bot joins the channel?
You're correct about the eggdrop doing a /WHO #chan upon joining a new channel. It also does a /MODE #chan (+b/e/I depending on your net-type). Changing this will lead to some strange behaviour while waiting to perform these commands, but feel free to try this code if you dare :P

Code: Select all

# the channel name must be in all lowercase:
set whodelay(chan) #yourchan
# delay (after joining the channel)
set whodelay(delay) 20

unbind raw - JOIN *raw:irc:join
bind raw - JOIN whodelay
proc whodelay {f k a} {
	if {$f==$::botname && $::whodelay(chan)==[string tolower [string range $a 1 end]]} {
		utimer $::whodelay(delay) [list resetchan [string range $a 1 end]]
		return 1
	} {
		*raw:irc:join $f $k $a
	}
}
Have you ever read "The Manual"?
m
masterstanf2k
Voice
Posts: 29
Joined: Fri Oct 03, 2003 6:15 pm

Post by masterstanf2k »

how do I do mutiple channels??
User avatar
KrzychuG
Master
Posts: 306
Joined: Sat Aug 16, 2003 2:51 pm
Location: Torun, Poland
Contact:

Post by KrzychuG »

That will work for all channels:

Code: Select all

## Delay Join ##

if {[string match *raw:irc:join* [binds]]} then {
  unbind raw - JOIN *raw:irc:join
}
bind raw - JOIN join:delay
proc join:delay { bname handle channel } {
  global botname
  if {($bname == $botname) && [string match *[string range $channel 1 end]* [channels]]} then {
    putloglev d * "Delaying WHO: [string range $channel 1 end]"
    utimer 10 [list resetchan [string range $channel 1 end]]
  } else {
    *raw:irc:join $bname $handle $channel
  }
} ;# join:delay

## Delay Join
Que?
S
SiNLeSs
Voice
Posts: 3
Joined: Sat May 14, 2005 12:42 am

Post by SiNLeSs »

Is it possible to just ignore the /who altogether? Or atleast ignore the server commands being sent to you?
User avatar
De Kus
Revered One
Posts: 1361
Joined: Sun Dec 15, 2002 11:41 am
Location: Germany

Post by De Kus »

SiNLeSs wrote:Is it possible to just ignore the /who altogether? Or atleast ignore the server commands being sent to you?
ignoried things will still get send to you ^-^. If you prevented packets to be send to you, you would have invented the ultimate firewall ;).
the only thing you could try to increase the receive buffer of your server connection. I don't know much about it, I just know that there is one ^-^.
De Kus
StarZ|De_Kus, De_Kus or DeKus on IRC
Copyright © 2005-2009 by De Kus - published under The MIT License
Love hurts, love strengthens...
S
SiNLeSs
Voice
Posts: 3
Joined: Sat May 14, 2005 12:42 am

Post by SiNLeSs »

Can I edit out the /who anywhere?
Locked