(setupPacket SetupPacket)
| 610 | } |
| 611 | |
| 612 | func (c *ForwardCtx) startReverseForwardingClient(setupPacket SetupPacket) (chan *Connection, error) { |
| 613 | c.init() |
| 614 | |
| 615 | mar, err := cbor.Marshal(&setupPacket) |
| 616 | if err != nil { |
| 617 | c.logger.Error(message.Wrap( |
| 618 | err, |
| 619 | message.EAgentDecodingFailed, |
| 620 | "Error marshalling setup packet", |
| 621 | )) |
| 622 | return nil, err |
| 623 | } |
| 624 | |
| 625 | packet := Packet{ |
| 626 | Type: PACKET_SETUP, |
| 627 | Payload: mar, |
| 628 | } |
| 629 | err = c.writePacket(&packet) |
| 630 | if err != nil { |
| 631 | return nil, err |
| 632 | } |
| 633 | |
| 634 | resp := Packet{} |
| 635 | err = c.decoder.Decode(&resp) |
| 636 | if err != nil { |
| 637 | return nil, err |
| 638 | } |
| 639 | if resp.Type == PACKET_ERROR { |
| 640 | return nil, fmt.Errorf("received error packet from client") |
| 641 | } else if resp.Type != PACKET_SUCCESS { |
| 642 | return nil, fmt.Errorf("received invalid packet from client") |
| 643 | } |
| 644 | |
| 645 | go c.handleBackend() |
| 646 | |
| 647 | return c.connectionChannel, nil |
| 648 | } |
| 649 | |
| 650 | func (c *ForwardCtx) StartX11ForwardClient(singleConnection bool, screen string, authProtocol string, authCookie string) (chan *Connection, error) { |
| 651 | setupPacket := SetupPacket{ |
no test coverage detected