Update API endpoints and handlers
This commit is contained in:
@@ -6,6 +6,8 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/safing/portbase/api"
|
||||
|
||||
"github.com/safing/portbase/log"
|
||||
"github.com/safing/portbase/modules"
|
||||
"github.com/safing/portmaster/intel"
|
||||
@@ -76,12 +78,22 @@ func start() error {
|
||||
return err
|
||||
}
|
||||
|
||||
// Register api endpoint to clear DNS cache.
|
||||
if err := api.RegisterEndpoint(api.Endpoint{
|
||||
Path: "dns/clear/namecache",
|
||||
Read: api.PermitUser,
|
||||
ActionFn: clearNameCache,
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// DEPRECATED: remove in v0.7
|
||||
// cache clearing
|
||||
err = module.RegisterEventHook(
|
||||
"resolver",
|
||||
ClearNameCacheEvent,
|
||||
ClearNameCacheEvent,
|
||||
clearNameCache,
|
||||
clearNameCacheEventHandler,
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"fmt"
|
||||
"sync"
|
||||
|
||||
"github.com/safing/portbase/api"
|
||||
"github.com/safing/portbase/database"
|
||||
"github.com/safing/portbase/database/query"
|
||||
"github.com/safing/portbase/database/record"
|
||||
@@ -104,7 +105,20 @@ func (rec *NameRecord) Save() error {
|
||||
return recordDatabase.PutNew(rec)
|
||||
}
|
||||
|
||||
func clearNameCache(ctx context.Context, _ interface{}) error {
|
||||
// clearNameCache clears all dns caches from the database.
|
||||
func clearNameCache(ar *api.Request) (msg string, err error) {
|
||||
log.Warning("resolver: user requested dns cache clearing via action")
|
||||
|
||||
n, err := recordDatabase.Purge(ar.Ctx(), query.New(nameRecordsKeyPrefix))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return fmt.Sprintf("cleared %d dns cache entries", n), nil
|
||||
}
|
||||
|
||||
// DEPRECATED: remove in v0.7
|
||||
func clearNameCacheEventHandler(ctx context.Context, _ interface{}) error {
|
||||
log.Debugf("resolver: dns cache clearing started...")
|
||||
n, err := recordDatabase.Purge(ctx, query.New(nameRecordsKeyPrefix))
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user