+/*
+ * Check if a connection is attached to a session.
+ * Return 1 if attached, 0 if not attached, a negative value on error.
+ */
+static
+int session_attached(struct relay_connection *conn, uint64_t session_id)
+{
+ struct relay_session *session;
+ int found = 0;
+
+ if (!conn->viewer_session) {
+ goto end;
+ }
+ cds_list_for_each_entry(session,
+ &conn->viewer_session->sessions_head,
+ viewer_session_list) {
+ if (session->id == session_id) {
+ found = 1;
+ goto end;
+ }
+ }
+
+end:
+ return found;
+}
+