diff --git a/sap/server.c b/sap/server.c
index f259bb0..95f621b 100644
--- a/sap/server.c
+++ b/sap/server.c
return -EBADMSG;
}
-static void sap_conn_remove(struct sap_connection *conn)
+static void sap_server_remove_conn(struct sap_server *server)
{
+ struct sap_connection *conn = server->conn;
+
DBG("conn %p", conn);
if (!conn)
g_io_channel_unref(conn->io);
}
- conn->io = NULL;
g_free(conn);
- sap_server->conn = NULL;
+ server->conn = NULL;
}
static gboolean sap_io_cb(GIOChannel *io, GIOCondition cond, gpointer data)
conn->state == SAP_STATE_GRACEFUL_DISCONNECT)
sap_disconnect_req(server, 1);
- sap_conn_remove(conn);
+ sap_server_remove_conn(server);
}
static void sap_connect_cb(GIOChannel *io, GError *gerr, gpointer data)
if (derr && dbus_error_is_set(derr)) {
error("Access has been denied (%s)", derr->message);
- sap_conn_remove(conn);
+ sap_server_remove_conn(server);
return;
}
if (!bt_io_accept(conn->io, sap_connect_cb, server, NULL, &gerr)) {
error("bt_io_accept: %s", gerr->message);
g_error_free(gerr);
- sap_conn_remove(conn);
+ sap_server_remove_conn(server);
return;
}
if (gerr) {
error("%s", gerr->message);
g_error_free(gerr);
- sap_conn_remove(conn);
+ sap_server_remove_conn(server);
return;
}
server);
if (err < 0) {
error("Authorization failure (err %d)", err);
- sap_conn_remove(conn);
+ sap_server_remove_conn(server);
return;
}
if (!server)
return;
- sap_conn_remove(server->conn);
+ sap_server_remove_conn(server);
g_free(server->path);
g_free(server);
server = NULL;
remove_record_from_server(sap_server->record_id);
- if (sap_server->conn)
- sap_conn_remove(sap_server->conn);
+ sap_server_remove_conn(sap_server);
if (sap_server->listen_io) {
g_io_channel_shutdown(sap_server->listen_io, TRUE, NULL);