diff --git a/door/isdead.lua b/door/isdead.lua new file mode 100644 index 0000000..ef562bb --- /dev/null +++ b/door/isdead.lua @@ -0,0 +1,47 @@ +#!/usr/bin/env lua + +require 'luasql.postgres' +require 'helper' +require 'config' +require 'base64' + +function exit(env, con) + con:close() + env:close() + os.exit() +end + +print "* checking token if it's dead ..." + +env = luasql.postgres() +con = env:connect(config.db) + +io.stdout:write("enter prefix (length "..config.prefix_len.."): ") +prefix = io.stdin:read() + +if prefix:len() ~= config.prefix_len then + print("ERROR - prefix must have given length "..config.prefix_len..".") + exit(env,con) +end +if not is_base64(prefix) then + print "ERROR - prefix must be a valid base64 string." + exit(env,con) +end + +deadtokencount = con:execute("select count(*) from graveyard where prefix='"..prefix.."';"):fetch() +if deadtokencount == nil then + print "ERROR - can't get correct results from database. PLease check!" + exit(env,con) +end + +deadtokencount = tonumber(deadtokencount) +if deadtokencount == 0 then + print "no token found in graveyard." + elseif deadtokencount == 1 then + print "token found. token is dead." + else + print "ERROR - found more than 1 dead token .. something is broken. Please do something!" +end + +exit(env,con) + diff --git a/door/isvalid.lua b/door/isvalid.lua new file mode 100644 index 0000000..d9d7474 --- /dev/null +++ b/door/isvalid.lua @@ -0,0 +1,47 @@ +#!/usr/bin/env lua + +require 'luasql.postgres' +require 'helper' +require 'config' +require 'base64' + +function exit(env, con) + con:close() + env:close() + os.exit() +end + +print "* checking token if it's still valid ..." + +env = luasql.postgres() +con = env:connect(config.db) + +io.stdout:write("enter prefix (length "..config.prefix_len.."): ") +prefix = io.stdin:read() + +if prefix:len() ~= config.prefix_len then + print("ERROR - prefix must have given length "..config.prefix_len..".") + exit(env,con) +end +if not is_base64(prefix) then + print "ERROR - prefix must be a valid base64 string." + exit(env,con) +end + +tokencount = con:execute("select count(*) from tokens where prefix='"..prefix.."';"):fetch() +if tokencount == nil then + print "ERROR - can't get correct results from database. PLease check!" + exit(env,con) +end + +tokencount = tonumber(tokencount) +if tokencount == 0 then + print "mo token found in database." + elseif tokencount == 1 then + print "token found. token is valid." + else + print "ERROR - found more than 1 dead token .. something is broken. Please do something!" +end + +exit(env,con) + diff --git a/isdead b/isdead new file mode 120000 index 0000000..9505d74 --- /dev/null +++ b/isdead @@ -0,0 +1 @@ +/home/cricket/door/magic_run \ No newline at end of file diff --git a/isvalid b/isvalid new file mode 120000 index 0000000..9505d74 --- /dev/null +++ b/isvalid @@ -0,0 +1 @@ +/home/cricket/door/magic_run \ No newline at end of file