mirror of
https://github.com/renorris/openfsd
synced 2026-08-15 01:46:22 +08:00
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.
45 lines
1.4 KiB
Go
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")
|
|
}
|