added wildcard option
This commit is contained in:
@@ -79,7 +79,7 @@ func (h *Handler) CreateCName(c echo.Context) (err error) {
|
||||
return c.JSON(http.StatusBadRequest, &Error{err.Error()})
|
||||
}
|
||||
|
||||
if err = nswrapper.UpdateRecord(cname.Hostname, fmt.Sprintf("%s.%s", cname.Target.Hostname, cname.Target.Domain), "CNAME", cname.Target.Domain, cname.Ttl); err != nil {
|
||||
if err = nswrapper.UpdateRecord(cname.Hostname, fmt.Sprintf("%s.%s", cname.Target.Hostname, cname.Target.Domain), "CNAME", cname.Target.Domain, cname.Ttl, h.AllowWildcard); err != nil {
|
||||
return c.JSON(http.StatusBadRequest, &Error{err.Error()})
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ func (h *Handler) DeleteCName(c echo.Context) (err error) {
|
||||
return c.JSON(http.StatusBadRequest, &Error{err.Error()})
|
||||
}
|
||||
|
||||
if err = nswrapper.DeleteRecord(cname.Hostname, cname.Target.Domain); err != nil {
|
||||
if err = nswrapper.DeleteRecord(cname.Hostname, cname.Target.Domain, h.AllowWildcard); err != nil {
|
||||
return c.JSON(http.StatusBadRequest, &Error{err.Error()})
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ type Handler struct {
|
||||
DisableAdminAuth bool
|
||||
LastClearedLogs time.Time
|
||||
ClearInterval uint64
|
||||
AllowWildcard bool
|
||||
}
|
||||
|
||||
type Envs struct {
|
||||
@@ -112,17 +113,24 @@ func (h *Handler) ParseEnvs() (adminAuth bool, err error) {
|
||||
h.AuthAdmin = true
|
||||
h.DisableAdminAuth = true
|
||||
}
|
||||
h.Title = os.Getenv("DDNS_TITLE")
|
||||
if h.Title == "" {
|
||||
var ok bool
|
||||
h.Title, ok = os.LookupEnv("DDNS_TITLE")
|
||||
if !ok {
|
||||
h.Title = "TheBBCloud DynDNS"
|
||||
}
|
||||
|
||||
allowWildcard, ok := os.LookupEnv("DDNS_ALLOW_WILDCARD")
|
||||
if ok {
|
||||
h.AllowWildcard, err = strconv.ParseBool(allowWildcard)
|
||||
if err == nil {
|
||||
log.Info("Wildcard allowed")
|
||||
}
|
||||
}
|
||||
clearEnv := os.Getenv("DDNS_CLEAR_LOG_INTERVAL")
|
||||
clearInterval, err := strconv.ParseUint(clearEnv, 10, 32)
|
||||
if err != nil {
|
||||
log.Info("No log clear interval found")
|
||||
} else {
|
||||
log.Info("log clear interval found:", clearInterval, "days")
|
||||
log.Info("log clear interval found: ", clearInterval, "days")
|
||||
h.ClearInterval = clearInterval
|
||||
if clearInterval > 0 {
|
||||
h.LastClearedLogs = time.Now()
|
||||
|
||||
@@ -125,7 +125,7 @@ func (h *Handler) CreateHost(c echo.Context) (err error) {
|
||||
return c.JSON(http.StatusBadRequest, &Error{fmt.Sprintf("ip %s is not a valid ip", host.Ip)})
|
||||
}
|
||||
|
||||
if err = nswrapper.UpdateRecord(host.Hostname, host.Ip, ipType, host.Domain, host.Ttl); err != nil {
|
||||
if err = nswrapper.UpdateRecord(host.Hostname, host.Ip, ipType, host.Domain, host.Ttl, h.AllowWildcard); err != nil {
|
||||
return c.JSON(http.StatusBadRequest, &Error{err.Error()})
|
||||
}
|
||||
}
|
||||
@@ -172,7 +172,7 @@ func (h *Handler) UpdateHost(c echo.Context) (err error) {
|
||||
return c.JSON(http.StatusBadRequest, &Error{fmt.Sprintf("ip %s is not a valid ip", host.Ip)})
|
||||
}
|
||||
|
||||
if err = nswrapper.UpdateRecord(host.Hostname, host.Ip, ipType, host.Domain, host.Ttl); err != nil {
|
||||
if err = nswrapper.UpdateRecord(host.Hostname, host.Ip, ipType, host.Domain, host.Ttl, h.AllowWildcard); err != nil {
|
||||
return c.JSON(http.StatusBadRequest, &Error{err.Error()})
|
||||
}
|
||||
}
|
||||
@@ -216,7 +216,7 @@ func (h *Handler) DeleteHost(c echo.Context) (err error) {
|
||||
return c.JSON(http.StatusBadRequest, &Error{err.Error()})
|
||||
}
|
||||
|
||||
if err = nswrapper.DeleteRecord(host.Hostname, host.Domain); err != nil {
|
||||
if err = nswrapper.DeleteRecord(host.Hostname, host.Domain, h.AllowWildcard); err != nil {
|
||||
return c.JSON(http.StatusBadRequest, &Error{err.Error()})
|
||||
}
|
||||
|
||||
@@ -276,7 +276,7 @@ func (h *Handler) UpdateIP(c echo.Context) (err error) {
|
||||
}
|
||||
|
||||
// add/update DNS record
|
||||
if err = nswrapper.UpdateRecord(log.Host.Hostname, log.SentIP, ipType, log.Host.Domain, log.Host.Ttl); err != nil {
|
||||
if err = nswrapper.UpdateRecord(log.Host.Hostname, log.SentIP, ipType, log.Host.Domain, log.Host.Ttl, h.AllowWildcard); err != nil {
|
||||
log.Message = fmt.Sprintf("DNS error: %v", err)
|
||||
l.Error(log.Message)
|
||||
if err = h.CreateLogEntry(log); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user