Files
openfsd/internal/server/handler_dispatch.go
Reese Norris 93789bf72f feat: serviceapi DTOs, $HC handoff cancel, and ATC race fixes
Extract pure JSON DTOs into internal/serviceapi so web no longer imports
server. Add $HC wire type, persist assigned beacons, fix ValidATC before
first position, and prevent double leave notifications.
2026-07-22 16:06:11 -04:00

45 lines
1.4 KiB
Go

package server
import "github.com/renorris/openfsd/internal/session"
func (s *Server) getHandler(packetType PacketType) handlerFunc {
switch packetType {
case PacketTypeTextMessage:
return s.handleTextMessage
case PacketTypeATCPosition:
return s.handleATCPosition
case PacketTypeSecondaryVisCenter:
return s.handleSecondaryVisCenter
case PacketTypePilotPosition:
return s.handlePilotPosition
case PacketTypePilotPositionFast, PacketTypePilotPositionSlow, PacketTypePilotPositionStopped:
return s.handleFastPilotPosition
case PacketTypeDeletePilot, PacketTypeDeleteATC:
return s.handleDelete
case PacketTypeSquawkbox:
return s.handleSquawkbox
case PacketTypeProController:
return s.handleProcontroller
case PacketTypeClientQuery, PacketTypeClientQueryResponse:
return s.handleClientQuery
case PacketTypeKillRequest:
return s.handleKillRequest
case PacketTypeAuthChallenge:
return s.handleAuthChallenge
case PacketTypeHandoffRequest, PacketTypeHandoffAccept, PacketTypeHandoffCancel:
return s.handleHandoff
case PacketTypeMetarRequest:
return s.handleMetarRequest
case PacketTypeFlightPlan:
return s.handleFileFlightplan
case PacketTypeFlightPlanAmendment:
return s.handleAmendFlightplan
default:
return s.emptyHandler
}
}
func (s *Server) emptyHandler(client *session.Session, packet []byte) {
s.logger.Error("empty handler called")
}