[PATCH 1/2] Clean nad simplify SAP server error printouts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



---
 sap/server.c |   98 ++++++++++++++++++++++++---------------------------------
 1 files changed, 41 insertions(+), 57 deletions(-)

diff --git a/sap/server.c b/sap/server.c
index 56a62f7..711361d 100644
--- a/sap/server.c
+++ b/sap/server.c
@@ -338,8 +338,6 @@ static void connect_req(struct sap_connection *conn,
 	return;
 
 error_rsp:
-	error("Processing error (param %p state %d pr 0x%02x)", param,
-					conn->state, conn->processing_req);
 	sap_error_rsp(conn);
 }
 
@@ -387,8 +385,10 @@ static int disconnect_req(struct sap_connection *conn, uint8_t disc_type)
 
 	case SAP_DISCONNECTION_TYPE_CLIENT:
 		if (conn->state != SAP_STATE_CONNECTED &&
-				conn->state != SAP_STATE_GRACEFUL_DISCONNECT)
-			goto error_rsp;
+				conn->state != SAP_STATE_GRACEFUL_DISCONNECT) {
+			sap_error_rsp(conn);
+			goto error_req;
+		}
 
 		conn->state = SAP_STATE_CLIENT_DISCONNECT;
 		conn->processing_req = SAP_NO_REQ;
@@ -403,11 +403,7 @@ static int disconnect_req(struct sap_connection *conn, uint8_t disc_type)
 		return -EINVAL;
 	}
 
-error_rsp:
-	sap_error_rsp(conn);
 error_req:
-	error("Processing error (state %d pr 0x%02x)", conn->state,
-						conn->processing_req);
 	return -EPERM;
 }
 
@@ -434,8 +430,6 @@ static void transfer_apdu_req(struct sap_connection *conn,
 	return;
 
 error_rsp:
-	error("Processing error (param %p state %d pr 0x%02x)", param,
-					conn->state, conn->processing_req);
 	sap_error_rsp(conn);
 }
 
@@ -455,8 +449,6 @@ static void transfer_atr_req(struct sap_connection *conn)
 	return;
 
 error_rsp:
-	error("Processing error (state %d pr 0x%02x)", conn->state,
-						conn->processing_req);
 	sap_error_rsp(conn);
 }
 
@@ -476,8 +468,6 @@ static void power_sim_off_req(struct sap_connection *conn)
 	return;
 
 error_rsp:
-	error("Processing error (state %d pr 0x%02x)", conn->state,
-						conn->processing_req);
 	sap_error_rsp(conn);
 }
 
@@ -497,8 +487,6 @@ static void power_sim_on_req(struct sap_connection *conn)
 	return;
 
 error_rsp:
-	error("Processing error (state %d pr 0x%02x)", conn->state,
-						conn->processing_req);
 	sap_error_rsp(conn);
 }
 
@@ -518,8 +506,6 @@ static void reset_sim_req(struct sap_connection *conn)
 	return;
 
 error_rsp:
-	error("Processing error (state %d pr 0x%02x param)", conn->state,
-						conn->processing_req);
 	sap_error_rsp(conn);
 }
 
@@ -539,8 +525,6 @@ static void transfer_card_reader_status_req(struct sap_connection *conn)
 	return;
 
 error_rsp:
-	error("Processing error (state %d pr 0x%02x)", conn->state,
-						conn->processing_req);
 	sap_error_rsp(conn);
 }
 
@@ -564,8 +548,6 @@ static void set_transport_protocol_req(struct sap_connection *conn,
 	return;
 
 error_rsp:
-	error("Processing error (param %p state %d pr 0x%02x)", param,
-					conn->state, conn->processing_req);
 	sap_error_rsp(conn);
 }
 
@@ -967,6 +949,9 @@ int sap_error_rsp(void *sap_device)
 	memset(&msg, 0, sizeof(msg));
 	msg.id = SAP_ERROR_RESP;
 
+	error("SAP error (state %d pr 0x%02x).", conn->state,
+							conn->processing_req);
+
 	return send_message(conn, &msg, sizeof(msg));
 }
 
@@ -1008,10 +993,9 @@ int sap_disconnect_ind(void *sap_device, uint8_t disc_type)
 	return disconnect_req(conn, SAP_DISCONNECTION_TYPE_IMMEDIATE);
 }
 
