/*
- * Copyright (C) 2013 - Julien Desfossez <jdesfossez@efficios.com>
- * David Goulet <dgoulet@efficios.com>
- * 2015 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright (C) 2013 Julien Desfossez <jdesfossez@efficios.com>
+ * Copyright (C) 2013 David Goulet <dgoulet@efficios.com>
+ * Copyright (C) 2015 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
*
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License, version 2 only, as
- * published by the Free Software Foundation.
+ * SPDX-License-Identifier: GPL-2.0-only
*
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 51
- * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#define _LGPL_SOURCE
viewer_session_destroy(conn->viewer_session);
conn->viewer_session = NULL;
}
+ if (conn->type == RELAY_CONTROL) {
+ lttng_dynamic_buffer_reset(
+ &conn->protocol.ctrl.reception_buffer);
+ }
free(conn);
}
conn->in_socket_ht = 1;
conn->socket_ht = relay_connections_ht;
}
+
+int connection_set_session(struct relay_connection *conn,
+ struct relay_session *session)
+{
+ int ret = 0;
+
+ assert(conn);
+ assert(session);
+ assert(!conn->session);
+
+ if (connection_get(conn)) {
+ if (session_get(session)) {
+ conn->session = session;
+ } else {
+ ERR("Failed to get session reference in connection_set_session()");
+ ret = -1;
+ }
+ connection_put(conn);
+ } else {
+ ERR("Failed to get connection reference in connection_set_session()");
+ ret = -1;
+ }
+ return ret;
+}