-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
18 changed files
with
275 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# frozen_string_literal: true | ||
|
||
target :lib do | ||
signature 'sig' | ||
|
||
check 'lib' | ||
ignore 'lib/dyndnsd/updater/zone_transfer_server.rb' | ||
|
||
library 'date' | ||
library 'forwardable' | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
module Dyndnsd | ||
type config = Hash[String, untyped] | ||
type env = Hash[String, String] | ||
type headers = Hash[String, String] | ||
type response = Array[int | Hash[string, string] | Array[string]] | ||
|
||
interface _App | ||
def call: (env env) -> response | ||
end | ||
|
||
|
||
# @return [Logger] | ||
def self.logger: () -> untyped | ||
|
||
# @param logger [Logger] | ||
# @return [Logger] | ||
def self.logger=: (untyped logger) -> untyped | ||
|
||
class LogFormatter | ||
# @param lvl [Object] | ||
# @param _time [DateTime] | ||
# @param _progname [String] | ||
# @param msg [Object] | ||
# @return [String] | ||
def call: (untyped lvl, DateTime _time, String _progname, untyped msg) -> String | ||
end | ||
|
||
class Daemon | ||
# @param config [Hash{String => Object}] | ||
# @param db [Dyndnsd::Database] | ||
# @param updater [#update] | ||
def initialize: (untyped config, untyped db, untyped updater) -> void | ||
|
||
# @param username [String] | ||
# @param password [String] | ||
# @return [Boolean] | ||
def authorized?: (String username, String password) -> bool | ||
|
||
def call: (env env) -> response | ||
|
||
def self.run!: () -> void | ||
|
||
private | ||
|
||
# @param params [Hash{String => String}] | ||
# @return [Array<String>] | ||
def extract_v4_and_v6_address: (untyped params) -> (::Array[untyped] | untyped) | ||
|
||
# @param env [Hash{String => String}] | ||
# @param params [Hash{String => String}] | ||
# @return [Array<String>] | ||
def extract_myips: (untyped env, untyped params) -> (untyped | ::Array[untyped]) | ||
|
||
# @param hostnames [String] | ||
# @param myips [Array<String>] | ||
# @return [Array<Symbol>] | ||
def process_changes: (untyped hostnames, untyped myips) -> untyped | ||
|
||
def update_db: () -> void | ||
|
||
def handle_dyndns_request: (env env) -> response | ||
|
||
def self.setup_logger: (config config) -> void | ||
def self.setup_traps: () -> void | ||
def self.setup_monitoring: (config config) -> void | ||
def self.setup_tracing: (config config) -> void | ||
def self.setup_rack: (config config) -> void | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
module Dyndnsd | ||
class Database | ||
extend Forwardable | ||
|
||
def initialize: (string db_file) -> void | ||
|
||
def load: () -> void | ||
|
||
def save: () -> void | ||
|
||
def changed?: () -> bool | ||
|
||
def []: (string key) -> untyped | ||
|
||
def []=: (string key, untyped value) -> void | ||
|
||
def each: () { (string key, untyped value) -> void } -> void | ||
|
||
def has_key?: (string key) -> bool | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
module Dyndnsd | ||
module Generator | ||
class Bind | ||
def initialize: (String domain, Hash[String, untyped] updater_params) -> void | ||
|
||
def generate: (Dyndnsd::Database db) -> string | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
module Dyndnsd | ||
type users = Hash[String, Hash[String, String]] | ||
type hosts = Hash[String, Array[String]] | ||
|
||
class Helper | ||
# @param hostname [String] | ||
# @param domain [String] | ||
# @return [Boolean] | ||
def self.fqdn_valid?: (String hostname, String domain) -> bool | ||
|
||
# @param ip [String] | ||
# @return [Boolean] | ||
def self.ip_valid?: (String ip) -> bool | ||
|
||
# @param username [String] | ||
# @param password [String] | ||
# @param users [Hash] | ||
# @return [Boolean] | ||
def self.user_allowed?: (String username, String password, users users) -> bool | ||
|
||
# @param hostname [String] | ||
# @param myips [Array] | ||
# @param hosts [Hash] | ||
# @return [Boolean] | ||
def self.changed?: (String hostname, Array[String] myips, hosts hosts) -> bool | ||
|
||
# @param operation [String] | ||
# @param block [Proc] | ||
# @return [void] | ||
def self.span: (String operation) { (untyped) -> untyped } -> untyped | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
module Dyndnsd | ||
module Responder | ||
class DynDNSStyle | ||
def initialize: (_App app) -> void | ||
|
||
def call: (env env) -> response? | ||
|
||
private | ||
|
||
def decorate_dyndnsd_response: (int status_code, headers headers, Array[untyped] body) -> response? | ||
|
||
def decorate_other_response: (int status_code, headers headers, Array[untyped] _body) -> response? | ||
|
||
def get_success_body: (Array[Symbol] changes, Array[string] myips) -> string | ||
|
||
def error_response_map: () -> Hash[string, response] | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
module Dyndnsd | ||
module Responder | ||
class RestStyle | ||
def initialize: (_App app) -> void | ||
|
||
def call: (env env) -> response? | ||
|
||
private | ||
|
||
def decorate_dyndnsd_response: (int status_code, headers headers, Array[untyped] body) -> response? | ||
|
||
def decorate_other_response: (int status_code, headers headers, Array[untyped] _body) -> response? | ||
|
||
def get_success_body: (Array[Symbol] changes, Array[string] myips) -> string | ||
|
||
def error_response_map: () -> Hash[string, response] | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
class Thread | ||
def initialize: () { () -> void } -> void | ||
end | ||
|
||
module Dyndnsd | ||
class TextfileReporter | ||
attr_reader file: String | ||
|
||
def initialize: (String file, ?Hash[Symbol, untyped] options) -> void | ||
|
||
def start: () -> void | ||
|
||
def stop: () -> void | ||
|
||
def restart: () -> void | ||
|
||
def write: () -> void | ||
|
||
def write_metric: (File file, String base_name, untyped metric, Array[Symbol] keys, Array[Symbol] snapshot_keys) -> void | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
module Dyndnsd | ||
module Updater | ||
class CommandWithBindZone | ||
def initialize: (String domain, Hash[String, untyped] updater_params) -> void | ||
|
||
def update: (Dyndnsd::Database db) -> void | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
module Dyndnsd | ||
module Updater | ||
class ZoneTransferServer | ||
DEFAULT_SERVER_LISTENS: Array[String] | ||
|
||
def initialize: (String domain, Hash[String, untyped] updater_params) -> void | ||
|
||
def update: (Dyndnsd::Database db) -> void | ||
|
||
# converts into suitable parameter form for Async::DNS::Resolver or Async::DNS::Server | ||
# | ||
# @param endpoint_list [Array<String>] | ||
# @return [Array{Array{Object}}] | ||
def self.parse_endpoints: (Array[String] endpoint_list) -> Array[Array[untyped]] | ||
|
||
private | ||
|
||
# creates correct Resolv::DNS::Resource object for IP address type | ||
# | ||
# @param ip_string [String] | ||
# @return [Resolv::DNS::Resource::IN::A,Resolv::DNS::Resource::IN::AAAA] | ||
def create_addr_rr_for_ip: (String ip_string) -> untyped | ||
|
||
def send_dns_notify: () -> void | ||
end | ||
|
||
class ZoneTransferServerHelper #< Async::DNS::Server | ||
attr_accessor axfr_rrs: untyped | ||
|
||
def initialize: (untyped endpoints, String domain) -> void | ||
|
||
# @param name [String] | ||
# @param resource_class [Resolv::DNS::Resource] | ||
# Since solargraph cannot parse this: param transaction [Async::DNS::Transaction] | ||
# @return [void] | ||
def process: (String name, untyped resource_class, untyped transaction) -> void | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
module Dyndnsd | ||
VERSION: ::String | ||
end |