fix: initialize slices explicitly and improve uniqueness check robustness
- Initialize list slices with make() to avoid nil slices in ListTempEntries and ListPermEntries - Use strings.Contains() for uniqueness constraint checking to handle variations in error messages
This commit is contained in:
7
db.go
7
db.go
@@ -4,6 +4,7 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"net"
|
"net"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
_ "modernc.org/sqlite"
|
_ "modernc.org/sqlite"
|
||||||
@@ -173,7 +174,7 @@ func ListTempEntries(db *sql.DB) ([]map[string]interface{}, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
var list []map[string]interface{}
|
var list []map[string]interface{} = make([]map[string]interface{}, 0)
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var ip, reason string
|
var ip, reason string
|
||||||
var expiresAt time.Time
|
var expiresAt time.Time
|
||||||
@@ -195,7 +196,7 @@ func ListPermEntries(db *sql.DB) ([]map[string]interface{}, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
var list []map[string]interface{}
|
var list []map[string]interface{} = make([]map[string]interface{}, 0)
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var entry string
|
var entry string
|
||||||
if err := rows.Scan(&entry); err != nil {
|
if err := rows.Scan(&entry); err != nil {
|
||||||
@@ -240,5 +241,5 @@ func isUniqueConstraintError(err error) bool {
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return err.Error() == "UNIQUE constraint failed: perm_whitelist.entry"
|
return strings.Contains(err.Error(), "UNIQUE constraint failed")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user