MCPcopy
hub / github.com/ContainerSSH/ContainerSSH / StartServerForward

Method StartServerForward

agentprotocol/server.go:571–610  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

569}
570
571func (c *ForwardCtx) StartServerForward() (chan *Connection, error) {
572 c.init()
573
574 setupPacket := SetupPacket{
575 ConnectionType: CONNECTION_TYPE_PORT_DIAL,
576 }
577 mar, err := cbor.Marshal(&setupPacket)
578 if err != nil {
579 c.logger.Error(message.Wrap(
580 err,
581 message.EAgentDecodingFailed,
582 "Error marshalling setup packet",
583 ))
584 return nil, err
585 }
586
587 packet := Packet{
588 Type: PACKET_SETUP,
589 Payload: mar,
590 }
591 err = c.writePacket(&packet)
592 if err != nil {
593 return nil, err
594 }
595
596 resp := Packet{}
597 err = c.decoder.Decode(&resp)
598 if err != nil {
599 return nil, err
600 }
601 if resp.Type == PACKET_ERROR {
602 return nil, fmt.Errorf("received error packet from client")
603 } else if resp.Type != PACKET_SUCCESS {
604 return nil, fmt.Errorf("received invalid packet from client")
605 }
606
607 go c.handleBackend()
608
609 return c.connectionChannel, nil
610}
611
612func (c *ForwardCtx) startReverseForwardingClient(setupPacket SetupPacket) (chan *Connection, error) {
613 c.init()

Callers 1

setupDirectForwardMethod · 0.80

Calls 8

initMethod · 0.95
writePacketMethod · 0.95
handleBackendMethod · 0.95
WrapFunction · 0.92
MarshalMethod · 0.65
ErrorMethod · 0.65
DecodeMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected