<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forum.eggheads.org/app.php/feed/topic/20712" />

	<title>egghelp/eggheads community</title>
	<subtitle>Discussion of eggdrop bots, shell accounts and tcl scripts.</subtitle>
	<link href="https://forum.eggheads.org/index.php" />
	<updated>2020-02-25T06:15:04-04:00</updated>

	<author><name><![CDATA[egghelp/eggheads community]]></name></author>
	<id>https://forum.eggheads.org/app.php/feed/topic/20712</id>

		<entry>
		<author><name><![CDATA[Fahad]]></name></author>
		<updated>2020-02-25T06:15:04-04:00</updated>

		<published>2020-02-25T06:15:04-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108036#p108036</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108036#p108036"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108036#p108036"><![CDATA[
<blockquote class="uncited"><div>When two servers split have a look on <a href="https://www.dal.net/servers/" class="postlink">Servers</a> page and see if there's listed any difference apart from Online/Offline.</div></blockquote>All are online just one server is offline<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12648">Fahad</a> — Tue Feb 25, 2020 6:15 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[caesar]]></name></author>
		<updated>2020-02-25T04:24:28-04:00</updated>

		<published>2020-02-25T04:24:28-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108035#p108035</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108035#p108035"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108035#p108035"><![CDATA[
When two servers split have a look on <a href="https://www.dal.net/servers/" class="postlink">Servers</a> page and see if there's listed any difference apart from Online/Offline.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=187">caesar</a> — Tue Feb 25, 2020 4:24 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Fahad]]></name></author>
		<updated>2020-02-24T14:15:04-04:00</updated>

		<published>2020-02-24T14:15:04-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108033#p108033</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108033#p108033"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108033#p108033"><![CDATA[
Can you suggest me the timer because i don't really don't know when server reconnect sometimes it take longer sometimes short period of time.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12648">Fahad</a> — Mon Feb 24, 2020 2:15 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[caesar]]></name></author>
		<updated>2020-02-24T13:56:30-04:00</updated>

		<published>2020-02-24T13:56:30-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108032#p108032</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108032#p108032"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108032#p108032"><![CDATA[
Yes, like CrazyCat figured out I was aiming to see if the script is indeed the culprit behind the kicks since you didn't mention the kick reasons in the initial post.<br><br>How often do two servers de-sync and reconnect? If the <em class="text-italics">default</em> 180 second (3 minutes) isn't enough to cover this increase it accordingly, but don't put something stupid as will render the script useless.<br><br>PS: I case I wasn't clear: your 5400 seconds (90 minutes or 1 hour and 30 minutes) is doing exactly that.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=187">caesar</a> — Mon Feb 24, 2020 1:56 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Fahad]]></name></author>
		<updated>2020-02-24T08:56:07-04:00</updated>

		<published>2020-02-24T08:56:07-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108027#p108027</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108027#p108027"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108027#p108027"><![CDATA[
I have set the timer 5400 now lets see. What you think?<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12648">Fahad</a> — Mon Feb 24, 2020 8:56 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[CrazyCat]]></name></author>
		<updated>2020-02-24T07:23:17-04:00</updated>

		<published>2020-02-24T07:23:17-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108026#p108026</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108026#p108026"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108026#p108026"><![CDATA[
The script seems to have a protection only for the 180s after a netsplit occures.<br>If the end of netsplit is later, the eggdrop see a joinflood.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=691">CrazyCat</a> — Mon Feb 24, 2020 7:23 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Fahad]]></name></author>
		<updated>2020-02-24T06:28:47-04:00</updated>

		<published>2020-02-24T06:28:47-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108025#p108025</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108025#p108025"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108025#p108025"><![CDATA[
I being kicked with the same reason Possible/Flooder/Spammer<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12648">Fahad</a> — Mon Feb 24, 2020 6:28 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[CrazyCat]]></name></author>
		<updated>2020-02-24T05:39:30-04:00</updated>

		<published>2020-02-24T05:39:30-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108023#p108023</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108023#p108023"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108023#p108023"><![CDATA[
I think caesar is asking you if users are kicked with this reason (in IRC) or another one<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=691">CrazyCat</a> — Mon Feb 24, 2020 5:39 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Fahad]]></name></author>
		<updated>2020-02-24T04:44:10-04:00</updated>

		<published>2020-02-24T04:44:10-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108022#p108022</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108022#p108022"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108022#p108022"><![CDATA[
# Mass joins kick-ban reason #<br>set mjp(reasn) "14Possible/Flooder/Spammer"<br><br>This is the kick message<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12648">Fahad</a> — Mon Feb 24, 2020 4:44 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[caesar]]></name></author>
		<updated>2020-02-24T02:00:18-04:00</updated>

		<published>2020-02-24T02:00:18-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108021#p108021</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108021#p108021"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108021#p108021"><![CDATA[
The kick message is what you set at mjp(reasn) ?<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=187">caesar</a> — Mon Feb 24, 2020 2:00 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Fahad]]></name></author>
		<updated>2020-02-23T05:56:10-04:00</updated>

		<published>2020-02-23T05:56:10-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108019#p108019</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108019#p108019"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108019#p108019"><![CDATA[