-static int handle_cmd(void *data, void *buf, size_t size)
+static int handle_cmd(struct sap_connection *conn, void *buf, size_t size)
 {
 	struct sap_message *msg = buf;
-	struct sap_connection *conn = data;
 
 	if (!conn)
 		return -EINVAL;
@@ -1055,12 +1039,12 @@ static int handle_cmd(void *data, void *buf, size_t size)
 		set_transport_protocol_req(conn, msg->param);
 		return 0;
 	default:
-		DBG("SAP unknown message.");
+		DBG("Unknown SAP message id 0x%02x.", msg->id);
 		break;
 	}
 
 error_rsp:
-	DBG("Bad request message format.");
+	DBG("Invalid SAP message format.");
 	sap_error_rsp(conn);
 	return -EBADMSG;
 }
@@ -1084,12 +1068,14 @@ static void sap_conn_remove(struct sap_connection *conn)
 
 static gboolean sap_io_cb(GIOChannel *io, GIOCondition cond, gpointer data)
 {
+	struct sap_connection *conn = data;
+
 	char buf[SAP_BUF_SIZE];
 	size_t bytes_read = 0;
 	GError *gerr = NULL;
 	GIOStatus gstatus;
 
-	DBG("io %p", io);
+	DBG("conn %p io %p", conn, io);
 
 	if (cond & G_IO_NVAL) {
 		DBG("ERR (G_IO_NVAL) on rfcomm socket.");
@@ -1107,7 +1093,7 @@ static gboolean sap_io_cb(GIOChannel *io, GIOCondition cond, gpointer data)
 	}
 
 	gstatus = g_io_channel_read_chars(io, buf, sizeof(buf) - 1,
-				&bytes_read, &gerr);
+							&bytes_read, &gerr);
 	if (gstatus != G_IO_STATUS_NORMAL) {
 		if (gerr)
 			g_error_free(gerr);
@@ -1115,8 +1101,8 @@ static gboolean sap_io_cb(GIOChannel *io, GIOCondition cond, gpointer data)
 		return TRUE;
 	}
 
-	if (handle_cmd(data, buf, bytes_read) < 0)
-		error("Invalid SAP message.");
+	if (handle_cmd(conn, buf, bytes_read) < 0)
+		error("SAP protocol processing failure.");
 
 	return TRUE;
 }
@@ -1151,7 +1137,7 @@ static void sap_connect_cb(GIOChannel *io, GError *gerr, gpointer data)
 {
 	struct sap_connection *conn = data;
 
-	DBG("io %p gerr %p data %p ", io, gerr, data);
+	DBG("conn %p, io %p", conn, io);
 
 	if (!conn)
 		return;
@@ -1160,9 +1146,8 @@ static void sap_connect_cb(GIOChannel *io, GError *gerr, gpointer data)
 	   activity */
 	start_guard_timer(conn, SAP_TIMER_NO_ACTIVITY);
 
-	g_io_add_watch_full(io, G_PRIORITY_DEFAULT,
-			G_IO_IN | G_IO_ERR | G_IO_HUP | G_IO_NVAL,
-			sap_io_cb, conn, sap_io_destroy);
+	g_io_add_watch_full(io, G_PRIORITY_DEFAULT, G_IO_IN | G_IO_ERR |
+			G_IO_HUP | G_IO_NVAL, sap_io_cb, conn, sap_io_destroy);
 }
 
 static void connect_auth_cb(DBusError *derr, void *data)
@@ -1170,13 +1155,13 @@ static void connect_auth_cb(DBusError *derr, void *data)
 	struct sap_connection *conn = data;
 	GError *gerr = NULL;
 
-	DBG("derr %p data %p ", derr, data);
+	DBG("conn %p", conn);
 
 	if (!conn)
 		return;
 
 	if (derr && dbus_error_is_set(derr)) {
-		error("Access denied: %s", derr->message);
+		error("Access has been denied (%s)", derr->message);
 		sap_conn_remove(conn);
 		return;
 	}
@@ -1188,7 +1173,7 @@ static void connect_auth_cb(DBusError *derr, void *data)
 		return;
 	}
 
-	DBG("Client has been authorized.");
+	info("Access has been granted.");
 }
 
 static void connect_confirm_cb(GIOChannel *io, gpointer data)
