Merge lp:~sforshee/powerd/remove-dbus-pid-arg into lp:powerd

Proposed by Seth Forshee
Status: Merged
Approved by: Matt Fischer
Approved revision: 68
Merged at revision: 60
Proposed branch: lp:~sforshee/powerd/remove-dbus-pid-arg
Merge into: lp:powerd
Diff against target: 543 lines (+69/-119)
7 files modified
cli/powerd-cli.c (+43/-80)
data/com.canonical.powerd.xml (+2/-4)
src/display-request.c (+10/-13)
src/display.c (+1/-1)
src/power-request.c (+9/-12)
src/powerd-internal.h (+4/-7)
src/powerd.cpp (+0/-2)
To merge this branch: bzr merge lp:~sforshee/powerd/remove-dbus-pid-arg
Reviewer Review Type Date Requested Status
Matt Fischer (community) Approve
PS Jenkins bot continuous-integration Approve
Review via email: mp+172590@code.launchpad.net

Commit message

Remove pid arguments from dbus API

Description of the change

Remove pid arguments from dbus API

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Matt Fischer (mfisch) wrote :

looks good

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'cli/powerd-cli.c'
2--- cli/powerd-cli.c 2013-07-01 21:58:56 +0000
3+++ cli/powerd-cli.c 2013-07-02 15:12:55 +0000
4@@ -43,11 +43,13 @@
5
6 GDBusProxy *powerd_proxy = NULL;
7 char test_dbusname[128] = "";
8-pid_t mypid;
9+
10+/* For tests */
11+GDBusConnection *powerd_cli_bus;
12+const char *powerd_cli_bus_name;
13
14 struct PublicSysRequest {
15 const gchar *owner;
16- pid_t pid;
17 int state;
18 };
19
20@@ -55,14 +57,11 @@
21 const gchar *owner;
22 enum powerd_display_state state;
23 enum powerd_display_brightness brightness;
24- pid_t pid;
25 guint32 flags;
26 };
27
28 static GMainLoop *main_loop = NULL;
29 static powerd_cookie_t main_cookie;
30-static gboolean checkForPid(pid_t pid, int count, GArray *requests,
31- gboolean isSys);
32 static gboolean checkForDbusName(const char *dbusname, int count,
33 GArray *requests, gboolean isSys);
34 static void sig_handler(int signum);
35@@ -112,7 +111,7 @@
36
37 ret = g_dbus_proxy_call_sync(powerd_proxy,
38 "requestSysState",
39- g_variant_new("(ii)", state, mypid),
40+ g_variant_new("(i)", state),
41 G_DBUS_CALL_FLAGS_NONE,
42 -1,
43 NULL,
44@@ -152,8 +151,7 @@
45
46 ret = g_dbus_proxy_call_sync(powerd_proxy,
47 "requestDisplayState",
48- g_variant_new("(iiiu)", pdr.state, pdr.brightness, pdr.pid,
49- pdr.flags),
50+ g_variant_new("(iiu)", pdr.state, pdr.brightness, pdr.flags),
51 G_DBUS_CALL_FLAGS_NONE,
52 -1,
53 NULL,
54@@ -229,14 +227,12 @@
55 g_error_free(error);
56 }
57 else {
58- g_variant_get(ret, "(a(sii))", &iter);
59+ g_variant_get(ret, "(a(si))", &iter);
60 g_message("Current Sys Requests:");
61 while ((item = g_variant_iter_next_value (iter))) {
62 g_variant_get_child (item, 0, "s", &psr.owner);
63- g_variant_get_child (item, 1, "i", &psr.pid);
64- g_variant_get_child (item, 2, "i", &psr.state);
65- g_message(" Owner: %s, Pid: %d, State: %d", psr.owner,
66- psr.pid, psr.state);
67+ g_variant_get_child (item, 1, "i", &psr.state);
68+ g_message(" Owner: %s, State: %d", psr.owner, psr.state);
69 g_array_append_val(retarray, psr);
70 g_variant_unref(item);
71 }
72@@ -269,17 +265,15 @@
73 g_error_free(error);
74 }
75 else {
76- g_variant_get(ret, "(a(siiiu))", &iter);
77+ g_variant_get(ret, "(a(siiu))", &iter);
78 g_message("Current Display Requests:");
79 while ((item = g_variant_iter_next_value (iter))) {
80 g_variant_get_child(item, 0, "s", &pdr.owner);
81- g_variant_get_child(item, 1, "i", &pdr.pid);
82- g_variant_get_child(item, 2, "i", &pdr.state);
83- g_variant_get_child(item, 3, "i", &pdr.brightness);
84- g_variant_get_child(item, 4, "u", &pdr.flags);
85- g_message(" Owner: %s, Pid: %d, State: %d, Brightness: %d, "\
86- "Flags: %u", pdr.owner, pdr.pid, pdr.state, pdr.brightness,
87- pdr.flags);
88+ g_variant_get_child(item, 1, "i", &pdr.state);
89+ g_variant_get_child(item, 2, "i", &pdr.brightness);
90+ g_variant_get_child(item, 3, "u", &pdr.flags);
91+ g_message(" Owner: %s, State: %d, Brightness: %d, "\
92+ "Flags: %u", pdr.owner, pdr.state, pdr.brightness, pdr.flags);
93 g_array_append_val(retarray, pdr);
94 g_variant_unref(item);
95 }
96@@ -373,7 +367,7 @@
97 // Make sure clean-up didn't remove our request, note we don't pass
98 // the child PID here.
99 requests = listSysRequests();
100- do_test(checkForPid(mypid, 1, requests, TRUE));
101+ do_test(checkForDbusName(powerd_cli_bus_name, 1, requests, TRUE));
102 g_array_free(requests, TRUE);
103
104 /* Close pid */
105@@ -384,7 +378,7 @@
106 //cleanup
107 do_test(clearSysState(main_cookie) == TRUE);
108 requests = listSysRequests();
109- do_test(checkForPid(mypid, 0, requests, TRUE));
110+ do_test(checkForDbusName(powerd_cli_bus_name, 0, requests, TRUE));
111 g_array_free(requests, TRUE);
112 }
113
114@@ -461,7 +455,7 @@
115 // Make sure we have at least NUM_REQUESTS + 1
116 requests = listSysRequests();
117 do_test(requests->len >= TEST_NUM_SYS_REQUESTS+1);
118- do_test(checkForPid(mypid, TEST_NUM_SYS_REQUESTS+1, requests, TRUE));
119+ do_test(checkForDbusName(powerd_cli_bus_name, TEST_NUM_SYS_REQUESTS+1, requests, TRUE));
120 g_array_free(requests, TRUE);
121
122 for (i = 0; i < TEST_NUM_SYS_REQUESTS; i++)
123@@ -470,7 +464,7 @@
124 // We should still have at least 1 request here
125 requests = listSysRequests();
126 do_test(requests->len >= 1);
127- do_test(checkForPid(mypid, 1, requests, TRUE));
128+ do_test(checkForDbusName(powerd_cli_bus_name, 1, requests, TRUE));
129 g_array_free(requests, TRUE);
130
131 // Now try and freeing the same cookies again. They should all be
132@@ -484,7 +478,7 @@
133 // We should still have at least 1 request here
134 requests = listSysRequests();
135 do_test(requests->len >= 1);
136- do_test(checkForPid(mypid, 1, requests, TRUE));
137+ do_test(checkForDbusName(powerd_cli_bus_name, 1, requests, TRUE));
138 g_array_free(requests, TRUE);
139
140 //cannot request the suspend state, this will fail
141@@ -496,7 +490,7 @@
142
143 //cleanup
144 do_test(clearSysState(main_cookie) == TRUE);
145- do_test(checkForPid(mypid, 0, requests, TRUE));
146+ do_test(checkForDbusName(powerd_cli_bus_name, 0, requests, TRUE));
147 }
148
149 static void
150@@ -511,8 +505,6 @@
151 // Hold active state request as long we're running tests
152 requestSysState(POWERD_SYS_STATE_ACTIVE, &main_cookie);
153
154- pdr.pid = mypid;
155-
156 state = 0;
157 brightness = 0;
158 for (i = 0; i < TEST_NUM_DISP_REQUESTS; i++) {
159@@ -531,7 +523,7 @@
160 requests = listDisplayRequests();
161 do_test(requests->len >= TEST_NUM_DISP_REQUESTS);
162 // We should see our PID NUM_REQUESTS times
163- do_test(checkForPid(mypid, TEST_NUM_DISP_REQUESTS, requests, FALSE));
164+ do_test(checkForDbusName(powerd_cli_bus_name, TEST_NUM_DISP_REQUESTS, requests, FALSE));
165 g_array_free(requests, TRUE);
166
167 for (i = 0; i < TEST_NUM_DISP_REQUESTS; i++)
168@@ -539,7 +531,7 @@
169
170 requests = listDisplayRequests();
171 // We aren't holding anymore with this PID
172- do_test(checkForPid(mypid, 0, requests, FALSE));
173+ do_test(checkForDbusName(powerd_cli_bus_name, 0, requests, FALSE));
174 g_array_free(requests, TRUE);
175
176 // Now try and freeing the same cookies again. They should all be
177@@ -595,50 +587,10 @@
178
179 //cleanup
180 do_test(clearSysState(main_cookie) == TRUE);
181- do_test(checkForPid(mypid, 0, requests, TRUE));
182-}
183-
184-// Check that pid appears count times in a list of sys/disp requests
185-static gboolean
186-checkForPid(pid_t pid,
187- int count,
188- GArray *requests,
189- gboolean isSys)
190-{
191- int i;
192- int found = 0;
193- struct PublicSysRequest *psr;
194- struct PublicDispRequest *pdr;
195-
196- if (requests == NULL) {
197- g_warning("requests is invalid");
198- return FALSE;
199- }
200-
201- for (i=0; i<requests->len; i++)
202- {
203- if (isSys) {
204- psr = &g_array_index(requests, struct PublicSysRequest, i);
205- if (psr->pid == pid) {
206- found++;
207- }
208- }
209- else {
210- pdr = &g_array_index(requests, struct PublicDispRequest, i);
211- if (pdr->pid == pid) {
212- found++;
213- }
214- }
215- }
216-
217- if (found != count) {
218- g_warning("Expected %d requests from PID, found %d", count, found);
219- return FALSE;
220- }
221- return TRUE;
222-}
223-
224-// Check that pid appears count times in a list of sys/disp requests
225+ do_test(checkForDbusName(powerd_cli_bus_name, 0, requests, TRUE));
226+}
227+
228+// Check that dbus owner appears count times in a list of sys/disp requests
229 static gboolean
230 checkForDbusName(const char *dbusname,
231 int count,
232@@ -689,7 +641,6 @@
233 static gboolean
234 buildDisplayRequest(char **argv,
235 int argc,
236- pid_t pid,
237 struct PublicDispRequest *pdr)
238 {
239 int i;
240@@ -834,9 +785,6 @@
241 return -1;
242 }
243
244- mypid = getpid();
245- g_debug("Running as pid %d\n", mypid);
246-
247 if (!strcmp(argv[1],"list")) {
248 requests = listSysRequests();
249 g_array_free(requests, TRUE);
250@@ -862,7 +810,7 @@
251 usage(argv[0]);
252 return -1;
253 }
254- if (buildDisplayRequest(argv,argc,mypid,&pdr) == FALSE) {
255+ if (buildDisplayRequest(argv,argc,&pdr) == FALSE) {
256 usage(argv[0]);
257 return -1;
258 }
259@@ -902,9 +850,24 @@
260 }
261 }
262 else if (!strcmp(argv[1],"test")) {
263+ powerd_cli_bus = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, NULL);
264+ if (!powerd_cli_bus) {
265+ fprintf(stderr, "Could not connect to message bus\n");
266+ exit(-1);
267+ }
268+ powerd_cli_bus_name = g_dbus_connection_get_unique_name(powerd_cli_bus);
269+ if (!powerd_cli_bus_name) {
270+ fprintf(stderr, "Could not get unique bus name\n");
271+ exit(-1);
272+ }
273+
274 runDbusNameVanishTests(argv[0]);
275 runSysTests();
276 runDisplayTests();
277+
278+ g_object_unref(powerd_cli_bus);
279+ powerd_cli_bus = NULL;
280+ powerd_cli_bus_name = NULL;
281 }
282 else if (!strcmp(argv[1],"listen")) {
283 listenForSignals(powerd_proxy);
284
285=== modified file 'data/com.canonical.powerd.xml'
286--- data/com.canonical.powerd.xml 2013-06-13 20:18:18 +0000
287+++ data/com.canonical.powerd.xml 2013-07-02 15:12:55 +0000
288@@ -6,7 +6,6 @@
289 <!-- Functions -->
290 <method name="requestSysState">
291 <arg type="i" name="state" direction="in" />
292- <arg type="i" name="pid" direction="in" />
293 <arg type="s" name="cookie" direction="out" />
294 </method>
295
296@@ -17,7 +16,6 @@
297 <method name="requestDisplayState">
298 <arg type="i" name="state" direction="in" />
299 <arg type="i" name="brightness" direction="in" />
300- <arg type="i" name="pid" direction="in" />
301 <arg type="u" name="flags" direction="in" />
302 <arg type="s" name="cookie" direction="out" />
303 </method>
304@@ -35,11 +33,11 @@
305
306 <!-- for debug/testing -->
307 <method name="listSysRequests">
308- <arg type="a(sii)" name="requestList" direction="out" />
309+ <arg type="a(si)" name="requestList" direction="out" />
310 </method>
311
312 <method name="listDisplayRequests">
313- <arg type="a(siiiu)" name="requestList" direction="out" />
314+ <arg type="a(siiu)" name="requestList" direction="out" />
315 </method>
316
317 <!-- Signals -->
318
319=== modified file 'src/display-request.c'
320--- src/display-request.c 2013-07-01 21:23:32 +0000
321+++ src/display-request.c 2013-07-02 15:12:55 +0000
322@@ -145,7 +145,6 @@
323 __remove_request(&ireq->req);
324 __add_request(new_req);
325
326- /* Update all fields except the pid */
327 ireq->req.state = new_req->state;
328 ireq->req.brightness = new_req->brightness;
329 ireq->req.flags = new_req->flags;
330@@ -278,8 +277,7 @@
331
332 gboolean handle_add_display_request(PowerdSource *obj,
333 GDBusMethodInvocation *invocation,
334- int state, int brightness, int pid,
335- guint32 flags)
336+ int state, int brightness, guint32 flags)
337 {
338 struct powerd_display_request req = {0,};
339 const char *owner;
340@@ -287,12 +285,11 @@
341 int ret;
342
343 owner = g_dbus_method_invocation_get_sender(invocation);
344- powerd_debug("%s from %s (%d): state %d brightness %d flags %#08x",
345- __func__, owner, pid, state, brightness, flags);
346+ powerd_debug("%s from %s: state %d brightness %d flags %#08x",
347+ __func__, owner, state, brightness, flags);
348
349 req.state = state;
350 req.brightness = brightness;
351- req.pid = pid;
352 req.flags = flags;
353
354 ret = __powerd_add_display_request(&req, owner);
355@@ -387,12 +384,12 @@
356 char cookie_str[UUID_STR_LEN];
357
358 uuid_unparse(req->cookie, cookie_str);
359- powerd_debug(" owner: %s, pid: %d, cookie: %s, state: %d, brightness: %d, flags: %#08x",
360- ireq->owner, req->pid, cookie_str, req->state,
361- req->brightness, req->flags);
362+ powerd_debug(" owner: %s, cookie: %s, state: %d, brightness: %d, flags: %#08x",
363+ ireq->owner, cookie_str, req->state, req->brightness,
364+ req->flags);
365
366- g_variant_builder_add(builder, "(siiiu)", ireq->owner, req->pid,
367- req->state, req->brightness, req->flags);
368+ g_variant_builder_add(builder, "(siiu)", ireq->owner, req->state,
369+ req->brightness, req->flags);
370 }
371
372 static int build_display_request_list(GVariantBuilder *builder)
373@@ -409,13 +406,13 @@
374 GVariantBuilder *builder;
375 int count;
376
377- builder = g_variant_builder_new(G_VARIANT_TYPE("a(siiiu)"));
378+ builder = g_variant_builder_new(G_VARIANT_TYPE("a(siiu)"));
379 count = build_display_request_list(builder);
380 if (count > 0) {
381 list = g_variant_builder_end(builder);
382 } else {
383 g_variant_builder_clear(builder);
384- list = g_variant_new_array(G_VARIANT_TYPE("(siiiu)"), NULL, 0);
385+ list = g_variant_new_array(G_VARIANT_TYPE("(siiu)"), NULL, 0);
386 }
387
388 tuple = g_variant_new_tuple(&list, 1);
389
390=== modified file 'src/display.c'
391--- src/display.c 2013-06-28 16:08:55 +0000
392+++ src/display.c 2013-07-02 15:12:55 +0000
393@@ -182,7 +182,7 @@
394 case POWERD_DISPLAY_STATE_ON:
395 if (actual_screen_state != POWERD_DISPLAY_STATE_ON) {
396 powerd_debug("Requesting active state internally");
397- ret = request_sys_state_internal(POWERD_SYS_STATE_ACTIVE, getpid(),
398+ ret = request_sys_state_internal(POWERD_SYS_STATE_ACTIVE,
399 &internal_request_cookie, NULL);
400 if (!ret)
401 powerd_warn("Request for active state failed");
402
403=== modified file 'src/power-request.c'
404--- src/power-request.c 2013-07-01 21:23:32 +0000
405+++ src/power-request.c 2013-07-02 15:12:55 +0000
406@@ -41,7 +41,6 @@
407 struct SysStateRequest {
408 gchar *owner;
409 uuid_t cookie;
410- int pid;
411 enum SysPowerStates state;
412 };
413
414@@ -163,12 +162,11 @@
415
416 /* XXX: For debug, remove later */
417 uuid_unparse(sr->cookie, cookie_str);
418- powerd_debug(" Owner: %s, Pid: %d, Cookie: %s, State: %s (%d)",
419- sr->owner, sr->pid, cookie_str,
420- state_to_string(sr->state), sr->state);
421+ powerd_debug(" Owner: %s, Cookie: %s, State: %s (%d)",
422+ sr->owner, cookie_str, state_to_string(sr->state), sr->state);
423
424 if (builder)
425- g_variant_builder_add(builder, "(sii)", sr->owner, sr->pid, sr->state);
426+ g_variant_builder_add(builder, "(si)", sr->owner, sr->state);
427 }
428
429 /*
430@@ -198,14 +196,14 @@
431 GVariantBuilder *builder;
432 guint count = 0;
433
434- builder = g_variant_builder_new(G_VARIANT_TYPE("a(sii)"));
435+ builder = g_variant_builder_new(G_VARIANT_TYPE("a(si)"));
436 count = list_sys_requests_internal(builder);
437 if (count>0) {
438 list = g_variant_builder_end(builder);
439 }
440 else {
441 g_variant_builder_clear(builder);
442- list = g_variant_new_array(G_VARIANT_TYPE("(sii)"), NULL, 0);
443+ list = g_variant_new_array(G_VARIANT_TYPE("(si)"), NULL, 0);
444 }
445 tuple = g_variant_new_tuple(&list,1);
446 g_dbus_method_invocation_return_value(invocation, tuple);
447@@ -225,7 +223,7 @@
448
449 /* Note: owner is NULL for internal usage */
450 gboolean
451-request_sys_state_internal(int state, int pid, uuid_t *cookie, const gchar *owner)
452+request_sys_state_internal(int state, uuid_t *cookie, const gchar *owner)
453 {
454 struct SysStateRequest *sr = NULL;
455
456@@ -242,7 +240,6 @@
457
458 sr = g_new(struct SysStateRequest, 1);
459 sr->state = (enum SysPowerStates)state;
460- sr->pid = pid;
461 if (owner) {
462 sr->owner = g_strdup(owner);
463 }
464@@ -258,7 +255,7 @@
465 }
466
467 gboolean
468-handle_request_sys_state (PowerdSource *obj, GDBusMethodInvocation *invocation, int state, int pid)
469+handle_request_sys_state (PowerdSource *obj, GDBusMethodInvocation *invocation, int state)
470 {
471 gboolean retval;
472 const char *owner;
473@@ -266,10 +263,10 @@
474 char ext_cookie[UUID_STR_LEN];
475
476 owner = g_dbus_method_invocation_get_sender(invocation);
477- powerd_debug("handle_requestSysState from %s: %d - %s (%d)", owner, pid,
478+ powerd_debug("handle_requestSysState from %s - %s (%d)", owner,
479 state_to_string(state), state);
480
481- retval = request_sys_state_internal(state, pid, &cookie, owner);
482+ retval = request_sys_state_internal(state, &cookie, owner);
483 if (retval == TRUE) {
484 powerd_debug("handle_requestSysState - SUCCESS");
485 uuid_unparse(cookie, ext_cookie);
486
487=== modified file 'src/powerd-internal.h'
488--- src/powerd-internal.h 2013-07-01 17:02:32 +0000
489+++ src/powerd-internal.h 2013-07-02 15:12:55 +0000
490@@ -37,7 +37,6 @@
491 uuid_t cookie;
492 enum powerd_display_state state;
493 enum powerd_display_brightness brightness;
494- pid_t pid;
495 guint32 flags;
496 };
497
498@@ -87,8 +86,7 @@
499 void display_request_deinit(void);
500 gboolean handle_add_display_request(PowerdSource *obj,
501 GDBusMethodInvocation *invocation,
502- int state, int brightness, int pid,
503- guint32 flags);
504+ int state, int brightness, guint32 flags);
505 gboolean handle_update_display_request(PowerdSource *obj,
506 GDBusMethodInvocation *invocation,
507 const gchar *ext_cookie, int state,
508@@ -104,13 +102,12 @@
509 gboolean handle_list_sys_requests(PowerdSource *obj,
510 GDBusMethodInvocation *invocation);
511 gboolean handle_request_sys_state(PowerdSource *obj,
512- GDBusMethodInvocation *invocation,
513- int state, int pid);
514+ GDBusMethodInvocation *invocation, int state);
515 gboolean handle_clear_sys_state(PowerdSource *obj,
516 GDBusMethodInvocation *invocation,
517 gchar *cookie);
518-gboolean request_sys_state_internal(int state, int pid,
519- uuid_t *cookie, const gchar *owner);
520+gboolean request_sys_state_internal(int state, uuid_t *cookie,
521+ const gchar *owner);
522 gboolean clear_sys_state_internal(uuid_t cookie);
523 void update_system_state(void);
524 void power_request_init(void);
525
526=== modified file 'src/powerd.cpp'
527--- src/powerd.cpp 2013-07-01 17:02:32 +0000
528+++ src/powerd.cpp 2013-07-02 15:12:55 +0000
529@@ -107,7 +107,6 @@
530 {0,}, /* cookie */
531 POWERD_DISPLAY_STATE_ON, /* state */
532 POWERD_DISPLAY_BRIGHTNESS_BRIGHT, /* brightness */
533- 0, /* pid */
534 0 /* flags */
535 };
536
537@@ -116,7 +115,6 @@
538 {0,}, /* cookie */
539 POWERD_DISPLAY_STATE_DONT_CARE, /* state */
540 POWERD_DISPLAY_BRIGHTNESS_DONT_CARE, /* brightness */
541- 0, /* pid */
542 POWERD_DISPLAY_FLAG_USE_PROXIMITY /* flags */
543 };
544

Subscribers

People subscribed via source and target branches