Commit d5c7a13a authored by Juliusz Chroboczek's avatar Juliusz Chroboczek

Implement abort in the client->server direction.

parent cc35931a
...@@ -1144,6 +1144,15 @@ func handleClientMessage(c *webClient, m clientMessage) error { ...@@ -1144,6 +1144,15 @@ func handleClientMessage(c *webClient, m clientMessage) error {
if !found { if !found {
log.Printf("Deleting unknown up connection %v", m.Id) log.Printf("Deleting unknown up connection %v", m.Id)
} }
case "abort":
found := delDownConn(c, m.Id)
if !found {
log.Printf("Attempted to abort unknown connection")
}
c.write(clientMessage{
Type: "close",
Id: m.Id,
});
case "ice": case "ice":
if m.Candidate == nil { if m.Candidate == nil {
return group.ProtocolError("null candidate") return group.ProtocolError("null candidate")
......
...@@ -911,6 +911,10 @@ function Stream(sc, id, pc, up) { ...@@ -911,6 +911,10 @@ function Stream(sc, id, pc, up) {
/** /**
* close closes a stream. * close closes a stream.
*
* For streams in the up direction, this may be called at any time. For
* streams in the down direction, this will be called automatically when
* the server signals that it is closing a stream.
*/ */
Stream.prototype.close = function() { Stream.prototype.close = function() {
let c = this; let c = this;
...@@ -941,6 +945,19 @@ Stream.prototype.close = function() { ...@@ -941,6 +945,19 @@ Stream.prototype.close = function() {
c.sc = null; c.sc = null;
}; };
/**
* abort requests that the server close a down stream.
*/
Stream.prototype.abort = function() {
let c = this;
if(c.up)
throw new Error("Abort called on an up stream");
c.sc.send({
type: 'abort',
id: c.id,
});
}
/** /**
* Called when we get a local ICE candidate. Don't call this. * Called when we get a local ICE candidate. Don't call this.
* *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment