;/********************************************************************** ; * ; * aIRC ; * FTP Client file 1 ; * ; **********************************************************************/ ; ; alias _ftp.addonver { return 2.0 } alias _ftp.loadsetup { unset %c.ftpcb.l if ($_getsetup(ftp,monitor)) { .timerFTPCB 0 1 _ftp.cb } else { .timerFTPCB off } } alias ftp { _ftp.revisa if ($lock(dll)) { error.a DLL is locked return } if ($1- == $null) { ftpconf _ftp.preguntacuenta return } _getlocalip ftp $1- if ($result) { return } if ($1- isnum) { if ($_list.get(ftpaccounts,$1) != $null) { _ftp.cuenta.conecta $1- } else { error.a Account $1 was not configured } return } var %ss,%l,%p,%ano,%dir,%pu,%s,%n = 1,%ds %ss = $remove($1-,ftp://) if ($numtok(%ss,64) > 1) { %l = $gettok($gettok(%ss,1- [ $+ [ $calc($numtok(%ss,64) - 1) ] ] ,64),1,58) %p = $gettok($gettok(%ss,1- [ $+ [ $calc($numtok(%ss,64) - 1) ] ] ,64),2,58) } if (%l == $null) { %l = anonymous %ano = 1 } else { %ano = 0 } if (%p == $null) { %p = $null } %ss = $gettok(%ss,$numtok(%ss,64),64) if ($gettok(%ss,2-,47) != $null) { %dir = $ifmatch if (/* !iswm %dir) { %dir = / $+ %dir } } %ss = $gettok(%ss,1,47) if ($gettok(%ss,2,58)) { %pu = $ifmatch } elseif ($gettok(%dir,2,58)) { %pu = $ifmatch } else { %pu = 21 } %dir = $gettok(%dir,1,58) %ss = $gettok(%ss,1,58) %s = $gettok($gettok(%ss,1,47),1,32) if (%pu !isnum) { %pu = 21 } if (%dir == $null) { var %dir } while ($sock(ftp [ $+ [ %n ] ] )) { inc %n } %ds = FTP $+ %n if ($dialog(%ds) == $null) { set -u %~ftpw $calc(($window(-1).w - 5) / $dbuw) set -u %~ftph $calc(($window(-1).h - 100) / $dbuh) dialog -dm %ds _ftpclient } else { _ftp.reflocal %ds $iif(%c.ftp.dl,%c.ftp.dl,$getdir) dialog -v %ds unset %c.ftp.dl } _ftp.addlog.info %ds Connecting: %s %pu sockopen %ds %s %pu did -o %ds 2994 1 %s did -o %ds 2994 2 %l did -o %ds 2994 3 %p did -o %ds 2994 4 %dir did -o %ds 2994 5 $null did -o %ds 2994 6 $null did -o %ds 2994 7 0 did -o %ds 2994 8 0 did -o %ds 2994 9 %ano did -o %ds 2994 10 $null did -o %ds 2994 11 0 did -o %ds 2994 12 0 did -o %ds 2994 13 1 did -o %ds 2994 14 $null did -o %ds 2994 15 1 did -o %ds 2994 16 $null did -o %ds 2994 17 1 did -o %ds 2994 18 0 if (%ano) { %p = aIRC@ $+ $ip } if (%dir == $null) { %dir = / } if (%pu == 21) { _recent.add ftp 10 %ss $+ %dir $+ ? $+ %l $+ ? $+ $_crypt(%p) } else { _recent.add ftp 10 %ss $+ : $+ %pu $+ %dir $+ ? $+ %l $+ ? $+ $_crypt(%p) } } ON ^*:HOTLINK:ftp?//?*:*:{ if (ftp://* iswm $1) && ($remove($1,ftp://) != $null) { return } halt } ON ^*:HOTLINK:ftp.*:*:{ if ($remove($1,ftp.) != $null) { return } halt } ON *:HOTLINK:ftp?//?*:*:{ ftp $1 } ON *:HOTLINK:ftp.*:*:{ ftp $1 } alias ftpmon { if ($1- == $null) { info.a FTP Clipboard Monitor is  $+ $iif($_getsetup(ftp,monitor),ON,OFF) } if ($1- == on) { if ($show) { info.a FTP Clipboard Monitor is now ON } _setsetup ftp monitor 1 } if ($1- == off) { if ($show) { info.a FTP Clipboard Monitor is now OFF } _setsetup ftp monitor 0 } _ftp.loadsetup } alias _ftp.cb { if ($strip($remove($cb,$cr,$lf)) == %c.ftpcb.l) { return } %c.ftpcb.l = $strip($remove($cb,$cr,$lf)) if (ftp://* iswm %c.ftpcb.l) || (ftp.* iswm %c.ftpcb.l) { if ($_getsetup(ftp,lastmonitor) == %c.ftpcb.l) { return } _setsetup ftp lastmonitor %c.ftpcb.l .timer 1 2 _setsetup ftp lastmonitor ftp %c.ftpcb.l } } alias ftpconf { _dialog -m conftp _simplelist } alias _ftp.revisa { if ($_getsetup(ftp,ver) == $null) { _setsetup ftp ver $_ftp.addonver ._list.flush ftpaccounts _list.add ftpaccounts DALnet FTP癴tp.dal.net񲣖񲣖�21 _list.add ftpaccounts C++ Users Journal癴tp.mfi.com񲣖�0�/pub/cuj�21 _list.add ftpaccounts C and C++ tutorials癴tp.swcp.com񲣖�0�/pub/users/dodrill/�21 _list.add ftpaccounts Linux Journal癴tp.ssc.com񲣖�0�/pub/lj�21 _list.add ftpaccounts Linux Online癴tp.linux.org񲣖�0�/pub�21 _list.add ftpaccounts Red Hat Linux癴tp.redhat.com񲣖񲣖�21 _list.add ftpaccounts Computer Emergency Response Team [CERT]癴tp.cert.org񲣖�0�/pub�21 _list.add ftpaccounts World Wibe Web Consortium癴tp.w3.org񲣖񲣖�21 _list.add ftpaccounts National Center for Supercomputing Applications [NCSA]癴tp.ncsa.uiuc.edu񲣖񲣖�21 _list.add ftpaccounts Sun Microsystems癴tp.sun.com񲣖񲣖�21 _list.add ftpaccounts SCO癴tp.sco.com񲣖񲣖�21 _list.add ftpaccounts Apple癴tp.apple.com񲣖񲣖�21 _list.add ftpaccounts Netscape癴tp.netscape.com񲣖񲣖�21 _list.add ftpaccounts Microsoft癴tp.microsoft.com񲣖񲣖�21 } } alias _ftp.unload { if ($dialog(conftp)) || ($dialog(cuentaftp)) { error.a Please close the Account Dialog before you unload the FTP Client return 1 } var %i = 1,%d while ($dialog(%i) != $null) { %d = $ifmatch if (ftp* iswm %d) || (tftp* iswm %d) { error.a Please close all FTP Dialogs before you unload the FTP Client return 1 } inc %i } .timerFTP* off sockclose ftp* sockclose ?ftp* } alias _ftp.mni { var %l = $_recent.get(ftp,$1) if (%l) { if ($gettok(%l,2,63) == anonymous) { return ftp:// $+ $gettok(%l,1,63) } if ($_decrypt($gettok(%l,3,63)) == $null) { return ftp:// $+ $gettok(%l,2,63) $+ @ $+ $gettok(%l,1,63) } return ftp:// $+ $gettok(%l,2,63) $+ : $+ $str(*,$numtok($gettok(%l,3,63),32)) $+ @ $+ $gettok(%l,1,63) } } alias _ftp.mn { var %l = $_recent.get(ftp,$1) ftp $gettok(%l,2,63) $+ : $+ $_decrypt($gettok(%l,3,63)) $+ @ $+ $gettok(%l,1,63) } alias -l _ftp.preswcheck { if ($sock($1).status != active) { _ftp.addlog.error $1 This FTP session is closed } elseif ($sock(G [ $+ [ $1 ] ] )) { _ftp.addlog.error $1 Downloading dirinfo... please wait } elseif ($sock(D [ $+ [ $1 ] ] )) { _ftp.addlog.error $1 Downloading file... please wait } elseif ($sock(U [ $+ [ $1 ] ] )) { _ftp.addlog.error $1 Uploading file... please wait } else { return 0 } return 1 } alias _ftp.sw { if ($_ftp.preswcheck($1)) { return } else { sockwrite -n $1 $2- if ($2 == pass) { _ftp.addlog.command $1 $2 $str(*,$len($3-)) } else { _ftp.addlog.command $1 $2- } } } alias _ftp.metepass { var %p = $_parameterpass($null,1,FTP Client [/ftp],1,$null,Password for account [ $2 ] on server [ $3 ] [This password will not be saved]) if ($dialog($1) == $null) { return } sockwrite -n $1 PASS %p _ftp.addlog.info $1 Sending Password.. _ftp.addlog.command $1 PASS $str(*,$len(%p)) } alias _ftp.num { if ($sockname) { return $remove($sockname,FTP,t,l,g,u,d,a,b,m) } if (FTP* iswm $1) { return $remove($1,FTP) } if ($dname != $null) { return $remove($dname,FTP,t) } } alias _ftp.nums { return FTP $+ $_ftp.num($1) } alias _ftp.sr { _ftp.addlog.reply $sockname $1- if ($1 == 150) { var %lftpsock = $did($sockname,2994,5) if (%lftpsock) { if ($round($gettok($gettok($2-,-1,40),1,41),0) > 0) { sockmark %lftpsock $puttok($sock(%lftpsock).mark,$round($gettok($gettok($2-,-1,40),1,41),0),4,9) } did -o $sockname 2994 5 $null } } elseif ($1 == 200) { if (($2-4 == type set to) && ($remove($5,.) != i)) || (($2-3 == type is) && ((image !isin $4-) && (binary !isin $4-))) { _ftp.sw $sockname TYPE I _ftp.addlog.info $sockname You must not change the transfer mode, changing back to binary... } elseif ($2 == port) { if ($did($sockname,2994,6) != $null) { _ftp.sw $sockname $ifmatch } did -o $sockname 2994 6 $null } } elseif ($1 == 213) { var %lftpsock = $did($sockname,2994,5),%win = $replace(%lftpsock,l,t),%send if ($did($sockname,2994,8) != $null) { %send = $ifmatch did -o $sockname 2994 8 $null if ($did($sockname,2994,11)) && ($_sockmark(%lftpsock,7) == DFTP) && ($isfile($_sockmark(%lftpsock,1))) { if ($file($_sockmark(%lftpsock,1)).size < $2) { _ftp.sw $sockname REST $ifmatch sockmark %lftpsock $puttok($sock(%lftpsock).mark,$calc($2 - $file($_sockmark(%lftpsock,1)).size),4,9) did -o %win 1003 1 0 of $bytes($calc($2 - $file($_sockmark(%lftpsock,1)).size),b) bytes } else { did -o $sockname 2994 6 $null did -o $sockname 2994 8 $null _ftp.addlog.error $sockname You already have that file did -o %win 1004 1 You already have this file! var %send _ftp.sockflush $sockname _ftp.sigue $sockname 0 } } else { sockmark %lftpsock $puttok($sock(%lftpsock).mark,$2,4,9) did -o %win 1003 1 0 of $bytes($2,b) bytes } did -a %win 1002 0 0 100 ; TFTP } if (%send != $null) { _ftp.sw $sockname $ifmatch } } elseif ($1 == 220) { if ($did($sockname,2994,9)) { _ftp.addlog.info $sockname Logging as anonymous... _ftp.sw $sockname USER anonymous } else { _ftp.addlog.info $sockname Logging... _ftp.sw $sockname USER $did($sockname,2994,2) } } elseif ($1 == 226) { _ftp.sockflush $sockname _ftp.sigue $sockname 0 } elseif ($1 == 227) { var %wc,%tok,%ip,%port %wc = *,*,*,*,*,* %tok = $replace($remove($wildtok($1-,%wc,$wildtok($1-,%wc,0,32),32),:,[,],$chr(40),$chr(41),.),$chr(44),.) %ip = $gettok(%tok,1-4,46) %port = 0.0. $+ $gettok(%tok,5-,46) %port = $longip(%port) ;;; _ftp.addlog.info $sockname DEBUG: %ip %port } elseif ($1 == 230) { ; if (log isin $2-) { _ftp.sw $sockname TYPE I if ($did($sockname,2994,4) != $null) { var %path = $ifmatch if ($numtok($gettok(%path,-1,47),46) > 1 ) { did -a $sockname 2250 _ftp.com $sockname GET %path %path = $remove(%path,$gettok(%path,-1,47)) } did -o $sockname 2994 4 $null did -a $sockname 2250 _ftp.com $sockname CWD %path } _ftp.sw $sockname REST 69 ; } } elseif ($1 == 250) { _ftp.sigue $sockname 0 } elseif ($1 == 257) { if (created !isin $gettok($1-,3-,34)) { var %dir = $gettok($1-,2,34) if (*/ !iswm %dir) { %dir = %dir $+ / } _dialog.add1 $sockname 1020 %dir did -o $sockname 1024 1 %dir if ($did($sockname,2994,17)) { _ftp.com $sockname DIR } did -o $sockname 2994 17 0 } } elseif ($1 == 331) { if ($did($sockname,2994,9)) { _ftp.addlog.info $sockname Sending Password... _ftp.sw $sockname PASS aIRC@ $+ $ip } elseif ($did($sockname,2994,3) != $null) { _ftp.addlog.info $sockname Sending Password... _ftp.sw $sockname PASS $did($sockname,2994,3) } else { _ftp.metepass $sockname $did($sockname,2994,2) $did($sockname,2994,1) } } elseif ($1 == 350) { if (destination isin $2-) || (rename isin $2-) { if ($did($sockname,2994,10) != $null) { _ftp.sw $sockname RNTO $ifmatch } did -o $sockname 2994 10 $null } elseif ($did($sockname,2994,13)) { _ftp.addlog.info $sockname This server can resume broken downloads did -o $sockname 2994 11 1 did -o $sockname 2994 13 0 _ftp.sw $sockname REST 0 _ftp.sigue $sockname 0 } } elseif ($1 == 426) { _ftp.sockflush $sockname _ftp.sigue $sockname 0 } elseif ($istok(425 450 501 550 553,$1,32)) || (($1 == 500) && ($3 == port)) { _ftp.sigue $sockname 0 } elseif ($1 == 504) { _ftp.addlog.info $sockname This server CANNOT resume broken downloads... did -o $sockname 2994 13 0 _ftp.sigue $sockname 0 } elseif ($1 == 500) && ($remove($2,',",:) == size) { if ($did($sockname,2994,8) != $null) { var %lftpsock = $did($sockname,2994,5) _ftp.sw $sockname $ifmatch sockmark %lftpsock $puttok($sock(%lftpsock).mark,0,4,9) did -o $replace(%lftpsock,l,t) 1003 1 0 bytes ; TFTP } did -o $sockname 2994 8 $null } } alias _ftp.com { if ($_ftp.preswcheck($1)) { return } elseif ($2 == cd) { _ftp.sw $1 CWD $3- } elseif (cd..* iswm $2-) || (cd/* iswm $2-) || (cd\* iswm $2-) { _ftp.sw $1 CWD $right($2-,-2) } elseif ($2 == rd) { _ftp.sw $1 RMD $3- } elseif ($2 == md) { _ftp.sw $1 MKD $3- } elseif ($2 == del) { _ftp.sw $1 DELE $3- } ;;; This is from the days when this addon worked in a custom window!!! elseif ($2 == cls) { clear } elseif ($2 == ren) || ($2 == rename) { var %esdir = %c.ftpren.esdir unset %c.ftpren.esdir did -o $1 2994 10 $_parameter($null,1,FTP Client [/ftp],normal,$3-,New name for remote [ $iif(%esdir,dir,file) ] : [ $3- ] To move it write a dir) _ftp.sw $1 RNFR $3- } elseif ($2 == dir) || ($2 == ls) || ($2 == list) { var %afterport if ($3- != $null) { %afterport = LIST $3- } elseif ($did($1,1024,2) != $null) { %afterport = LIST $ifmatch } else { %afterport = LIST } did -o $1 2994 6 %afterport if (1) { var %sock = L $+ $1,%p _ftp.sockflush $1 socklisten %sock sockmark %sock $ticks %p = $ip $+ . $+ $gettok($longip($sock(%sock).port),3-4,46) %p = $replace(%p,.,$chr(44)) _ftp.sw $1 PORT %p } else { _ftp.sw $1 PASV } } elseif ($2 == get) || ($2 == retr) { var %local = $did($1,1014,1) $+ $gettok($3-,-1,47),%tmp = $_ftp.downloadfile($1,$3-,%local,$null) } elseif ($2 == upl) || ($2 == stor) { var %remote = $did($1,1024,1) $+ $gettok($3-,-1,$asc(\)),%tmp = $_ftp.uploadfile($1,$3-,%remote,$null) } else { _ftp.sw $1 $upper($2) $3- } if ($istok(cwd cdup cd rd md del ren rename,$2,32)) || (cd..* iswm $2-) || (cd/* iswm $2-) || (cd\* iswm $2-) { did -o $1 2994 15 1 } } alias _ftp.sigue { var %t,%d = $1,%l = $2,%closetransfer = 0,%wc = ? $+ %d if ($dialog(%d) == $null) || ($sock(%wc,0)) { return } sockclose %wc if ($did(%d,2250,1) != $null) { %t = $ifmatch if ($gettok(%t,3,32) != get) && ($gettok(%t,3,32) != upl) { %closetransfer = 1 } did -d %d 2250 1 %t } elseif ($did(%d,2994,18)) && ($did(%d,1030,2) != $null) { var %line = $ifmatch,%icon = $gettok(%line,2,32),%from = $gettok($gettok(%line,1,9),3-,32),%target = $gettok($gettok(%line,2,9),2-,32),%size = $gettok($gettok(%line,3,9),2,32),%tmp ; uploads if (%icon == 1) { %tmp = $_ftp.uploadfile(%d,%from,%target,%size) } ; downloads else { %tmp = $_ftp.downloadfile(%d,%from,%target,%size) } did -o %d 2994 17 1 did -d %d 1030 2 } else { %closetransfer = 1 if ($did(%d,2994,15)) || ($did(%d,2994,16) != $did(%d,1024,1)) || ($did(%d,2994,16) == $null) { did -o %d 2994 17 1 _ftp.com %d PWD } did -o %d 2994 15 0 did -o %d 2994 18 0 } if (%closetransfer) && ($dialog(T [ $+ [ %d ] ] )) { .timer $+ $ifmatch -o 1 1 _dialog-x $ifmatch } } alias -l _ftp.uploadfile { var %d = $1,%local = $2,%remote = $3,%size = $4,%win,%sock,%fport if (%local == $null) { %local = $dir="Choose File:" } if ($isfile(%local) == $false) { _ftp.status.error %d File not found: ' $+ %local $+ ' } else { did -o %d 2994 15 1 %size = $file(%local).size %win = T $+ %d %sock = L $+ %d sockclose %sock socklisten %sock sockmark %sock %local $+ $chr(9) $+ %win $+ $chr(9) $+ $ticks $+ $chr(9) $+ %size $+ $chr(9) $+ %sock $+ $chr(9) $+ 0 $+ $chr(9) $+ UFTP %fport = $ip $+ . $+ $gettok($longip($sock(%sock).port),3-4,46) %fport = $replace(%fport,.,$chr(44)) _ftp.sw %d PORT %fport did -o %d 2994 6 STOR $gettok(%local,-1,92) .timer $+ %win off if ($dialog(%win) == $null) { dialog -v %d dialog -am %win _ftp.transfer } _ftp.actransf %win 0 %local } } alias -l _ftp.downloadfile { var %d = $1,%remote = $2,%local = $3,%size = $4,%a,%w,%p,%200,%port %a = $gettok(%local,-1,47) %w = T $+ %d %p = L $+ %d sockclose %p socklisten %p sockmark %p %local $+ $chr(9) $+ %w $+ $chr(9) $+ $ticks $+ $chr(9) $+ 0 $+ $chr(9) $+ 1 $+ $chr(9) $+ 0 $+ $chr(9) $+ DFTP did -o %d 2994 5 %p %p = $ip $+ . $+ $gettok($longip($sock(%p).port),3-4,46) %p = $replace(%p,.,$chr(44)) %200 = RETR %remote %port = PORT %p _ftp.sw %d SIZE %remote did -o %d 2994 8 %port did -o %d 2994 6 %200 .timer $+ %w off if ($dialog(%w) == $null) { dialog -v %d dialog -am %w _ftp.transfer } _ftp.actransf %w 1 %a } alias _ftp.actransf { did -r $1 1001,1003,1004 did -a $1 1002 0 0 100 did -o $1 1004 1 Waiting connection... dialog -t $1 FTP $+ $remove($1,TFTP) - $iif($2,Download,Upload) did -o $1 1001 1 $nopath($3-) } alias _ftp.upl { var %sock = $1,%d tokenize 9 $sock(%sock).mark var %cps = $calc($6 / (($ticks - $3) / 1000)),%lcps = $_sckbpsw(%cps) if ($6 >= $4) { %d = $_ftp.nums did -o $2 1003 1 $bytes($6,b) of $bytes($4,b) bytes - %lcps did -a $2 1002 100 0 100 did -o $2 1004 1 Completed in $_duratio($calc(($ticks - $3) / 1000),2) _ftp.addlog.info %d Transfered $6 bytes in $_duratio($calc(($ticks - $3) / 1000),2) ( $+ %lcps $+ ) _ftp.transferlocallyforcedthisisabadidea %d } else { var %tmp = 4096 elseif (%tmp < 512) { %tmp = 512 } bread " $+ $1 $+ " $6 %tmp &ftp.upl sockwrite %sock &ftp.upl sockmark %sock $puttok($sock(%sock).mark,$calc($6 + $bvar(&ftp.upl,0)),6,9) did -o $2 1003 1 $bytes($6,b) of $bytes($4,b) bytes - %lcps did -a $2 1002 $6 0 $4 did -o $2 1004 1 Remaining: $_duratio($calc(($4 - $6) / ($6 / (($ticks - $3) / 1000))),2) } } alias _ftp.preguntacuenta { _dialog -ma cuentaftp cuentaftp _ftp.cuentainit $gettok($2-,2-,32) } alias _ftp.cuenta.revisaedit { if ($_text($did(cuentaftp,10)) == $null) || ($chr(176) isin $did(cuentaftp,10)) || ($_ishost($did(cuentaftp,20)) == $null) { goto no } if ($_text($did(cuentaftp,30)) != $null) && (: isin $did(cuentaftp,30)) { goto no } if ($_text($did(cuentaftp,40)) != $null) && (: isin $did(cuentaftp,40)) { goto no } if ($_text($did(cuentaftp,40)) != $null) && ($_text($did(cuentaftp,30)) == $null) { goto no } if ($did(cuentaftp,70) != $null) && ($did(cuentaftp,70) !isnum) { goto no } if ($_text($did(cuentaftp,50)) != $null) && ($isdir($did(cuentaftp,50)) == $false) { goto no } did -e cuentaftp 150 did -e cuentaftp 151 return :no did -b cuentaftp 150 did -b cuentaftp 151 } alias _ftp.cuentainit { var %i = 1,%c did -o cuentaftp 70 1 21 did -r cuentaftp 10,20,30,40,50,60 if ($1- != $null) { while ($_list.get(ftpaccounts,%i)) { %c = $ifmatch if ($gettok(%c,1,176) == $1-) { did -o cuentaftp 10 1 $1- if ($gettok(%c,2,176)) { did -o cuentaftp 20 1 $ifmatch } if ($gettok(%c,3,176)) { did -o cuentaftp 30 1 $ifmatch } if ($gettok(%c,4,176)) { did -o cuentaftp 40 1 $_decrypt($ifmatch) } if ($gettok(%c,5,176)) { did -o cuentaftp 50 1 $ifmatch } if ($gettok(%c,6,176)) { did -o cuentaftp 60 1 $ifmatch } if ($gettok(%c,7,176)) { did -o cuentaftp 70 1 $ifmatch } did -m cuentaftp 10 break } inc %i } } else { did -n cuentaftp 10 } _ftp.cuenta.revisaedit cuentaftp } alias _ftp.cuenta.conecta { var %lp tokenize 176 $_list.get(ftpaccounts,$round($1,0)) if ($5) { %c.ftp.dl = $ifmatch } if ($3) { %lp = $ifmatch if ($4) && ($_decrypt($4)) { %lp = %lp $+ : $+ $ifmatch } %lp = %lp $+ @ } if ($dialog(conftp)) && ($_getsetup(ftp,closelist)) { dialog -x conftp } if ($6) { ftp %lp $+ $2 $+ : $+ $7 $+ $6 } else { ftp %lp $+ $2 $+ : $+ $7 } } alias _ftp.cuenta.graba { var %dr,%tempo = $_list.tokadd(ftpaccounts,1,176,$did(10)) if ($did(60) != $null) { if (/* iswm $did(60)) { %dr = $did(60) } else { %dr = / $+ $did(60) } } else { %dr = 0 } write -l $+ %tempo " $+ $_list.file(ftpaccounts) $+ " $_text($did(10)) $+ � $+ $iif($did(20),$did(20),0) $+ � $+ $iif($did(30),$did(30),0) $+ � $+ $iif($did(40),$_crypt($did(40)),0) $+ � $+ $iif($did(50),$did(50),0) $+ � $+ %dr $+ � $+ $iif($did(70),$did(70),0) _list.hash ftpaccounts _dialog.loadlist conftp 2 1 176 ftpaccounts 1 1 } dialog _ftp.transfer { size -1 -1 125 42 option dbu text "",1001,2 2 120 8,center text "",1002,2 12 120 8,center text "",1003,2 22 120 8,center text "",1004,2 32 120 8,center button "&Cancel",1008,48 45 30 15,cancel } ON *:DIALOG:TFTP*:init:0:{ _mdx.init $_icofile(ftp.ico,$scriptdir) _mdx.SetControlMDX ctl_gen.mdx $dname 1002 ProgressBar smooth _mdx.SetFont $dname 1001,1002,1003,1004 + 13 400 Tahoma did -v $dname 1001 } ON *:DIALOG:TFTP*:sclick:1008:{ var %d = $replace($dname,TFTP,FTP) sockclose ? $+ %d _ftp.com %d ABOR did -o %d 2994 18 0 } ON *:DIALOG:conftp:*:*:{ var %sclick if ($devent == dclick) && ($did == 2) && ($did($dname,2,1).sel != $null) { _ftp.cuenta.conecta $did($dname,2,$did($dname,2,1).sel).text } elseif ($devent == sclick) { var %sclick = $did($dname,2,1).sel if ($did == 101) { _ftp.preguntacuenta } elseif ($did == 102) && (%sclick != $null) { _list.tokdel ftpaccounts 1 176 $gettok($did($dname,2,%sclick).text,2-,32) _dialog.loadlist conftp 2 1 176 ftpaccounts 1 1 if ($did(2,%sclick) != $null) { did -c $dname 2 %sclick } } elseif ($did == 103) { if (%sclick != $null) { _ftp.preguntacuenta %sclick $did($dname,2,%sclick).text } } elseif ($did == 104) && (%sclick != $null) && (%sclick > 1) { _list.moveup ftpaccounts %sclick _dialog.loadlist conftp 2 1 176 ftpaccounts 1 1 did -c $dname 2 $calc(%sclick - 1) } elseif ($did == 105) && (%sclick != $null) && (%sclick < $did($dname,2,1).lines) { _list.movedown ftpaccounts %sclick _dialog.loadlist conftp 2 1 176 ftpaccounts 1 1 did -c $dname 2 $calc(%sclick + 1) } elseif ($did == 106) { if (%sclick != $null) { _ftp.cuenta.conecta $did($dname,2,%sclick).text } } elseif ($did == 201) || ($did == 202) { showmirc -s } elseif ($did == 220) { _setsetup ftp closelist $did(220).state } } elseif ($devent == init) { _mdx.init $_icofile(ftp.ico,$scriptdir) _dialog.loadlist conftp 2 1 176 ftpaccounts 1 1 did -h $dname 201 did -o $dname 202 1 Close dialog -t $dname FTP Accounts did -h $dname 1 did -v $dname 2 did -o $dname 101 1 &New... did -ov $dname 103 1 &Edit... did -ov $dname 104 1 &Up did -ov $dname 105 1 &Down did -ov $dname 106 1 &Connect did -f $dname 201 did -ov $dname 220 1 Close this list when Connecting if ($_getsetup(ftp,closelist)) { did -c $dname 220 } } } dialog cuentaftp { size 1 1 250 77 option dbu text "&Account Name:",11,2 5 100 8 edit "",10,2 12 100 11,autohs text "&Server:",21,2 25 100 8 edit "",20,2 32 100 11,autohs text "&Login:",31,2 50 48 8 edit "",30,2 58 48 11,autohs text "&Password:",41,52 50 48 8 edit "",40,52 58 48 11,pass autohs text "&Initial Local Directory:",51,105 5 100 8 edit "",50,105 12 100 11,autohs button "...",52,208 12 13 11 text "Initial &Remote Directory:",61,105 25 100 8 edit "",60,105 32 100 11,autohs text "Por&t:",71,225 5 20 8 edit "",70,225 12 20 11,autohs button "&Connect",150,142 60 30 15 button "&OK",151,178 60 30 15,ok button "&Cancel",152,212 60 30 15,cancel } alias _ftp.cuenta.dirlocal { var %d = $sdir="Initial Local Directory:" $iif($2- != $null,$2-,$getdir) if ($dialog($1) == $null) { return } elseif (%d != $null) && (%d != $2-) { did -o $1 50 1 %d } dialog -v $1 } ON *:DIALOG:cuentaftp:init:0:{ _mdx.init $_icofile(ftp.ico,$scriptdir) dialog -t cuentaftp FTP Account } ON *:DIALOG:cuentaftp:sclick:52:{ _ftp.cuenta.dirlocal $dname $did(50,1) } ON *:DIALOG:cuentaftp:sclick:150:{ _ftp.cuenta.graba var %i = 1,%c while ($_list.get(ftpaccounts,%i)) { %c = $ifmatch if ($gettok(%c,1,176) == $did(10)) { dialog -x $dname _ftp.cuenta.conecta %i return } inc %i } } ON *:DIALOG:cuentaftp:sclick:151:{ if ($did(150).enabled) { _ftp.cuenta.graba } else { halt } } ON *:DIALOG:cuentaftp:edit:*:{ _ftp.cuenta.revisaedit $dname } ON *:SOCKOPEN:FTP*:{ if ($sockerr) { _ftp.addlog.error $sockname FTP session $did($sockname,2994,1) $+ : $_sockerr return } if ($dialog($sockname) == $null) { dialog -m FTP $+ $_ftp.num ftp } did -o $sockname 1000 2 +a 2 Disconnect $+ $chr(9) $+ Disconnects from the FTP Server _ftp.setitle $sockname $iif($did($sockname,2994,9),anonymous,$did($sockname,2994,2)) in $did($sockname,2994,1) _ftp.addlog.info $sockname Connection established $did($sockname,2994,1) port $sock($sockname).port _ftp.antiidle $sockname 0 } alias _ftp.antiidle { if ($sock($1).status == active) { if ($2) { sockwrite -n $1 NOOP _ftp.addlog.command $1 NOOP } .timer $+ $1 $+ _ANTIIDLE -o 1 180 _ftp.antiidle $1 1 } } ON *:SOCKWRITE:FTP*:{ if ($sockerr) { _ftp.addlog.error $sockname FTP session $did($sockname,2994,1) $+ : $_sockerr } } ON *:SOCKREAD:FTP*:{ if ($sockerr) { _ftp.addlog.error $sockname FTP session $did($sockname,2994,1) $+ : $_sockerr return } var %sr sockread %sr while ($sockbr) { if (%sr != $null) { _ftp.sr %sr } if ($sockname == $null) { break } sockread %sr } } ON *:SOCKCLOSE:FTP*:{ _ftp.disconnect $sockname } ON *:SOCKLISTEN:LFTP*:{ if ($_sockmark(2)) { did -o $_sockmark(2) 1004 1 Connected! Beginning transmission... if ($_sockmark(7) == DFTP) { if ($_sockmark(5)) && ($isfile($_sockmark(1))) { .remove " $+ $_sockmark(1) $+ " sockmark $sockname $puttok($sock($sockname).mark,0,5,9) } sockaccept $replace($sockname,LFTP,DFTP) sockmark $replace($sockname,LFTP,DFTP) $puttok($sock($sockname).mark,$ticks,3,9) } elseif ($_sockmark(7) == UFTP) { sockaccept $replace($sockname,LFTP,UFTP) sockmark $replace($sockname,LFTP,UFTP) $puttok($sock($sockname).mark,$ticks,3,9) _ftp.upl $replace($sockname,LFTP,UFTP) } } else { var %d = $_ftp.nums did -r %d 1021,1025,1026,2251 did -o %d 1024 3 0 did -o %d 1024 5 0 did -i %d 1022 2 +p 0 Gathering dir info... 0 bytes did -o %d 2994 16 $did(%d,1024,1) sockaccept $replace($sockname,LFTP,GFTP) sockmark $replace($sockname,LFTP,GFTP) $ticks } sockclose $sockname } ON *:SOCKWRITE:GFTP*:{ if ($sockerr) { error.a FTP Dir connection: $_sockerr _ftp._refremote.ref $_ftp.nums } } ON *:SOCKREAD:GFTP*:{ if ($sockerr) { error.a FTP Dir connection: $_sockerr _ftp._refremote.ref $_ftp.nums return } var %sr,%d = $remove($sockname,G) sockread %sr while ($sockbr) { if (%sr != $null) { _ftp.gftp.sr %sr } if ($sockname == $null) { break } sockread %sr } if ($sock($sockname).rcvd) { did -i %d 1022 2 +p 0 Gathering dir info... $bytes($ifmatch,b) bytes } } ON *:SOCKCLOSE:GFTP*:{ var %sr = $calc(($ticks - $sock($sockname).mark) / 1000) _ftp.addlog.info $_ftp.nums $sock($sockname).rcvd bytes transfered in $_duratio(%sr,2) ( $+ $_sckbpsw($calc($sock($sockname).rcvd / %sr)) $+ ) _ftp._refremote.ref $_ftp.nums } ON *:SOCKWRITE:DFTP*:{ if ($sockerr) { did -o $_sockmark(2) 1004 1 ERROR - Connection Closed } } ON *:SOCKREAD:DFTP*:{ tokenize 9 $sock($sockname).mark if ($sockerr) { did -o $2 1004 1 ERROR - Connection Closed return } sockread &t.dftp.sr bwrite " $+ $1 $+ " -1 &t.dftp.sr var %curr = $sock($sockname).rcvd,%total,%cps = $calc(%curr / (($ticks - $3) / 1000)),%lcps = $_sckbpsw(%cps) if ($4) { %total = $ifmatch if (%curr > %total) { %curr = %total } did -o $2 1003 1 $bytes(%curr,b) of $bytes(%total,b) bytes - %lcps did -a $2 1002 %curr 0 %total did -o $2 1004 1 Remaining: $_duratio($calc((%total - %curr) / (%curr / (($ticks - $3) / 1000))),2) } else { did -o $2 1003 1 %curr bytes - %lcps } } ON *:SOCKCLOSE:DFTP*:{ tokenize 9 $sock($sockname).mark var %d = $_ftp.nums,%tmp if ($sock($sockname).rcvd >= $4) { var %total,%cps = $calc($sock($sockname).rcvd / (($ticks - $3) / 1000)),%lcps = $_sckbpsw(%cps) _ftp.reflocal %d $did(%d,1014,1) if ($4) { %total = $ifmatch } else { %total = $sock($sockname).rcvd } did -a $2 1002 100 0 100 did -o $2 1003 1 $bytes($sock($sockname).rcvd,b) of $bytes(%total,b) bytes - %lcps did -o $2 1004 1 Completed in: $_duratio($calc(($ticks - $3) / 1000),2) _recent.add files 10 $_fixfilename($1) _ftp.addlog.info %d $sock($sockname).rcvd bytes transfered in $_duratio($calc(($ticks - $3) / 1000),2) ( $+ %lcps $+ ) } else { did -o $2 1004 1 ERROR - Connection closed _ftp.addlog.error %d Transfer incomplete: ' $+ $nopath($1) $+ ' } _ftp.transferlocallyforcedthisisabadidea %d } ON *:SOCKWRITE:UFTP*:{ if ($sockerr) { did -o $_sockmark(2) 1004 1 ERROR - Connection closed _ftp.transferlocallyforcedthisisabadidea $_ftp.nums return } _ftp.upl $sockname } ON *:SOCKCLOSE:UFTP*:{ did -o $_sockmark(2) 1004 1 ERROR - Connection closed _ftp.transferlocallyforcedthisisabadidea $_ftp.nums } alias _ftp.addlog.text { if ($did($1,1040).lines >= 600) { did -d $1 1040 1 } did -a $1 1040 $2- $+ $crlf } alias _ftp.addlog.command { _ftp.addlog.text $1 Cmd> $+ $2- } alias _ftp.addlog.reply { _ftp.addlog.text $1 $+ $2- } alias _ftp.addlog.info { _ftp.addlog.text $1 Status> $+ $2- } alias _ftp.addlog.error { _ftp.addlog.text $1 ERROR> $+ $2- } alias _ftp.status.info { did -i $1 2992 2 +p 0 $2- } alias _ftp.status.error { did -i $1 2992 2 +p 0 $2- } alias _ftp.sockflush { sockclose ? $+ $_ftp.nums($1) } alias _ftp.transferlocallyforcedthisisabadidea { _ftp.sockflush $1 return _ftp.sigue $1 1 }