SYMBOL INDEX (574 symbols across 89 files) FILE: config/config.go type DnsConfig (line 28) | type DnsConfig struct method getIpv4AddrFromInterface (line 230) | func (conf *DnsConfig) getIpv4AddrFromInterface() string { method getIpv4AddrFromUrl (line 247) | func (conf *DnsConfig) getIpv4AddrFromUrl() string { method getAddrFromCmd (line 274) | func (conf *DnsConfig) getAddrFromCmd(addrType string) string { method GetIpv4Addr (line 317) | func (conf *DnsConfig) GetIpv4Addr() string { method getIpv6AddrFromInterface (line 335) | func (conf *DnsConfig) getIpv6AddrFromInterface() string { method getIpv6AddrFromUrl (line 379) | func (conf *DnsConfig) getIpv6AddrFromUrl() string { method GetIpv6Addr (line 408) | func (conf *DnsConfig) GetIpv6Addr() (result string) { method GetHTTPClient (line 427) | func (conf *DnsConfig) GetHTTPClient() *http.Client { type DNS (line 56) | type DNS struct type Config (line 65) | type Config struct method CompatibleConfig (line 128) | func (conf *Config) CompatibleConfig() { method SaveConfig (line 168) | func (conf *Config) SaveConfig() (err error) { method ResetPassword (line 194) | func (conf *Config) ResetPassword(newPassword string) { method CheckPassword (line 212) | func (conf *Config) CheckPassword(newPassword string) (hashedPwd strin... type cacheType (line 76) | type cacheType struct function GetConfigCached (line 85) | func GetConfigCached() (conf Config, err error) { FILE: config/domains.go type Domains (line 13) | type Domains struct method GetNewIp (line 102) | func (domains *Domains) GetNewIp(dnsConf *DnsConfig) { method GetNewIpResult (line 199) | func (domains *Domains) GetNewIpResult(recordType string) (ipAddr stri... method GetAllNewIpResult (line 218) | func (domains *Domains) GetAllNewIpResult(multiRecordType string) (res... type Domain (line 23) | type Domain struct method String (line 56) | func (d Domain) String() string { method GetFullDomain (line 64) | func (d Domain) GetFullDomain() string { method GetSubDomain (line 73) | func (d Domain) GetSubDomain() string { method GetCustomParams (line 81) | func (d Domain) GetCustomParams() url.Values { method ToASCII (line 96) | func (d Domain) ToASCII() string { type DomainTuples (line 33) | type DomainTuples method append (line 239) | func (domains DomainTuples) append(ipAddr string, retDomains []*Domain... type DomainTuple (line 36) | type DomainTuple struct method SetUpdateStatus (line 264) | func (d *DomainTuple) SetUpdateStatus(status updateStatusType) { method GetIpAddrPool (line 275) | func (d *DomainTuple) GetIpAddrPool(separator string) (result string) { function checkParseDomains (line 141) | func checkParseDomains(domainArr []string) (domains []*Domain) { FILE: config/domains_test.go function TestToASCII (line 8) | func TestToASCII(t *testing.T) { function TestParseDomainArr (line 54) | func TestParseDomainArr(t *testing.T) { FILE: config/netInterface.go type NetInterface (line 9) | type NetInterface struct function GetNetInterface (line 16) | func GetNetInterface() (ipv4NetInterfaces []NetInterface, ipv6NetInterfa... FILE: config/netInterface_test.go function TestGetNetInterface (line 7) | func TestGetNetInterface(t *testing.T) { FILE: config/user.go type User (line 4) | type User struct FILE: config/webhook.go type Webhook (line 13) | type Webhook struct type updateStatusType (line 20) | type updateStatusType constant UpdatedNothing (line 24) | UpdatedNothing updateStatusType = "未改变" constant UpdatedFailed (line 26) | UpdatedFailed = "失败" constant UpdatedSuccess (line 28) | UpdatedSuccess = "成功" function hasJSONPrefix (line 35) | func hasJSONPrefix(s string) bool { function ExecWebhook (line 40) | func ExecWebhook(domains *Domains, conf *Config) (v4Status updateStatusT... function getDomainsStatus (line 105) | func getDomainsStatus(domains []*Domain) updateStatusType { function replacePara (line 125) | func replacePara(domains *Domains, orgPara string, ipv4Result updateStat... function getDomainsStr (line 137) | func getDomainsStr(domains []*Domain) string { function extractHeaders (line 152) | func extractHeaders(s string) map[string]string { FILE: config/webhook_test.go function TestExtractHeaders (line 9) | func TestExtractHeaders(t *testing.T) { FILE: dns/alidns.go constant alidnsEndpoint (line 13) | alidnsEndpoint string = "https://alidns.aliyuncs.com/" type Alidns (line 18) | type Alidns struct method Init (line 47) | func (ali *Alidns) Init(dnsConf *config.DnsConfig, ipv4cache *util.IpC... method AddUpdateDomainRecords (line 62) | func (ali *Alidns) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 68) | func (ali *Alidns) addUpdateDomainRecords(recordType string) { method create (line 112) | func (ali *Alidns) create(domain *config.Domain, recordType string, ip... method modify (line 140) | func (ali *Alidns) modify(recordSelected AlidnsRecord, domain *config.... method request (line 175) | func (ali *Alidns) request(params url.Values, result interface{}) (err... type AlidnsRecord (line 26) | type AlidnsRecord struct type AlidnsSubDomainRecords (line 33) | type AlidnsSubDomainRecords struct type AlidnsResp (line 41) | type AlidnsResp struct FILE: dns/aliesa.go constant aliesaEndpoint (line 16) | aliesaEndpoint string = "https://esa.cn-hangzhou.aliyuncs.com/" type Aliesa (line 20) | type Aliesa struct method Init (line 66) | func (ali *Aliesa) Init(dnsConf *config.DnsConfig, ipv4cache *util.IpC... method AddUpdateDomainRecords (line 81) | func (ali *Aliesa) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 90) | func (ali *Aliesa) addUpdateDomainRecords(recordType string) { method create (line 141) | func (ali *Aliesa) create(site AliesaSite, domainTuple *config.DomainT... method modify (line 182) | func (ali *Aliesa) modify(record AliesaRecord, domainTuple *config.Dom... method getRecord (line 215) | func (ali *Aliesa) getRecord(site AliesaSite, domainTuple *config.Doma... method getSite (line 245) | func (ali *Aliesa) getSite(domainTuple *config.DomainTuple) (result Al... method getOriginPool (line 283) | func (ali *Aliesa) getOriginPool(site AliesaSite, domainTuple *config.... method updateOriginPool (line 314) | func (ali *Aliesa) updateOriginPool(site AliesaSite, domainTuple *conf... method request (line 374) | func (ali *Aliesa) request(method string, params url.Values, result in... type AliesaSiteResp (line 31) | type AliesaSiteResp struct type AliesaSite (line 37) | type AliesaSite struct type AliesaRecordResp (line 44) | type AliesaRecordResp struct type AliesaRecord (line 50) | type AliesaRecord struct type AliesaResp (line 59) | type AliesaResp struct FILE: dns/baidu.go constant baiduEndpoint (line 16) | baiduEndpoint = "https://bcd.baidubce.com" type BaiduCloud (line 19) | type BaiduCloud struct method Init (line 71) | func (baidu *BaiduCloud) Init(dnsConf *config.DnsConfig, ipv4cache *ut... method AddUpdateDomainRecords (line 91) | func (baidu *BaiduCloud) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 97) | func (baidu *BaiduCloud) addUpdateDomainRecords(recordType string) { method create (line 136) | func (baidu *BaiduCloud) create(domain *config.Domain, recordType stri... method modify (line 157) | func (baidu *BaiduCloud) modify(record BaiduRecord, domain *config.Dom... method request (line 185) | func (baidu *BaiduCloud) request(method string, url string, data inter... type BaiduRecord (line 27) | type BaiduRecord struct type BaiduRecordsResp (line 39) | type BaiduRecordsResp struct type BaiduListRequest (line 45) | type BaiduListRequest struct type BaiduModifyRequest (line 52) | type BaiduModifyRequest struct type BaiduCreateRequest (line 63) | type BaiduCreateRequest struct FILE: dns/callback.go type Callback (line 14) | type Callback struct method Init (line 24) | func (cb *Callback) Init(dnsConf *config.DnsConfig, ipv4cache *util.Ip... method AddUpdateDomainRecords (line 42) | func (cb *Callback) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 48) | func (cb *Callback) addUpdateDomainRecords(recordType string) { function replacePara (line 107) | func replacePara(orgPara, ipAddr string, domain *config.Domain, recordTy... FILE: dns/cloudflare.go constant zonesAPI (line 16) | zonesAPI = "https://api.cloudflare.com/client/v4/zones" type Cloudflare (line 19) | type Cloudflare struct method Init (line 61) | func (cf *Cloudflare) Init(dnsConf *config.DnsConfig, ipv4cache *util.... method AddUpdateDomainRecords (line 81) | func (cf *Cloudflare) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 87) | func (cf *Cloudflare) addUpdateDomainRecords(recordType string) { method create (line 156) | func (cf *Cloudflare) create(zoneID string, domain *config.Domain, rec... method modify (line 190) | func (cf *Cloudflare) modify(result CloudflareRecordsResp, zoneID stri... method getZones (line 228) | func (cf *Cloudflare) getZones(domain *config.Domain) (result Cloudfla... method request (line 245) | func (cf *Cloudflare) request(method string, url string, data interfac... type CloudflareZonesResp (line 27) | type CloudflareZonesResp struct type CloudflareRecordsResp (line 38) | type CloudflareRecordsResp struct type CloudflareRecord (line 44) | type CloudflareRecord struct type CloudflareStatus (line 55) | type CloudflareStatus struct FILE: dns/dnsla.go constant recordList (line 15) | recordList string = "http://api.dns.la/api/recordList" constant recordModify (line 16) | recordModify string = "http://api.dns.la/api/record" constant recordCreate (line 17) | recordCreate string = "http://api.dns.la/api/record" type Dnsla (line 22) | type Dnsla struct method Init (line 57) | func (dnsla *Dnsla) Init(dnsConf *config.DnsConfig, ipv4cache *util.Ip... method AddUpdateDomainRecords (line 73) | func (dnsla *Dnsla) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 79) | func (dnsla *Dnsla) addUpdateDomainRecords(recordType string) { method create (line 117) | func (dnsla *Dnsla) create(domain *config.Domain, recordType string, i... method modify (line 159) | func (dnsla *Dnsla) modify(record DnslaRecord, domain *config.Domain, ... method request (line 208) | func (dnsla *Dnsla) request(method, apiAddr string, values []byte) (bo... method getRecordList (line 235) | func (dnsla *Dnsla) getRecordList(domain *config.Domain, typ string) (... type DnslaRecord (line 30) | type DnslaRecord struct type DnslaRecordListResp (line 38) | type DnslaRecordListResp struct type DnslaStatus (line 48) | type DnslaStatus struct FILE: dns/dnspod.go constant recordListAPI (line 12) | recordListAPI string = "https://dnsapi.cn/Record.List" constant recordModifyURL (line 13) | recordModifyURL string = "https://dnsapi.cn/Record.Modify" constant recordCreateAPI (line 14) | recordCreateAPI string = "https://dnsapi.cn/Record.Create" type Dnspod (line 19) | type Dnspod struct method Init (line 50) | func (dnspod *Dnspod) Init(dnsConf *config.DnsConfig, ipv4cache *util.... method AddUpdateDomainRecords (line 65) | func (dnspod *Dnspod) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 71) | func (dnspod *Dnspod) addUpdateDomainRecords(recordType string) { method create (line 107) | func (dnspod *Dnspod) create(domain *config.Domain, recordType string,... method modify (line 139) | func (dnspod *Dnspod) modify(record DnspodRecord, domain *config.Domai... method request (line 179) | func (dnspod *Dnspod) request(apiAddr string, values url.Values) (stat... method getRecordList (line 192) | func (dnspod *Dnspod) getRecordList(domain *config.Domain, typ string)... type DnspodRecord (line 27) | type DnspodRecord struct type DnspodRecordListResp (line 36) | type DnspodRecordListResp struct type DnspodStatus (line 42) | type DnspodStatus struct FILE: dns/dynadot.go constant dynadotEndpoint (line 15) | dynadotEndpoint string = "https://www.dynadot.com/set_ddns" type Dynadot (line 19) | type Dynadot struct method Init (line 45) | func (dynadot *Dynadot) Init(dnsConf *config.DnsConfig, ipv4cache *uti... method AddUpdateDomainRecords (line 62) | func (dynadot *Dynadot) AddUpdateDomainRecords() config.Domains { method addOrUpdateDomainRecords (line 69) | func (dynadot *Dynadot) addOrUpdateDomainRecords(recordType string) { method createOrModify (line 136) | func (dynadot *Dynadot) createOrModify(record *DynadotRecord, recordTy... method request (line 170) | func (dynadot *Dynadot) request(params url.Values, result interface{})... type DynadotRecord (line 29) | type DynadotRecord struct type DynadotResp (line 38) | type DynadotResp struct function mergeDomains (line 102) | func mergeDomains(domains []*config.Domain) (records []*DynadotRecord) { FILE: dns/dynv6.go constant dynv6Endpoint (line 14) | dynv6Endpoint = "https://dynv6.com" type Dynv6 (line 17) | type Dynv6 struct method Init (line 40) | func (dynv6 *Dynv6) Init(dnsConf *config.DnsConfig, ipv4cache *util.Ip... method AddUpdateDomainRecords (line 55) | func (dynv6 *Dynv6) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 61) | func (dynv6 *Dynv6) addUpdateDomainRecords(recordType string) { method processSubDomain (line 131) | func (dynv6 *Dynv6) processSubDomain(domain *config.Domain, zone Dynv6... method findZone (line 145) | func (dynv6 *Dynv6) findZone(domain *config.Domain) (isFind bool, zone... method findRecord (line 173) | func (dynv6 *Dynv6) findRecord(domain *config.Domain, zoneId string, r... method modifyMain (line 195) | func (dynv6 *Dynv6) modifyMain(domain *config.Domain, zoneId string, r... method create (line 215) | func (dynv6 *Dynv6) create(domain *config.Domain, zoneId string, recor... method modify (line 234) | func (dynv6 *Dynv6) modify(domain *config.Domain, zoneId string, recor... method request (line 252) | func (dynv6 *Dynv6) request(method string, url string, data interface{... type Dynv6Zone (line 24) | type Dynv6Zone struct type Dynv6Record (line 31) | type Dynv6Record struct FILE: dns/edgeone.go constant edgeoneEndPoint (line 16) | edgeoneEndPoint = "https://teo.tencentcloudapi.com" constant edgeoneVersion (line 17) | edgeoneVersion = "2022-09-01" type EdgeOne (line 20) | type EdgeOne struct method Init (line 79) | func (eo *EdgeOne) Init(dnsConf *config.DnsConfig, ipv4cache *util.IpC... method AddUpdateDomainRecords (line 99) | func (eo *EdgeOne) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 105) | func (eo *EdgeOne) addUpdateDomainRecords(recordType string) { method create (line 155) | func (eo *EdgeOne) create(domain *config.Domain, recordType string, ip... method modify (line 192) | func (eo *EdgeOne) modify(record EdgeOneRecord, domain *config.Domain,... method getZone (line 238) | func (eo *EdgeOne) getZone(domain string) (result EdgeOneZoneResponse,... method getRecordList (line 254) | func (eo *EdgeOne) getRecordList(domain *config.Domain, recordType str... method getLocation (line 278) | func (eo *EdgeOne) getLocation(domain *config.Domain) string { method request (line 286) | func (eo *EdgeOne) request(action string, data interface{}, result int... type EdgeOneRecord (line 27) | type EdgeOneRecord struct type EdgeOneRecordResponse (line 39) | type EdgeOneRecordResponse struct type EdgeOneZoneResponse (line 47) | type EdgeOneZoneResponse struct type Filter (line 58) | type Filter struct type EdgeOneDescribeDns (line 63) | type EdgeOneDescribeDns struct type EdgeOneStatus (line 69) | type EdgeOneStatus struct FILE: dns/eranet.go type Eranet (line 22) | type Eranet struct method Init (line 52) | func (eranet *Eranet) Init(dnsConf *config.DnsConfig, ipv4cache *util.... method AddUpdateDomainRecords (line 67) | func (eranet *Eranet) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 73) | func (eranet *Eranet) addUpdateDomainRecords(recordType string) { method create (line 109) | func (eranet *Eranet) create(domain *config.Domain, recordType string,... method modify (line 137) | func (eranet *Eranet) modify(record EranetRecord, domain *config.Domai... method getRecordList (line 172) | func (eranet *Eranet) getRecordList(domain *config.Domain, typ string)... method queryParams (line 183) | func (eranet *Eranet) queryParams(param map[string]any) string { method sign (line 197) | func (t *Eranet) sign(params map[string]string, method string) (string... method request (line 248) | func (t *Eranet) request(apiPath string, params map[string]string, met... type EranetRecord (line 29) | type EranetRecord struct type EranetRecordListResp (line 40) | type EranetRecordListResp struct type EranetBaseResult (line 45) | type EranetBaseResult struct FILE: dns/gcore.go constant gcoreAPIEndpoint (line 15) | gcoreAPIEndpoint = "https://api.gcore.com/dns/v2" type Gcore (line 18) | type Gcore struct method Init (line 75) | func (gc *Gcore) Init(dnsConf *config.DnsConfig, ipv4cache *util.IpCac... method AddUpdateDomainRecords (line 95) | func (gc *Gcore) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 101) | func (gc *Gcore) addUpdateDomainRecords(recordType string) { method getZoneByDomain (line 142) | func (gc *Gcore) getZoneByDomain(domain *config.Domain) (*GcoreZone, e... method getRRSet (line 166) | func (gc *Gcore) getRRSet(zoneName, recordName, recordType string) (*G... method createRecord (line 198) | func (gc *Gcore) createRecord(zoneName string, domain *config.Domain, ... method updateRecord (line 235) | func (gc *Gcore) updateRecord(zoneName string, domain *config.Domain, ... method request (line 280) | func (gc *Gcore) request(method string, url string, data interface{}, ... type GcoreZoneResponse (line 26) | type GcoreZoneResponse struct type GcoreZone (line 32) | type GcoreZone struct type GcoreRRSetListResponse (line 38) | type GcoreRRSetListResponse struct type GcoreRRSet (line 44) | type GcoreRRSet struct type GcoreResourceRecord (line 53) | type GcoreResourceRecord struct type GcoreInputRRSet (line 61) | type GcoreInputRRSet struct type GcoreInputResourceRecord (line 68) | type GcoreInputResourceRecord struct FILE: dns/godaddy.go type godaddyRecord (line 14) | type godaddyRecord struct type godaddyRecords (line 21) | type godaddyRecords type GoDaddyDNS (line 23) | type GoDaddyDNS struct method Init (line 33) | func (g *GoDaddyDNS) Init(dnsConf *config.DnsConfig, ipv4cache *util.I... method updateDomainRecord (line 53) | func (g *GoDaddyDNS) updateDomainRecord(recordType string, ipAddr stri... method AddUpdateDomainRecords (line 88) | func (g *GoDaddyDNS) AddUpdateDomainRecords() config.Domains { method sendReq (line 98) | func (g *GoDaddyDNS) sendReq(method string, rType string, domain *conf... FILE: dns/huawei.go constant huaweicloudEndpoint (line 16) | huaweicloudEndpoint string = "https://dns.myhuaweicloud.com" type Huaweicloud (line 21) | type Huaweicloud struct method Init (line 55) | func (hw *Huaweicloud) Init(dnsConf *config.DnsConfig, ipv4cache *util... method AddUpdateDomainRecords (line 75) | func (hw *Huaweicloud) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 81) | func (hw *Huaweicloud) addUpdateDomainRecords(recordType string) { method create (line 168) | func (hw *Huaweicloud) create(domain *config.Domain, recordType string... method modify (line 221) | func (hw *Huaweicloud) modify(record HuaweicloudRecordsets, domain *co... method getZones (line 260) | func (hw *Huaweicloud) getZones(domain *config.Domain) (result Huaweic... method request (line 272) | func (hw *Huaweicloud) request(method string, urlString string, data i... type HuaweicloudZonesResp (line 29) | type HuaweicloudZonesResp struct type HuaweicloudRecordsResp (line 38) | type HuaweicloudRecordsResp struct type HuaweicloudRecordsets (line 43) | type HuaweicloudRecordsets struct FILE: dns/index.go type DNS (line 11) | type DNS interface function RunTimer (line 40) | func RunTimer(delay time.Duration) { function RunOnce (line 48) | func RunOnce() { FILE: dns/name_com.go constant listRecords (line 17) | listRecords = "https://api.name.com/core/v1/domains/%s/records" constant createRecord (line 18) | createRecord = "https://api.name.com/core/v1/domains/%s/records" constant updateRecord (line 19) | updateRecord = "https://api.name.com/core/v1/domains/%s/records/%d" type NameCom (line 22) | type NameCom struct method Init (line 56) | func (n *NameCom) Init(dnsConf *config.DnsConfig, ipv4cache *util.IpCa... method AddUpdateDomainRecords (line 69) | func (n *NameCom) AddUpdateDomainRecords() (domains config.Domains) { method addUpdateDomainRecords (line 76) | func (n *NameCom) addUpdateDomainRecords(recordType string) { method getRecordList (line 115) | func (n *NameCom) getRecordList(domain *config.Domain) (resp *NameComR... method create (line 121) | func (n *NameCom) create(domain *config.Domain, recordType string, ipA... method update (line 143) | func (n *NameCom) update(record NameComRecordResp, domain *config.Doma... method request (line 160) | func (n *NameCom) request(action string, url string, data any, result ... type NameComRecord (line 29) | type NameComRecord struct type NameComRecordResp (line 36) | type NameComRecordResp struct type NameComRecordListResp (line 47) | type NameComRecordListResp struct FILE: dns/namecheap.go constant nameCheapEndpoint (line 13) | nameCheapEndpoint string = "https://dynamicdns.park-your-domain.com/upda... type NameCheap (line 17) | type NameCheap struct method Init (line 32) | func (nc *NameCheap) Init(dnsConf *config.DnsConfig, ipv4cache *util.I... method AddUpdateDomainRecords (line 44) | func (nc *NameCheap) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 50) | func (nc *NameCheap) addUpdateDomainRecords(recordType string) { method modify (line 75) | func (nc *NameCheap) modify(domain *config.Domain, ipAddr string) { method request (line 96) | func (nc *NameCheap) request(result *NameCheapResp, ipAddr string, dom... type NameCheapResp (line 26) | type NameCheapResp struct FILE: dns/namesilo.go constant nameSiloListRecordEndpoint (line 14) | nameSiloListRecordEndpoint = "https://www.namesilo.com/api/dnsListReco... constant nameSiloAddRecordEndpoint (line 15) | nameSiloAddRecordEndpoint = "https://www.namesilo.com/api/dnsAddRecor... constant nameSiloUpdateRecordEndpoint (line 16) | nameSiloUpdateRecordEndpoint = "https://www.namesilo.com/api/dnsUpdateRe... type NameSilo (line 20) | type NameSilo struct method Init (line 68) | func (ns *NameSilo) Init(dnsConf *config.DnsConfig, ipv4cache *util.Ip... method AddUpdateDomainRecords (line 80) | func (ns *NameSilo) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 86) | func (ns *NameSilo) addUpdateDomainRecords(recordType string) { method modify (line 124) | func (ns *NameSilo) modify(domain *config.Domain, recordID, recordType... method listRecords (line 151) | func (ns *NameSilo) listRecords(domain *config.Domain) (*NameSiloDNSLi... method request (line 166) | func (ns *NameSilo) request(ipAddr string, domain *config.Domain, reco... type NameSiloResp (line 29) | type NameSiloResp struct type ReplyResponse (line 35) | type ReplyResponse struct type NameSiloDNSListRecordResp (line 41) | type NameSiloDNSListRecordResp struct type Request (line 47) | type Request struct type Reply (line 52) | type Reply struct type ResourceRecord (line 58) | type ResourceRecord struct function findResourceRecord (line 197) | func findResourceRecord(data []ResourceRecord, recordType, domain string... FILE: dns/nowcn.go type Nowcn (line 22) | type Nowcn struct method Init (line 55) | func (nowcn *Nowcn) Init(dnsConf *config.DnsConfig, ipv4cache *util.Ip... method AddUpdateDomainRecords (line 70) | func (nowcn *Nowcn) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 76) | func (nowcn *Nowcn) addUpdateDomainRecords(recordType string) { method create (line 112) | func (nowcn *Nowcn) create(domain *config.Domain, recordType string, i... method modify (line 140) | func (nowcn *Nowcn) modify(record NowcnRecord, domain *config.Domain, ... method getRecordList (line 175) | func (nowcn *Nowcn) getRecordList(domain *config.Domain, typ string) (... method sign (line 186) | func (t *Nowcn) sign(params map[string]string, method string) (string,... method request (line 237) | func (t *Nowcn) request(apiPath string, params map[string]string, meth... type NowcnRecord (line 30) | type NowcnRecord struct type NowcnRecordListResp (line 42) | type NowcnRecordListResp struct type NowcnBaseResult (line 48) | type NowcnBaseResult struct FILE: dns/nsone.go constant nsoneAPIEndpoint (line 15) | nsoneAPIEndpoint = "https://api.nsone.net/v1/zones" type NSOne (line 17) | type NSOne struct method Init (line 177) | func (nsone *NSOne) Init(dnsConf *config.DnsConfig, ipv4cache *util.Ip... method AddUpdateDomainRecords (line 196) | func (nsone *NSOne) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 202) | func (nsone *NSOne) addUpdateDomainRecords(recordType string) { method getZone (line 238) | func (nsone *NSOne) getZone(domain *config.Domain) (*NSOneZone, error) { method getRecord (line 257) | func (nsone *NSOne) getRecord(domain *config.Domain, recordType string... method createRecord (line 276) | func (nsone *NSOne) createRecord(domain *config.Domain, recordType str... method updateRecord (line 310) | func (nsone *NSOne) updateRecord(domain *config.Domain, recordType str... method request (line 351) | func (nsone *NSOne) request(method string, url string, data interface{... type NSOneZone (line 24) | type NSOneZone struct type NSOneRecordAnswer (line 114) | type NSOneRecordAnswer struct type NSOneRecordResponse (line 127) | type NSOneRecordResponse struct type NSOneRecordRequest (line 169) | type NSOneRecordRequest struct FILE: dns/porkbun.go constant porkbunEndpoint (line 14) | porkbunEndpoint string = "https://api.porkbun.com/api/json/v3/dns" type Porkbun (line 17) | type Porkbun struct method Init (line 50) | func (pb *Porkbun) Init(conf *config.DnsConfig, ipv4cache *util.IpCach... method AddUpdateDomainRecords (line 65) | func (pb *Porkbun) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 71) | func (pb *Porkbun) addUpdateDomainRecords(recordType string) { method create (line 111) | func (pb *Porkbun) create(domain *config.Domain, recordType string, ip... method modify (line 147) | func (pb *Porkbun) modify(record *PorkbunDomainQueryResponse, domain *... method request (line 188) | func (pb *Porkbun) request(url string, data interface{}, result interf... type PorkbunDomainRecord (line 23) | type PorkbunDomainRecord struct type PorkbunResponse (line 30) | type PorkbunResponse struct type PorkbunDomainQueryResponse (line 34) | type PorkbunDomainQueryResponse struct type PorkbunApiKey (line 39) | type PorkbunApiKey struct type PorkbunDomainCreateOrUpdateVO (line 44) | type PorkbunDomainCreateOrUpdateVO struct FILE: dns/rainyun.go constant rainyunEndpoint (line 17) | rainyunEndpoint = "https://api.v2.rainyun.com" type Rainyun (line 22) | type Rainyun struct method Init (line 48) | func (rainyun *Rainyun) Init(dnsConf *config.DnsConfig, ipv4cache *uti... method AddUpdateDomainRecords (line 64) | func (rainyun *Rainyun) AddUpdateDomainRecords() (domains config.Domai... method addUpdateDomainRecords (line 70) | func (rainyun *Rainyun) addUpdateDomainRecords(recordType string) { method getRecordList (line 109) | func (rainyun *Rainyun) getRecordList(domainID string) ([]RainyunRecor... method create (line 132) | func (rainyun *Rainyun) create(domainID string, domain *config.Domain,... method createRecord (line 154) | func (rainyun *Rainyun) createRecord(domainID string, record *RainyunR... method modify (line 176) | func (rainyun *Rainyun) modify(domainID string, record *RainyunRecord,... method patchRecord (line 197) | func (rainyun *Rainyun) patchRecord(domainID string, record *RainyunRe... method request (line 219) | func (rainyun *Rainyun) request(method string, path string, query url.... type RainyunRecord (line 30) | type RainyunRecord struct type RainyunResp (line 41) | type RainyunResp struct FILE: dns/spaceship.go constant spaceshipAPI (line 16) | spaceshipAPI = "https://spaceship.dev/api/v1/dns/records" constant maxRecords (line 17) | maxRecords = 500 type Spaceship (line 19) | type Spaceship struct method Init (line 26) | func (s *Spaceship) Init(dnsConf *config.DnsConfig, ipv4cache *util.Ip... method AddUpdateDomainRecords (line 43) | func (s *Spaceship) AddUpdateDomainRecords() (domains config.Domains) { method request (line 67) | func (s *Spaceship) request(domain *config.Domain, method string, quer... method createRecord (line 111) | func (s *Spaceship) createRecord(recordType string, ip string, domain ... method getRecords (line 143) | func (s *Spaceship) getRecords(recordType string, domain *config.Domai... method deleteRecords (line 185) | func (s *Spaceship) deleteRecords(recordType string, domain *config.Do... method updateRecord (line 216) | func (s *Spaceship) updateRecord(recordType string, ip string, domain ... FILE: dns/tencent_cloud.go constant tencentCloudEndPoint (line 14) | tencentCloudEndPoint = "https://dnspod.tencentcloudapi.com" constant tencentCloudVersion (line 15) | tencentCloudVersion = "2021-03-23" type TencentCloud (line 20) | type TencentCloud struct method Init (line 67) | func (tc *TencentCloud) Init(dnsConf *config.DnsConfig, ipv4cache *uti... method AddUpdateDomainRecords (line 87) | func (tc *TencentCloud) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 93) | func (tc *TencentCloud) addUpdateDomainRecords(recordType string) { method create (line 131) | func (tc *TencentCloud) create(domain *config.Domain, recordType strin... method modify (line 165) | func (tc *TencentCloud) modify(record TencentCloudRecord, domain *conf... method getRecordList (line 201) | func (tc *TencentCloud) getRecordList(domain *config.Domain, recordTyp... method getRecordLine (line 218) | func (tc *TencentCloud) getRecordLine(domain *config.Domain) string { method request (line 226) | func (tc *TencentCloud) request(action string, data interface{}, resul... type TencentCloudRecord (line 28) | type TencentCloudRecord struct type TencentCloudRecordListsResp (line 45) | type TencentCloudRecordListsResp struct type TencentCloudStatus (line 58) | type TencentCloudStatus struct FILE: dns/traffic_route.go type TrafficRoute (line 13) | type TrafficRoute struct method Init (line 73) | func (tr *TrafficRoute) Init(dnsConf *config.DnsConfig, ipv4cache *uti... method AddUpdateDomainRecords (line 92) | func (tr *TrafficRoute) AddUpdateDomainRecords() config.Domains { method addUpdateDomainRecords (line 98) | func (tr *TrafficRoute) addUpdateDomainRecords(recordType string) { method getZID (line 140) | func (tr *TrafficRoute) getZID(domain *config.Domain, resp *TrafficRou... method create (line 170) | func (tr *TrafficRoute) create(zoneID int, domain *config.Domain, reco... method modify (line 204) | func (tr *TrafficRoute) modify(record TrafficRouteMeta, domain *config... method parseRequestParams (line 238) | func (tr *TrafficRoute) parseRequestParams(action string, data interfa... method request (line 277) | func (tr *TrafficRoute) request(method string, action string, data int... type TrafficRouteMeta (line 21) | type TrafficRouteMeta struct type TrafficRouteResp (line 32) | type TrafficRouteResp struct type TrafficRouteListZonesParams (line 64) | type TrafficRouteListZonesParams struct type TrafficRouteListZonesResp (line 69) | type TrafficRouteListZonesResp struct FILE: dns/vercel.go type Vercel (line 15) | type Vercel struct method Init (line 41) | func (v *Vercel) Init(dnsConf *config.DnsConfig, ipv4cache *util.IpCac... method AddUpdateDomainRecords (line 59) | func (v *Vercel) AddUpdateDomainRecords() (domains config.Domains) { method addUpdateDomainRecords (line 65) | func (v *Vercel) addUpdateDomainRecords(recordType string) { method listExistingRecords (line 119) | func (v *Vercel) listExistingRecords(domain *config.Domain) (records [... method createRecord (line 129) | func (v *Vercel) createRecord(domain *config.Domain, recordType string... method updateRecord (line 140) | func (v *Vercel) updateRecord(record *Record, recordType string, recor... method request (line 149) | func (v *Vercel) request(method, api string, data, result interface{})... type ListExistingRecordsResponse (line 22) | type ListExistingRecordsResponse struct type Record (line 26) | type Record struct FILE: main.go function main (line 73) | func main() { function run (line 155) | func run() { function staticFsFunc (line 184) | func staticFsFunc(writer http.ResponseWriter, request *http.Request) { function faviconFsFunc (line 188) | func faviconFsFunc(writer http.ResponseWriter, request *http.Request) { function runWebServer (line 192) | func runWebServer() error { function runAsDaemon (line 217) | func runAsDaemon() error { type program (line 248) | type program struct method Start (line 250) | func (p *program) Start(s service.Service) error { method run (line 255) | func (p *program) run() { method Stop (line 258) | func (p *program) Stop(s service.Service) error { function getService (line 263) | func getService() service.Service { function uninstallService (line 310) | func uninstallService() { function installService (line 326) | func installService() { function restartService (line 354) | func restartService() { constant sysvScript (line 372) | sysvScript = `#!/bin/sh /etc/rc.common FILE: static/constant.js constant DNS_PROVIDERS (line 1) | const DNS_PROVIDERS = { constant SVG_CODE (line 299) | const SVG_CODE = { FILE: static/i18n.js constant I18N_MAP (line 1) | const I18N_MAP = { constant LANG (line 255) | const LANG = localStorage.getItem('lang') || (navigator.language || navi... FILE: static/theme.js function updateColorSchemeMeta (line 1) | function updateColorSchemeMeta(isDark) { function toggleTheme (line 8) | function toggleTheme(write = false) { function startPress (line 36) | function startPress() { function endPress (line 64) | function endPress() { function cancelPress (line 72) | function cancelPress() { FILE: static/tooltips.js class Tooltip (line 1) | class Tooltip { method constructor (line 2) | constructor(element, triggers) { method _createTooltipElement (line 9) | _createTooltipElement(options) { method _updatePosition (line 45) | _updatePosition() { method show (line 80) | async show(options = {}) { method hide (line 101) | async hide() { method _bindEvents (line 117) | _bindEvents(triggers) { FILE: util/aliyun_signer.go function HmacSign (line 25) | func HmacSign(signMethod string, httpMethod string, appKeySecret string,... function HmacSignToB64 (line 38) | func HmacSignToB64(signMethod string, httpMethod string, appKeySecret st... type strToEnc (line 42) | type strToEnc struct function makeDataToSign (line 47) | func makeDataToSign(w io.Writer, httpMethod string, vals url.Values) { function specialUrlEncode (line 67) | func specialUrlEncode(in <-chan *strToEnc, w io.Writer) { FILE: util/aliyun_signer_util.go function AliyunSigner (line 10) | func AliyunSigner(accessKeyID, accessSecret string, params *url.Values, ... FILE: util/andriod_time.go function FixTimezone (line 9) | func FixTimezone() { FILE: util/baidu_signer.go constant BaiduDateFormat (line 16) | BaiduDateFormat = "2006-01-02T15:04:05Z" constant expirationPeriod (line 17) | expirationPeriod = "1800" function HmacSha256Hex (line 20) | func HmacSha256Hex(secret, message string) string { function BaiduCanonicalURI (line 29) | func BaiduCanonicalURI(r *http.Request) string { function BaiduSigner (line 43) | func BaiduSigner(accessKeyID, accessSecret string, r *http.Request) { FILE: util/bcrypt.go function HashPassword (line 8) | func HashPassword(password string) (string, error) { function PasswordOK (line 17) | func PasswordOK(hashedPassword, password string) bool { function IsHashedPassword (line 23) | func IsHashedPassword(password string) bool { FILE: util/copy_url_params.go function CopyUrlParams (line 5) | func CopyUrlParams(src url.Values, dest url.Values, keys []string) { FILE: util/docker_util.go constant DockerEnvFile (line 6) | DockerEnvFile string = "/.dockerenv" function IsRunInDocker (line 9) | func IsRunInDocker() bool { FILE: util/escape.go function shouldEscape (line 8) | func shouldEscape(c byte) bool { function escape (line 14) | func escape(s string) string { FILE: util/http_client_util.go function CreateHTTPClient (line 34) | func CreateHTTPClient() *http.Client { function GetLocalAddrFromInterface (line 42) | func GetLocalAddrFromInterface(ifaceName string) (string, error) { function CreateHTTPClientWithInterface (line 60) | func CreateHTTPClientWithInterface(ifaceName string) *http.Client { function CreateNoProxyHTTPClient (line 128) | func CreateNoProxyHTTPClient(network string) *http.Client { function SetInsecureSkipVerify (line 143) | func SetInsecureSkipVerify() { FILE: util/http_util.go function GetHTTPResponse (line 11) | func GetHTTPResponse(resp *http.Response, err error, result interface{})... function GetHTTPResponseOrg (line 26) | func GetHTTPResponseOrg(resp *http.Response, err error) ([]byte, error) { FILE: util/huawei_signer.go constant BasicDateFormat (line 20) | BasicDateFormat = "20060102T150405Z" constant Algorithm (line 21) | Algorithm = "SDK-HMAC-SHA256" constant HeaderXDate (line 22) | HeaderXDate = "X-Sdk-Date" constant HeaderHost (line 23) | HeaderHost = "host" constant HeaderAuthorization (line 24) | HeaderAuthorization = "Authorization" constant HeaderContentSha256 (line 25) | HeaderContentSha256 = "X-Sdk-Content-Sha256" function hmacsha256 (line 28) | func hmacsha256(key []byte, data string) ([]byte, error) { function CanonicalRequest (line 46) | func CanonicalRequest(r *http.Request, signedHeaders []string) (string, ... function CanonicalURI (line 65) | func CanonicalURI(r *http.Request) string { function CanonicalQueryString (line 79) | func CanonicalQueryString(r *http.Request) string { function CanonicalHeaders (line 101) | func CanonicalHeaders(r *http.Request, signerHeaders []string) string { function SignedHeaders (line 121) | func SignedHeaders(r *http.Request) []string { function RequestPayload (line 131) | func RequestPayload(r *http.Request) ([]byte, error) { function StringToSign (line 144) | func StringToSign(canonicalRequest string, t time.Time) (string, error) { function SignStringToSign (line 155) | func SignStringToSign(stringToSign string, signingKey []byte) (string, e... function HexEncodeSHA256Hash (line 161) | func HexEncodeSHA256Hash(body []byte) (string, error) { function AuthHeaderValue (line 171) | func AuthHeaderValue(signature, accessKey string, signedHeaders []string... type Signer (line 176) | type Signer struct method Sign (line 182) | func (s *Signer) Sign(r *http.Request) error { FILE: util/ip_cache.go constant IPCacheTimesENV (line 8) | IPCacheTimesENV = "DDNS_IP_CACHE_TIMES" type IpCache (line 11) | type IpCache struct method Check (line 19) | func (d *IpCache) Check(newAddr string) bool { FILE: util/messages.go function init (line 14) | func init() { function Log (line 120) | func Log(key string, args ...interface{}) { function LogStr (line 124) | func LogStr(key string, args ...interface{}) string { function InitLogLang (line 128) | func InitLogLang(lang string) string { FILE: util/net.go function IsPrivateNetwork (line 11) | func IsPrivateNetwork(remoteAddr string) bool { function GetRequestIPStr (line 35) | func GetRequestIPStr(r *http.Request) (addr string) { FILE: util/net_resolver.go function InitBackupDNS (line 15) | func InitBackupDNS(customDNS, lang string) { function SetDNS (line 28) | func SetDNS(dns string) { function LookupHost (line 59) | func LookupHost(url string) error { FILE: util/net_resolver_test.go constant testDNS (line 6) | testDNS = "1.1.1.1" constant testURL (line 7) | testURL = "https://cloudflare.com" function TestSetDNS (line 10) | func TestSetDNS(t *testing.T) { function TestLookupHost (line 18) | func TestLookupHost(t *testing.T) { FILE: util/net_test.go function TestIsPrivateNetwork (line 9) | func TestIsPrivateNetwork(t *testing.T) { function TestGetRequestIPStr (line 37) | func TestGetRequestIPStr(t *testing.T) { FILE: util/ordinal.go function Ordinal (line 12) | func Ordinal(x int, lang string) string { FILE: util/ordinal_test.go function TestOrdinal (line 5) | func TestOrdinal(t *testing.T) { FILE: util/osutil/daemon_unix.go function StartDetachedProcess (line 11) | func StartDetachedProcess(exe string, args []string, nullFile *os.File) ... FILE: util/osutil/daemon_win32.go function StartDetachedProcess (line 11) | func StartDetachedProcess(exe string, args []string, nullFile *os.File) ... FILE: util/semver/version.go constant semVerRegex (line 18) | semVerRegex string = `v?([0-9]+)(\.[0-9]+)?(\.[0-9]+)?` + type Version (line 23) | type Version struct method String (line 72) | func (v Version) String() string { method GreaterThan (line 81) | func (v *Version) GreaterThan(o *Version) bool { method GreaterThanOrEqual (line 86) | func (v *Version) GreaterThanOrEqual(o *Version) bool { method compare (line 93) | func (v *Version) compare(o *Version) int { function init (line 27) | func init() { function NewVersion (line 34) | func NewVersion(v string) (*Version, error) { function compareSegment (line 109) | func compareSegment(v, o uint64) int { FILE: util/semver/version_test.go function TestNewVersion (line 7) | func TestNewVersion(t *testing.T) { function TestParts (line 62) | func TestParts(t *testing.T) { function TestCoerceString (line 79) | func TestCoerceString(t *testing.T) { function TestCompare (line 105) | func TestCompare(t *testing.T) { function TestGreaterThan (line 138) | func TestGreaterThan(t *testing.T) { function TestGreaterThanOrEqual (line 174) | func TestGreaterThanOrEqual(t *testing.T) { FILE: util/string.go function WriteString (line 9) | func WriteString(strs ...string) string { function toHostname (line 23) | func toHostname(url string) string { function SplitLines (line 31) | func SplitLines(s string) []string { function PercentEncode (line 39) | func PercentEncode(value string) string { FILE: util/string_test.go function TestWriteString (line 5) | func TestWriteString(t *testing.T) { function TestToHostname (line 24) | func TestToHostname(t *testing.T) { FILE: util/tencent_cloud_signer.go function sha256hex (line 13) | func sha256hex(s string) string { function tencentCloudHmacsha256 (line 18) | func tencentCloudHmacsha256(s, key string) string { constant DnsPod (line 25) | DnsPod = "dnspod" constant EdgeOne (line 26) | EdgeOne = "teo" function TencentCloudSigner (line 30) | func TencentCloudSigner(secretId string, secretKey string, r *http.Reque... FILE: util/termux.go function isTermux (line 8) | func isTermux() bool { FILE: util/termux_test.go function TestIsTermux (line 9) | func TestIsTermux(t *testing.T) { FILE: util/token.go function GenerateToken (line 13) | func GenerateToken(username string) string { function generateRandomKey (line 22) | func generateRandomKey() string { FILE: util/traffic_route_signer.go constant Version (line 15) | Version = "2018-08-01" constant Service (line 16) | Service = "DNS" constant Region (line 17) | Region = "cn-north-1" constant Host (line 18) | Host = "open.volcengineapi.com" function hmacSHA256 (line 22) | func hmacSHA256(key []byte, content string) []byte { function hashSHA256 (line 29) | func hashSHA256(content []byte) string { type RequestParam (line 37) | type RequestParam struct type Credentials (line 47) | type Credentials struct type SignRequest (line 55) | type SignRequest struct function TrafficRouteSigner (line 64) | func TrafficRouteSigner(method string, query map[string][]string, header... FILE: util/update/apply.go function apply (line 33) | func apply(update io.Reader, targetPath string) error { FILE: util/update/apply_test.go function cleanup (line 17) | func cleanup(path string) { function writeOldFile (line 23) | func writeOldFile(path string, t *testing.T) { function validateUpdate (line 32) | func validateUpdate(path string, err error, t *testing.T) { function TestApply (line 47) | func TestApply(t *testing.T) { FILE: util/update/arch.go constant minARM (line 11) | minARM = 5 constant maxARM (line 12) | maxARM = 7 function generateAdditionalArch (line 16) | func generateAdditionalArch() []string { FILE: util/update/decompress.go function decompressCommand (line 30) | func decompressCommand(src io.Reader, url, cmd string) (io.Reader, error) { function unzip (line 40) | func unzip(src io.Reader, cmd string) (io.Reader, error) { function untar (line 64) | func untar(src io.Reader, cmd string) (io.Reader, error) { function matchExecutableName (line 87) | func matchExecutableName(cmd, target string) bool { FILE: util/update/decompress_test.go function TestCompressionNotRequired (line 14) | func TestCompressionNotRequired(t *testing.T) { function TestMatchExecutableName (line 31) | func TestMatchExecutableName(t *testing.T) { function TestErrorFromReader (line 53) | func TestErrorFromReader(t *testing.T) { FILE: util/update/detect.go function detectLatest (line 15) | func detectLatest(repo string) (latest *Latest, found bool, err error) { function findAsset (line 30) | func findAsset(rel *Release) (*Asset, *semver.Version, bool) { function findAssetForArch (line 43) | func findAssetForArch(arch string, rel *Release, function findAssetFromRelease (line 63) | func findAssetFromRelease(rel *Release, suffixes []string) (*Asset, *sem... function assetMatchSuffixes (line 86) | func assetMatchSuffixes(name string, suffixes []string) bool { function getSuffixes (line 99) | func getSuffixes(arch string) []string { FILE: util/update/latest.go type Latest (line 8) | type Latest struct function newLatest (line 17) | func newLatest(asset *Asset, ver *semver.Version) *Latest { FILE: util/update/package.go function Self (line 15) | func Self(version string) { function to (line 55) | func to(assetURL, assetFileName, cmdPath string) error { function downloadAssetFromURL (line 64) | func downloadAssetFromURL(url string) (rc io.ReadCloser, err error) { FILE: util/update/release.go type Release (line 12) | type Release struct type Asset (line 17) | type Asset struct type ReleaseResp (line 23) | type ReleaseResp struct function getLatest (line 34) | func getLatest(repo string) (*Release, error) { function newRelease (line 53) | func newRelease(from *ReleaseResp) *Release { FILE: util/update/update.go function decompressAndUpdate (line 10) | func decompressAndUpdate(src io.Reader, assetName, cmdPath string) error { FILE: util/user.go constant ConfigFilePathENV (line 7) | ConfigFilePathENV = "DDNS_CONFIG_FILE_PATH" function GetConfigFilePath (line 10) | func GetConfigFilePath() string { function GetConfigFilePathDefault (line 19) | func GetConfigFilePathDefault() string { FILE: util/wait_internet.go function WaitInternet (line 14) | func WaitInternet(addresses []string) { function isDNSErr (line 48) | func isDNSErr(e error) bool { FILE: web/auth.go type ViewFunc (line 12) | type ViewFunc function Auth (line 15) | func Auth(f ViewFunc) ViewFunc { function AuthAssert (line 47) | func AuthAssert(f ViewFunc) ViewFunc { FILE: web/login.go constant cookieName (line 20) | cookieName = "token" constant saveLimit (line 29) | saveLimit = time.Duration(30) * time.Minute constant loginFailLockDuration (line 32) | loginFailLockDuration = time.Duration(30) * time.Minute type loginDetect (line 35) | type loginDetect struct function Login (line 43) | func Login(writer http.ResponseWriter, request *http.Request) { function LoginFunc (line 65) | func LoginFunc(w http.ResponseWriter, r *http.Request) { function loginUnlock (line 154) | func loginUnlock() { FILE: web/logout.go function Logout (line 8) | func Logout(w http.ResponseWriter, r *http.Request) { FILE: web/logs.go type MemoryLogs (line 12) | type MemoryLogs struct method Write (line 17) | func (mlogs *MemoryLogs) Write(p []byte) (n int, err error) { function init (line 29) | func init() { function Logs (line 35) | func Logs(writer http.ResponseWriter, request *http.Request) { function ClearLog (line 42) | func ClearLog(writer http.ResponseWriter, request *http.Request) { FILE: web/return_json.go type Result (line 9) | type Result struct function returnError (line 16) | func returnError(w http.ResponseWriter, msg string) { function returnOK (line 26) | func returnOK(w http.ResponseWriter, msg string, data interface{}) { FILE: web/save.go function Save (line 14) | func Save(writer http.ResponseWriter, request *http.Request) { function checkAndSave (line 26) | func checkAndSave(request *http.Request) string { FILE: web/webhookTest.go function WebhookTest (line 11) | func WebhookTest(writer http.ResponseWriter, request *http.Request) { FILE: web/writing.go constant VersionEnv (line 18) | VersionEnv = "DDNS_GO_VERSION" type dnsConf4JS (line 21) | type dnsConf4JS struct function Writing (line 45) | func Writing(writer http.ResponseWriter, request *http.Request) { function getDnsConfStr (line 99) | func getDnsConfStr(dnsConf []config.DnsConfig) string { constant displayCount (line 132) | displayCount int = 3 function getHideIDSecret (line 135) | func getHideIDSecret(conf *config.DnsConfig) (idHide string, secretHide ...