View Single Post
Old 02-01-2006, 12:52 PM  
iXi
Senior Member
 
Join Date: Nov 2002
Posts: 220
Default [mod] ioB 2.0 r1 ioNODUAL.itcl announce

next mod ioB 2.0 r1 will announce dual upload in same sfv.. and kick the uploader form site.
Quote:
(DoS) [DUAL UPLOAD] iXi/SiTEOP try'd to upload two times in dvdr/test2.
the following files are needed (can be found @ scripts section):
- ioB 2.0 r1 by Harm
- ioNODUAL.itcl by _tUFF

Since there are to much changes needed in ioNODUAL.itcl by _tUFF ill post the complett changed code here i hope that issnt a problem..

create file: ioNODUAL.itcl

PHP Code:
###; ioTOOLS.ioNODUALUP.itcl v0.4 by _tUFF (01/02/2006) ioFTPD 5.8.5r+

###; changelog...
###; 0.1 - bored, noticed a request for a script to stop dual uploading on the same sfv
###; 0.2 - ignore certain directories, dZSbot friendly feature requests added
###; 0.3 - fixed the directory ignore
###; 0.4 - changed for ioB 2.0 r1 announce!

###; install...
###; add the follow line under [FTP_Pre-Command_Events] in your ioftpd.ini and remember to site config rehash
###; stor = TCL ..\scripts\ioBanana\ioNODUAL.itcl

###; dont modify these!

set user [resolve uid $uid]
set grp [resolve gid $gid]
set release [string range [string range $pwd 1 end-1] [expr [string first "/" [string range $pwd 1 end-1]] +end]

###; settings...
###; nderror   - the error message you want the user to see when he attempts to upload more than once in the same directory
###; ndignore  - VFS directoried to ignore for dual up

set nderror "dont dual upload in the same directory muppet!"
set ndkick 1
set ndignore 
{
"_Groups"
"_Requests"
"_Speed"
"_Private"
}

global 
args uid gid cid ioerror pwd
set who 
""
set ignore 0
if {[client who init "UID" "VIRTUALPATH" "ACTION"] == 0} {
while { 
} {
set data [client WHO FETCH]
if {
$data == ""} {break}
lappend who $data
}
}
foreach 
entry $who {
    if {[
string match "$uid[lindex $entry 0]]} {
    
set nduid [lindex $entry 0]
    
set ndvfs [lindex $entry 1]
    
set ndact [lindex $entry 2]
    foreach 
ignored $ndignore {
    if {[
string match -nocase "*$ignored*" $ndvfs]} {set ignore 1}
    }
    if {
$ignore != 1} {
        if {[
string match -nocase "stor" [lindex $ndact 0]] || [string match -nocase "appe" [lindex $ndact 0]]} {
            if {[
string match -nocase "$pwd$ndvfs]} {
            
iputs -nobuffer "226 $nderror"
            
iputs -nobuffer "550 Command failed."
            
set ioerror 1
            
if {$ndkick} {client kill clientid $cid}
            
putlog "ioNODUAL: \"$user\" \"$grp\" \"$release\""
            
return 0
            
}
        }
    }
    }
}
set ioerror 0 
________________________________________
open ioBanana.tcl
search:
set enable(MP3CHK)
add lines:
###; ioNODUAL
set enable(ioNODUAL) 1


search:
set defaulttypes
add to set defaulttypes:
ioNODUAL
into the quotes "" !!


search:
set variables(VOTERESULT)
add line:
###; ioNODUAL
set variables(ioNODUAL) "%user %group %release"


search:
set ioBvar(redirect,WARCWIPE)
add line:
set ioBvar(redirect,ioNODUAL) "#ioBanana"

________________________________________
open ioB2.skin
search:
set announce(VOTERESULT)
add lines:
PHP Code:
###; ioNODUAL
set announce(ioNODUAL"\[[c]4[b]DUAL UPLOAD[b][c]\] [b]%user[b]/%group try'd to upload two times in [b]%release[b]." 
________________________________________


Thats all
iXi is offline   Reply With Quote