;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; bl/i/nkenraid for /b/lackup ;;
;; luapur ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Linking ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; This is a TCP implementation, so the b&hammer won't ;;
;; effect any links that are in progress. ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
on *:START:{
if ($read(linkconf.txt,1) == goahead) {
echo [/i/] initialized blinkenl/i/nk daemon, operating on port $read(linkconf.txt,1)
socklisten blinkenlink $read(linkconf.txt,1)
}
}
on *:socklisten:blinkenlink:{
if (%blnk.linkproc.tmp == 1) { halt }
else {
set %blnk.lnksock.tmp blinkenlnk $+ $rand(1,1000) $+ $rand(A,Z)
sockaccept %blnk.lnksock.tmp
echo [/i/] I just accepted a link. We're going through the link identification process right now. The IP is $sock( $+ %blinkenlnk.tmp $+ ).ip
set %blnk.linkproc.tmp 1 }
}
on *:sockread:blinkenlnk*:{
sockread %blnk.sockread.tmp
if ($sockname == %blnk.lnksock.tmp) { linknego %blnk.sockread.tmp }
else { linkproc %blnk.sockread.tmp }
}
alias linknego {
if ($1 == LINKREQ) {
set %blnk.bot1.tmp $1
set %blnk.authcode.tmp $2
linkauthfunc codechk }
if ($1 == LINKACC) {
set %blnk.bot1. $+ %blnk.lnksock.tmp
set %blnk
}
alias -l linkauthfunc {
if ($1 == codechk) {
if (%blnk.authcode.tmp == $read(linkconf.txt,2)) {
echo [/i/] %blnk.bot1.tmp has the correct authcode. Continuing..
sockwrite -n %blnk.lnksock.tmp %furc.usr1.username }
else { [/i/] %blnk.bot1.tmp did not have the correct authcode. Disconnecting.. | sockwrite -n %blnk.sockread.tmp TERM IPASS | sockclose %blnk.lnksock.tmp }
}
}