Skip to content

Commit 100ae89

Browse files
committed
Improving the control messsages interface
1 parent 08a4faa commit 100ae89

File tree

4 files changed

+25
-12
lines changed

4 files changed

+25
-12
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ his file's format is define in
88
[Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
99
and the release workflow reads it to set github's release notes.
1010

11+
## [1.5.1] 2024-7-28
12+
13+
### Fixed
14+
15+
- `webexec status` now shows the correct ICE candidate pairs
1116

1217
## [1.5.0] 2024-6-3
1318

peers/peer.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ type Conf struct {
5252
GetWelcome func() string
5353
KeepAliveInterval time.Duration
5454
Logger *zap.SugaredLogger
55-
OnCTRLMsg func(*Peer, CTRLMessage, json.RawMessage)
55+
OnCTRLMsg func(*Peer, *CTRLMessage, json.RawMessage)
5656
OnStateChange func(*Peer, webrtc.PeerConnectionState)
5757
PortMax uint16
5858
PortMin uint16
@@ -230,6 +230,10 @@ func (peer *Peer) OnChannelReq(d *webrtc.DataChannel) {
230230
if label != "%" {
231231
peer.logger.Infof("Ignoring a strange channel label %q", label)
232232
}
233+
// cdc is open, let the caller know
234+
if peer.Conf.OnCTRLMsg != nil {
235+
peer.Conf.OnCTRLMsg(peer, nil, nil)
236+
}
233237
})
234238
}
235239

@@ -259,7 +263,7 @@ func (peer *Peer) handleCTRLMsg(msg webrtc.DataChannelMessage) {
259263
case "nack":
260264
peer.handleNack(m, raw)
261265
default:
262-
peer.Conf.OnCTRLMsg(peer, m, raw)
266+
peer.Conf.OnCTRLMsg(peer, &m, raw)
263267
}
264268
}
265269

peers/peer_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func TestActivePeer(t *testing.T) {
2929
GetICEServers: func() ([]webrtc.ICEServer, error) {
3030
return []webrtc.ICEServer{}, nil
3131
},
32-
OnCTRLMsg: func(*Peer, CTRLMessage, json.RawMessage) {
32+
OnCTRLMsg: func(*Peer, *CTRLMessage, json.RawMessage) {
3333
return
3434
},
3535
}

webexec.go

+13-9
Original file line numberDiff line numberDiff line change
@@ -754,26 +754,30 @@ func pasteCMD(c *cli.Context) error {
754754
}
755755

756756
// handleCTRLMsg handles incoming control messages
757-
func handleCTRLMsg(peer *peers.Peer, m peers.CTRLMessage, raw json.RawMessage) {
757+
func handleCTRLMsg(peer *peers.Peer, m *peers.CTRLMessage, raw json.RawMessage) {
758+
// do nothing on connection open and nil messages
759+
if m == nil {
760+
return
761+
}
758762
switch m.Type {
759763
case "resize":
760-
handleResize(peer, m, raw)
764+
handleResize(peer, *m, raw)
761765
case "restore":
762-
handleRestore(peer, m, raw)
766+
handleRestore(peer, *m, raw)
763767
case "get_payload":
764-
handleGetPayload(peer, m)
768+
handleGetPayload(peer, *m)
765769
case "set_payload":
766-
handleSetPayload(peer, m, raw)
770+
handleSetPayload(peer, *m, raw)
767771
case "mark":
768-
handleMark(peer, m)
772+
handleMark(peer, *m)
769773
case "reconnect_pane":
770-
handleReconnectPane(peer, m, raw)
774+
handleReconnectPane(peer, *m, raw)
771775
case "add_pane":
772-
handleAddPane(peer, m, raw)
776+
handleAddPane(peer, *m, raw)
773777
default:
774778
Logger.Errorf("Got a control message with unknown type: %q", m.Type)
775779
// send nack
776-
err := peer.SendNack(m, "unknown control message type")
780+
err := peer.SendNack(*m, "unknown control message type")
777781
if err != nil {
778782
Logger.Errorf("#%d: Failed to send nack: %v", peer.FP, err)
779783
}

0 commit comments

Comments
 (0)