MCPcopy Create free account
hub / github.com/ContainerSSH/ContainerSSH / handleGlobalRequest

Method handleGlobalRequest

internal/sshserver/serverImpl.go:660–714  ·  view source on GitHub ↗

nolint:dupl

(authenticatedMetadata metadata.ConnectionAuthenticatedMetadata, requestID uint64, connection SSHConnectionHandler, req *ssh.Request, logger log.Logger)

Source from the content-addressed store, hash-verified

658
659//nolint:dupl
660func (s *serverImpl) handleGlobalRequest(authenticatedMetadata metadata.ConnectionAuthenticatedMetadata, requestID uint64, connection SSHConnectionHandler, req *ssh.Request, logger log.Logger) {
661 reply := s.createReply(req, logger)
662 payload, err := s.unmarshalGlobalRequestPayload(req)
663 if payload == nil {
664 connection.OnUnsupportedGlobalRequest(requestID, req.Type, req.Payload)
665 reply(false, fmt.Sprintf("unsupported global request type: %s", req.Type), nil)
666 return
667 }
668 if err != nil {
669 logger.Debug(
670 messageCodes.Wrap(
671 err,
672 messageCodes.ESSHDecodeFailed,
673 "failed to unmarshal %s request payload",
674 req.Type,
675 ),
676 )
677 connection.OnFailedDecodeGlobalRequest(requestID, req.Type, req.Payload, err)
678 reply(false, "failed to unmarshal payload", nil)
679 return
680 }
681
682 logger.Debug(
683 messageCodes.NewMessage(
684 messageCodes.MSSHGlobalRequest,
685 "%s global request from client",
686 req.Type,
687 ).Label("RequestType", req.Type),
688 )
689 if err := s.handleDecodedGlobalRequest(
690 authenticatedMetadata,
691 requestID,
692 ssh2.RequestType(req.Type),
693 payload,
694 connection,
695 ); err != nil {
696 logger.Debug(
697 messageCodes.NewMessage(
698 messageCodes.MSSHGlobalRequestFailed,
699 "%s global request from client failed",
700 req.Type,
701 ).Label("RequestType", req.Type),
702 )
703 reply(false, err.Error(), err)
704 return
705 }
706 logger.Debug(
707 messageCodes.NewMessage(
708 messageCodes.MSSHGlobalRequestSuccessful,
709 "%s global request from client successful",
710 req.Type,
711 ).Label("RequestType", req.Type),
712 )
713 reply(true, "", nil)
714}
715
716func (s *serverImpl) handleDecodedGlobalRequest(
717 authenticatedMetadata metadata.ConnectionAuthenticatedMetadata,

Callers 1

handleGlobalRequestsMethod · 0.95

Calls 8

createReplyMethod · 0.95
DebugMethod · 0.65
LabelMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected