All of lore.kernel.org
 help / color / mirror / Atom feed
From: Claudio Takahasi <cktakahasi@gmail.com>
To: bluez-devel@lists.sourceforge.net
Subject: [Bluez-devel] hcid D-Bus patch
Date: Fri, 16 Sep 2005 11:42:37 -0300	[thread overview]
Message-ID: <e1effdeb05091607426f824afa@mail.gmail.com> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 729 bytes --]

Hi Marcel,

I am sending the initial patch that implementing the skeleton
of the hcid D-Bus services.

Run hcid with a non-daemon option to see the output

Send the following messages to see the message handling.

dbus-send --system --type=method_call --dest=org.bluez /org/bluez/hci 
org.bluez.hci.PeriodicInqReq byte:1 byte:2 byte:3
dbus-send --system --type=method_call --dest=org.bluez /org/bluez/hci 
org.bluez.hci.CancelPeriodicInqReq
dbus-send --system --type=method_call --dest=org.bluez /org/bluez/hci 
org.bluez.hci.InquiryReq byte:1
dbus-send --system --type=method_call --dest=org.bluez /org/bluez/hci 
org.bluez.hci.RoleSwitchReq string:panu byte:1

Suggestions are welcome!

Regards,
Claudio.

[-- Attachment #1.2: Type: text/html, Size: 793 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: hcid_dbus_0006.patch --]
[-- Type: text/x-patch; name="hcid_dbus_0006.patch", Size: 16047 bytes --]

--- bluez-utils-cvs.orig/hcid/Makefile.am	2005-09-14 08:51:58.000000000 -0300
+++ bluez-utils-cvs-hcid-dbus/hcid/Makefile.am	2005-09-15 17:03:22.000000000 -0300
@@ -13,7 +13,7 @@
 sbin_PROGRAMS = hcid
 
 if DBUS
-dbus_hcid_sources = dbus.c
+dbus_hcid_sources = common.c dbus.c
 dbus_hcid_libs    = @DBUS_LIBS@
 dbus_hcid_cflags  = -DENABLE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
 else
--- bluez-utils-cvs.orig/hcid/dbus-internal.h	1969-12-31 21:00:00.000000000 -0300
+++ bluez-utils-cvs-hcid-dbus/hcid/dbus-internal.h	2005-09-16 11:33:09.049265392 -0300
@@ -0,0 +1,71 @@
+/*
+ *
+ *  BlueZ - Bluetooth protocol stack for Linux
+ *
+ *  Copyright (C) 2000-2001  Qualcomm Incorporated
+ *  Copyright (C) 2002-2003  Maxim Krasnyansky <maxk@qualcomm.com>
+ *  Copyright (C) 2002-2005  Marcel Holtmann <marcel@holtmann.org>
+ *
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License version 2 as
+ *  published by the Free Software Foundation;
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+ *  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
+ *  CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES 
+ *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
+ *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
+ *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ *  ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, 
+ *  COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS 
+ *  SOFTWARE IS DISCLAIMED.
+ *
+ *
+ *  $Id: dbus-internal.h,v 0.1 2005/09/16 08:00:00 holtmann Exp $
+ */
+ 
+#ifndef __H_BLUEZ_DBUS_INTERNAL_H__
+#define __H_BLUEZ_DBUS_INTERNAL_H__
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdint.h>
+#include <dbus/dbus.h>
+#include <errno.h>
+#include <signal.h>
+
+#include <sys/syslog.h>
+
+#include "dbus.h"
+
+typedef DBusMessage* (service_handler_func_t)(DBusMessage *, void *);
+
+typedef struct
+{
+	const char             *name;
+	service_handler_func_t *handler_func;
+	const char             *signature;
+}__attribute__((packed))service_table_t;
+
+typedef enum 
+{
+	RESULT_SUCCESS = 0,
+	RESULT_FAILED = 0x01,
+	RESULT_WRONG_PARAM = 0x02,
+	RESULT_BUSY = 0x04,
+	RESULT_ADAPTER_NOT_FOUND = 0x08,
+	RESULT_WRONG_SIG = 0x10,
+	RESULT_UNKNOWN_METHOD = 0x20,
+	RESULT_SVC_NOT_FOUND = 0x40,
+}__attribute__((packed)) EXEC_RESULT;
+
+
+DBusMessage *create_error_reply_message(DBusMessage *msg, const char *iface, EXEC_RESULT result);
+
+#endif /*__H_BLUEZ_DBUS_INTERNAL_H__*/
--- bluez-utils-cvs.orig/hcid/dbus.h	1969-12-31 21:00:00.000000000 -0300
+++ bluez-utils-cvs-hcid-dbus/hcid/dbus.h	2005-09-16 11:33:38.448795984 -0300
@@ -0,0 +1,86 @@
+/*
+ *
+ *  BlueZ - Bluetooth protocol stack for Linux
+ *
+ *  Copyright (C) 2000-2001  Qualcomm Incorporated
+ *  Copyright (C) 2002-2003  Maxim Krasnyansky <maxk@qualcomm.com>
+ *  Copyright (C) 2002-2005  Marcel Holtmann <marcel@holtmann.org>
+ *
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License version 2 as
+ *  published by the Free Software Foundation;
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+ *  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
+ *  CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES 
+ *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
+ *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
+ *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ *  ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, 
+ *  COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS 
+ *  SOFTWARE IS DISCLAIMED.
+ *
+ *
+ *  $Id: dbus.h,v 0.1 2005/09/16 08:00:00 holtmann Exp $
+ */
+ 
+#ifndef __H_BLUEZ_DBUS_H__
+#define __H_BLUEZ_DBUS_H__
+
+#define __END_SIG__ DBUS_TYPE_INVALID_AS_STRING
+
+/* bluetoothd Bus name */
+#define BLUEZ_DBUS_NAME		"org.bluez"
+
+/* HCI definitions */
+#define BLUEZ_DBUS_HCI_PATH		"/org/bluez/hci"
+#define BLUEZ_DBUS_HCI_INTERFACE	BLUEZ_DBUS_NAME".hci"
+
+//HCI signals
+#define BLUEZ_DBUS_HCI_SIG_INQ_START		"InquiryStartSig"
+#define BLUEZ_DBUS_HCI_SIG_INQ_COMPLETE		"InquiryCompleteSig"
+#define BLUEZ_DBUS_HCI_SIG_INQ_RESULT		"InquiryResultSig"
+#define BLUEZ_DBUS_HCI_SIG_REMOTE_NAME		"RemoteNameSig"
+
+//HCI Provided services
+#define HCI_PERIODIC_INQ_REQ               "PeriodicInqReq"
+#define HCI_CANCEL_PERIODIC_INQ_REQ        "CancelPeriodicInqReq"
+#define HCI_INQ_REQ                        "InquiryReq"
+#define HCI_ROLE_SWITCH_REQ                "RoleSwitchReq"
+
+//HCI signatures
+#define HCI_PERIODIC_INQ_REQ_SIGNATURE		        DBUS_TYPE_BYTE_AS_STRING\
+							DBUS_TYPE_BYTE_AS_STRING\
+							DBUS_TYPE_BYTE_AS_STRING\
+							__END_SIG__
+#define HCI_CANCEL_PERIODIC_INQ_REQ_SIGNATURE		__END_SIG__
+#define HCI_INQ_REQ_SIGNATURE                	    	DBUS_TYPE_BYTE_AS_STRING\
+							__END_SIG__
+#define HCI_ROLE_SWITCH_REQ_SIGNATURE                   DBUS_TYPE_STRING_AS_STRING\
+							DBUS_TYPE_BYTE_AS_STRING\
+							__END_SIG__
+
+
+/* Common Error messages */
+#define ERR_UNKNOWN_METHOD      ".error.UnknowMethod"
+#define ERR_WRONG_SIGNATURE     ".error.WrongSignature"
+#define ERR_WRONG_PARAM         ".error.WrongParam"
+#define ERR_FAILED              ".error.Failed"
+#define ERR_REC_NOT_FOUND       ".error.RecordNotFound"
+#define ERR_BUSY                ".error.Busy"
+#define ERR_NO_DEV_FOUND                ".error.NoDevFound"
+
+#define ERR_MSG_INVALID_PARAMETERS     "Invalid parameters"
+#define ERR_MSG_NO_SVC_FOUND           "No service found"
+#define ERR_MSG_DEV_BUSY               "Device is busy"
+#define ERR_MSG_FAILED                 "Operation failed"
+#define ERR_MSG_NO_DEV_FOUND           "Active Bluetooth adapter not found"
+#define ERR_MSG_WRONG_SIG              "Wrong method signature"
+#define ERR_MSG_METHOD_NOT_FOUND       "Method not found on the interface"
+
+
+#endif /*__H_BLUEZ_DBUS_H__*/
--- bluez-utils-cvs.orig/hcid/dbus.c	2005-09-15 18:05:23.000000000 -0300
+++ bluez-utils-cvs-hcid-dbus/hcid/dbus.c	2005-09-16 11:36:41.362988800 -0300
@@ -45,6 +45,7 @@
 #include "glib-ectomy.h"
 
 #include "hcid.h"
+#include "dbus-internal.h"
 
 static DBusConnection *connection;
 
@@ -62,6 +63,32 @@
 	bdaddr_t bda;
 };
 
+static DBusHandlerResult hci_msg_func(DBusConnection *conn, 
+				      DBusMessage *msg, void *data);
+
+static DBusMessage* handle_periodic_inq_req(DBusMessage *msg, void *data);
+static DBusMessage* handle_cancel_periodic_inq_req(DBusMessage *msg, void *data);
+static DBusMessage* handle_inq_req(DBusMessage *msg, void *data);
+static DBusMessage* handle_role_switch_req(DBusMessage *msg, void *data);
+
+				      
+static const DBusObjectPathVTable hci_vtable = {
+	NULL,
+	&hci_msg_func,
+	NULL,
+	NULL,
+	NULL,
+	NULL
+};
+
+static const service_table_t hci_services[] = {
+	{HCI_PERIODIC_INQ_REQ,        handle_periodic_inq_req,        HCI_PERIODIC_INQ_REQ_SIGNATURE},
+	{HCI_CANCEL_PERIODIC_INQ_REQ, handle_cancel_periodic_inq_req, HCI_CANCEL_PERIODIC_INQ_REQ_SIGNATURE},
+	{HCI_ROLE_SWITCH_REQ,         handle_role_switch_req,         HCI_ROLE_SWITCH_REQ_SIGNATURE},
+	{HCI_INQ_REQ,                 handle_inq_req,                 HCI_INQ_REQ_SIGNATURE},	
+	{NULL, NULL, NULL}
+};
+
 static void reply_handler_function(DBusPendingCall *call, void *user_data)
 {
 	struct pin_request *req = (struct pin_request *) user_data;
@@ -169,8 +196,9 @@
 
 	baswap(&tmp, local); local_addr = batostr(&tmp);
 
-	message = dbus_message_new_signal("/org/bluez/DevAgent",
-				"org.bluez.DevAgent", "InquiryStart");
+	message = dbus_message_new_signal(BLUEZ_DBUS_HCI_PATH,
+					  BLUEZ_DBUS_HCI_INTERFACE, 
+					  BLUEZ_DBUS_HCI_SIG_INQ_START);
 	if (message == NULL) {
 		syslog(LOG_ERR, "Can't allocate D-BUS inquiry start message");
 		goto failed;
@@ -203,8 +231,9 @@
 
 	baswap(&tmp, local); local_addr = batostr(&tmp);
 
-	message = dbus_message_new_signal("/org/bluez/DevAgent",
-				"org.bluez.DevAgent", "InquiryComplete");
+	message = dbus_message_new_signal(BLUEZ_DBUS_HCI_PATH,
+				BLUEZ_DBUS_HCI_INTERFACE, 
+				BLUEZ_DBUS_HCI_SIG_INQ_COMPLETE);
 	if (message == NULL) {
 		syslog(LOG_ERR, "Can't allocate D-BUS inquiry complete message");
 		goto failed;
@@ -238,8 +267,9 @@
 	baswap(&tmp, local); local_addr = batostr(&tmp);
 	baswap(&tmp, peer); peer_addr = batostr(&tmp);
 
-	message = dbus_message_new_signal("/org/bluez/DevAgent",
-				"org.bluez.DevAgent", "InquiryResult");
+	message = dbus_message_new_signal(BLUEZ_DBUS_HCI_PATH,
+				BLUEZ_DBUS_HCI_INTERFACE, 
+				BLUEZ_DBUS_HCI_SIG_INQ_RESULT);
 	if (message == NULL) {
 		syslog(LOG_ERR, "Can't allocate D-BUS inquiry result message");
 		goto failed;
@@ -277,8 +307,9 @@
 	baswap(&tmp, local); local_addr = batostr(&tmp);
 	baswap(&tmp, peer); peer_addr = batostr(&tmp);
 
-	message = dbus_message_new_signal("/org/bluez/DevAgent",
-				"org.bluez.DevAgent", "RemoteName");
+	message = dbus_message_new_signal(BLUEZ_DBUS_HCI_PATH,
+				BLUEZ_DBUS_HCI_INTERFACE,
+				BLUEZ_DBUS_HCI_SIG_REMOTE_NAME);
 	if (message == NULL) {
 		syslog(LOG_ERR, "Can't allocate D-BUS remote name message");
 		goto failed;
@@ -388,15 +419,114 @@
 	dbus_error_init(&error);
 
 	connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
+	
 	if (connection == NULL) {
 		fprintf(stderr, "Failed to open connection to system message bus: %s\n",
 			error.message);
 		dbus_error_free(&error);
 		return FALSE;
 	}
+	
+	dbus_bus_request_name(connection, BLUEZ_DBUS_NAME, 
+			      DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT, 
+			      &error);
+	
+	if (dbus_error_is_set (&error)) {
+		syslog(LOG_ERR,"D-Bus Error: %s\n", error.message);
+		dbus_error_free (&error);
+		return FALSE;
+	}
+	
+	if (!dbus_connection_register_object_path(connection, BLUEZ_DBUS_HCI_PATH, &hci_vtable, NULL)) {
+		syslog(LOG_ERR,"DBUS failed to register %s object", BLUEZ_DBUS_HCI_PATH);
+		return FALSE;
+	}
 
 	dbus_connection_set_watch_functions(connection,
 		add_watch, remove_watch, watch_toggled, NULL, NULL);
-
 	return TRUE;
 }
+
+/*****************************************************************
+ *  
+ *  Section reserved to D-Bus message handlers
+ *  
+ *****************************************************************/
+
+static DBusHandlerResult hci_msg_func(DBusConnection *conn, 
+				      DBusMessage *msg, void *data)
+{
+	const service_table_t *ptr_handlers =  hci_services;
+	DBusMessage *reply = NULL;
+	uint16_t type;
+	const char *iface;
+	const char *method;
+	const char *signature;
+	EXEC_RESULT result = RESULT_UNKNOWN_METHOD;
+	DBusHandlerResult ret = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;;
+	
+	type = dbus_message_get_type(msg);
+	iface = dbus_message_get_interface(msg);
+	method = dbus_message_get_member (msg);
+	signature = dbus_message_get_signature(msg);
+	
+	syslog(LOG_INFO, "%s - type:%d, iface:%s, method:%s, sig:%s",__PRETTY_FUNCTION__, type, iface, method, signature);
+	
+	if ((type == DBUS_MESSAGE_TYPE_METHOD_CALL) && 
+		(strcmp(iface, BLUEZ_DBUS_HCI_INTERFACE) == 0) && 
+		(method != NULL)) {
+		
+		for (; ptr_handlers->name; ptr_handlers++) {
+			if (strcmp(method, ptr_handlers->name) == 0) {
+				/* resetting unknown method. It's possible handle method overload */
+				result = RESULT_WRONG_SIG; 
+				if (strcmp(ptr_handlers->signature, signature) == 0) {
+					reply = (ptr_handlers->handler_func)(msg, data);
+					result = 0; /* resetting wrong signature*/
+					break;
+				} 
+				
+			}
+		}
+		
+		if (result) {
+			reply = create_error_reply_message(msg, BLUEZ_DBUS_HCI_INTERFACE, result);
+		}
+		
+		/* send an error or the success reply*/
+		if (reply) {
+			if (!dbus_connection_send (conn, reply, NULL)) { 
+				syslog(LOG_ERR, "%s line:%d Can't send reply message!", \
+					__PRETTY_FUNCTION__, __LINE__) ;
+			}
+			dbus_message_unref (reply);
+		}
+		
+		ret = DBUS_HANDLER_RESULT_HANDLED;
+	}
+	return ret;
+}
+
+static DBusMessage* handle_periodic_inq_req(DBusMessage *msg, void *data) 
+{
+	syslog(LOG_INFO, "%s", __PRETTY_FUNCTION__);
+	return NULL;
+}
+
+static DBusMessage* handle_cancel_periodic_inq_req(DBusMessage *msg, void *data)
+{
+	syslog(LOG_INFO, "%s", __PRETTY_FUNCTION__);
+	return NULL;
+}
+
+static DBusMessage* handle_inq_req(DBusMessage *msg, void *data)
+{
+	syslog(LOG_INFO, "%s", __PRETTY_FUNCTION__);
+	return NULL;
+}
+
+static DBusMessage* handle_role_switch_req(DBusMessage *msg, void *data)
+{
+	syslog(LOG_INFO, "%s", __PRETTY_FUNCTION__);
+	return NULL;
+}
--- bluez-utils-cvs.orig/hcid/common.c	1969-12-31 21:00:00.000000000 -0300
+++ bluez-utils-cvs-hcid-dbus/hcid/common.c	2005-09-16 11:33:26.074677136 -0300
@@ -0,0 +1,80 @@
+/*
+ *
+ *  BlueZ - Bluetooth protocol stack for Linux
+ *
+ *  Copyright (C) 2000-2001  Qualcomm Incorporated
+ *  Copyright (C) 2002-2003  Maxim Krasnyansky <maxk@qualcomm.com>
+ *  Copyright (C) 2002-2005  Marcel Holtmann <marcel@holtmann.org>
+ *
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License version 2 as
+ *  published by the Free Software Foundation;
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+ *  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
+ *  CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES 
+ *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
+ *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
+ *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ *  ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, 
+ *  COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS 
+ *  SOFTWARE IS DISCLAIMED.
+ *
+ *
+ *  $Id: common.c ,v 0.1 2005/09/16 08:00:00 holtmann Exp $
+ */
+ 
+#include "dbus-internal.h"
+
+DBusMessage *create_error_reply_message(DBusMessage *msg, const char *iface, EXEC_RESULT result) 
+{
+	DBusMessage *reply = NULL;
+	const char *error_msg = NULL;
+	char perror_name[128];
+	
+	switch(result) {
+		case RESULT_FAILED:
+			sprintf(perror_name, "%s%s",iface, ERR_FAILED);
+			error_msg = ERR_MSG_FAILED;
+			break;
+		case RESULT_BUSY:
+			sprintf(perror_name, "%s%s",iface, ERR_BUSY);
+			error_msg = ERR_MSG_DEV_BUSY;
+			break;
+		case RESULT_WRONG_PARAM:
+			sprintf(perror_name, "%s%s",iface, ERR_WRONG_PARAM);
+			error_msg = ERR_MSG_INVALID_PARAMETERS;
+			break;
+		case RESULT_ADAPTER_NOT_FOUND:
+			sprintf(perror_name, "%s%s",iface, ERR_NO_DEV_FOUND);
+			error_msg = ERR_MSG_NO_DEV_FOUND;
+			break;
+		case RESULT_WRONG_SIG:
+			sprintf(perror_name, "%s%s",iface, ERR_WRONG_SIGNATURE);
+			error_msg = ERR_MSG_WRONG_SIG;
+			break;
+		case RESULT_UNKNOWN_METHOD:
+			sprintf(perror_name, "%s%s",iface, ERR_UNKNOWN_METHOD);
+			error_msg  = ERR_MSG_METHOD_NOT_FOUND;
+			break;
+		case RESULT_SVC_NOT_FOUND:
+			sprintf(perror_name, "%s%s",iface, ERR_REC_NOT_FOUND);
+			error_msg = ERR_MSG_NO_SVC_FOUND;
+			break;	
+		default:
+			error_msg = NULL;
+			break;
+	/* RESULT_SUCCESS: ignore, it must be created by the caller
+			break;
+	*/		
+	}
+	
+	syslog(LOG_INFO, "%s - error:%s", __PRETTY_FUNCTION__, perror_name);
+	reply = dbus_message_new_error(msg, (const char*)perror_name, error_msg);
+	
+	return reply;
+}

             reply	other threads:[~2005-09-16 14:42 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-16 14:42 Claudio Takahasi [this message]
2005-09-19 14:31 ` [Bluez-devel] Re: hcid D-Bus patch (RSSI question) Claudio Takahasi
2005-09-20 11:39   ` Marcel Holtmann
2005-09-21  8:51 ` [Bluez-devel] hcid D-Bus patch Marcel Holtmann
2005-09-21 12:49   ` Claudio Takahasi
2005-09-21 13:19     ` P. Durante
2005-09-21 13:52       ` Claudio Takahasi
2005-09-22 14:13         ` Marcel Holtmann
2005-09-22 17:12           ` Claudio Takahasi
2005-09-22 14:17     ` Marcel Holtmann
2005-09-22 16:51       ` Claudio Takahasi
2005-09-22 17:54         ` Marcel Holtmann
2005-09-23 14:28           ` Claudio Takahasi
2005-09-23 17:15             ` Claudio Takahasi
2005-09-25 10:33               ` Marcel Holtmann
2005-09-26 11:59                 ` Claudio Takahasi
2005-09-28  8:45                   ` Marcel Holtmann
2005-09-28  9:08                     ` [Bluez-devel] help: HIDD and HID2HCI Charles Majola
2005-09-28 19:19                     ` [Bluez-devel] hcid D-Bus patch Claudio Takahasi
2005-09-28 19:53                       ` Eduardo Rocha
2005-09-29 16:25                       ` Marcel Holtmann
2005-09-29 19:26                         ` Claudio Takahasi
2005-09-30  8:37                           ` Marcel Holtmann
2005-09-30 14:52                             ` Claudio Takahasi
2005-09-30 15:03                               ` Marcel Holtmann
2005-10-02 11:52                                 ` P. Durante
2005-10-03 13:57                                   ` Marcel Holtmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e1effdeb05091607426f824afa@mail.gmail.com \
    --to=cktakahasi@gmail.com \
    --cc=bluez-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.