// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package remoting.ftl;
// Next Id: 6
message ChromotingMessage {
// Monotonically increasing sequence id for messages, starting at 1.
// Use 0 (or don't set) for messages that are not part of a sequence.
optional int32 sequence_id = 2;
oneof message {
ChromotingEchoMessage echo = 4;
ChromotingXmppMessage xmpp = 1;
HostStatusChangeMessage status = 3;
ReconnectSessionMessage reconnect = 5;
}
}
// Chromoting Legacy XMPP message.
// Next Id: 2
message ChromotingXmppMessage {
// A serialized version of the IQ stanza.
optional string stanza = 1;
}
// Notifies the host of a change in its status in the Directory.
// Next Id: 2
message HostStatusChangeMessage {
enum DirectoryState {
NOT_SET = 0;
DELETED = 1;
}
// Most recent operation that was performed on the host entry.
optional DirectoryState directory_state = 1;
}
// Sent to the client to notify it that a new host instance is available for
// reconnections. This is used for reconnectable ChromeOS enterprise sessions
// where the ash-chrome process has been restarted and a new support host
// instance is available for the client to reconnect to.
// Note: Sessions which were interrupted due to flaky network conditions can
// recover via an ICE restart and should not send this message. It is only
// for cases where the host has been completely torn down and a new session must
// be established.
// Next Id: 2
message ReconnectSessionMessage {
// The 7 digit value used for the Directory look-up which is used to ensure
// the message is associated with the current session.
optional string support_id = 1;
}
// A message which can be used to establish whether a client or host is
// responding to signaling messages (i.e. reachable via signaling channel).
// Use cases include checking to see if an endpoint is online after a
// disconnect or before displaying it in the host list with an online
// status.
// Next Id: 2
message ChromotingEchoMessage {
// The message which should be echoed back. Though the message can have
// an arbitrary length, only the first 16 characters will be echoed back.
optional string message = 1;
}