caesar, You didn't replay me?  I am on DALnet... I have netslpit problem. Bot kick everyone after netsplit.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12648">Fahad</a> — Sun Feb 23, 2020 5:56 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[caesar]]></name></author>
		<updated>2020-02-22T14:51:47-04:00</updated>

		<published>2020-02-22T14:51:47-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108017#p108017</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108017#p108017"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108017#p108017"><![CDATA[
Are you on Dalnet newtork? If not, should change this line:<div class="codebox"><p>Code: </p><pre><code>if {[string match "*.dal.net" $s1] &amp;&amp; [string match "*.dal.net" $s2]} {</code></pre></div>to better suit the network. Notice the <em class="text-italics">.dal.net</em> part?<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=187">caesar</a> — Sat Feb 22, 2020 2:51 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Fahad]]></name></author>
		<updated>2020-02-22T14:22:20-04:00</updated>

		<published>2020-02-22T14:22:20-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=108016#p108016</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=108016#p108016"/>
		<title type="html"><![CDATA[Mass Join TCL Netsplit Problem]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=108016#p108016"><![CDATA[
Help me to fix Netsplit the bot kicked everyone in the channel after the netsplit.<div class="codebox"><p>Code: </p><pre><code>## mass-join-protection.tcl v1.6.1 (29Feb2016) by SpiKe^^ ## # Mass joins, kick-ban on joins:seconds # set mjp(flood) 3:2 # Mass joins kick-ban reason # set mjp(reasn) "14Possible/Flooder/Spammer" # Max number of bans to stack in one mode command # set mjp(maxb) 6 # Max number of kicks to stack in one kick command #          &lt;- NEW SETTING &lt;- # NOTE: many networks allow more than one nick to be kicked per command. # #       set this at or below the max for your network. set mjp(maxk) 3 # Length of time in minutes to ban mass join flooders # # - set 0 to disable this script removing bans (ex. set mjp(btime) 0) # set mjp(btime) 30 # After a valid mass join flood, script will continue # # to kick-ban offenders for an additional 'x' seconds # set mjp(xpire) 10 # Set the type of ban masks to use # #  1 = use host/ip specific bans (ex. *!*@some.host.com) # #  2 = use wide masked host/ip bans (ex. *!*@*.host.com) # #      note: setting 2 requires eggdrop 1.6.20 or newer. # set mjp(btype) 2 # Set protected host(s) that should not be wide masked # # - Example:  set mjp(phost) "*.undernet.org" #  Note: this setting only applies to ban type 2 above! # #  Note: set empty to not protect any hosts (ex. set mjp(phost) "") # #  Note: space separated if listing more than one protected host # set mjp(phost) "" # Set channel mode(s) on flood detected. # # - set empty to disable setting channel modes (ex. set mjp(mode) "") # set mjp(mode) "Rm" # Remove these channel modes after how many seconds? # set mjp(mrem) 60000 # END OF SETTINGS # Don't edit below unless you know what you're doing # bind join - * mjp_bindjoin proc mjp_bindjoin {nick uhost hand chan} {   global mjp mjpc mjpq   if {[isbotnick $nick]} { return 0 }   if {[matchattr $hand f|f $chan]} { return 0 }   set uhost [string tolower $nick!$uhost]   set chan [string tolower $chan]   set utnow [unixtime]   set target [lindex $mjp(flood) 0]   if {[info exists mjpc($chan)]} {     set uhlist [lassign $mjpc($chan) cnt ut]     set utend [expr {$ut + [lindex $mjp(flood) 1]}]     set expire [expr {$utend + $mjp(xpire)}]     if {$cnt &lt; $target} {       if {$utnow &gt; $utend} { unset mjpc($chan) }     } elseif {$utnow &gt; $expire} { unset mjpc($chan) }   }   if {![info exists mjpc($chan)]} {     set mjpc($chan) [list 1 $utnow $uhost]     return 0   }   incr cnt   if {$cnt &lt;= $target} {     if {[lsearch $uhlist $uhost] == -1} { lappend uhlist $uhost }     if {$cnt &lt; $target} {       set mjpc($chan) [linsert $uhlist 0 $cnt $ut]     } else {       set mjpc($chan) [list $cnt $ut]       if {$mjp(mode) ne "" &amp;&amp; [string is digit -strict $mjp(mrem)]} {         putquick "MODE $chan +$mjp(mode)"         utimer $mjp(mrem) [list putquick "MODE $chan -$mjp(mode)"]       }       mjp_dobans $chan $uhlist     }     return 0   }   if {![info exists mjpq($chan)]} {     utimer 2 [list mjp_bque $chan]     set mjpq($chan) [list $uhost]   } elseif {[lsearch $mjpq($chan) $uhost] == -1} {     lappend mjpq($chan) $uhost   }   if {[llength $mjpq($chan)] &gt;= $mjp(maxb)} {     mjp_dobans $chan $mjpq($chan)     set mjpq($chan) ""   }   return 0 } proc mjp_dobans {chan uhlist} {   global mjp netsplit_detected   if {$netsplit_detected} return   if {![botisop $chan]} return   set banList ""   set nickList ""   foreach ele $uhlist {     scan $ele {%[^!]!%[^@]@%s} nick user host     if {$mjp(btype) == 2} {       set type 4       foreach ph $mjp(phost) {         if {[string match -nocase $ph $host]} {           set type 2  ;  break         }       }       set bmask [maskhost $ele $type]     } else {  set bmask "*!*@$host"  }     if {[lsearch $banList $bmask] == -1} { lappend banList $bmask }     if {[lsearch $nickList $nick] == -1} { lappend nickList $nick }   }   stack_bans $chan $mjp(maxb) $banList   # begin new kick code #   foreach nk $nickList {     if {[onchan $nk $chan]} {  lappend nkls $nk  } else { continue }     if {[llength $nkls] == $mjp(maxk)} {       putquick "KICK $chan [join $nkls ,] :$mjp(reasn)"       unset nkls     }   }   if {[info exists nkls]} {     putquick "KICK $chan [join $nkls ,] :$mjp(reasn)"   }   # end new kick code #   if {$mjp(btime) &gt; 0} {     set expire [expr {[unixtime] + $mjp(btime)}]     lappend mjp(rmls) [list $expire $chan $banList]   } } proc stack_bans {chan max banlist {opt +} } {   set len [llength $banlist]   while {$len &gt; 0} {     if {$len &gt; $max} {       set mode [string repeat "b" $max]       set masks [join [lrange $banlist 0 [expr {$max - 1}]]]       set banlist [lrange $banlist $max end]       incr len -$max     } else {       set mode [string repeat "b" $len]       set masks [join $banlist]       set len 0     }     putquick "MODE $chan ${opt}$mode $masks"   } } proc mjp_bque {chan} {   global mjpq   if {![info exists mjpq($chan)]} { return }   if {$mjpq($chan) eq ""} { unset mjpq($chan) ; return }   mjp_dobans $chan $mjpq($chan)   unset mjpq($chan) } proc mjp_breset {} {   global mjpc mjp   set utnow [unixtime]   set target [lindex $mjp(flood) 0]   foreach {key val} [array get mjpc] {     lassign $val cnt ut     set utend [expr {$ut + [lindex $mjp(flood) 1]}]     set expire [expr {$utend + $mjp(xpire)}]     if {$cnt &lt; $target} {       if {$utnow &gt; $utend} { unset mjpc($key) }     } elseif {$utnow &gt; $expire} { unset mjpc($key) }   }   if {[info exists mjp(rmls)]} {     while {[llength $mjp(rmls)]} {       set next [lindex $mjp(rmls) 0]       lassign $next expire chan banList       if {$expire &gt; $utnow} {  break  }       set mjp(rmls) [lreplace $mjp(rmls) 0 0]       if {![info exists rmAra($chan)]} {  set rmAra($chan) $banList       } else {  set rmAra($chan) [concat $rmAra($chan) $banList]  }     }     foreach {key val} [array get rmAra] {       set banList ""       foreach mask $val {         if {![ischanban $mask $key]} {  continue  }         lappend banList $mask       }       if {$banList eq ""} {  continue  }       if {![botisop $key]} {         set mjp(rmls) [linsert $mjp(rmls) 0 [list $utnow $key $banList]]       } else {  stack_bans $key $mjp(maxb) $banList -  }     }     if {![llength $mjp(rmls)]} {  unset mjp(rmls)  }   }   utimer 30 [list mjp_breset] } if {![info exists mjp_running]} {   utimer 20 [list mjp_breset]   set mjp_running 1 } set mjp(flood) [split $mjp(flood) :] set mjp(btime) [expr {$mjp(btime) * 60}] set mjp(phost) [split [string trim $mjp(phost)]] if {$mjp(btime)==0 &amp;&amp; [info exists mjp(rmls)]} {  unset mjp(rmls)  } proc rdsb_unlock {chan lock} {    if {![botisop $chan]} return    set cm [lindex [split [getchanmode $chan] +] 1]    foreach m [split $lock ""] {       if {[lsearch -exact $cm $m] != -1} {          pushmode $chan -$m       }    } } set netsplit_detected 0 bind raw - QUIT netsplit:detect proc netsplit:detect {from key arg} {    global netsplit_detected    if {[info exists netsplit_detected]} return    set arg [string trimleft [stripcodes bcruag $arg] :]    if {[string equal "Quit:" [string range $arg 0 4]]} return    if {![regexp -- {^([[:alnum:][:punct:]]+)[[:space:]]([[:alnum:][:punct:]]+)$} $text _arg s1 s2]} return    if {[string match "*.dal.net" $s1] &amp;&amp; [string match "*.dal.net" $s2]} {       set netsplit_detected 1       utimer 180 [list netsplit:unlock]    } } proc netsplit:unlock args {    global netsplit_detected    set netsplit_detected 0 } putlog "Loaded mass-join-protection.tcl v1.6.1 by SpiKe^^"</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12648">Fahad</a> — Sat Feb 22, 2020 2:22 pm</p><hr />
]]></content>
	</entry>
	</feed>
