[gnome-network-displays/cc-tmp: 10/80] Fixups 1
- From: Benjamin Berg <bberg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-network-displays/cc-tmp: 10/80] Fixups 1
- Date: Fri, 9 Sep 2022 12:03:49 +0000 (UTC)
commit f34cf22f809c011ba6292b99c4bce47d9a099d77
Author: Benjamin Berg <bberg redhat com>
Date: Tue Jul 26 13:15:17 2022 +0200
Fixups 1
src/cc/cc-comm.c | 25 ++++++++++++++-----------
src/nd-cc-sink.c | 12 +++++++++---
2 files changed, 23 insertions(+), 14 deletions(-)
---
diff --git a/src/cc/cc-comm.c b/src/cc/cc-comm.c
index 6c5818d..10ab243 100644
--- a/src/cc/cc-comm.c
+++ b/src/cc/cc-comm.c
@@ -269,17 +269,15 @@ cc_comm_make_connection (NdCCSink *sink, GError **error)
}
gboolean
-cc_comm_ensure_connection (NdCCSink * sink)
+cc_comm_ensure_connection (NdCCSink * sink, GError ** error)
{
NdCCSink * self = ND_CC_SINK (sink);
- g_autoptr(GError) error = NULL;
+ g_autoptr(GError) err = NULL;
- if (!G_IS_TLS_CONNECTION (self->connection) && !cc_comm_make_connection (self, &error))
+ if (!G_IS_TLS_CONNECTION (self->connection) && !cc_comm_make_connection (self, &err))
{
- g_warning ("CCComm: Failed to make connection: %s", error->message);
- g_error_free (error);
- self->state = ND_SINK_STATE_ERROR;
- g_object_notify (G_OBJECT (self), "state");
+ g_warning ("CCComm: Failed to make connection: %s", err->message);
+ g_propagate_error (error, g_steal_pointer (&err));
return FALSE;
}
@@ -293,13 +291,18 @@ cc_comm_tls_send (NdCCSink * sink,
uint8_t * message,
gssize size,
gboolean expect_input,
- GError * error)
+ GError **error)
{
NdCCSink * self = ND_CC_SINK (sink);
GOutputStream *ostream;
gssize io_bytes;
- cc_comm_ensure_connection (self);
+ if (!G_IS_TLS_CONNECTION (self->connection))
+ {
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_CONNECTED,
+ "Connection has not been established");
+ return FALSE:
+ }
g_debug ("Writing data:");
cc_comm_dump_message (message, size);
@@ -435,7 +438,7 @@ cc_comm_send_request (NdCCSink *sink, enum MessageType message_type, char *utf8_
sock_buffer,
packed_size+4,
expect_input,
- error);
+ &error);
if (!send_ok || error != NULL)
{
@@ -459,7 +462,7 @@ cc_comm_send_ping (gpointer userdata)
NdCCSink *self = ND_CC_SINK (userdata);
if (!cc_comm_ensure_connection(self, &error)) return FALSE;
- send_request(self, MESSAGE_TYPE_PING, NULL);
+ cc_comm_send_request(self, MESSAGE_TYPE_PING, NULL);
return TRUE;
}
diff --git a/src/nd-cc-sink.c b/src/nd-cc-sink.c
index d34765b..a9bfa04 100644
--- a/src/nd-cc-sink.c
+++ b/src/nd-cc-sink.c
@@ -262,7 +262,7 @@ static void
closed_cb (NdCCSink *sink, CCClient *client)
{
/* Connection was closed, do a clean shutdown */
- send_request(ND_CC_SINK (sink), MESSAGE_TYPE_DISCONNECT, NULL);
+ cc_comm_send_request(ND_CC_SINK (sink), MESSAGE_TYPE_DISCONNECT, NULL);
nd_cc_sink_sink_stop_stream (ND_SINK (sink));
}
@@ -330,8 +330,14 @@ nd_cc_sink_sink_start_stream (NdSink *sink)
g_debug ("NdCCSink: Attempting connection to Chromecast: %s", self->remote_name);
// open a TLS connection to the CC device
- if (!cc_comm_ensure_connection(self))
- return NULL;
+ if (!cc_comm_ensure_connection(self, &error))
+ {
+ self->state = ND_SINK_STATE_ERROR;
+ g_object_notify (G_OBJECT (self), "state");
+ g_clear_object (&self->server);
+
+ return NULL;
+ }
// TODO: listen to all incoming messages
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]