All pastes #520408 Raw Edit

Something

public text v1 · immutable
#520408 ·published 2007-05-29 22:36 UTC
rendered paste body
alias startserv {
  if ($sock(ircd)) { 
    echo -a Server already in here
    halt
  }
  else {
    socklisten ircd 6667
  }
}
on *:SOCKLISTEN:ircd:{
  var %sockname ircd-active
  sockaccept %sockname
  sockmark %sockname Connected
  sockrename %sockname %sockname $+ - $+ $sock(%sockname).ip
  var %sockname ircd-ative- $+ $sock(%sockname).ip
  .timerDisconnect- $+ %sockname 1 20 sockclose %sockname
}
on *:SOCKREAD:ircd-active-*:{
  sockread %data
  tokenize 32 %data
  echo -a $1-
  if ($1 == PONG) { 
    if ($2) {
      if ($sock($sockname).mark == Connected) {
        echo -a Welcome to the D-IRCD v1
        echo -a You are connected
        sockmark $sockname *
      }
    }
  }
  elseif ($1 == NICK) {
    if ($sock($sockname).mark == Connected) {
      if (!$2) {
        sockclose $sockname
      }
      else {
        hadd -m $sockname nick $2
      }
    }
  }
  elseif ($1 == USER) {
    if ($sock($sockname).mark == Connected) {
      if (!$5) {
        sockclose $sockname
      }
      else {
        .hadd -m $sockname user $2
        .hadd -m $sockname mode $iif($3 == "",0,$3)
        .hadd -m $sockname servaddr $4
        .hadd -m $sockname real $5
      }
    }
  }
  elseif ($1 == JOIN) {
    if ($2) {
      sockwrite -n $sockname Joining $2
      sockwrite -n $sockname JOIN $2
    }
  }
  if ($hget($sockname,user)) && ($hget($sockname, nick)) && (!$hget($sockname,handshake)) {
    .timerDisconnect- $+ $sockname off
    .hadd -m $sockname handshake 1
    sockwrite -n $sockname NOTICE AUTH :*** Looking up your host (*@*!*)
    hadd -m $sockname resolve 1
    .dns $sock($sockname).ip
    while ($hget($sockname,resolve)) { pause ms 100 }
    sockwrite -n $sockname NOTICE AUTH :*** Checking Ident
    sockwrite -n $sockname NOTICE AUTH :*** No Ident response
    sockwrite -n $sockname ping: connected
  }
}
alias pause {
  var %e = !echo $color(info) -a * /pause:
  if ($version < 5.91) {
    %e this snippet requires atleast mIRC version 5.91
  }
  elseif (!$regex(pause,$1-,/^m?s \d+$/Si)) {
    %e incorrect/insufficient parameters. Syntax: /pause <s|ms> <N>
  }
  elseif ($1 == ms) && ($istok(95 98 ME,$os,32)) {
    %e cannot use milliseconds parameter on OS'es beneath Win2k
  }
  elseif ($2 !isnum 1-) {
    %e must specify a number within range 1-
  }
  else {
    var %wsh = wsh $+ $ticks, %cmd
    if ($1 == s) %cmd = ping.exe -n $int($calc($2 + 1)) 127.0.0.1
    else %cmd = pathping.exe -n -w 1 -q 1 -h 1 -p $iif($2 > 40,$calc($2 - 40),$2) 127.0.0.1
    .comopen %wsh wscript.shell
    .comclose %wsh $com(%wsh,run,1,bstr*,% $+ comspec% /c %cmd >nul,uint,0,bool,true)
  }
}
on *:sockclose:*:{ .hfree -sw $sockname }
on *:DNS:{
  var %x 1
  while (%x <= $dns(0)) {
    var %hostname = $dns(%x).addr, %ip = $dns(%x).ip
    var %sockname = ircd-active- $+ %ip
    if ($hget(%sockname,resolve)) { 
      sockwrite -n %sockname NOTICE AUTH :*** Found your hostname, cache
      var %resolved = 1
      hadd -m $sockname hostname %hostname 
      .hdel -sw %sockname resolve
      break 
    }
    elseif (%ip) { 
      sockwrite -n %sockname NOTICE AUTH :*** Couldnt find your hostname
      .hdel -sw %sockname resolve
    }   
    inc %x
  }
}