Mercurial > audlegacy-plugins
annotate src/bluetooth/agent.c @ 2846:3d7f01edb388
updated pairing agent - added bonding signals
author | Paula Stanciu <paula.stanciu@gmail.com> |
---|---|
date | Sun, 27 Jul 2008 22:15:41 +0300 |
parents | d0cbf303869b |
children | 671cdfc2d62d |
rev | line source |
---|---|
2839 | 1 /* |
2 * Audacious Bluetooth headset suport plugin | |
3 * | |
4 * Copyright (c) 2008 Paula Stanciu <paula.stanciu@gmail.com> | |
5 * Copyright (C) 2005-2008 Marcel Holtmann <marcel@holtmann.org> | |
6 * Copyright (C) 2006-2007 Bastien Nocera <hadess@hadess.net> | |
7 * | |
8 * | |
9 * This program is free software; you can redistribute it and/or modify | |
10 * it under the terms of the GNU General Public License as published by | |
11 * the Free Software Foundation; either version 2 of the License, or | |
12 * (at your option) any later version. | |
13 * | |
14 * This program is distributed in the hope that it will be useful, | |
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 * GNU General Public License for more details. | |
18 * | |
19 * You should have received a copy of the GNU General Public License | |
20 * along with this program; if not, write to the Free Software | |
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
22 * | |
23 */ | |
24 | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
25 #include <glib/gprintf.h> |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
26 #include "bluetooth.h" |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
27 #include "gui.h" |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
28 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
29 #define PASSKEY_AGENT_PATH "/org/bluez/audacious_passkey" |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
30 #define AUTH_AGENT_PATH "/org/bluez/audacious_auth" |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
31 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
32 static GtkWidget *agent_window = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
33 static GtkWidget *window_box = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
34 static GtkWidget *top_box = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
35 static GtkWidget *middle_box = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
36 static GtkWidget *bottom_box = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
37 static GtkWidget *pair_label = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
38 static GtkWidget *device_label = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
39 static GtkWidget *passkey_entry = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
40 static GtkWidget *ok_button = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
41 static GtkWidget *cancel_button = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
42 static char* passkey; |
2846
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
43 static GList *adapter_list = NULL; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
44 DBusGProxy *pair_obj = NULL; |
2846
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
45 static gint bonding_finish=0; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
46 static DBusGConnection *connection; |
2846
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
47 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
48 struct adapter_data { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
49 char *path; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
50 int attached; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
51 char *old_mode; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
52 }; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
53 |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
54 void ok_button_call() |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
55 { |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
56 passkey = gtk_entry_get_text(GTK_ENTRY(passkey_entry)); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
57 printf("Key entered : %s\n",passkey); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
58 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
59 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
60 void cancel_button_call() |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
61 { |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
62 gtk_widget_destroy (agent_window); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
63 agent_window = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
64 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
65 |
2840
50507763fd31
working basic pairing / bounding
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2839
diff
changeset
|
66 void gui_agent() |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
67 { |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
68 if (!agent_window) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
69 { |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
70 agent_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
71 g_signal_connect (agent_window, "destroy",G_CALLBACK (gtk_widget_destroyed), &agent_window); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
72 window_box = gtk_vbox_new(FALSE,2); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
73 top_box = gtk_vbox_new(FALSE,2); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
74 middle_box = gtk_hbox_new(FALSE,2); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
75 bottom_box = gtk_hbox_new(FALSE,2); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
76 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
77 gtk_container_add(GTK_CONTAINER(agent_window),window_box); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
78 gtk_container_add(GTK_CONTAINER(window_box),top_box); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
79 gtk_container_set_border_width (GTK_CONTAINER(middle_box), 20); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
80 gtk_container_add(GTK_CONTAINER(window_box),middle_box); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
81 gtk_container_add(GTK_CONTAINER(window_box),bottom_box); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
82 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
83 pair_label = gtk_label_new_with_mnemonic("Enter passkey for pairing"); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
84 device_label = gtk_label_new_with_mnemonic(((DeviceData*)(selected_dev->data))->name); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
85 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
86 gtk_container_add(GTK_CONTAINER(top_box),pair_label); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
87 gtk_container_add(GTK_CONTAINER(top_box),device_label); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
88 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
89 passkey_entry = gtk_entry_new(); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
90 gtk_container_add(GTK_CONTAINER(middle_box),passkey_entry); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
91 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
92 ok_button = gtk_button_new_with_mnemonic("OK"); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
93 cancel_button = gtk_button_new_with_mnemonic("Cancel"); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
94 gtk_container_add(GTK_CONTAINER(bottom_box),ok_button); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
95 g_signal_connect(ok_button,"clicked",G_CALLBACK(ok_button_call),NULL); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
96 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
97 gtk_container_add(GTK_CONTAINER(bottom_box),cancel_button); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
98 g_signal_connect(cancel_button,"clicked",G_CALLBACK (cancel_button_call),NULL); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
99 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
100 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
101 gtk_window_set_title(GTK_WINDOW(agent_window),"Pairing passkey request"); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
102 if (!GTK_WIDGET_VISIBLE (agent_window)) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
103 gtk_widget_show_all (agent_window); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
104 else |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
105 { |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
106 gtk_widget_destroy (agent_window); |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
107 agent_window = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
108 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
109 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
110 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
111 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
112 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
113 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
114 static DBusGConnection *connection; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
115 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
116 static int volatile registered_passkey = 0; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
117 static int volatile registered_auth = 0; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
118 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
119 static gboolean auto_authorize = FALSE; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
120 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
121 typedef enum { |
2841 | 122 AGENT_ERROR_REJECT |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
123 } AgentError; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
124 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
125 #define AGENT_ERROR (agent_error_quark()) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
126 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
127 #define AGENT_ERROR_TYPE (agent_error_get_type()) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
128 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
129 static GQuark agent_error_quark(void) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
130 { |
2841 | 131 static GQuark quark = 0; |
132 if (!quark) | |
133 quark = g_quark_from_static_string("agent"); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
134 |
2841 | 135 return quark; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
136 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
137 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
138 #define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
139 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
140 static GType agent_error_get_type(void) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
141 { |
2841 | 142 static GType etype = 0; |
143 if (etype == 0) { | |
144 static const GEnumValue values[] = { | |
145 ENUM_ENTRY(AGENT_ERROR_REJECT, "Rejected"), | |
146 { 0, 0, 0 } | |
147 }; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
148 |
2841 | 149 etype = g_enum_register_static("agent", values); |
150 } | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
151 |
2841 | 152 return etype; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
153 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
154 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
155 static GList *input_list = NULL; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
156 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
157 struct input_data { |
2841 | 158 char *path; |
159 char *address; | |
160 char *service; | |
161 char *uuid; | |
162 DBusGMethodInvocation *context; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
163 }; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
164 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
165 static gint input_compare(gconstpointer a, gconstpointer b) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
166 { |
2841 | 167 struct input_data *a_data = (struct input_data *) a; |
168 struct input_data *b_data = (struct input_data *) b; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
169 |
2841 | 170 return g_ascii_strcasecmp(a_data->address, b_data->address); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
171 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
172 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
173 static void input_free(struct input_data *input) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
174 { |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
175 |
2841 | 176 input_list = g_list_remove(input_list, input); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
177 |
2841 | 178 g_free(input->uuid); |
179 g_free(input->service); | |
180 g_free(input->address); | |
181 g_free(input->path); | |
182 g_free(input); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
183 |
2841 | 184 // if (g_list_length(input_list) == 0) |
185 // disable_blinking(); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
186 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
187 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
188 static void passkey_callback(gint response, gpointer user_data) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
189 { |
2841 | 190 struct input_data *input = user_data; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
191 |
2841 | 192 if (response == GTK_RESPONSE_ACCEPT) { |
193 const char *passkey; | |
194 /*!!!!!!!!! hardcoded passkey !!!!!!!!!!!!! to modify*/ | |
195 passkey ="0000"; | |
196 dbus_g_method_return(input->context, passkey); | |
197 } else { | |
198 GError *error; | |
199 error = g_error_new(AGENT_ERROR, AGENT_ERROR_REJECT, | |
200 "Pairing request rejected"); | |
201 dbus_g_method_return_error(input->context, error); | |
202 } | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
203 |
2841 | 204 input_free(input); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
205 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
206 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
207 static void confirm_callback(gint response, gpointer user_data) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
208 { |
2841 | 209 struct input_data *input = user_data; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
210 |
2841 | 211 if (response != GTK_RESPONSE_YES) { |
212 GError *error; | |
213 error = g_error_new(AGENT_ERROR, AGENT_ERROR_REJECT, | |
214 "Confirmation request rejected"); | |
215 dbus_g_method_return_error(input->context, error); | |
216 } else | |
217 dbus_g_method_return(input->context); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
218 |
2841 | 219 input_free(input); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
220 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
221 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
222 static void set_trusted(struct input_data *input) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
223 { |
2841 | 224 DBusGProxy *object; |
225 gboolean active; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
226 |
2841 | 227 //aways set trusted -- we dont have yet an active button - |
228 //maybe I'll add one | |
229 object = dbus_g_proxy_new_for_name(connection, "org.bluez", | |
230 input->path, "org.bluez.Adapter"); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
231 |
2841 | 232 dbus_g_proxy_call(object, "SetTrusted", NULL, |
233 G_TYPE_STRING, input->address, G_TYPE_INVALID, | |
234 G_TYPE_INVALID); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
235 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
236 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
237 static void auth_callback(gint response, gpointer user_data) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
238 { |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
239 |
2841 | 240 /* I must call this function with the alway allow option and |
241 * don't boder to aks the user - to many questions | |
242 */ | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
243 struct input_data *input = user_data; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
244 |
2841 | 245 if (response == GTK_RESPONSE_YES) { |
246 set_trusted(input); | |
247 dbus_g_method_return(input->context); | |
248 } else { | |
249 GError *error; | |
250 error = g_error_new(AGENT_ERROR, AGENT_ERROR_REJECT, | |
251 "Authorization request rejected"); | |
252 dbus_g_method_return_error(input->context, error); | |
253 } | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
254 |
2841 | 255 input_free(input); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
256 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
257 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
258 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
259 static void passkey_dialog(const char *path, const char *address, |
2841 | 260 const gchar *device, DBusGMethodInvocation *context) |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
261 { |
2841 | 262 struct input_data *input; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
263 |
2841 | 264 input = g_try_malloc0(sizeof(*input)); |
265 if (!input) | |
266 return; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
267 |
2841 | 268 input->path = g_strdup(path); |
269 input->address = g_strdup(address); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
270 |
2841 | 271 input->context = context; |
272 | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
273 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
274 |
2841 | 275 /* |
276 g_signal_connect(G_OBJECT(entry), "changed", | |
277 G_CALLBACK(changed_callback), input); | |
278 | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
279 |
2841 | 280 g_signal_connect(G_OBJECT(button), "toggled", |
281 G_CALLBACK(toggled_callback), input); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
282 |
2841 | 283 gtk_container_add(GTK_CONTAINER(vbox), button); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
284 |
2841 | 285 input_list = g_list_append(input_list, input); |
286 | |
287 g_signal_connect(G_OBJECT(dialog), "response", | |
288 G_CALLBACK(passkey_callback), input); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
289 |
2841 | 290 enable_blinking(); |
291 */ | |
292 printf("passkey callback\n"); | |
293 passkey_callback(GTK_RESPONSE_ACCEPT,input); | |
2846
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
294 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
295 |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
296 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
297 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
298 static void confirm_dialog(const char *path, const char *address, |
2841 | 299 const char *value, const gchar *device, |
300 DBusGMethodInvocation *context) | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
301 { |
2841 | 302 struct input_data *input; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
303 |
2841 | 304 input = g_try_malloc0(sizeof(*input)); |
305 if (!input) | |
306 return; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
307 |
2841 | 308 input->path = g_strdup(path); |
309 input->address = g_strdup(address); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
310 |
2841 | 311 input->context = context; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
312 |
2846
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
313 printf("confirm dialog\n"); |
2841 | 314 // g_signal_connect(G_OBJECT(dialog), "response", |
315 // G_CALLBACK(confirm_callback), input); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
316 |
2841 | 317 //enable_blinking(); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
318 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
319 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
320 static void auth_dialog(const char *path, const char *address, |
2841 | 321 const char *service, const char *uuid, const gchar *device, |
322 const gchar *profile, DBusGMethodInvocation *context) | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
323 { |
2841 | 324 struct input_data *input; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
325 |
2841 | 326 input = g_try_malloc0(sizeof(*input)); |
327 if (!input) | |
328 return; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
329 |
2841 | 330 input->path = g_strdup(path); |
331 input->address = g_strdup(address); | |
332 input->service = g_strdup(service); | |
333 input->uuid = g_strdup(uuid); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
334 |
2841 | 335 input->context = context; |
336 | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
337 |
2841 | 338 /* translators: Whether to grant access to a particular service |
339 * to the device mentioned */ | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
340 |
2841 | 341 // g_signal_connect(G_OBJECT(dialog), "response", |
342 // G_CALLBACK(auth_callback), input); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
343 |
2841 | 344 //enable_blinking(); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
345 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
346 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
347 typedef struct { |
2841 | 348 GObject parent; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
349 } PasskeyAgent; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
350 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
351 typedef struct { |
2841 | 352 GObjectClass parent; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
353 } PasskeyAgentClass; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
354 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
355 static GObjectClass *passkey_agent_parent; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
356 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
357 G_DEFINE_TYPE(PasskeyAgent, passkey_agent, G_TYPE_OBJECT) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
358 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
359 #define PASSKEY_AGENT_OBJECT_TYPE (passkey_agent_get_type()) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
360 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
361 #define PASSKEY_AGENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ |
2841 | 362 PASSKEY_AGENT_OBJECT_TYPE, PasskeyAgent)) |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
363 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
364 static void passkey_agent_finalize(GObject *obj) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
365 { |
2841 | 366 passkey_agent_parent->finalize(obj); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
367 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
368 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
369 static void passkey_agent_init(PasskeyAgent *obj) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
370 { |
2841 | 371 g_printf("passkeyagent init\n"); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
372 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
373 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
374 static void passkey_agent_class_init(PasskeyAgentClass *klass) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
375 { |
2841 | 376 GObjectClass *gobject_class; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
377 |
2841 | 378 passkey_agent_parent = g_type_class_peek_parent(klass); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
379 |
2841 | 380 gobject_class = G_OBJECT_CLASS(klass); |
381 gobject_class->finalize = passkey_agent_finalize; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
382 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
383 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
384 static PasskeyAgent *passkey_agent_new(const char *path) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
385 { |
2841 | 386 PasskeyAgent *agent; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
387 |
2841 | 388 agent = g_object_new(PASSKEY_AGENT_OBJECT_TYPE, NULL); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
389 |
2841 | 390 dbus_g_connection_register_g_object(connection, path, G_OBJECT(agent)); |
2840
50507763fd31
working basic pairing / bounding
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2839
diff
changeset
|
391 g_printf("new passkey agent \n"); |
2841 | 392 return agent; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
393 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
394 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
395 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
396 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
397 static gboolean passkey_agent_request(PasskeyAgent *agent, |
2841 | 398 const char *path, const char *address, |
399 DBusGMethodInvocation *context) | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
400 { |
2840
50507763fd31
working basic pairing / bounding
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2839
diff
changeset
|
401 printf("passkey_agent request\n"); |
50507763fd31
working basic pairing / bounding
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2839
diff
changeset
|
402 DBusGProxy *object; |
2841 | 403 const char *adapter = NULL, *name = NULL; |
404 gchar *device, *line; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
405 |
2841 | 406 object = dbus_g_proxy_new_for_name(connection, "org.bluez", |
407 path, "org.bluez.Adapter"); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
408 |
2841 | 409 dbus_g_proxy_call(object, "GetName", NULL, G_TYPE_INVALID, |
410 G_TYPE_STRING, &adapter, G_TYPE_INVALID); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
411 |
2841 | 412 dbus_g_proxy_call(object, "GetRemoteName", NULL, |
413 G_TYPE_STRING, address, G_TYPE_INVALID, | |
414 G_TYPE_STRING, &name, G_TYPE_INVALID); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
415 |
2841 | 416 if (name) { |
417 if (g_strrstr(name, address)) | |
418 device = g_strdup(name); | |
419 else | |
420 device = g_strdup_printf("%s (%s)", name, address); | |
421 } else | |
422 device = g_strdup(address); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
423 |
2841 | 424 passkey_dialog(path, address, device, context); |
425 /* translators: this is a popup telling you a particular device | |
426 * has asked for pairing */ | |
427 line = g_strdup_printf(_("Pairing request for '%s'"), device); | |
428 g_free(device); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
429 |
2841 | 430 /*show_notification(adapter ? adapter : _("Bluetooth device"), |
431 line, _("Enter passkey"), 0, | |
432 G_CALLBACK(notification_closed)); | |
433 */ | |
434 g_free(line); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
435 |
2841 | 436 return TRUE; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
437 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
438 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
439 static gboolean passkey_agent_confirm(PasskeyAgent *agent, |
2841 | 440 const char *path, const char *address, |
441 const char *value, DBusGMethodInvocation *context) | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
442 { |
2841 | 443 DBusGProxy *object; |
444 const char *adapter = NULL, *name = NULL; | |
445 gchar *device, *line; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
446 |
2841 | 447 object = dbus_g_proxy_new_for_name(connection, "org.bluez", |
448 path, "org.bluez.Adapter"); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
449 |
2841 | 450 dbus_g_proxy_call(object, "GetName", NULL, G_TYPE_INVALID, |
451 G_TYPE_STRING, &adapter, G_TYPE_INVALID); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
452 |
2841 | 453 dbus_g_proxy_call(object, "GetRemoteName", NULL, |
454 G_TYPE_STRING, address, G_TYPE_INVALID, | |
455 G_TYPE_STRING, &name, G_TYPE_INVALID); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
456 |
2841 | 457 if (name) { |
458 if (g_strrstr(name, address)) | |
459 device = g_strdup(name); | |
460 else | |
461 device = g_strdup_printf("%s (%s)", name, address); | |
462 } else | |
463 device = g_strdup(address); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
464 |
2841 | 465 confirm_dialog(path, address, value, device, context); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
466 |
2841 | 467 line = g_strdup_printf(_("Pairing request for '%s'"), device); |
468 g_free(device); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
469 |
2841 | 470 /*show_notification(adapter ? adapter : _("Bluetooth device"), |
471 line, _("Confirm pairing"), 0, | |
472 G_CALLBACK(notification_closed)); | |
473 */ | |
474 g_free (line); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
475 |
2841 | 476 return TRUE; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
477 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
478 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
479 static gboolean passkey_agent_cancel(PasskeyAgent *agent, |
2841 | 480 const char *path, const char *address, GError **error) |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
481 { |
2841 | 482 GList *list; |
483 GError *result; | |
484 struct input_data *input; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
485 |
2841 | 486 input = g_try_malloc0(sizeof(*input)); |
487 if (!input) | |
488 return FALSE; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
489 |
2841 | 490 input->path = g_strdup(path); |
491 input->address = g_strdup(address); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
492 |
2841 | 493 list = g_list_find_custom(input_list, input, input_compare); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
494 |
2841 | 495 g_free(input->address); |
496 g_free(input->path); | |
497 g_free(input); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
498 |
2841 | 499 if (!list || !list->data) |
500 return FALSE; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
501 |
2841 | 502 input = list->data; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
503 |
2841 | 504 //close_notification(); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
505 |
2841 | 506 result = g_error_new(AGENT_ERROR, AGENT_ERROR_REJECT, |
507 "Agent callback canceled"); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
508 |
2841 | 509 dbus_g_method_return_error(input->context, result); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
510 |
2841 | 511 input_free(input); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
512 |
2841 | 513 return TRUE; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
514 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
515 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
516 static gboolean passkey_agent_release(PasskeyAgent *agent, GError **error) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
517 { |
2841 | 518 registered_passkey = 0; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
519 |
2841 | 520 return TRUE; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
521 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
522 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
523 #include "passkey-agent-glue.h" |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
524 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
525 typedef struct { |
2841 | 526 GObject parent; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
527 } AuthAgent; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
528 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
529 typedef struct { |
2841 | 530 GObjectClass parent; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
531 } AuthAgentClass; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
532 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
533 static GObjectClass *auth_agent_parent; |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
534 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
535 G_DEFINE_TYPE(AuthAgent, auth_agent, G_TYPE_OBJECT) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
536 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
537 #define AUTH_AGENT_OBJECT_TYPE (auth_agent_get_type()) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
538 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
539 #define AUTH_AGENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ |
2841 | 540 AUTH_AGENT_OBJECT_TYPE, AuthAgent)) |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
541 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
542 static void auth_agent_finalize(GObject *obj) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
543 { |
2841 | 544 auth_agent_parent->finalize(obj); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
545 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
546 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
547 static void auth_agent_init(AuthAgent *obj) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
548 { |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
549 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
550 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
551 static void auth_agent_class_init(AuthAgentClass *klass) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
552 { |
2841 | 553 GObjectClass *gobject_class; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
554 |
2841 | 555 auth_agent_parent = g_type_class_peek_parent(klass); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
556 |
2841 | 557 gobject_class = G_OBJECT_CLASS(klass); |
558 gobject_class->finalize = auth_agent_finalize; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
559 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
560 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
561 static AuthAgent *auth_agent_new(const char *path) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
562 { |
2841 | 563 AuthAgent *agent; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
564 |
2841 | 565 agent = g_object_new(AUTH_AGENT_OBJECT_TYPE, NULL); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
566 |
2841 | 567 dbus_g_connection_register_g_object(connection, path, G_OBJECT(agent)); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
568 |
2841 | 569 return agent; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
570 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
571 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
572 static gboolean auth_agent_authorize(PasskeyAgent *agent, |
2841 | 573 const char *path, const char *address, const char *service, |
574 const char *uuid, DBusGMethodInvocation *context) | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
575 { |
2841 | 576 DBusGProxy *object; |
577 const char *adapter = NULL, *name = NULL; | |
578 gchar *device, *profile, *line; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
579 |
2841 | 580 if (auto_authorize == TRUE) { |
581 dbus_g_method_return(context); | |
582 return TRUE; | |
583 } | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
584 |
2841 | 585 object = dbus_g_proxy_new_for_name(connection, "org.bluez", |
586 path, "org.bluez.Adapter"); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
587 |
2841 | 588 dbus_g_proxy_call(object, "GetName", NULL, G_TYPE_INVALID, |
589 G_TYPE_STRING, &adapter, G_TYPE_INVALID); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
590 |
2841 | 591 dbus_g_proxy_call(object, "GetRemoteName", NULL, |
592 G_TYPE_STRING, address, G_TYPE_INVALID, | |
593 G_TYPE_STRING, &name, G_TYPE_INVALID); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
594 |
2841 | 595 object = dbus_g_proxy_new_for_name(connection, "org.bluez", |
596 service, "org.bluez.Service"); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
597 |
2841 | 598 dbus_g_proxy_call(object, "GetName", NULL, G_TYPE_INVALID, |
599 G_TYPE_STRING, &profile, G_TYPE_INVALID); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
600 |
2841 | 601 if (name) { |
602 if (g_strrstr(name, address)) | |
603 device = g_strdup(name); | |
604 else | |
605 device = g_strdup_printf("%s (%s)", name, address); | |
606 } else | |
607 device = g_strdup(address); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
608 |
2841 | 609 auth_dialog(path, address, service, uuid, device, profile, context); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
610 |
2841 | 611 line = g_strdup_printf(_("Authorization request for %s"), device); |
612 g_free(device); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
613 |
2841 | 614 /*show_notification(adapter ? adapter : _("Bluetooth device"), |
615 line, _("Check authorization"), 0, | |
616 G_CALLBACK(notification_closed)); | |
617 */ | |
618 g_free(line); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
619 |
2841 | 620 return TRUE; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
621 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
622 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
623 static gboolean auth_agent_cancel(PasskeyAgent *agent, |
2841 | 624 const char *path, const char *address, const char *service, |
625 const char *uuid, DBusGMethodInvocation *context) | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
626 { |
2841 | 627 GList *list; |
628 GError *result; | |
629 struct input_data *input; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
630 |
2841 | 631 input = g_try_malloc0(sizeof(*input)); |
632 if (!input) | |
633 return FALSE; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
634 |
2841 | 635 input->path = g_strdup(path); |
636 input->address = g_strdup(address); | |
637 input->service = g_strdup(service); | |
638 input->uuid = g_strdup(uuid); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
639 |
2841 | 640 list = g_list_find_custom(input_list, input, input_compare); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
641 |
2841 | 642 g_free(input->uuid); |
643 g_free(input->service); | |
644 g_free(input->address); | |
645 g_free(input->path); | |
646 g_free(input); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
647 |
2841 | 648 if (!list || !list->data) |
649 return FALSE; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
650 |
2841 | 651 input = list->data; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
652 |
2841 | 653 //close_notification(); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
654 |
2841 | 655 result = g_error_new(AGENT_ERROR, AGENT_ERROR_REJECT, |
656 "Agent callback canceled"); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
657 |
2841 | 658 dbus_g_method_return_error(input->context, result); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
659 |
2841 | 660 input_free(input); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
661 |
2841 | 662 return TRUE; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
663 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
664 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
665 static gboolean auth_agent_release(PasskeyAgent *agent, GError **error) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
666 { |
2841 | 667 registered_auth = 0; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
668 |
2841 | 669 return TRUE; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
670 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
671 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
672 #include "auth-agent-glue.h" |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
673 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
674 int register_agents(void) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
675 { |
2841 | 676 DBusGProxy *object; |
677 GError *error = NULL; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
678 |
2841 | 679 if (registered_passkey && registered_auth) |
680 return 0; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
681 |
2841 | 682 object = dbus_g_proxy_new_for_name(connection, "org.bluez", |
683 "/org/bluez", "org.bluez.Security"); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
684 |
2841 | 685 if (!registered_passkey) { |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
686 |
2841 | 687 dbus_g_proxy_call(object, "RegisterDefaultPasskeyAgent", |
688 &error, G_TYPE_STRING, PASSKEY_AGENT_PATH, | |
689 G_TYPE_INVALID, G_TYPE_INVALID); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
690 |
2841 | 691 if (error != NULL) { |
692 g_error_free(error); | |
693 return -1; | |
694 } | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
695 |
2841 | 696 registered_passkey = 1; |
697 } | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
698 |
2841 | 699 if (!registered_auth) { |
700 dbus_g_proxy_call(object, "RegisterDefaultAuthorizationAgent", | |
701 &error, G_TYPE_STRING, AUTH_AGENT_PATH, | |
702 G_TYPE_INVALID, G_TYPE_INVALID); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
703 |
2841 | 704 if (error != NULL) { |
705 g_error_free(error); | |
706 return -1; | |
707 } | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
708 |
2841 | 709 registered_auth = 1; |
710 } | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
711 |
2841 | 712 return 0; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
713 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
714 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
715 void unregister_agents(void) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
716 { |
2841 | 717 registered_passkey = 0; |
718 registered_auth = 0; | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
719 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
720 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
721 int setup_agents(DBusGConnection *conn) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
722 { |
2841 | 723 void *agent; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
724 |
2841 | 725 connection = dbus_g_connection_ref(conn); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
726 |
2841 | 727 dbus_g_object_type_install_info(PASSKEY_AGENT_OBJECT_TYPE, |
728 &dbus_glib_passkey_agent_object_info); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
729 |
2841 | 730 dbus_g_object_type_install_info(AUTH_AGENT_OBJECT_TYPE, |
731 &dbus_glib_auth_agent_object_info); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
732 |
2841 | 733 dbus_g_error_domain_register(AGENT_ERROR, "org.bluez.Error", |
734 AGENT_ERROR_TYPE); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
735 |
2841 | 736 agent = passkey_agent_new(PASSKEY_AGENT_PATH); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
737 |
2841 | 738 agent = auth_agent_new(AUTH_AGENT_PATH); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
739 |
2841 | 740 return 0; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
741 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
742 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
743 void cleanup_agents(void) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
744 { |
2841 | 745 unregister_agents(); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
746 |
2841 | 747 dbus_g_connection_unref(connection); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
748 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
749 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
750 void show_agents(void) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
751 { |
2841 | 752 printf("show_agents\n"); |
753 //close_notification(); | |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
754 |
2841 | 755 // g_list_foreach(input_list, show_dialog, NULL); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
756 |
2841 | 757 // disable_blinking(); |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
758 } |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
759 |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
760 void set_auto_authorize(gboolean value) |
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
761 { |
2841 | 762 auto_authorize = value; |
2838
22a2ffe86750
added passkey agent and basic pairing functionality
Paula Stanciu <paula.stanciu@gmail.com>
parents:
diff
changeset
|
763 } |
2846
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
764 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
765 static void bonding_created(DBusGProxy *object, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
766 const char *address, gpointer user_data) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
767 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
768 const char *adapter = NULL, *name = NULL; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
769 gchar *device, *text; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
770 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
771 dbus_g_proxy_call(object, "GetName", NULL, G_TYPE_INVALID, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
772 G_TYPE_STRING, &adapter, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
773 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
774 dbus_g_proxy_call(object, "GetRemoteName", NULL, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
775 G_TYPE_STRING, address, G_TYPE_INVALID, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
776 G_TYPE_STRING, &name, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
777 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
778 if (name) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
779 if (g_strrstr(name, address)) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
780 device = g_strdup(name); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
781 else |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
782 device = g_strdup_printf("%s (%s)", name, address); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
783 } else |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
784 device = g_strdup(address); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
785 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
786 text = g_strdup_printf(_("Created bonding with %s"), device); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
787 bonding_finish = 1; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
788 g_free(device); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
789 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
790 g_printf("%s\n",text); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
791 g_free(text); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
792 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
793 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
794 static void bonding_removed(DBusGProxy *object, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
795 const char *address, gpointer user_data) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
796 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
797 const char *adapter = NULL, *name = NULL; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
798 gchar *device, *text; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
799 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
800 dbus_g_proxy_call(object, "GetName", NULL, G_TYPE_INVALID, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
801 G_TYPE_STRING, &adapter, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
802 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
803 dbus_g_proxy_call(object, "GetRemoteName", NULL, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
804 G_TYPE_STRING, address, G_TYPE_INVALID, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
805 G_TYPE_STRING, &name, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
806 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
807 if (name) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
808 if (g_strrstr(name, address)) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
809 device = g_strdup(name); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
810 else |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
811 device = g_strdup_printf("%s (%s)", name, address); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
812 } else |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
813 device = g_strdup(address); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
814 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
815 text = g_strdup_printf(_("Removed bonding with %s"), device); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
816 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
817 g_free(device); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
818 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
819 // show_notification(adapter ? adapter : _("Bluetooth device"), |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
820 // text, NULL, 6000, NULL); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
821 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
822 g_free(text); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
823 bonding_finish =0; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
824 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
825 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
826 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
827 static void trust_added(DBusGProxy *object, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
828 const char *address, gpointer user_data) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
829 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
830 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
831 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
832 static void trust_removed(DBusGProxy *object, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
833 const char *address, gpointer user_data) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
834 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
835 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
836 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
837 static void set_new_mode(struct adapter_data *adapter, const char *mode) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
838 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
839 g_free(adapter->old_mode); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
840 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
841 adapter->old_mode = g_strdup(mode); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
842 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
843 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
844 static void mode_changed(DBusGProxy *object, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
845 const char *mode, gpointer user_data) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
846 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
847 struct adapter_data *adapter = (struct adapter_data *) user_data; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
848 const char *adapter_name = NULL; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
849 const char *text; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
850 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
851 if (g_str_equal(mode, "off") == TRUE) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
852 set_new_mode(adapter, mode); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
853 return; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
854 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
855 if (g_str_equal(adapter->old_mode, "off") |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
856 && g_str_equal(mode, "connectable")) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
857 set_new_mode(adapter, mode); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
858 return; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
859 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
860 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
861 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
862 if (g_str_equal(mode, "off") != FALSE) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
863 text = N_("Device has been switched off"); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
864 } else if (g_str_equal(mode, "connectable") != FALSE |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
865 && g_str_equal(adapter->old_mode, "discoverable") != FALSE) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
866 text = N_("Device has been made non-discoverable"); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
867 } else if (g_str_equal(mode, "connectable") != FALSE) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
868 text = N_("Device has been made connectable"); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
869 } else if (g_str_equal (mode, "discoverable") != FALSE) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
870 text = N_("Device has been made discoverable"); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
871 } else if (g_str_equal(mode, "limited") != FALSE) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
872 text = N_("Device has been made limited discoverable"); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
873 } else if (g_str_equal(mode, "pairing") != FALSE) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
874 text = N_("Device has been switched into pairing mode"); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
875 } else { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
876 set_new_mode(adapter, mode); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
877 return; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
878 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
879 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
880 dbus_g_proxy_call(object, "GetName", NULL, G_TYPE_INVALID, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
881 G_TYPE_STRING, &adapter_name, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
882 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
883 /*show_notification(adapter_name ? adapter_name : _("Bluetooth device"), |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
884 _(text), NULL, 3000, NULL); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
885 */ |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
886 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
887 set_new_mode(adapter, mode); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
888 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
889 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
890 static void adapter_free(gpointer data, gpointer user_data) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
891 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
892 struct adapter_data *adapter = data; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
893 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
894 adapter_list = g_list_remove(adapter_list, adapter); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
895 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
896 g_free(adapter->path); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
897 g_free(adapter->old_mode); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
898 g_free(adapter); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
899 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
900 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
901 static void adapter_disable(gpointer data, gpointer user_data) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
902 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
903 struct adapter_data *adapter = data; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
904 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
905 adapter->attached = 0; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
906 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
907 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
908 static gint adapter_compare(gconstpointer a, gconstpointer b) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
909 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
910 const struct adapter_data *adapter = a; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
911 const char *path = b; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
912 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
913 return g_ascii_strcasecmp(adapter->path, path); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
914 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
915 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
916 static void adapter_count(gpointer data, gpointer user_data) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
917 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
918 struct adapter_data *adapter = data; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
919 int *count = user_data; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
920 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
921 if (adapter->attached) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
922 (*count)++; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
923 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
924 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
925 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
926 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
927 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
928 void add_bonding(){ |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
929 DBusGProxy *object; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
930 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
931 object = dbus_g_proxy_new_for_name(bus, "org.bluez", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
932 "/org/bluez/passkey", "org.bluez.Adapter"); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
933 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
934 dbus_g_proxy_add_signal(object, "BondingCreated", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
935 G_TYPE_STRING, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
936 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
937 dbus_g_proxy_connect_signal(object, "BondingCreated", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
938 G_CALLBACK(bonding_created), NULL, NULL); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
939 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
940 dbus_g_proxy_add_signal(object, "BondingRemoved", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
941 G_TYPE_STRING, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
942 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
943 dbus_g_proxy_connect_signal(object, "BondingRemoved", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
944 G_CALLBACK(bonding_removed), NULL, NULL); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
945 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
946 static void add_adapter(const char *path) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
947 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
948 GList *list; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
949 DBusGProxy *object; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
950 struct adapter_data *adapter; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
951 const char *old_mode; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
952 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
953 list = g_list_find_custom(adapter_list, path, adapter_compare); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
954 if (list && list->data) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
955 struct adapter_data *adapter = list->data; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
956 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
957 adapter->attached = 1; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
958 return; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
959 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
960 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
961 adapter = g_try_malloc0(sizeof(*adapter)); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
962 if (!adapter) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
963 return; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
964 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
965 adapter->path = g_strdup(path); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
966 adapter->attached = 1; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
967 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
968 adapter_list = g_list_append(adapter_list, adapter); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
969 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
970 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
971 object = dbus_g_proxy_new_for_name(bus, "org.bluez", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
972 path, "org.bluez.Adapter"); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
973 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
974 dbus_g_proxy_add_signal(object, "ModeChanged", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
975 G_TYPE_STRING, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
976 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
977 dbus_g_proxy_connect_signal(object, "ModeChanged", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
978 G_CALLBACK(mode_changed), adapter, NULL); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
979 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
980 dbus_g_proxy_add_signal(object, "BondingCreated", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
981 G_TYPE_STRING, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
982 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
983 dbus_g_proxy_connect_signal(object, "BondingCreated", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
984 G_CALLBACK(bonding_created), NULL, NULL); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
985 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
986 dbus_g_proxy_add_signal(object, "BondingRemoved", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
987 G_TYPE_STRING, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
988 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
989 dbus_g_proxy_connect_signal(object, "BondingRemoved", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
990 G_CALLBACK(bonding_removed), NULL, NULL); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
991 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
992 dbus_g_proxy_add_signal(object, "TrustAdded", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
993 G_TYPE_STRING, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
994 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
995 dbus_g_proxy_connect_signal(object, "TrustAdded", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
996 G_CALLBACK(trust_added), NULL, NULL); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
997 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
998 dbus_g_proxy_add_signal(object, "TrustRemoved", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
999 G_TYPE_STRING, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1000 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1001 dbus_g_proxy_connect_signal(object, "TrustRemoved", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1002 G_CALLBACK(trust_removed), NULL, NULL); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1003 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1004 old_mode = NULL; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1005 dbus_g_proxy_call(object, "GetMode", NULL, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1006 G_TYPE_INVALID, G_TYPE_STRING, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1007 &old_mode, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1008 if (old_mode != NULL) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1009 set_new_mode(adapter, old_mode); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1010 register_agents(); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1011 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1012 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1013 static void adapter_added(DBusGProxy *object, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1014 const char *path, gpointer user_data) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1015 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1016 printf("adapter added\n"); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1017 register_agents(); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1018 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1019 add_adapter(path); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1020 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1021 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1022 static void adapter_removed(DBusGProxy *object, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1023 const char *path, gpointer user_data) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1024 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1025 GList *list; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1026 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1027 list = g_list_find_custom(adapter_list, path, adapter_compare); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1028 if (list && list->data) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1029 struct adapter_data *adapter = list->data; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1030 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1031 adapter->attached = 0; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1032 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1033 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1034 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1035 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1036 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1037 static int setup_manager(void) |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1038 { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1039 DBusGProxy *object; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1040 GError *error = NULL; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1041 const gchar **array = NULL; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1042 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1043 object = dbus_g_proxy_new_for_name(bus, "org.bluez", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1044 "/org/bluez", "org.bluez.Manager"); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1045 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1046 dbus_g_proxy_add_signal(object, "AdapterAdded", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1047 G_TYPE_STRING, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1048 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1049 dbus_g_proxy_connect_signal(object, "AdapterAdded", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1050 G_CALLBACK(adapter_added), NULL, NULL); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1051 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1052 dbus_g_proxy_add_signal(object, "AdapterRemoved", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1053 G_TYPE_STRING, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1054 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1055 dbus_g_proxy_connect_signal(object, "AdapterRemoved", |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1056 G_CALLBACK(adapter_removed), NULL, NULL); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1057 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1058 dbus_g_proxy_call(object, "ListAdapters", &error, |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1059 G_TYPE_INVALID, G_TYPE_STRV, &array, G_TYPE_INVALID); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1060 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1061 if (error == NULL) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1062 while (*array) { |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1063 printf("add adapter\n"); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1064 add_adapter(*array); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1065 array++; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1066 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1067 } else |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1068 g_error_free(error); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1069 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1070 return 0; |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1071 } |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1072 |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1073 |
2840
50507763fd31
working basic pairing / bounding
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2839
diff
changeset
|
1074 void run_agents() |
50507763fd31
working basic pairing / bounding
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2839
diff
changeset
|
1075 { |
50507763fd31
working basic pairing / bounding
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2839
diff
changeset
|
1076 setup_agents(bus); |
2846
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1077 //to add the bounding signals |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1078 // register_agents(); |
3d7f01edb388
updated pairing agent - added bonding signals
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2845
diff
changeset
|
1079 setup_manager(); |
2841 | 1080 |
2840
50507763fd31
working basic pairing / bounding
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2839
diff
changeset
|
1081 } |
50507763fd31
working basic pairing / bounding
Paula Stanciu <paula.stanciu@gmail.com>
parents:
2839
diff
changeset
|
1082 |