37 lines
818 B
Go
37 lines
818 B
Go
package cwmp_handler
|
|
|
|
import (
|
|
"log"
|
|
"strconv"
|
|
|
|
"github.com/OktopUSP/oktopus/backend/services/mtp/adapter/internal/db"
|
|
)
|
|
|
|
func (h *Handler) HandleDeviceStatus(device, subject string, data []byte, ack func()) {
|
|
defer ack()
|
|
payload, err := strconv.Atoi(string(data))
|
|
if err != nil {
|
|
log.Printf("Status subject payload message error %q", err)
|
|
}
|
|
|
|
switch payload {
|
|
case OFFLINE:
|
|
h.deviceOffline(device)
|
|
default:
|
|
ignoreMsg(subject, "status", data)
|
|
}
|
|
}
|
|
|
|
func (h *Handler) deviceOffline(device string) {
|
|
log.Printf("Device %s is offline", device)
|
|
|
|
err := h.db.UpdateStatus(device, db.Offline, db.CWMP)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func ignoreMsg(subject, ctx string, data []byte) {
|
|
log.Printf("Unknown message of %s received, subject: %s, payload: %s. Ignored...", ctx, subject, string(data))
|
|
}
|