50 lines
1.2 KiB
Crystal
50 lines
1.2 KiB
Crystal
require "authd"
|
|
require "ipc"
|
|
require "../src/client.cr"
|
|
require "http/server"
|
|
|
|
port = ARGV[0].to_i rescue 8080
|
|
addr = ARGV[1] rescue "127.0.0.1"
|
|
|
|
#login = ENV["LOGIN"]
|
|
#pass = ENV["PASS"]
|
|
|
|
dnsmanagerd = DNSManager::Client.new
|
|
#dnsmanagerd.login login, pass
|
|
|
|
server = HTTP::Server.new do |context|
|
|
pp! context.request.remote_address
|
|
ip = case remote = context.request.remote_address
|
|
when Socket::IPAddress
|
|
remote.address
|
|
else
|
|
""
|
|
end
|
|
|
|
case context.request.path
|
|
when /^\/token-update\/(?<token>[a-z0-9-]+)/
|
|
token = $~["token"]
|
|
if token.nil?
|
|
context.response.status_code = 404
|
|
context.response.print "invalid token"
|
|
else
|
|
context.response.content_type = "text/html"
|
|
context.response.print "coucou, token: #{token} from #{ip}"
|
|
begin
|
|
dnsmanagerd.use_token token, ip
|
|
context.response.print "; Success!" # 🔻
|
|
rescue e
|
|
puts "error while updating token: #{e}"
|
|
context.response.print "; The command failed!" # ⚠
|
|
end
|
|
end
|
|
else
|
|
context.response.status_code = 404
|
|
context.response.print "Not found"
|
|
end
|
|
end
|
|
|
|
address = server.bind_tcp addr, port
|
|
puts "Receiving tokens on http://#{address}/token-update/<token>"
|
|
server.listen
|