Advertisement
Guest User

Untitled

a guest
Dec 27th, 2012
2,828
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 3.51 KB | None | 0 0
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;                    Mirc SSL DCC Gets Script By Sanchez 2012              ;
  3. ;  passive gets not working since you cant /socklisten via ssl             ;
  4. ;  speed is limited to around 100kb/s give or take due slow mirc sockets   ;
  5. ;  no resume support currently, since its just a PoC                       ;
  6. ;  Trigger: DCC SSEND filename ip port filesize                            ;
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8.  
  9. ctcp ^*:DCC SSEND*:{
  10.  
  11.   ; load settings + data
  12.   ; change your dir.
  13.   set %ssldir c:\downloads\
  14.   var %filename = $3
  15.   var %ip = $longip($4)
  16.   var %remoteport = $5
  17.   var %filesize = $6
  18.   var %win = $+(@,%filename)
  19.   var %sn = dcc. $+ %filename
  20.  
  21.   ; check user against your trusted dcc user list
  22.   var %i = 1
  23.   while ($trust(%i)) {
  24.     if ($v1 iswm $fulladdress)  break
  25.     inc %i
  26.   }
  27.   if ( !$trust(%i) ) {
  28.     echo The user $fulladdress was trying to send you %filename $+ , but he doesnt match your trusted dcc user list.
  29.     return
  30.   }
  31.  
  32.  
  33.   ; check if already running or file complete
  34.   if ($sock(%sn)) {
  35.     echo Transfer %filename still running. Aborting.
  36.     return
  37.   }
  38.   else if ( $file($+(%ssldir,%filename)).size == %filesize ) {
  39.     echo Transfer already complete. Aborting.
  40.     return
  41.   }
  42.  
  43.   ; connect to remote host and pass arguments  
  44.   /sockopen -e %sn %ip %remoteport
  45.   sockmark %sn $+(%filename,$chr(9),$nick,$chr(9),$ctime,$chr(9),%filesize,$chr(9),0)
  46.  
  47.   ; open transfer window
  48.   if (!$window(%win)) /window %win
  49.   else {
  50.     /window -c %win
  51.     /window %win
  52.   }
  53.   /aline %win Starting transfer...
  54.   haltdef
  55. }
  56. on *:sockclose:dcc.*: {
  57.  
  58.   var %sn = $sockname
  59.   var %sm = $sock(%sn).mark
  60.   var %filename = $strip($gettok(%sm,1,9),burc)
  61.   var %win = $+(@,%filename)
  62.   var %nick = $gettok(%sm,2,9)
  63.   var %filesize = $gettok(%sm,4,9)
  64.   var %size = $gettok(%sm,5,9)
  65.  
  66.  
  67.   if  (%filesize != %size) {
  68.     echo DOWNLOAD: %filename from %nick incomplete.
  69.     if ($window(%win)) /aline %win %filename from %nick incomplete.
  70.   }
  71. }
  72.  
  73. on *:sockopen:dcc.*:sockwrite -nt $sockname 0
  74. on *:sockread:dcc.*: {
  75.  
  76.   var %sn = $sockname
  77.   var %sm = $sock(%sn).mark
  78.   var %filename = $strip($gettok(%sm,1,9),burc)
  79.   var %nick = $gettok(%sm,2,9)
  80.   var %time = $gettok(%sm,3,9)
  81.   var %filesize = $gettok(%sm,4,9)
  82.   var %win = $+(@,%filename)
  83.  
  84.   var %sockbr = 0
  85.   var %size = $gettok(%sm,5,9)
  86.   if ($sockerr > 0) return
  87.  
  88.  
  89.   :nextread
  90.   sockread 16384 &x
  91.  
  92.   var %readbytes = $sockbr
  93.   inc %size %readbytes
  94.  
  95.   ; no new data
  96.   if (%readbytes == 0) {
  97.  
  98.     ;TODO: send constant acks and check if its gonna be any faster
  99.     ;if ( %size >= 65536) {
  100.     ;sockwrite -nt $sockname $base(%deltasize, 10, 16)
  101.     ;}
  102.  
  103.     /rline %win 1 %filename - %size from %filesize downloaded ( $+ $round($calc( %size * 100 / %filesize),0) $+ %), at $round($calc( %size / (($ctime - %time) * 1000) ),2) kb/s.
  104.     return
  105.   }
  106.   else {
  107.     ; append data to file
  108.     /bwrite %ssldir $+ %filename -1 &x
  109.   }
  110.  
  111.   ; update current filesize
  112.   sockmark $sockname $puttok(%sm,%size,5,9)
  113.  
  114.   ; file complete, send ack and have the remote host close the socket
  115.   if  (%filesize == %size) {
  116.     echo DOWNLOAD: %filename from %nick completed after $duration($calc($ctime - %time))
  117.     /rline %win 1 %filename - %size from %filesize downloaded (100%), at $round($calc( %size / (($ctime - %time) * 1000) ),2) kb/s.
  118.     sockwrite -nt $sockname $base(%size, 10, 16)
  119.   }
  120.  
  121.   goto nextread
  122.  
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement