repeater/internal/station/factory.go

24 lines
690 B
Go

package station
import (
"fmt"
"github.com/nemunaire/repeater/internal/station/arp"
"github.com/nemunaire/repeater/internal/station/backend"
"github.com/nemunaire/repeater/internal/station/dhcp"
"github.com/nemunaire/repeater/internal/station/hostapd"
)
// createBackend creates a station backend based on the backend name
func createBackend(backendName string) (backend.StationBackend, error) {
switch backendName {
case "arp":
return arp.NewBackend(), nil
case "dhcp":
return dhcp.NewBackend(), nil
case "hostapd":
return hostapd.NewBackend(), nil
default:
return nil, fmt.Errorf("invalid station backend: %s (must be 'arp', 'dhcp', or 'hostapd')", backendName)
}
}