@@ -1196,14 +1181,16 @@ static void connect_confirm_cb(GIOChannel *io, gpointer data)
 	struct sap_connection *conn = server->conn;
 	GError *gerr = NULL;
 	bdaddr_t src, dst;
+	char dstaddr[18];
 	int err;
 
-	DBG("io %p data %p ", io, data);
+	DBG("conn %p io %p", conn, io);
 
 	if (!io)
 		return;
 
 	if (conn) {
+		info("Another SAP connection already exists.");
 		g_io_channel_shutdown(io, TRUE, NULL);
 		return;
 	}
@@ -1222,10 +1209,8 @@ static void connect_confirm_cb(GIOChannel *io, gpointer data)
 	conn->io = g_io_channel_ref(io);
 	conn->state = SAP_STATE_DISCONNECTED;
 
-	bt_io_get(io, BT_IO_RFCOMM, &gerr,
-			BT_IO_OPT_SOURCE_BDADDR, &src,
-			BT_IO_OPT_DEST_BDADDR, &dst,
-			BT_IO_OPT_INVALID);
+	bt_io_get(io, BT_IO_RFCOMM, &gerr, BT_IO_OPT_SOURCE_BDADDR, &src,
+			BT_IO_OPT_DEST_BDADDR, &dst, BT_IO_OPT_INVALID);
 	if (gerr) {
 		error("%s", gerr->message);
 		g_error_free(gerr);
@@ -1233,23 +1218,24 @@ static void connect_confirm_cb(GIOChannel *io, gpointer data)
 		return;
 	}
 
-	err = btd_request_authorization(&src, &dst, SAP_UUID,
-					connect_auth_cb, conn);
+	ba2str(&dst, dstaddr);
+
+	err = btd_request_authorization(&src, &dst, SAP_UUID, connect_auth_cb,
+									conn);
 	if (err < 0) {
-		DBG("Authorization denied: %d %s", err,  strerror(err));
+		error("Authorization failure (err %d)", err);
 		sap_conn_remove(conn);
 		return;
 	}
 
-	DBG("SAP incoming connection (sock %d) authorization.",
-				g_io_channel_unix_get_fd(io));
+	info("Authorizing incomming SAP connection from %s", dstaddr);
 }
 
 static inline DBusMessage *message_failed(DBusMessage *msg,
 					const char *description)
 {
-	return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
-				"%s", description);
+	return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed", "%s",
+								description);
 }
 
 static DBusMessage *disconnect(DBusConnection *conn, DBusMessage *msg,
@@ -1257,8 +1243,6 @@ static DBusMessage *disconnect(DBusConnection *conn, DBusMessage *msg,
 {
 	struct sap_server *server = data;
 
-	DBG("server %p", server);
-
 	if (!server)
 		return message_failed(msg, "Server internal error.");
 
@@ -1298,7 +1282,7 @@ static DBusMessage *get_properties(DBusConnection *c,
 			DBUS_DICT_ENTRY_END_CHAR_AS_STRING, &dict);
 
 	connected = (conn->state == SAP_STATE_CONNECTED ||
-			conn->state == SAP_STATE_GRACEFUL_DISCONNECT);
+				conn->state == SAP_STATE_GRACEFUL_DISCONNECT);
 	dict_append_entry(&dict, "Connected", DBUS_TYPE_BOOLEAN, &connected);
 
 	dbus_message_iter_close_container(&iter, &dict);
@@ -1332,8 +1316,8 @@ static void destroy_sap_interface(void *data)
 {
 	struct sap_server *server = data;
 
-	DBG("Unregistered interface %s on path %s",
-			SAP_SERVER_INTERFACE, server->path);
+	DBG("Unregistered interface %s on path %s", SAP_SERVER_INTERFACE,
+								server->path);
 
 	server_free(server);
 }
@@ -1391,10 +1375,10 @@ int sap_server_register(const char *path, bdaddr_t *src)
 	server->conn = NULL;
 
 	if (!g_dbus_register_interface(connection, path, SAP_SERVER_INTERFACE,
-				server_methods, server_signals, NULL,
-				server, destroy_sap_interface)) {
+					server_methods, server_signals, NULL,
+					server, destroy_sap_interface)) {
 		error("D-Bus failed to register %s interface",
-						SAP_SERVER_INTERFACE);
+							SAP_SERVER_INTERFACE);
 		goto server_err;
 	}
 
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux