* cmake/: don't install test applications and service files, moved CMAKE_DEBUG_POSTFI...
[platform/upstream/dbus.git] / ChangeLog
1 2007-04-28  Ralf Habacker <ralf.habacker@freenet.de>
2
3         * cmake/: don't install test applications and service files,
4         moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
5
6 2007-04-27  Havoc Pennington  <hp@redhat.com>
7
8         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
9         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
10         the fd itself
11
12 2007-04-26 Ralf Habacker  <ralf.habacker@freenet.de>
13
14         * cmake/: added debug postfixes to debug exe's for 
15         easier debugging.
16         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
17         print error code in case no string message is available.
18
19 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
20
21         * dbus/dbus-message-util.c, dbus/dbus-message.c,
22         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
23         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
24         approved by Havoc Pennington.
25
26 2007-04-03  Timo Hoenig  <thoenig@suse.de>
27
28         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
29           length address.
30         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
31           length address.
32
33 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
34
35         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
36
37 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
38
39         * cmake/modules/FindExpat.cmake: fix package detection on win32.
40
41         * README.win: update install instructions. 
42
43 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
44
45         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
46         new prototyp
47         (_DBUS_PATH_SEPARATOR): new macro. 
48
49         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
50         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
51
52 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
53
54         * bus/config-parser.c, bus/policy.c,  
55         bus/policy.h, bus/dbus-daemon.1.in,
56         bus/session.conf.in: added eavesdrop support 
57         for replies - patch by olli.salli at collabora.co.uk
58         approved by Havoc Pennington. 
59
60 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
61
62         * dbus\dbus-sysdeps-win-thread.c: renamed to 
63         dbus-sysdeps-thread-win.c, it is a platform depending file 
64         similar to dbus-sysdeps-pthread.c.
65
66 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
67
68         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
69         support, needs cmake Find script.
70
71 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
72
73         * cmake: add doxygen support
74
75 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
76
77         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
78
79 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
80
81         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
82         win32 compile fix. 
83
84 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
85
86         * dbus-win.patch: removed obsolate patches. 
87
88 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
89
90         * dbus/dbus-sysdeps-win.c: added zero byte sending 
91         and receiving after connection start up
92
93 2007-03-11  Havoc Pennington  <hp@redhat.com>
94
95         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
96         formatting problem
97
98         * Mostly fix the DBusPipe mess.
99         - put line break after function return types
100         - put space before parens
101         - do not pass structs around by value
102         - don't use dbus_strerror after calling supposedly cross-platform
103         api
104         - don't name pipe variables "fd"
105         - abstract special fd numbers like -1 and 1
106
107 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
108
109         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
110         dbus/dbus-sysdeps-util-win.c: renamed functions 
111         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
112         struct name DBusFile. 
113
114 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
115
116         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
117         fix _dbus_pid_fd check. 
118
119 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
120
121         * tools/dbus-print-message.c (print_message):
122         added printing of the reply serial to method returns and 
123         errors, so you can actually figure out the message/reply 
124         pairs - patch by olli.salli at collabora.co.uk.
125
126 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
127
128         * dbus-win.patch: removed committed patches. 
129
130 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
131
132         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
133         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
134         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
135         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
136         completed _dbus_pipe support. 
137
138 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
139
140         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
141         changed type or port to pointer, because the port is given back.
142
143         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
144         implemented returning tcp port. Skipping port parameter
145         and non integer port values in config <listen> statement
146         needs more effort.
147
148         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
149         (_dbus_listen_tcp_socket): return the real used tcp port.
150
151         * bus/dbus-daemon.1.in: added <listen> tcp examples
152
153 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
154
155         * cmake/config.h.cmake: win32 msvc bug fix
156
157 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
158
159         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
160         using _WINCE does not work.
161
162 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
163
164         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
165         committed.
166
167 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
168
169         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
170         rename pipe related write() function calls to _dbus_write_pipe().
171
172 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
173
174         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
175         uses DBUS_WIN for alls win32 related #ifdefs, 
176         some minor cleanups
177
178 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
179
180         * dbus-win.patch: updated patch for bus/dispatch.c.
181
182 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
183
184         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
185         dbus_connection_get_unix_process_id): Let return them valid user id's, 
186         otherwise bus-test fails. How to replace on win32 ?.
187         
188         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
189         fix memory leak.
190
191 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
192
193         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
194         use dbus friendly error name.
195         (fill_win_user_info_homedir): print user name in error case too.
196
197 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
198
199         * cmake/ConfigureChecks.cmake: fixed socketpair check
200
201 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
202
203         * bus/dispatch.c: disabled segfault test on win32 for now
204
205 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
206
207         * configure.in, cmake/ConfigureChecks.cmake: added check 
208         for setrlimit. 
209         * test/test-segfault.c: only include setrlimit stuff only 
210         when available.  
211
212 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
213
214         * test/test-segfault.c: unix compile fix.
215         * dbus-win.patch: removed obsolate patches.
216
217 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
218
219         * bus/activation.c: removed obsolate include header.
220         * test/test-segfault.c: win32 compile fix, rlimit 
221         isn't available on win32.
222         * dbus-win.patch: removed some more patches, they
223         are applied or obsolate 
224
225 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
226
227         * bus-win.patch: fixes unix listen problems, dbus-test 
228         now runs.
229
230 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
231
232         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
233         cmake/CMakeLists.txt: win32 compile fix
234
235 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
236
237         * dbus-win.patch, README.win: added available win32 
238         patches from windbus project (http://sf.net/projects/windbus)
239
240 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
241
242         * bus/activation.c: (bus_activation_activate_service):
243         fixed call to _dbus_spawn_async_with_babysitter().
244
245 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
246
247         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
248         added environment pointer as function parameter, used on win32.
249
250         * test/spawn-test.c: fixed call to above mentioned function.
251
252 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
253
254         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
255         added configure check for unistd.h.
256
257 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
258
259         * test/Makefile.am: fixed test data copy problem in 
260         out of source build, when sources came from svn or cvs. 
261
262 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
263
264         * dbus/*-win.*,bus/*-win.*: added win32 platform related
265         files. These files are only added to the cmake build system.  
266         The missing dbus-win.patch file will be added later. 
267
268 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
269
270         * cmake: new directory, contains cmake build support.
271         See http://www.cmake.org for more informations.
272         Currently only unix will be buildable because some 
273         win32 required files are still missing. 
274
275 2007-03-03  Thiago Macieira  <thiago@kde.org>
276
277         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
278         output and add it to the DBusError message we return.
279
280         * tools/dbus-launch.1:
281         * tools/dbus-launch.c: Add option --close-stderr to, well,
282         close stderr before starting dbus-daemon.
283
284 2007-01-31  Havoc Pennington  <hp@redhat.com>
285
286         * bus/dbus-daemon.1.in: write a section in the man page on running
287         a test daemon for debugging purposes
288
289 2007-01-26  Havoc Pennington  <hp@redhat.com>
290
291         * bus/session.conf.in: override all the default limits with much
292         higher limits on the session bus, there is no reason the session
293         bus should have low limits
294
295         * bus/config-parser.c (bus_config_parser_new): increase default
296         limits so they are less likely to be hit; in particular the max
297         replies per connection was way too low
298
299 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
300
301         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
302         a pointer to the tutorial maintained as part of dbus-python
303
304 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
305
306         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
307         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
308         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
309
310 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
311
312         * tools/dbus-monitor.c: gettimeofday() is not available 
313         on windows so we have to provide our own. It's taken from 
314         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
315
316 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
317
318         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
319         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
320         is in dbus-sysdeps-win.c (not in this patch).
321
322         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
323         with InterlockedInc/Decrement. 
324         - Patches from Christian Ehrlicher
325         
326 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
327
328         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
329
330 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
331
332         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
333         fix mispaced const statement. - Patch from Peter Kümmel
334
335 2006-12-19  Ray Strode  <rstrode@redhat.com>
336
337         * bus/bus.c (process_config_every_time):
338         don't overwrite existing bus context activation object
339         until after we've checked that the new activation is
340         valid.
341
342         * bus/main.c 
343         (signal_handler), (handle_reload_watch):
344         don't call exit() on failure, instead make do and keep
345         going.
346         (close_reload_pipe): new function to turn off
347         hangup-causes-config-reload behavior if an unexpected
348         error occurs
349
350 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
351
352         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
353         correctness fix. - Patch from Christian Ehrlicher
354
355 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
356
357         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
358         we should also use it. - Patch from Christian Ehrlicher
359
360 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
361   
362         * dbus-sysdeps-util.c: added win32 related tests
363
364 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
365
366         * dbus/dbus-string.c (_dbus_string_pop_line),
367         bus/desktop-file.c (parse_section_start,
368         parse_comment_or_blank,parse_key_value,): uses
369         _dbus_string_find_eol() to support platform independent eol style.
370
371 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
372
373         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
374         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
375               _dbus_string_find_eol().
376         Approved by: Havoc Pennington.
377
378 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
379
380         * configure.in: Added switch to disable user_database caching.
381
382         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
383         be able disable user_dabase caching.
384
385 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
386
387         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
388         struct. It is unnecessary we have a global one already. Also remove 
389         bus_context_get_user_database function, it is no longer needed.
390         Flush the global database on reload.
391
392         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
393         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
394
395         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
396         Add _dbus_user_database_flush_system. 
397         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
398         Small unrelated change in _dbus_is_a_number: change 
399         _dbus_string_parse_int to _dbus_string_parse_uint. 
400
401         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
402         _dbus_groups_from_uid.
403
404         * bus/policy.c, bus/policy.h: Change call to 
405         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
406         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
407         needs it.
408
409 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
410
411         * bus/signal.c: Fix match_rule_equal errata
412         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
413         <kimmo.hamalainen@nokia.com>)
414
415 2006-11-19  Thiago Macieira  <thiago@kde.org>
416
417         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
418         _dbus_pthread_condvar_wait,
419         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
420         pthread_self() after coming back from a conditional variable
421         wait as well as in one codepath where it was forgotten.
422         Approved by: Havoc Pennington.
423
424 2006-11-17  Havoc Pennington  <hp@redhat.com>
425
426         * update-dbus-docs.sh: allow setting fd.org username via env
427         variable. Make it run autogen with --enable-xml-docs=yes
428         --enable-doxygen-docs=yes so configure will fail if the required
429         tools are missing.
430
431 2006-11-17  Havoc Pennington  <hp@redhat.com>
432
433         * doc/dbus-faq.xml: minor FAQ tweaks
434
435 2006-11-14  Havoc Pennington  <hp@redhat.com>
436         
437         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
438         dbus_get_local_machine_id() to its own file, no substantive
439         changes. There are a couple other things we might want to add that
440         are "misc" so moving out of dbus-connection.[hc] which is big
441         enough already.
442         
443 2006-11-14  Havoc Pennington  <hp@redhat.com>
444
445         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
446         UUID had the timestamp last, but the implementation had it first;
447         move it to last since I think it's a tiny bit nicer (easier to
448         compare at a glance, faster to sort, less code), and will not
449         cause any practical compatibility problems. Also, always convert
450         the timestamp to big endian.
451
452         * doc/dbus-specification.xml: Clean up the docs on the UUID.
453
454         * tools/dbus-uuidgen.1: more prominently say it is not suitable
455         as a replacement for regular uuidgen/RFC4122.
456
457 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
458
459         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
460         the correct value so we don't assert when initalizing recursive threads
461
462         * test/name-test/test-thread-init.c: call dbus_threads_init_default
463         instead of _dbus_threads_init_debug since it is more of a real world
464         test
465
466 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
467
468         * Released 1.0.0
469
470 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
471
472         * AUTHORS: added Peter and Tor of windows porting fame
473
474 2006-11-08  Havoc Pennington  <hp@redhat.com>
475
476         * doc/dbus-specification.xml: add a note about protocol stability
477
478         * doc/TODO: Remove "important for 1.0" section, replace with
479         "important for 1.2" section
480         
481 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
482
483         * README: remove some of the out of date flags
484
485         * doc/TODO: Remove todo items which are done
486
487 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
488
489         * tools/dbus-monitor.c: Handle sigint so we flush stdout
490         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
491
492 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
493
494         * tools/dbus-monitor.1: update the manpage for dbus-monitor
495         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
496
497 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
498
499         * AUTHORS: Update with all people listed in the ChangeLog
500
501 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
502
503         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
504         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
505
506 2006-11-07  Havoc Pennington  <hp@redhat.com>
507
508         * HACKING: Update release instructions to include stuff about
509         stable releases, branching, etc. May not be totally correct,
510         please fix if needed, but keep instructions up-to-date so we do
511         each stable release consistently in the future.
512
513 2006-11-07  Havoc Pennington  <hp@redhat.com>
514
515         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
516         documentation updates. Bump faq/spec versions (not to 1.0; I don't
517         think the spec will be "finished"/1.0 when we ship the 1.0 library).
518
519 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
520
521         * bus/bus.c: Missed patch - pass in the context to the directory watch
522
523 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
524
525         * Released D-Bus 1.0 RC 3(0.95)
526
527 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
528
529         * bus/activation.c (bus_activation_new): don't fail if we can not read
530         the directory as it may not exist
531
532 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
533
534         * bus/config-parser.c (service_dirs_find_dir): use 
535         _dbus_list_get_next_link so we don't get stuck in an infinite loop
536         (start_busconfig_child): move processing of standard_session_servicedirs
537         tags here because they have no content
538         (bus_config_parser_content): check we don't have content in 
539         standard_session_servicedirs tag
540
541 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
542
543         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
544         Packagers need to own this directory
545
546 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
547
548         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
549         <standard_session_servicedirs> tag with a <sevicedir> tag that
550         points to the test service directory
551
552 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
553
554         * configure.in: Add a check for DIR *dirp->dd_fd
555
556         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
557         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
558         of both Solaris and Irix
559
560 2006-11-01  Havoc Pennington  <hp@redhat.com>
561
562         * bus/dbus-daemon.1.in: document standard_session_servicedirs
563
564 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
565
566         * configure.in: expose DBUS_DATADIR
567         
568         * bus/config-parser.c: add the standard_session_servicedirs element
569         to the parser
570         (bus_config_parser_content): process the standard_session_servicedirs
571         element by getting the standard directories from sysdeps and merging
572         them into the service directory list
573         (test_default_session_servicedirs): make sure we get what we expect
574
575         * bus/session.conf.in: replace the servicedir tag with the 
576         standard_session_servicedirs tag
577
578         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
579         dbus-sysdeps.h to avoid circular header dependencies
580
581         * dbus/dbus-sysdeps.h: add the typedef of DBusList
582
583         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
584         which takes a string of directories delimited by colons, parses them 
585         out, appends a suffix and puts them in a list ignoring empty elements
586         (_dbus_get_standard_session_servicedirs): returns the standard 
587         directories for a session bus to look for service activation files
588         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
589         DBUS_DATADIR directories
590
591         * test/data/valid-config-files/many-rules.conf: add the 
592         standard_session_servicedirs tag to the valid config file tests
593
594 2006-10-30  Havoc Pennington  <hp@redhat.com>
595
596         * tools/dbus-launch.1, doc/TODO: capture intent to change the
597         command line options of dbus-launch a bit post 1.0
598
599 2006-10-27  Havoc Pennington  <hp@redhat.com>
600         
601         * dbus/dbus-connection.c (dbus_connection_open_private): document
602         how to choose shared vs. private connections
603
604 2006-10-27  Havoc Pennington  <hp@redhat.com>
605
606         * dbus/dbus-test.c: enclose more of the file in the
607         DBUS_BUILD_TESTS check.
608
609         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
610         DBUS_DISABLE_ASSERT case.
611
612         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
613         that it only works on the server side
614
615         * dbus/dbus-bus.c: add a global lock covering the BusData we
616         attach to each connection
617         (internal_bus_get): lock our access to the BusData
618         (dbus_bus_register): lock the entire registration process
619         with _DBUS_LOCK(bus_datas). If we get the lock and 
620         registration is already complete, silently return (vs. previous
621         behavior of aborting).
622         (dbus_bus_set_unique_name): lock the BusData
623         (dbus_bus_get_unique_name): lock the BusData
624
625 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
626
627         * bus/config-parser.c (service_dirs_find_dir, 
628         service_dirs_append_unique_or_free, 
629         service_dirs_append_link_unique_or_free): New static methods
630         for only appending unique service directory names into
631         the service directory list
632         (merge_included, bus_config_parser_content): Only add unique
633         service directory names into the list
634
635 2006-10-27  Havoc Pennington  <hp@redhat.com>
636
637         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
638         variables volatile, suggested by Thiago. Document struct fields.
639         (PTHREAD_CHECK): remove pthread error checking if assertions are
640         disabled, should reduce the no-assertions case to the bare
641         minimum code.
642
643 2006-10-26  Havoc Pennington  <hp@redhat.com>
644         
645         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
646         to be recursive
647         (_dbus_pthread_mutex_unlock): make it recursive
648         (_dbus_pthread_condvar_wait): save/restore the recursion count
649         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
650
651 2006-10-26  Havoc Pennington  <hp@redhat.com>
652
653         * doc/dbus-specification.xml: clarify the UUID text slightly
654
655         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
656         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
657         in preparation for being able to extend them for e.g. recursive
658         mutexes.
659
660 2006-10-26  Havoc Pennington  <hp@redhat.com>
661
662         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
663         condition variables relate to recursive mutexes.
664         
665         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
666         dbus/dbus-threads.c: Split the platforms-specific thread 
667         implementations into their own files.
668         
669         * dbus/dbus-sysdeps-pthread.c
670         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
671         was backward. Not that anything uses it.
672
673 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
674
675         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
676         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
677         needs to be cleaned up more.
678
679         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
680         up the CREDS issue.
681
682 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
683
684         * configure.in, dbus-1.pc.in: Check to see if thread methods 
685         are in glibc or libpthread and add -lpthread to the link stage 
686         if it is the latter
687
688 2006-10-26  Thiago Macieira  <thiago@kde.org>
689
690         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
691         bug 8780: the connection lock is only required while recording
692         the shared connection, so protect only that code
693         section. Don't require connection_lookup_shared to return a
694         locked connection.
695
696 2006-10-26  Thiago Macieira  <thiago@kde.org>
697
698         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
699         check if get_machine_uuid() returns NULL before proceeding any
700         further: we can't init the X atoms or create a session file
701         name if there is no machine ID.
702         This solves a crash reported by some users if
703         --exit-with-session was used without --autolaunch=<machine-id>
704
705 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
706
707         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
708         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
709
710         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
711         before we run dbus-launch
712
713         * configure.in: define TEST_BUS_BINARY to be the full path to 
714         dbus-daemon in the build root 
715
716 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
717
718         * dbus/Makefile.am:
719         * tools/Makefile.am:
720         * toos/dbus-uuidgen.1:
721                 Move the machine-id file to /var/lib/dbus 
722
723 2006-10-24  David Zeuthen  <davidz@redhat.com>
724
725         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
726         _dbus_assert (thread_init_generation != _dbus_current_generation)
727         not _dbus_assert (thread_init_generation == _dbus_current_generation)
728
729 2006-10-24  Thiago Macieira  <thiago@kde.org>
730
731         * dbus/dbus-sysdeps.h:
732         * dbus/dbus-sysdeps-unix.c: Add function
733         _dbus_make_file_world_readable that chmods a file to 0644.
734
735         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
736         Avoid writing to the static "argv" array, thereby avoiding a
737         COW on the child process.
738
739         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
740         call _dbus_make_file_world_readable on the created file.
741
742 2006-10-23  David Zeuthen  <davidz@redhat.com>
743
744         * dbus/dbus-memory.c: Use atomic variable to protect
745         n_blocks_outstanding otherwise OOM will be reported using SMP on
746         some arches
747         
748         * bus/dispatch.c: Add missing end of line characters
749
750         * bus/desktop-file.c (parse_section_start, parse_key_value) 
751         (bus_desktop_file_load): Propertly handle OOM
752
753         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
754         thread_init_generation equals _dbus_current_generation, not 0
755
756 2006-10-22  Havoc Pennington  <hp@redhat.com>
757
758         * dbus/dbus-connection-internal.h: move prototype of
759         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
760         it isn't in a public header and doesn't end up in the DBusBus
761         group in Doxygen
762
763 2006-10-21  Havoc Pennington  <hp@redhat.com>
764
765         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
766         the tarball if packagers want to run it
767
768         * cleanup-man-pages.sh: Add a script which munges all the internal
769         API man pages out of the Doxygen output. This reduces the size of
770         the installed man pages from 7 to 2 megs, and avoids
771         namespace-polluting pages. Right now (like Doxygen) this script
772         isn't in the build, it's something packagers can do manually.
773
774 2006-10-21  Havoc Pennington  <hp@redhat.com>
775
776         * dbus/dbus-connection.h: don't include the watch/timeout
777         functions in connection section
778
779 2006-10-21  Havoc Pennington  <hp@redhat.com>
780
781         * Documentation! Whee! Doxygen now 100% silent. If you make it
782         angry again, you will be punished.
783         
784 2006-10-21  Havoc Pennington  <hp@redhat.com>
785
786         * More documentation - all public API now documented according to
787         Doxygen
788
789 2006-10-21  Havoc Pennington  <hp@redhat.com>
790
791         * Document a bunch of undocumented stuff
792         
793 2006-10-21  Havoc Pennington  <hp@redhat.com>
794
795         * Clean up Doxygen group markers for public API so Doxygen finds
796         everything (not comprehensively fixed for private API).
797         Means all remaining Doxygen warnings are just about missing docs
798         and thus pretty simple to resolve.
799         
800 2006-10-21  Havoc Pennington  <hp@redhat.com>
801         
802         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
803
804         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
805         as DBUS_GNUC_DEPRECATED
806
807 2006-10-21  Havoc Pennington  <hp@redhat.com>
808
809         * Move all private API into the private Doxygen group sections of
810         the files, so they don't show up in the public API docs
811         
812 2006-10-21  Havoc Pennington  <hp@redhat.com>
813
814         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
815         dbus_message_iter_get_array_len().
816
817         * throughout: documentation improvements.
818
819 2006-10-20  Havoc Pennington  <hp@redhat.com>
820
821         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
822         matter, and the message-loader-breaker thing since nobody is going
823         to do it.  Add an item to 1.0 about supporting recursive locks
824         in dbus_threads_init_default() though, since it should be easy.
825
826         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
827         Fix this in the !dispatch case to avoid busy-looping after
828         disconnection
829
830         * More misc docs improvements
831
832 2006-10-19  Havoc Pennington  <hp@redhat.com>
833
834         * more Doxygen-related fixes (lots of moving things from the
835         public to internal section in dbus-connection.c)
836
837 2006-10-19  Havoc Pennington  <hp@redhat.com>
838
839         * Fix a pile of Doxygen warnings and missing docs
840
841 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
842
843         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
844         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
845         instead of a void *.  kqueue uses this to get the context's loop
846         while the other modules ignore the parameter.  This allows us to
847         avoid platform conditionals
848
849         * bus/bus.c (process_config_postinit): Pass in the context to the 
850         watch
851
852 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
853
854         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
855         when starting the system bus
856
857 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
858
859         * configure.in: More fixups for cross compile (Patch from 
860         Marco Pracucci <development at pracucci dot com>)
861
862 2006-10-17  Havoc Pennington  <hp@redhat.com>
863
864         * tools/dbus-send.c (main): don't close shared connection, fix
865         from Timo Hoenig
866
867 2006-10-17  Havoc Pennington  <hp@redhat.com>
868
869         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
870
871         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
872         since realistically it doesn't look like we'll be changing it
873         anymore.
874
875 2006-10-17  Havoc Pennington  <hp@redhat.com>
876
877         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
878         be used for return_if_fail type warnings; prefixes the pid, and
879         fatal by default.
880
881 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
882
883         * configure.in: Released 1.0 RC 2(0.94)
884         Add check for -fPIC and enable it if available
885
886 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
887
888         * doc/TODO: Remove the check TODO item
889
890 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
891
892         * dbus-transport-socket.c (exchange_credentials):
893         Print out more detailed errors if reading or sending
894         credentials fail (Patch from Julio M. Merino Vidal 
895         <jmmv at NetBSD dot org>)
896
897 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
898
899         * configure.in: when checking for posix getpwnam_r assume true
900         for cross compiles
901
902 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
903
904         * configure.in: Check for gethostbyname first before we check for it
905         in libnsl.  On gnu systems it is implemeneted 
906
907 2006-10-13  Havoc Pennington  <hp@redhat.com>
908
909         * dbus/dbus-connection.c
910         (dbus_connection_send_with_reply_and_block): fix to handle closed
911         connections, from Tambet Ingo bug #8631
912
913 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
914
915         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
916
917 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
918
919         * test/name-test/Makefile.am: don't link against both libdbus and
920         libdbus-convenience
921
922 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
923
924         * configure.in: check for dirfd even if it is a macro
925         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
926
927 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
928
929         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
930         avoid using dirfd on systems that don't have dirfd 
931         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
932
933 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
934
935         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
936         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
937
938         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
939         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
940         macro because _dbus_abort calls it
941
942         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
943         works
944
945 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
946
947         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
948         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
949
950 2006-10-02  Thiago Macieira  <thiago@kde.org>
951
952         * tools/dbus-launch.c (main): make it complain and abort
953         execution in case an unknown option is given. Also, process
954         the '--' argument as the end of arguments.
955
956 2006-10-01  Havoc Pennington  <hp@redhat.com>
957
958         * tools/dbus-launch.c (print_variables): if no syntax is given,
959         don't print something that's sort-of-half-sh-syntax, just print
960         a plain key-value pairs thing.
961
962         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
963         the local machine representation (but still have the hostname in
964         the display). Remove the hostname from the display if it is
965         localhost. Change session files to be named
966         ~/.dbus/session-bus/machine-display. Change X atoms to be
967         underscore-prefixed so nobody whines about ICCCM compliance.
968         Otherwise name them the same as the env variables.
969         Change session file format to include key-value pairs and an
970         explanatory comment. Keys are the same as the env variables.
971         (set_address_in_x11): X property format can't depend on
972         sizeof(pid_t) on a particular machine, fix to always be 32 bits
973
974         * tools/dbus-launch.c: make --autolaunch take a machine id
975         argument. If --autolaunch is used with a program to run, complain
976         for now (but add a FIXME). Also, don't look for existing bus if 
977         there's a program to run (but add a FIXME).
978
979         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
980         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
981         just to get this, and avoids duplicating uuid-reading code).
982
983         * tools/dbus-launch.1: clarify various things
984         
985 2006-10-01  Havoc Pennington  <hp@redhat.com>
986
987         * test/test-service.c (path_message_func): remove broken extra
988         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
989
990         * test/test-shell-service.c (path_message_func): same fix
991         
992         * dbus/dbus-connection.c
993         (_dbus_connection_get_dispatch_status_unlocked): break up the
994         function a little for clarity and fix the notification of
995         dbus-bus.c to not require dispatch to be complete
996
997         * dbus/dbus-connection.c (dbus_connection_unref): improve the
998         warning when you try to finalize an open connection.
999         
1000 2006-10-01  Havoc Pennington  <hp@redhat.com>
1001
1002         * dbus/dbus-bus.c
1003         (internal_bus_get): only weak ref the connection; this means 
1004         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1005         called safely in any context
1006         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1007         unref
1008
1009         * dbus/dbus-connection.c
1010         (_dbus_connection_get_dispatch_status_unlocked): move
1011         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1012         when queuing Disconnected instead of when the Disconnected message
1013         arrives, so dbus_bus_get() won't return closed connections.
1014         
1015 2006-10-01  Havoc Pennington  <hp@redhat.com>
1016
1017         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1018         Add a hack to make DBusNewConnectionFunction work right.
1019
1020         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1021         the hack here. Also, fix the todo about refcount leak.
1022         
1023         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1024         and use the hack here
1025         
1026         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1027         "shareable" flag; this was completely broken, since it meant 
1028         dbus_connection_open() returned a connection of unknown
1029         shared-ness. Now, we always hold a ref on anything opened 
1030         as shareable.
1031
1032         Move the call to notify dbus-bus.c into
1033         connection_forget_shared_unlocked, so libdbus consistently forgets
1034         all its knowledge of a connection at once. This exposed numerous
1035         places where things were totally broken if we dropped a ref inside
1036         get_dispatch_status_unlocked where
1037         connection_forget_shared_unlocked was previously, so move
1038         connection_forget_shared_unlocked into
1039         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1040         exit_on_disconnect here.
1041
1042         (shared_connections_shutdown): this assumed weak refs to the
1043         shared connections; since we have strong refs now, the assertion 
1044         was failing and stuff was left in the hash. Fix it to close
1045         still-open shared connections.
1046         
1047         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1048         debug pipe connections
1049         
1050         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1051         dbus-bus.c if the closed connection is in fact shared
1052         (_dbus_connection_close_possibly_shared): rename from 
1053         _dbus_connection_close_internal
1054         (dbus_connection_close, dbus_connection_open,
1055         dbus_connection_open_private): Improve docs to explain the deal
1056         with when you should close or unref or both
1057
1058         * dbus/dbus-bus.c
1059         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1060         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1061         loop over all connections
1062
1063         * test/test-utils.c (test_connection_shutdown): don't try to close
1064         shared connections.
1065
1066         * test/name-test/test-threads-init.c (main): fix warnings in here
1067
1068         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1069         env variable to cause blocking waiting for gdb; drop
1070         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1071         unconditionally.
1072
1073         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1074         so _dbus_print_backtrace works.
1075
1076         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1077         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1078         of -rdynamic/-export-dynamic
1079         
1080 2006-09-30  Havoc Pennington  <hp@redhat.com>
1081
1082         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1083         (internal_bus_get): fix screwy code formatting. whoever committed
1084         that was not paying attention!
1085
1086 2006-09-30  Havoc Pennington  <hp@redhat.com>
1087
1088         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1089         reflect addition of interfaces.
1090
1091         * doc/dbus-specification.xml: describe a new
1092         org.freedesktop.DBus.Peer.GetMachineId method
1093
1094         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1095         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1096         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1097         at end of skip_white
1098         (_dbus_string_chop_white): new function
1099
1100         * bus/connection.c (bus_connections_setup_connection): call
1101         dbus_connection_set_route_peer_messages.
1102
1103         * dbus/dbus-connection.c
1104         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1105         support a GetMachineId method.
1106
1107         Also, support a new flag to let the bus pass peer methods through
1108         to apps on the bus, which can be set with
1109         dbus_connection_set_route_peer_messages.
1110
1111         Finally, handle and return an error for anything unknown on the
1112         Peer interface, which will allow us to extend the Peer interface
1113         in the future without fear that we're now intercepting something
1114         apps were wanting to see.
1115         
1116         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1117         dbus/dbus-uuidgen.c
1118
1119         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1120         binary here, since most of the code is already in libdbus
1121
1122         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1123         uuid from the system config file
1124
1125         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1126         (_dbus_read_uuid_file_without_creating) 
1127         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1128         uuid-related functions, partly factored out from dbus-server.c
1129
1130         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1131         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1132
1133         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1134
1135         * tools/dbus-cleanup-sockets.1: explain what the point of this
1136         thing is a bit more
1137
1138         * autogen.sh (run_configure): add --config-cache to default
1139         configure args
1140
1141         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1142         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1143
1144         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1145         don't try to save address, fixes crash in make check
1146         
1147 2006-09-30  Thiago Macieira  <thiago@kde.org>
1148
1149         * configure.in: add DBUS_BINDIR as a #define to C source code.
1150
1151         * tools/dbus-launch.c
1152         * tools/dbus-launch.h
1153         * tools/dbus-launch-x11.c:
1154         * tools/dbus-launch.1: Add the --autolaunch option to
1155         dbus-launch, which makes it scan for an existing session
1156         started with --autolaunch. With that option, it also creates
1157         an X11 window and saves the bus address and PID to it.
1158
1159         * dbus/dbus-sysdeps.h:
1160         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1161         a function that runs "dbus-launch --autolaunch" to retrieve
1162         the running D-Bus session address (or start one if none was running)
1163
1164         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1165         address protocol, which tries to get the running session from
1166         dbus-launch.
1167
1168         * dbus/dbus-bus.c:
1169         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1170         D-Bus session bus address.
1171
1172         * dbus/dbus-connection.c: Fix horrible typo in error message.
1173
1174 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1175
1176         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1177
1178 2006-09-17  Havoc Pennington  <hp@redhat.com>
1179
1180         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1181         fix so that if unix_user_function is set on windows, we still
1182         do the default check that the auth identity matches the bus identity
1183
1184 2006-09-16  Havoc Pennington  <hp@redhat.com>
1185
1186         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1187         to _dbus_transport_open_platform_specific,
1188         _dbus_transport_open_socket,
1189         and _dbus_transport_open_debug_pipe
1190
1191         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1192
1193 2006-09-16  Havoc Pennington  <hp@redhat.com>
1194
1195         Attempt auditing public API to remove all cases where a Unix
1196         function returns weird emulated goo to Windows. This probably 
1197         breaks the bus daemon on Windows, to fix it again we may 
1198         need to stop processing unix-specific config options on Windows,
1199         and may need to add Windows-specific public API or config options.
1200         
1201         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1202         to reflect added interfaces; should not break soname.
1203         
1204         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1205         not invoke unix user function on Windows. Kind of a hacky fix, but 
1206         we don't want a "unix uid" leaking out on Windows.
1207
1208         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1209         to get the socket fd on Windows or UNIX
1210         (dbus_connection_get_unix_fd): make this always fail on Windows
1211
1212 2006-09-16  Havoc Pennington  <hp@redhat.com>
1213
1214         * dbus/dbus-server.c (dbus_server_listen): change how this works
1215         to be able to delegate to a set of handlers that can succeed,
1216         fail, or choose not to handle. Allows us to have 
1217         dbus_server_listen_platform_specific.
1218
1219         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1220         factor out the tcp socket stuff to be used on windows, leaving
1221         unix domain socket only in dbus-socket-unix.c
1222
1223         * dbus/dbus-transport-socket.c
1224         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1225         stuff to be used on windows, leaving unix domain socket only 
1226         in dbus-transport-unix.c
1227
1228         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1229         temporary hack to be sure this fails on windows
1230         (dbus_connection_get_unix_process_id): ditto
1231
1232 2006-09-16  Havoc Pennington  <hp@redhat.com>
1233
1234         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1235         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1236         _dbus_open_socket so the domain/type/protocol from system headers
1237         are not required. This is kind of pointless though unless we move
1238         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1239         sysdeps-unix.c, which would mean adding a wrapper around
1240         bind/listen/etc.
1241         Also, add DBusError to the socket-opening functions so they 
1242         don't require use of errno.
1243
1244 2006-09-16  Havoc Pennington  <hp@redhat.com>
1245
1246         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1247         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1248
1249         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1250         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1251         functions specifically for sockets only, and move generic 
1252         read/write/open/close into unix-specific code.
1253
1254 2006-09-14  Havoc Pennington  <hp@redhat.com>
1255
1256         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1257         complaint about accessing revents when poll returns 0, from Julian Seward.
1258
1259 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1260
1261         * Released 1.0 RC 1 (0.93) 
1262
1263 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1264
1265         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1266         use _dbus_close instead of close
1267
1268 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1269
1270         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1271         credentials.  Fixes "external" authentication under e.g. NetBSD
1272         which does not support any other socket credentials mechanism.
1273         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1274
1275 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1276
1277         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1278         dbus_threads_init and be used by the dbus mutex functions to
1279         avoid deadlocks.
1280
1281         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1282
1283 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1284
1285         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1286         use threadsafe readdir_r instead of readdir
1287
1288 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1289
1290         * dbus-threads.c (dbus_threads_init_default): New method for
1291         initializing the internal thread implementation (Patch from
1292         Alexander Larsson <alexl at redhat dot com>)
1293
1294 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1295
1296         * remove a bunch of todo items from the 1.0 list
1297
1298 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1299
1300         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1301         key not found
1302
1303 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1304
1305         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1306         complex debugging code
1307
1308         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1309         between the test suite ifdefs
1310         (_dbus_verbose_bytes): return if verbosity is not enabled 
1311
1312 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1313
1314         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1315         remove DBusMark
1316
1317 2006-09-10  Havoc Pennington  <hp@redhat.com>
1318
1319        patch mostly by Peter Kümmel, bug #8211
1320         
1321         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1322         unix-specific stuff in dbus-sysdeps.c
1323
1324         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1325         and move unix-specific stuff to dbus-sysdeps-unix.c
1326
1327         * configure.in: check HAVE_ERRNO_H
1328         
1329 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1330
1331         * bus/test-main.c (main): Initialize threading during tests
1332
1333         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1334         Unlock connection on error
1335         (generate_local_error_message): static method for generating
1336         an error message when we don't have a message to reply to
1337         (_dbus_connection_block_pending_call): Send a disconnect error
1338         instead of just a timeout (NULL) when the bus gets disconnected
1339         while blocking for a reply.
1340         
1341 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1342
1343         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1344         filters (Patch from Kimmo Hämäläinen 
1345         <kimmo dot hamalainen at nokia dot com>)
1346
1347 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1348
1349         * dbus/dbus-connection-internal.h: Add prototype for 
1350         _dbus_connection_test_get_locks to remove warning
1351
1352 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1353
1354         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1355         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1356         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1357
1358 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1359
1360         * Clean up close calls to use _dbus_close (Patch from 
1361         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1362
1363 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1364
1365         * doc/TODO:
1366         - Remove pending call locking todo item
1367         - dbus_connection_open now holds hard ref.  Remove todo item
1368         - do proper locking on _dbus_bus_check_connection_and_unref
1369           and handle DBUS_BUS_STARTER. Remove todo item
1370         - Warn on closing of a shared connection.  Remove todo item
1371
1372         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1373         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1374         so we don't get the warning when closing shared connections
1375
1376         * test/test-service.c, test/test-shell-service.c: Applications
1377         don't close shared connections themselves so we unref instead of
1378         close
1379
1380         * test/test-utils.c (test_connection_shutdown): Close the connection
1381
1382         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1383         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1384         method on a locked connection.  
1385         Make sure we call _dbus_connection_unref_unlocked instead of 
1386         dbus_connection_unref also.
1387         Handle DBUS_BUS_STARTER correctly
1388
1389         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1390         Mark as shared and hard ref the connection
1391         (connection_forget_shared_unlocked): Remove the hard ref from the 
1392         connection
1393         (_dbus_connection_close_internal_and_unlock):  New internal function
1394         which takes a locked connection and unlocks it after closing it
1395         (_dbus_connection_close_internal): New internal function which acts
1396         like the origonal dbus_connection_close method by grabbing a connection
1397         lock and calling _dbus_connection_close_internal_and_unlock
1398         (dbus_connection_close): Public close method, warns when the app
1399         trys to close a shared connection
1400
1401 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1402
1403         * bus/driver.c:
1404         (bus_driver_generate_introspect_string): New method for populating
1405         a DBusString with the introspect data
1406         (bus_driver_handle_introspect): Move introspect generation code to 
1407         bus_driver_generate_introspect_string
1408
1409         * bus/main.c:
1410         (introspect): New function which prints out the intropect data and
1411         exits
1412         (main): Add a --introspect switch
1413
1414 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1415
1416         * doc/TODO: Removed dtd publishing item.  
1417         It seems the dtd has already been added at
1418         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1419
1420 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1421
1422         * doc/TODO, various source files: Audited todo's and FIXME's and
1423         prepended the ones we should be looking at with 1.0.  Those
1424         prepended with 1.0? need clerification or might not be needed
1425         for 1.0
1426
1427 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1428
1429         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1430         NULL in the public API (Patch from Kimmo Hämäläinen 
1431         <kimmo dot hamalainen at nokia dot com>)
1432
1433 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * configure.in: Fix for OS-X compile time endian issues (patch from
1436         Benjamin Reed <ranger at befunk dot com>)
1437
1438 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1439
1440         * configure.in: Check for no-common compiler flag (OS-X fix from
1441         Benjamin Reed <ranger at befunk dot com>)
1442
1443 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1444
1445         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1446         <fcrozat at mandriva dot com>)
1447
1448 2006-08-29  Havoc Pennington  <hp@redhat.com>
1449
1450         * test/test-service.c (path_message_func): fix lack of return value
1451
1452         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1453         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1454         any more sense than on anything else in this file.
1455         (_dbus_get_tmpdir): add const to return value, and keep the
1456         results of the various getenv around in a static variable.
1457
1458 2006-08-29  Havoc Pennington  <hp@redhat.com>
1459
1460         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1461         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1462
1463 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1464
1465         * test/Makefile.am: change find to use syntax that works with non
1466         gnu versions of find
1467
1468 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1469
1470         * dbus/dbus-transport.c: fix invalid deref when checking if
1471         a vtable method exists (Patch from Christian Ehrlicher 
1472         <ch dot ehrlicher at gmx dot de>)
1473
1474 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1475
1476         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1477         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1478         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1479         <bernard at brenda-arkle dot demon dot co dot uk>)
1480
1481 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1482
1483         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1484         default case
1485
1486 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1487
1488         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1489         it works on any system providing this interface, not only FreeBSD.
1490         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1491
1492 2006-08-20  Havoc Pennington  <hp@redhat.com>
1493
1494         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1495         the docs
1496
1497 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1498
1499         * Released 0.92 
1500
1501 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1502
1503         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1504         to reflect the init late change
1505
1506         * bus/bus.c (bus_context_new): Check user before we fork so we can
1507         print out an error message a user will be able to see
1508
1509 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1510
1511         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1512
1513         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1514         Add two more global locks for use on windows platforms.  These are
1515         unused on non-windows platforms but are not ifdefed out to avoid
1516         potential bugs (i.e. the few bytes lost does not warrent the extra
1517         maintanence and complexity that having seperate sets of locks would
1518         cause)
1519
1520 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1521
1522         * bus/services.c (bus_registry_acquire_service): Return an error
1523         when an application tries to register the org.freedesktop.DBus Bus Name
1524
1525         * bus/services.c (bus_registry_release_service): Return an error
1526         when an application tries to release the org.freedesktop.DBus Bus Name
1527
1528 2006-08-17  Alp Toker  <alp@atoker.com>
1529
1530         * doc/dbus-specification.xml: Fix some minor typos.
1531
1532 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1533
1534         * configure.in: use $with_init_scripts instead of $operating_system
1535         to determine where to store the pid since the init scripts manipulate 
1536         the pid file (patch from Marcelo Ricardo Leitner 
1537         <marcelo dot leitner at terra dot com dot br>.  
1538
1539 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1540
1541         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1542         static DBusList *uninitialized_condvar_list to support new late 
1543         initialization threading model.  In this model threads can be initialized
1544         even after the D-Bus API has been used but still needs to be initialized 
1545         before the second thread has been started.  Mutexes and condvar addresses
1546         are stored in the two static lists and are replaced with actuall locks
1547         when threads are initalized.
1548         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1549         the location into the static list
1550         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1551         from the static list and freeing the mutex
1552         (_dbus_condvar_new_at_location): New method for creating a conditional 
1553         variable and placing the location into the static list
1554         (_dbus_condvar_free_at_location): New method for removing a conditional
1555         variable location from the static list and freeing the conditional variable 
1556         (init_uninitialized_locks): Atomic method which goes through the static 
1557         lists of mutex and condvar location and updates them with actuall locks
1558         (init_global_locks): changed to init_locks
1559         
1560         * dbus/dbus-connection.c:
1561         (_dbus_connection_test_get_locks): New method for tests to check connections
1562         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1563         condvar API
1564         (dbus_connection_allocate_data_slot): Pass in the global lock address
1565         to _dbus_data_slot_allocator_alloc
1566
1567         * dbus/dbus-dataslot.c:
1568         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1569         instead of the mutex itself
1570
1571         * dbus/dbus-message.c:
1572         (dbus_message_allocate_data_slot): Pass in the global lock address
1573         to _dbus_data_slot_allocator_alloc
1574
1575         * dbus/dbus-pending-call.c:
1576         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1577         to _dbus_data_slot_allocator_alloc
1578
1579         * dbus/dbus-server.c:
1580         (_dbus_server_init_base): Use the new at_location mutex API
1581         (dbus_server_allocate_data_slot): Pass in the global lock address
1582         to _dbus_data_slot_allocator_alloc
1583
1584         * test/name-test/test-threads-init.c: New test case for late thread
1585         initialization
1586
1587 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1588
1589         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1590         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1591         causes compile problems when asserts are turned off
1592         Keeping _dbus_warn for printing out the message so even if
1593         asserts are turned off the user gets the messages that something is 
1594         wrong 
1595
1596 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1597
1598         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1599
1600         * bus/services.c (bus_service_list_queued_owners):
1601         Add a pointer cast to fix compiler warning
1602
1603         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1604         return a NULL instead of FALSE since the return type
1605         is not expecting a boolean
1606
1607         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1608         Remove unused variable
1609
1610         * dbus/dbus-marshal-recursive-util.c (node_new):
1611         return a NULL instead of FALSE since the return type
1612         is not expecting a boolean
1613
1614         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1615         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1616         because we are expecting a pointer not a boolean
1617
1618         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1619         add void as the parameter so some compilers
1620         don't complain
1621
1622         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1623           _dbus_transport_new_for_tcp_socket):
1624         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1625         because we are expecting a pointer not a boolean
1626
1627         * test/shell-test.c (test_command_line):
1628         cast the second argument to _dbus_list_append to avoid compiler
1629         warnings
1630
1631         * test/test-names.c (main): remove unused variable
1632
1633         * test/test-service.c (check_hello_from_self_reply):
1634         Initialize echo_message and echo_reply to NULL
1635         
1636         * test/test-shell-service.c (handle_echo):
1637         Remove unused variable and cast the third parameter passed to
1638         dbus_connection_get_object_path_data to avoid compiler warrnings
1639
1640         * test/name-test/test-names.c (clear_message_queue):
1641         Remove unused function
1642
1643         * test/name-test/test-pending-call-dispatch.c:
1644         Fix format string in printf
1645
1646
1647 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1648
1649         * dbus/dbus-bus.c:
1650         * test/name-test/test-names.c:
1651         Remove test method dbus_bus_connection_get_unique_name because 
1652         we already have public method dbus_bus_get_unique_name that 
1653         does the exact same thing
1654
1655 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1656
1657         * dbus/dbus-signature.c:
1658         fix typos in Julio's previous patch which cause make check to fail
1659
1660 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1661
1662         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1663         In any case it was wrong since this is a test checking to see if
1664         address parsing is correct.  There was no need to get the true
1665         tmp directory.  
1666
1667 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1668
1669         * dbus/dbus-macros.h: Revert the addition of stddef.h
1670         as we should not be adding it to library headers 
1671
1672 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1673
1674         * dbus/dbus-signature.c:
1675         Fix the unit tests so that they work if assertions are not enabled.
1676         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1677
1678 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1679
1680         * tools/run-with-tmp-session-bus.sh:
1681         * test/name-test/run-test.sh:
1682         Remove bashisms (patch from Julio M. Merino Vidal
1683         <jmmv at NetBSD dot org>)
1684
1685 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1686
1687         * configure.in: add a version (>= 2.6.0) check for libxml2
1688
1689 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1690
1691         * configure.in: make sure the compiler supports -Wfloat-equal
1692         
1693         * bus/dir-watch-dnotify.c: move functional code after 
1694         variable declerations (C99 fix)  (patches from Jens Granseuer
1695         <jensgr at gmx dot net>
1696
1697 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1698
1699         * dbus/dbus-macros.h:
1700         add #include <stddef.h> so that Sun compilers don't complain about
1701         the defining NULL
1702
1703 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1704
1705         * dbus/dbus-sysdeps.c:
1706         * dbus/dbus-address.c:
1707         * bus/activation.c:
1708         * test/shell-test.c:
1709         don't hardcode tmp directory (patch from Dave Meikle 
1710         <dmk at davemeikle dot co dot uk>)
1711
1712 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1713
1714         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1715         Change an assert to a detailed warning and abort.  
1716         When allocator->lock != mutex it indicates that the user has failed
1717         to initalize threads before using the D-Bus library.  This warning
1718         helps the user identify the issue and fix their app.
1719
1720 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1721
1722         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1723         with cleanups of bugs found from Coverity reports:
1724
1725         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1726         close the file on error to avoid a leak
1727
1728         * bus/expirelist.c (bus_expire_list_test):
1729         Check for NULL on dbus_new0
1730
1731         * bus/activation.c (update_directory):
1732         remove dead code
1733
1734         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1735         Fix some leaks
1736
1737         * bus/bus.c (process_config_every_time):
1738         Fixed a leak
1739
1740         * bus/desktop-file.c (parse_key_value):
1741         Fixed leak
1742
1743         * bus/selinux.c (bus_selinux_id_table_insert):
1744         Fixed leak
1745
1746 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1747
1748         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1749         remove dead code
1750
1751 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1752
1753         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1754         #!/bin/bash
1755
1756 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1757
1758         * Doxyfile.in: fix the INPUT line so we can generate docs 
1759         when sourcedir != builddir (patch from Cygwin Ports maintainer
1760         <yselkowitz at users dot sourceforge dot net>
1761
1762 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1763
1764         * dbus/dbus-sysdeps.h:
1765         * dbus/dbus-sysdeps.c: 
1766         * dbus/dbus-string.c: 
1767         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1768         GLib's function which does the same thing
1769
1770         * configure.in:
1771         * bus/Makefile.am:
1772         * bus/dir-watch-default.c:
1773         * bus/dir-watch-dnotify.c:
1774         * bus/dir-watch-kqueue.c:
1775         Add kqueue directory watching for freebsd and split the directory
1776         watching code into seperate files per method/arch
1777         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1778
1779 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1780
1781         * configure.in:
1782         * tools/Makefile.am:
1783         * tools/dbus-launch.c:
1784         * bus/Makefile.am:
1785         allow --with-dbus-daemondir switch to be used to make the
1786         daemon install to a seperate bindir like /usr/libexec
1787         (patch from Brian Cameron <brian dot cameron at sun dot com)
1788
1789 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1790
1791         * bus/Makefile.am (install-data-hook): removed the slash after 
1792         $(DESTDIR) so we don't get the double slash which does not work
1793         in windows (patch from Andras Porjesz 
1794         <andras dot porjesz at siemens dot com>)
1795
1796 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1797
1798         * dbus/dbus-sysdeps.h:
1799         * dbus/dbus-sysdeps.c: 
1800           add _dbus_printf_length (patch from Peter Kümmel 
1801           <syntheticpp at gmx dot net>)
1802
1803 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1804
1805         * dbus/dbus-internals.c: unistd.h is not used 
1806         (_dbus_verbose_real): only enable verbose printing 
1807         if DBUS_VERBOSE environment var is set to '1'
1808         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1809
1810 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1811
1812         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1813         so we still compile on older gcc (patch from Frederic Peters 
1814         <fpeters at 0d dot be>
1815
1816 2006-08-04  Havoc Pennington  <hp@redhat.com>
1817
1818         * configure.in: add -Wdeclaration-after-statement
1819
1820         * dbus/dbus-connection.c: change all the pending call stuff to
1821         reflect the fact that pending call operations use the connection
1822         lock
1823
1824         * dbus/dbus-pending-call.c: add locking here
1825
1826         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1827         field const consistent with how message field is done
1828
1829 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1830
1831         * s/D-BUS/D-Bus/g
1832
1833 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1834
1835         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1836         <in7y118 at public.uni-hamburg dot de> - fix invalid
1837         read/write reported by valgrind
1838
1839 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1840
1841         * Released 0.91
1842
1843 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1844
1845         * dbus/dbus-connection.c:
1846         (_dbus_connection_attach_pending_call_unlocked):
1847         (connection_timeout_and_complete_all_pending_calls_unlocked):
1848         Make sure we set timeout_added on pending calls to FALSE when
1849         we remove the timeout from the connection
1850
1851 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1852
1853         * Removed some extra bindings stuff lingering around (thanks timo)
1854         * dbus-pendingcall.c (_dbus_pending_call_new): 
1855         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1856         when we tried to take a lock on an already locked connection
1857
1858 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1859
1860         * Released 0.90
1861
1862 2006-07-17  Havoc Pennington  <hp@redhat.com>
1863
1864         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1865         ints, reported by Owen Taylor
1866
1867 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1868
1869         * doc/TODO:
1870         * dbus/dbus-bus.c:
1871         * dbus-errors.c:
1872         * dbus/dbus-marshal-validate.c:
1873           Removed TODO items which were fixed or are no longer relevent
1874
1875 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1876
1877         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1878         Remove stray files from the stripped bindings
1879
1880 2006-07-16  Havoc Pennington  <hp@redhat.com>
1881
1882         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1883         Improve the error message on reply timeout
1884
1885 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1886
1887         * Remove all bindings
1888
1889 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1890
1891         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1892         and set pending_reply out arg to NULL is connection is disconnected
1893         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1894         static method for cleaning up pending calls on disconnect
1895         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1896         calls queued timeouts on disconnect 
1897
1898          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1899         Remove 
1900
1901 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1902
1903         * bus/activation.[ch] (bus_activation_list_services): new function to 
1904         get the list of services that can be activated
1905
1906         * bus/dispatch.c: test coverage for the new bus method
1907         ListActivatableNames
1908
1909         * bus/driver.c: new bus method ListActivatableNames to get the list of
1910         services that can be activated
1911
1912         * doc/dbus-specification.xml: ListActivatableNames method documentation
1913
1914 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1915         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1916         source files
1917
1918 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1919         * dbus/dbus-message-factory.c:
1920         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1921
1922 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1923         * dbus/dbus-connection-internal.h:
1924         * dbus/dbus-connection.c:
1925         * file dbus/dbus-pending-call.c:
1926         * dbus/dbus-pending-call.h:
1927         Make DBusPendingCall an opaque type even to D-Bus internals
1928
1929 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1930
1931         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1932         connection_close
1933
1934         * dbus/dbus-connection.c: include dbus-bus.h
1935         (_dbus_connection_read_write_dispatch): make static
1936
1937 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1938
1939         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1940         function
1941         (dbus_connection_dispatch): On disconnect unref any shared connections
1942
1943         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1944         for cleaning up shared connections on disconnect
1945         (internal_bus_get): get a hard refrence to shared connections when
1946         they are created
1947         
1948         * doc/TODO: Remove items which are no longer relevent or have been fixed
1949         Split 1.0 todo items with a 0.90 freeze todo list
1950  
1951 2006-06-14  Ross Burton  <ross@openedhand.com>
1952
1953         * glib/dbus-gobject.c:
1954         Free a leaking GArray (surely not!) in dbus_g_method_return.
1955
1956 2006-06-14  Ross Burton  <ross@openedhand.com>
1957
1958         * tools/Makefile.am:
1959         * tools/dbus-monitor.c:
1960         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1961         Habacker).
1962         
1963 2006-06-14  Ross Burton  <ross@openedhand.com>
1964
1965         * tools/dbus-print-message.c:
1966         Also print the object path when outputting signals or method calls.
1967
1968 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1969
1970         * qt/src/Makefile.am: install the qdbus.h header.
1971         This allows people to actually use the installed code.
1972
1973 2006-06-12  Ross Burton  <ross@openedhand.com>
1974
1975         * glib/dbus-gproxy.c:
1976         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1977
1978 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1979
1980         * Released 0.62
1981
1982 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1983
1984         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1985         break pedantic builds. Closes bug 6043 (patch approved by
1986         Havoc back in February).
1987
1988 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1989
1990         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1991         that took a QDBusMessage parameter.
1992         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1993         * qt/tools/dbus.cpp: Don't use automatic call because we might
1994         be calling an async method: request a reply.
1995
1996 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1997
1998         * test/qt/*: Update the testcases, including testing the new
1999         functionality of sending null QByteArray and QString over the
2000         bus. Add new headertest test and restore the old
2001         qdbusxmlparser test.
2002
2003 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2004
2005         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2006         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2007
2008         * qt/examples/Makefile.am:
2009         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2010         form.
2011
2012         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2013         QByteArray() (nulls) over the bus.
2014         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2015         the one that has the signature suffix stripped.
2016         * qt/src/qdbusreply.h: Make some methods const.
2017
2018 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2019
2020         Patch from Timo Hoenig <thoenig@suse.de>.
2021
2022         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2023         required during build to EXTRA_DIST.
2024         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2025         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2026         * configure.in: Fix "make dist", take care that the Makefile for
2027         qt/dbus is being generated.
2028
2029 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2030
2031         * bus/bus.c: Fix eavesdropping on method calls
2032
2033 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2034
2035         * configure.in:
2036         * dbus/dbus-userdb-util.c:
2037         Add Solaris console owner patch from Artem Kachitchkine
2038
2039 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2040
2041         * qt/Makfile.am:
2042         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2043         reorganisation. Thanks to Timo Hoenig for pointing this out.
2044
2045 2006-06-06  Robert McQueen  <robot101@debian.org>
2046
2047         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2048           call to dbus_g_type_get_struct.
2049
2050 2006-06-06  Robert McQueen  <robot101@debian.org>
2051
2052         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2053           pointers were put into a GPtrArray-based specialised collection, and
2054           then freed along with the array. GValues which you add into
2055           collections or maps which have the NOCOPY flag set are assumed to not
2056           belong to the caller, so rather than the existing pointer-stealing
2057           semantics, they are copied instead. Given that the main consumers of
2058           this abstraction are the bindings themselves, I don't think this is
2059           too bad, but others should watch their choice of take vs set_static.
2060
2061 2006-06-06  Robert McQueen  <robot101@debian.org>
2062
2063         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2064           of g_slist_prepend not being used. Fixed copying of slist-based
2065           specialised collections, then wrote a test case and found that it was
2066           all broken. Went on to fix iterating and appending too. Good thing
2067           nobody uses this code yet.
2068
2069 2006-06-06  Robert McQueen  <robot101@debian.org>
2070
2071         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2072           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2073           are discarded without unsetting, so it makes no difference whether
2074           we take or set_static). Remove cases for G_TYPE_POINTER because
2075           there really is nothing useful we can do with them in our
2076           specialised types - we *need* boxed copy/free functions at the very
2077           least.
2078
2079 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2080
2081         * qt/dbus: Add directory. I had forgotten to add this
2082         yesterday after the move...
2083
2084         * qt/examples/Makefile.am:
2085         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2086
2087         * qt/tools/Makefile.am:
2088         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2089         Added feature to get and set properties.
2090         Added validation of service, object path and interface names.
2091
2092         * qt/tools/dbusidl2cpp.cpp: Two new features:
2093         1) Allow specifying both the header and the source file names,
2094         by separating them with a colon.
2095         2) Don't write an interface output if the -p switch wasn't
2096         given, but the -a was.
2097
2098         * qt/src/*: Fix usage of Iterators and ConstIterators.
2099         Fix shadowing of variables by other variables (-Wshadow).
2100         Fix keyword-cleanliness in headers.
2101         Fix ASCII-cast (QLatin1String, QLatin1Char).
2102         Fix validation of member names.
2103         Add extra checking of introspection data during XML parsing.
2104         Various bug fixes.
2105
2106 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2107
2108         * dbus/Makefile.am:
2109         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2110         qt/dbus/qdbus.h now.
2111
2112 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2113
2114         * configure.in: Make --disable-qt actually do
2115           something. Patch inspired by Zack Rusin.
2116
2117 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2118
2119         * qt/: Update to Subversion r548032.
2120         This includes a big reorganisation of the files inside the
2121         subdir.
2122
2123 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2124
2125         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2126         clear:  
2127         "Failed to connect to socket <host>:<port> <error>" instead of
2128         "Failed to connect to socket <host>: <error>:<port>"
2129
2130         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2131         for a tcp transport. 
2132
2133 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2134
2135         * qt/*: Update the QtDBus bindings up to revision 546310 in
2136         Subversion.
2137         This adds the dbuscpp2xml tool, that parses a C++ header and
2138         outputs a D-BUS Introspection XML.
2139
2140 2006-05-21  Havoc Pennington  <hp@redhat.com>
2141
2142         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2143         is not NULL when it shouldn't be. Also a couple of possible fixes
2144         for #4637 though I don't understand why the bug happens, to be
2145         honest... also the object constructor has an assert name != NULL
2146         and the name is only currently NULL for peer-to-peer proxies that 
2147         I don't think anyone uses? So it should be asserting.
2148         Anyway, for now at least see if we get an earlier assertion failure.
2149
2150         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2151         apparently broken code to be sure the tests fail and someone 
2152         will fix them...
2153
2154 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2155
2156         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2157         and arrays when they had a single element: has_next returns
2158         false, even before you read the element. So, instead, check
2159         the array length.
2160
2161 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2162
2163         * qt/qdbusmessage.cpp:
2164         * qt/qdbustypehelper_p.h:
2165         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2166         the list is a const-reference
2167
2168 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2169
2170         * Adding old doc patch that never got applied
2171         
2172         * dbus/bus.c (dbus_bus_add_match): Add documentation
2173
2174         * doc/dbus-specification.xml: Add documentation for the match rules
2175           and the AddMatch and RemoveMatch methods
2176
2177 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2178
2179         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2180         call (r535506)
2181
2182         * qt/dbusidl2cpp.cpp:
2183         * qt/qdbusabstractadaptor.cpp:
2184         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2185         sibling of the QDBusAbstractAdaptor objects instead of the
2186         parent. (r535848)
2187
2188         * qt/dbusidl2cpp.cpp:
2189         * qt/qdbusabstractinterface.cpp:
2190         * qt/qdbusabstractinterface.h:
2191         * qt/qdbusabstractinterface_p.h:
2192         * qt/qdbusinterface.cpp: Make properties in interfaces
2193         actually work. The code that was generated would not compile,
2194         due to moc calls to functions that did not exist. They now
2195         shall. (r536571)
2196
2197 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2198
2199         * Makefile.am:
2200         * configure.in:
2201         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2202         Thanks to Brad Hards for providing the patch
2203
2204 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2205
2206         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2207         call. (r535506)
2208
2209 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2210
2211         * qt/examples/dbus.cpp: Enhance error messages and use
2212         QDBusInterfacePtr.
2213
2214 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2215
2216         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2217         and disable the copy operators. (r533772, r534746)
2218
2219         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2220
2221         * qt/qdbusabstractinterface.cpp:
2222         * qt/qdbusabstractinterface.h: Change the default call mode to
2223         not use the event loop. Add convenience call() methods that
2224         take a CallMode parameter. (r534042)
2225
2226         * qt/qdbusconnection.h: Change the default call mode to not
2227         use the event loop. (r534042)
2228
2229         * qt/qdbusinterface.cpp:
2230         * qt/qdbusinterface.h: Add a method to tell us if the
2231         interface is valid (since we don't return a null pointer
2232         anymore) (r534099)
2233
2234         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2235         (r534101)
2236
2237         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2238         function in two so taht we get the chance to introspect
2239         without having a QDBusMessage (r534102)
2240
2241         * qt/qdbusbus.h:
2242         * qt/qdbusconnection.cpp:
2243         * qt/qdbusconnection_p.h:
2244         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2245         avoid a round-trip to the server when attempting to introspect
2246         one of our own objects. Also make sure the filter functions
2247         match the empty interface as well. (r534108)
2248         Don't keep the connection names. Instead, trust the unique
2249         connection name (r534111)
2250         Remove event loop usage (r534112)
2251
2252 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2253
2254         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2255         Brad Hards.
2256
2257 2006-04-28  Robert McQueen  <robot101@debian.org>
2258
2259         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2260         any order, making it easier for people who inherit from this
2261         object.
2262
2263 2006-04-28  Robert McQueen  <robot101@debian.org>
2264
2265         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2266         of memory from within pointer arrays and lists. Fixes bug #6300.
2267
2268 2006-04-28  Robert McQueen  <robot101@debian.org>
2269
2270         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2271         generating struct signatures. Fixes bug #6083.
2272
2273 2006-04-28  Robert McQueen  <robot101@debian.org>
2274
2275         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2276         to qdbusconnection_p.moc.
2277
2278 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2279
2280         * README, INSTALL: Doc fixes
2281         Patch from Brad Hards <bradh at frogmouth.net>
2282
2283 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2284
2285         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2286         the dynamic meta object. No need to guess which interface to
2287         call.
2288
2289 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2290
2291         * qt/qdbusconnection_p.h:
2292         * qt/qdbusmetaobject.cpp:
2293         * qt/qdbusmetaobject_p.h:
2294         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2295         for the dynamic meta object. No need to guess which
2296         interface to call.
2297         * qt/qdbusabstractinterface_p.h:
2298         * qt/qdbusconnection.cpp:
2299         * qt/qdbusintegrator.cpp:
2300         * qt/qdbusinterface.cpp:
2301         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2302         Add a QDBusRef that looks and behaves like DCOPRef.
2303
2304 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2305
2306         * dbus/dbus-connection.c: Interfaces are optional in method
2307         calls, so don't give up if the interface parameter is NULL.
2308         Patch reviewed by Havoc Pennington.
2309
2310 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2311
2312         * qt/qdbusreply.h: Add default constructor and operator=
2313           (r532625)
2314         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2315           in public headers (r532952)
2316         * qt/qdbusabstractinterface.cpp:
2317         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2318           make it the default (r532951)
2319
2320 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2321
2322         * dbus/dbus-connection.c: Fix asserts
2323         Patch from Tim Moloney <t.moloney at verizon.net>
2324
2325 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2326
2327         * mono/Connection.cs, mono/Message.cs: Check Target type
2328         Patch from Aaron Bockover (abockover at novell.com)
2329
2330 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2331
2332         * INSTALL: fine-tune the requirements for the Qt4 binding.
2333
2334 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2335
2336         * tools/dbus-print-message.c: Added support for printing of all 
2337           remaining data types. Fixed logic for indentation of compound
2338           data types.
2339         
2340 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2341
2342         * INSTALL: fill out content of file providing DBus specific
2343           build installations, followed by generic Auto* INSTALL file
2344           content
2345         
2346 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2347
2348         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2349           Patch by Stefan Eilers. (r529537)
2350
2351 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2352
2353         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2354           contents (r528208)
2355
2356 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2357
2358         * qt/Makefile.am: fix the dependency for
2359           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2360           not in qdbusconnection.cpp.
2361           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2362           spotting this.
2363
2364 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2365
2366         * qt/examples/listnames.cpp:
2367         * qt/examples/Makefile.am: Three ways to list the names on the
2368           bus.
2369
2370 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2371
2372         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2373           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2374
2375 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2376
2377         Merge from Subversion:
2378         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2379           something that exists (r526315)
2380         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2381           slots/signals (r526316)
2382         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2383           also return an unknown-method error if the parameters don't
2384           match for org.freedesktop.DBus.Properties. (r526842)
2385         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2386         * qt/qdbusintegrator.cpp: Restore the proper order of
2387           delivery: don't make method returns be delivered on priority
2388           (r528150)
2389
2390 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2391
2392         * configure.in qt/Makefile.am: add qt/examples
2393         * qt/examples: Add QtDBus example programs:
2394           - hello: Hello, World
2395           - ping: Simple method-calling program
2396           - pong: Simple object-exporting program (not using adaptors)
2397           - complexping: Interactive method-calling program 
2398                 (also gets and sets properties).
2399           - complexpong: Sample program exporting methods, signals and
2400                 properties, using adaptors.
2401           - dbus: Simple implementation of a generic method-calling
2402                 program, similar to 'dbus-send', but with semantics
2403                 similar to 'dcop'.
2404           - chat: Simplistic chat program, implemented using signals
2405                 and the system bus. Looks like IRC.
2406
2407 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2408
2409         * configure.in: Detect QtGui (necessary for one of the
2410           example programs). Note: this increases the minimum required
2411           version of Qt to 4.1.3.
2412
2413 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2414
2415         * test/qt/*: Sync with KDE Subversion revision 523647.
2416         Update the testcases to the new API. Remove testcases for
2417         classes that are no longer public or have been removed.
2418
2419 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2420
2421         * qt/*: 
2422         * dbus/qdbus.h: Sync with KDE Subversion revision
2423         523647. Hopefully, this will be the last of the
2424         source-incompatible changes. Documentation has been improved;
2425         support for QList<basic-types> has been added; QDBusObject is
2426         gone; QDBus(Abstract)Interface is now a QObject with
2427         auto-generated meta-object; QDBusIntrospection is marked
2428         private, since QMetaObject can be used now; lots of bugfixes.
2429
2430 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2431
2432         Patch from Milosz Derezynski <internalerror at gmail.com>
2433         
2434         * configure.in:
2435         Output the service directory in the configure summary
2436
2437         * dbus-1.pc.in:
2438         Add session_bus_services_dir
2439
2440 2006-03-10  Ross Burton  <ross@openedhand.com>
2441
2442         * tools/dbus-print-message.c:
2443         Add support for object paths and signatures.
2444
2445 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2446
2447         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2448         config reload.
2449         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2450         information caches
2451         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2452         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2453         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2454         * dbus/dbus-userdb.h: Add function to flush all user/group information
2455         caches.
2456
2457 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2458
2459         * qt/dbusidl2cpp.cpp:
2460         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2461         for dcopidl2cpp, found in the KDE installations (or the more
2462         modern kalyptus): generate Qt4 C++ code for the input XML
2463         introspection. Currently no IDL parsing.
2464
2465 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2466
2467         * test/qt/*: Update the self-tests.
2468
2469 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2470
2471         * qt/*: 
2472         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2473         represents the first feature-complete version of the Qt4
2474         bindings since I took ove maintainership.
2475
2476 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2477
2478         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2479         dir. This is C++, so we can't use the DBus ones.
2480
2481 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2482
2483         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2484         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2485
2486 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2487
2488         * dbus/dbus-connection.c: 
2489         (_dbus_connection_block_pending_call):
2490         Check to see if our data has already been read off the connection
2491         by another blocking pending call before we block in poll.
2492         (check_for_reply_and_update_dispatch_unlocked):
2493         Code taken from _dbus_connection_block_pending_call - checks for
2494         an already read reply and updates the dispatch if there is one.
2495
2496         * test/name-test/test-pending-call-dispatch.c:
2497         New test for making sure we don't get stuck polling a 
2498         dbus connection which has no data on the socket when
2499         blocking out of order on two or more pending calls.
2500
2501 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2502
2503         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2504         make/automake don't detect that we're talking about the same
2505         .lo file if I specify the full path to the source files.
2506
2507 2006-02-26  Havoc Pennington  <hp@redhat.com>
2508
2509         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2510
2511         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2512         session bus variable is unset, suggest "man dbus-launch" and "man
2513         dbus-daemon" to figure out how to fix the problem
2514
2515 2006-02-25  Havoc Pennington  <hp@redhat.com>
2516
2517         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2518         should make this thing use the new glib options parser
2519
2520 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2521
2522         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2523         .lo files taking moc sources.
2524
2525 2006-02-25  Havoc Pennington  <hp@redhat.com>
2526
2527         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2528         and install it as a public header
2529
2530 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2531
2532         * Released 0.61
2533
2534 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2535         
2536         * proxies.py: Fix the callchain
2537
2538 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2539         
2540         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2541
2542         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2543         dbus/dbus-sysdeps.c
2544
2545         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2546         call _dbus_group_info_free_allocated which causes infinite loop,
2547         correctly call _dbus_group_info_free
2548
2549 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2550
2551         * qt/qdbusinterface_p.h:
2552         * qt/qdbusinterface.cpp: Use the standard
2553         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2554         calls instead of creating one for us.
2555
2556         * qt/qdbusconnection_p.h:
2557         * qt/qdbusintegrator.cpp: Remove debugging code.
2558
2559         * qt/qdbusintegrator.cpp:
2560         * qt/qdbusmessage.cpp:
2561         * qt/qdbusmessage_p.h:
2562         * qt/qdbusmessage.h: Change the behaviour of automatic
2563         reply-sending: now a reply is always sent, unless the caller
2564         didn't request one or if the user slot has already sent one.
2565
2566 2006-02-16  Robert McQueen  <robot101@debian.org>
2567
2568         * configure.in: Patch from Debian packages by Sjoerd Simons
2569         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2570         arguments so it's possible to build both bindings in the
2571         same tree.
2572
2573         * qt/Makefile.am: Fix truncated value so that make dist works.
2574
2575 2006-02-16  Robert McQueen  <robot101@debian.org>
2576
2577         * acinclude.m4, configure.in: Patch from Brad Hards
2578         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2579         improving quoting, re-ordering a few checks, and a few other
2580         aesthetic tidy-ups.
2581
2582 2006-02-16  Robert McQueen  <robot101@debian.org>
2583
2584         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2585         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2586         assertion that the next element to read from the iter is fixed in
2587         size. This is not the case when you are at the end of the iter,
2588         because the next element type is INVALID.
2589
2590         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2591         a bogus assert which means that you may not initialise a 0-length
2592         string unless you provide a non-NULL pointer. This prevented
2593         you from marshalling messages containing zero-length arrays in
2594         some cases.
2595
2596         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2597         from Rob to correct bogus asserts when trying to demarshal an
2598         array and get_fixed_array got you 0 elements. Append nothing to
2599         the GArray in this case.
2600
2601         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2602         an empty array via the glib bindings. Without all of the above
2603         patches, this new test fails.
2604
2605 2006-02-16  Robert McQueen  <robot101@debian.org>
2606
2607         * glib/dbus-gmain.c: Make the previous commit compile.
2608
2609         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2610         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2611         specify sender_keyword="foo", path_keyword="bar" when adding
2612         a signal listener, so that you can bind to signals generically
2613         but still do something useful in your callback.
2614
2615         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2616         chars so that they're not cast to chars and made negative. Thanks
2617         to Jakub Stachowski for reporting this and testing the fix.
2618
2619 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2620
2621         * dbus/dbus-glib.h:
2622         * glib/dbus-gmain.h:
2623         (dbus_g_connection_open): new method for openning
2624         a connection to an arbitrary address in the glib bindings
2625
2626         * ChangeLog: checkin last entry which doesn't seem to be commited
2627
2628 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2629
2630         * tools/dbus-launch.c: Fixed sh syntax output
2631
2632 2006-02-13  Robert McQueen  <robot101@debian.org>
2633
2634         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2635         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2636         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2637         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2638         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2639         missing piece of the glib bindings jigsaw puzzle. This modifies
2640         the existing specialised types to have N type parameters (rather
2641         than the current 1 or 2 for arrays and dictionaries respectively).
2642         You can then use this to get a glib type to represent any arbitrary
2643         D-Bus struct type using dbus_g_type_get_struct. The only
2644         implementation of these types is with GValueArrays as before,
2645         but it's now possible to store these in arrays, emit them in
2646         signals, etc.
2647
2648 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2649
2650         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2651         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2652         <thiago.macieira at trolltech.com>
2653
2654 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2655
2656         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2657         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2658
2659 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2660
2661         * bus/connection.c (bus_connections_expect_reply): Make
2662         pending reply limit not common to all connections (Bug #5416)
2663         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2664
2665 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2666
2667         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2668
2669 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2670
2671         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2672         patch from Doug Goldstein <cardoe at gentoo.org>
2673
2674 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2675
2676         * mono/Arguments.cs: Fix a magic number in the mono bindings
2677         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2678
2679 2006-01-27  Robert McQueen  <robot101@debian.org>
2680
2681         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2682         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2683         when generating the client-side methods, instead of overloading
2684         CSymbol which broke everything horribly. My apologies.
2685
2686 2006-01-27  Robert McQueen  <robot101@debian.org>
2687
2688         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2689         by me and Rob Taylor to add a simple_free function to D-Bus map
2690         and collection types, which allows those types which can be freed
2691         with a GDestroyNotify (such as GHashTables and GArrays, but not
2692         GPtrArrays) to be stored as the values in hashtables.
2693
2694         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2695         Patch by Rob Taylor to add nested dicts to the glib tests to check
2696         the above code works, and appears not to leak when called repeatedly.
2697
2698 2006-01-27  Robert McQueen  <robot101@debian.org>
2699
2700         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2701         to free a D-Bus allocated string with dbus_free () instead of
2702         g_free ().
2703
2704 2006-01-27  Iain Holmes  <iain@openedhand.com>
2705
2706         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2707         method from being called multiple times.
2708
2709 2006-01-19  Robert McQueen  <robot101@debian.org>
2710
2711         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2712         <rob.taylor@collabora.co.uk> to add support for generating bindings
2713         to arrays that are represented as GPtrArrays rather than GArrays (ie
2714         size-variable things, such as strings, objects, structs, etc).
2715
2716 2006-01-05  Robert McQueen  <robot101@debian.org>
2717
2718         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2719         <ricardo.kekki@movial.fi> to make it possible to inherit from
2720         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2721         a private part, and moving the setting of the DBusGProxyManager into a
2722         connection property, allowing proper GObject construction.
2723
2724 2006-01-05  Robert McQueen  <robot101@debian.org>
2725
2726         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2727         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2728         annotations when generating glib client bindings.
2729
2730 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2731
2732         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2733
2734         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2735
2736 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2737
2738         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2739
2740 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2741
2742         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2743
2744 2005-12-19  Ross Burton  <ross@openedhand.com>
2745
2746         * doc/dbus-tutorial.xml:
2747         Document the Glib client-side bindings, and list all possible annotations.
2748
2749 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2750
2751         * dbus/bus.c (dbus_bus_release_name): Add documentation
2752
2753 2005-12-06  Robert McQueen  <robot101@debian.org>
2754
2755         * python/service.py: s/sucessful/successful/ so we're allocating to
2756         and reading from the same variable. Oops.
2757
2758 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2759
2760         * Released 0.60
2761
2762 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2763
2764         * test/qt/Makefile.am: build from srcdir
2765
2766         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2767         Note - this code is wrong and needs to be fixed by the Qt binding
2768         developers.  The flags should be treated as bitfields and not enums.
2769
2770         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2771
2772 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2773
2774         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2775           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2776           in production code
2777
2778 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2779
2780         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2781         method for getting messages off the bus in the absence of a
2782         mainloop.  This method is much like 
2783         dbus_connection_read_write_dispatch except it does not dispatch
2784         the messages to a registered filter function.  Instead it
2785         allows a developer to process messages by directly popping
2786         them off the bus.
2787
2788 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2789
2790         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2791         the parser to continue instead of returning error
2792         (bus_desktop_file_load): Do not free parser data when
2793         parse_section_start or parse_key_value fails because it was 
2794         already freed by parser_free (patch from Carlos Garcia Campos  
2795         <carlosgc at gnome.org>)
2796
2797 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2798
2799         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2800         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2801         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2802         test/test-segfault.c, test/test-utils.c,
2803         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2804         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2805         Various cleanup of dead code and compiler warnings (patch from
2806         Kjartan Maraas <kmaraas at gnome.org>) 
2807
2808 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2809
2810         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2811         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2812
2813 2005-11-27  Robert McQueen  <robot101@debian.org>
2814
2815         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2816         part of the preceding one. Oops. Merge patch by Johan Hedberg
2817         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2818         on big-endian platforms.
2819
2820         * test/python/test-client.py: Add some 16-bit integers to the test
2821         values.
2822
2823 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2824
2825         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2826         method return message for property getters
2827
2828 2005-11-27  Robert McQueen  <robot101@debian.org>
2829
2830         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2831         with type v of an instance of dbus.Variant(foo, type='x') caused
2832         it to be boxed twice before sending over the bus.
2833
2834         * python/dbus_bindings.pyx, python/service.py,
2835         test/python/test-client.py: Update the constants for the new
2836         request_name flags, and update comments/test cases now that queueing
2837         is the default action.
2838
2839 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2840
2841         * configure.in:
2842         - Change version to 0.60 for impending release
2843         - upped the sonames because of ABI and API breakage
2844
2845 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2846
2847         * configure.in: Add test/name-test/Makefile to the generated
2848         Makefile list
2849
2850         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2851         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2852         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2853         not to queue an ower if it can't be the primary owner
2854
2855         * bus/bus.h: Add new internal BusOwner struct
2856
2857         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2858         to bus_registry_ensure and don't set the prohibit_replacement flag
2859         since they are now set per BusOwner and not per name.
2860         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2861         that returns the list of connections in a name's connection queue
2862         
2863         * bus/services.c (struct BusService): remove prohibit_replacement field
2864         (struct BusOwner): new struct for keeping track of queued connections
2865         and their associated flags for the queue
2866         (struct BusRegistry): add a BusOwner memory pool
2867         (bus_registry_new): initialize the BusOwner memory pool
2868         (bus_registry_unref): free the BusOwner memory pool
2869         (_bus_service_find_owner_link): new internal method for
2870         searching the queue for a specific connection
2871         (bus_owner_set_flags): new method for adding setting the flags on a
2872         bus owner
2873         (bus_owner_new): new method that creates a BusOwner object from the
2874         pool and sets its flags
2875         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2876         (bus_registry_ensure): Add the flags parameter
2877         (bus_registry_acquire_service): Switch from using raw connections to
2878         using the BusOwner struct
2879         Add new state machine for dealing with the new set of flags
2880         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2881         cancel_ownership, free_ownership_cancel_data, 
2882         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2883         restore_ownership, free_ownership_restore_data, 
2884         add_restore_ownership_to_transaction): Switch to using BusOwner 
2885         instead of raw connections
2886         (bus_service_add_owner): Add flags parameter
2887         Switch to using BusOwner instead of raw connections
2888         Add state machine for dealing with the new set of flags
2889         (bus_service_swap_owner): Swaps the first and second owners in the
2890         queue.  Used to make sure proper signals are sent when a service looses 
2891         or gains primary ownership.  We never insert an owner at the top of the
2892         queue.  Instead we insert it in the second position and then swap.
2893         (bus_service_remove_owner): Remove the owner from the queue sending
2894         out the NameLost and NameOwnerChanged signals if the we were the 
2895         primary owner
2896         (bus_service_get_primary_owners_connection): New method that extracts
2897         the connection from the primary owner
2898         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2899         connection
2900         (bus_service_get_allow_replacement): Changed from the old 
2901         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2902         primary owner and returns if it can be replaced or not
2903         (bus_service_set_prohibit_replacement): removed
2904         (bus_service_has_owner): returns TRUE if and owner with
2905         the specified connection exists in the queue
2906         
2907         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2908         method that only compiles if tests are enabled.  Allows us to get the 
2909         unique name of a connection so we can check it against the queue when
2910         doing regression tests
2911
2912         * bus/activation.c (bus_activation_send_pending_auto_activate),
2913         bus/dispatch.c (bus_dispatch),  
2914         bus/driver.c (bus_driver_handle_get_service_owner, 
2915         bus_driver_handle_get_connection_unix_user, 
2916         bus_driver_handle_get_connection_unix_process_id,
2917         bus_driver_handle_get_connection_selinux_security_context),
2918         bus/signals.c (connection_is_primary_owner): 
2919         use bus_service_get_primary_owners_connection instead of
2920         bus_service_get_primary_owner
2921
2922         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2923         _dbus_listen_unix_socket): Calculate the length of the socket
2924         path and use that instead of using a fixed length which was
2925         causing socket names to contain many trailing Nul bytes.
2926
2927         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2928         (dbus_g_method_get_sender): New method for extracting the sender 
2929         from a DBusGMethodInvocation
2930         (dbus_g_method_return_get_reply): changed name to 
2931         dbus_g_method_get_reply
2932         (dbus_g_method_return_send_reply): changed name to
2933         dbus_g_method_send reply
2934
2935         * doc/dbus-specification.xml: New docs that describe how the new
2936         queueing system works and talks about the changes to the how
2937         we specify socket names
2938
2939         * glib/examples/example-service.c, 
2940         glib/examples/example-signal-emitter.c,
2941         glib/examples/statemachine/statemachine-server.c:
2942         Changed the RequestName flags to the new system
2943
2944         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2945         regression test suite for testing various states of the new
2946         queueing system
2947         
2948 2005-11-15  Robert McQueen  <robot101@debian.org>
2949
2950         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2951         Taylor to add two methods, dbus_g_method_return_get_reply and
2952         dbus_g_method_return_send_reply, to allow you to get the reply
2953         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2954         and send it. The GLib bindings can't marshal a return value of
2955         something like a(s) if the array is empty - ultimately they should be
2956         made to heed the signature of the out arguments as the Python bindings
2957         now can, but this is a workable interim solution which might have
2958         other applications.
2959
2960 2005-11-15  Robert McQueen  <robot101@debian.org>
2961
2962         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2963         method to org.freedesktop.DBus to release a bus name or give up
2964         waiting in the queue for it.
2965
2966         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2967         dbus_bus_release_name method to send the ReleaseName method calls.
2968         Add constants for the return values to dbus/dbus-shared.h.
2969
2970         * doc/dbus-specification.xml: Document the new ReleaseName method
2971         in the specification.
2972
2973         * python/dbus_bindings.pyx: Add a low-level python binding for the
2974         release name method.
2975
2976         * python/exceptions.py, python/service.py: Make freeing BusName
2977         objects release the name. Add a NameExistsException, and fix a
2978         bug with creating UnknownMethodException.
2979
2980         * test/python/test-client.py: Add tests for freeing BusName
2981         objects causing names to be released.
2982
2983 2005-11-14  Robert McQueen  <robot101@debian.org>
2984
2985         * python/service.py: Include the traceback in the error reply when we
2986         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2987
2988 2005-11-14  David Zeuthen  <davidz@redhat.com>
2989
2990         Patch from Timo Hoenig <thoenig@suse.de>.
2991
2992         * bus/bus.c: I've recently investigated why the automatic reload
2993         of configuration files does not work as expected.
2994
2995         Currently, reloading configuration files does only work when
2996         running dbus-daemon with --nodaemon.  If we are running as daemon
2997         we're hitting a dnotify bug once we fork the process.
2998
2999         We're initializing the dnotify fds before calling fork().  Once
3000         the child process forked it does still have the fds (and they
3001         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
3002         getting SIGIO as changes are made to the configuration files.
3003
3004         The attached patch moves the initialization of the dnotify fds to
3005         process_config_postinit().  This is safe for all current code
3006         paths and solves the dnotify disfunction.  If we're running
3007         dbus-daemon as daemon the fds for dnotify are now being
3008         initialized after fork() for the child process.
3009
3010         * configure.in: The current configure.in check for dnotify probes
3011         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3012         match for 'xlinux', too. Additionally I have adapted the configure
3013         option's style to match with the others.
3014
3015 2005-11-14  Robert McQueen  <robot101@debian.org>
3016
3017         * python/decorators.py, python/service.py: Add a new argument to the
3018         dbus.service.method decorator called sender_keyword, which if set,
3019         specifies the name of an argument which will be provided the bus
3020         name of the method caller.
3021
3022         * test/python/test-client.py, test/python/test-service.py: Add a
3023         method and test to check the sender_keyword functionality.
3024
3025 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3026
3027         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3028         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3029         Simons <sjoerd at luon.net>)
3030
3031         * AUTHORS: Add Robert McQueen for his work on the Python
3032         Bindings and other parts of D-Bus
3033
3034 2005-11-07  Robert McQueen  <robot101@debian.org>
3035
3036         * python/decorators.py: Change emit_signal function to use the
3037         signature annotation of the signal when marhsalling the arguments from
3038         the service. Fix a bug where the code checking signature length
3039         against argument length referenced the wrong variable.
3040
3041         * python/introspect_parser.py: Avoid adding the type signature of
3042         signal arguments to any methods which occur after them in the
3043         introspection data (!) by making the parser a little more careful
3044         about its current state.
3045
3046         * python/service.py: Remove debug prints from last commit (again :D).
3047
3048         * test/python/test-client.py, test/python/test-service.py: Add test
3049         signals with signature decorators to test the strict marshalling code
3050         gives errors at the right time. Could do with checking the signals
3051         actually get emitted too, given that the test does nothing with
3052         signals at the moment...
3053
3054 2005-11-07  Robert McQueen  <robot101@debian.org>
3055
3056         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3057         instances to stop madness of creating new instances representing
3058         the same bus connection all the time, rendering any tracking of
3059         match rules and bus names quite meaningless. Caught a bug where
3060         the private argument to SessionBus() and friends was being passed
3061         in as use_default_mainloop by mistake. Still some problems with
3062         multiple dbus_binding.Connection instances representing the same
3063         low-level connection (eg when you use both SessionBus() and
3064         StarterBus() in same process), but it's a lot better now than it
3065         was.
3066
3067         * python/dbus_bindings.pyx: Add constants with the return values
3068         for bus_request_name().
3069
3070         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3071         and retrieve the same instances for the same name, so deletion can be
3072         done with refcounting. Also now throws some kind of error if you
3073         don't actually get the name you requested, unlike previously...
3074
3075         * test/python/test-client.py: Add tests for instance caching of buses
3076         and bus name objects.
3077
3078 2005-11-04  Robert McQueen  <robot101@debian.org>
3079
3080         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3081         marshalling of boolean values. Add some booleans to the values in
3082         the test client.
3083
3084         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3085         argument to the dbus.service.method decorator, which allows you to
3086         name arguments to take two callback functions for replying with
3087         return values or an exception.
3088
3089         * test/python/test-client.py, test/python/test-service.py: Add test
3090         case using asynchronous method reply functions, both return values and
3091         errors, and from within both the function itself and from a mainloop
3092         callback.
3093
3094         * python/decorators.py, python/service.py: Perform checking that the
3095         number of method/signal arguments matches the number of types in the
3096         signature at class loading time, not when you first introspect the
3097         class.
3098
3099         * python/service.py: Remove debug print left by the last commit.
3100
3101 2005-11-03  Robert McQueen  <robot101@debian.org>
3102
3103         * python/service.py: Heavy refactoring of method invocation, with
3104         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3105         in favour of a new _message_cb that uses seperate functions for
3106         looking up the method to call, marshalling the return values, and
3107         sending exceptions as errors, and is easier to follow as a
3108         consequence.  Fixes some corner cases about returning things that
3109         don't match your declared out_signature, allows exceptions to define
3110         _dbus_error_name and have it be sent over the bus as the error name,
3111         and paves the way for cool stuff like heeding the message no reply
3112         flag, asynchronous method implementations, informing the method of the
3113         sender, and including backtraces in the error messages.
3114
3115         * test/python/test-client.py: Catch and print exceptions thrown in the
3116         async callback tests, rather than passing them to the low-level
3117         bindings to be ignored in a noisy and frustrating manner.
3118
3119 2005-11-03  Robert McQueen  <robot101@debian.org>
3120
3121         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3122         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3123         tweak others to be consistent.
3124
3125         * test/python/test-client.py: Tweak output of testInheritance.
3126
3127 2005-10-29  Robert McQueen  <robot101@debian.org>
3128
3129         * python/service.py: Major changes to allow multiple inheritance
3130         from classes that define D-Bus interfaces:
3131         
3132          1. Create a new Interface class which is the parent class of
3133             Object, and make the ObjectType metaclass into InterfaceType.
3134         
3135          2. Patch written with Rob Taylor to replace use of method_vtable
3136             with code that walks the class's __MRO__ (method resolution order)
3137             to behave like Python does when invoking methods and allow
3138             overriding as you'd expect. Code is quite tricky because
3139             we have to find two methods, the one to invoke which has the
3140             right name and isn't decorated with the /wrong/ interface,
3141             and the one to pick up the signatures from which is decorated
3142             with the right interface.
3143         
3144             The same caveats apply as to normal multiple inheritance -
3145             this has undefined behaviour if you try and inherit from two
3146             classes that define a method with the same name but are
3147             decorated with different interfaces. You should decorate
3148             your overriding method with the interface you want.
3149         
3150          3. Replace grungy introspection XML generation code in the metaclass
3151             with dictionaries that cope correctly with multiple inheritance
3152             and the overriding of methods. This also uses the signature
3153             decorations to provide correct introspection data, including
3154             the debut appearance of the types of your return values. :D
3155
3156         * test/python/test-client.py, test/python/test-service.py: Add a test
3157         case to try invoking an method that overrides one inherited from a
3158         D-Bus interface class.
3159
3160 2005-10-29  Robert McQueen  <robot101@debian.org>
3161
3162         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3163         Add checking for the end of struct character when marshalling a
3164         struct in MessageIter.append_strict.
3165
3166         * python/examples/example-service.py,
3167         python/examples/gconf-proxy-service.py,
3168         python/examples/gconf-proxy-service2.py: Update to use gobject
3169         mainloop directly rather than appearing to depend on gtk.
3170
3171         * python/test/test-client.py, python/test/test-server.py: Remove
3172         obsolete and broken test scripts for old bindings. We have up to date
3173         and working tests in test/python/.
3174
3175 2005-10-29  Robert McQueen  <robot101@debian.org>
3176
3177         * python/decorators.py: Add optional arguments to the method and
3178         signal decorators to allow you to specify the signature of arguments
3179         and return values. Preserve the doc strings of signal functions in the
3180         decorated version, for pydoc and friends.
3181
3182         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3183         parse_signature_block function with an iterable dbus.Signature()
3184         type. Fix a bug in MessageIter.append_strict where you could append
3185         anything by claiming it was a string.
3186
3187         * python/service.py: Use the out_signature decoration on methods to
3188         marshal return values, meaning you no longer require dbus.Array()
3189         or dbus.Dictionary() to indicate the type when returning empty
3190         arrays or dictionaries. Fix a bug where exceptions which are defined
3191         in __main__ are not turned into error replies.
3192
3193         * test/python/test-client.py, test/python/test-service.py: Add test
3194         for correct marshalling of return values according to out_signature.
3195         Fix a bug in the async call test where the error_handler is missing a
3196         self argument.
3197
3198 2005-10-29  Robert McQueen  <robot101@debian.org>
3199
3200         * glib/Makefile.am, glib/examples/Makefile.am,
3201         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3202         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3203
3204         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3205
3206         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3207         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3208         the command line.
3209
3210 2005-10-27  Ross Burton  <ross@openedhand.com>
3211
3212         * dbus/dbus-marshal-header.c:
3213         Remove dead code.
3214
3215         * glib/dbus-gobject.c:
3216         Stop compiler warning.
3217
3218 2005-10-25  Ross Burton  <ross@openedhand.com>
3219
3220         * dbus/dbus-auth.c:
3221         * dbus/dbus-server-unix.c:
3222         * dbus/dbus-transport-unix.c:
3223         * glib/dbus-gmain.c:
3224         * glib/dbus-gobject.c:
3225         Add some const keywords.
3226
3227 2005-10-25  Ross Burton  <ross@openedhand.com>
3228
3229         * doc/dbus-specification.xml:
3230         Document the NoReply annotation.
3231
3232         * glib/dbus-binding-tool-glib.h:
3233         * glib/dbus-binding-tool-glib.c:
3234         Respect the NoReply annotation.
3235
3236 2005-10-24  Robert McQueen <robot101@debian.org>
3237
3238         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3239         derive from unicode instead of str, and encode/decode UTF-8 when
3240         marshalling/unmarshalling bus messages
3241
3242         * python/introspect_parser.py: encode introspection data as UTF-8
3243         before passing the buffer into libxml2
3244
3245         * test/python/test-client.py: add unicode test strings
3246
3247         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3248         ignore generated python test files
3249
3250 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3251
3252         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3253         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3254         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3255
3256         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3257         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3258         when constructing struct signatures
3259
3260         * python/_dbus.py (Bus): handle private connections using the
3261         private keyword in the constructor. defaults to private=False
3262         (Bus::close): new method to close a connection to the bus
3263
3264         * python/dbus_bindings.pyx (Connection::close): renamed method
3265         was previously called disconnect
3266         (bus_get): now supports getting a private connection
3267
3268         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3269         keyword is set to True.  if it is, execute the method without waiting
3270         for a reply
3271         (ProxyObject::_introspect_execute_queue): new method for executing
3272         all the pending methods that were waiting for the introspect to
3273         finish.  this is called when introspect either succeeds or fails
3274         (ProxyObject::_introspect_error_handler): call queued methods
3275
3276 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3277
3278         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3279         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3280
3281         * python/service.py (Object::_message_cb): handle exceptions correctly
3282         by sending them over the wire to the calling app.  This makes sure
3283         the client returns immediately instead of waiting the 15 seconds to
3284         timeout.
3285
3286         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3287         Add a test to benchmark how long it takes to introspect a service and 
3288         call a method which returns a large element (pretty fast)
3289
3290         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3291         method which pushes a lot of data
3292
3293 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3294
3295         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3296         reclaim memory outside of the loop and use del istead of just setting
3297         the key to None
3298
3299 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3300
3301         * python/service.py (ObjectType::_reflect_on_signal): Always close
3302         signal tag even when there are no arguments
3303
3304 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3305
3306         * configure.in: Set mono, mono-docs and Qt3 to default
3307         to no instead of auto when building.  These bindings do not
3308         have full time maintainers and will not be supported for the
3309         1.0 release.
3310
3311 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3312
3313         patches from Michael Krivoruchko <misha at sun.com>: 
3314         
3315         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3316         _dbus_connection_message_sent, 
3317         _dbus_connection_send_preallocated_unlocked_no_update, 
3318         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3319         is NULL when calling _dbus_verbose
3320
3321         * configure.in: check for functions getpeerucred and getpeereid
3322
3323         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3324         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3325         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3326         Patch was only tested on Solaris 10 x86 so it might be issues
3327         with other platforms (i.e. BSDs and MacOSX)
3328         
3329
3330 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3331
3332         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3333         instead of marshal basic so we can handle recursive types in a variant
3334
3335         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3336         in variants
3337
3338         * test/glib/test-service-glib.c, test-service-glib.xml
3339         (my_object_echo_variant [EchoVariant], 
3340         my_object_process_variant_of_array_of_ints123
3341         [ProcessVariantOfArrayOfInts123]): 
3342         Add two test methods
3343
3344         * python/introspect_parser.py: New module for parsing introspect
3345         data.
3346
3347         * python/dbus_bindings.pyx:
3348         (various places): when throwing errors fix to use errormsg instead 
3349         of message local variable because Pyrex can get confused with other 
3350         message variables (initial patch by Robert McQueen 
3351         <robert.mcqueen at collabora.co.uk>)
3352         (MessageIter::parse_signature_block): new method for getting the next
3353         block in a signiture.
3354         (MessageIter::append_strict): new method for appending values strictly
3355         using the passed in signature instead of guessing at the type
3356         (MessageItter:: append_dict, append_struct, append_array): use 
3357         signatures to marshal children if the signature is available
3358         
3359         * python/exceptions.py (IntrospectionParserException): new exception
3360
3361         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3362         introspected signatures if available, else we fall back to the
3363         old way of doing things.
3364         (ProxyObject::_introspect_reply_handler ): parse introspection data
3365         
3366         * python/service.py (ObjectType::_reflect_on_method): Properly
3367         terminate <method> if there are no args in the reflection data
3368
3369         * test/python/test-client.py: add tests for talking with the GLib
3370         test server.  This gives us better coverage for introspection since
3371         python to python will always generate arguments as variants.  It also
3372         allows us to test the robustness of the GLib bindings and interlanguage
3373         communications.
3374
3375         
3376 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3377
3378         * bus/driver.c (bus_driver_handle_introspect): Add signals
3379         to the introspect data. (patch from Daniel P. Berrange 
3380         <dan at berrange.com>)
3381
3382         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3383         
3384         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3385         _dbus_connection_run_builtin_filters): Changed these to
3386         be unlock_no_update functions and call 
3387         _dbus_connection_send_unlocked_no_update instead of
3388         dbus_connection_send to avoid locking errors.
3389         
3390         * doc/TODO: Removed the make Ping test TODO
3391         
3392 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3393
3394         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3395         We now copy the message from a DBusError and then free 
3396         the error object befor throwing the error
3397
3398         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3399         DBusBindingOutputMode enum which was causing a warning.
3400         #include <time.h> so using time_t is explicitly defined
3401
3402 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3403
3404         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3405         - dbus/dbus-bus.c
3406         (internal_bus_get): new method that take over the heavy lifting
3407         of dbus_bus_get and adds the ability to get a private connection
3408         to the bus
3409         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3410         interface as in previous versions
3411         (dbus_bus_get_private): new method that is a wrapper to 
3412         internal_bus_get to get a private connection to the bus
3413
3414         - dbus/dbus-bus.h
3415         (dbus_bus_get_private): add as a public libdbus interface
3416
3417         - dbus-1.pc.in: output system_bus_default_address and 
3418         sysconfdir variables so apps can use them when compiling
3419
3420 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3421         * dbus/qt: New Qt bindings
3422
3423 2005-09-12  Waldo Bastian  <bastian@kde.org>
3424
3425         * dbus/dbus-marshal-validate.c,
3426         doc/dbus-specification.xml, test/Makefile.am,
3427         test/test-names.c: allow hyphens in bus names.
3428
3429 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3430
3431         * test/data/auth/fallback.auth-script: we don't
3432         retry the EXTERNAL method when we know its going
3433         to fail anymore.
3434
3435 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3436
3437         * dbus/dbus-connection-internal.h: rename
3438         (add|remove|toggle)_(watch|timeout) to unlocked()
3439         
3440         * dbus/dbus-connection.c: ditto.
3441         
3442         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3443         Update some callers for the renaming.
3444
3445 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3446
3447         * dbus/dbus-auth.c: (record_mechanisms): don't
3448         retry the first auth mechanism because we know
3449         we're just going to get rejected again.
3450         
3451         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3452         Fix thinko ... and what a nasty little bugger to
3453         track down you were ...
3454
3455         * dbus/dbus-connection.c:
3456         (_dbus_connection_add_watch),
3457         (_dbus_connection_remove_watch): add note about
3458         these needing the connection to be locked.
3459         (_dbus_connection_get_dispatch_status_unlocked):
3460         set status to DATA_REMAINS when we queue the
3461         disconnected message.
3462         
3463         * bus/dispatch.c:
3464         (bus_dispatch): fix warning.
3465         (check_existent_service_no_auto_start):
3466         Expect ChildSignaled error too.
3467         (check_existent_hello_from_self): fix another
3468         couple of warnings.
3469         
3470 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3471
3472         Patches from James Willcox <snorp@snorp.net>
3473
3474         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3475
3476         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3477         support array "out" parameters.
3478
3479         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3480         for 16-bit int support.
3481
3482 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3483
3484         * Released 0.50
3485
3486         * Patch from Steve Grubb:
3487         - bus/activation.c (bus_activation_service_reload_test): clean up
3488         some indentation
3489         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3490         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3491         buffer overflows in the test suite.  This is non critical because
3492         it can not be exploited and this code is only run when doing a 
3493         make check.
3494
3495         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3496         - configure.in: Don't check and link against kdecore, only qt headers
3497         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3498         - gcj/org/freedesktop/dbus/Makefile.am:
3499         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3500         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3501         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3502         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3503         - tools/Makefile.am: Add platform extentions to binaries 
3504         (i.e. .exe on windows)
3505
3506         * configure.in: 
3507         - Make it so if no suitable version of python is found we only 
3508         disable building python instead of exiting the configure script
3509         - Require version 2.4 of glib for glib bindings
3510         - Up version to 0.50
3511
3512         * python/__init__.py: Sync version with libdbus to (0,50,0)
3513         
3514 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3515
3516         * dbus/dbus-object-tree.c (find_subtree_recurse):
3517         a couple of optimizations (bug #710):
3518         - do a binary search in the tree
3519         - insert a new child at the right place directly, no need for
3520           qsort anymore
3521         - do the "double alloc" thing when allocating children
3522
3523 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3524
3525         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3526
3527         * python/dbus_bindings.pyx: Memory management foo
3528         (global): remove hacky _user_data_references global list
3529         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3530         tuples. Unref user_data
3531         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3532         (Connection::__del__): Remove and replace with __dealloc__ method
3533         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3534         to keep tuple from being deallocated instead of the global var hack
3535         (Connection::register_object_path): Stuff user_data into a tuple.
3536         Use Py_INCREF to keep tuple from being deallocated instead of the 
3537         global var hack
3538         (Connection::register_fallback): Stuff user_data into a tuple.
3539         Use Py_INCREF to keep tuple from being deallocated instead of the 
3540         global var hack
3541         (GIL_safe_pending_call_notification): Don't unref the message
3542         because it gets unreffed when going out of scope.  Py_XDECREF
3543         the user_data
3544         (PendingCall::__del__): Remove and replace with __dealloc__ method
3545         (PendingCall::set_notify): ref the pending call because we will
3546         need it to stick around for when the notify callback gets called
3547         (Message::__del__): Remove and replace with __dealloc__ method
3548
3549         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3550         gthreads_init to match up with the dbus call
3551
3552         * python/glib.py (init_threads): Changed to threads_init to match
3553         up with gobject.threads_init().  init_threads is kept for backwards
3554         compat but will most likely be deprecated in the future
3555
3556         * test/python/test-client.py: 
3557         - revamp to use Python's unittest functionality
3558         - add async call tests
3559         - setup threads in glib and dbus so we make sure locks are working
3560         
3561 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3562
3563         * python/dbus_bindings.pyx 
3564         (_pending_call_notification, cunregister_function_handler, 
3565         cmessage_function_handler): All callback functions have been rearranged 
3566         to workaround a bug in Pyrex when working with the GIL which is Python's 
3567         global lock when dealing with threads.  They have been split into
3568         a wrapper function (which assumes the name of the old function) and
3569         a _GIL_safe_<function name> function which contains the functionality
3570         of the old function.  This ensures that Pyrex does not write code
3571         the lock is released.
3572         
3573
3574 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3575
3576         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3577         GIL global lock when calling back into Python
3578
3579 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3580
3581         * Release 0.36.2
3582
3583         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3584
3585         * bus/policy.c (bus_policy_allow_user): change default "user is
3586         allowed" to be "user has same uid as the bus itself"; any
3587         allow/deny rules will override.
3588
3589         * bus/session.conf.in: don't allow all users, since now by default
3590         the user that ran the bus can connect.
3591
3592 2005-08-26  Colin Walters  <walters@verbum.org>
3593
3594         * tools/dbus-print-message.c (print_message): Flush stdout
3595         after printing a message, so that redirecting to a file, then
3596         hitting Ctrl-C works.
3597
3598 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3599
3600         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3601         (EmptyMessage): new class that subclasses Message.  This is a workaround
3602         to a Pyrex bug that fails to call __del__ when the Message object goes out
3603         of scope.  For some reason subclassing Message fixes this bug
3604         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3605         - s/Message(_create=0)/EmptyMessage everywhere else
3606         
3607         * test/python/test-{server|client}.py: add the python/.libs directory
3608         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3609         get picked up from the system
3610
3611 2005-08-25  Colin Walters  <walters@verbum.org>
3612
3613         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3614         to Ryan Lortie for the suggestion.
3615
3616 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3617
3618         * test/python: Add python regression test
3619
3620         * configure.in: Add test/python/Makefile
3621
3622         * test/Makefile.am: Add the python directory to SUBDIRS
3623
3624 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3625
3626         * Release 0.36.1
3627
3628         * python/_dbus.py: 
3629         (Interface::connect_to_signal): propigate keywords for match on args
3630         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3631
3632         * python/proxies.py (ProxyObject::connect_to_signal):
3633         propigate keywords for match on args
3634
3635         * Makefile.am: point everything to pyexecdir since python borks
3636         on multilib
3637
3638 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3639
3640         * Release 0.36
3641
3642 2005-08-23  Colin Walters  <walters@verbum.org>
3643
3644         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3645
3646 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3647
3648         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3649         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3650         of defining DBusConnection ourselves.
3651
3652 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3653
3654         * python/dbus.pth: New path file to fix up problems when installing
3655         c libraries to lib64 and python files to lib.
3656
3657         * python/Makefile.am: install dbus.pth in the correct spot
3658
3659 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3660         * ChangeLog: clean up my last entry a bit
3661
3662         * doc/introspect.xsl: New stylesheet for converting introspection data
3663         into browser renderable xhtml. Contributed by Lennart Poettering.
3664
3665         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3666         Poettering.
3667
3668         * doc/dbus-tutorial.xml: 
3669         - Add Colin Walter to the Authors section for authoring the GLib
3670         section
3671         - Add descriptions of the new signature and type functionality
3672         in the Python complex type mapping section
3673         - Add a sidenote on the new args matching functionality in 
3674         the Python bindings
3675         - Fixed up some of the examples to use the gobject.MainLoop
3676         instead of gtk.main
3677         
3678         * python/_dbus.py:
3679         (Bus::_create_args_dict): New. Converts a hash of arg matches
3680         to a more useable format
3681         (Bus::add_signal_receiver): add a **keywords parameter for catching
3682         arg match parameters
3683         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3684         arg match parameters
3685         
3686         * python/matchrules.py:
3687         (MatchTree::exec_matches): Check for arg matches
3688         (SignalMatchRule::add_args_match): New method
3689         (SignalMatchRule::execute): Added args_list parameter as an optimization
3690         so we don't have to marshal the args more than once
3691         (SignalMatchRule::match_args_from_list): New method that checks to see
3692         if the rule's arg matches match an argument list.  Only arguments
3693         set in the rule are checked.
3694         (SignalMatchRule::match_args_from_rule): New method that checks to see
3695         if the rule's arg matches match another rule's.  All args have to match
3696         in order for this method to return true.  If either rule has more args
3697         then it is not a match.
3698         (SignalMatchRule::is_match): Add args match
3699         (SignalMatchRule::repr): Add args to the final output if they exist
3700
3701 2005-08-17  Ross Burton  <ross@burtonini.com>
3702
3703         * glib/dbus-gproxy.c:
3704         (dbus_g_proxy_call_no_reply): unref the message once sent.
3705         (dbus_g_proxy_call): protect against NULL proxy.
3706
3707 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3708
3709         * python/__init__.py: Version updated (0, 43, 0)
3710         
3711         * python/dbus_bindings.pyx: 
3712         - Fixed type objects to have self passed into __init__
3713         - Added the Variant type
3714         - Add the ability to specify types or signatures for Array, Variant 
3715         and Dictionary
3716         (Connection::send_with_reply_handlers): return a PendingCall object
3717         (_pending_call_notification): handle the case when an error is returned 
3718         without an error message in the body
3719         (MessageIter::get_boolean): return True or False instead of an integer
3720         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3721         and add checks for objects with embeded signatures or types (Array, 
3722         Variant and Dictionary)
3723         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3724         (MessageIter::append_dict): handle embeded types or signatures
3725         (MessageIter::append_array): handle embeded types or signatures
3726         (MessageIter::append_variant): new method
3727         
3728         * python/proxies.py:
3729         (DeferedMethod): New. Dummy executable object used when queuing calls 
3730         blocking on introspection data
3731         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3732         or shorter timeouts for method calls
3733         (ProxyObject): Add first pass at an introspection state machine
3734         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3735         introspection. 
3736         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3737         the usual mechanisms for sending messages.  This is to avoid a deadlock
3738         where the Intospect call would be queued waiting for the Introspect 
3739         call to finish ;-)
3740         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3741         when introspection returns with no error
3742         (ProxyObject::_introspect_error_handler): New.  This method is called 
3743         when introspection encounters an error
3744         (ProxyObject::__getattr__): Code to handle different introspection 
3745         states.  Queue async calls or block blocking calls if we are 
3746         introspecting.  Pass through as normal if we are not or are done with 
3747         introspecting.
3748         
3749         * python/service.py: Import signal and method from decorators.py
3750
3751         * python/types.py: Add Variant type
3752
3753 2005-08-16  Colin Walters  <walters@verbum.org>
3754
3755         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3756         DBusError message is NULL.
3757
3758 2005-08-09  Havoc Pennington  <hp@redhat.com>
3759
3760         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3761         malloc'd copy of the name parameter
3762
3763 2005-08-09  Havoc Pennington  <hp@redhat.com>
3764
3765         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3766         warning if the reply serial is set to 0
3767
3768 2005-08-04  Colin Walters  <walters@verbum.org>
3769
3770         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3771         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3772         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3773         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3774         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3775         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3776         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3777         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3778         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3779         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3780         
3781         Prefix name with _ to ensure they're not exported.  All callers
3782         updated.
3783
3784         * glib/dbus-gvalue.c (typecode_to_gtype)
3785         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3786         (signature_iter_to_g_type_dict)
3787         (signature_iter_to_g_type_array)
3788         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3789         (dbus_gtypes_from_arg_signature):
3790         Move to dbus-gsignature.c.
3791
3792         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3793         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3794         (dbus_binding_tool_output_glib_client): Ditto.
3795
3796         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3797         and dbus-gsignature.h
3798
3799         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3800         unused variable.
3801
3802 2005-08-03  Colin Walters  <walters@verbum.org>
3803
3804         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3805         catch any incompatible changes accidentally made.
3806
3807 2005-08-03  Havoc Pennington  <hp@redhat.com>
3808
3809         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3810         typo, from Julien Puydt
3811
3812         * bus/connection.c (bus_connection_disconnected): we were always
3813         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3814
3815 2005-08-01  Colin Walters  <walters@verbum.org>
3816
3817         Patch from Joe Markus Clarke:   
3818         
3819         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3820         use-after-free.
3821
3822 2005-08-01  Colin Walters  <walters@verbum.org>
3823         
3824         Patch from Joe Markus Clarke:   
3825         
3826         * tools/dbus-send.c (main): 
3827         
3828         Don't use C99 style initializers (bug #3933).
3829         
3830 2005-08-01  Colin Walters  <walters@verbum.org>
3831
3832         Patch from Joe Markus Clarke:   
3833
3834         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3835         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3836         * glib/dbus-gobject.c (write_interface):
3837
3838         Don't use C99 style initializers (bug #3933).
3839
3840 2005-07-31  Havoc Pennington  <hp@redhat.com>
3841
3842         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3843         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3844
3845 2005-07-30  Havoc Pennington  <hp@redhat.com>
3846
3847         * fix a bunch of Doxygen warnings and mistakes
3848
3849 2005-07-30  Havoc Pennington  <hp@redhat.com>
3850
3851         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3852         DBUS_BUILD_TESTS since it's now used in production code
3853
3854 2005-07-29  Havoc Pennington  <hp@redhat.com>
3855
3856         * test/glib/test-profile.c (write_junk): initialize the junk
3857         buffer so valgrind doesn't have a breakdown
3858
3859 2005-07-29  Havoc Pennington  <hp@redhat.com>
3860
3861         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3862         (match_rule_matches): remove unused arg
3863         (test_matching): add tests for match_rule_matches()
3864
3865         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3866         do arg0='foo' arg5='bar' in the match rules
3867         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3868
3869         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3870
3871 2005-07-29  Ross Burton  <ross@openedhand.com>
3872
3873         * dbus/dbus-connection.c:
3874         Don't create a DBusCondVar which is never used.
3875
3876 2005-07-27  Ross Burton  <ross@openedhand.com>
3877
3878         * dbus/dbus-message.c:
3879         Reduce the size of the maximum cached message to 10K.
3880
3881 2005-07-25  Ross Burton  <ross@openedhand.com>
3882
3883         * glib/dbus-gproxy.c:
3884         Remove matches when all proxies are unregistered.
3885
3886 2005-07-24  Colin Walters  <walters@verbum.org>
3887
3888         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3889         typedata; recursive arrays won't have it.
3890
3891         * test/glib/test-dbus-glib.c:
3892         * test/glib/test-service-glib.c:
3893         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3894         
3895 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3896
3897         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3898         proxies.py, service.py: Cleanup of code after running it through the
3899         pyflakes code checker mostly dealing with undefined names.  
3900         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3901
3902 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3903
3904         * NEWS: Update to 0.35.2
3905
3906 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3907
3908         * python/_dbus.py: Remove import of the dbus.services
3909         module as it no longer exists (patch from Dimitur Kirov)
3910
3911         * python/service.py (Object::__init__): Fixed typo
3912         s/name/bus_name (patch from Dimitur Kirov)
3913
3914         * python/examples/example-signal-emitter.py: import dbus.glib
3915         to get the main loop and use glib mainloop instead of gtk so
3916         X doesn't have to be running.
3917
3918         * python/examples/example-signal-recipient.py: import dbus.glib
3919         to get the main loop and use glib mainloop instead of gtk so
3920         X doesn't have to be running. Import the decorators module
3921         directly.
3922
3923         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3924         didn't pick up on but are needed to build
3925
3926         * configure.in: upped version to 0.35.2
3927
3928         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3929         added Colin Walters' SELinux API rename patch from head 
3930         s/unix sercurity context/selinux security context/
3931
3932 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3933
3934         * python/Makefile.am: dbus_binding.pxd.in should be included 
3935         in EXTRA_DIST not dbus_binding.pxd
3936         fix up $(srcdir) hopefully for the last time
3937
3938         * NEWS: Update to 0.35.1
3939
3940 2005-07-16  Colin Walters  <walters@verbum.org>
3941
3942         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3943         from bus_driver_handle_get_connection_unix_security_context.  Update for
3944         error usage.
3945         (message_handlers): Update for renames.
3946
3947         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3948         _dbus_string_init failure correctly.
3949         (bus_selinux_append_context): Convert SID to context.  Append it
3950         as a byte array.
3951         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3952         hasn't been called.
3953
3954         * bus/selinux.h: Update prototype.
3955
3956         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3957         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3958
3959 2005-07-15  Colin Walters  <walters@verbum.org>
3960
3961         * doc/TODO: Add note about convenience wrappers.
3962
3963 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3964
3965         * NEWS: Update to 0.35
3966
3967 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3968
3969         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3970         so distcheck doesn't fail
3971
3972         * glib/examples/Makefile.am: Add example-service.xml and 
3973         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3974
3975         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3976         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3977
3978         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3979         compiler looks in the right places during distcheck
3980
3981 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3982
3983         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3984         to fail
3985
3986 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3987
3988         * python/examples/example-service.py,
3989         python/examples/example-signal-emitter.py: Fixed up examples
3990         for API changes
3991
3992 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3993
3994         * python/__init__.py: Upped to version (0,42,0) because of
3995         the API change
3996
3997 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3998
3999         * ChangeLog: fix date in last entry
4000
4001         * configure.in, bus/system.conf.in: add the ability to configure 
4002         the system bus user at compiletime with the --with-dbus-user flag
4003         (patch from Kristof Vansant)
4004
4005 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4006
4007         * bus/dispatch.c, test/test-service.c: Add testcase
4008         for sending messages to oneself (TODO item).
4009
4010         * python/service.py (class Object): Swap ordering of bus_name 
4011         and object_path parameters to better support inheritance.
4012
4013         * doc/dbus-tutorial.xml: change Python docs to reflect change
4014         in parameter ordering and fix the inheritance section.
4015
4016         * doc/TODO: remove sending message to oneself TODO item
4017
4018 2005-07-15  Ross Burton  <ross@openedhand.com>
4019
4020         * glib/dbus-gproxy.c:
4021         Fix a leak when calling methods via the proxy.
4022
4023 2005-07-15  Colin Walters  <walters@verbum.org>
4024
4025         * bus/selinux.c (bus_selinux_append_context): Wrap in
4026         HAVE_SELINUX.
4027
4028 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4029
4030         * python/_dbus.py (Bus::remove_signal_receiver):
4031         don't add a callback to the match if none has been passed in
4032         
4033         * python/matchrules.py (SignalMatchTree::remove): if the rule
4034         being matched does not have a callback treat it as a wildcard
4035         fix matching logic
4036
4037         * doc/dbus-tutorial.xml: Add Python tutorial
4038
4039 2005-07-14  Colin Walters  <walters@verbum.org>
4040
4041         * bus/driver.c
4042         (bus_driver_handle_get_connection_unix_security_context): New function.
4043         (message_handlers): Add.
4044
4045         * bus/selinux.c (bus_selinux_append_context): New function; appends
4046         security context to message.
4047
4048         * bus/selinux.h: Prototype.
4049
4050         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4051
4052 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4053
4054         * bus/activation.c: clean up all tabs to be 8 spaces 
4055         (bus_activation_activate_service): make sure we clean up
4056         if activation fails
4057
4058         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4059         (check_shell_fail_service_auto_start): New function
4060         tests to make sure we get fail properly when trying to auto start a service
4061         with a faulty command line
4062         (check_shell_service_success_auto_start): New function tests to make sure
4063         auto started services get the arguments on the command line
4064
4065         * test/test-shell-service.c: Added service for testing auto-starting with 
4066         command line arguments
4067
4068         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4069         test/data/valid-service-files/debug-shell-echo-success.service.in:
4070         Added service files for testing auto-starting with command line arguments
4071
4072         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4073
4074 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4075
4076         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4077         
4078         * dbus/Makefile.am: added new files to build.
4079
4080         * bus/activation.c (bus_activation_activate_service): support
4081         activation commands with parameters.
4082
4083         * test/shell-test.c: added test program for the shell parsing
4084         code.
4085
4086 2005-07-13  David Zeuthen  <davidz@redhat.com>
4087
4088         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4089         64 bit signed and unsigned parameters
4090
4091 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4092
4093         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4094
4095         * python/service.py (class Name): renamed BusName to make it clearer
4096         what the object is for (a name on the bus)
4097
4098         * python/examples/example-service.py,
4099         python/examples/example-signal-emitter.py: change the Name object to
4100         BusName
4101
4102 2005-07-12  Colin Walters  <walters@verbum.org>
4103
4104         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4105
4106         * tools/dbus-launch.c: Include sys/select.h.
4107
4108 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4109         * python/dbus_bindings.pyx.in: removed
4110
4111         * python/dbus_bindings.pyx: Added.
4112         - Fixed some memleaks (patch from 
4113         Sean Meiners <sean.meiners@linspireinc.com>)
4114         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4115         own pxd file (Pyrex definition)
4116         - Broke out glib dependancies into its own pyx module
4117         
4118         * python/dbus_bindings.pdx: Added.
4119         - Defines C class Connection for exporting to other modules
4120
4121         * python/dbus_glib_bindings.pyx: Added.
4122         - New module to handle lowlevel dbus-glib mainloop integration
4123
4124         * python/glib.py: Added.
4125         - Registers the glib mainloop when you import this module
4126
4127         * python/services.py: Removed (renamed to service.py)
4128         
4129         * python/service.py: Added.
4130         - (class Server): renamed Name
4131
4132         * python/__init__.py: Bump ro version (0,41,0)
4133         -don't import the decorators or service module
4134         by default.  These now reside in the dbus.service namespace
4135
4136         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4137         setup function on creation 
4138
4139         * python/examples/example-service.py,
4140         python/examples/example-signal-emitter.py: update examples
4141
4142         * python/examples/gconf-proxy-service.py,
4143         python/examples/gconf-proxy-service2.py: TODO fix these up
4144
4145         * doc/TODO: Addition
4146         - Added a Python Bindings 1.0 section
4147         - added "Add match on args or match on details to match rules"
4148
4149
4150 2005-07-12  Colin Walters  <walters@verbum.org>
4151
4152         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4153         (statemachine-glue.h): 
4154         * glib/examples/Makefile.am (example-service-glue.h) 
4155         (example-signal-emitter-glue.h): 
4156         * glib/Makefile.am (dbus-glib-error-switch.h): 
4157         Add libtool --mode=execute so we use the built library instead
4158         of any installed one.
4159
4160 2005-07-11  Colin Walters  <walters@verbum.org>
4161
4162         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4163         (dbus_g_value_types_init): Remove assertion.
4164         (dbus_g_value_get_g_type, dbus_g_value_open)
4165         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4166         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4167         functions related to DBusGValue.  Now we marshal/demarshal
4168         structures as GValueArray.
4169         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4170         structures.
4171         (signature_iter_to_g_type_array): Don't call
4172         signature_iter_to_g_type_struct.
4173         (signature_iter_to_g_type_struct): Delete.
4174         (dbus_gvalue_to_signature): Delete.
4175         (dbus_gvalue_to_signature): New function with same name as other
4176         one; we can convert structures to signatures.
4177         (demarshal_valuearray): New function.
4178         (get_type_demarshaller): Use it.
4179         (demarshal_recurse): Delete.
4180         (marshal_proxy): New function.
4181         (marshal_map): Warn if we can't determine signature from type.
4182         (marshal_collection_ptrarray): Ditto.
4183         (marshal_collection_array): Ditto.
4184         (get_type_marshaller): Use marshal_valuearray.
4185         (marshal_recurse): Delete.
4186         (_dbus_gvalue_test): Add some tests.
4187
4188         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4189         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4190         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4191         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4192         (dbus_g_value_free): Remove prototypes.
4193
4194         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4195         G_TYPE_VALUE_ARRAY.
4196
4197         * glib/examples/example-service.c:
4198         * glib/examples/example-client.c: Implement GetTuple.
4199
4200         * test/glib/test-dbus-glib.c:
4201         * test/glib/test-service-glib.c:
4202         * test/glib/test-service-glib.xml: Add structure tests.
4203
4204 2005-07-10  Colin Walters  <walters@verbum.org>
4205
4206         * doc/TODO: Knock off some GLib items with this patch.
4207
4208         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4209         (_dbus_gvalue_signals_error): New functions.
4210
4211         * glib/dbus-gvalue-utils.h: Prototype them.
4212
4213         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4214         and change to not output const/retval flags for input args.  All
4215         callers updated.
4216         (invoke_object_method): Refactor to handle return values.  Add
4217         some more comments in various places.  Remove debug g_print.
4218
4219         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4220
4221         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4222         Handle G_TYPE_NONE.
4223         (compute_gsignature): New function; refactored from code from
4224         compute_marshaller and compute_marshaller_name.  Enhance to
4225         handle return values and async ops more cleanly.  Update for
4226         async ops returning NONE instead of BOOLEAN.
4227         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4228         and output appropriate string.
4229         (generate_glue): Handle return value annotation.  Also don't dump
4230         constness flag for input arguments.
4231
4232         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4233         files shared between installed library and utilities.
4234         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4235         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4236         binding tool can access gtype utility functions.
4237
4238         * test/glib/test-service-glib.c: 
4239         * test/glib/test-service-glib.xml: 
4240         * test/glib/test-dbus-glib.c: Add some tests for return values.
4241
4242 2005-07-09  Colin Walters  <walters@verbum.org>
4243
4244         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4245         argument if available, not method.
4246
4247         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4248         (invoke_object_method): First, remove some redundant
4249         GValues (object_value, error_value) in favor of working on
4250         array directly.  Second, rework constness to be less buggy.
4251         Now we iterate directly over the argument metadata instead
4252         of parallel iterating over output signature and metadata.
4253
4254         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4255
4256         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4257         annotation on input args.
4258         
4259 2005-07-09  Colin Walters  <walters@verbum.org>
4260
4261         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4262         Define.
4263
4264         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4265         annotation.
4266
4267         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4268         (method_dir_signature_from_object_info): Handle arg_iterate change.
4269         (write_interface): Ditto.
4270         (lookup_object_info): Don't barf if format_version is > 0.
4271         (invoke_object_method): Handle arg constness.
4272
4273         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4274         (arg_info_new): Create.
4275         (arg_info_unref): Destroy.
4276         (arg_info_get_annotations, arg_info_get_annotation) 
4277         (arg_info_add_annotation): New functions.
4278
4279         * glib/dbus-gidl.h: Prototype them.
4280
4281         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4282         args, disallow them in properties.
4283         (parse_annotation): Handle arg annotations.
4284
4285         * test/glib/test-service-glib.xml: 
4286         * test/glib/test-service-glib.c: Update to make some methods
4287         const.
4288
4289 2005-07-08  Colin Walters  <walters@verbum.org>
4290
4291         * test/glib/test-service-glib.xml: 
4292         * test/glib/test-service-glib.c:
4293         * test/glib/test-dbus-glib.c: Test a{sv}.
4294
4295         * glib/examples/statemachine/statemachine.c:
4296         * glib/examples/statemachine/statemachine-server.c:
4297         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4298         add progress bar, etc.
4299
4300         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4301         needed anymore due to generic array/map marshalling.
4302         (dbus_g_value_types_init): Don't register basic arrays or the
4303         string/string hash.
4304         (dbus_gtype_from_signature_iter): Don't try to recurse into
4305         variants.
4306         (dbus_gtype_to_signature): Check collection/map before type
4307         metadata.
4308         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4309         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4310         generic map creation/append functions instead of hash table
4311         specifically.
4312         (get_type_demarshaller): Handle maps.
4313         (demarshal_collection): Dispatch on collection type to either
4314         demarshal_collection_ptrarray or demarshal_collection_array.
4315         (get_type_marshaller): Handle maps.
4316         (marshal_collection): Dispatch collection type to either
4317         marshal_collection_ptrarray or marshal_collection_array.
4318         (_dbus_gvalue_test): New test.
4319
4320         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4321         (hash_free_from_gtype): Use it to free GValues.
4322         (hashtable_append): New function.
4323         (ptrarray_append): Fix prototype.
4324         (slist_append): Ditto.
4325         (_dbus_gvalue_utils_test): Extend tests.
4326
4327         * glib/dbus-gtype-specialized.c
4328         (dbus_g_type_specialized_init_append): Renamed from
4329         dbus_g_type_specialized_collection_init_append.  Remove const from
4330         value, since we steal it.
4331         (dbus_g_type_specialized_map_append): New function.
4332
4333         * glib/dbus-gtype-specialized.h: Update prototypes.
4334         Add DBusGTypeSpecializedMapAppendFunc.
4335
4336         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4337         _dbus_gvalue_test.
4338         
4339         * glib/dbus-gtest.h: Prototype it.
4340
4341 2005-07-08  Ross Burton  <ross@openedhand.com>
4342
4343         * dbus/dbus-glib.h:
4344         Add DBysGAsyncData for the async bindings.
4345
4346         * glib/dbus-binding-tool-glib.c:
4347         Re-enable the async bindings.
4348
4349         * test/glib/test-dbus-glib.c:
4350         Add a test for the generated async bindings.
4351
4352 2005-07-08  Colin Walters  <walters@verbum.org>
4353
4354         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4355         connection concept.
4356         
4357 2005-07-08  Colin Walters  <walters@verbum.org>
4358         
4359         * tools/Makefile.am: Kill of print-introspect in favor of using
4360         dbus-send --print-reply=literal.
4361
4362         * test/glib/test-service-glib.xml: 
4363         * test/glib/test-service-glib.c (my_object_get_objs): New test
4364         for "ao".
4365
4366         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4367         (main): Test GetObjs.
4368
4369         * glib/examples/statemachine/Makefile.am:
4370         * glib/examples/statemachine/sm-marshal.list:
4371         * glib/examples/statemachine/statemachine-client.c:
4372         * glib/examples/statemachine/statemachine-server.c:
4373         * glib/examples/statemachine/statemachine-server.xml:
4374         * glib/examples/statemachine/statemachine.c:
4375         * glib/examples/statemachine/statemachine.h:
4376         * glib/examples/statemachine/statemachine.xml:
4377
4378         New example.
4379
4380         * glib/examples/example-service.c (main): Move invocation
4381         of dbus_g_object_type_install_info earlier, to emphasize it
4382         should only be done once.
4383
4384         * glib/examples/example-signal-emitter.c (main): Ditto.
4385
4386         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4387
4388         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4389         (dbus_gvalue_marshal): Update prototypes.
4390
4391         * glib/dbus-gvalue.c: Update all marshalling functions to take
4392         const GValue instead of GValue.
4393         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4394         types.
4395         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4396         change.
4397         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4398         Return a newly-allocated string.
4399         (demarshal_proxy, demarshal_object_path, demarshal_object)
4400         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4401         we get the wrong types from message.
4402         (get_type_demarshaller): New function, extracted from
4403         dbus_gvalue_demarshal.
4404         (demarshal_collection): New function, demarshals generic
4405         collection.
4406         (dbus_gvalue_demarshal): Just invoke result of
4407         get_type_demarshaller.  Throw error if we don't have one.
4408         (marshal_garray_basic): Abort on OOM.
4409         (get_type_marshaller): New function, extracted from
4410         dbus_gvalue_marshal.
4411         (collection_marshal_iterator, marshal_collection): New functions;
4412         implements generic marshalling for an iteratable specialized
4413         collection.
4414         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4415
4416         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4417         G_TYPE_STRING.
4418         (ptrarray_value_from_gvalue): Ditto.
4419         (ptrarray_append, ptrarray_free): New functions.
4420         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4421         (slist_append, slist_end_append, slist_free): New functions.
4422         (dbus_g_type_specialized_builtins_init): Add append fuctions
4423         for GPtrArray and GSList.  Register GSList.
4424         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4425
4426         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4427         New.
4428         (dbus_g_type_specialized_collection_init_append)
4429         (dbus_g_type_specialized_collection_append)
4430         (dbus_g_type_specialized_collection_end_append): Prototype.
4431         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4432         end_append_func.
4433
4434         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4435         (dbus_g_type_specialized_collection_append) 
4436         (dbus_g_type_specialized_collection_end_append): New functions.
4437         (dbus_g_type_map_value_iterate): Take const GValue.
4438         (dbus_g_type_collection_value_iterate): Ditto.
4439
4440         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4441         _dbus_gvalue_utils_test.
4442         
4443         * glib/dbus-gtest.h: Prototype it.
4444
4445         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4446         using uninitialized owner_list.
4447         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4448         public API.
4449         (dbus_g_proxy_end_call_internal): Update to use error set
4450         from dbus_gvalue_demarshal instead of setting it here.
4451         (dbus_g_proxy_begin_call): Move return_if_fail here.
4452
4453         * glib/dbus-gobject.c (write_interface): Update for
4454         dbus_gtype_to_signature returning new string.
4455
4456         * configure.in: Add glib/examples/statemachine.
4457
4458 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4459
4460         * configure.in: Add a configure option, --with-console-auth-dir
4461         
4462         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4463         new setting.  Patch from Kay Sievers.
4464
4465 2005-07-06  Colin Walters  <walters@verbum.org>
4466
4467         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4468         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4469         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4470         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4471         Delete in favor of dbus_g_proxy_begin_call and
4472         dbus_g_proxy_cancel_call.
4473         (DBusGProxyCall, DBusGProxyCallNotify): New.
4474         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4475         data, and destroy function.  This replaces
4476         dbus_g_pending_call_set_notify.
4477         (dbus_g_proxy_cancel_call): Prototype.
4478         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4479
4480         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4481         pending_calls map.
4482         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4483         internal proxy for calls to the bus. Remove
4484         pending_nameowner_calls, now the internal proxy keeps track.
4485         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4486         pending_nameowner_calls.
4487         (got_name_owner_cb): Update prototype, and use
4488         dbus_g_proxy_end_call.
4489         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4490         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4491         favor of using internal proxy.
4492         (dbus_g_proxy_manager_unregister): Update to use
4493         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4494         (dbus_g_proxy_init): Initialize pending calls map.
4495         (dbus_g_proxy_constructor): New.
4496         (dbus_g_proxy_class_init): Add get/set property functions,
4497         constructor, and add NAME, PATH, and INTERFACE properties.
4498         (cancel_pending_call): New function.
4499         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4500         cancel them.
4501         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4502         (GPendingNotifyClosure): New structure.
4503         (d_pending_call_notify, d_pending_call_free): Moved here from
4504         dbus-glib.c.
4505         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4506         ordering.
4507         (manager_begin_bus_call): New internal function for talking to
4508         internal bus proxy.
4509         (dbus_g_proxy_new): Construct object using GObjet properties.
4510         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4511         Create closure of same, and insert call into map of pending calls.
4512         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4513         call.  Look up pending call in current set.  Remove it when we've
4514         completed.
4515         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4516         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4517         and destroy function directly.
4518         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4519         (dbus_g_proxy_call): Invoke with NULL callback.
4520         (dbus_g_proxy_cancel_call): New function, replaces
4521         dbus_g_pending_call_cancel.
4522
4523         * glib/dbus-gparser.c (validate_signature): Fix call to
4524         dbus_set_g_error.
4525
4526         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4527         New quark for attaching metadata to GType.
4528         (info_hash): Delete.
4529         (lookup_object_info): Look up using quark.
4530         (dbus_g_object_type_install_info): Check that a type is classed,
4531         not that it's an object.  Also just install type data using quark
4532         instead of using global hash.
4533
4534         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4535         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4536         (GPendingNotifyClosure): Delete.
4537         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4538         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4539
4540         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4541         client method generation until we can fix it...
4542         
4543         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4544         (load_from_service_thread_func): Ditto.
4545
4546         * tools/dbus-names-model.c (struct NamesModel): Hold
4547         DBusGProxyCall.
4548         (have_names_notify): Update prototype, use
4549         dbus_g_proxy_cancel_call.
4550         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4551
4552         * tools/dbus-monitor.c (filter_func): Update for print_message
4553         API change.
4554
4555         * test/glib/test-dbus-glib.c: Add more tests for async
4556         invocations.  Update many begin_call/end_call pairs to just use
4557         dbus_g_proxy_call.
4558
4559         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4560         allows us to dump print-introspect.c.
4561
4562         * tools/dbus-print-message.h (print_message): Add literal argument
4563         to print_message which is intended to allow printing arguments without
4564         metadata like "string=".
4565
4566         * tools/dbus-print-message.c (print_iter): Add literal argument.
4567         (print_message): Allow printing string messages literally.
4568
4569 2005-07-05  Colin Walters  <walters@verbum.org>
4570
4571         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4572         Remove value refcount leak, original patch from Jorn Baayen
4573         <jorn@openedhand.com>.  Also remove useless extra value in favor
4574         of prepending to value array directly.
4575
4576 2005-07-02  Colin Walters  <walters@verbum.org>
4577
4578         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4579
4580 2005-07-01  Colin Walters  <walters@verbum.org>
4581
4582         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4583         
4584         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4585         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4586         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4587         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4588
4589 2005-06-30  Colin Walters  <walters@verbum.org>
4590
4591         * test/glib/test-dbus-glib.c:
4592         * test/glib/test-service-glib.c:
4593         * test/glib/test-service-glib.xml: Update tests for new error
4594         setting bits, also add async tests (patch from Ross Burton).
4595
4596         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4597         DBUS_GLIB_THREADS_LIBS.
4598
4599         * glib/dbus-gproxy.c (get_name_owner)
4600         (dbus_g_pending_call_end_valist): Ditto.
4601
4602         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4603         domain (GQuark) to DBusGErrorInfo.  
4604         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4605         quark in error_metadata.  Take message interface as default
4606         error message interface.
4607         (gerror_to_dbus_error_message): Pass message interface.
4608         (dbus_set_g_error): Resurrected.
4609         (dbus_g_error_info_free): New function.
4610         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4611         of _peek to actually create the object class if it hasn't been
4612         created yet.
4613         (dbus_g_error_domain_register): New function.
4614
4615         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4616
4617         * glib/dbus-gparser.c (validate_signature): Ditto.
4618
4619         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4620         (dbus_g_error_domain_register): Prototype.
4621
4622         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4623         Update tests.
4624
4625 2005-06-29  Colin Walters  <walters@verbum.org>
4626
4627         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4628         DBUS_TYPE_G_OBJECT_PATH.
4629
4630         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4631         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4632         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4633         (dbus_g_object_path_get_g_type): New function.
4634         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4635         to DBUS_TYPE_G_OBJECT_PATH by default.
4636         (demarshal_proxy): Remove unused name variable.
4637         (demarshal_object_path, marshal_object_path): New functions.
4638         (demarshal_proxy_array, marshal_proxy_array): Delete.
4639         
4640         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4641         DBUS_TYPE_G_OBJECT_PATH to char *.
4642         (dbus_g_type_get_lookup_function): Map builtin
4643         DBUS_TYPE_G_OBJECT_PATH.
4644
4645         * test/glib/test-dbus-glib.c
4646         * test/glib/test-service-glib.c (my_object_objpath): 
4647         Adapt tests to new object path marshalling.
4648
4649 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4650
4651         * configure.in: force check for Python >= 2.4
4652
4653 2005-06-29  Colin Walters  <walters@verbum.org>
4654         
4655         Patch from Ross Burton <ross@openedhand.com>
4656         
4657         * glib/dbus-gobject.c (invoke_object_method): Unset object
4658         value in all cases, not only in async case.
4659
4660 2005-06-29  Colin Walters  <walters@verbum.org>
4661
4662         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4663         name_call for keeping track of any outgoing GetNameOwner call.
4664         Also add for_owner and associated.
4665         (struct _DBusGProxyManager): Add owner_names, which is hash table
4666         that maps a base name to a list of names it owns (that we're
4667         interested in).  Add pending_nameowner_calls which is a list of
4668         all outstanding GetNameOwner; avoids us having to iterate over
4669         every proxy.  Add unassociated_proxies which keeps track of name
4670         proxies with no associated name owner.
4671         (dbus_g_proxy_manager_unref): Destroy owner_names.
4672         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4673         name refcounts.
4674         (find_name_in_info, name_owner_foreach)
4675         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4676         (dbus_g_proxy_manager_monitor_name_owner)
4677         (dbus_g_proxy_manager_unmonitor_name_owner)
4678         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4679         New functions; they manipulate the owner_names mapping.
4680         (got_name_owner_cb): New function.
4681         (get_name_owner): New function, extracted from
4682         dbus_g_proxy_new_for_name_owner.
4683         (dbus_g_proxy_manager_register): For now we need to keep track of
4684         all NameOwnerChanged.  Also if the proxy is for a name, if we
4685         don't already know the name owner, queue a new GetNameOwner
4686         request and add it to our list of unassociated proxies.  Otherwise
4687         inc the refcount.
4688         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4689         cancel any pending GetNameOwner call, etc.
4690         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4691         the owner_names mapping to look up the current names for the
4692         signal source, and dispatch to any proxies for that name.
4693         (dbus_g_proxy_new): Initialize new members.
4694         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4695         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4696         (dbus_g_pending_call_end_valist): New function, extracted from
4697         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4698         but want to use the GLib infrastructure.  Also note how many
4699         arguments in reply were over.
4700         (dbus_g_pending_call_end): New function, just call
4701         dbus_g_pending_call_end_valist.
4702         (dbus_g_proxy_end_call_internal): Just call
4703         dbus_g_pending_call_end_valist.
4704
4705         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4706         of builtin marshaller for STRING_STRING_STRING.
4707
4708         * test/glib/test-dbus-glib.c: 
4709         * test/glib/test-service-glib.c:
4710         * test/glib/test-service-glib.xml:
4711         Extend tests to cover name proxies, destruction of owner proxies,
4712         etc.
4713         
4714         * glib/examples/example-signal-recipient.c
4715         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4716         
4717         * tools/dbus-send.c (main): Print D-BUS error name in addition
4718         to message.
4719
4720 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4721
4722         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4723         cmessage_function_handler): Patch from 
4724         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4725         by using the Py_GILState_Ensure/Release to synchronize with the
4726         python runtime.
4727         
4728 2005-06-28  Ray Strode  <rstrode@redhat.com>
4729
4730         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4731         babysitter helper process on last unref, bug #2813.
4732
4733 2005-06-27  Colin Walters  <walters@verbum.org>
4734
4735         * test/glib/test-dbus-glib.c: 
4736         * test/glib/test-service-glib.c:
4737         * test/glib/test-service-glib.xml:
4738         Test hash table signal emitting.
4739
4740         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4741         types to their fundamental basis types, since this is what
4742         marshallers operate on.  Also add an entry for VOID__BOXED.
4743         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4744
4745 2005-06-26  Havoc Pennington  <hp@redhat.com>
4746
4747         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4748         from Don Park
4749
4750 2005-06-26  Colin Walters  <walters@verbum.org>
4751
4752         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4753         (dbus_g_error_set): New public function from its ashes; used by
4754         both service-side method implementation and GLib bindings
4755         internals.
4756         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4757         (_dbus_glib_test): Add some tests.
4758
4759         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4760
4761         * test/glib/test-service-glib.c (my_object_throw_error): Use
4762         dbus_g_error_set.
4763
4764         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4765         errors thrown by dbus_g_error_set.
4766
4767         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4768
4769         * glib/dbus-gparser.c (validate_signature): Ditto.
4770
4771         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4772         (dbus_g_proxy_end_call_internal): Ditto.
4773
4774         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4775         converts DBUS_ERROR_x to DBUS_GERROR_x.
4776         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4777
4778         * doc/TODO: Remove error TODO.
4779
4780         * doc/dbus-tutorial.xml: Update with documentation about error
4781         handling.
4782
4783         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4784         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4785         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4786
4787 2005-06-22  Colin Walters  <walters@verbum.org>
4788         
4789         Patch from Ross Burton <ross@openedhand.com>
4790
4791         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4792
4793 2005-06-20  Colin Walters  <walters@verbum.org>
4794
4795         * configure.in: Add glib/examples.
4796
4797         * glib/Makefile.am: Add examples/
4798
4799         * glib/examples/.cvsignore
4800         * glib/examples/Makefile.am
4801         * glib/examples/example-client.c
4802         * glib/examples/example-service.c
4803         * glib/examples/example-service.xml
4804         * glib/examples/example-signal-emitter.c
4805         * glib/examples/example-signal-emitter.xml
4806         * glib/examples/example-signal-recipient.c:
4807         New files; GLib binding examples, ported from
4808         python/examples.
4809
4810 2005-06-20  Colin Walters  <walters@verbum.org>
4811
4812         * dbus/dbus-glib.h: 
4813         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4814         dbus_g_proxy_call.
4815
4816         * glib/dbus-binding-tool-glib.c: 
4817         * doc/dbus-tutorial.xml: 
4818         * test/glib/test-dbus-glib.c: Update for rename.
4819         
4820 2005-06-20  Colin Walters  <walters@verbum.org>
4821
4822         Patch suggested by Ross Burton <ross@openedhand.com>
4823
4824         * glib/dbus-gobject.c (export_signals): Free signal name.
4825         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4826         memory leak.  Add a bit of documentation.
4827         (dbus_g_method_return_error): Free context, and note we do
4828         so.
4829
4830 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4831
4832         * dbus/dbus-glib.h:
4833         * glib/dbus-gobject.c:
4834         * glib/dbus-gproxy.c:
4835         * glib/dbus-gvalue.c: Predeclare structs as 
4836         typedef struct _Something Something instead of 
4837         typedef struct Something Something, so we can 
4838         redeclare the prototypes. Other GNOME libraries 
4839         do this already.
4840
4841 2005-06-17  Colin Walters  <walters@verbum.org>
4842
4843         * tools/dbus-names-model.c (have_names_notify): Fix call
4844         to dbus_g_proxy_end_call.
4845         
4846 2005-06-17  Colin Walters  <walters@verbum.org>
4847
4848         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4849         spew warnings if we get malformed remote signals.
4850
4851         * glib/dbus-gobject.c (propsig_iterate): New function.
4852         (lookup_object_info): New function, extracted from
4853         lookup_object_and_method.
4854         (introspect_properties, introspect_signals): Delete; these
4855         are merged into write_interface.
4856         (write_interface): Write out signals and properties here;
4857         dump the org.gtk.object stuff and use the interface given
4858         in the introspection data blob.  Also fix up property XML.
4859         (lookup_values): New function.
4860         (introspect_interfaces): Gather a mapping from interface to a
4861         list of its methods, signals, and properties, then write out
4862         each interface.
4863         (lookup_object_and_method): Use lookup_object_info.
4864         (struct DBusGSignalClosure): Add interface.
4865         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4866         we can just use the constant data.
4867         (dbus_g_signal_closure_finalize): Don't free signal name.
4868         (signal_emitter_marshaller): Use interface from signal closure.
4869         (export_signals): Only export signals mentioned in introspection
4870         blob.
4871         (dbus_g_connection_register_g_object): Warn if we have no
4872         introspection data for an object.
4873         (funcsig_equal): Remove unused variable.
4874         (dbus_g_object_register_marshaller): Take varargs instead of
4875         list.
4876         (dbus_g_object_register_marshaller_array): New function,
4877         extracted from old dbus_g_object_register_marshaller.
4878
4879         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4880         signals and property data.
4881         (write_quoted_string): New function, extracted from generate_glue.
4882         (generate_glue): Write signals and properties to introspection
4883         blob.
4884
4885         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4886         exported_signals and exported_properties.
4887         (dbus_g_object_register_marshaller): Update prototype.
4888         (dbus_g_object_register_marshaller_array): Prototype.
4889         
4890         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4891
4892         * test/glib/test-service-glib.c: Add new test signals and method
4893         to emit them.
4894
4895         * test/glib/test-service-glib.xml: Add some test signals.
4896
4897         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4898         and my-object-marshal.h
4899         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4900         my-object-marshal.c.
4901         (my-object-marshal.c, my-object-marshal.h): Implement.
4902
4903         * test/glib/.cvsignore: Update.
4904
4905         * doc/TODO: Remove two GLib TODO items fixed by this
4906         patch.
4907
4908 2005-06-16  Colin Walters  <walters@verbum.org>
4909
4910         * doc/TODO: Update for GLib bindings.
4911         
4912 2005-06-16  Colin Walters  <walters@verbum.org>
4913
4914         * glib/dbus-binding-tool-glib.c:
4915         * glib/dbus-gobject.c:
4916         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4917         from Ross Burton, for his GLib bindings work.
4918
4919 2005-06-16  Colin Walters  <walters@verbum.org>
4920
4921         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4922         to iterate instead of walking to G_TYPE_INVALID.
4923
4924         Patch based on a patch from Ryan Gammon.
4925
4926 2005-06-16  Colin Walters  <walters@verbum.org>
4927
4928         * bus/bus.c (bus_context_new): Set parser to NULL
4929         after we unref it (Patch from Chris Boscolo, #2174).
4930         
4931 2005-06-16  Colin Walters  <walters@verbum.org>
4932
4933         * python/dbus_bindings.pyx.in: Import size_t,
4934         __int64_t, __uint64_t, and __signed.
4935
4936         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4937         Define cmsg struct, output it.
4938         (_dbus_read_credentials_unix_socket):
4939         Use cmsg struct.
4940         
4941         Patch from Joe Markus Clarke for FreeBSD support.
4942         
4943 2005-06-16  Colin Walters  <walters@verbum.org>
4944
4945         * tools/dbus-send.c (append_array): Use strtok.
4946         (append_dict): New function.
4947         (type_from_name): New function, extracted from main.
4948         (main): Handle sending dicts.
4949
4950         * tools/dbus-print-message.c (print_iter): Print dict
4951         entries.
4952         
4953 2005-06-16  Colin Walters  <walters@verbum.org>
4954
4955         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4956         values as the empty string (#2948).
4957         
4958 2005-06-16  Colin Walters  <walters@verbum.org>
4959
4960         * dbus/Makefile.am:
4961         * mono/doc/Makefile.am:
4962         * test/glib/Makefile.am:
4963
4964         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4965
4966 2005-06-16  Colin Walters  <walters@verbum.org>
4967
4968         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4969         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4970
4971         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4972         Increment pointer after swapping fixed array.  Add assertion
4973         for array length.
4974                 
4975 2005-06-15  Colin Walters  <walters@verbum.org>
4976
4977         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4978         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4979         
4980 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4981
4982         * NEWS: Update to 0.34
4983
4984 2005-06-15  David Zeuthen  <davidz@redhat.com>
4985
4986         * configure.in (LT_CURRENT): Revert back to 1 as the library
4987         hasn't changed and we've certainly not committed to protocol
4988         stability yet.  All this does is to break ABI. See commit note
4989         from hp@redhat.com 2005-05-05 for details.
4990         
4991 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4992
4993         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4994         (_dbus_connection_run_builtin_filters): New method
4995         (dbus_connection_dispatch): Run the builtin filters which in turn
4996         runs the peer filter which handles Ping messages.
4997
4998         * doc/TODO: 
4999          - Ping isn't handled: This patch fixes it
5000          
5001          - Add a test case for the Ping message: added TODO item
5002
5003 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5004
5005         * dbus/dbus-message.c:
5006         (dbus_message_has_path): New method
5007         (dbus_message_has_interface): New method
5008         (dbus_message_has_member): New method
5009
5010         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5011         New method
5012
5013         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5014         the keyring directory is private to the user
5015
5016         * doc/TODO:
5017          - The convenience functions in dbus-bus.h should perhaps have
5018          the signatures that they would have if they were autogenerated
5019          stubs. e.g. the acquire service function. We should also evaluate
5020          which of these functions to include, in light of the fact that
5021          GLib/Qt native stubs will probably also exist.: Punted
5022
5023          - add dbus_message_has_path(), maybe has_member/interface:
5024          fixed in this patch
5025
5026          - in dbus-keyring.c, enforce that the keyring dir is not
5027          world readable/writable: Fixed in this patch
5028
5029 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5030
5031         * dbus/dbus-marshal-validate.h: Added a new validation
5032         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5033         out of memory errors when validating signitures
5034
5035         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5036         in places where we previously used DBUS_VALID and a FALSE return 
5037         value to indicate OOM
5038         
5039         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5040         Use a stack to track the number of elements inside containers.  The 
5041         stack values are then used to validate that dict entries have only two
5042         elements within them.
5043         (validate_body_helper): check the reason for failure when validating
5044         varients
5045         
5046         * dbus/dbus-message.c (load_message): use 
5047         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5048         DBUS_VALID and a FALSE return value to indicate OOM
5049
5050         * doc/TODO: remove "- validate dict entry number of fields" as this
5051         patch fixes it
5052
5053 2005-06-14  David Zeuthen  <davidz@redhat.com>
5054
5055         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5056         watches (if applicable) and add new watches
5057
5058         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5059         (main): Setup SIGIO signal handler if using D_NOTIFY
5060
5061         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5062
5063         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5064         (merge_included): Also merge conf_dirs list
5065         (bus_config_parser_unref): Clear conf_dirs list
5066         (include_dir): Add directory to conf_dirs list
5067         (bus_config_parser_get_conf_dirs): New function
5068
5069         * bus/dir-watch.[ch]: New files
5070
5071         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5072
5073         * configure.in: Add checks for D_NOTIFY on Linux
5074
5075 2005-06-14  Colin Walters  <walters@verbum.org>
5076
5077         * glib/dbus-binding-tool-glib.c:
5078         * glib/dbus-gobject.c:
5079         * glib/dbus-gvalue.c: Fix indentation and brace style.
5080         
5081 2005-06-14  Ross Burton <ross@openedhand.com>.
5082
5083         * glib/dbus-glib.h: Make DBusGMethodInvocation
5084         a private structure.  Rearrange prototypes a bit.
5085         
5086         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5087         documentation for first_arg_type.
5088         
5089         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5090         here, add documentation.  Move dbus_g_method_return
5091         and dbus_g_method_return_error into public API
5092         section.
5093
5094 2005-06-14  Colin Walters  <walters@verbum.org>
5095
5096         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5097         Add missing return statements, noticed by Ross Burton.
5098         
5099 2005-06-13  Ross Burton <ross@openedhand.com>.
5100
5101         * glib/dbus-gobject.c: Handle errors on message
5102         demarshalling by sending error message back.
5103         * glib/dbus-gvalue.c: Initialize return variables.
5104
5105 2005-06-13  Colin Walters  <walters@verbum.org>
5106
5107         * glib/Makefile.am: Fix thinko in last patch.
5108
5109 2005-06-13  Colin Walters  <walters@verbum.org>
5110
5111         * glib/Makefile.am: Move dbus-gtype-specialized.c
5112         and dbus-gtype-specialized.h into a _HEADERS variable,
5113         install them.
5114
5115 2005-06-12  Colin Walters  <walters@verbum.org>
5116
5117         Async signals and various bugfixes and testing by
5118         Ross Burton <ross@openedhand.com>.
5119
5120         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5121         (dbus_gvalue_genmarshal_name_from_type)
5122         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5123         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5124         (dbus_g_value_types_init, dbus_gtype_from_signature)
5125         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5126         (dbus_gtypes_from_arg_signature): New function prototypes.
5127         (dbus_gvalue_demarshal): Take context and error arguments.
5128         (dbus_gvalue_demarshal_variant): New function.
5129         (dbus_gvalue_demarshal_message): New function.
5130         (dbus_gvalue_store): Delete.
5131
5132         * glib/dbus-gvalue.c:
5133
5134         File has been almost entirely rewritten; now we special-case
5135         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5136         hash tables correctly, etc.  Full support for recursive values
5137         is not yet complete.
5138
5139         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5140         argument of signal to G_TYPE_POINTER since we now pass a
5141         structure.
5142         (lookup_g_marshaller): Delete in favor of
5143         _dbus_gobject_lookup_marshaller.
5144         (marshal_dbus_message_to_g_marshaller): Use
5145         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5146         to handle remote signal callbacks.
5147         (dbus_g_proxy_new_from_proxy): New function; creates a new
5148         DBusGProxy by copying an existing one.
5149         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5150         (dbus_g_proxy_get_path): New functions.
5151         (dbus_g_proxy_marshal_args_to_message): New function;
5152         factored out of existing code.
5153         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5154         from a varargs array.
5155         (dbus_g_proxy_begin_call_internal): New function.
5156         (dbus_g_proxy_end_call_internal): New function.
5157         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5158         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5159         after collecting args into value array.
5160         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5161         invoke dbus_g_proxy_end_call_internal.
5162         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5163         end_call_internal.
5164         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5165         types.
5166         (array_free_all): New function.
5167         (dbus_g_proxy_add_signal): Take GTypes.
5168
5169         * glib/dbus-gobject.h:
5170         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5171         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5172         Prototype.
5173
5174         * glib/dbus-gobject.c: Add a global marshal_table hash which
5175         stores mappings from type signatures to marshallers.  Change lots
5176         of invocations of dbus_gtype_to_dbus_type to
5177         dbus_gtype_to_signature.
5178         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5179         (introspect_signals): Fix test for query.return_type.
5180         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5181         (invoke_object_method): Many changes.  Handle asynchronous
5182         invocations.  Convert arguments with
5183         dbus_gvalue_demarshal_message.  Handle errors.  Use
5184         DBusSignatureIter instead of strlen on args. Handle all arguments
5185         generically.  Special-case variants.
5186         (dbus_g_method_return, dbus_g_method_return_error): New function.
5187         (DBusGSignalClosure): New structure, closes over signal
5188         information.
5189         (dbus_g_signal_closure_new): New function.
5190         (dbus_g_signal_closure_finalize): New function.
5191         (signal_emitter_marshaller): New function; is special marshaller
5192         which emits signals on bus.
5193         (export_signals): New function; introspects object signals and
5194         connects to them.
5195         (dbus_g_object_type_install_info): Take GType instead of
5196         GObjectClass.
5197         (dbus_g_connection_register_g_object): Invoke export_signals.
5198         (dbus_g_connection_lookup_g_object): New function.
5199         (DBusGFuncSignature) New structure; used for mapping type
5200         signatures to marshallers.
5201         (funcsig_hash): New function; hashes DBusGFuncSignature.
5202         (funcsig_equal): New function; compares DBusGFuncSignature.
5203         (_dbus_gobject_lookup_marshaller): New function.
5204         (dbus_g_object_register_marshaller): New function; used to
5205         register a marshaller at runtime for a particular signature.
5206
5207         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5208
5209         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5210         which notes a server method implementation should be
5211         asynchronous.
5212
5213         * glib/dbus-binding-tool-glib.c
5214         (dbus_binding_tool_output_glib_server): Call
5215         dbus_g_value_types_init.
5216         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5217         variants specially.
5218         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5219         of a lookup function.
5220         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5221         (write_untyped_out_args): New method; write output arguments.
5222         (write_formal_declarations_for_direction): Function for
5223         writing prototypes.
5224         (write_formal_parameters_for_direction): Function for
5225         writing implementations.
5226         (write_typed_args_for_direction): Function for writing
5227         arguments prefixed with GTypes.
5228         (write_async_method_client): Write out async version
5229         of method.
5230
5231         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5232         (dbus_g_type_get_marshal_name): Move mapping from GType
5233         to marshal name into here.
5234         (dbus_g_type_get_c_name): Move into here.
5235         (compute_marshaller): Convert signature to type with
5236         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5237         (compute_marshaller_name): Ditto.
5238         (compute_marshaller): Handle async signal annotations.
5239         (gather_marshallers): Return if we don't have a known
5240         prefix.
5241         (generate_glue): Collect introspection blob here, and
5242         write all of the blob at the end.  This allows an object
5243         with multiple interfaces to work.
5244         Mark async methods in introspection blob.
5245
5246         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5247         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5248         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5249
5250         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5251         avoids people accidentally using DBUS_TYPE_* which should
5252         not be necessary anymore.
5253         Do include dbus-gtype-specialized.h, which are utilities
5254         for GLib container types.
5255         Add various #defines for types such as
5256         DBUS_TYPE_G_BOOLEAN_ARRAY.
5257         (DBusGValueIterator, DBusGValue): Define, not fully used
5258         yet.
5259         (dbus_g_value_get_g_type): Type for recursive value.
5260         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5261         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5262         (dbus_g_value_free): Prototypes.
5263         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5264         (dbus_g_proxy_set_interface): Prototype.
5265         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5266         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5267         types.
5268         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5269         Accessors.
5270         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5271         doing async invocations.
5272         (dbus_g_method_return, dbus_g_method_return_error):
5273         Prototypes.
5274         * doc/dbus-tutorial.xml: Update GLib section.
5275         
5276         * tools/dbus-viewer.c (load_child_nodes): Update
5277         for new invocation type of dbus_g_proxy_end_call.
5278         (load_from_service_thread_func): Ditto.
5279
5280         * tools/print-introspect.c (main): Ditto.
5281
5282         * tools/dbus-names-model.c (have_names_notify)
5283         (names_model_reload, names_model_set_connection)
5284         Use GTypes.
5285
5286         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5287         needed since Python bindings use GLib bindings.
5288
5289         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5290         Add --prefix argument.
5291
5292         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5293         unneeded --ignore-unsupported arg.
5294         
5295         * test/glib/test-service-glib.c: 
5296         * test/glib/test-service-glib.xml:
5297         * test/glib/test-dbus-glib.c: Add many more tests.
5298
5299 2005-06-06  David Zeuthen  <davidz@redhat.com>
5300
5301         * doc/TODO: Add item about need to remove deprecated functions.
5302
5303         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5304
5305         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5306         to repair the ABI which was broken with the last commit.
5307
5308 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5309
5310         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5311         (dbus_connection_disconnect): renamed to dbus_connection_close 
5312         for API symmetry with dbus_connection_open
5313         (_dbus_connection_open_internal): 
5314         s/dbus_connection_disconnect/dbus_connection_close
5315
5316         * dbus/dbus-bus.c (dbus_bus_get):
5317         s/dbus_connection_disconnect/dbus_connection_close
5318
5319         * bus/connection.c (bus_connections_unref, 
5320         bus_connections_setup_connection, bus_connections_expire_incomplete):
5321         s/dbus_connection_disconnect/dbus_connection_close
5322
5323         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5324         kill_client_connection_unchecked, check_hello_connection):
5325         s/dbus_connection_disconnect/dbus_connection_close
5326
5327         * bus/bus.c (new_connection_callback):
5328         s/dbus_connection_disconnect/dbus_connection_close
5329
5330         * tools/dbus-send.c (main):
5331         s/dbus_connection_disconnect/dbus_connection_close
5332
5333         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5334         s/dbus_connection_disconnect/dbus_connection_close
5335         
5336         * test/test-service.c (path_message_func, filter_func):
5337         s/dbus_connection_disconnect/dbus_connection_close
5338         
5339         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5340         
5341 2005-05-25  Colin Walters  <walters@verbum.org>
5342
5343         * dbus/dbus-protocol.h: Move various bus service #defines such
5344           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5345           dbus/dbus-shared.h.
5346         * dbus/dbus-shared.h: Various defines moved here.
5347         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5348
5349 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5350
5351         * python/__init__.py: Python bindings deserve a minor version
5352         update.  Upped to (0, 40, 2)
5353
5354 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5355
5356         * python/decorators.py: add explicitly_pass_message decorator
5357         for passing in the dbus message as keyword for edge case signal
5358         handling
5359
5360         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5361         to conform with what dbus expects for match rules
5362         (SignalMatchRule.execute): add the dbus message as a keyword
5363         if the signal handler has requested it
5364
5365         * python/examples/example/signal-recipient.py: added some more
5366         examples on how to hook up to signals
5367
5368 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5369
5370         * python/decorators.py: import dbus_bindings
5371
5372         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5373         SignalMatchNode): new classes that implement wildcard signal
5374         callback matching using a tree lookup. Heavily modified from a
5375         patch sent by Celso Pinto (fd.o bug #3241)
5376
5377         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5378         use new match classes to handle signals.
5379
5380 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5381         
5382         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5383
5384 2005-05-18  Havoc Pennington  <hp@redhat.com>
5385
5386         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5387         gettext. Not really worth requiring yet perhaps, but any
5388         production quality 1.0 would require it so we should go ahead and
5389         get things set up. We do have a couple token calls to
5390         bindtextdomain in the code already.
5391
5392 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5393
5394         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5395         when using recursive g_main_loops
5396
5397         * python/_dbus.py (class Bus): add the ProxyObjectClass
5398         alias for ProxyObject to make it easier for the Twisted 
5399         networking framework to integrate dbus.
5400
5401         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5402         alias for ProxyMethod to make it easier for the Twisted 
5403         networking framework to integrate dbus. 
5404
5405 2005-05-11  Ross Burton  <ross@openedhand.com>
5406
5407         * glib/dbus-glib-tool.c: Add --prefix argument.
5408         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5409         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5410         Add prefix argument.
5411         (generate_glue): Pass prefix argument down.
5412         (dbus_binding_tool_output_glib_server): Pass prefix to
5413         glib-genmarshal.
5414         
5415 2005-05-11  Colin Walters  <walters@verbum.org>
5416
5417         * tools/dbus-send.c (append_array): New function.
5418         (append_arg): Broken out from main.
5419         (main): Add cheesy hack to send arrays and variants.
5420         (usage): Update.
5421         * tools/dbus-print-message.c (print_iter): Broken out
5422         from main.
5423
5424 2005-05-11  Colin Walters  <walters@verbum.org>
5425
5426         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5427         New function, returns signature string for signature iter.
5428         * dbus/dbus-signature.h: Prototype it.
5429         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5430         New function, returns signature string for message iter.
5431         (dbus_message_iter_get_array_len): New function, returns
5432         length of array.
5433         (dbus_message_iter_get_fixed_array): Fix assertion; this
5434         function should be used when the iter is pointing to the
5435         contents of an array
5436         * dbus/dbus-message.h: Prototypes.
5437         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5438         New function; returns length of an array.
5439         * dbus/dbus-marshal-recursive.h: Prototype it.
5440         
5441 2005-05-11  Colin Walters  <walters@verbum.org>
5442
5443         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5444         compilation error.
5445         
5446 2005-05-08  Havoc Pennington  <hp@redhat.com>
5447
5448         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5449         daemon's pid, not the parent's pid, to the file descriptor.
5450         Reported by Taj Morton.
5451
5452 2005-05-05  Havoc Pennington  <hp@redhat.com>
5453
5454         * configure.in (LT_*): add notes on how the libtool versioning
5455         works to save thinking. Increment soname to indicate protocol
5456         breakage (though really the library interface hasn't changed I
5457         guess)
5458
5459         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5460         verify the GUID received from server matches what we were
5461         expecting, if we had an expectation
5462
5463         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5464         (_dbus_auth_get_guid_from_server): new function
5465         (send_begin): parse the OK args
5466
5467         * doc/dbus-specification.xml: add GUID to the auth protocol
5468
5469 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5470
5471         * Fix my name in previous changelog ;)
5472
5473         * python/proxies.py (ProxyObject.__getattr__): add further patch
5474         from Anthony Baxter to throw an AttributeError when python 
5475         __special__ functions are called instead of marshling them over 
5476         the bus (Bug#1685 comment 3).
5477
5478 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5479
5480         * python/Makefile.am: changed to use pyexecdir for the binding
5481         shared libraries (Bug#2494)
5482
5483         * python/exceptions.py: bring exceptions over from the bindings
5484         so they can be used in applications (Bug#2036)
5485         Make all exceptions derive from DBusException
5486
5487         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5488         of classes so that print obj doesn't throw an exception (Bug #1685)
5489
5490 2005-05-03  Ross Burton  <ross@openedhand.com>
5491
5492         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5493         Return if we get an error during registration.  Set up a
5494         weak reference on object to unregister if object is destroyed.
5495         (unregister_gobject): New function.
5496         
5497 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5498
5499         * python/dbus_bindings.pyx.in: 
5500         - added new type classes for hinting to the marashaler what type 
5501         to send over the wire
5502         - added int16 and uint16 marshalers
5503         - Fixed a bug in the type constants that caused int32 to go out
5504         as uint16 over the wire
5505         * python/dbus.py: split up into different files and renamed _dbus.py
5506         * python/__init__.py, python/_util.py, python/decorators.py, 
5507         python/exceptions.py, python/proxies.py, python/services.py,
5508         python/types.py: new files split off from dbus.py
5509         * python/Makefile.am: Add new files, remove dbus.py and 
5510         install all python files to <python module dir>/dbus
5511         * python/examples/*: Added #!/usr/bin/env python to the top of
5512         every example.  Patch provided by Tatavarty Kalyan
5513
5514 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5515
5516         * NEWS: Update to 0.33
5517
5518 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5519
5520         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5521         method for doing async calls
5522         (_pending_call_notification): New C function for handling pendning call
5523         callbacks
5524         (set_notify): New method for setting pending call notification
5525         
5526         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5527         Async capabilities added to remote method calls
5528         (Sender): class removed
5529         (RemoteService): class removed
5530         (ObjectTree): class removed for now
5531         (RemoteObject): Renamed to ProxyObject
5532         (RemoteMethod): Renamed to ProxyMethod
5533         (method): Decorator added for decorating python methods as dbus methods
5534         (signal): Decorator added for decorating python methods as signal emitters
5535         (ObjectType): Metaclass added for generating introspection data and the
5536         method callback vtable
5537         (Interface): Wrapper class added to wrap objects in a dbus interface
5538         (Object): Uses ObjectType as its metaclass and exports Introspect
5539         of the org.freedesktop.DBus.Introspectable interface
5540         (ValidationException, UnknownMethodException): new exceptions
5541
5542         * python/examples/*: Modified to fit with the new bindings
5543
5544 2005-04-23  Havoc Pennington  <hp@redhat.com>
5545
5546         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5547         reported by Tony Houghton
5548
5549         * test/test-service.c (main): test
5550         dbus_connection_get_object_path_data()
5551
5552         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5553         the exact_match
5554         (_dbus_object_tree_get_user_data_unlocked): new function used by
5555         dbus_connection_get_object_path_data()
5556         (do_register): add assertion test for get_user_data_unlocked
5557         (object_tree_test_iteration): more tests
5558
5559         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5560         new function from Dan Reed to let you get the user data from 
5561         dbus_connection_register_object_path()
5562
5563 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5564
5565         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5566         in numerous places that did not account for the NULL terminator
5567         (signature_from_seed): changed the manual string copy loop to 
5568         just use strcpy instead
5569         make check should now pass
5570
5571 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5572
5573         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5574         so that it allows messages that are not signals to pass in 
5575         NULL as the interface.
5576
5577 2005-04-18  David Zeuthen  <davidz@redhat.com>
5578
5579         * glib/dbus-gmain.c (io_handler_destroy_source): 
5580         (timeout_handler_destroy_source, connection_setup_free): 
5581         Also unref the source to avoid memory leaks.
5582
5583 2005-04-13  David Zeuthen  <davidz@redhat.com>
5584
5585         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5586         more reasonable, yet still totally arbitrary, value :-). 
5587
5588 2005-04-13  David Zeuthen  <davidz@redhat.com>
5589
5590         * doc/TODO: Added an "important for 1.0" item about selinux
5591         allow/deny messages
5592
5593 2005-04-13  David Zeuthen  <davidz@redhat.com>
5594
5595         * bus/selinux.c: Add c-file-style to top of file
5596         (log_audit_callback): Don't free the data here anymore
5597         (bus_selinux_check): Don't take spid and tpid since appending
5598         that to auxdata may OOM.
5599         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5600         to the caller if we are OOM by taking an error object.
5601         (bus_selinux_allows_send): -do-
5602
5603         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5604         and bus_selinux_allows_send
5605
5606         * bus/bus.c (bus_context_check_security_policy): Pass error and
5607         pass on OOM thrown by bus_selinux_allows_send()
5608
5609         * bus/services.c (bus_registry_acquire_service): Pass error and
5610         pass on OOM thrown by bus_selinux_allows_acquire_service()
5611
5612 2005-04-13  Havoc Pennington  <hp@redhat.com>
5613
5614         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5615         message at a time to avoid monopolizing the main loop, bug 
5616         #2953 from Benjamin Otte
5617
5618 2005-04-09  Havoc Pennington  <hp@redhat.com>
5619
5620         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5621         possible overlap, fix from Daniel Reed
5622         (fixup_alignment): fix signedness warnings
5623         (_dbus_string_append_unichar): ditto
5624
5625 2005-04-09  Havoc Pennington  <hp@redhat.com>
5626
5627         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5628
5629         * glib/dbus-glib-tool.c (main): fix warning
5630
5631         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5632
5633         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5634         add a new function that can be used in simple applications that
5635         don't have a main loop and are willing to block
5636
5637 2005-04-05  David Zeuthen  <davidz@redhat.com>
5638
5639         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5640
5641         * glib/dbus-gmain.c:
5642         (io_handler_destroy_source): Remove from list of IO handlers
5643         of the ConnectionSetup object
5644         (timeout_handler_destroy_source): -do- for timeout handlers
5645         (io_handler_source_finalized): Don't remove from list since
5646         we now do that in io_handler_destroy_source(). Renamed from
5647         io_handler_source_destroyed
5648         (timeout_handler_source_destroyed): -do- for timeout handlers
5649         (connection_setup_free): It is now safe to iterate over all
5650         IO and timeout handlers as the _destroy_source removes them
5651         from the list synchronously
5652
5653 2005-03-30  Havoc Pennington  <hp@redhat.com>
5654
5655         * configure.in: change check to gtk 2.4
5656
5657         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5658         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5659         to 2.4
5660
5661 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5662
5663         * News: Update 0.32
5664
5665         * HACKING: Fixed realease instructions.  configure.in should be updated to
5666           the next release by the person who made the last release.
5667
5668 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5669
5670         * python/lvalue_cast_post_process.py - removed.  Patch has been
5671           submitted to Pyrex maintainers that fixes gcc4.0 errors
5672
5673         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5674
5675 2005-03-24  Daniel Reed  <n@ml.org>
5676
5677         * tools/Makefile.am: Make print-introspect and
5678         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5679
5680 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5681
5682         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5683
5684         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5685           had in Red Hat packages for a while but for some reason never 
5686           got merged upstream
5687           (_dbus_is_a_number): New checks if a string
5688           can be converted to a number and does the conversion if it can
5689           (_dbus_user_database_lookup): Add check to see if the given username
5690           is a udi.  This allows udi's to be used instead of usernames in the
5691           config file.
5692           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5693           is a gdi.  This allows gdi's to be used instead of groupnames in the
5694           config file.
5695
5696 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5697
5698         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5699           code so that it compiles with gcc4.0
5700
5701         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5702           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5703           results back to dbus_binding.c
5704
5705 2005-03-20  Colin Walters  <walters@verbum.org>
5706
5707         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5708
5709         * configure.in: Require GTK+ 2.6.
5710         
5711 2005-03-20  Colin Walters  <walters@verbum.org>
5712
5713         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5714
5715 2005-03-17  Tom Parker  <palfrey@tevp.net>
5716
5717         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5718         print DBUS_UID_UNSET; instead print passed username.  Also
5719         be sure to actually use gid looked up in cache.
5720         
5721         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5722         for DBUS_GID_UNSET and groupname.
5723
5724 2005-03-17  Colin Walters  <walters@verbum.org>
5725
5726         * bus/print-introspect.c: Move to tools/.
5727         * bus/run-with-tmp-session-bus.sh: Ditto.
5728         
5729         * glib/Makefile.am (dbus-glib-bindings.h): Move
5730         generation to tools/Makefile.am.
5731
5732         * test/glib/run-test.sh: Update to handle move
5733         of run-with-tmp-session-bus.sh.
5734
5735         * test/glib/test-service-glib.c: Update to handle
5736         move of dbus-glib-bindings.h.
5737
5738         * tools/print-introspect.c: Moved here
5739         from bus/, and ported to GLib bindings.
5740
5741         * tools/run-with-tmp-session-bus.sh: Moved here
5742         from bus/.
5743
5744         * tools/Makefile.am: Generate dbus-glib-bindings.h
5745         and dbus-bus-introspect.xml here.
5746
5747         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5748         Update.
5749
5750 2005-03-17  Colin Walters  <walters@verbum.org>
5751
5752         * bus/driver.c (write_args_for_direction): Use
5753         _dbus_string_get_const_data to retrieve string;
5754         _dbus_string_get_const_data_len doesn't actually return
5755         a NULL-terminated substring.
5756
5757         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5758         (main): Change to use org_freedesktop_DBus_request_name
5759         instead of using g_proxy_begin_call/end_call.
5760
5761 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5762
5763         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5764         generating the finalizer.  Fixes from Ben Maurer.
5765
5766 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5767
5768         * mono/BusDriver.cs: Update method names: ListServices
5769         becomes ListNames; GetOwner becomes GetNameOwner.
5770
5771         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5772         onto the eval stack when removing the delegate.
5773
5774 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5775
5776         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5777         LT_CURRENT.  Set it to the autoconf variable.
5778                                                                                 
5779         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5780         classes that disconnects the signal handler delegate from the
5781         service object.  Fixes a big leak of proxy objects on the
5782         client side of things.  Patch from Ben Maurer
5783         <bmaurer@ximian.com>
5784
5785 2005-03-12  Colin Walters  <walters@verbum.org>
5786
5787         * bus/driver.c (write_args_for_direction): New function,
5788         parses a type signature into arguments and outputs to
5789         XML.
5790         (bus_driver_handle_introspect): Use it instead of
5791         hardcoding XML for certain signatures.
5792         
5793         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5794         dependency on dbus-daemon.
5795
5796         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5797         argument, pass it to dbus_binding_tool_output_glib_client.
5798
5799         * glib/dbus-binding-tool-glib.c
5800         (generate_client_glue): Protect against multiple inclusion.
5801         (dbus_binding_tool_output_glib_client): Add
5802         G_BEGIN_DECLS/G_END_DECLS.
5803
5804         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5805         Change to just take iface prefix directly.
5806         (write_formal_parameters): Clarify error message.
5807         (check_supported_parameters): New function; checks to see type
5808         signatures of method parameters are supported.
5809         (generate_client_glue): Handle ignore_unsupported flag.
5810         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5811         parameter.
5812
5813         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5814         --ignore-unsupported by default until glib bindings
5815         support arrays.
5816
5817 2005-03-11  Colin Walters  <walters@verbum.org>
5818
5819         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5820         install it.
5821
5822         * bus/print-introspect.c: New file; prints introspection
5823         data for a given name and object path.
5824
5825         * bus/run-with-tmp-session-bus.sh: New file, refactored
5826         from test/glib/run-test.sh.  Creates a temporary session
5827         bus and runs another program.
5828
5829         * test/glib/run-test.sh: Refactor to invoke
5830         run-with-tmp-session-bus.sh.
5831
5832         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5833         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5834         macros instead of hardcoding.
5835
5836         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5837
5838 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5839
5840         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5841         this unref; it doesn't match up evenly in some codepaths.
5842         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5843         this evenly matches with the ref near the top of this function.
5844
5845 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5846
5847         * dbus/dbus-object-tree.c
5848         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5849         and we try to unregister a path that's not registered, still go
5850         through the process of unlocking and don't just return.
5851
5852 2005-03-09  Colin Walters  <walters@verbum.org>
5853
5854         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5855         to this are generated for client-side wrappers.  Invokes a
5856         D-BUS method and returns reply values.  
5857
5858         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5859         function; writes signature string for argument direction.
5860         (write_args_for_direction): Change to pass input values directly
5861         instead of via address, and fix indentation.
5862         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5863         make generated wrappers inlineable.
5864
5865         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5866         note about using dbus_type_is_fixed.
5867
5868         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5869         dbus/dbus-signature.c as dbus_type_is_fixed.
5870
5871         All callers updated.
5872
5873         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5874         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5875
5876         * dbus/dbus-signature.h: Prototype.
5877
5878         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5879         error printf code.
5880
5881         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5882         appropriate instead of just freeing it.
5883         (main): Free returned strings using g_free.
5884
5885         * test/glib/Makefile.am (test-service-glib-glue.h)
5886         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5887
5888         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5889         simply maps a simple D-BUS type to GType.
5890         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5891         GType.
5892         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5893         initialize the value with it.
5894         (dbus_gvalue_binding_type_from_type): Unused, delete.
5895         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5896         various types instead of unmarshalling to value data directly.
5897         Remove can_convert boolean.
5898         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5899         returning directly instead of using can_convert boolean.
5900         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5901         Stores a GValue in a pointer to a value of its corresponding C
5902         type.
5903
5904         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5905         add dbus_gvalue_store.
5906
5907 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5908
5909         Fix a bunch of lifecycle and memory management problems
5910         in the mono bindings.
5911
5912         * mono/Arguments.cs (Arguments): Implement IDisposable
5913
5914         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5915         strictly a static class.
5916
5917         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5918         delegates into this file.
5919         (Connection): Implement IDisposable.
5920         (Dispose): Disconnect the connection and set the raw connection
5921         pointer to IntPtr.Zero.
5922         (~Connection): Call Dispose().
5923         (RegisterObjectPath): Added.  Manages the registration of object
5924         paths so we can cleanly disconnect them at dispose/finalize time.
5925         (UnregisterObjectPath): Ditto.
5926         (set_RawConnection): Unregister all of the object paths when
5927         changing the underlying DBusConnection.  Add them back onto the
5928         new connection, if any.
5929
5930         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5931         more unmanaged resources anymore, so it's not necessary.  Move all
5932         the DBusObjectPathVTable stuff out of here.
5933         (Handler): Save references to our delegates so that they don't get
5934         finalized.  Call Connection.RegisterObjectPath() instead of
5935         dbus_connection_register_object_path() directly.
5936         (Message_Called): Dispose the message after we're finished with
5937         it.
5938
5939         * mono/Message.cs (Message): Implement IDisposable.
5940         (Dispose): Dispose the Arguments, and set the RawMessage to
5941         IntPtr.Zero.
5942         (SendWithReplyAndBlock): We own the ref to the reply that comes
5943         back from dbus_connection_send_with_reply_and_block() so add a
5944         comment about that and unref it after we've constructed a managed
5945         MethodReturn class around it.  Fixes a big, big leak.
5946
5947         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5948         method.
5949         (BuildSignalHandler): After we've sent the Signal message, dispose
5950         of it.
5951         (BuildMethod): Dispose of the method call and reply messages after
5952         we've sent the message and extracted the data we want from the
5953         reply.
5954
5955         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5956         anymore.
5957         (Service_FilterCalled): Dispose of the message after we're
5958         finished with it.
5959
5960 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5961
5962         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5963         After we attach our pending call to the connection, unref
5964         it.  Fixes a leak.
5965  
5966         * mono/Connection.cs (set_RawConnection): Disconnect our
5967         filter and match callbacks from the old connection and
5968         reconnect them to the new connection, if any.
5969
5970         * mono/DBusType/Array.cs: "Code" is a static member, so
5971         don't use "this" to refer to it.  Fix for stricter checking
5972         in Mono 1.1.4.
5973  
5974         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5975         object path that we pass into unmanaged code.
5976  
5977         * mono/DBusType/String.cs (Append): Don't leak the string
5978         that we pass into unmanged code.
5979
5980 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5981         * NEWS: Update for 0.31
5982
5983         * configure.in: Release 0.31
5984         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5985
5986         * qt/Makefile.am: fixed build
5987
5988         * dbus/Makefile.am: soname bump for libdbus
5989
5990         * glib/Makefile.am: soname bump for libdbus-glib
5991
5992 2005-03-05  Havoc Pennington  <hp@redhat.com>
5993
5994         * dbus/dbus-sysdeps.c:
5995         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5996         value
5997         (_dbus_generate_random_bytes_buffer): fix return value
5998
5999         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
6000         checks actually work, from Tom Parker <fdo@tevp.net>
6001
6002 2005-03-01  Colin Walters  <walters@verbum.org>
6003
6004         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6005         functions copied from dbus-glib-tool.c.
6006         (main): Convert lots of error code to use them.
6007         Also add some testing for introspection bits.
6008
6009 2005-03-01  Colin Walters  <walters@verbum.org>
6010         
6011         * doc/TODO: Remove introspection signature TODO.
6012
6013 2005-02-27  Colin Walters  <walters@verbum.org>
6014
6015         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6016         Change return value to const char * instead of int so we can do
6017         full signatures.
6018         (struct PropertyInfo, struct ArgInfo): Store char *.
6019         (property_info_new, arg_info_new): Update parameters, strdup.
6020         (property_info_unref, arg_info_unref): Free.
6021
6022         * glib/dbus-gidl.h: Update prototypes.
6023
6024         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6025         (validate_signature): New function, just validates signature and
6026         sets GError.
6027         (parse_property, parse_arg): Invoke validate_signature.  Store
6028         signature instead of just type code.
6029
6030         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6031         function to return a primary type for a signature, dropping
6032         information about types in container types.
6033         (dbus_gvalue_genmarshal_name_from_type)
6034         (dbus_gvalue_binding_type_from_type)
6035         (dbus_gvalue_ctype_from_type): Update to take full signature
6036          instead of type code.
6037         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6038
6039         * glib/dbus-gvalue.h: Update prototypes for above.
6040
6041         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6042         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6043         (introspect_properties, introspect_signals, write_interface):
6044         Update to handle signatures, and remove usage of
6045         _dbus_gutils_type_to_string.
6046         (handle_introspect): Print out type codes instead of e.g. "string"
6047         in hardcoded introspection XML; also use x_AS_STRING constants
6048         instead of hardcoding in string.
6049
6050         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6051         to string.  Remove usage of _dbus_gutils_type_to_string.
6052
6053         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6054
6055         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6056         deletion.
6057         
6058         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6059         (compute_marshaller_name, generate_glue): Handle signature change
6060         to string.
6061         (write_formal_parameters, write_args_for_direction): Ditto, and
6062         remove FIXME.
6063
6064         * tools/dbus-tree-view.c (type_to_string): Delete.
6065         (info_set_func_text): Update to print full signatures.
6066
6067         * test/glib/test-service-glib.xml: Change types to new
6068         introspection format.
6069
6070 2005-02-26  Havoc Pennington  <hp@redhat.com>
6071
6072         * doc/TODO: remove the "guid" item
6073
6074         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6075         (with_bus_thread_func): use open_private
6076
6077         * dbus/dbus-connection.c (dbus_connection_open_private): new
6078         function that works like the old dbus_connection_open()
6079         (dbus_connection_open): now returns an existing connection if
6080         possible
6081
6082         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6083         through the GUID to the transport
6084
6085         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6086         GUID in hex-encoded form.
6087
6088         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6089         pass GUID argument in to the transport
6090
6091         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6092         guid argument
6093
6094         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6095
6096         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6097
6098 2005-02-25  Havoc Pennington  <hp@redhat.com>
6099
6100         * doc/dbus-specification.xml: document the GUID thing
6101
6102         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6103         globally unique ID for the server, and put a "guid=hexencoded"
6104         field in the address
6105
6106         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6107
6108         * dbus/dbus-message.c: ditto
6109
6110         * dbus/dbus-dataslot.c: ditto
6111
6112         * dbus/dbus-list.c: ditto
6113
6114         * dbus/dbus-internals.h: wait, just include
6115         dbus-threads-internal.h here
6116         
6117         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6118         use in main library
6119
6120         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6121
6122 2005-02-24  Colin Walters  <walters@verbum.org>
6123
6124         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6125
6126 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6127
6128         * glib/Makefile.am: added dbus-gobject.h to sources list
6129         so distcheck doesn't fail
6130         
6131 2005-02-24  Havoc Pennington  <hp@redhat.com>
6132
6133         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6134         you must disconnect before unref, since locking and other things
6135         are screwed up otherwise. Fix assorted other locking stuff.
6136
6137         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6138         fix compilation
6139
6140         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6141         into a private header and don't export from the library
6142
6143         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6144
6145 2005-02-24  Colin Walters  <walters@verbum.org>
6146         
6147         * dbus/dbus-signature.c: New file; implements various functions
6148         related to type signatures.  Includes an interator for parsing,
6149         validation functions.
6150         (dbus_type_is_basic): Moved here from
6151         dbus-marshal-basic.c:_dbus_type_is_basic.
6152         (dbus_type_is_container): Moved here from
6153         dbus-marshal-basic.c:_dbus_type_is_container.
6154
6155         All callers of _dbus_type_is_container and _dbus_type_is_basic
6156         updated, and include dbus-signature.h.
6157
6158         * dbus/dbus-signature.h: New file; prototypes for the above.
6159
6160         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6161         dbus-signature.h.
6162
6163         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6164         function factored out of _dbus_first_type_in_signature.
6165         (_dbus_first_type_in_signature_c_str): New function; returns first
6166         type code for a type signature character.
6167
6168         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6169         handle function moves.
6170
6171         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6172
6173         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6174         function; skips to next complete type in type signature.
6175         Implemented using previous skip_one_complete_type.  Now
6176         skip_one_complete_type just delegates to
6177         _dbus_type_signature_next.
6178
6179         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6180         to dbus-signature.c
6181         (_dbus_type_is_container): Ditto.
6182
6183         * doc/dbus-specification.xml: Update introspection sample to
6184         use real type signatures.
6185
6186         * dbus/dbus-test.h: Prototype signature test.
6187
6188         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6189         signature tests.
6190
6191         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6192
6193 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6194
6195         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6196         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6197
6198 2005-02-21  Colin Walters  <walters@verbum.org>
6199
6200         * dbus/dbus-test-main.c (main): Take optional specific test
6201         argument.
6202
6203         * dbus/dbus-test.c (run_test): New function, runs a test function
6204         with no data directory.
6205         (run_data_test): Like above, but takes data directory.
6206         (dbus_internal_do_not_use_run_tests): Take
6207         specific test argument.  Replace lots of cut n' paste code
6208         with run_test and run_data_test.
6209
6210         * dbus/dbus-test.h: Update prototype for
6211         dbus_internal_do_not_use_run_tests.
6212
6213 2005-02-20  Havoc Pennington  <hp@redhat.com>
6214
6215         Fix bugs reported by Daniel P. Berrange
6216         
6217         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6218         (protected_change_watch): new function
6219         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6220         (_dbus_server_add_watch): change to work like the
6221         dbus-connection.c equivalents; like those, probably kind of
6222         busted, but should at least mostly work for now
6223         (dbus_server_disconnect): drop the lock if we were already
6224         disconnected, patch from Daniel P. Berrange
6225
6226         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6227         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6228         same stuff
6229
6230         * doc/TODO: todo about unscrewing this mess
6231
6232 2005-02-19  Colin Walters  <walters@verbum.org>
6233
6234         * glib/dbus-binding-tool-glib.c
6235         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6236
6237         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6238         as errno.h and sys/stat.h.
6239         (lose): New function, prints error with
6240         newline and exits.
6241         (lose_gerror): Similar, but takes GError for message.
6242         (main): Add --output argument to specify output file to write to,
6243         instead of always printing to stdout.  In this mode, determine
6244         timestamps on source files to see whether any are newer than the
6245         target file.  If not, exit.  Also convert a number of error
6246         messages to use lose (since it's shorter), and switch to using
6247         g_io_channel_shutdown.
6248
6249 2005-02-19  Havoc Pennington  <hp@redhat.com>
6250
6251         * glib/dbus-gobject.c
6252         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6253
6254         * glib/dbus-glib.c: fix doxygen warnings
6255
6256         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6257         is found on an <arg>
6258
6259 2005-02-17  Colin Walters  <walters@verbum.org>
6260
6261         * glib/dbus-gobject.h: Don't export
6262         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6263         
6264         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6265         (invoke_object_method): Handle it.
6266
6267         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6268         Handle rename.
6269         
6270 2005-02-17  Colin Walters  <walters@verbum.org>
6271
6272         * bus/.cvsignore, doc/.cvsignore
6273         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6274         Update.
6275
6276 2005-02-17  Colin Walters  <walters@verbum.org>
6277         
6278         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6279         Rename to DBUS_SERVICE_DBUS.
6280         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6281         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6282         Change the value from "org.freedesktop.Local"
6283         to "org.freedesktop.DBus.Local".
6284         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6285         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6286         DBUS_INTERFACE_INTROSPECTABLE.
6287         Change the value from "org.freedesktop.Introspectable"
6288         to "org.freedesktop.DBus.Introspectable".
6289         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6290         DBUS_INTERFACE_PROPERTIES.
6291         Change the value from "org.freedesktop.Properties"
6292         to "org.freedesktop.DBus.Properties".
6293         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6294         DBUS_INTERFACE_PEER.
6295         Change the value from "org.freedesktop.Peer"
6296         to "org.freedesktop.DBus.Peer".
6297         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6298         DBUS_INTERFACE_LOCAL.
6299         Change the value from "org.freedesktop.Local"
6300         to "org.freedesktop.DBus.Local".
6301
6302         All other users of those constants have been changed.
6303
6304         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6305
6306         * glib/dbus-gobject.c (handle_introspect): Use constants.
6307
6308         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6309
6310 2005-02-17  Colin Walters  <walters@verbum.org>
6311
6312         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6313         (parse_node, parse_interface, parse_method, parse_signal)
6314         (parse_property, parse_annotation): Lose if we're currently in an
6315         annotation.
6316         (parse_annotation): New function.
6317         (parser_start_element, parser_end_element): Handle annotation.
6318         (parse_method, parse_interface): Remove support for c_name attribute,
6319         switch to annotations.
6320
6321         * glib/dbus-gidl.h (interface_info_get_binding_names)
6322         (method_info_get_binding_names)
6323         (interface_info_get_binding_name, method_info_get_binding_name)
6324         (interface_info_set_binding_name, method_info_set_binding_name):
6325         Remove.
6326         (interface_info_get_annotations, method_info_get_annotations)
6327         (interface_info_get_annotation, method_info_get_annotation)
6328         (interface_info_add_annotation, method_info_add_annotation):
6329         Prototype.
6330
6331         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6332         for "bindings".
6333         (struct MethodInfo): Ditto.
6334         Straightfoward conversion of binding methods into annotation methods
6335         as prototyped.
6336
6337         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6338
6339         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6340
6341         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6342         Use new annotation API.
6343
6344         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6345         annotation element.
6346         
6347         * doc/dbus-specification.xml: Discuss introspection annotations,
6348         include list of well-known annotations.
6349
6350         * test/glib/test-service-glib.xml: Make validate against new DTD.
6351
6352 2005-02-17  Colin Walters  <walters@verbum.org>
6353
6354         This patch is based on initial work from
6355         Paul Kuliniewicz <kuliniew@purdue.edu>.
6356
6357         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6358         initialization of GValue from dbus type to here.
6359         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6360         for the "glib-genmarshal" program from a DBus type.
6361         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6362         into the C name for it we use in the glib bindings.
6363         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6364         glib C type (not GValue).
6365         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6366
6367         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6368         from dbus-gobject.c.
6369
6370         * glib/dbus-gutils.h: Prototype it.
6371
6372         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6373         (marshal_dbus_message_to_g_marshaller): Use new shared function
6374         dbus_glib_marshal_dbus_message_to_gvalue_array.
6375
6376         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6377         Will be changed once we have annotations.
6378
6379         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6380         GStaticRWLock.  Callers updated.
6381         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6382         (string_table_next): New function for iterating over zero-terminated
6383         string value array.
6384         (string_table_lookup): New function; retrieves specific entry in
6385         array.
6386         (get_method_data): New function; look up method data in object data chunk.
6387         (object_error_domain_prefix_from_object_info)
6388         (object_error_code_from_object_info): New functions, but not implemented yet.
6389         (method_interface_from_object_info): New function; retrieve interface name.
6390         (method_name_from_object_info): New function; retrieve method name.
6391         (method_arg_info_from_object_info): New function; retrieve argument data.
6392         (arg_iterate): New function; iterates over serialized argument data.
6393         (method_dir_signature_from_object_info): New function; returns a
6394         GString holding type signature for arguments for just one
6395         direction (input or output).
6396         (method_input_signature_from_object_info)
6397         (method_output_signature_from_object_info): New functions.
6398         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6399         converts dbus message arguments into a GValue array.  Used for both
6400         signal handling and method invocation.
6401         (struct DBusGlibWriteIterfaceData): New utility structure.
6402         (write_interface): New function; generate introspection XML for
6403         an interface.
6404         (introspect_interfaces): New function; gathers all interface->methods,
6405         generates introspection XML for them.
6406         (handle_introspect): Invoke introspect_interfaces.
6407         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6408         (lookup_object_and_method): New function; examines an incoming message
6409         and attempts to match it up (via interface, method name, and argument
6410         signature) with a known object and method.
6411         (gerror_domaincode_to_dbus_error_name): New function; converts a
6412         GError domain and code into a DBus error name.  Needs GError data
6413         added to object introspection to work well.
6414         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6415         GError.
6416         (invoke_object_method): New function to invoke an object method
6417         looked up via lookup_object_and_method.  Parses the incoming
6418         message, turns it into a GValue array, then invokes the marshaller
6419         specified in the DBusGMethodInfo.  Creates a new message with
6420         either return values or error message as appropriate.
6421         (gobject_message_function): Invoke lookup_object_and_method and
6422         invoke_object_method.
6423
6424         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6425         (enum DBusBindingOutputMode): New enum for binding output modes.
6426         (pretty_print): Print binding names.
6427         (dbus_binding_tool_error_quark): GError bits.
6428         (version): Fix typo.
6429         (main): Create GIOChannel for output.  Parse new --mode argument,
6430         possible values are "pretty-print", "glib-server", "glib-client".
6431         Use mode to invoke appropriate function.
6432         
6433         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6434
6435         * glib/dbus-glib-tool.h: New header, just includes GError bits
6436         for now.
6437
6438         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6439         maps binding style to name.
6440         (struct MethodInfo): Ditto.
6441         (get_hash_keys, get_hash_key): Utility function, returns keys for
6442         a GHashTable.
6443         (interface_info_new, method_info_new): Initialize bindings.
6444         (interface_info_unref, method_info_unref): Destroy bindings.
6445         (method_info_get_binding_names, method_info_get_binding_name)
6446         (interface_info_get_binding_names, interface_info_get_binding_name):
6447         Functions for retrieving binding names.
6448         (method_info_set_binding_name, interface_info_set_binding_name):
6449         Functions for setting binding names.
6450
6451         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6452         for glib binding generation.
6453
6454         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6455         and client-side glib glue generation.
6456
6457         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6458         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6459         dbus-glib-tool.h.
6460
6461         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6462         of using GClosureMarshal directly.
6463         (struct DBusGObjectInfo): Add n_infos member.
6464
6465         * test/glib/test-service-glib.xml: New file; contains introspection data
6466         for MyTestObject used in test-service-glib.c.
6467
6468         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6469         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6470         (my_object_uppercase, my_object_many_args): New test methods.
6471         (main): Use dbus_g_object_class_install_info to include generated object
6472         info.
6473
6474         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6475         as well as client-side bindings.
6476
6477         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6478         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6479         using both the dbus_gproxy stuff directly as well as the generated bindings.
6480
6481 2005-02-15  Havoc Pennington  <hp@redhat.com>
6482
6483         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6484         complete a pending call, don't run filters first.
6485
6486         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6487         dbus_pending_call_steal_reply
6488
6489         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6490         _dbus_connection_block_pending_call
6491         (dbus_pending_call_get_reply): change to steal_reply and return a
6492         ref
6493
6494         * dbus/dbus-connection.c
6495         (dbus_connection_send_with_reply_and_block): port to work in terms
6496         of DBusPendingCall
6497         (_dbus_connection_block_pending_call): replace block_for_reply
6498         with this
6499
6500 2005-02-14  Havoc Pennington  <hp@redhat.com>
6501
6502         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6503         properly handle looking up group information by name; fix 
6504         from j@bootlab.org
6505
6506 2005-02-13  Havoc Pennington  <hp@redhat.com>
6507
6508         * dbus/dbus-connection.c (dbus_connection_return_message) 
6509         (dbus_connection_borrow_message): hold dispatch lock while message
6510         is outstanding
6511         (_dbus_connection_block_for_reply): hold dispatch lock while we
6512         block for the reply, so nobody steals our reply
6513         (dbus_connection_pop_message): hold the dispatch lock while we
6514         pluck the message
6515
6516 2005-02-13  Havoc Pennington  <hp@redhat.com>
6517
6518         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6519         (_dbus_connection_release_dispatch)
6520         (_dbus_connection_acquire_io_path)
6521         (_dbus_connection_release_io_path): make the mutex and condvar
6522         control access to the "acquired" flag. Drop the connection lock
6523         while waiting on the condvar. Hopefully these are baby steps in
6524         roughly the right direction.
6525
6526 2005-02-13  Havoc Pennington  <hp@redhat.com>
6527
6528         * dbus/dbus-connection.c: use separate mutexes for the condition
6529         variables; this is some kind of baseline for sanity, but the
6530         condition variables still aren't used correctly afaict
6531
6532 2005-02-13  Havoc Pennington  <hp@redhat.com>
6533
6534         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6535         fix a double-unlock
6536
6537         * dbus/dbus-connection.c
6538         (_dbus_connection_detach_pending_call_unlocked): add this
6539
6540         Initial semi-correct pass through to fix thread locking; there are
6541         still some issues with the condition variable paths I'm pretty
6542         sure
6543         
6544         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6545         lock/unlock calls
6546
6547         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6548         rename to add _unlocked
6549         (struct DBusConnection): move "dispatch_acquired" and
6550         "io_path_acquired" to use only one bit each.
6551         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6552         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6553         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6554         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6555         (_dbus_connection_remove_timeout) 
6556         (_dbus_connection_toggle_timeout): drop lock when calling out to
6557         user functions; done in a hacky/bad way.
6558         (_dbus_connection_send_and_unlock): add a missing unlock
6559         (_dbus_connection_block_for_reply): add a missing unlock
6560
6561         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6562         drop lock in a hacky probably unsafe way to call out to user
6563         function
6564
6565 2005-02-12  Havoc Pennington  <hp@redhat.com>
6566
6567         * tools/dbus-tree-view.c (info_set_func_text): display more
6568         details on args
6569
6570         * bus/driver.c (bus_driver_handle_list_services): list the bus
6571         driver
6572
6573         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6574
6575         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6576         (method_info_get_n_args): new function
6577
6578 2005-02-12  Havoc Pennington  <hp@redhat.com>
6579
6580         * bus/driver.c (bus_driver_handle_introspect): add introspection
6581         for bus driver
6582
6583 2005-02-12  Havoc Pennington  <hp@redhat.com>
6584
6585         * bus/driver.c: put the signature of each bus driver method in the
6586         table of handlers and check it on incoming calls; this isn't
6587         really useful, but going to add introspect support in a minute.
6588
6589 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6590
6591         * mono/Connection.cs: The unpredictability of finalizers in mono
6592         prevents us from deterministically disconnecting the filters from
6593         the Service class's finalizer, so move tracking of filters and
6594         matches here.  Add API for that.
6595
6596         * mono/Service.cs: Remove the code, add code which calls the
6597         methods now on the Connection class.
6598
6599 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6600
6601         * python/dbus.py (class Sender): added to support dbus signals better
6602         (Bus::add_signal_receiver): added expand_args parameter which defaults
6603         to True.  When expand args is True the signal handler will pass the 
6604         message arguments as parameters to the signal handler.  If False
6605         revert to previous behavior where the signal handler must get the
6606         argument list from the message.  This is to help port applications
6607         like HAL that have a tendancy to send variable length argument lists.
6608         self._match_rule_to_receivers is now a dict of dicts.
6609         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6610         removing it from a list
6611         (Bus::_signal_func): change signal handlers so that interface,
6612         signal_name, service, path and message are packed into a Sender
6613         object and that is passed to the handler.  If expand_args is True
6614         extract the args list from the message and append it to the parameter
6615         list
6616         
6617         * python/dbus_bindings.pyx.in (class Signature): added to support 
6618         signiature types
6619         (MessageIter::__init__): changed iteration limit to match D-BUS
6620         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6621         STRUCT and VARIENT type support
6622         (MessageIter::python_value_to_dbus_sig): made recursive to support
6623         recursive types
6624         (MessageIter::append*): added Signature, dict, tuple 
6625         support
6626
6627         * python/examples/example-client.py: added examples of getting tuples
6628         and dicts
6629
6630         * python/examples/example-service.py: added examples of sending tuples
6631         and dicts
6632
6633         * python/examples/example-signal-recipient.py: Fixed to handle new
6634         signal callback format
6635
6636 2005-02-10  Havoc Pennington  <hp@redhat.com>
6637
6638         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6639         (call dbus_g_proxy_add_signal)
6640
6641         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6642         escape the hostname
6643         (_dbus_server_new_for_domain_socket): escape the path
6644
6645         * dbus/dbus-address.c (dbus_address_escape_value): new
6646         (dbus_address_unescape_value): new
6647         (dbus_parse_address): unescape values
6648
6649         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6650
6651         * doc/dbus-specification.xml: explain how to escape values in
6652         addresses
6653
6654 2005-02-10  Havoc Pennington  <hp@redhat.com>
6655
6656         * dbus/dbus-message-factory.c (generate_special): modify test to
6657         avoid using a non-basic dict key
6658
6659         * dbus/dbus-marshal-validate-util.c: add test for the below
6660
6661         * doc/dbus-specification.xml: require that dict keys are a basic
6662         type
6663
6664         * dbus/dbus-marshal-validate.c
6665         (_dbus_validate_signature_with_reason): require that dict key is a
6666         basic type
6667
6668 2005-02-10  Havoc Pennington  <hp@redhat.com>
6669
6670         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6671         change to be _and_unlock instead of _unlocked
6672
6673         * dbus/dbus-connection.c
6674         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6675         have no_update so we can find this bug quickly in future
6676
6677 2005-02-10  Havoc Pennington  <hp@redhat.com>
6678
6679         * dbus/dbus-message-util.c (verify_test_message): tests for string
6680         array
6681
6682         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6683         support for arrays of string/signature/path
6684
6685 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6686
6687         * dbus/dbus-connection.c
6688         (_dbus_connection_queue_received_message_link,
6689         _dbus_connection_message_sent): Add the path to
6690         the verbose output.
6691         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6692         _dbus_connection_send_preallocated_unlocked(), updated the
6693         dispatch status, and unlocks.  Fixes a bug where certain
6694         situations (like a broken pipe) could cause a Disconnect message
6695         to not be sent, tricking the bus into thinking a service was still
6696         there when the process had quit.
6697         (_dbus_connection_send_preallocated): Call
6698         _dbus_connection_send_preallocated_and_unlock().
6699         (_dbus_connection_send_and_unlock): Added.  Calls
6700         _dbus_connection_send_preallocated_and_unlock().
6701         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6702         (dbus_connection_send_with_reply): Update the dispatch status and
6703         unlock.
6704
6705         * mono/Service.cs (~Service): Added.  Removes the filter so that
6706         we don't get unmanaged code calling back into a GCed delegate.
6707         (RemoveFilter); Added.
6708
6709 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6710
6711         * dbus/dbus-message.c (dbus_message_iter_open_container):
6712         - Removed check for iterator type being an array because
6713         get_arg_type does not work with writer iterators
6714         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6715
6716 2005-02-07  Havoc Pennington  <hp@redhat.com>
6717
6718         * doc/dbus-specification.xml: some more language cleanups; add
6719         stuff about how to deal with invalid protocol and extension
6720         points; add _ to allowed chars in auth commands; add EXTENSION_
6721         auth command prefix
6722
6723 2005-02-06  Havoc Pennington  <hp@redhat.com>
6724
6725         * s/expected/required/ in a couple places for clarity
6726
6727 2005-02-07  Colin Walters  <walters@verbum.org>
6728
6729         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6730         sender or proposed_recipient.
6731
6732 2005-02-06  Havoc Pennington  <hp@redhat.com>
6733
6734         * dbus/dbus-message-factory.c (generate_special): more tests
6735
6736         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6737         array length that exceeds the maximum
6738
6739 2005-02-05  Havoc Pennington  <hp@redhat.com>
6740
6741         * dbus/dbus-message-factory.c (generate_special): more test cases,
6742         increasing coverage
6743
6744         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6745         reason why a signature was invalid
6746
6747         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6748         skip the length of the string before we look at it in validation
6749
6750         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6751         equal_substring
6752
6753         * dbus/dbus-message.c (_dbus_message_loader_new): default
6754         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6755
6756 2005-02-05  Havoc Pennington  <hp@redhat.com>
6757
6758         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6759         if the signature of a variant was empty
6760         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6761         struct with no element type)
6762
6763         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6764         mangled messages to break things
6765
6766 2005-02-04  Havoc Pennington  <hp@redhat.com>
6767
6768         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6769         g_quark_try_string() so it actually can return 0
6770         (dbus_g_proxy_connect_signal): ditto
6771
6772 2005-02-04  Havoc Pennington  <hp@redhat.com>
6773
6774         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6775         bogus warning
6776         (tristring_from_message): assert cleanly on null path/interface
6777         (should not be possible though I decided later)
6778         (dbus_g_proxy_dispose): move proxy manager unregistration here
6779         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6780         g_return_if_fail() checks
6781
6782 2005-02-04  Havoc Pennington  <hp@redhat.com>
6783
6784         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6785
6786         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6787         (with some minor changes)
6788
6789         * doc/dbus-specification.xml: add deprecated attribute to
6790         introspection format
6791
6792 2005-01-31  Havoc Pennington  <hp@redhat.com>
6793
6794         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6795         think it's sort of right
6796
6797 2005-01-30  Havoc Pennington  <hp@redhat.com>
6798
6799         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6800
6801 2005-01-30  Havoc Pennington  <hp@redhat.com>
6802
6803         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6804
6805         * autogen.sh: change to autotools 1.9
6806
6807         * glib/dbus-gproxy.c: completely change how signals work
6808         (dbus_g_proxy_add_signal): new function to specify signature of a
6809         signal
6810         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6811         and g_warning if the incoming message has the wrong signature.
6812
6813 2005-01-30  Havoc Pennington  <hp@redhat.com>
6814
6815         * tools/dbus-names-model.c (have_names_notify): fix this
6816
6817         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6818         up the string array handling a bit 
6819
6820 2005-01-30  Havoc Pennington  <hp@redhat.com>
6821
6822         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6823         (dbus_g_pending_call_cancel): new function
6824
6825         * dbus/dbus-glib.h: move GType decls for connection/message here;
6826         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6827         here, just kind of rationalizing how we handle all that
6828
6829         * tools/dbus-names-model.c: new file for a tree model listing the
6830         services on a bus
6831
6832         * tools/dbus-tree-view.c (model_new): use proper typing on the
6833         model rows
6834
6835 2005-01-30  Havoc Pennington  <hp@redhat.com>
6836
6837         * glib/dbus-gmain.c: add a custom GSource back that just checks
6838         whether the message queue has anything in it; otherwise, there are 
6839         cases where we won't see messages in the queue since there was no 
6840         IO visible to the glib main loop
6841
6842         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6843         increase default message timeout to 25 seconds
6844
6845 2005-01-30  Havoc Pennington  <hp@redhat.com>
6846
6847         * test/glib/test-profile.c (no_bus_stop_server): remove the
6848         warning about the g_warning that I just fixed
6849
6850         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6851         custom source, seems to be a lot easier to understand and work
6852         better.
6853
6854 2005-01-30  Havoc Pennington  <hp@redhat.com>
6855
6856         I think this main loop thing is conceptually broken, but here are 
6857         some band aids. I'll maybe rewrite it in a minute.
6858         
6859         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6860         custom GSource, so don't pass it in; confusing
6861         (gsource_server_finalize, gsource_connection_finalize): add
6862         finalize handlers that remove all the watches.  
6863
6864 2005-01-30  Havoc Pennington  <hp@redhat.com>
6865
6866         * glib/dbus-gobject.c (introspect_properties): fix the XML
6867         generated
6868
6869         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6870         which effectively detects the use of freed messages
6871
6872         * glib/dbus-gobject.c (handle_introspect): modify and return the
6873         reply message instead of the incoming message
6874
6875         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6876         gee, maybe it should SEND THE XML instead of just making a string
6877         and freeing it again ;-)
6878
6879         * tools/dbus-print-message.c (print_message): improve printing of
6880         messages
6881
6882         * configure.in: add debug-glib.service to the output
6883
6884 2005-01-30  Havoc Pennington  <hp@redhat.com>
6885
6886         dbus-viewer introspected and displayed the bus driver
6887         
6888         * dbus/dbus-object-tree.c 
6889         (object_tree_test_iteration): add tests for a handler registered on "/"
6890
6891         * dbus/dbus-object-tree.c
6892         (_dbus_decompose_path): fix to handle path "/" properly
6893         (run_decompose_tests): add tests for path decomposition
6894         
6895         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6896         properly
6897
6898         * glib/dbus-gobject.c (handle_introspect): fix quotes
6899
6900         * test/glib/run-test.sh: support launching the bus, then running
6901         dbus-viewer
6902
6903         * test/glib/test-service-glib.c (main): put in a trivial gobject
6904         subclass and register it on the connection
6905
6906         * bus/driver.c (bus_driver_handle_introspect): implement
6907         introspection of the bus driver service
6908
6909         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6910         identifiers, doctype decl
6911
6912         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6913         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6914         returning the service unchanged.
6915         (bus_driver_handle_message): remove old check for reply_serial in
6916         method calls, now the message type deals with that
6917         (bus_driver_handle_message): handle NULL interface
6918
6919         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6920
6921         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6922         -1 for len
6923
6924         * tools/dbus-viewer.c: add support for introspecting a service on
6925         a bus
6926
6927         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6928         (dbus_g_pending_call_unref): add
6929
6930 2005-01-29  Havoc Pennington  <hp@redhat.com>
6931
6932         * tools/dbus-tree-view.c: add support for displaying properties.
6933         (run dbus-viewer with an introspect xml file as arg, then resize
6934         the window so the tree elements show up, not sure what that is)
6935
6936         * glib/dbus-gobject.c (handle_introspect): return
6937         org.freedesktop.Properties and org.freedesktop.Introspectable
6938         interfaces when we are introspected.
6939
6940         * doc/dbus-specification.xml: allow empty interface name when 
6941         Get/Set a property
6942
6943 2005-01-29  Havoc Pennington  <hp@redhat.com>
6944
6945         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6946         though it uses glib, it could be extended for any binding in
6947         principle
6948
6949         * glib/dbus-gobject.c (gobject_message_function): change to the
6950         new way properties work
6951
6952         * dbus/dbus-protocol.h: add the new interfaces
6953
6954         * doc/dbus-specification.xml: document the introspection format,
6955         Introspectable interface, and add an org.freedesktop.Properties
6956         interface.
6957
6958         * glib/dbus-gparser.c: add support for a <property> element
6959
6960         * glib/dbus-gidl.c: add PropertyInfo
6961
6962         * glib/dbus-gobject.c (handle_introspect): put the outermost
6963         <node> outside the signal and property descriptions.
6964         (introspect_properties): export properties as <property> rather
6965         than as method calls
6966
6967 2005-01-28  Havoc Pennington  <hp@redhat.com>
6968
6969         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6970         related to authentication protocol
6971
6972 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6973
6974         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6975                 - BUS_ACTIVATION -> BUS_STARTER
6976                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6977                 - class MessageIter (__init__): Added recursion checking 
6978                 so we throw a nice error instead of just disconnecting from the
6979                 bus.
6980                 (get): Added arg_type parameter for recursion.
6981                 Removed the nil type
6982                 Added signiture type placeholder (not implemented)
6983                 Added struct type placeholder (not implemented)
6984                 Added varient type placeholder (not implemented)
6985                 Commented out dict type for now     
6986                 (get_element_type): renamed from get_array_type
6987                 (get_*): changed to use the dbus_message_iter_get_basic API
6988                 (get_*_array): removed in favor of recursive get_array method
6989                 (get_array): new recursive method which calls get to marshal
6990                 the elements of the array
6991                 (value_to_dbus_sig): New method returns the corrasponding
6992                 dbus signiture to a python value
6993                 (append): Comment out dict handling for now
6994                 Handle lists with the new recursive API
6995                 Comment out None handling for now
6996                 (append_nil): removed
6997                 (append_*): changed to use dbus_message_iter_append_basic API
6998                 (append_*_array): removed in favor of recursive append_array 
6999                 method
7000                 (__str__): Make it easier to print out recursive iterators
7001                 for debugging
7002                 - class Message (__str__): moved type inspection to the
7003                 MessageIter class' __str__ method
7004                 (get_iter): Added an append parameter wich defaults to False
7005                 If True use the new API's to create an append iterator
7006
7007         * python/dbus.py: Update to use new bindings API
7008                 - TYPE_ACTIVATION -> TYPE_STARTER
7009                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7010                 - class ActivationBus -> class StarterBus
7011                 - class RemoteObject (__call__): get an append iterator
7012                 - (_dispatch_dbus_method_call): get an append iterator
7013                 - class Object (emit_signal): get an append iterator
7014
7015         * python/examples/: Fixed up the examples to work with the new API
7016                 
7017 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7018
7019         * configure.in: Bump version up to 0.30.
7020
7021         * HACKING: Add a release item to bump the version number up after 
7022         a release.
7023
7024 2005-01-28  Havoc Pennington  <hp@redhat.com>
7025
7026         * doc/dbus-specification.xml: update to describe 16-bit types and
7027         dict entries
7028
7029         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7030         assertion
7031
7032         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7033         type
7034
7035         * dbus/dbus-marshal-recursive.c: implement
7036
7037 2005-01-27  Havoc Pennington  <hp@redhat.com>
7038
7039         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7040
7041         * configure.in: find the right type for 16 and 32 bit ints as well
7042         as 64
7043
7044         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7045         the 16-bit types so people don't have to stuff them in 32-bit or
7046         byte arrays.
7047
7048 2005-01-27  Havoc Pennington  <hp@redhat.com>
7049
7050         * dbus/dbus-message.c: byteswap the message if you init an
7051         iterator to read/write from it
7052         
7053         * dbus/dbus-marshal-byteswap.c: new file implementing 
7054         _dbus_marshal_byteswap()
7055
7056         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7057
7058 2005-01-26  Havoc Pennington  <hp@redhat.com>
7059         
7060         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7061         build, apparently - nobody noticed?)
7062         
7063 2005-01-26  Havoc Pennington  <hp@redhat.com>
7064
7065         * dbus/dbus-marshal-recursive.h: remove todo comment
7066
7067 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7068
7069         * Land the mono binding changes to conform to the new APIs.
7070
7071         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7072         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7073
7074         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7075         type code as a string.
7076         (InitAppending): Rename dbus_message_append_iter_init() to
7077         dbus_message_iter_init_append().
7078
7079         * mono/BusDriver.cs: Rename ServiceEventHandler to
7080         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7081         Rename ServiceOwnerChanged to NameOwnerChanged.
7082
7083         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7084         underlying C call.
7085
7086         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7087
7088         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7089         dbus_bus_acquire_service() to dbus_bus_request_name().
7090
7091         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7092         of Type.UnderlyingSystemType to get the correct element type for
7093         the array.
7094         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7095         dbus_message_get_{element|arg}_type() instead of
7096         dbus_message_iter_init_array_iterator().
7097         (Append): Replace dbus_message_iter_append_array() with
7098         dbus_message_iter_open_container() and
7099         dbus_message_iter_close_container().
7100
7101         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7102         types have been removed.
7103         
7104         * mono/DBusType/*.cs: Replace calls of
7105         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7106         but specify the type in the DllImport extern declaration.  Ditto
7107         for dbus_message_iter_append_[type]() ->
7108         dbus_message_iter_append_basic().
7109
7110         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7111         NameOwnerChangedHandler.
7112
7113 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7114
7115         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7116                 - get_base_service -> get_unique_name
7117                 - bus_get_base_service -> bus_get_unique_name
7118                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7119                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7120                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7121                 - bus_activate_service -> bus_start_service_by_name
7122                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7123                 - bus_acquire_service -> bus_request_name
7124                 - dbus_bus_acquire_service -> dbus_bus_request_name
7125                 - bus_service_exists -> bus_name_has_owner
7126                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7127
7128         * python/dbus.py: Rename of methods
7129                 - activate_service -> start_service_by_name
7130                 - bus_acquire_service -> bus_request_name
7131                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7132                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7133
7134         
7135 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7136
7137         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7138         signature for the method that can't be found.
7139
7140         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7141         the message has any arguments, we need to call
7142         _dbus_type_reader_get_current_type(), not
7143         _dbus_type_reader_has_next().
7144
7145 2005-01-24  Havoc Pennington  <hp@redhat.com>
7146
7147         * dbus/dbus-message-factory.c: more testing of message validation
7148
7149         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7150         header
7151
7152 2005-01-23  Havoc Pennington  <hp@redhat.com>
7153
7154         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7155         get this all working, not many tests in the framework yet though
7156
7157 2005-01-22  Havoc Pennington  <hp@redhat.com>
7158
7159         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7160         tutorial, based on work from David Wheeler.
7161
7162 2005-01-21  Havoc Pennington  <hp@redhat.com>
7163
7164         * dbus/dbus-bus.c: add more return_if_fail checks
7165
7166         * dbus/dbus-message.c (load_message): have the "no validation"
7167         mode (have to edit the code to toggle the mode for now though)
7168
7169         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7170         skips all validation; I want to use this at least for benchmark
7171         baseline, I'm not sure if it should be a publicly-available switch.
7172
7173 2005-01-21  Havoc Pennington  <hp@redhat.com>
7174
7175         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7176         toplevel doxygen group as the low-level API stuff
7177
7178         * dbus/dbus.h: note that libdbus is the low-level API
7179
7180 2005-01-20  Havoc Pennington  <hp@redhat.com>
7181
7182         * update-dbus-docs.sh: script to update docs on the web site, only
7183         works for me though. neener.
7184
7185 2005-01-20  Havoc Pennington  <hp@redhat.com>
7186
7187         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7188         code can reveal bugs in it
7189
7190 2005-01-20  Havoc Pennington  <hp@redhat.com>
7191
7192         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7193         select() version, patches from Tor Lillqvist
7194
7195 2005-01-20  Havoc Pennington  <hp@redhat.com>
7196
7197         * doc/dbus-tutorial.xml: replace > with &gt;
7198
7199         * bus/services.c (bus_registry_acquire_service): validate the name
7200         and return a better error if it's no good.
7201
7202         * doc/dbus-specification.xml: note NO_AUTO_START change
7203
7204         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7205         from AUTO_START, we're toggling the default
7206
7207         * bus/dispatch.c: adapt the tests to change of auto-start default
7208
7209 2005-01-18  Havoc Pennington  <hp@redhat.com>
7210
7211         * rename dbus-daemon-1 to dbus-daemon throughout
7212
7213 2005-01-18  Havoc Pennington  <hp@redhat.com>
7214
7215         * Throughout, grand renaming to strip out the use of "service",
7216         just say "name" instead (or "bus name" when ambiguous).  Did not
7217         change the internal code of the message bus itself, only the
7218         programmer-facing API and messages.
7219         
7220         * doc/dbus-specification.xml: further update the message bus section
7221         
7222         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7223         in error case
7224
7225 2005-01-17  Havoc Pennington  <hp@redhat.com>
7226
7227         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7228         ever
7229
7230         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7231         "invalid name character" not only non-ASCII
7232
7233         * doc/dbus-specification.xml: further update spec, message bus 
7234         parts are still out-of-date but the marshaling etc. stuff is now
7235         accurate-ish
7236
7237 2005-01-17  Havoc Pennington  <hp@redhat.com>
7238
7239         * doc/dbus-specification.xml: partially update spec
7240
7241 2005-01-17  Havoc Pennington  <hp@redhat.com>
7242
7243         * Throughout, align variant bodies according to the contained
7244         type, rather than always to 8. Should save a fair bit of space in
7245         message headers.
7246         
7247         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7248         fix handling of case where p == end
7249
7250         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7251
7252 2005-01-17  Havoc Pennington  <hp@redhat.com>
7253
7254         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7255
7256         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7257         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7258         are marshaling/unmarshaling a boolean.
7259
7260 2005-01-16  Havoc Pennington  <hp@redhat.com>
7261
7262         This is about it on what can be disabled/deleted from libdbus
7263         easily, back below 150K anyhow. Deeper cuts are more work than 
7264         just turning the code off as I've done here.
7265         
7266         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7267         signed int convenience funcs
7268
7269         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7270         verbose mode
7271
7272         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7273         things out of libdbus
7274
7275         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7276         
7277         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7278         tests-enabled-only, though it should probably be deleted)
7279
7280         * dbus/dbus-message-util.c: same stuff
7281
7282         * dbus/dbus-auth-util.c: same stuff
7283
7284 2005-01-16  Havoc Pennington  <hp@redhat.com>
7285
7286         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7287
7288         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7289         way for stripping down dbus-userdb.c stuff included in libdbus.
7290         Rename _dbus_parse_uid for consistency.
7291
7292 2005-01-16  Havoc Pennington  <hp@redhat.com>
7293
7294         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7295         name the assertion failed in
7296
7297         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7298         (_dbus_return_val_if_fail): assert that the name of the function
7299         containing the check doesn't start with '_', since we only want to 
7300         use checks on public functions
7301         
7302         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7303         checks to assertions
7304
7305         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7306         change checks to asserts for private function
7307
7308         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7309         to asserts for private function
7310
7311         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7312         broken assertion that was breaking make check
7313         (_dbus_type_reader_array_is_empty): remove this rather than fix
7314         it, was only used in assertions
7315
7316 2005-01-16  Havoc Pennington  <hp@redhat.com>
7317
7318         * test/unused-code-gc.py: hacky script to find code that's used
7319         only by the bus (not libdbus) or used only by tests or not used at
7320         all. It has some false alarms, but looks like we can clean up a
7321         lot of size from libdbus.
7322
7323         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7324         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7325         
7326 2005-01-16  Havoc Pennington  <hp@redhat.com>
7327
7328         * Add and fix docs according to Doxygen warnings throughout
7329         source.
7330         
7331         * dbus/dbus-marshal-recursive.c
7332         (_dbus_type_reader_array_is_empty): change this to just call
7333         array_reader_get_array_len() and make it static
7334
7335         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7336         from get_array_type
7337         (dbus_message_iter_init_append): rename from append_iter_init
7338
7339         * dbus/dbus-marshal-recursive.c
7340         (_dbus_type_reader_get_element_type): rename from
7341         _dbus_type_reader_get_array_type
7342
7343 2005-01-15  Havoc Pennington  <hp@redhat.com>
7344
7345         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7346
7347         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7348         when DBUS_DISABLE_ASSERT
7349         (_dbus_marshal_set_basic): be sure we align for the string length
7350
7351         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7352         this look faster
7353
7354         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7355         inline macro version
7356         (_dbus_string_set_byte): provide inline macro version
7357
7358 2005-01-15  Havoc Pennington  <hp@redhat.com>
7359
7360         * Land the new message args API and type system.
7361
7362         This patch is huge, but the public API change is not 
7363         really large. The set of D-BUS types has changed somewhat, 
7364         and the arg "getters" are more geared toward language bindings;
7365         they don't make a copy, etc.
7366
7367         There are also some known issues. See these emails for details
7368         on this huge patch:
7369         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7370         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7371         
7372         * dbus/dbus-marshal-*: all the new stuff
7373
7374         * dbus/dbus-message.c: basically rewritten
7375
7376         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7377         freed blocks to be all non-nul bytes so using freed memory is less
7378         likely to work right
7379
7380         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7381         DBUS_FAIL_MALLOC=N environment variable, so you can do
7382         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7383         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7384         thorough.
7385
7386         * qt/message.cpp: port to the new message args API
7387         (operator<<): use str.utf8() rather than str.unicode()
7388         (pretty sure this is right from the Qt docs?)
7389
7390         * glib/dbus-gvalue.c: port to the new message args API
7391
7392         * bus/dispatch.c, bus/driver.c: port to the new message args API
7393
7394         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7395         "locked" flag to TRUE and align_offset to 0; I guess we never
7396         looked at these anyhow, but seems cleaner.
7397
7398         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7399         move allocation padding macro to this header; use it to implement
7400         (_DBUS_STRING_STATIC): ability to declare a static string.
7401
7402         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7403         change to return TRUE if the interface is not set.
7404
7405         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7406         to dbus-marshal-validate.[hc]
7407
7408         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7409         dbus-internals.c
7410
7411         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7412         to dbus-marshal-*.[hc]
7413
7414         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7415         function here from dbus-marshal.c
7416
7417 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7418
7419         * NEWS: Update for 0.23.
7420
7421         * configure.in: Release 0.23.
7422
7423 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7424
7425         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7426         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7427         behind.
7428
7429         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7430         uninstall"
7431
7432         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7433         is an enum, get the enum's underlying type.  Another mono
7434         1.1.3 fix.
7435
7436 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7437
7438         Patch from Sjoerd Simons <sjoerd@luon.net>
7439
7440         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7441         DESTDIR.  It breaks stuff.
7442
7443 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7444
7445         Patch from Tambet Ingo <tambet@ximian.com>
7446
7447         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7448         calling type.GetElementType().  The code previously depended on
7449         broken Mono behavior, which was fixed in Mono 1.1.3.
7450
7451         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7452         Activator.CreateInstance() so that the class's constructor is
7453         called with the right parameters.
7454
7455 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7456
7457         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7458
7459         * dbus/dbus-connection.c
7460         (_dbus_connection_queue_received_message_link): Call
7461         _dbus_connection_remove_timeout() instead of the _locked()
7462         variant, since it's always called from
7463         _dbus_connection_handle_watch(), which handles the locking.
7464         Removed the _locked() variant since it's no longer used.
7465
7466 2005-01-03  Havoc Pennington  <hp@redhat.com>
7467
7468         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7469         return
7470         
7471 2004-12-26  Havoc Pennington  <hp@redhat.com>
7472
7473         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7474
7475 2005-01-03  Havoc Pennington  <hp@redhat.com>
7476
7477         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7478         floating point
7479
7480         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7481
7482 2005-01-02  Havoc Pennington  <hp@redhat.com>
7483
7484         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7485
7486 2005-01-01  Havoc Pennington  <hp@redhat.com>
7487
7488         * configure.in: add -Wfloat-equal
7489
7490 2005-01-01  Havoc Pennington  <hp@redhat.com>
7491
7492         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7493         for a variety of reasons '==' doesn't do this.
7494
7495 2004-12-31  Havoc Pennington  <hp@redhat.com>
7496
7497         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7498         I keep wishing I had
7499
7500 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7501
7502         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7503
7504 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7505
7506         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7507         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7508         dbus-protocol.h.  Because they are defines and not enums they are not
7509         autogenerated.
7510
7511 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7512
7513         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7514         dbus_bus_activate_service
7515
7516         * python/dbus.py (Bus.activate_service): activate a service on the
7517         bus.
7518
7519 2004-12-24  Havoc Pennington  <hp@redhat.com>
7520
7521         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7522         file format has also changed and I haven't adapted to that yet
7523         
7524         * Makefile.am: load .gcno files from latest gcc
7525
7526 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7527         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7528
7529         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7530         lowlevel binding
7531
7532         * python/dbus.py (get_unix_user): Added binding to 
7533         call dbus_bindings.bus_get_unix_user
7534
7535         * python/extract.py: Modified the proto_pat regex to
7536         handle unsigned long
7537
7538 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7539
7540         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7541         better POSIX compliance.
7542
7543 2004-12-19  Havoc Pennington  <hp@redhat.com>
7544
7545         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7546         (_dbus_string_insert_8_aligned): new functions
7547
7548         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7549
7550 2004-12-18  Havoc Pennington  <hp@redhat.com>
7551
7552         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7553         macro
7554
7555         * dbus/dbus-message.c: fix a comment, and add a still-unused
7556         not-implemented function
7557
7558         * dbus/dbus-marshal.h: fix comment
7559
7560         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7561
7562 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7563
7564         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7565         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7566         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7567         Type.UnderlyingSystemType to get the actual system type
7568         underneath.  This code previously depended on the broken Mono
7569         behavior, which was fixed in 1.1.3.
7570
7571 2004-11-27  Havoc Pennington  <hp@redhat.com>
7572
7573         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7574         are disabled
7575         (_dbus_string_get_const_data): inline when asserts are disabled
7576
7577         * dbus/dbus-message.c: record the _dbus_current_generation of
7578         creation so we can complain if dbus_shutdown() is used improperly.
7579         Do this only if checks are enabled.
7580
7581         * dbus/dbus-connection.c: ditto
7582         
7583 2004-11-26  Havoc Pennington  <hp@redhat.com>
7584
7585         * test/glib/test-profile.c: add with_bus mode to profile echoes
7586         that go through the bus.
7587
7588         * test/glib/run-test.sh: add ability to run test-profile
7589
7590         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7591         config file reload.
7592
7593 2004-11-26  Havoc Pennington  <hp@redhat.com>
7594
7595         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7596         thing was implemented
7597
7598 2004-11-26  Havoc Pennington  <hp@redhat.com>
7599
7600         * test/glib/test-profile.c: tweak a bit, add support for some
7601         made-up minimal malloc overhead with plain sockets, since in 
7602         real life some sort of buffers are unavoidable thus we could 
7603         count them in the theoretical best case
7604
7605 2004-11-26  Havoc Pennington  <hp@redhat.com>
7606
7607         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7608         where I was trying to cache one too many messages
7609
7610 2004-11-26  Havoc Pennington  <hp@redhat.com>
7611
7612         * dbus/dbus-message.c: reimplement message cache as an array which 
7613         makes the cache about twice as fast and saves maybe 1.5% overall
7614
7615 2004-11-26  Havoc Pennington  <hp@redhat.com>
7616
7617         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7618         message cache lock here
7619
7620 2004-11-26  Havoc Pennington  <hp@redhat.com>
7621
7622         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7623         the "char byte_order" next to each other to save 4 bytes
7624         (dbus_message_new_empty_header): reduce preallocation, since the
7625         message cache should achieve a similar effect
7626         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7627         message cache that keeps a few DBusMessage around in a pool,
7628         another 8% speedup or so.
7629
7630         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7631
7632 2004-11-25  Havoc Pennington  <hp@redhat.com>
7633
7634         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7635         to write, without reading or blocking, try it before the poll()
7636         and skip the poll() if nothing remains to write. This is about a
7637         3% speedup in the echo client/server
7638
7639 2004-11-25  Havoc Pennington  <hp@redhat.com>
7640
7641         The primary change here is to always write() once before adding
7642         the write watch, which gives us about a 10% performance increase.
7643         
7644         * dbus/dbus-transport-unix.c: a number of modifications to cope
7645         with removing messages_pending
7646         (check_write_watch): properly handle
7647         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7648         messages_pending stuff
7649         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7650         AUTHENTICATED cases
7651         (unix_handle_watch): after writing, see if the write watch can be
7652         removed
7653         (unix_do_iteration): assert that write_watch/read_watch are
7654         non-NULL rather than testing that they aren't, since they 
7655         aren't allowed to be NULL. check_write_watch() at the end so 
7656         we add the watch if we did not finish writing (e.g. got EAGAIN)
7657
7658         * dbus/dbus-transport-protected.h: remove messages_pending call,
7659         since it resulted in too much inefficient watch adding/removing; 
7660         instead we now require that the transport user does an iteration 
7661         after queueing outgoing messages, and after trying the first
7662         write() we add a write watch if we got EAGAIN or exceeded our 
7663         max bytes to write per iteration setting
7664
7665         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7666         function
7667
7668         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7669         freed and then accessed, valgrind flagged this bug, fix it
7670
7671         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7672         as the last valid field plus 1, where really it is equal to the
7673         last valid field. Corrects some message corruption issues.
7674
7675         * dbus/dbus-mainloop.c: verbosity changes
7676
7677         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7678         instead of aborting in one of the test codepaths
7679
7680         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7681         caused not printing the pid ever again if a verbose was missing
7682         the newline at the end
7683         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7684
7685         * dbus/dbus-connection.c: verbosity changes; 
7686         (dbus_connection_has_messages_to_send): new function
7687         (_dbus_connection_message_sent): no longer call transport->messages_pending
7688         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7689         try to write() immediately, so we can avoid the write watch. This
7690         is the core purpose of this patchset
7691         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7692         dump the outgoing message queue, so nobody will get confused
7693         trying to send them or thinking stuff is pending to be sent
7694
7695         * bus/test.c: verbosity changes
7696
7697         * bus/driver.c: verbosity/assertion changes
7698
7699         * bus/dispatch.c: a bunch of little tweaks to get it working again
7700         because this patchset changes when/where you need to block.
7701
7702 2004-11-23  Havoc Pennington  <hp@redhat.com>
7703
7704         * test/glib/test-profile.c: modify to accept a plain_sockets
7705         argument in which case it will bench plain sockets instead of
7706         libdbus, for comparison purposes.
7707
7708 2004-11-22  Havoc Pennington  <hp@redhat.com>
7709
7710         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7711         threads for more time, so sysprof can get a grip on it.
7712
7713         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7714         pointless variable
7715
7716 2004-11-13  Havoc Pennington  <hp@redhat.com>
7717
7718         * test/glib/test-profile.c: fix this thing up a bit
7719
7720         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7721         preallocation sizes by a fair bit; not sure if this will be an
7722         overall performance win or not, but it does reduce reallocs.
7723
7724         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7725         the test hack that forced constant realloc if asserts are
7726         disabled, so we can profile sanely. Sprinkle in some
7727         _DBUS_UNLIKELY() which are probably pointless, but before I
7728         noticed the real performance problem I put them in.
7729         (_dbus_string_validate_utf8): micro-optimize this thing a little
7730         bit, though callgrind says it didn't help; then special-case
7731         ascii, which did help a lot; then be sure we detect nul bytes as
7732         invalid, which is a bugfix.
7733         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7734         superstition; use memset to nul the padding instead of a manual
7735         loop.
7736         (_dbus_string_get_length): inline this as a
7737         macro; it showed up in the profile because it's used for loop
7738         tests and so forth
7739
7740 2004-11-10  Colin Walters  <walters@verbum.org>
7741
7742         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7743         for extra paranoia.
7744
7745 2004-11-09  Colin Walters  <walters@verbum.org>
7746
7747         * dbus/dbus-string.c (_dbus_string_get_length): New
7748         function, writes DBusString to C buffer.
7749
7750         * dbus/dbus-string.h: Prototype it.
7751
7752         * dbus/dbus-message.c (dbus_message_type_to_string): New
7753         function, converts message type into C string.
7754
7755         * dbus/dbus-message.h: Prototype it.
7756
7757         * bus/selinux.c (bus_selinux_check): Take source pid,
7758         target pid, and audit data.  Pass audit data to
7759         avc_has_perm.
7760         (log_audit_callback): New function, appends extra
7761         audit information.
7762         (bus_selinux_allows_acquire_service): Also take
7763         service name, add it to audit data.
7764         (bus_selinux_allows_send): Also take message
7765         type, interface, method member, error name,
7766         and destination, and add them to audit data.
7767         (log_cb): Initialize func_audit.
7768         
7769         * bus/selinux.h (bus_selinux_allows_acquire_service)
7770         (bus_selinux_allows_send): Update prototypes 
7771
7772         * bus/services.c (bus_registry_acquire_service): Pass
7773         service name to bus_selinux_allows_acquire_service.
7774
7775         * bus/bus.c (bus_context_check_security_policy): Pass
7776         additional audit data.  Move assignment of dest
7777         to its own line.
7778
7779 2004-11-07  Colin Walters  <walters@verbum.org>
7780
7781         * dbus/dbus-transport-unix.c (do_authentication): Always
7782         initialize auth_completed.
7783         
7784 2004-11-07  Colin Walters  <walters@verbum.org>
7785
7786         * bus/bus.c (load_config): Break into three
7787         separate functions: process_config_first_time_only,
7788         process_config_every_time, and process_config_postinit.
7789         (process_config_every_time): Move call of
7790         bus_registry_set_service_context_table into
7791         process_config_postinit.
7792         (process_config_postinit): New function, does
7793         any processing that needs to happen late
7794         in initialization (and also on reload).
7795         (bus_context_new): Instead of calling load_config,
7796         open config parser here and call process_config_first_time_only
7797         and process_config_every_time directly.  Later, after
7798         we have forked but before changing UID,
7799         invoke bus_selinux_full_init, and then call
7800         process_config_postinit.
7801         (bus_context_reload_config): As in bus_context_new,
7802         load parse file inside here, and call process_config_every_time
7803         and process_config_postinit.
7804
7805         * bus/services.h, bus/services.c
7806         (bus_registry_set_service_context_table): Rename
7807         from bus_registry_set_sid_table.  Take string hash from config
7808         parser, and convert them here into SIDs.
7809
7810         * bus/config-parser.c (struct BusConfigParser): Have
7811         config parser only store a mapping of service->context
7812         string.
7813         (merge_service_context_hash): New function.
7814         (merge_included): Merge context string hashes instead
7815         of using bus_selinux_id_table_union.
7816         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7817         simply create a new string hash.
7818         (bus_config_parser_unref): Unref it.
7819         (start_selinux_child): Simply insert strings into hash,
7820         don't call bus_selinux_id_table_copy_over.
7821
7822         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7823         (bus_selinux_id_table_copy_over): Delete.
7824
7825 2004-11-03  Colin Walters  <walters@verbum.org>
7826
7827         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7828         variables.
7829         
7830 2004-11-03  Colin Walters  <walters@verbum.org>
7831
7832         * bus/test-main.c (test_pre_hook): Fix test logic,
7833         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7834
7835 2004-11-02  Colin Walters  <walters@redhat.com>
7836
7837         * bus/selinux.c (bus_selinux_init): Split into two functions,
7838         bus_selinux_pre_init and bus_selinux_post_init.
7839         (bus_selinux_pre_init): Just determine whether SELinux is
7840         enabled.
7841         (bus_selinux_post_init): Do everything else.
7842
7843         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7844         config file, and bus_selinux_post_init after.  This ensures that
7845         we don't lose the policyreload notification thread that
7846         bus_selinux_init created before forking previously.
7847         
7848         * bus/test-main.c (test_pre_hook): Update for split.
7849
7850 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7851
7852         Patch from Johan Fischer <linux@fischaz.com>
7853         
7854         * mono/doc/Makefile.am (install-data-local): Added directory
7855         install for DESTDIR
7856
7857 2004-10-29  Colin Walters  <walters@redhat.com>
7858
7859         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7860         parameter for fd to write pid to.       
7861
7862         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7863         
7864         * bus/bus.c (bus_context_new): Pass print_pid_fd
7865         to _dbus_become_daemon (bug #1720)
7866
7867 2004-10-29  Colin Walters  <walters@redhat.com>
7868
7869         Patch from Ed Catmur <ed@catmur.co.uk>
7870
7871         * mono/doc/Makefile.am (install-data-local): Handle
7872         DESTDIR.
7873
7874 2004-10-29  Colin Walters  <walters@redhat.com>
7875
7876         * bus/.cvsignore, qt/.cvsignore: Update.
7877
7878 2004-10-29  Colin Walters  <walters@redhat.com>
7879
7880         Patch from Kristof Vansant <de_lupus@pandora.be>
7881
7882         * configure.in: Detect Slackware.
7883         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7884         * bus/rc.messagebus.in: New file.
7885
7886 2004-10-29  Colin Walters  <walters@redhat.com>
7887
7888         * tools/dbus-monitor.c (filter_func): Return
7889         DBUS_HANDLER_RESULT_HANDLED in filter function
7890         for now.  See:
7891         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7892
7893 2004-10-29  Colin Walters  <walters@redhat.com>
7894
7895         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7896
7897         * bus/services.c (bus_registry_acquire_service): 
7898         Correctly retrieve service name from DBusString
7899         for printing.
7900
7901 2004-10-29  Colin Walters  <walters@redhat.com>
7902
7903         * dbus/dbus-glib.h: Update documentation to not
7904         refer to internal APIs.
7905
7906 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7907
7908         * mono/Arguments.cs (GetDBusTypeConstructor):
7909         type.UnderlyingSystemType will return "System.Byte" if you do it
7910         on "byte[]", which is not what we want.  So check the type.IsArray
7911         property and use System.Array instead.
7912
7913 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7914
7915         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7916         the DBusUserInfo structure since this is passed into the function.
7917         This would cause a double free when the function that allocated
7918         the structure would try to free it when an error occured.
7919
7920         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7921         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7922         for service activation to avoid 32bit/64bit parallel install issues
7923
7924 2004-10-21  Colin Walters  <walters@verbum.org>
7925
7926         * AUTHORS: Fix my email address, the @gnu.org one
7927         has been bouncing for some time.  Also add J5.
7928         
7929 2004-10-21  Colin Walters  <walters@verbum.org>
7930
7931         * dbus/dbus-transport-unix.c (do_authentication): Return
7932         authentication status to callers.
7933         (unix_handle_watch): If we completed authentication this round,
7934         don't do another read.  Instead wait until the next iteration,
7935         after we've read any pending data in the auth buffer.
7936         (unix_do_iteration): Ditto.
7937         (unix_handle_watch): Updated for new do_authentication prototype.
7938
7939 2004-10-18  Colin Walters  <walters@verbum.org>
7940
7941         * bus/selinux.c (bus_selinux_enabled): Handle
7942         --disable-selinux case.
7943         
7944 2004-10-18  Colin Walters  <walters@verbum.org>
7945
7946         * bus/selinux.h: Add bus_selinux_enabled.
7947         
7948         * bus/selinux.c (bus_selinux_enabled): Implement it.
7949         
7950         * bus/config-parser.c (struct include): Add
7951         if_selinux_enabled member.
7952         (start_busconfig_child): Parse if_selinux_enabled
7953         attribute for include.
7954         (bus_config_parser_content): Handle it.
7955
7956         * bus/session.conf.in, bus/system.conf.in: Add
7957         inclusion of context mapping to default config files;
7958         conditional on SELinux being enabled.
7959         
7960         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7961         
7962         * test/data/invalid-config-files/badselinux-1.conf, 
7963         test/data/invalid-config-files/badselinux-2.conf:
7964         Test files for bad syntax.
7965         
7966 2004-10-17  Colin Walters  <walters@verbum.org>
7967
7968         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7969         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7970         format specifier mismatches.
7971
7972 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7973
7974         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7975         format string.
7976
7977         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7978         pointer (bug #1540, Leonardo Boiko).
7979
7980 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7981
7982         * mono/BusDriver.cs: Changed BusDriver struct to remove
7983         the ServiceCreated and ServiceDeleted events and replace them
7984         with the new ServiceOwnerChanged event.
7985
7986         * mono/example/BusListener.cs: Added a new example program,
7987         which listens for and reports any ServiceOwnerChanged events
7988         on the bus driver.
7989
7990         * mono/example/Makefile.am (DESTDIR): Build changes for the
7991         new BusListener.cs example.
7992
7993 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7994
7995         * bus/signals.c (bus_match_rule_parse): validate the components of
7996         match rules (bug #1439).
7997
7998         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7999
8000 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8001
8002         * doc/dbus-specification.xml: document ServiceOwnerChanged
8003         signal.
8004         
8005         * bus/driver.c, bus/driver.h, bus/services.c: Use
8006         ServiceOwnerChanged signal instead of ServiceCreated and
8007         ServiceDeleted.
8008         
8009         * bus/dispatch.c: update testcase for the new signal.
8010
8011 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8012
8013         Patch from Nat Friedman <nat@novell.com>
8014
8015         * mono/Makefile.am: A number of small build fixes to allow "make
8016         distcheck" to succeed.
8017
8018         * mono/example/Makefile.am: "make distcheck" fixes.
8019
8020         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8021         key in @srcdir@.
8022
8023         * test/Makefile.am: "make distcheck" fixes.
8024
8025 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8026
8027         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8028
8029         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8030
8031         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8032         messages after the first one (bug #1389).
8033         
8034         * bus/dispatch.c (check_double_hello_message): add a test case for
8035         the double hello message bug.
8036         (check_existent_service_activation): fix check of spawning error.
8037         
8038 2004-09-16  David Zeuthen  <david@fubar.dk>
8039
8040         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8041
8042 2004-09-12  David Zeuthen  <david@fubar.dk>
8043
8044         Patch from Kay Sievers <kay.sievers@vrfy.org>
8045
8046         * bus/bus.c (bus_context_new):
8047         * bus/bus.h:
8048         * bus/main.c (usage)
8049         (main):
8050         Add commandline option --nofork to override configuration file
8051         setting.
8052
8053 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8054
8055         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8056         compilers don't like it (bug #974).
8057
8058 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8059
8060         * qt/connection.*: Applied patch by Jérôme Lodewyck
8061         <lodewyck@clipper.ens.fr> to integrate an existing
8062         connection into the Qt eventloop
8063
8064 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8065
8066         * mono/BusDriver.cs: Added.  This is a class for interacting with
8067         the org.freedesktop.DBus service.
8068
8069         * mono/Message.cs: Added a mechanism to expose the message that is
8070         currently being dispatched via the static Message.Current
8071         property.  Added Message.Sender and Message.Destination
8072         properties.
8073
8074         * mono/Handler.cs: Expose the dispatched message via
8075         Message.Current when handling method calls.
8076
8077         * mono/Service.cs: Expose the dispatched message via
8078         Message.Current when handling signal emissions.
8079         
8080         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8081         Connection.BaseService property.
8082
8083 2004-08-28  Havoc Pennington  <hp@redhat.com>
8084
8085         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8086
8087         More fixes from Steve Grubb
8088         
8089         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8090         (_dbus_listen_tcp_socket): fix fd leak
8091
8092         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8093         EINTR to a bit lower in the code
8094
8095 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8096
8097         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8098         TRUE if we are inquiring about the existence of the built-in
8099         org.freedesktop.DBus service.
8100
8101 2004-08-25  John Palmieri  <johnp@redhat.com>
8102         * bus/config-parser.c:
8103         (struct PolicyType): Add POLICY_CONSOLE
8104         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8105         (start_busconfig_child): Sets up console element when
8106         <policy at_console=""> is encountered in a policy file
8107         (append_rule_from_element): Convert console elements to console
8108         rules.
8109
8110         * bus/policy.c: 
8111         (bus_policy_create_client_policy): Add console rules to the client
8112         policy based on if the client is at the console
8113         (bus_policy_append_console_rule): New function for adding a
8114         console rule to a policy
8115         (bus_policy_merge): Handle console rule merging
8116
8117         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8118         where we check for console user files
8119         
8120         * dbus/dbus-sysdeps.c:
8121         (_dbus_file_exists): New function which checks if the given
8122         file exists
8123         (_dbus_user_at_console): New function which does the system
8124         specific process of checking if the user is at the console
8125
8126         * dbus/dbus-userdb.c:
8127         (_dbus_is_console_user): New function converts a UID to user name
8128         and then calls the system specific _dbus_user_at_console to 
8129         see if the user is at the console and therefor a console user
8130
8131 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8132
8133         * bus/config-parser.c (set_limit):
8134         * bus/dbus-daemon-1.1.in:
8135         * test/data/valid-config-files/many-rules.conf: set the
8136         max_match_rules_per_connection limt from the config file. 
8137
8138         * doc/busconfig.dtd: update the DTD.
8139
8140         * bus/driver.c: remove some unused variables.
8141
8142 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8143
8144         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8145         it's been replaced by dbus_g_bus_get
8146
8147 2004-08-23  Colin Walters  <walters@redhat.com>
8148
8149         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8150
8151         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8152
8153         * bus/selinux.c: Create a thread for policy reload notification.
8154         (bus_selinux_get_policy_root): Implement.
8155
8156         * bus/config-parser.c (start_busconfig_child)
8157         (bus_config_parser_content): Support SELinux-root relative
8158         inclusion.
8159
8160         * configure.in <HAVE_SELINUX>: Add -lpthread.
8161         
8162         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8163         (test_post_hook): Move memory checking into here.
8164         (test_pre_hook, test_post_hook): Move SELinux checks in
8165         here, but conditional on a DBUS_TEST_SELINUX environment
8166         variable.  Unfortunately we can't run the SELinux checks
8167         as a normal user, since they won't have any permissions
8168         for /selinux.  So this will have to be tested manually
8169         for now, until we have virtualization for most of
8170         libselinux.
8171         
8172 2004-08-23  Havoc Pennington  <hp@redhat.com>
8173
8174         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8175         drop supplementary groups, suggested by Steve Grubb
8176
8177 2004-08-20  Colin Walters  <walters@redhat.com>
8178
8179         * bus/config-parser.c (start_busconfig_child): Remove some unused
8180         variables.
8181         
8182         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8183         warning.
8184
8185 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8186
8187         * configure.in: If --enable-mono is passed in, if we can't find
8188         mono error out.
8189
8190         * mono/Makefile.am: Use /gacutil to install assemblies into the
8191         GAC and not /root.
8192
8193 2004-08-12  Havoc Pennington  <hp@redhat.com>
8194
8195         * NEWS: update for 0.22
8196
8197         * configure.in: release 0.22
8198
8199 2004-08-11  Colin Walters  <walters@redhat.com>
8200
8201         * tools/dbus-send.c (main, usage): Add --reply-timeout
8202         argument.
8203
8204 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8205
8206         * bus/bus.c (process_config_first_time_only): get rid of an unused
8207         DBusError that was causing a memoy leak (bug #989).
8208
8209         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8210         fix compilation on Solaris/Forte C (bug #974)
8211
8212         * bus/main.c (main): plug two minuscule memleaks.
8213
8214 2004-08-10  Havoc Pennington  <hp@redhat.com>
8215
8216         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8217
8218 2004-08-09  Havoc Pennington  <hp@redhat.com>
8219
8220         * COPYING: switch to Academic Free License version 2.1 instead of
8221         2.0, to resolve complaints about patent termination clause.
8222
8223 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8224
8225         * README: added documentation for the --enable-python 
8226         configure switch.
8227
8228 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8229
8230         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8231         _unref in the SELinux support.
8232
8233         * doc/busconfig.dtd: update DTD for SELinux support.
8234
8235         * bus/config-loader-libxml.c: fix error handler and parser
8236         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8237
8238         * configure.in: remove the warning about libxml2.
8239
8240         * dbus/dbus-bus.c: silence doxygen warning.
8241
8242 2004-07-31  Colin Walters  <walters@redhat.com>
8243
8244         * configure.in: Move #error in SELinux check to its own line.
8245
8246 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8247
8248         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8249         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8250         dbus_error_set.
8251
8252         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8253         broken by the change in the _SET_OOM macros.
8254
8255 2004-07-31  Colin Walters  <walters@redhat.com>
8256
8257         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8258         BUS_SET_OOM.
8259
8260 2004-07-31  Colin Walters  <walters@redhat.com>
8261
8262         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8263         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8264         AC_MSG_CHECKING.
8265
8266 2004-07-24  Havoc Pennington  <hp@redhat.com>
8267
8268         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8269
8270         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8271         functionality
8272
8273         * configure.in: add --enable-selinux
8274         
8275         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8276
8277         * bus/main.c (main): initialize and shut down selinux
8278
8279         * bus/connection.c: store SELinux ID on each connection, to avoid 
8280         repeated getting of the string context and converting it into 
8281         an ID
8282
8283         * bus/bus.c (bus_context_get_policy): new accessor, though it
8284         isn't used
8285         (bus_context_check_security_policy): check whether the security
8286         context of sender connection can send to the security context of
8287         recipient connection
8288
8289         * bus/config-parser.c: add parsing for <selinux> and <associate>
8290         
8291         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8292         implement dbus_connection_get_unix_fd()
8293
8294         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8295         function, used by the selinux stuff
8296         
8297 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8298
8299         * bus/config-loader-libxml.c: complete the implementation of
8300         libxml backend for config file loader. Doesn't work with full OOM
8301         test yet. 
8302         
8303         * configure.in: change error when selecting libxml into a warning.
8304         
8305         * test/data/invalid-config-files: add two non-well-formed XML
8306         files. 
8307         
8308         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8309         
8310         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8311         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8312         be necessary to read all the buffer. (bug #894)
8313
8314         * bus/activation.c (bus_activation_activate_service): fix a
8315         potential assertion failure (bug #896). Small optimization in the
8316         case of auto-activation messages.
8317
8318         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8319         add test case for byte-through-vararg bug (#901). patch by Kimmo
8320         Hämäläinen. 
8321
8322 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8323
8324         * python/dbus.py:
8325         * python/dbus_bindings.pyx.in:
8326         Add dbus.init_gthreads (), allow emit_signal to pass
8327         arguments to the signal.
8328         
8329 2004-07-24  Havoc Pennington  <hp@redhat.com>
8330
8331         * AUTHORS: add some people, not really comprehensively, let me
8332         know if I missed you
8333
8334 2004-07-24  Havoc Pennington  <hp@redhat.com>
8335
8336         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8337         Owen
8338
8339         * test/Makefile.am (DIST_SUBDIRS): here also
8340
8341 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8342
8343         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8344         breaking build on Solaris, reported by Farhad Saberi on the ML.
8345
8346         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8347         va_arg invocation to account for integer promotion in the case of
8348         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8349
8350         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8351         _dbus_list_get_first_link, not _dbus_list_get_first.
8352
8353         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8354
8355         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8356         handler functions so that the asserts in _dbus_object_subtree_unref
8357         do not fail.
8358
8359         * dbus/dbus-transport-unix.c (do_reading):
8360         _dbus_transport_queue_messages return value is of type
8361         dbus_bool_t, not DBusDispatchStatus.
8362         
8363 2004-07-19  David Zeuthen  <david@fubar.dk>
8364
8365         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8366
8367         * bus/dispatch.c:
8368         (check_get_connection_unix_user): Debug says GetProperty; but the
8369         method is called GetConnectionUnixUser
8370         (check_get_connection_unix_process_id): New function
8371         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8372         also call check_get_connection_unix_process_id()
8373         
8374         * bus/driver.c:
8375         (bus_driver_handle_get_connection_unix_process_id): New function,
8376         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8377         interface
8378         
8379         * dbus/dbus-auth.c:
8380         (handle_server_data_external_mech): Set pid from the credentials
8381         obtained from the socket
8382         
8383         * dbus/dbus-connection.c:
8384         (dbus_connection_get_unix_process_id): New function
8385         
8386         * dbus/dbus-connection.h: 
8387         Add prototype for dbus_connection_get_unix_process_id
8388         
8389         * dbus/dbus-transport.c:
8390         (_dbus_transport_get_unix_process_id): New function
8391         
8392         * dbus/dbus-transport.h:
8393         Add prototype for _dbus_transport_get_unix_process_id
8394         
8395 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8396
8397         * dbus/dbus-message.c: Message counter fix, patch by Christian
8398         Hammond <chipx86@gnupdate.org>
8399
8400 2004-07-18  Seth Nickell  <seth@gnome.org>
8401
8402         * python/dbus.py:
8403         * python/dbus_bindings.pyx.in:
8404         * python/tests/test-client.py:
8405
8406         Add dbus.ByteArray and dbus_bindings.ByteArray
8407         types so that byte streams can be passed back.
8408
8409         Give jdahlin the heaps of credit that are so
8410         rightfully his.
8411         
8412 2004-07-12  Seth Nickell  <seth@gnome.org>
8413
8414         * python/dbus.py:
8415
8416         Add message argument to the default object_method_handler
8417         function.
8418         
8419         * python/dbus_bindings.pyx.in:
8420
8421         Automatically return NIL when passed an empty list
8422         (we can't pass back a list since lists are typed
8423         and we don't have any idea what type the the client
8424         intended the list to be... :-( )
8425         
8426 2004-07-10  Seth Nickell  <seth@gnome.org>
8427
8428         * python/examples/Makefile.am:
8429
8430         Fix distcheck breakage caused by new examples.
8431
8432 2004-07-10  Seth Nickell  <seth@gnome.org>
8433
8434         * python/dbus.py:
8435
8436         Add "message" argument to service-side dbus.Object
8437         methods. This will break existing services written
8438         using the python bindings, but will allow extraction
8439         of all the message information (e.g. who its from).
8440
8441         Add improved "object oriented" signal handling/emission.
8442         
8443         * python/examples/example-service.py:
8444
8445         Nix this example.
8446         
8447         * python/examples/example-signal-emitter.py:
8448         * python/examples/example-signal-recipient.py:
8449
8450         Two new examples that show how to emit and receive
8451         signals using the new APIs.
8452         
8453         * python/examples/example-signals.py:
8454         * python/examples/gconf-proxy-service.py:
8455         * python/examples/gconf-proxy-service2.py:
8456
8457         Add "message" argument to service methods.
8458
8459 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8460
8461         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8462         * dbus/bus.c (dbus_bus_get_unix_user)
8463         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8464         method of org.freedesktop.DBus interface.
8465
8466         * bus/dispatch.c: test case
8467
8468 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8469
8470         * python/Makefile.am: switched include directory from glib/ to dbus/
8471         since dbus-glib.h moved
8472  
8473 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8474
8475         * configure.in: prevent building the gcj stuff and libxml loader
8476         since they are broken.
8477
8478 2004-06-20  Havoc Pennington  <hp@redhat.com>
8479
8480         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8481         codes from the dbus error names
8482         
8483         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8484         as dbus/dbus-glib.h and that breakage is now visible due to 
8485         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8486         
8487         * glib/dbus-glib.h: s/gproxy/g_proxy/
8488
8489         * dbus/dbus-shared.h: new header to hold stuff shared with
8490         binding APIs
8491         
8492         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8493         than dbus-errors.h
8494
8495         * glib/dbus-glib.h (dbus_set_g_error): move to
8496         dbus-glib-lowlevel.h
8497
8498         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8499         of stuff to enable this
8500
8501         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8502
8503         * a bunch of other changes with the same basic "separate glib 
8504         bindings from dbus.h" theme
8505         
8506 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8507
8508         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8509
8510         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8511
8512 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8513
8514         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8515         the reply value of the ServiceExists message.
8516
8517 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8518
8519         * python/dbus_bindings.pyx.in: No longer need to parse path
8520         elements and pass them as arrays of strings.  The C API now
8521         accepts plain path strings.
8522         (_build_parsed_path): removed 
8523
8524 2004-06-07  Havoc Pennington  <hp@redhat.com>
8525
8526         * doc/TODO: remove auto-activation item since it's done; sort
8527         items by importance/milestone
8528
8529 2004-06-07  Havoc Pennington  <hp@redhat.com>
8530
8531         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8532         random signature when using REQUIRED_FIELDS (this hack won't work
8533         in the long term)
8534
8535         * dbus/dbus-message.c: change the signature to be a header field,
8536         instead of message->signature special-case string. Incremental
8537         step forward. Then we can fix up code to send the signature in the
8538         message, then fix up code to validate said signature, then fix up
8539         code to not put the typecodes inline, etc.
8540         (load_one_message): don't make up the signature after the fact
8541         (decode_header_data): require signature field for the known
8542         message types
8543
8544         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8545
8546         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8547
8548 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8549
8550         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8551
8552         * mono/Handler.cs: Updated to follow new path argument for
8553         (un-)registering objects.
8554
8555         * mono/example/Makefile.am:
8556         * mono/Makefile.am:
8557         * configure.in: Bumped required version for mono and use new -pkg
8558         syntax for deps
8559
8560 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8561
8562         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8563         registration functions take the path argument as char* instead of
8564         char**.
8565
8566         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8567         split off the path decompostion part of
8568         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8569         warnings. 
8570
8571         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8572         
8573 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8574  
8575         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8576         machine approach.  A state is implemented as a function that
8577         handles incoming events as specified for that state.
8578         
8579         * doc/dbus-specification.xml: Update auth protocol state machine
8580         specification to match implementation.  Remove some leftover
8581         base64 examples.
8582
8583 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8584
8585         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8586         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8587         quiet doxygen.
8588
8589         * Doxyfile.in: remove deprecated options.
8590
8591         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8592         glib/test-thread.h, glib/test-thread-client.c,
8593         glib/test-thread-server.c, glib/test-profile.c,
8594         glib/test-dbus-glib.c: remove these unused files.
8595
8596 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8597
8598         * dbus/dbus-object-tree.c
8599         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8600         non-fallback handlers (bug #684).
8601         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8602         (find_subtree_recurse): report wether the returned subtree is an
8603         exact match or a "fallback" match higher up in the tree.
8604         (object_tree_test_iteration): update test case.
8605
8606 2004-06-01  Seth Nickell  <seth@gnome.org>
8607
8608         * python/dbus_bindings.pyx.in:
8609         * python/tests/test-client.py:
8610
8611         Round off basic type support. Add dicts (yay!), and 
8612         remaining array types.
8613
8614         Make MessageIter more general so it works for dicts too.
8615
8616         Mark all loop variables as C integers.
8617         
8618 2004-05-31  Havoc Pennington  <hp@redhat.com>
8619
8620         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8621         "in" before "out"
8622
8623         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8624
8625         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8626         option that runs the tests, and start filling in some code
8627         including for starters just dumping the interfaces to stdout
8628
8629         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8630
8631         * test/data/valid-introspection-files/lots-of-types.xml: test of
8632         an example introspection file
8633
8634         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8635         "node" (I think...)
8636
8637 2004-05-31  Seth Nickell  <seth@gnome.org>
8638
8639         * python/dbus_bindings.pyx.in:
8640         * python/tests/test-client.py:
8641
8642         Test Suite: 1
8643         Python Bindings: 0
8644
8645         Fix string array memory trashing bug... oops...
8646
8647 2004-05-30  Seth Nickell  <seth@gnome.org>
8648
8649         * python/dbus.py:
8650
8651         Add a nicer-but-less-flexible alternate API for handling 
8652         calls to virtual objects in dbus.ObjectTree.
8653
8654         Screw up the argument order to the dbus.Object constructor
8655         for consistency with dbus.ObjectTree (and to make dbus_methods
8656         optional for future extension)
8657         
8658         * python/examples/Makefile.am:
8659         * python/examples/gconf-proxy-service.py:
8660         * python/examples/gconf-proxy-service2.py:
8661
8662         Alternate implementation of gconf-proxy-service using the
8663         nicer dbus.ObjectTree API.
8664         
8665         * python/examples/example-service.py:
8666         * python/tests/test-server.py
8667
8668         Reverse the argument order to deal with dbus.Object constructor
8669         changes.
8670         
8671 2004-05-30  Seth Nickell  <seth@gnome.org>
8672
8673         * python/examples/example-client.py:
8674         * python/examples/example-service.py:
8675
8676         Take it back. Lists seem to work but they're broken
8677         in the test suite. Make the base examples use
8678         lists (works fine).
8679
8680 2004-05-30  Seth Nickell  <seth@gnome.org>
8681
8682         * python/dbus_bindings.pyx.in:
8683         * python/tests/test-client.py:
8684
8685         Add some more tests and fix errors that crop up.
8686         Unfortunately, currently it seems like marshalling
8687         and unmarshalling of lists is completely broken :-(
8688
8689 2004-05-30  Seth Nickell  <seth@gnome.org>
8690
8691         * python/dbus_bindings.pyx.in:
8692
8693         Add support for ObjectPath type.
8694
8695         * python/dbus.py:
8696
8697         Refactor message handling code to a common function.
8698         
8699         * python/tests/test-client.py:
8700         * python/tests/test-server.py:
8701
8702         Add tests that check to make sure values of all types
8703         can be echoed from a service w/o mangling.
8704         
8705 2004-05-29  Seth Nickell  <seth@gnome.org>
8706
8707         * python/dbus.py:
8708
8709         Add ObjectTree class which allows implementation
8710         of trees of "virtual" objects. Basically the python
8711         wrapper for "register_fallback".
8712         
8713         * python/examples/Makefile.am
8714         * python/examples/gconf-proxy-client.py:
8715         * python/examples/gconf-proxy-service.py:
8716
8717         Implement a simple GConf proxy service that supports
8718         get/set on string and int GConf keys using the ObjectTree.
8719         
8720 2004-05-29  Seth Nickell  <seth@gnome.org>
8721
8722         * python/dbus.py:
8723         * python/examples/example-client.py:
8724         * python/examples/example-service.py:
8725         * python/examples/list-system-services.py:
8726
8727         Add SessionBus, SystemBus and ActivationBus classes
8728         so you don't need to know the special little BUS_TYPE
8729         flag.
8730         
8731 2004-05-29  Havoc Pennington  <hp@redhat.com>
8732
8733         * bus/config-parser.c (process_test_valid_subdir): temporarily
8734         stop testing config parser OOM handling, since expat has issues
8735         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8736
8737         * bus/dbus-daemon-1.1.in: change requested_reply to
8738         send_requested_reply/receive_requested_reply so we can send the
8739         replies, not just receive them.
8740
8741         * bus/config-parser.c: parse the new
8742         send_requested_reply/receive_requested_reply
8743
8744         * bus/policy.c (bus_client_policy_check_can_send): add
8745         requested_reply argument and use it
8746
8747         * bus/bus.c (bus_context_check_security_policy): pass through
8748         requested_reply status to message send check
8749
8750         * bus/system.conf.in: adapt to requested_reply change
8751         
8752 2004-05-28  Havoc Pennington  <hp@redhat.com>
8753
8754         * test/glib/test-service-glib.c (main): remove unused variable
8755
8756         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8757
8758         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8759         from the enum, no longer in use.
8760
8761         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8762         works right.
8763
8764         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8765         whether error_name passed in is a valid error name.
8766
8767 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8768
8769         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8770         OBJECT_PATH and OBJECT_PATH_ARRAY
8771
8772 2004-05-28  Seth Nickell  <seth@gnome.org>
8773
8774         * python/examples/Makefile.am:
8775
8776         Forget to add Makefile.am. Do not pass go.
8777
8778 2004-05-28  Michael Meeks  <michael@ximian.com>
8779
8780         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8781         fix no int64 case.
8782
8783         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8784
8785         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8786         (_dbus_message_iter_get_basic_type_array): impl.
8787         drastically simplify ~all relevant _get methods to use these.
8788         (_dbus_message_iter_append_basic_array),
8789         (dbus_message_iter_append_basic): impl
8790         drastically simplify ~all relevant _append methods to use these.
8791
8792         * dbus/dbus-message-builder.c (parse_basic_type) 
8793         (parse_basic_array, lookup_basic_type): impl.
8794         (_dbus_message_data_load): prune scads of duplicate /
8795         cut & paste coding.
8796
8797         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8798         (_dbus_demarshal_basic_type): implement,
8799         (demarshal_and_validate_len/arg): beef up debug.
8800         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8801
8802 2004-05-27  Seth Nickell  <seth@gnome.org>
8803
8804         * configure.in:
8805         * python/Makefile.am:
8806
8807         Include the example python apps in the tarball.
8808         
8809         * python/examples/list-system-services.py
8810
8811         Add a python new example that fetches the list of services
8812         from the system bus.
8813         
8814 2004-05-27  Seth Nickell  <seth@gnome.org>
8815
8816         * python/dbus.py:
8817         * python/dbus_bindings.pyx.in:
8818
8819         Fix failure to notify that a signal was not handled,
8820         resulted in hung functions.
8821         
8822 2004-05-25  Colin Walters  <walters@redhat.com>
8823
8824         * tools/dbus-monitor.c (main): Monitor all types of messages.
8825
8826 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8827
8828         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8829         which unregisters the object path and disposes the handler.
8830
8831 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8832  
8833         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8834          
8835         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8836         operands to && so we call dbus_message_iter_next () for the last
8837         argument also.
8838
8839 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8840
8841         * dbus/dbus-object-tree.c
8842         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8843         children even if the requested path isn't registered.
8844         (object_tree_test_iteration): test object_tree_list_registered.
8845
8846         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8847         it to 0.
8848         
8849 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8850
8851         * doc/TODO: Remove resolved items.
8852
8853         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8854         field.
8855         
8856         * bus/connection.c (bus_connections_expect_reply): Enforce the
8857         per-connection limit on pending replies.
8858         
8859         Patch from Jon Trowbridge <trow@ximian.com>:
8860  
8861         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8862         up a watch that triggers a config reload when one end of the pipe
8863         becomes readable.
8864         (signal_handler): Instead of doing the config reload in our SIGHUP
8865         handler, just write to the reload pipe and let the associated
8866         watch handle the reload when control returns to the main loop.
8867  
8868         * bus/driver.c (bus_driver_handle_reload_config): Added.
8869         Implements a ReloadConfig method for requesting a configuration
8870         file reload via the bus driver.
8871  
8872 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8873
8874         * HACKING: Updated release instructions concerning the wiki page.
8875
8876 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8877
8878         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8879         filter against auth->allowed_mechs; we only add allowed mechs in
8880         record_mechanisms().
8881  
8882         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8883         ALLOWED_MECHS to auth-script format so we can set the list of
8884         allowed mechanisms.
8885  
8886         * data/auth/client-out-of-mechanisms.auth-script: New test to
8887         check client disconnects when it is out of mechanisms to try.
8888  
8889         * dbus/dbus-auth.c (process_command): Remove check for lines
8890         longer that 1 MB; we only buffer up maximum 16 kB.
8891  
8892         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8893         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8894         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8895         assume there might be unused bytes.
8896  
8897         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8898         client-out-of-mechs, it is handled in process_reject(). Move check
8899         for max failures to send_rejected(), as it's a server-only thing.
8900
8901         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8902         send_auth(), send_data(), send_rejected(), send_error(),
8903         send_ok(), send_begin() and send_cancel().
8904
8905 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8906
8907         Remove base64 encoding, replace with hex encoding. Original patch
8908         from trow@ximian.com, added error handling.
8909
8910         * dbus/dbus-string.c (_dbus_string_base64_encode)
8911         (_dbus_string_base64_decode): Remove.
8912         (_dbus_string_hex_decode): Add end_return argument so we can
8913         distinguish between OOM and invalid hex encoding.
8914         (_dbus_string_test): Remove base64 tests and add test case for
8915         invalid hex.
8916
8917         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8918         Replace base64 with hex.
8919
8920         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8921         for invalid hex encoded data in auth protocol.
8922
8923 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8924
8925         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8926         leak.
8927
8928 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8929
8930         * mono/dbus-sharp.dll.config.in: Added for GAC
8931         * mono/dbus-sharp.snk: Added for GAC
8932         * mono/Assembly.cs.in: Added for GAC
8933         * mono/Makefile.am: Changes for GAC installation        
8934         * configure.in: Added refs for dbus-sharp.dll.config.in and
8935         Assembly.cs.in. More fixes for mono testing
8936         * mono/example/Makefile.am: Changed var to CSC
8937         * Makefile.am: Changed flag name to DBUS_USE_CSC
8938
8939 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8940
8941         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8942         * mono/doc/*: Added documentation framework
8943         * configure.in: Added monodoc check
8944         * README: Added description of mono configure flags
8945
8946 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8947
8948         * doc/dbus-specification.xml: Added a "Required" column to the 
8949         header fields table and changed the "zero or more" verbage in
8950         the above paragraph to read "The header must contain the required 
8951         named header fields and zero or more of the optional named header 
8952         fields".
8953         * test/data/invalid-messages/*.message: Added the required PATH 
8954         named header field to the tests so that they don't fail on 
8955         'Missing path field'
8956
8957 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8958
8959         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8960         the stack by implicitly defining variable and parameter types and
8961         removing the hack of defining C pointers as python objects and later
8962         casting them.
8963
8964 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8965
8966         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8967
8968 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8969
8970         * mono/DBusType/Dict.cs: Handle empty dicts
8971         * mono/DBusType/Array.cs: Handle empty arrays
8972         * mono/Arguments.cs: Handle empty arguments
8973
8974 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8975
8976         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8977         field
8978
8979 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8980
8981         * test/data/valid-messages/standard-*.message: Update message
8982         test scripts to new header field names.
8983
8984 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8985
8986         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8987         overflow to times_we_did_each_thing array which would chop off the
8988         first character of the failure_dir string. Increased the size of
8989         the array to 7 to reflect the number of random mutation functions
8990         we have.
8991
8992 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8993
8994         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8995         unix_server->watch here, it is unreffed in disconnect.
8996         (_dbus_server_new_for_tcp_socket): convert NULL host to
8997         "localhost" here so we don't append NULL to address.
8998         
8999         * dbus/dbus-server.c (_dbus_server_test): Add test case for
9000         various addresses, including tcp with no explicit host.
9001
9002 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9003
9004         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9005         fix incorrect setting of .name_offset in the HeaderField (it was
9006         off by two bytes, positioned right after the name and typecode)
9007
9008         * bus/bus.c (bus_context_new, bus_context_unref): test before
9009         calling dbus_server_free_data_slot and _dbus_user_database_unref
9010         in case of an error.
9011
9012         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9013         by libdbus-gtool.
9014
9015 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9016
9017         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9018         _dbus_poll() instead of select().
9019
9020 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9021
9022         * bus/main.c (signal_handler): Reload the configuration files
9023         on SIGHUP.
9024         (main): Set up our SIGHUP handler.
9025
9026         * bus/bus.c (struct BusContext): Store the config file, user and
9027         fork flag in the BusContext.
9028         (process_config_first_time_only): Added.  Contains the code
9029         (previously in bus_context_new) for setting up the BusContext from
9030         the BusConfigParser that should only be run the first time the
9031         config files are read.
9032         (process_config_every_time): Added.  Contains the code (previously
9033         in bus_context_new) for setting up the BusContext from the
9034         BusConfigParser that should be run every time the config files are
9035         read.
9036         (load_config): Added.  Builds a BusConfigParser from the config
9037         files and passes the resulting structure off to
9038         process_config_first_time_only (assuming this is the first time)
9039         and process_config_every_time.
9040         (bus_context_new): All of the config-related code has been moved
9041         to process_config_first_time_only and process_config_every_time.
9042         Now this function just does the non-config-related initializations
9043         and calls load_config.
9044         (bus_context_reload_config): Added.
9045
9046 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9047
9048         * bus/driver.c (bus_driver_handle_get_service_owner):
9049         implement a GetServiceOwner method.
9050         * doc/dbus-specification.xml: document it.
9051         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9052         
9053         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9054         implement, using the bus GetServiceOwner method.
9055
9056         * test/glib/test-dbus-glib.c:
9057         use dbus_gproxy_new_for_service_owner so that we can receive the
9058         signal. 
9059
9060 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9061
9062         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9063         dbus/dbus-message.c, dbus/dbus-protocol.h
9064         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9065
9066         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9067         dbus/dbus-message.c, dbus/dbus-protocol.h
9068         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9069
9070         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9071         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9072         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9073
9074         * doc/dbus-specification.xml (Header Fields Table):
9075         s/SERVICE/DESTINATION
9076         s/SENDER_SERVICE/SENDER
9077
9078
9079 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9080
9081         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9082         a few seconds.
9083
9084 2004-04-13  Michael Meeks  <michael@ximian.com>
9085
9086         * glib/dbus-gobject.c (handle_introspect): split out
9087         (introspect_properties): this.
9088         (handle_introspect): implement this.
9089
9090         * test/glib/Makefile.am: use the absolute path so the bus
9091         daemon's chdir ("/") doesn't kill us dead.
9092
9093         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9094
9095 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9096
9097         * bus/config-parser.c (struct BusConfigParser): Added
9098         included_files field.
9099         (seen_include): Added.  Checks whether or not a file has already
9100         been included by any parent BusConfigParser.
9101         (bus_config_parser_new): Copy the parent's included_files.
9102         (include_file): Track which files have been included, and fail on
9103         circular inclusions.
9104         (process_test_valid_subdir): Changed printf to report if we are
9105         testing valid or invalid conf files.
9106         (all_are_equiv): Changed printf to be a bit clearer about
9107         what we are actually doing.
9108         (bus_config_parser_test): Test invalid configuration files.
9109
9110 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9111
9112         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9113         argument.  If non-null, the newly-constructed BusConfigParser will
9114         be initialized with the parent's BusLimits instead of the default
9115         values.
9116         (include_file): When including a config file, pass in
9117         the current parser as the parent and then copy the BusLimits
9118         from the included BusConfigParser pack to the current parser.
9119         (process_test_valid_subdir): Renamed from process_test_subdir.
9120         (process_test_equiv_subdir): Added.  Walks through a directory,
9121         descending into each subdirectory and loading the config files
9122         it finds there.  If any subdirectory contains two config files
9123         that don't produce identical BusConfigParser structs, fail.
9124         For now, the BusConfigParser's BusPolicies are not compared.
9125         (bus_config_parser_test): Call both process_test_valid_subdir and
9126         process_test_equiv_subdir.
9127
9128         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9129         argument and pass it along to the call to bus_config_parser_new.
9130         Also made a few small changes to allow this code to compile.
9131
9132         * bus/config-loader-expat.c (bus_config_load): Take a parent
9133         argument and pass it along to the call to bus_config_parser_new.
9134
9135         * bus/bus.c (bus_context_new): Load the config file
9136         with a NULL parent argument.
9137
9138 2004-03-29  Michael Meeks  <michael@ximian.com>
9139
9140         * glib/dbus-gobject.c (introspect_properties): split
9141         out, fix mangled 'while' flow control.
9142         (introspect_signals): implement.
9143         (handle_introspect): update.
9144
9145 2004-03-29  Michael Meeks  <michael@ximian.com>
9146
9147         * glib/dbus-gobject.c (set_object_property): split out / 
9148         re-work, use the property type, and not the message type(!)
9149         (get_object_property): ditto.
9150
9151         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9152         (dbus_gvalue_marshal): make this code re-usable, needed
9153         for signals too, also on both proxy and server side.
9154         Re-write for more efficiency / readability.
9155
9156 2004-03-29  Michael Meeks  <michael@ximian.com>
9157
9158         * dbus/dbus-message.c
9159         (dbus_message_new_error_printf): impl.
9160
9161         * dbus/dbus-connection.c
9162         (dbus_connection_unregister_object_path): fix warning.
9163
9164         * configure.in: fix no-mono-installed situation.
9165
9166 2004-03-27  Havoc Pennington  <hp@redhat.com>
9167
9168         Patch from Timo Teräs:
9169         
9170         * tools/dbus-send.c (main): if --print-reply, assume type is
9171         method call; support boolean type args
9172         
9173         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9174         bunch of memleak and logic bugs
9175         
9176 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9177
9178         * mono/Arguments.cs:
9179         * mono/Introspector.cs:
9180         * mono/Handler.cs:
9181         * mono/InterfaceProxy.cs:
9182         * mono/Message.cs
9183         * mono/ProxyBuilder.cs:
9184         * mono/Service.cs:
9185         Added InterfaceProxy class to avoid building proxies for every
9186         object.
9187
9188         * dbus-message.h:
9189         * dbus-message.c (dbus_message_append_args_valist)
9190         (dbus_message_iter_get_object_path)
9191         (dbus_message_iter_get_object_path_array)
9192         (dbus_message_iter_append_object_path)
9193         (dbus_message_iter_append_object_path_array):
9194         Added object_path iter functions to handle OBJECT_PATH arguments
9195         
9196 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9197
9198         First checkin of mono bindings.
9199         * configure.in:
9200         * Makefile.am:
9201         Build stuff for the bindings
9202         * dbus-sharp.pc.in: Added for pkgconfig
9203         
9204 2004-03-21  Havoc Pennington  <hp@redhat.com>
9205
9206         * test/test-service.c (main): remove debug spew
9207
9208 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9209
9210         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9211         arrays
9212
9213         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9214         (dbus_message_iter_init_array_iterator)
9215         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9216         indicate whether the iterator is empty
9217
9218         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9219         warnings
9220
9221 2004-03-19  Havoc Pennington  <hp@redhat.com>
9222
9223         * NEWS: 0.21 updates
9224
9225         * configure.in: 0.21
9226
9227         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9228         
9229         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9230         you don't need pyrex to make dist
9231
9232         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9233         sources; run moc
9234         
9235 2004-03-18  Richard Hult  <richard@imendio.com>
9236
9237         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9238         (dbus_message_set_auto_activation): Add doxygen docs.
9239
9240 2004-03-16  Richard Hult  <richard@imendio.com>
9241
9242         * bus/activation.c: (bus_activation_service_created),
9243         (bus_activation_send_pending_auto_activation_messages),
9244         (bus_activation_activate_service):
9245         * bus/activation.h:
9246         * bus/dispatch.c: (bus_dispatch),
9247         (check_nonexistent_service_auto_activation),
9248         (check_service_auto_activated),
9249         (check_segfault_service_auto_activation),
9250         (check_existent_service_auto_activation), (bus_dispatch_test):
9251         * bus/driver.c: (bus_driver_handle_activate_service):
9252         * bus/services.c: (bus_registry_acquire_service):
9253         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9254         (dbus_message_get_auto_activation):
9255         * dbus/dbus-message.h:
9256         * dbus/dbus-protocol.h: Implement auto-activation.
9257         
9258         * doc/dbus-specification.xml: Add auto-activation to the spec.
9259
9260 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9261
9262         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9263         fix a bug with CUSTOM types.
9264
9265         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9266         a unit test for this bug (used to fail).
9267
9268 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9269
9270         * bus/activation.c:
9271         (babysitter_watch_callback): notify all pending activations waiting for
9272           the same exec that the activation failed.
9273         (bus_activation_activate_service): shortcut the activation if we 
9274           already waiting for the same executable to start up.
9275
9276 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9277
9278         * bus/activation.c: 
9279         - Added service file reloading. 
9280           Each service files directory is kept in an hash table in 
9281           BusActivation and each BusActivationEntry knows what .service-file it
9282           was read from. So when you try to activate a service the bus will 
9283           check if it's been updated, removed or if new .service-files has 
9284           been installed.
9285         - Test code at the bottom for the service file reloading.
9286         * bus/test-main.c: (main):
9287         * bus/test.h:
9288         - added service reloading test.
9289         * dbus/dbus-sysdeps.c: 
9290         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9291
9292 2004-03-08  Michael Meeks  <michael@ximian.com>
9293
9294         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9295         bail immediately if disconnected, to avoid busy loop.
9296
9297         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9298         cleanup cut/paste/inefficiency.
9299
9300 2004-03-01  David Zeuthen  <david@fubar.dk>
9301
9302         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9303         bug where args were used twice. This bug resulted in a segfault
9304         on a Debian/PPC system when starting the messagebus daemon. Include
9305         dbus-sysdeps.h for DBUS_VA_COPY
9306
9307         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9308
9309         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9310         appropriate va_copy implementation. From GLib
9311         
9312 2004-02-24  Joe Shaw  <joe@ximian.com>
9313
9314         * bus/services.c (bus_registry_acquire_service): We need to pass
9315         in the service name to dbus_set_error() to prevent a crash.
9316
9317 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9318
9319         * AUTHORS: Reveal my True identity.
9320
9321 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9322
9323         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9324         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9325
9326 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9327
9328         * doc/TODO: Added not about better error check of configuration files.
9329
9330 2003-12-02  Richard Hult  <richard@imendio.com>
9331
9332         * Update AFL version to 2.0 throughout the source files to reflect
9333         the update that was done a while ago.
9334
9335 2003-12-02  Richard Hult  <richard@imendio.com>
9336
9337         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9338         wrote_dict_key to FALSE on the iter that the dict is appended to,
9339         just like when appending other types. Fixes a bug where a dict
9340         couldn't be put inside a dict.
9341         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9342         (message_iter_test, _dbus_message_test): Add test case for dict
9343         inside dict.
9344
9345 2003-12-01  David Zeuthen  <david@fubar.dk>
9346
9347         * python/dbus.py: Add the actual message when calling the reciever
9348         of a signal such that parameters can be inspected. Add the method
9349         remove_signal_receiver
9350         
9351 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9352
9353         * bus/*.[ch]:
9354         * dbus/*.[ch]:
9355         * glib/*.[ch]: Made ref functions return the pointer
9356
9357 2003-11-25  Zack Rusin  <zack@kde.org>
9358
9359         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9360
9361         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9362         wrappers,
9363
9364         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9365         the Integrator and to better fit with the server,
9366
9367 2003-11-24  Zack Rusin  <zack@kde.org>
9368
9369         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9370         the integrator handles it now
9371
9372         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9373         since QTimer wasn't really meant to be used the way DBusTimeout is
9374
9375 2003-11-24  Zack Rusin  <zack@kde.org>
9376
9377         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9378         Integrator class which integrates D-BUS with the Qt event loop,
9379
9380         * qt/connection.h, qt/connection.cpp: Move all the code which
9381         was dealing with D-BUS integration to the Integrator class,
9382         and start using Integrator,
9383
9384 2003-11-23  Zack Rusin  <zack@kde.org>
9385
9386         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9387         wrapper
9388
9389         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9390         switching namespaces to DBusQt, reworking the class,
9391
9392         * Makefile.cvs: switching dependencies so that it matches KDE 
9393         schematics,
9394         
9395         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9396         the library
9397
9398 2003-11-19  Havoc Pennington  <hp@redhat.com>
9399
9400         * NEWS: update
9401
9402         * configure.in: bump version to 0.20
9403
9404         * configure.in (have_qt): add yet another place to look for qt
9405         (someone hand trolltech a .pc file...)
9406
9407 2003-11-01  Havoc Pennington  <hp@redhat.com>
9408
9409         * doc/dbus-specification.xml: add state machine docs on the auth
9410         protocol; just a first draft, I'm sure it's wrong.      
9411
9412 2003-10-28  David Zeuthen  <david@fubar.dk>
9413
9414         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9415         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9416         
9417 2003-10-28  Havoc Pennington  <hp@redhat.com>
9418
9419         * dbus/dbus-message.c (get_next_field): delete unused function
9420
9421 2003-10-28  Havoc Pennington  <hp@redhat.com>
9422
9423         * bus/expirelist.c (do_expiration_with_current_time): detect
9424         failure of the expire_func due to OOM
9425
9426         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9427
9428         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9429         NoReply error that's now created by the bus when the service exits
9430
9431 2003-10-28  Havoc Pennington  <hp@redhat.com>
9432
9433         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9434         tests for set_path, set_interface, set_member, etc.
9435
9436         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9437
9438         * dbus/dbus-message.c (set_string_field): always just delete and
9439         re-append the field; accept NULL for deletion
9440         (re_align_fields_recurse): reimplement
9441         
9442 2003-10-26  Havoc Pennington  <hp@redhat.com>
9443
9444         * dbus/dbus-connection.c: fix docs to properly describe the
9445         disconnected message
9446         (_dbus_connection_notify_disconnected): remove this function; 
9447         we can't synchronously add the disconnected message, we have to 
9448         do it after we've queued any remaining real messages
9449         (_dbus_connection_get_dispatch_status_unlocked): queue the
9450         disconnect message only if the transport has finished queueing all
9451         its real messages and is disconnected.
9452         (dbus_connection_disconnect): update the dispatch status here
9453
9454 2003-10-22  Havoc Pennington  <hp@redhat.com>
9455
9456         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9457
9458         * bus/connection.c (bus_transaction_send_from_driver): set the
9459         destination to the connection's base service
9460
9461 2003-10-20  Havoc Pennington  <hp@redhat.com>
9462
9463         hmm, make check is currently not passing.
9464         
9465         * doc/dbus-specification.xml: add requirement that custom type
9466         names follow the same rules as interface names.
9467
9468         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9469         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9470         'map'
9471
9472         * doc/dbus-specification.xml: update type codes to match
9473         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9474         CUSTOM. Add type OBJECT_PATH to the spec.
9475
9476 2003-10-17  Havoc Pennington  <hp@redhat.com>
9477
9478         * bus/driver.c (create_unique_client_name): use "." as separator
9479         in base service names instead of '-'
9480
9481         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9482         byte at the end of the string
9483
9484         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9485         optimization macros since string validation seems to be a slow
9486         point.
9487         
9488         * doc/dbus-specification.xml: restrict valid
9489         service/interface/member/error names. Add test suite code for the
9490         name validation.
9491
9492         * dbus/dbus-string.c: limit service/interface/member/error names 
9493         to [0-9][A-Z][a-z]_
9494
9495         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9496         format arg to verbose spew
9497
9498         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9499         memory, return instead of g_error
9500
9501         * test/test-service.c (path_message_func): support emitting a
9502         signal on request
9503
9504         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9505         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9506         assuming the activation bus was the session bus so that services
9507         started manually will still register.
9508         (init_connections_unlocked): fix so that in OOM situation we get
9509         the same semantics when retrying the function
9510         
9511         * test/test-service.c (main): change to use path registration, to
9512         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9513         than DBUS_BUS_SESSION
9514
9515 2003-10-16  Havoc Pennington  <hp@redhat.com>
9516
9517         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9518
9519         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9520         coverage of the tests
9521         (coverage-report.txt): don't move the .da and .bbg files around
9522
9523 2003-10-16  Havoc Pennington  <hp@redhat.com>
9524
9525         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9526         to put there
9527
9528 2003-10-16  Havoc Pennington  <hp@redhat.com>
9529
9530         * bus/connection.c (bus_pending_reply_expired): either cancel or
9531         execute, not both
9532         (bus_connections_check_reply): use unlink, not remove_link, as we
9533         don't want to free the link; fixes double free mess
9534
9535         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9536         where no reply was received
9537
9538         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9539         fix a refcount leak
9540
9541         * bus/signals.c (match_rule_matches): add special cases for the
9542         bus driver, so you can match on sender/destination for it.
9543
9544         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9545         DBUS_PRINT_BACKTRACE is set
9546
9547         * dbus/dbus-internals.c: add pid to assertion failure messages
9548
9549         * dbus/dbus-connection.c: add message type code to the debug spew
9550
9551         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9552         sender=foo not service=foo
9553
9554         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9555         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9556         DBUS_ACTIVATION_ADDRESS instead
9557
9558         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9559         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9560
9561         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9562         context struct
9563
9564         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9565         (dbus_message_iter_get_object_path_array): new function (half
9566         finished, disabled for the moment)
9567         
9568         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9569         DBUS_MESSAGE_TYPE_ERROR
9570
9571         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9572         avoid redirecting stderr to /dev/null
9573         (babysit): close stdin if not doing the "exit_with_session" thing
9574
9575         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9576         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9577         stdout/stdin, so things don't get confused
9578         
9579         * bus/system.conf.in: fix to allow replies, I modified .conf
9580         instead of .conf.in again.
9581
9582 2003-10-14  David Zeuthen  <david@fubar.dk>
9583
9584         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9585         argtype to arg_type when raising unknown arg type exception.
9586         Changed type list to reflect the changes in dbus-protocol.h so 
9587         the bindings actually work.
9588
9589 2003-10-14  Havoc Pennington  <hp@redhat.com>
9590
9591         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9592         to have a bug keeping it from outputting the .da files sometimes
9593         (string_get_string): don't append garbage nul bytes to the string.
9594
9595 2003-10-15  Seth Nickell  <seth@gnome.org>
9596
9597         * python/Makefile.am:
9598
9599         Include dbus_h_wrapper.h in the dist tarball.
9600
9601 2003-10-14  Havoc Pennington  <hp@redhat.com>
9602
9603         * bus/bus.c (bus_context_check_security_policy): revamp this to
9604         work more sanely with new policy-based requested reply setup
9605
9606         * bus/connection.c (bus_transaction_send_from_driver): set bus
9607         driver messages as no reply
9608
9609         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9610         requested_reply attribute on allow/deny rules
9611
9612         * bus/system.conf: add <allow requested_reply="true"/>
9613
9614         * bus/driver.c (bus_driver_handle_message): fix check for replies
9615         sent to the bus driver, which was backward. How did this ever work
9616         at all though? I think I'm missing something.
9617
9618         * dbus/dbus-message.c (decode_header_data): require error and
9619         method return messages to have a reply serial field to be valid
9620         (_dbus_message_loader_queue_messages): break up this function;
9621         validate that reply serial and plain serial are nonzero; 
9622         clean up the OOM/error handling.
9623         (get_uint_field): don't return -1 from this
9624         (dbus_message_create_header): fix signed/unsigned bug
9625
9626         * bus/connection.c (bus_connections_expect_reply): save serial of
9627         the incoming message, not reply serial
9628
9629 2003-10-14  Havoc Pennington  <hp@redhat.com>
9630
9631         * bus/connection.c: implement pending reply tracking using
9632         BusExpireList
9633
9634         * bus/bus.c (bus_context_check_security_policy): verify that a
9635         reply is pending in order to allow a reply to be sent. Deny 
9636         messages of unknown type.
9637
9638         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9639
9640         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9641         (bus_context_get_reply_timeout): new
9642
9643 2003-10-13  Seth Nickell  <seth@gnome.org>
9644
9645         * python/Makefile.am:
9646
9647         Pass "make distcheck": remove a couple files from DIST_FILES
9648         that weren't included in the final version.
9649
9650 2003-10-12  Havoc Pennington  <hp@pobox.com>
9651
9652         Added test code that 1) starts an actual bus daemon and 2) uses
9653         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9654         more testing possible, but this is the basic framework.
9655         
9656         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9657         empty proxy lists from the proxy list hash
9658
9659         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9660         couple of return_if_fail checks
9661
9662         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9663         to allocate, so everything is cleared to NULL as it should be.
9664
9665         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9666         source as data to dbus_connection_set_timeout_functions() as the 
9667         timeout functions expected
9668
9669         * test/glib/run-test.sh: add a little script to start up a message
9670         bus and run tests using it
9671
9672         * tools/dbus-launch.1: updates
9673
9674         * tools/dbus-launch.c (main): add --config-file option
9675
9676         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9677         that could never be reached.
9678
9679         * dbus/dbus-message.c (dbus_message_new_method_return) 
9680         (dbus_message_new_error, dbus_message_new_signal): set the
9681         no-reply-expected flag on all these. Redundant, but may
9682         as well be consistent.
9683
9684 2003-10-11  Havoc Pennington  <hp@pobox.com>
9685
9686         * test/decode-gcov.c (function_solve_graph): make broken block
9687         graph a nonfatal error since it seems to be broken. Need to debug
9688         this.
9689
9690         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9691         can't just check type > INVALID < LAST anymore
9692
9693         * dbus/dbus-message.c (dbus_message_get_signature): new function
9694         (dbus_message_has_signature): new function
9695         (struct DBusMessage): add signature field (right now it isn't sent
9696         over the wire, just generated on the fly)
9697         (dbus_message_copy): copy the signature, and init strings to
9698         proper length to avoid some reallocs
9699         (dbus_message_iter_init_array_iterator): return void, since it
9700         can't fail
9701         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9702         (_dbus_message_loader_queue_messages): add silly temporary hack to
9703         fill in message->signature on load
9704
9705         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9706         characters, so they are relatively human-readable.
9707
9708 2003-10-11  Havoc Pennington  <hp@pobox.com>
9709
9710         * dbus/dbus-message.c (_dbus_message_test): add more test
9711         coverage, but #if 0 for now since they uncover a bug 
9712         not fixed yet; I think in re_align_field_recurse()
9713         (re_align_field_recurse): add FIXME about broken assertion
9714
9715         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9716
9717         * bus/connection.c: share a couple code bits with expirelist.c
9718
9719         * bus/expirelist.h, bus/expirelist.c: implement a generic
9720         expire-items-after-N-seconds facility, was going to share between
9721         expiring connections and replies, decided not to use for expiring
9722         connections for now.
9723
9724         * COPYING: include AFL 2.0 (still need to change all the file headers)
9725
9726 2003-10-09  Havoc Pennington  <hp@redhat.com>
9727
9728         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9729         gcc 3.3. Not that we do anything about it yet.
9730
9731         * bus/signals.c (bus_match_rule_parse): impose max length on the
9732         match rule text
9733
9734         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9735
9736 2003-10-09  Havoc Pennington  <hp@redhat.com>
9737
9738         Make matching rules theoretically work (add parser).
9739         
9740         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9741         the case where destination is explicitly specified as bus driver
9742         and someone else is eavesdropping.
9743         
9744         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9745         definition of eavesdropping and assertion
9746
9747         * tools/dbus-send.c (main): use dbus_message_type_from_string
9748
9749         * bus/signals.c (bus_match_rule_parse): implement
9750
9751         * dbus/dbus-message.c (dbus_message_type_from_string): new
9752
9753         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9754
9755 2003-10-02  Havoc Pennington  <hp@pobox.com>
9756
9757         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9758         dbus_gproxy_oneway_call
9759
9760         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9761         (dbus_server_setup_with_g_main): fix to allow calling them more
9762         than once on the same args
9763         (dbus_bus_get_with_g_main): new function
9764
9765 2003-10-02  Havoc Pennington  <hp@redhat.com>
9766
9767         * doc/dbus-tutorial.xml: write some stuff
9768
9769 2003-09-29  Havoc Pennington  <hp@pobox.com>
9770
9771         * configure.in: split checks for Doxygen from XML docs, check for
9772         xmlto
9773
9774         * doc/Makefile.am: XML-ify all the docs, and add a blank
9775         dbus-tutorial.xml
9776
9777 2003-09-29  Havoc Pennington  <hp@pobox.com>
9778
9779         * Merge dbus-object-names branch. To see the entire patch 
9780         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9781         it's huuuuge though.
9782         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9783         
9784 2003-09-28  Havoc Pennington  <hp@pobox.com>
9785
9786         * HACKING: update to reflect new server
9787
9788 2003-09-26  Seth Nickell  <seth@gnome.org>
9789
9790         * python/dbus.py:
9791         * python/examples/example-signals.py:
9792
9793         Start implementing some notions of signals. The API
9794         is really terrible, but they sort of work (with the
9795         exception of being able to filter by service, and to
9796         transmit signals *as* a particular service). Need to
9797         figure out how to make messages come from the service
9798         we registered :-(
9799         
9800         * python/dbus_bindings.pyx.in:
9801
9802         Removed duplicate message_handler callbacks.
9803         
9804 2003-09-25  Havoc Pennington  <hp@redhat.com>
9805
9806         * bus/session.conf.in: fix my mess
9807
9808 2003-09-25  Havoc Pennington  <hp@pobox.com>
9809
9810         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9811
9812 2003-09-25  Seth Nickell  <seth@gnome.org>
9813
9814         * python/examples/example-service.py:
9815
9816         Johan notices complete wrong code in example-service, but
9817         completely wrong in a way that works exactly the same (!).
9818         Johan is confused, how could this possibly work? Example
9819         code fails to serve purpose of making things clear.
9820         Seth fixes.
9821
9822 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9823
9824         * doc/dbus-specification.sgml: don't require header fields
9825         to be 4-byte aligned and specify that fields should be
9826         distinguished from padding by the fact that zero is not
9827         a valid field name.
9828         
9829         * doc/TODO: remove re-alignment item and add item to doc
9830         the OBJECT_PATH type.
9831         
9832         * dbus/dbus-message.c:
9833         (HeaderField): rename the original member to value_offset
9834         and introduce a name_offset member to keep track of where
9835         the field actually begins.
9836         (adjust_field_offsets): remove.
9837         (append_int_field), (append_uint_field),
9838         (append_string_field): don't align the start of the header
9839         field to a 4-byte boundary.
9840         (get_next_field): impl finding the next marhsalled field
9841         after a given field.
9842         (re_align_field_recurse): impl re-aligning a number of
9843         already marshalled fields.
9844         (delete_field): impl deleting a field of any type and
9845         re-aligning any following fields.
9846         (delete_int_or_uint_field), (delete_string_field): remove.
9847         (set_int_field), (set_uint_field): no need to re-check
9848         that we have the correct type for the field.
9849         (set_string_field): ditto and impl re-aligning any
9850         following fields.
9851         (decode_header_data): update to take into account that
9852         the fields aren't 4-byte aligned any more and the new
9853         way to distinguish padding from header fields. Also,
9854         don't exit when there is too much header padding.
9855         (process_test_subdir): print the directory.
9856         (_dbus_message_test): add test to make sure a following
9857         field is re-aligned correctly after field deletion.
9858         
9859         * dbus/dbus-string.[ch]:
9860         (_dbus_string_insert_bytes): rename from insert_byte and
9861         allow the insert of multiple bytes.
9862         (_dbus_string_test): test inserting multiple bytes.
9863
9864         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9865         warning note to docs about having to re-align any
9866         marshalled values following the string.
9867         
9868         * dbus/dbus-message-builder.c:
9869         (append_string_field), (_dbus_message_data_load):
9870         don't align the header field.
9871         
9872         * dbus/dbus-auth.c: (process_test_subdir): print the
9873         directory.
9874         
9875         * test/break-loader.c: (randomly_add_one_byte): upd. for
9876         insert_byte change.
9877         
9878         * test/data/invalid-messages/bad-header-field-alignment.message:
9879         new test case.
9880         
9881         * test/data/valid-messages/unknown-header-field.message: shove
9882         a dict in the unknown field.
9883
9884 2003-09-25  Seth Nickell  <seth@gnome.org>
9885
9886         * python/dbus.py:
9887         * python/dbus_bindings.pyx.in:
9888
9889         Handle return values.
9890         
9891         * python/examples/example-client.py:
9892         * python/examples/example-service.py:
9893
9894         Pass back return values from the service to the client.
9895         
9896 2003-09-24  Seth Nickell  <seth@gnome.org>
9897
9898         * python/dbus.py:
9899
9900         Connect Object methods (when you are sharing an object) up... pass
9901         in a list of methods to be shared. Sharing all the methods just
9902         worked out too weird. You can now create nice Services over the
9903         DBus in Python. :-)
9904         
9905         * python/dbus_bindings.pyx.in:
9906
9907         Keep references to user_data tuples passed into C functions so 
9908         Python doesn't garbage collect on us.
9909
9910         Implement MethodReturn and Error subclasses of Message for creating
9911         DBusMessage's of those types.
9912         
9913         * python/examples/example-client.py:
9914         * python/examples/example-service.py:
9915
9916         Simple example code showing both how create DBus services and objects,
9917         and how to use them.
9918
9919 2003-09-23  Havoc Pennington  <hp@pobox.com>
9920
9921         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9922
9923 2003-09-23  Havoc Pennington  <hp@redhat.com>
9924
9925         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9926         (dbus_gproxy_disconnect_signal): implement
9927         (dbus_gproxy_manager_remove_signal_match): implement
9928         (dbus_gproxy_manager_add_signal_match): implement
9929         (dbus_gproxy_oneway_call): implement
9930
9931 2003-09-23  Havoc Pennington  <hp@pobox.com>
9932
9933         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9934         subclass. This means dropping the transparent thread safety of the
9935         proxy; you now need a separate proxy per-thread, or your own
9936         locking on the proxy. Probably right anyway.
9937         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9938
9939 2003-09-22  Havoc Pennington  <hp@redhat.com>
9940
9941         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9942
9943 2003-09-21  Seth Nickell  <seth@gnome.org>
9944
9945         First checkin of the Python bindings.
9946         
9947         * python/.cvsignore:
9948         * python/Makefile.am:
9949         * python/dbus_bindings.pyx.in:
9950         * python/dbus_h_wrapper.h:
9951
9952         Pieces for Pyrex to operate on, building a dbus_bindings.so
9953         python module for low-level access to the DBus APIs.
9954         
9955         * python/dbus.py:
9956
9957         High-level Python module for accessing DBus objects.
9958
9959         * configure.in:
9960         * Makefile.am:
9961
9962         Build stuff for the python bindings.
9963
9964         * acinclude.m4:
9965
9966         Extra macro needed for finding the Python C header files.
9967
9968 2003-09-21  Havoc Pennington  <hp@pobox.com>
9969
9970         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9971         implementing the proxy manager, didn't get very far.
9972
9973         * dbus/dbus-bus.c (dbus_bus_add_match): new
9974         (dbus_bus_remove_match): new
9975
9976         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9977         path_name argument; adjust the other not-yet-implemented 
9978         gproxy constructors to be what I think they should be.
9979
9980 2003-09-21  Havoc Pennington  <hp@pobox.com>
9981
9982         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9983         by default for message bus connections.
9984
9985         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9986         exit_on_disconnect flag is set and we process the disconnected
9987         signal.
9988         (dbus_connection_set_exit_on_disconnect): new function
9989
9990 2003-09-21  Havoc Pennington  <hp@pobox.com>
9991
9992         Get matching rules mostly working in the bus; only actually
9993         parsing the rule text remains. However, the client side of
9994         "signal connections" hasn't been started, this patch is only the
9995         bus side.
9996         
9997         * dbus/dispatch.c: fix for the matching rules changes
9998         
9999         * bus/driver.c (bus_driver_handle_remove_match)
10000         (bus_driver_handle_add_match): send an ack reply from these
10001         method calls
10002
10003         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
10004         arguments, reported by Seth Nickell
10005
10006         * bus/config-parser.c (append_rule_from_element): support
10007         eavesdrop=true|false attribute on policies so match rules 
10008         can be prevented from snooping on the system bus.
10009
10010         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10011         and "destination" in attribute names; fix some docs bugs; 
10012         add eavesdrop=true|false attribute
10013
10014         * bus/driver.c (bus_driver_handle_add_match)
10015         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10016         messages
10017
10018         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10019         rid of broadcast service concept, signals are just always broadcast
10020
10021         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10022         mostly implement matching rules stuff (currently only exposed as signal
10023         connections)
10024
10025 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10026
10027         * doc/dbus-specification.sgml: Change the header field name
10028         to be an enum and update the rest of the spec to reference
10029         the fields using the conventinal name.
10030
10031         * dbus/dbus-protocol.h: update to reflect the spec.
10032
10033         * doc/TODO: add item to remove the 4 byte alignment requirement.
10034         
10035         * dbus/dbus-message.c: Remove the code to generalise the
10036         header/body length and serial number header fields as named
10037         header fields so we can reference field names using the 
10038         protocol values.
10039         (append_int_field), (append_uint_field), (append_string_field):
10040         Append the field name as a byte rather than four chars.
10041         (delete_int_or_uint_field), (delete_string_field): reflect the
10042         fact that the field name and typecode now occupy 4 bytes instead
10043         of 8.
10044         (decode_string_field), (decode_header_data): update to reflect
10045         protocol changes and move the field specific encoding from
10046         decode_string_field() back into decode_header_data().
10047         
10048         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10049         Add utility to aid debugging.
10050         
10051         * dbus/dbus-message-builder.c:
10052         (append_string_field), (_dbus_message_data_load): Update to
10053         reflect protocol changes; Change the FIELD_NAME directive
10054         to HEADER_FIELD and allow it to take the field's conventional
10055         name rather than the actual value.
10056         
10057         * test/data/*/*.message: Update to use HEADER_FIELD instead
10058         of FIELD_NAME; Always align the header on an 8 byte boundary
10059         *before* updating the header length.
10060
10061 2003-09-15  Havoc Pennington  <hp@pobox.com>
10062
10063         * dbus/dbus-pending-call.c: add the get/set object data
10064         boilerplate as for DBusConnection, etc. Use generic object data
10065         for the notify callback.
10066
10067         * glib/dbus-gparser.c (parse_node): parse child nodes
10068
10069         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10070         
10071         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10072         contain functions shared between the convenience lib and the
10073         installed lib
10074
10075         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10076         -export-symbols-regex to the GLib library
10077
10078         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10079         fix the locking in here, and add a default handler for
10080         Introspect() that just returns sub-nodes.
10081
10082 2003-09-14  Havoc Pennington  <hp@pobox.com>
10083
10084         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10085         rather than gfoo consistent
10086
10087         * glib/dbus-gproxy.h: delete for now, move contents to
10088         dbus-glib.h, because the include files don't work right since we
10089         aren't in the dbus/ subdir.
10090         
10091         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10092         (dbus_gproxy_end_call): finish
10093         (dbus_gproxy_begin_call): finish
10094
10095         * glib/dbus-gmain.c (dbus_set_g_error): new
10096
10097         * glib/dbus-gobject.c (handle_introspect): include information
10098         about child nodes in the introspection
10099
10100         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10101         function to help in implementation of introspection
10102
10103         * dbus/dbus-object-tree.c
10104         (_dbus_object_tree_list_registered_and_unlock): new function
10105
10106 2003-09-12  Havoc Pennington  <hp@pobox.com>
10107
10108         * glib/dbus-gidl.h: add common base class for all the foo_info
10109         types
10110
10111         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10112         similar to kdcop
10113
10114         * test/Makefile.am: try test srcdir -ef . in addition to test
10115         srcdir = ., one of them should work (yeah lame)
10116         
10117         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10118         library
10119         
10120         * glib/dbus-gparser.h: make description_load routines return
10121         NodeInfo* not Parser*
10122
10123         * Makefile.am (SUBDIRS): build test dir after all library dirs
10124
10125         * configure.in: add GTK+ detection
10126
10127 2003-09-07  Havoc Pennington  <hp@pobox.com>
10128
10129         * Make Doxygen contented.
10130
10131 2003-09-07  Havoc Pennington  <hp@pobox.com>
10132
10133         * doc/dbus-specification.sgml: more updates
10134
10135 2003-09-06  Havoc Pennington  <hp@pobox.com>
10136
10137         * doc/dbus-specification.sgml: partial updates
10138
10139         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10140         zillionth time; hopefully I edited the right file this time.
10141
10142         * bus/config-parser.c (append_rule_from_element): support
10143         send_type, send_path, receive_type, receive_path
10144
10145         * bus/policy.c: add message type and path to the list of things
10146         that can be "firewalled"
10147
10148 2003-09-06  Havoc Pennington  <hp@pobox.com>
10149
10150         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10151         (dbus_connection_register_object_path): make this not handle
10152         messages to paths below the given path
10153
10154 2003-09-03  Havoc Pennington  <hp@pobox.com>
10155
10156         * test/glib/Makefile.am: add this with random glib-linked test
10157         programs
10158
10159         * glib/Makefile.am: remove the random test programs from here,
10160         leave only the unit tests
10161
10162         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10163         uscore/javacaps conversion, and fix     
10164         (get_object_property, set_object_property): change to .NET
10165         convention for mapping props to methods, set_FooBar/get_FooBar, 
10166         since one language has such a convention we may as well copy it. 
10167         Plus real methods in either getFooBar or get_foo_bar style won't 
10168         collide with this convention.
10169
10170 2003-09-01  Havoc Pennington  <hp@pobox.com>
10171
10172         * glib/dbus-gparser.c: implement
10173
10174         * glib/dbus-gobject.c: start implementing skeletons support
10175
10176         * configure.in: when disabling checks/assert, also define
10177         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10178
10179 2003-09-01  Havoc Pennington  <hp@pobox.com>
10180
10181         * glib/Makefile.am: rearrange a bunch of files and get "make
10182         check" framework set up
10183
10184 2003-08-31  Havoc Pennington  <hp@pobox.com>
10185
10186         * fix build with --disable-tests
10187
10188 2003-08-30  Havoc Pennington  <hp@pobox.com>
10189
10190         * dbus/dbus-connection.c: purge DBusMessageHandler
10191
10192         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10193         use callbacks everywhere
10194
10195 2003-08-30  Havoc Pennington  <hp@pobox.com>
10196
10197         * test/data/valid-config-files/system.d/test.conf: change to 
10198         root for the user so warnings don't get printed
10199
10200         * dbus/dbus-message.c: add dbus_message_get_path,
10201         dbus_message_set_path
10202         
10203         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10204         dispatching to a path
10205
10206         * dbus/dbus-string.c (_dbus_string_validate_path): add
10207
10208         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10209         (_dbus_marshal_object_path): implement
10210
10211         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10212         to contain the path to the target object
10213         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10214         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10215
10216 2003-08-30  Havoc Pennington  <hp@pobox.com>
10217
10218         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10219
10220 2003-08-29  Havoc Pennington  <hp@pobox.com>
10221
10222         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10223         registered
10224         (struct DBusObjectSubtree): shrink this
10225         a lot, since we may have a lot of them
10226         (_dbus_object_tree_free_all_unlocked): implement
10227         (_dbus_object_tree_dispatch_and_unlock): implement
10228
10229 2003-08-29  Havoc Pennington  <hp@pobox.com>
10230
10231         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10232
10233 2003-08-28  Havoc Pennington  <hp@pobox.com>
10234
10235         purge DBusObjectID
10236         
10237         * dbus/dbus-connection.c: port to no ObjectID, create a
10238         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10239
10240         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10241         everything except UnregisterFunction and MessageFunction
10242         
10243         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10244         add DBUS_TYPE_OBJECT_PATH
10245         
10246         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10247         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10248         path-based object IDs
10249
10250 2003-08-25  Havoc Pennington  <hp@pobox.com>
10251
10252         Just noticed that dbus_message_test is hosed, I wonder when I
10253         broke that. I thought make check was passing earlier...
10254         
10255         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10256         container tree, will replace most of dbus-object-registry
10257
10258         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10259         screwup
10260
10261 2003-08-19  Havoc Pennington  <hp@pobox.com>
10262
10263         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10264         (dbus_message_is_error): fix this function
10265
10266         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10267         match
10268
10269         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10270         reflect clarified man page
10271         (bus_client_policy_check_can_send): ditto
10272         
10273         * bus/session.conf.in: fixup
10274
10275         * bus/system.conf.in: fixup
10276
10277 2003-08-18  Havoc Pennington  <hp@redhat.com>
10278
10279         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10280
10281         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10282         dumb bug created earlier (wrong order of args to
10283         decode_header_data())
10284         
10285         * tools/dbus-send.c: port
10286
10287         * tools/dbus-print-message.c (print_message): port
10288
10289         * test/data/*messages: port all messages over
10290         
10291         * dbus/dbus-message-builder.c: support including 
10292         message type
10293         
10294         * bus/driver.c: port over
10295         
10296         * bus/dispatch.c: port over to new stuff
10297
10298         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10299         rename disconnect signal to "Disconnected"
10300
10301 2003-08-17  Havoc Pennington  <hp@pobox.com>
10302
10303         This doesn't compile yet, but syncing up so I can hack on it from
10304         work. What are branches for if not broken code? ;-)
10305         
10306         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10307         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10308         DBUS_HEADER_FIELD_ERROR_NAME
10309         
10310         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10311         for the interface+member pairs
10312         (string_hash): change to use g_str_hash algorithm
10313         (find_direct_function, find_string_function): refactor these to
10314         share most code.
10315         
10316         * dbus/dbus-message.c: port all of this over to support 
10317         interface/member fields instead of name field
10318
10319         * dbus/dbus-object-registry.c: port over
10320         
10321         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10322         from _dbus_string_validate_name
10323
10324         * bus/dbus-daemon-1.1: change file format for the 
10325         <deny>/<allow> stuff to match new message naming scheme
10326
10327         * bus/policy.c: port over
10328
10329         * bus/config-parser.c: parse new format
10330         
10331 2003-08-16  Havoc Pennington  <hp@pobox.com>
10332
10333         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10334         broken assertion
10335
10336         * glib/dbus-gproxy.c: some hacking
10337
10338 2003-08-15  Havoc Pennington  <hp@redhat.com>
10339
10340         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10341
10342         * dbus/dbus-connection.c
10343         (dbus_connection_send_with_reply_and_block): factor out internals;
10344         change to convert any error replies to DBusError instead of 
10345         returning them as a message
10346
10347 2003-08-15  Havoc Pennington  <hp@pobox.com>
10348
10349         * dbus/dbus-connection.c, 
10350         dbus/dbus-pending-call.c: Finish the pending call stuff
10351
10352 2003-08-14  Havoc Pennington  <hp@redhat.com>
10353
10354         * dbus/dbus-pending-call.c: start on new object that will replace
10355         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10356         replies
10357
10358         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10359         with remote interfaces
10360
10361         * dbus/dbus-gidl.c: do the boring boilerplate in here
10362         
10363 2003-08-12  Havoc Pennington  <hp@pobox.com>
10364
10365         * bus/dispatch.c (bus_dispatch): make this return proper 
10366         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10367
10368         * dbus/dbus-errors.c (dbus_set_error): use
10369         _dbus_string_append_printf_valist
10370
10371         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10372         (_dbus_string_append_printf): new
10373
10374         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10375         UNKNOWN_METHOD
10376
10377         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10378         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10379         message is unhandled.
10380
10381 2003-08-11  Havoc Pennington  <hp@pobox.com>
10382
10383         * bus/test.c (client_disconnect_handler): change to return
10384         HANDLED (would have been REMOVE_MESSAGE)
10385
10386         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10387         HANDLED/NOT_YET_HANDLED instead of
10388         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10389         should be used.
10390
10391 2003-08-10  Havoc Pennington  <hp@pobox.com>
10392
10393         * tools/dbus-send.c (main): add --type argument, for now
10394         supporting only method_call and signal types.
10395
10396         * tools/dbus-print-message.c: print message type
10397
10398         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10399         init connection->objects
10400
10401         * doc/dbus-specification.sgml: fix sgml
10402
10403         * bus/*.c: port over to object-instance API changes
10404
10405         * test/test-service.c: ditto
10406         
10407         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10408         name, we will have to fix up the rest of the code to also handle
10409         this
10410         (dbus_message_new): generic message-creation call
10411         (set_string_field): allow appending name field
10412
10413 2003-08-06  Havoc Pennington  <hp@pobox.com>
10414
10415         * dbus/dbus-object-registry.c: implement signal connection 
10416         and dispatch
10417
10418         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10419
10420         * dbus/dbus-internals.c (_dbus_memdup): new function
10421
10422 2003-08-02  Havoc Pennington  <hp@pobox.com>
10423
10424         * dbus/dbus-message.c (dbus_message_get_no_reply)
10425         (dbus_message_set_no_reply): add these and remove
10426         set_is_error/get_is_error
10427
10428         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10429         remove the ERROR flag, since there's now an ERROR type
10430
10431 2003-08-01  Havoc Pennington  <hp@pobox.com>
10432
10433         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10434         implement
10435
10436         * dbus/dbus-message.c (dbus_message_get_type): new function
10437
10438         * doc/dbus-specification.sgml: add "type" byte to messages
10439
10440 2003-08-01  Havoc Pennington  <hp@pobox.com>
10441
10442         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10443         a message type enum to distinguish kinds of message
10444         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10445         that need not be replied to
10446
10447 2003-08-01  Havoc Pennington  <hp@pobox.com>
10448
10449         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10450         (unpack_8_octets): fix no-64-bit-int bug
10451
10452         * dbus/dbus-object-registry.c (validate_id): validate the 
10453         connection ID bits, not just the instance ID.
10454
10455         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10456         the connection-global 33 bits of the object ID
10457
10458         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10459         object ID in the new way
10460
10461         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10462         define server/client/instance bits.
10463
10464 2003-07-30  Havoc Pennington  <hp@pobox.com>
10465
10466         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10467         build
10468
10469 2003-07-13  Havoc Pennington  <hp@pobox.com>
10470
10471         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10472         fields to DBusObjectVTable and DBusObjectInfo
10473
10474 2003-07-12  Havoc Pennington  <hp@pobox.com>
10475
10476         * dbus/dbus-object-registry.c: implement unit test,
10477         fix bugs discovered in process
10478
10479         * dbus/dbus-connection.c: remove handler_table and
10480         register_handler(), add DBusObjectRegistry usage
10481
10482         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10483         (dbus_object_id_set_null): new functions
10484
10485 2003-07-08  Havoc Pennington  <hp@pobox.com>
10486
10487         * dbus/dbus-object.c: implement some of this
10488
10489         * dbus/dbus-object-registry.c
10490         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10491         param
10492         (_dbus_object_registry_new): handle OOM
10493
10494 2003-07-08  Havoc Pennington  <hp@pobox.com>
10495
10496         * dbus/dbus-object.h: sketch out an API for registering objects
10497         with a connection, that allows us to use as little as 24 bytes
10498         per object and lets application code represent an object in 
10499         any conceivable way.
10500
10501         * dbus/dbus-object-registry.c: implement the hard bits of the
10502         DBusConnection aspect of object API. Not yet wired up.
10503         
10504 2003-07-06  Havoc Pennington  <hp@pobox.com>
10505
10506         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10507         (_dbus_marshal_object_id): new
10508         (_dbus_demarshal_object_id): new
10509         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10510         consolidate identical switch cases. Don't conditionalize handling
10511         of DBUS_TYPE_UINT64, need to handle the type always.
10512         (_dbus_marshal_validate_arg): consolidate identical cases, and
10513         handle DBUS_TYPE_OBJECT_ID
10514
10515         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10516
10517         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10518
10519 2003-09-28  Havoc Pennington  <hp@pobox.com>
10520
10521         * real 0.13 release
10522
10523 2003-09-28  Havoc Pennington  <hp@pobox.com>
10524
10525         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10526         to work with Debian db2html
10527
10528 2003-09-28  Havoc Pennington  <hp@pobox.com>
10529
10530         * configure.in: 0.13
10531
10532         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10533         stylesheet-images for benefit of Debian
10534         
10535         Change back to using filesystem-linked sockets for the system
10536         bus, so only root can create the default system bus address.
10537         
10538         * bus/system.conf.in: change to use
10539         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10540
10541         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10542         from here.
10543
10544         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10545         here, and AC_DEFINE DBUS_SYSTEM_PATH
10546
10547 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10548
10549         * doc/TODO:
10550         * doc/busconfig.dtd:
10551         Add busconfig DTD.
10552         
10553 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10554
10555         * doc/dbus-specification.sgml:
10556         Add activation reply values.
10557         
10558 2003-08-05  Havoc Pennington  <hp@redhat.com>
10559
10560         * configure.in: 0.12
10561
10562 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10563
10564         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10565         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10566         (add_watch), (remove_watch), (create_source):
10567         Refcount fds, fixes some reentrancy issues.
10568         
10569 2003-07-30  Havoc Pennington  <hp@redhat.com>
10570
10571         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10572         bus address to be abstract if we have abstract sockets
10573
10574         * NEWS: update
10575
10576 2003-07-28  Havoc Pennington  <hp@redhat.com>
10577
10578         * bus/messagebus.in: fix to avoid processname/servicename 
10579         confusion, from Michael Kearey
10580         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10581         
10582 2003-07-23  Havoc Pennington  <hp@pobox.com>
10583
10584         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10585         fix from Andy Hanton to remove broken "+1"
10586
10587 2003-07-16  Havoc Pennington  <hp@pobox.com>
10588
10589         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10590         babysitter process, as suggested by Thomas Leonard, so 
10591         an "eval `dbus-launch --exit-with-session`" will actually 
10592         return
10593
10594 2003-07-16  Havoc Pennington  <hp@pobox.com>
10595
10596         * configure.in: print out EXPANDED_* variables in the summary at
10597         the end; clean up the code that computes EXPANDED_ variables and
10598         get the ones using exec_prefix right. Should make things work
10599         when you build without --prefix
10600
10601 2003-06-29  Havoc Pennington  <hp@pobox.com>
10602
10603         * mono/Test.cs (class Test): fire up a main loop and run it
10604
10605         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10606         done once, the app has to do it
10607
10608 2003-06-26  Havoc Pennington  <hp@pobox.com>
10609
10610         * mono/Connection.cs: set up connection with the glib main loop
10611
10612 2003-07-01  Havoc Pennington  <hp@redhat.com>
10613
10614         * doc/dbus-specification.sgml: clarify the format of a type code,
10615         change suggested by Jim Blandy
10616
10617 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10618
10619         * doc/Makefile.am:
10620         * tools/Makefile.am: Don't assume srcdir == builddir.
10621
10622         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10623         the allocated block.
10624         (_dbus_memory_test): New function.
10625         * dbus/dbus-test.h: Add _dbus_memory_test ().
10626         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10627
10628         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10629         of %c%c%c%c.
10630         (dbus_message_new): Remove obsolete @todo.
10631
10632         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10633         (_dbus_marshal_set_uint64): Fix comment.
10634
10635         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10636         hardcode FIELD_REPLY_SERIAL.
10637
10638         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10639         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10640
10641         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10642         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10643
10644 2003-06-24  Havoc Pennington  <hp@pobox.com>
10645
10646         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10647
10648 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10649
10650         * configure.in:
10651         * gcj/.cvsignore:
10652         * gcj/Hello.java:
10653         * gcj/Makefile.am:
10654         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10655         * gcj/org/.cvsignore:
10656         * gcj/org/Makefile.am:
10657         * gcj/org/freedesktop/.cvsignore:
10658         * gcj/org/freedesktop/Makefile.am:
10659         * gcj/org/freedesktop/dbus/.cvsignore:
10660         * gcj/org/freedesktop/dbus/Makefile.am:
10661         * gcj/org/freedesktop/dbus/Message.java: (Message),
10662         (Message.Message):
10663         * gcj/org/freedesktop/dbus/natMessage.cc:
10664         Fix the build system.
10665
10666 2003-06-22  Havoc Pennington  <hp@pobox.com>
10667
10668         * mono/Connection.cs: add more bindings
10669
10670         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10671         more than once.
10672
10673 2003-06-22  Havoc Pennington  <hp@pobox.com>
10674
10675         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10676         Start wrapping more stuff.
10677
10678 2003-06-22  Havoc Pennington  <hp@pobox.com>
10679
10680         * mono/Message.cs: implement Message.Wrap() that ensures we only
10681         have a single C# wrapper per DBusMessage, assuming it works which
10682         it probably doesn't.
10683
10684         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10685         (dbus_message_free_data_slot): new
10686         (dbus_message_set_data): new
10687         (dbus_message_get_data): new
10688
10689 2003-06-22  Havoc Pennington  <hp@pobox.com>
10690
10691         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10692         (_dbus_data_slot_allocator_alloc): rework these to keep a
10693         reference count on each slot and automatically manage a global
10694         slot ID variable passed in by address
10695
10696         * bus/bus.c: convert to new dataslot API
10697
10698         * dbus/dbus-bus.c: convert to new dataslot API
10699
10700         * dbus/dbus-connection.c: convert to new dataslot API
10701
10702         * dbus/dbus-server.c: convert to new dataslot API
10703
10704         * glib/dbus-gmain.c: ditto
10705
10706         * bus/test.c: ditto
10707
10708         * bus/connection.c: ditto
10709
10710 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10711
10712         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10713         after the gcj checks so that the correct configuration tags
10714         will be added to libtool.
10715
10716         * dbus-glib-1.pc.in: No need to specify any includes since
10717         dbus-1.pc.in has those.
10718
10719 2003-06-22  Havoc Pennington  <hp@pobox.com>
10720
10721         * mono/*, gcj/*, configure.in, Makefile.am:
10722         Check in makefiles and subdirs for mono and gcj bindings.
10723         Neither binding actually exists, just trying to get through
10724         all the build and other boring bits.
10725
10726 2003-06-21  Philip Blundell  <philb@gnu.org>
10727
10728         * tools/dbus-monitor.1: Updated.
10729
10730         * tools/dbus-send.1: Likewise.
10731
10732 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10733
10734         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10735         for hangup and error after checking read so we won't discard
10736         pending data if both hangup and read are set.
10737
10738 2003-06-19  Philip Blundell  <philb@gnu.org>
10739
10740         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10741
10742         * tools/dbus-send.c: Accept both --system and --session.
10743
10744         * tools/dbus-monitor.c: Same here.
10745
10746 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10747
10748         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10749         from C++ (Patch by Miloslav Trmac).
10750
10751 2003-06-15  Joe Shaw  <joe@assbarn.com>
10752
10753         * configure.in: Check for socklen_t.
10754
10755         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10756
10757         * test/test-segfault.c: Add #include <sys/time.h>
10758
10759         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10760         dbus-launch needs it.
10761
10762 2003-06-09  Havoc Pennington  <hp@redhat.com>
10763
10764         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10765         SUN_LEN, it breaks abstract socket usage
10766
10767         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10768         starts of lines.
10769
10770 2003-06-04  Havoc Pennington  <hp@pobox.com>
10771
10772         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10773         using unix:abstract=/foo, and when listening in a tmpdir
10774         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10775
10776         * dbus/dbus-transport.c (_dbus_transport_open): support
10777         unix:abstract=/foo
10778
10779         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10780         support abstract sockets
10781
10782         * dbus/dbus-transport-unix.c
10783         (_dbus_transport_new_for_domain_socket): support abstract sockets
10784
10785         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10786         toggle as an argument, implement abstract namespace support
10787         (_dbus_listen_unix_socket): ditto
10788
10789         * configure.in: add --enable-abstract-sockets and implement
10790         a configure check for autodetection of the right value.
10791
10792 2003-06-01  Havoc Pennington  <hp@pobox.com>
10793
10794         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10795         in /tmp (though on Linux this will end up being useless,
10796         when we add abstract namespace support)
10797
10798         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10799         subst'ing it
10800
10801 2003-05-28  Colin Walters  <walters@verbum.org>
10802
10803         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10804
10805 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10806
10807         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10808
10809 2003-05-17  Colin Walters  <walters@gnu.org>
10810
10811         * tools/dbus-send.c: Don't exit with an error code if --help was
10812         passed.  Default to using the session bus instead of the system
10813         one.
10814
10815         * tools/dbus-launch.c: Ditto.
10816
10817         * tools/dbus-monitor.c: Ditto.
10818
10819         * tools/dbus-send.1: Update with new arguments.
10820
10821         * tools/dbus-launch.c: Emit code to export variables.  New
10822         arguments -s and -c to specify shell syntax, and a bit of code to
10823         autodetect syntax.  Also, allow specifying a program to run.
10824
10825         * tools/dbus-launch.1: Update with new arguments.
10826
10827         * tools/dbus-send.1: Ditto.
10828
10829         * tools/dbus-monitor.1: Ditto.
10830
10831 2003-05-17  Havoc Pennington  <hp@pobox.com>
10832
10833         * bus/config-parser.c (merge_included): merge in policies from
10834         child configuration file.
10835
10836         * bus/policy.c (bus_policy_merge): function to merge two policies
10837         together
10838
10839 2003-05-16  Havoc Pennington  <hp@redhat.com>
10840
10841         * dbus/dbus-connection.c: disable verbose lock spew
10842
10843         * tools/dbus-send.c: add --print-reply command line option
10844
10845         * tools/dbus-print-message.h (print_message): new util function
10846         shared by dbus-send and dbus-monitor
10847
10848         * tools/dbus-monitor.c (handler_func): exit on disconnect
10849
10850         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10851         disconnected, don't try to use the read_watch
10852
10853         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10854         so we can find this bug more easily
10855
10856 2003-05-16  Havoc Pennington  <hp@redhat.com>
10857
10858         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10859         NULL as DBusHashTable is annoyingly likely to do.
10860
10861 2003-05-16  Colin Walters  <walters@verbum.org>
10862
10863         * tools/dbus-monitor.c: Add --session argument and usage()
10864         function.
10865
10866         * tools/dbus-monitor.1: Update with new --session arg.
10867
10868         * bus/Makefile.am (install-data-hook): Create
10869         $(libdir)/dbus-1.0/services so that the session bus is happy.
10870
10871 2003-05-15  Havoc Pennington  <hp@redhat.com>
10872
10873         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10874         on non-x86. ifdef's are evil.
10875
10876 2003-05-15  Havoc Pennington  <hp@redhat.com>
10877
10878         * configure.in: 0.11
10879
10880         * NEWS: update
10881
10882         * bus/Makefile.am (initddir): apparently we are supposed to put
10883         init scripts in /etc/rc.d/init.d not /etc/init.d
10884
10885         * bus/Makefile.am: remove the "you must --enable-tests to make
10886         check" as it broke distcheck
10887
10888         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10889
10890 2003-05-13  James Willcox  <jwillcox@gnome.org>
10891
10892         * configure.in:
10893         * bus/activation.c: (bus_activation_service_created),
10894         (bus_activation_activate_service):
10895         * bus/driver.c: (bus_driver_send_service_deleted),
10896         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10897         (bus_driver_send_service_acquired),
10898         (bus_driver_send_welcome_message),
10899         (bus_driver_handle_list_services):
10900         * bus/session.conf.in:
10901         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10902         (dbus_bus_service_exists), (dbus_bus_activate_service):
10903         * dbus/dbus-bus.h:
10904
10905         Add some convenience API which lets you activate a service, and did a
10906         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10907         and dbus_message_get_args()
10908
10909 2003-05-11  Havoc Pennington  <hp@pobox.com>
10910
10911         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10912         calling _dbus_marshal_validate_arg() for every byte in a byte
10913         array, etc.
10914
10915         * dbus/dbus-message-handler.c: use atomic reference counting to
10916         reduce number of locks slightly; the global lock in here sucks
10917
10918         * dbus/dbus-connection.c
10919         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10920         update_dispatch_status that can be called with lock held; then use
10921         in a couple places to reduce locking/unlocking
10922         (dbus_connection_send): hold the lock over the whole function
10923         instead of acquiring it twice.
10924
10925         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10926
10927         * bus/connection.c (bus_connections_setup_connection): fix access
10928         to already-freed memory.
10929
10930         * dbus/dbus-connection.c: keep a little cache of linked list
10931         nodes, to avoid using the global linked list alloc lock in the
10932         normal send-message case. Instead we just use the connection lock
10933         that we already have to take.
10934
10935         * dbus/dbus-list.c (_dbus_list_find_last): new function
10936
10937         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10938         change to use a struct for the atomic type; fix docs,
10939         they return value before increment, not after increment.
10940
10941         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10942         (_dbus_string_append_8_aligned): new functions to try to
10943         microoptimize this operation.
10944         (reallocate_for_length): break this out of set_length(), to
10945         improve profile info, and also so we can consider inlining the
10946         set_length() part.
10947
10948         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10949         strings with some preallocation, cuts down on our calls to realloc
10950         a fair bit. Though if we can get the "move entire string to empty
10951         string" optimization below to kick in here, it would be better.
10952
10953         * dbus/dbus-string.c (_dbus_string_move): just call
10954         _dbus_string_move_len
10955         (_dbus_string_move_len): add a special case for moving
10956         an entire string into an empty string; we can just
10957         swap the string data instead of doing any reallocs.
10958         (_dbus_string_init_preallocated): new function
10959
10960 2003-05-11  Havoc Pennington  <hp@pobox.com>
10961
10962         Write a "test-profile" that does echo client-server with threads;
10963         profile reveals lock contention, memcpy/realloc of buffers, and
10964         UTF-8 validation as hot spots. 20% of lock contention eliminated
10965         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10966         contention is global mempool locks for GList and DBusList.
10967
10968         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10969         x86 implementation
10970
10971         * dbus/dbus-connection.c (struct DBusConnection): use
10972         dbus_atomic_t for the reference count
10973
10974         * dbus/dbus-message.c (struct DBusMessage): declare
10975         dbus_atomic_t values as volatile
10976
10977         * configure.in: code to detect ability to use atomic integer
10978         operations in assembly, from GLib patch
10979
10980         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10981         time, tired of it being wrong in threads and forked processes
10982
10983         * glib/test-profile.c: a little program to bounce messages back
10984         and forth between threads and eat CPU
10985
10986         * dbus/dbus-connection.c: add debug spew macros for debugging
10987         thread locks; include config.h at top; fix deadlock in
10988         dbus_connection_flush()
10989
10990 2003-05-08  Havoc Pennington  <hp@pobox.com>
10991
10992         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10993         data from getting written, and there wasn't a good reason to
10994         use _exit really.
10995
10996         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10997         dbus_verbose lines in test coverage
10998         (main): add list of functions sorted by # of untested blocks
10999         to the coverage report
11000
11001         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
11002
11003         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
11004
11005         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11006         extend test coverage
11007
11008         * test/data/auth/cancel.auth-script: test canceling an
11009         authentication
11010
11011         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11012         aren't used. in CVS history if we end up needing them.
11013
11014 2003-05-04  Havoc Pennington  <hp@pobox.com>
11015
11016         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11017         unit test
11018
11019         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11020         function, which assumed length was in # of strings, not bytes
11021
11022         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11023         missing coverage
11024
11025         * dbus/dbus-connection.c
11026         (_dbus_connection_queue_received_message): disable function for
11027         now, we are only using it in test mode
11028
11029         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11030         remove a mistaken FIXME
11031
11032 2003-05-04  Havoc Pennington  <hp@pobox.com>
11033
11034         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11035         unlock mutex on successful return, patch from Anders Gustafsson
11036
11037 2003-05-04  Havoc Pennington  <hp@pobox.com>
11038
11039         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11040         Anders Gustafsson
11041
11042 2003-05-04  Havoc Pennington  <hp@pobox.com>
11043
11044         * tools/dbus-launch.c: implement
11045
11046         * bus/main.c (main), bus/bus.c (bus_context_new):
11047         implement --print-pid and --fork
11048
11049 2003-05-03  Havoc Pennington  <hp@redhat.com>
11050
11051         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11052         the address had no value, and add to test suite. Fix and
11053         regression test from Miloslav Trmac
11054
11055 2003-05-03  Havoc Pennington  <hp@pobox.com>
11056
11057         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11058         watch is invalid when handled
11059
11060         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11061         dbus-launch utility to launch the bus from a shell script.  Didn't
11062         actually implement dbus-launch yet, it's just a placeholder still.
11063
11064 2003-05-03  Havoc Pennington  <hp@pobox.com>
11065
11066         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11067         daemon; also documents daemon config file, so replaces
11068         doc/config-file.txt. Corrected some stuff from config-file.txt in
11069         the process of moving it.
11070
11071 2003-05-03  Havoc Pennington  <hp@pobox.com>
11072
11073         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11074         add some man pages
11075
11076 2003-05-03  Colin Walters  <walters@verbum.org>
11077
11078         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11079         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11080
11081         * Makefile.am: Update to use new .pc versioning scheme.
11082
11083 2003-05-02  Havoc Pennington  <hp@redhat.com>
11084
11085         * bus/system.conf.in: allow send/receive to/from message bus
11086         service
11087
11088 2003-04-30  Havoc Pennington  <hp@redhat.com>
11089
11090         * configure.in: print a note when building with unit tests and
11091         without assertions
11092
11093 2003-04-30  Havoc Pennington  <hp@redhat.com>
11094
11095         * Makefile.am: add a check-local that complains if you didn't
11096         configure with --enable-tests
11097
11098 2003-04-29  Havoc Pennington  <hp@redhat.com>
11099
11100         * glib/dbus-gmain.c: docs cleanups
11101
11102         * dbus/dbus-types.h: add docs on int64 types
11103
11104         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11105         public API docs section
11106
11107 2003-04-29  Havoc Pennington  <hp@redhat.com>
11108
11109         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11110         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11111         parallel install API version, not with the D-BUS package version.
11112
11113         * HACKING: move some of README over here
11114
11115         * README: updates, and document API/ABI policy
11116
11117         * configure.in: reindentation
11118
11119 2003-04-29  Havoc Pennington  <hp@redhat.com>
11120
11121         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11122         to use this library" to be sure people have the right
11123         expectations.
11124
11125 2003-04-28  Havoc Pennington  <hp@redhat.com>
11126
11127         * configure.in: add --enable-docs which by default is auto yes if
11128         doxygen and db2html found, no otherwise; but can be forced on/off
11129
11130         * doc/Makefile.am: conditionalize whether to build docs on
11131         --enable-docs
11132
11133 2003-04-28  Havoc Pennington  <hp@redhat.com>
11134
11135         * configure.in: 0.10
11136
11137         * NEWS: update
11138
11139         * bus/system.conf.in: add <includedir>system.d</includedir>
11140
11141         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11142         username was provided but not uid
11143
11144         * bus/config-parser.c (struct BusConfigParser): keep track of
11145         whether the parser is toplevel or was included; change some
11146         of the error handling if it's included.
11147
11148 2003-04-27  Havoc Pennington  <hp@pobox.com>
11149
11150         Unbreak my code...
11151
11152         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11153         report correct status if we finish processing authentication
11154         inside this function.
11155
11156         * bus/activation.c (try_send_activation_failure): use
11157         bus_transaction_send_error_reply
11158
11159         * bus/connection.c (bus_connection_get_groups): return an error
11160         explaining the problem
11161
11162         * bus/bus.c (bus_context_check_security_policy): implement
11163         restriction here that inactive connections can only send the
11164         hello message. Also, allow bus driver to send anything to
11165         any recipient.
11166
11167         * bus/connection.c (bus_connection_complete): create the
11168         BusClientPolicy here instead of on-demand.
11169         (bus_connection_get_policy): don't return an error
11170
11171         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11172         sender field in message being replied to
11173
11174         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11175         causing it to return FALSE always
11176
11177         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11178         we checked sender rather than destination
11179
11180 2003-04-25  Havoc Pennington  <hp@redhat.com>
11181
11182         test suite is slightly hosed at the moment, will fix soon
11183
11184         * bus/connection.c (bus_connections_expire_incomplete): fix to
11185         properly disable the timeout when required
11186         (bus_connection_set_name): check whether we can remove incomplete
11187         connections timeout after we complete each connection.
11188
11189         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11190         probably still broken.
11191
11192         * bus/services.c (bus_registry_acquire_service): implement max
11193         number of services owned, and honor allow/deny rules on which
11194         services a connection can own.
11195
11196         * bus/connection.c (bus_connection_get_policy): report errors here
11197
11198         * bus/activation.c: implement limit on number of pending
11199         activations
11200
11201 2003-04-25  Havoc Pennington  <hp@redhat.com>
11202
11203         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11204         where we used >= 0 instead of != DBUS_UID_UNSET.
11205
11206 2003-04-25  Havoc Pennington  <hp@redhat.com>
11207
11208         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11209         were toggled without add/remove, fix from Anders Gustafsson
11210
11211 2003-04-24  Havoc Pennington  <hp@redhat.com>
11212
11213         * test/data/valid-config-files/basic.conf: add <limit> tags to
11214         this test
11215
11216         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11217         <limit> tag in configuration file.
11218
11219 2003-04-24  Havoc Pennington  <hp@redhat.com>
11220
11221         * bus/dispatch.c: somehow missed some name_is
11222
11223         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11224         (_dbus_timeout_set_interval): new
11225
11226         * bus/connection.c (bus_connections_setup_connection): record time
11227         when each connection is first set up, and expire them after the
11228         auth timeout passes.
11229
11230 2003-04-24  Havoc Pennington  <hp@redhat.com>
11231
11232         * dbus/dbus-message.c (dbus_message_name_is): rename
11233         (dbus_message_service_is): rename
11234         (dbus_message_sender_is): rename
11235         (dbus_message_get_service): rename
11236
11237 2003-04-24  Havoc Pennington  <hp@redhat.com>
11238
11239         * configure.in: add --enable-checks
11240
11241         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11242
11243         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11244         to use thread locks.
11245         (_dbus_connection_handler_destroyed_locked): move some private
11246         functions into proper docs group
11247
11248         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11249         _dbus_return_val_if_fail
11250
11251         Throughout: use dbus_return_if_fail
11252
11253 2003-04-23  James Willcox  <jwillcox@gnome.org>
11254
11255         * glib/dbus-glib.h:
11256         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11257         (dbus_connection_setup_with_g_main),
11258         (dbus_server_setup_with_g_main):
11259         * glib/test-dbus-glib.c: (main):
11260         * glib/test-thread-client.c: (main):
11261         * glib/test-thread-server.c: (new_connection_callback), (main):
11262         * tools/dbus-monitor.c: (main):
11263
11264         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11265         and dbus_server_setup_with_g_main().
11266
11267 2003-04-20  Havoc Pennington  <hp@pobox.com>
11268
11269         * doc/dbus-specification.sgml: document the restrictions on
11270         message and service names
11271
11272 2003-04-22  Havoc Pennington  <hp@redhat.com>
11273
11274         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11275         support, and do some code cleanups to share more code and
11276         speed up array marshal/demarshal.
11277
11278         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11279
11280         * configure.in: generate dbus-arch-deps.h
11281
11282         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11283         64-bit typecodes
11284
11285 2003-04-22  Havoc Pennington  <hp@redhat.com>
11286
11287         * test/data/valid-messages/opposite-endian.message: fix test
11288         to use proper type for rply field
11289
11290         * test/data/invalid-messages: add tests for below validation
11291
11292         * dbus/dbus-message.c (decode_header_data): validate field types,
11293         and validate that named fields are valid names
11294         (decode_name_field): consider messages in the
11295         org.freedesktop.Local. namespace to be invalid.
11296
11297         * dbus/dbus-string.c (_dbus_string_validate_name): new
11298
11299 2003-04-19  Havoc Pennington  <hp@pobox.com>
11300
11301         * bus/driver.c (bus_driver_handle_hello): check limits and
11302         return an error if they are exceeded.
11303
11304         * bus/connection.c: maintain separate lists of active and inactive
11305         connections, and a count of each. Maintain count of completed
11306         connections per user. Implement code to check connection limits.
11307
11308         * dbus/dbus-list.c (_dbus_list_unlink): export
11309
11310         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11311         number of bytes in the message queue for a connection
11312
11313 2003-04-18  Havoc Pennington  <hp@pobox.com>
11314
11315         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11316
11317         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11318         memleaks
11319
11320         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11321         on realloc be sure to update the pointer in the keyring
11322
11323         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11324         offset to avoid writing to unallocated memory
11325
11326         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11327         try the next mechanism, so we properly handle OOM
11328
11329         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11330         on OOM.
11331         (_dbus_keyring_new): fix OOM bug
11332         (_dbus_keyring_new_homedir): always set error; impose a maximum
11333         number of keys we'll load from the file, mostly to speed up the
11334         test suite and make its OOM checks more useful, but also for
11335         general sanity.
11336
11337         * dbus/dbus-auth.c (process_error_server): reject authentication
11338         if we get an error from the client
11339         (process_cancel): on cancel, send REJECTED, per the spec
11340         (process_error_client): send CANCEL if we get an error from the
11341         server.
11342
11343 2003-04-18  Havoc Pennington  <hp@pobox.com>
11344
11345         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11346         debug spew
11347
11348         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11349         handling problem
11350
11351         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11352         about DBUS_TEST_HOMEDIR once
11353
11354         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11355         the environment
11356
11357         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11358         config file so we test the right thing
11359
11360         Throughout: assorted docs improvements
11361
11362 2003-04-18  Havoc Pennington  <hp@pobox.com>
11363
11364         * glib/dbus-gmain.c: adapt to watch changes
11365
11366         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11367
11368         * dbus/dbus-server.h: remove dbus_server_handle_watch
11369
11370         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11371
11372         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11373         like DBusTimeout, so we don't need dbus_connection_handle_watch
11374         etc.
11375
11376 2003-04-17  Havoc Pennington  <hp@redhat.com>
11377
11378         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11379         database usage so it all goes via the DBusUserDatabase cache.
11380
11381 2003-04-17  Havoc Pennington  <hp@redhat.com>
11382
11383         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11384         there was an OOM watch we skipped, we always return TRUE so we
11385         iterate again to have a look at it again. Fixes test suite hang.
11386         Code rearrangement also lets us lose some memset and only iterate
11387         over callbacks once.
11388
11389         * bus/driver.c (bus_driver_handle_message): sense of test for
11390         reply was backward
11391
11392 2003-04-16  Havoc Pennington  <hp@pobox.com>
11393
11394         * doc/dbus-specification.sgml: make spec say serials are unsigned
11395
11396         * dbus/dbus-message.h: change message serials to unsigned
11397
11398         * dbus/dbus-connection.c: adapt to message serials being unsigned
11399
11400 2003-04-15  Havoc Pennington  <hp@pobox.com>
11401
11402         * bus/bus.c: create and keep around a shared DBusUserDatabase
11403         object.
11404
11405         * bus/connection.c (bus_connection_get_groups): don't cache
11406         groups for user in the connection object, since user database
11407         object now does that.
11408
11409 2003-04-16  Havoc Pennington  <hp@redhat.com>
11410
11411         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11412         list of size counters
11413         (_dbus_message_loader_putback_message_link): put back a popped link
11414
11415         * dbus/dbus-connection.c
11416         (dbus_connection_set_max_live_messages_size): rename
11417         max_received_size
11418         (dbus_connection_get_outgoing_size): get size of outgoing
11419         queue
11420         (_dbus_connection_set_connection_counter): remove this cruft
11421
11422 2003-04-14  Havoc Pennington  <hp@redhat.com>
11423
11424         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11425         caching, but at some point we might want to be able to use a
11426         different database.
11427
11428         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11429         SHA1 conf file to test the sha1 auth mechanism, since the regular
11430         test always uses EXTERNAL when available.
11431
11432         * configure.in,
11433         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11434         add conf file that requires use of sha1 auth
11435
11436 2003-04-13  Havoc Pennington  <hp@pobox.com>
11437
11438         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11439         from Philip Blundell to send messages and monitor them.
11440
11441 2003-04-13  Havoc Pennington  <hp@pobox.com>
11442
11443         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11444         callbacks
11445
11446         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11447         users
11448
11449         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11450         fix to only recover unused bytes if we're already authenticated
11451         (_dbus_transport_get_is_authenticated): fix to still mark us
11452         authenticated if there are unused bytes.
11453
11454         * bus/dispatch.c: implement security policy checking
11455
11456         * bus/connection.c (bus_transaction_send_from_driver): new
11457
11458         * bus/bus.c (bus_context_check_security_policy): new
11459
11460         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11461         now we just set the DBusError and it gets converted to an error
11462         reply.
11463
11464         * bus/connection.c (allow_user_function): enable code using actual
11465         data from the config file
11466
11467         * bus/policy.c (list_allows_user): handle wildcard rules for
11468         user/group connection perms
11469
11470 2003-04-13  Havoc Pennington  <hp@pobox.com>
11471
11472         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11473
11474         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11475
11476         * bus/policy.c (bus_policy_append_mandatory_rule)
11477         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11478         (bus_policy_append_group_rule): new functions
11479
11480 2003-04-12  Havoc Pennington  <hp@pobox.com>
11481
11482         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11483
11484         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11485         the pid/gid/uid, just for paranoia.
11486
11487         * test/break-loader.c (randomly_do_n_things): find a byte
11488         containing a type code, and randomly change it to a different
11489         type code.
11490
11491 2003-04-12  Havoc Pennington  <hp@pobox.com>
11492
11493         * bus/policy.h: change BusPolicy to be the thing from the config
11494         file, and rename old BusPolicy to BusClientPolicy
11495
11496         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11497         match change in how policy works
11498
11499         * dbus/dbus-internals.h: mark assert_not_reached as
11500         __attribute((noreturn))__
11501
11502 2003-04-11  Havoc Pennington  <hp@redhat.com>
11503
11504         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11505         the broadcast service. Use boolean return for ServiceExists.
11506
11507 2003-04-11  Havoc Pennington  <hp@redhat.com>
11508
11509         * configure.in: add another directory to look for qt in.
11510
11511 2003-04-11  Havoc Pennington  <hp@redhat.com>
11512
11513         * AUTHORS: add Colin Walters
11514
11515 2003-04-11  Havoc Pennington  <hp@redhat.com>
11516
11517         * NEWS: update
11518
11519         * configure.in: 0.9
11520
11521 2003-04-11  Havoc Pennington  <hp@redhat.com>
11522
11523         * bus/messagebus.in: remove pid file when stopping the
11524         message bus, since the bus won't have privileges to remove it
11525         itself.
11526
11527 2003-04-11  Havoc Pennington  <hp@redhat.com>
11528
11529         * bus/bus.c (bus_context_new): move credentials change after
11530         creating pidfile
11531
11532 2003-04-11  Havoc Pennington  <hp@pobox.com>
11533
11534         * test/decode-gcov.c: add "below average functions" to the
11535         coverage report, and change how some of the code works.
11536
11537         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11538         not in the coverage stats.
11539
11540         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11541         couple places so running the test suite doesn't result in megaspam.
11542
11543 2003-04-11  Havoc Pennington  <hp@pobox.com>
11544
11545         * bus/dispatch.c (check_existent_service_activation): accept a no
11546         memory error in a place we didn't before
11547
11548         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11549         in case the first one failed," since the test suite is less
11550         broken now.
11551
11552 2003-04-10  Havoc Pennington  <hp@pobox.com>
11553
11554         * bus/dispatch.c (check_segfault_service_activation): add test
11555         for launching an executable that just crashes.
11556
11557         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11558         don't leave a million cores. We'll see how portable this is.
11559
11560 2003-04-10  Havoc Pennington  <hp@pobox.com>
11561
11562         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11563         the possible parent failures before we fork, so that we don't
11564         fail to create a babysitter after creating the child.
11565
11566         * bus/activation.c (bus_activation_activate_service): kill child
11567         if we don't successfully complete the activation.
11568
11569 2003-04-10  Havoc Pennington  <hp@redhat.com>
11570
11571         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11572         the connection if it's disconnected
11573
11574         * bus/activation.c (bus_activation_service_created): use new
11575         transaction features to roll back removal of pending activation if
11576         we don't successfully create the service after all. Don't remove
11577         pending activation if the function fails.
11578
11579         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11580         (_dbus_list_insert_after_link): new code to facilitate
11581         services.c fixes
11582
11583         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11584         new functionality, so we can preallocate the ability to insert
11585         into a hash table.
11586
11587         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11588         allowing us to put custom hooks in a transaction to be used for
11589         cancelling said transaction
11590
11591         * doc/dbus-specification.sgml: add some discussion of secondary
11592         service owners, and disallow zero-length service names
11593
11594         * bus/services.c (bus_registry_acquire_service): new function,
11595         splits out part of bus_driver_handle_acquire_service() and fixes
11596         a bug where we didn't remove the service doing the acquiring
11597         from the secondary queue if we failed to remove the current owner
11598         from the front of the queue.
11599
11600 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11601
11602         * doc/dbus-specification.sgml:
11603         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11604
11605 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11606
11607         * bus/.cvsignore:
11608         * glib/.cvsignore:
11609         * test/.cvsignore:
11610         Added files to cvsignore
11611
11612         * dbus/dbus-message.h:
11613         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11614         Make get_named() take two out argument and return a boolean.
11615         (dbus_message_iter_get_args_valist):
11616         Update usage of get_named().
11617         (dbus_message_iter_append_byte):
11618         Fix typo
11619         (dbus_message_iter_append_named)
11620         Fix typo
11621         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11622         More tests.
11623
11624 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11625
11626         * dbus/dbus-marshal.[ch]:
11627         Add array_type_pos argument to _dbus_marshal_validate_arg.
11628         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11629
11630         * dbus/dbus-message.[ch]:
11631         Multi-dimensional arrays have full type specification in the
11632         outermost array. Iter code re-arranged to handle this.
11633         Added some more iter tests.
11634
11635         * doc/dbus-specification.sgml:
11636         Add me to authors.
11637         Remove old FIXME.
11638         Update new array encoding description.
11639         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11640
11641         * test/data/invalid-messages/array-with-mixed-types.message:
11642         * test/data/valid-messages/array-of-array-of-uint32.message:
11643         Change to the new array format.
11644
11645         * test/data/invalid-messages/too-short-dict.message:
11646         Fix bug in test.
11647
11648         * test/data/valid-messages/recursive-types.message:
11649         Fix up and extend test.
11650
11651 2003-04-10  Havoc Pennington  <hp@pobox.com>
11652
11653         * bus/dispatch.c: lots of fixes
11654
11655         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11656         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11657         that was crack, broke the test service.
11658
11659         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11660         handling to avoid piling up errors if we get a failure on the
11661         first address.
11662
11663         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11664         pid in assertion failures.
11665
11666         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11667         to some fixed size of file descriptor array. Don't return TRUE
11668         anytime a timeout exists, that led to lots of busy loop silliness
11669         in the tests.
11670
11671 2003-04-09  Havoc Pennington  <hp@redhat.com>
11672
11673         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11674         I'd checked this in earlier but hadn't.
11675
11676 2003-04-09  Havoc Pennington  <hp@redhat.com>
11677
11678         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11679         the activation test (man this is getting old!)
11680
11681 2003-04-09  Havoc Pennington  <hp@redhat.com>
11682
11683         * test/test-utils.c: use dispatch status function to fix this up
11684
11685         * bus/connection.c (connection_watch_callback): don't dispatch
11686         from here
11687         (connection_timeout_callback): don't dispatch from here
11688         (bus_connections_setup_connection): set the dispatch status function
11689         (bus_connection_disconnected): unset it
11690
11691         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11692         used to add a connection to be dispatched
11693         (_dbus_loop_iterate): do the dispatching at the end of each
11694         iteration
11695
11696         * dbus/dbus-connection.c
11697         (dbus_connection_set_dispatch_status_function): new function
11698         allowing us to fix up main loop usage
11699         (_dbus_connection_last_unref): free all the various function
11700         user data
11701         (dbus_connection_dispatch): call the DispatchStatusFunction
11702         whenever this function returns
11703         (dbus_connection_handle_watch): call DispatchStatusFunction
11704         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11705         (reply_handler_timeout): call DispatchStatusFunction
11706         (dbus_connection_flush): call DispatchStatusFunction
11707
11708 2003-04-09  Havoc Pennington  <hp@redhat.com>
11709
11710         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11711         a memory leak
11712
11713         * bus/dispatch.c (check_service_activated): fix bug in test
11714
11715         * dbus/dbus-mainloop.c (check_timeout): fix this up
11716
11717         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11718         verbose output so we can sort out output from different processes,
11719         e.g. in the activation case.
11720
11721 2003-04-08  Colin Walters  <walters@gnu.org>
11722
11723         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11724         the pid file.
11725         (bus_context_new): Set it.
11726         (bus_context_unref): Use it to delete the pid file.
11727
11728 2003-04-08  Havoc Pennington  <hp@redhat.com>
11729
11730         * test/data/invalid-messages/array-with-mixed-types.message:
11731         regression test that fails for the moment
11732
11733         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11734         tests for convenience
11735
11736         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11737         array of nil, it broke things.
11738
11739         * test/data/invalid-messages/array-of-nil.message: regression test
11740
11741         * test/data/valid-messages/array-of-array-of-uint32.message:
11742         happened to write this so added it to suite
11743
11744 2003-04-08  Havoc Pennington  <hp@redhat.com>
11745
11746         * bus/driver.c (bus_driver_handle_acquire_service): init
11747         retval/reply before checking name
11748
11749         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11750         recursion depth argument
11751
11752         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11753         in the public struct for future extension
11754
11755         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11756         typo
11757
11758         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11759         message
11760
11761         * doc/dbus-specification.sgml: fix typo
11762
11763 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11764
11765         Implemented recursive types, named types and new-style iters
11766
11767         * bus/driver.c:
11768         * glib/test-thread-client.c: (thread_func):
11769         * glib/test-thread-server.c: (handle_test_message):
11770         * test/test-service.c: (handle_echo):
11771         Update to new api
11772
11773         * dbus/Makefile.am:
11774         * dbus/dbus-dict.c:
11775         * dbus/dbus-dict.h:
11776         * dbus/dbus.h
11777         Remove DBusDict
11778
11779         * dbus/dbus-internals.c: (_dbus_type_to_string):
11780         Update for new types.
11781
11782         * dbus/dbus-marshal.[ch]:
11783         Implement recursive types and the new marshalling format.
11784         Remove hardcoded dict marshalling.
11785         Marshal named types.
11786
11787         * dbus/dbus-message-builder.c:
11788         Add BYTE_ARRAY.
11789         Remove references to old types
11790
11791         * dbus/dbus-message.[ch]:
11792         New non-refcounted iter API that supports recursive iters.
11793         Use iters for appending, including support for recursive
11794         iters.
11795         Add byte and named type support.
11796         Update everything to new marshalling formats.
11797         Add tests for new API.
11798
11799         * dbus/dbus-protocol.h:
11800         Remove old array types.
11801         Add types: BYTE, ARRAY, DICT, NAMED
11802
11803         * dbus/dbus-string.c:
11804         * dbus/dbus-sysdeps.c:
11805         Make parse_double locale safe.
11806
11807         * dbus/dbus-test-main.c:
11808         Call setlocale.
11809
11810         * dbus/dbus-test.c:
11811         Kill dict test
11812
11813         * doc/dbus-specification.sgml:
11814         Update spec
11815
11816         * test/data/incomplete-messages/missing-body.message:
11817         * test/data/invalid-messages/bad-boolean.message:
11818         * test/data/invalid-messages/bad-boolean-array.message:
11819         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11820         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11821         * test/data/invalid-messages/too-short-dict.message:
11822         * test/data/valid-messages/dict-simple.message:
11823         * test/data/valid-messages/dict.message:
11824         * test/data/valid-messages/emptiness.message:
11825         * test/data/valid-messages/lots-of-arguments.message:
11826         * test/data/valid-messages/no-padding.message:
11827         * test/data/valid-messages/recursive-types.message:
11828         Add missing NAME fields
11829         Fix up dicts & arrays
11830
11831         * test/data/invalid-messages/dict-with-nil-value.message:
11832         Removed, this is not invalid anymore.
11833
11834         * test/data/valid-messages/recursive-types.message:
11835         Add new test for deeply recursive types.
11836
11837 2003-04-07  Havoc Pennington  <hp@pobox.com>
11838
11839         * bus/driver.c (bus_driver_handle_acquire_service): return an
11840         error if you try to acquire a service that starts with ':'
11841
11842 2003-04-07  Havoc Pennington  <hp@redhat.com>
11843
11844         * doc/dbus-specification.sgml: require that base service names
11845         start with ':' and that the base service is created/deleted
11846         as first and last things a connection does on the bus
11847
11848         * bus/dispatch.c (check_existent_service_activation): lots more
11849         work on the activation test; it doesn't fully pass yet...
11850
11851         * test/test-service.c (main): fix so we don't memleak the
11852         connection to the message bus
11853         (filter_func): accept a message asking us to exit
11854
11855 2003-04-06  Havoc Pennington  <hp@pobox.com>
11856
11857         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11858         from Colin Walters
11859
11860         * configure.in: fixes to Qt detection from Colin Walters
11861
11862         * doc/Makefile.am: Only remove generated docbook dirs if they
11863         exist, from Colin Walters
11864
11865         * dbus/dbus-bus.c: change how we set well-known connections to
11866         NULL, so that it works if a single connection is stored in
11867         two well-known array slots.
11868
11869         * test/Makefile.am: remove a lot of stuff that isn't immediately
11870         useful, it's in CVS history if we want it.
11871
11872         * test/test-service.c: use dbus-mainloop instead of that
11873         watch.[hc] crack
11874
11875 2003-04-06  Havoc Pennington  <hp@pobox.com>
11876
11877         * dbus/Makefile.am: split lists of sources into stuff that goes in
11878         the library, util functions that go in the lib and are also used
11879         elsewhere, and util functions that are used in tests/daemon but
11880         don't go in the lib.
11881
11882         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11883         here so it can be used in test binaries also
11884
11885 2003-04-06  Havoc Pennington  <hp@pobox.com>
11886
11887         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11888         here in the parent process, so we can return an error if it
11889         fails. Also, move some of the code into the child so the parent
11890         is less hosed if we fail midway through.
11891
11892         * bus/bus.c (bus_context_new): move pidfile detection further up
11893         in the function, before we start overwriting sockets and such.
11894
11895         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11896
11897         * configure.in: add --with-system-pid-file and --with-system-socket
11898
11899 2003-04-06  Colin Walters  <walters@verbum.org>
11900
11901         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11902
11903         * bus/system.conf.in: Declare a pidfile.
11904
11905         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11906         create one (if appropriate).
11907
11908         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11909         (struct BusConfigParser) [pidfile]: New.
11910         (element_type_to_name, merge_included, start_busconfig_child)
11911         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11912         (bus_config_parser_unref): Free it.
11913         (bus_config_parser_get_pidfile): New function.
11914
11915         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11916
11917         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11918
11919         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11920
11921         * dbus/dbus-sysdeps.h: Prototype it.
11922
11923 2003-04-06  Havoc Pennington  <hp@pobox.com>
11924
11925         * bus/bus.c (bus_context_new): print the address in here, rather
11926         than in main(), because we need to do it before forking the daemon
11927
11928         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11929         on the service nonexistent error
11930
11931         * bus/driver.c (bus_driver_handle_acquire_service): set the
11932         sender on the AcquireService reply
11933
11934         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11935         server also listen on a UNIX socket so services can connect to it.
11936
11937 2003-04-06  Havoc Pennington  <hp@pobox.com>
11938
11939         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11940         so it detects deadlocks and also we actually init threads when
11941         debugging.
11942
11943 2003-04-06  Havoc Pennington  <hp@pobox.com>
11944
11945         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11946         save the domain socket name, and unlink it when we disconnect the
11947         server. Means that at least when we exit normally, we won't leave
11948         a bunch of junk in /tmp
11949
11950         * dbus/dbus-transport-unix.c
11951         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11952         memory management). (I was making a real change here but then
11953         didn't)
11954
11955 2003-04-06  Havoc Pennington  <hp@pobox.com>
11956
11957         * bus/bus.c (bus_context_new): fix wrong handling of
11958         server_data_slot_unref() in the error case.
11959
11960         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11961         "(condition) != 0" to _dbus_real_assert so that
11962         "_dbus_assert (pointer)" doesn't cause a warning
11963
11964         * bus/main.c (main): accept --print-address option to print out
11965         the message bus address
11966
11967         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11968
11969         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11970         "tmpdir" option to unix: address on client side
11971
11972         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11973         to unix: address
11974
11975         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11976         we can use to create sockets in the test suite.
11977
11978         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11979         cleanly. To be used for testing.
11980
11981         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11982
11983         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11984
11985         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11986         handle trying to call this when there's no servers active
11987
11988 2003-04-05  Havoc Pennington  <hp@pobox.com>
11989
11990         * NEWS: update
11991
11992         * configure.in: 0.8
11993
11994 2003-04-05  Havoc Pennington  <hp@pobox.com>
11995
11996         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11997         crash on startup. Need to get "try starting the daemon"
11998         in the test suite I guess. ;-)
11999
12000         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
12001         tracked the number of open connections; it's better done in
12002         application-specific code as you want it to span all servers etc.
12003
12004 2003-04-05  Havoc Pennington  <hp@pobox.com>
12005
12006         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12007         patch from Colin Walters
12008
12009 2003-04-05  Havoc Pennington  <hp@pobox.com>
12010
12011         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12012         reality; in fact multiple mechanisms are allowed.
12013
12014         * dbus/dbus-internals.c (_dbus_real_assert)
12015         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12016         _dbus_assert_not_reached() into functions, so that they don't show
12017         up in basic block counts for test coverage, and don't use up as
12018         much disk space. Does mean slower execution speed though, so
12019         assumes --disable-asserts is the normal production case.
12020
12021 2003-04-05  Havoc Pennington  <hp@pobox.com>
12022
12023         * test/Makefile.am (dist-hook): also dist *.in files
12024
12025         * NEWS: update
12026
12027         * configure.in: 0.7
12028
12029 2003-04-05  Havoc Pennington  <hp@pobox.com>
12030
12031         * dbus/dbus-string.c: docs warning
12032
12033         * dbus/dbus-spawn.c: missing docs
12034
12035         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12036
12037 2003-04-05  Havoc Pennington  <hp@pobox.com>
12038
12039         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12040         magic from GLib
12041
12042         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12043         to -1 once we've reaped the babysitter
12044         (_dbus_babysitter_handle_watch): do as much work as we can, not
12045         just one go of it
12046
12047         * bus/activation.c: add code using DBusBabysitter so that we
12048         handle it when a service fails to start up properly.
12049         (bus_activation_service_created): don't remove the activation
12050         entries as we go, just let them get removed when we free the pending
12051         activation. Unref reply messages after sending them.
12052
12053 2003-04-05  Havoc Pennington  <hp@pobox.com>
12054
12055         * test/decode-gcov.c (main): print per-directory stats in the report
12056
12057         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12058
12059 2003-04-05  Havoc Pennington  <hp@pobox.com>
12060
12061         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12062
12063         * test/decode-gcov.c: hack up a little program to suck data
12064         out of gcov files. Yes this is sort of silly.
12065
12066         * configure.in: define something in config.h and do an
12067         AM_CONDITIONAL when gcov is enabled
12068
12069 2003-04-04  Havoc Pennington  <hp@redhat.com>
12070
12071         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12072         return a "babysitter" object that is used to monitor the status of
12073         the spawned process and reap it when required.
12074
12075         * test/test-segfault.c, test/test-exit.c,
12076         test/test-sleep-forever.c: binaries that do various lame things,
12077         used in the test suite.
12078
12079         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12080
12081 2003-04-03  Havoc Pennington  <hp@pobox.com>
12082
12083         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12084         in preparation for modifying it, dbus-sysdeps is getting
12085         a bit unmanageable.
12086
12087 2003-04-03  Havoc Pennington  <hp@redhat.com>
12088
12089         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12090         have multiple ones
12091
12092         * bus/*.[hc]: adapt to mainloop change
12093
12094 2003-04-03  Havoc Pennington  <hp@redhat.com>
12095
12096         * bus/activation.c (load_directory): fix up memleaks
12097         (bus_activation_entry_free): free the entry
12098
12099         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12100         we get one from the message bus; fix memleaks.
12101
12102         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12103
12104 2003-04-03  Havoc Pennington  <hp@pobox.com>
12105
12106         * bus/config-parser.c (bus_config_parser_unref): free
12107         list of mechanisms, bug discovered by test suite enhancements
12108         (putting system.conf and session.conf into suite)
12109
12110         * test/Makefile.am, test/test-service.c: add placeholder for a
12111         test service that we'll activate as part of test suite. Doesn't
12112         do anything yet.
12113
12114         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12115         setting NULL value, and use system malloc not dbus_malloc()
12116         when we have unavoidable memleakage.
12117
12118         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12119         didn't work, and support DBUS_BUS_ACTIVATION.
12120
12121         * bus/activation.c (child_setup): pass our well-known bus type to
12122         the child
12123
12124         * bus/config-parser.c: support <type> to specify well-known type
12125
12126         * doc/dbus-specification.sgml: document the env variables to
12127         locate well-known buses and find service activator
12128
12129 2003-04-02  Havoc Pennington  <hp@redhat.com>
12130
12131         * test/Makefile.am (all-local): add a rule to copy tests to
12132         builddir, so we can have generated tests. Use this to remove the
12133         silly hack for testing system.conf and session.conf. Will use this
12134         shortly to generate .service files pointing to test binaries.
12135
12136 2003-04-02  Havoc Pennington  <hp@redhat.com>
12137
12138         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12139         current alloc and needed new length, not max of the doubled
12140         allocation and needed new length. Also, when building tests,
12141         don't do the double-allocation stuff, just realloc every time.
12142
12143 2003-04-02  Havoc Pennington  <hp@redhat.com>
12144
12145         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12146         in error messages
12147         (_dbus_string_get_dirname): new
12148         (_dbus_sysdeps_test): new
12149         (_dbus_directory_open): include dirnames in error messages
12150
12151         * bus/config-parser.c: interpret <include> and <includedir> and
12152         <servicedir> relative to config file location if the given
12153         filename is not absolute.
12154
12155         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12156
12157 2003-04-02  Havoc Pennington  <hp@redhat.com>
12158
12159         * bus/connection.c (bus_transaction_send_error_reply): set sender
12160         service for the error, and unref the reply on success
12161
12162         * bus/activation.c: convert to use BusTransaction so OOM can be
12163         handled correctly
12164         (bus_activation_service_created): set sender of the message
12165
12166 2003-04-01  Havoc Pennington  <hp@redhat.com>
12167
12168         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12169         <includedir> (at least mostly)
12170
12171         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12172         first, then the user ID
12173
12174 2003-04-01  Havoc Pennington  <hp@pobox.com>
12175
12176         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12177         function
12178
12179         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12180
12181         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12182
12183         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12184         socket 0777, and unlink any existing socket.
12185
12186         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12187         the configuration file so specifies; set up auth mechanism
12188         restrictions
12189
12190         * bus/config-parser.c (bus_config_parser_content): add support
12191         for <fork> option and fill in code for <auth>
12192
12193         * bus/system.conf.in: add <fork/> to default configuration,
12194         and limit auth mechanisms to EXTERNAL
12195
12196         * doc/config-file.txt (Elements): add <fork>
12197
12198         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12199         (_dbus_change_identity): new function
12200
12201 2003-03-31  Havoc Pennington  <hp@redhat.com>
12202
12203         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12204         (_dbus_listen_unix_socket): fix off-by-one error in null
12205         termination spotted by Nalin
12206
12207 2003-03-31  Havoc Pennington  <hp@redhat.com>
12208
12209         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12210         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12211         having a real home directory available.
12212
12213 2003-03-31  Havoc Pennington  <hp@redhat.com>
12214
12215         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12216
12217         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12218
12219         * configure.in: add support for specifying a style of init script
12220         to install
12221
12222 2003-03-31  Havoc Pennington  <hp@redhat.com>
12223
12224         Fix some annoying DBusString API and fix all affected code.
12225
12226         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12227         max_length argument
12228         (_dbus_string_get_data): change to return string instead of using
12229         an out param
12230         (_dbus_string_get_const_data): ditto
12231         (_dbus_string_get_data_len): ditto
12232         (_dbus_string_get_const_data_len): ditto
12233
12234 2003-03-31  Havoc Pennington  <hp@redhat.com>
12235
12236         * bus/main.c (main): fix up the command line arguments to be nicer
12237
12238 2003-03-31  Havoc Pennington  <hp@redhat.com>
12239
12240         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12241         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12242         final location that lands in the config file
12243
12244         * bus/config-loader-expat.c (bus_config_load): fix type of
12245         XML_Parser variable
12246
12247         * doc/TODO: remove TODO item for dbus_bus_get()
12248
12249         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12250
12251 2003-03-31  Havoc Pennington  <hp@pobox.com>
12252
12253         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12254         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12255         argument since they are always client side
12256
12257         * dbus/dbus-server.c (dbus_server_get_address): new function
12258
12259         * bus/main.c (main): take the configuration file as an argument.
12260
12261         * test/data/valid-config-files/debug-allow-all.conf: new file to
12262         use with dispatch.c tests for example
12263
12264         * bus/test-main.c (main): require test data dir
12265
12266         * bus/bus.c (bus_context_new): change this to take a
12267         configuration file name as argument
12268
12269         * doc/config-file.txt (Elements): add <servicedir>
12270
12271         * bus/system.conf, bus/session.conf: new files
12272
12273         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12274         well-known socket if none set
12275
12276         * configure.in: create system.conf and session.conf
12277
12278 2003-03-30  Havoc Pennington  <hp@pobox.com>
12279
12280         * bus/config-parser.c: hacking
12281
12282         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12283         to shut down, since it could cause weirdness with the DBusList
12284         lock
12285
12286         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12287         link-oriented stack routines
12288         (alloc_link): free the mempool if the first alloc from it fails
12289
12290         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12291
12292         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12293         from GLib
12294         (_dbus_string_skip_white): new
12295
12296         * doc/config-file.txt (Elements): add <includedir>
12297
12298 2003-03-28  Havoc Pennington  <hp@pobox.com>
12299
12300         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12301         (_dbus_string_copy_data): new functions
12302
12303 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12304
12305         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12306         * dbus/dbus-bus.h:
12307         Add dbus_bus_get.
12308
12309         * dbus/dbus-memory.c:
12310         Fix a doc comment.
12311
12312 2003-03-28  Havoc Pennington  <hp@pobox.com>
12313
12314         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12315         I think it may have just been superstition. Not sure.
12316
12317         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12318         failures that were not being handled.
12319
12320         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12321
12322         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12323         row that will fail on out-of-memory.
12324
12325         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12326         function for testing out-of-memory handling.
12327
12328         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12329         allocation functions, they do map exactly to the expat ones.
12330
12331 2003-03-27  Havoc Pennington  <hp@redhat.com>
12332
12333         * bus/config-loader-libxml.c (bus_config_load): add another error
12334         check
12335
12336 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12337
12338         * doc/TODO:
12339         Add note about automatic service activation.
12340
12341         * doc/dbus-specification.sgml:
12342         Rename the specification and clarify a few things.
12343
12344 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12345
12346         * Doxyfile.in:
12347         * dbus/dbus-address.c:
12348         * dbus/dbus-dict.c:
12349         * dbus/dbus-marshal.c:
12350         * dbus/dbus-server-debug-pipe.c:
12351         * dbus/dbus-transport-unix.c:
12352         Fix documentation warnings.
12353
12354 2003-03-26  Havoc Pennington  <hp@pobox.com>
12355
12356         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12357         after every test so it's quick and easy to see which leaked, and
12358         so we test multiple dbus_shutdown() calls
12359
12360         * configure.in: change configure.in XML stuff to also support
12361         expat
12362
12363         * config-loader-libxml.c: some hacking
12364
12365         * config-loader-expat.c: some hacking
12366
12367         * config-parser.c: some hacking, plus tests
12368
12369 2003-03-25  Havoc Pennington  <hp@redhat.com>
12370
12371         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12372
12373         * configure.in: add --with-xml option to specify XML library,
12374         right now only libxml is supported.
12375
12376         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12377         nonworking code between home and work, still just stubs
12378
12379 2003-03-24  Havoc Pennington  <hp@redhat.com>
12380
12381         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12382         file
12383
12384         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12385         NULL argument for "message" if the error is a well-known one,
12386         fill in a generic message in this case.
12387
12388         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12389         favor of DBusError
12390
12391         * bus/test.c (bus_test_flush_bus): add
12392
12393         * bus/policy.c (bus_policy_test): test code stub
12394
12395 2003-03-24  Havoc Pennington  <hp@pobox.com>
12396
12397         * bus/connection.c (bus_connections_setup_connection): set up
12398         the "can this user connect" function, but it always returns
12399         TRUE until we have a config file parser so we can have a config
12400         file that allows connections.
12401
12402 2003-03-23  Havoc Pennington  <hp@pobox.com>
12403
12404         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12405         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12406         the mutex, so we can check for proper memory management
12407         and OOM handling.
12408
12409         * dbus/dbus-dataslot.c: remove the mutex from
12410         DBusDataSlotAllocator and lock it manually when using it,
12411         to simplify fitting it into the global slots framework.
12412
12413         * dbus/dbus-threads.c (init_static_locks): rework how we're
12414         handling global locks so they are easily shut down.
12415
12416         * bus/policy.c (bus_policy_append_rule): fix
12417
12418         * bus/test-main.c (main): check for memleaks
12419
12420         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12421         test suite check for memleaks
12422
12423         * dbus/dbus-memory.c: add support in test mode for tracking
12424         number of outstanding blocks
12425
12426 2003-03-23  Havoc Pennington  <hp@pobox.com>
12427
12428         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12429         policies code
12430
12431         * dbus/dbus-hash.h: add ULONG hash keys
12432
12433         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12434         (_dbus_get_group_id): new function
12435
12436 2003-03-20  Havoc Pennington  <hp@redhat.com>
12437
12438         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12439         new function
12440         (dbus_connection_get_unix_user): new function
12441
12442 2003-03-20  Havoc Pennington  <hp@pobox.com>
12443
12444         * bus/connection.c (bus_connection_send_oom_error): assert that
12445         message has a sender
12446         (connection_execute_transaction): ditto
12447         (bus_connection_preallocate_oom_error): fix to set the sender, and
12448         set recipient to the destination service, not the bus driver
12449
12450         * bus/policy.c: hacking
12451
12452         * dbus/dbus-message.c (dbus_message_service_is): new function
12453         (dbus_message_sender_is): new
12454
12455 2003-03-19  Havoc Pennington  <hp@redhat.com>
12456
12457         * bus/policy.c: start sketching code for policy restrictions on
12458         what connections can do.
12459
12460 2003-03-18  Havoc Pennington  <hp@redhat.com>
12461
12462         * doc/TODO: some notes on high-level todo items. Little nitpick
12463         stuff is all in @todo, so no need to add it here.
12464
12465         * doc/config-file.txt: some notes on how config file might look
12466
12467 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12468
12469         * configure.in: 0.6
12470
12471         * NEWS: Update.
12472
12473 2003-03-17  Havoc Pennington  <hp@redhat.com>
12474
12475         * dbus/dbus-internals.h: add gcc attributes so that
12476         our printf-style functions warn on bad arguments to
12477         format
12478
12479         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12480         format bug
12481
12482         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12483         printf format bug
12484
12485 2003-03-17  Havoc Pennington  <hp@redhat.com>
12486
12487         * bus/test-main.c (main): make it print something as it runs
12488         so make check doesn't look stuck
12489
12490         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12491         from CVS, now obsolete
12492
12493 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12494
12495         * bus/dispatch.c: (bus_dispatch):
12496         Refetch the service name since it may have been reallocated
12497         when dbus_message_set_sender was called.
12498
12499         * dbus/dbus-sysdeps.c: (_dbus_accept):
12500         Add address and address length variables and use them to stop
12501         valgrind from complaining.
12502
12503 2003-03-17  Havoc Pennington  <hp@pobox.com>
12504
12505         All tests pass, no memleaks, no valgrind complaints.
12506
12507         * bus/test.c: refcount handler_slot
12508
12509         * bus/connection.c (bus_connections_new): refcount
12510         connection_data_slot
12511
12512         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12513         bytes so that auth scripts pass.
12514
12515         * bus/dispatch.c: init message_handler_slot so it gets allocated
12516         properly
12517
12518         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12519
12520         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12521         dealloc server_pipe_hash when no longer used for benefit of
12522         leak checking
12523
12524         * dbus/dbus-auth.c (process_command): memleak fix
12525
12526         * bus/dispatch.c (check_hello_message): memleak fix
12527
12528 2003-03-16  Havoc Pennington  <hp@pobox.com>
12529
12530         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12531
12532 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12533
12534         * bus/activation.c (bus_activation_activate_service): Append
12535         the pending activation entry to the list of pending activations.
12536
12537 2003-03-16  Havoc Pennington  <hp@pobox.com>
12538
12539         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12540         connections
12541
12542         * dbus/dbus-address.c (create_entry): fix OOM handling when
12543         failing to alloc entry->method
12544
12545 2003-03-16  Havoc Pennington  <hp@pobox.com>
12546
12547         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12548         the watch
12549
12550         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12551         add some missing dbus_set_result
12552
12553         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12554         alloc the DBusMessageHandler
12555
12556         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12557         the transport here, since we call this from the finalizer; it
12558         resulted in a double-finalize.
12559
12560         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12561         where we tried to use transport->connection that was NULL,
12562         happened when transport was disconnected early on due to OOM
12563
12564         * bus/*.c: adapt to handle OOM for watches/timeouts
12565
12566         * dbus/dbus-transport-unix.c: port to handle OOM during
12567         watch handling
12568
12569         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12570         reference to unused bytes instead of a copy
12571
12572         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12573         out of memory
12574
12575         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12576         FALSE on OOM
12577
12578         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12579         of memory
12580
12581 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12582
12583         * doc/dbus-specification.sgml:
12584         Document reply message for ActivateService.
12585
12586 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12587
12588         * bus/activation.c: (bus_pending_activation_entry_free),
12589         (bus_pending_activation_free), (bus_activation_new),
12590         (bus_activation_unref), (bus_activation_service_created),
12591         (bus_activation_activate_service):
12592         * bus/activation.h:
12593         * bus/bus.c: (bus_context_new):
12594         * bus/desktop-file.c: (new_section):
12595         * bus/driver.c: (bus_driver_send_service_deleted),
12596         (bus_driver_handle_activate_service):
12597         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12598         * bus/services.h:
12599         * dbus/dbus-connection.c:
12600         (dbus_connection_send_with_reply_and_block):
12601         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12602         * dbus/dbus-protocol.h:
12603         Make activation work better. Now pending activations will be queued
12604         and the daemon won't try to activate services that are already registered.
12605
12606 2003-03-16  Havoc Pennington  <hp@pobox.com>
12607
12608         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12609         connection data
12610
12611         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12612         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12613
12614 2003-03-16  Havoc Pennington  <hp@pobox.com>
12615
12616         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12617         this. always run the test suite before commit...
12618
12619         * bus/*: adapt to DBusConnection API changes
12620
12621         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12622         requires renaming stuff to avoid dbus_connection_dispatch name
12623         conflict.
12624
12625         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12626         function
12627
12628         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12629         separate from _dbus_message_loader_return_buffer()
12630
12631         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12632         this, because it's now always broken to use; the number of
12633         messages in queue vs. the number still buffered by the message
12634         loader is undefined/meaningless. Should use
12635         dbus_connection_get_dispatch_state().
12636         (dbus_connection_dispatch): rename from
12637         dbus_connection_dispatch_message
12638
12639 2003-03-16  Havoc Pennington  <hp@pobox.com>
12640
12641         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12642         implementation
12643
12644 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12645
12646         * dbus/dbus-connection.c:
12647         (dbus_connection_send_with_reply_and_block):
12648         Decrease connection->n_incoming when removing an entry
12649         from the list.
12650         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12651         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12652         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12653         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12654         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12655         (dbus_dict_get_byte_array):
12656         Handle NULL arrays and strings. Also add support for byte arrays.
12657
12658         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12659         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12660         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12661         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12662         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12663         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12664         * dbus/dbus-marshal.h:
12665         Add support for marshalling and demarshalling empty arrays and strings.
12666
12667         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12668         (dbus_message_append_string_array),
12669         (dbus_message_iter_get_boolean),
12670         (dbus_message_iter_get_boolean_array),
12671         (dbus_message_iter_get_int32_array),
12672         (dbus_message_iter_get_uint32_array),
12673         (dbus_message_iter_get_double_array),
12674         (dbus_message_iter_get_byte_array),
12675         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12676         (check_message_handling):
12677         Add support for getting empty arrays and dicts.
12678
12679         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12680         Don't do any validation at all for now, that's better than just checking
12681         for ASCII.
12682
12683         * test/data/valid-messages/emptiness.message:
12684         New test message with lots of empty arrays.
12685
12686 2003-03-16  Havoc Pennington  <hp@pobox.com>
12687
12688         * dbus/dbus-connection.c
12689         (_dbus_connection_queue_received_message_link): new function that
12690         can't fail due to OOM
12691
12692         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12693         new function pops a message together with a list link
12694         containing it.
12695
12696         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12697         message queuing functions to avoid needing to alloc memory
12698
12699 2003-03-16  Havoc Pennington  <hp@pobox.com>
12700
12701         Oops - test code was only testing failure of around 30 of the
12702         mallocs in the test path, but it turns out there are 500+
12703         mallocs. I believe this was due to misguided linking setup such
12704         that there was one copy of dbus_malloc etc. in the daemon and one
12705         in the shared lib, and only daemon mallocs were tested. In any
12706         case, the test case now tests all 500+ mallocs, and doesn't pass
12707         yet, though there are lots of fixes in this patch.
12708
12709         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12710         this so that it doesn't need to allocate memory, since it
12711         has no way of indicating failure due to OOM (and would be
12712         annoying if it did).
12713
12714         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12715
12716         * bus/Makefile.am: rearrange to create two self-contained
12717         libraries, to avoid having libraries with overlapping symbols.
12718         that was resulting in weirdness, e.g. I'm pretty sure there
12719         were two copies of global static variables.
12720
12721         * dbus/dbus-internals.c: move the malloc debug stuff to
12722         dbus-memory.c
12723
12724         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12725         empty.
12726
12727         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12728
12729         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12730         on failure.
12731
12732         * bus/dispatch.c (bus_dispatch_add_connection): free
12733         message_handler_slot when no longer using it, so
12734         memory leak checkers are happy for the test suite.
12735
12736         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12737
12738         * bus/bus.c (new_connection_callback): disconnect in here if
12739         bus_connections_setup_connection fails.
12740
12741         * bus/connection.c (bus_connections_unref): fix to free the
12742         connections
12743         (bus_connections_setup_connection): if this fails, don't
12744         disconnect the connection, just be sure there are no side
12745         effects.
12746
12747         * dbus/dbus-string.c (undo_alignment): unbreak this
12748
12749         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12750         leaking
12751         (_dbus_auth_new): fix the order in which we free strings
12752         on OOM failure
12753
12754         * bus/connection.c (bus_connection_disconnected): fix to
12755         not send ServiceDeleted multiple times in case of memory
12756         allocation failure
12757
12758         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12759         get the base service name
12760         (dbus_bus_register_client): don't return base service name,
12761         instead store it on the DBusConnection and have an accessor
12762         function for it.
12763         (dbus_bus_register_client): rename dbus_bus_register()
12764
12765         * bus/dispatch.c (check_hello_message): verify that other
12766         connections on the bus also got the correct results, not
12767         just the one sending hello
12768
12769 2003-03-15  Havoc Pennington  <hp@pobox.com>
12770
12771         Make it pass the Hello handling test including all OOM codepaths.
12772         Now to do other messages...
12773
12774         * bus/services.c (bus_service_remove_owner): fix crash when
12775         removing owner from an empty list of owners
12776         (bus_registry_ensure): don't leave service in the list of
12777         a connection's owned services if we fail to put the service
12778         in the hash table.
12779
12780         * bus/connection.c (bus_connection_preallocate_oom_error): set
12781         error flag on the OOM error.
12782
12783         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12784         handle _dbus_transport_set_connection failure
12785
12786         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12787         to create watches up front and simply enable/disable them as
12788         needed.
12789         (unix_connection_set): this can now fail on OOM
12790
12791         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12792         of enabling/disabling a watch or timeout.
12793
12794         * bus/loop.c (bus_loop_iterate): don't touch disabled
12795         watches/timeouts
12796
12797         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12798
12799 2003-03-15  Havoc Pennington  <hp@pobox.com>
12800
12801         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12802         write useful test code, after all that futzing around ;-)
12803
12804         Test does not yet pass because we can't handle OOM in
12805         _dbus_transport_messages_pending (basically,
12806         dbus_connection_preallocate_send() does not prealloc the write
12807         watch). To fix this, I think we need to add new stuff to
12808         set_watch_functions, namely a SetEnabled function so we can alloc
12809         the watch earlier, then enable it later.
12810
12811         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12812         dbus-memory.c to the convenience lib
12813
12814         * bus/test.c: rename some static functions to keep them clearly
12815         distinct from stuff in connection.c. Handle client disconnection.
12816
12817 2003-03-14  Havoc Pennington  <hp@pobox.com>
12818
12819         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12820         transport, tests more of the real codepath. Set up clients
12821         with bus_setup_debug_client.
12822
12823         * bus/test.c (bus_setup_debug_client): function to set up debug
12824         "clients" on the main loop
12825
12826         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12827         support
12828
12829         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12830         server type
12831
12832         * dbus/dbus-server-debug.c: support a debug server based on pipes
12833
12834         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12835         (_dbus_close): new function
12836
12837         * configure.in: check for socketpair
12838
12839 2003-03-14  Havoc Pennington  <hp@redhat.com>
12840
12841         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12842         cheesy hack
12843
12844         * dbus/dbus-transport-debug.c: rework this a good bit to be
12845         less complicated. hopefully still works.
12846
12847         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12848         manually
12849
12850         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12851         after running it
12852
12853         * dbus/dbus-message.c (dbus_message_copy): rename from
12854         dbus_message_new_from_message, fix it up to copy
12855         all the message fields, add test case
12856
12857         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12858         not quite passing yet
12859
12860 2003-03-14  Havoc Pennington  <hp@pobox.com>
12861
12862         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12863         until no work remains" in test code. (the large diff here
12864         is just code movement, no actual changes)
12865
12866         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12867         1, no point waiting around for test code.
12868         (_dbus_server_debug_accept_transport): unref the timeout
12869         after adding it (right?)
12870
12871         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12872
12873 2003-03-13  Havoc Pennington  <hp@redhat.com>
12874
12875         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12876         out of memory
12877
12878         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12879         of memory
12880
12881         * dbus/dbus-connection.h: Make AddWatchFunction and
12882         AddTimeoutFunction return a bool so they can fail on out-of-memory
12883
12884         * bus/bus.c (bus_context_new): set up timeout handlers
12885
12886         * bus/connection.c (bus_connections_setup_connection): set up
12887         timeout handlers
12888
12889         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12890         can fail
12891
12892         * bus/bus.c (bus_context_new): adapt to changes
12893
12894         * bus/connection.c: adapt to changes
12895
12896         * test/watch.c: adapt to DBusWatch changes
12897
12898         * bus/dispatch.c (bus_dispatch_test): started adding this but
12899         didn't finish
12900
12901 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12902
12903         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12904
12905 2003-03-13  Havoc Pennington  <hp@pobox.com>
12906
12907         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12908         set up a test framework as for the library
12909
12910 2003-03-12  Havoc Pennington  <hp@pobox.com>
12911
12912         Throughout: purge global variables, introduce BusActivation,
12913         BusConnections, BusRegistry, etc. objects instead.
12914
12915         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12916         message bus object
12917
12918         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12919         going to redo this a bit differently I think
12920
12921 2003-03-12  Havoc Pennington  <hp@redhat.com>
12922
12923         Mega-patch that gets the message bus daemon initially handling
12924         out-of-memory. Work still needed. Also lots of random
12925         moving stuff to DBusError instead of ResultCode.
12926
12927         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12928
12929         * dbus/dbus-connection.c
12930         (dbus_connection_send_with_reply_and_block): use DBusError
12931
12932         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12933         DBusResultCode
12934
12935         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12936         code here, as the only failure possible is OOM.
12937
12938         * bus/connection.c (bus_connection_disconnect):
12939         rename bus_connection_disconnected as it's a notification only
12940
12941         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12942         "name" on get_args failure, should be done by get_args;
12943         don't disconnect client for bad args, just return an error.
12944         (bus_driver_handle_service_exists): ditto
12945
12946         * bus/services.c (bus_services_list): NULL-terminate returned array
12947
12948         * bus/driver.c (bus_driver_send_service_lost)
12949         (bus_driver_send_service_acquired): send messages from driver to a
12950         specific client to the client's unique name, not to the broadcast
12951         service.
12952
12953         * dbus/dbus-message.c (decode_header_data): reject messages that
12954         contain no name field
12955         (_dbus_message_get_client_serial): rename to
12956         dbus_message_get_serial and make public
12957         (_dbus_message_set_serial): rename from set_client_serial
12958         (_dbus_message_set_reply_serial): make public
12959         (_dbus_message_get_reply_serial): make public
12960
12961         * bus/connection.c (bus_connection_foreach): allow stopping
12962         iteration by returning FALSE from foreach function.
12963
12964         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12965         (dbus_connection_free_preallocated_send)
12966         (dbus_connection_preallocate_send): new API for sending a message
12967         without possibility of malloc failure.
12968         (dbus_connection_send_message): rename to just
12969         dbus_connection_send (and same for whole function family)
12970
12971         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12972
12973         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12974
12975         * bus/activation.c: handle/return errors
12976
12977         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12978
12979         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12980         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12981         (_dbus_result_from_errno): move to this file
12982
12983 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12984
12985         * dbus/dbus-marshal.c:
12986         (_dbus_marshal_set_string):
12987         Take a length argument so we can marshal the correct string
12988         length.
12989
12990         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12991         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12992         (_dbus_marshal_test):
12993         * dbus/dbus-marshal.h:
12994         Add support for marshalling and demarshalling dicts.
12995
12996         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12997         Add support for TYPE DICT.
12998
12999         * dbus/dbus-message.c: (set_string_field):
13000         Adjust header padding.
13001
13002         (dbus_message_append_args_valist), (dbus_message_append_dict),
13003         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
13004         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13005         (check_message_handling), (check_have_valid_message):
13006         * dbus/dbus-message.h:
13007         Add functions for setting and getting dicts.
13008
13009         * dbus/dbus-protocol.h:
13010         Add DBUS_TYPE_DICT.
13011
13012         * dbus/dbus.h:
13013         Add dbus-dict.h
13014
13015         * doc/dbus-specification.sgml:
13016         Add information about how dicts are marshalled.
13017
13018         * test/data/invalid-messages/dict-with-nil-value.message:
13019         * test/data/invalid-messages/too-short-dict.message:
13020         * test/data/valid-messages/dict-simple.message:
13021         * test/data/valid-messages/dict.message:
13022         Add sample messages containing dicts.
13023
13024 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13025
13026         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13027
13028 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13029
13030         * dbus/Makefile.am:
13031         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13032         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13033         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13034         (dbus_dict_set_double), (dbus_dict_set_string),
13035         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13036         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13037         (dbus_dict_set_string_array), (_dbus_dict_test):
13038         * dbus/dbus-dict.h:
13039         Fix according to comments from Havoc.
13040
13041 2003-03-06  Michael Meeks  <michael@server.home>
13042
13043         * configure.in: if we don't have kde-config, disable have_qt.
13044
13045 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13046
13047         * dbus/Makefile.am:
13048         Add dbus-dict.[ch]
13049
13050         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13051         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13052         (dbus_dict_remove), (dbus_dict_get_value_type),
13053         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13054         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13055         (dbus_dict_put_double), (dbus_dict_put_string),
13056         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13057         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13058         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13059         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13060         (dbus_dict_get_double), (dbus_dict_get_string),
13061         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13062         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13063         (dbus_dict_get_string_array), (_dbus_dict_test):
13064         * dbus/dbus-dict.h:
13065         Add DBusDict implementation
13066
13067         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13068         * dbus/dbus-test.h:
13069         Add _dbus_dict_test
13070
13071 2003-03-04  Havoc Pennington  <hp@pobox.com>
13072
13073         * test/data/auth/*: adapt to changes
13074
13075         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13076         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13077         userid
13078
13079         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13080         more stuff from being in a context name, to make the protocol
13081         simpler to deal with
13082
13083         * dbus/dbus-errors.c (dbus_error_has_name): new function
13084         (dbus_error_is_set): new function
13085
13086         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13087         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13088
13089         * dbus/dbus-connection.c (dbus_connection_flush): also read
13090         messages during a flush operation
13091
13092         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13093
13094 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13095
13096         * configure.in: Check for gethostbyname on Solaris.
13097
13098         * dbus/dbus-transport.c: (_dbus_transport_open):
13099         Remove duplicate "tcp" entry.
13100
13101         * doc/dbus-specification.sgml:
13102         Clarify some things.
13103
13104 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13105
13106         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13107         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13108         (_dbus_keyring_test):
13109         * dbus/dbus-md5.c: (_dbus_md5_compute):
13110         * dbus/dbus-sha.c: (_dbus_sha_compute):
13111         Plug memory leaks.
13112
13113 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13114
13115         * README: Add some things.
13116
13117 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13118
13119         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13120         after case DBUS_TYPE_BOOELAN.
13121
13122 2003-03-02  Havoc Pennington  <hp@pobox.com>
13123
13124         * test/break-loader.c (randomly_set_extreme_ints): add test that
13125         sets really huge and small integers
13126
13127         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13128         that length of boolean array fits in the string, and that
13129         string has room for boolean value in single-bool case.
13130
13131         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13132         optional value to "ALIGN" command which is what to fill the
13133         alignment with.
13134
13135         * test/data/valid-messages/no-padding.message: add regression
13136         test for the message padding problem
13137
13138 2003-03-02  Havoc Pennington  <hp@pobox.com>
13139
13140         * dbus/dbus-message.c (decode_header_data): fix to always init
13141         message_padding, from Benjamin Dauvergne
13142
13143 2003-03-02  Havoc Pennington  <hp@pobox.com>
13144
13145         * configure.in: 0.5
13146
13147         * NEWS: Update.
13148
13149 2003-03-01  Joe Shaw  <joe@assbarn.com>
13150
13151         * configure.in: Check for "struct cmsgcred" and try to access its
13152         members for BSD-like unices.
13153
13154         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13155         _dbus_read_credentials_unix_socket().
13156         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13157         read() for reading the credential byte off the unix socket.  Use
13158         struct cmsgcred on systems that support it.
13159
13160 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13161
13162         * glib/Makefile.am:
13163         * configure.in:
13164         Make gthreads-2.0 dependency optional. Don't build thread test if
13165         its not found.
13166
13167 2003-02-27  Havoc Pennington  <hp@pobox.com>
13168
13169         * dbus/dbus-connection.c
13170         (dbus_connection_send_message_with_reply_and_block): fix doh!
13171         doh! doh! bug that resulted in never removing a reply from the
13172         queue, no wonder we called get_reply_serial so much ;-)
13173
13174         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13175         and client serial instead of demarshaling them every time
13176
13177 2003-02-27  Havoc Pennington  <hp@pobox.com>
13178
13179         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13180         more inlined, using dbus-string-private.h, speeds things up
13181         substantially
13182
13183         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13184         when freeing the string
13185         (_dbus_string_steal_data): fix for align offset
13186         (undo_alignment): new function
13187
13188 2003-02-26  Havoc Pennington  <hp@redhat.com>
13189
13190         All kinds of audit fixes from Owen, plus initial attempt to
13191         handle unaligned memory returned from malloc.
13192
13193         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13194         leave room for align_offset and nul byte
13195         (fixup_alignment): function to track an align_offset and
13196         ensure real->str is aligned
13197         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13198         to allow a nul byte plus align offset
13199         (_dbus_string_lock): fix overflow issue
13200         (_dbus_string_init_const_len): add assertions on sanity of len,
13201         assign allocated to be ALLOCATION_PADDING larger than len
13202         (set_length): fixup the overflow handling
13203         (_dbus_string_get_data_len): fix overflow in assertion
13204         (open_gap): detect overflow in size of gap to be opened
13205         (_dbus_string_lengthen): add overflow check
13206         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13207         (_dbus_string_append): add overflow check
13208         (_dbus_string_append_unichar): overflow
13209         (_dbus_string_delete): fix overflow in assertion
13210         (_dbus_string_copy_len): overflow in assertion
13211         (_dbus_string_replace_len): overflows in assertions
13212         (_dbus_string_find): change to implement in terms of
13213         _dbus_string_find_to
13214         (_dbus_string_find_to): assorted fixage
13215         (_dbus_string_equal_c_str): assert c_str != NULL,
13216         fix logic so the function works
13217         (_dbus_string_ends_with_c_str): fix overflow thingy
13218         (_dbus_string_base64_encode): overflow fix
13219         (_dbus_string_validate_ascii): overflow
13220         (_dbus_string_validate_nul): overflow
13221
13222 2003-02-26  Havoc Pennington  <hp@redhat.com>
13223
13224         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13225
13226 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13227
13228         * configure.in:
13229         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13230
13231         * dbus/dbus-connection.c:
13232         * dbus/dbus-connection.h:
13233         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13234         Add dbus_connection_set_wakeup_main_function and use it when queueing
13235         incoming and outgoing messages.
13236
13237
13238         * dbus/dbus-dataslot.c:
13239         Threadsafe usage of DBusDataSlotAllocator
13240
13241         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13242         dbus_new can fail.
13243
13244         * dbus/dbus-server-unix.c:
13245         Add todo comment
13246
13247         * glib/dbus-gmain.c:
13248         Implement the new wakeup functions for glib.
13249
13250         * glib/Makefile.am:
13251         * glib/test-thread-client.c:
13252         * glib/test-thread-server.c:
13253         * glib/test-thread.h:
13254         Initial cut at some thread test code. Not really done yet.
13255
13256 2003-02-26  Havoc Pennington  <hp@pobox.com>
13257
13258         * dbus/dbus-connection.c
13259         (dbus_connection_send_message_with_reply_and_block): fix crash
13260         where we ref'd the outgoing message instead of the returned reply
13261
13262         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13263         at the end of this function, so if we didn't need to read for
13264         authentication, we reinstall it for receiving messages
13265
13266         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13267         a NULL sender for peer-to-peer case
13268
13269         * dbus/dbus-transport-unix.c (check_read_watch): handle
13270         !authenticated case correctly
13271
13272         * glib/dbus-gmain.c: add support for DBusServer
13273
13274         * dbus/dbus-server.c: add data slot support
13275
13276         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13277         return values and handle errors
13278
13279         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13280         DBusConnection
13281
13282         * Doxyfile.in (INPUT): add glib subdir
13283
13284         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13285         setup_with_g_main instead of hookup_with_g_main; write docs
13286
13287 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13288
13289         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13290         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13291         * dbus/dbus-message.c: (dbus_message_append_boolean),
13292         (dbus_message_append_boolean_array),
13293         (dbus_message_get_args_valist), (_dbus_message_test):
13294         * dbus/dbus-message.h:
13295         * doc/dbus-specification.sgml:
13296         Various fixes as pointed out by Havoc.
13297
13298         * test/data/invalid-messages/bad-boolean-array.message:
13299         * test/data/invalid-messages/bad-boolean.message:
13300         Add invalid boolean value test cases.
13301
13302 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13303
13304         * dbus/dbus-internals.c: (_dbus_type_to_string):
13305         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13306         (_dbus_marshal_validate_arg):
13307         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13308         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13309         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13310         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13311         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13312         (dbus_message_iter_get_double),
13313         (dbus_message_iter_get_boolean_array), (message_iter_test):
13314         * dbus/dbus-message.h:
13315         * dbus/dbus-protocol.h:
13316         * doc/dbus-specification.sgml:
13317         * test/data/valid-messages/lots-of-arguments.message:
13318         Add support for boolean and boolean array types.
13319
13320 2003-02-23  Havoc Pennington  <hp@pobox.com>
13321
13322         * dbus/dbus-keyring.c: finish most of this implementation and
13323         simple unit test
13324
13325         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13326         these barf if the error isn't cleared to NULL
13327
13328         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13329         (_dbus_create_directory): new function
13330
13331         * dbus/dbus-errors.c (dbus_set_error): fix warning
13332
13333         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13334         (_dbus_string_hex_decode): new function
13335         (test_hex_roundtrip): test code
13336
13337         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13338
13339         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13340
13341         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13342         the save-to-temp/rename trick to atomically write the new file
13343         (_dbus_string_parse_uint): new function
13344
13345 2003-02-22  Havoc Pennington  <hp@pobox.com>
13346
13347         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13348
13349 2003-02-22  Havoc Pennington  <hp@pobox.com>
13350
13351         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13352         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13353
13354         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13355
13356         * dbus/test/data/sha-1: add US government test suite for SHA-1
13357
13358 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13359
13360         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13361         Make string arrays NULL-terminated.
13362
13363         * dbus/dbus-memory.c: (dbus_free_string_array):
13364         * dbus/dbus-memory.h:
13365         New function for freeing NULL-terminated string arrays.
13366
13367         * dbus/dbus-message-builder.c: (append_quoted_string),
13368         (_dbus_message_data_load):
13369         Add support for array types.
13370
13371         * dbus/dbus-message.c: (check_message_handling):
13372         Add more types as test cases.
13373
13374         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13375         (_dbus_string_parse_double):
13376         Add the start offset to the end offset.
13377
13378         * test/data/valid-messages/lots-of-arguments.message:
13379         New test message with lots of arguments.
13380
13381 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13382
13383         * dbus/dbus-message.c: (dbus_message_append_nil),
13384         (dbus_message_append_int32), (dbus_message_append_uint32),
13385         (dbus_message_append_double), (dbus_message_append_string),
13386         (dbus_message_append_int32_array),
13387         (dbus_message_append_uint32_array),
13388         (dbus_message_append_double_array),
13389         (dbus_message_append_byte_array),
13390         (dbus_message_append_string_array):
13391         Fix all out-of-memory handling in these functions.
13392
13393 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13394
13395         * dbus/dbus-message.c: (dbus_message_append_nil):
13396         Fix a silly.
13397
13398 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13399
13400         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13401         (dbus_message_append_nil), (dbus_message_append_int32_array),
13402         (dbus_message_append_uint32_array),
13403         (dbus_message_append_double_array),
13404         (dbus_message_append_byte_array),
13405         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13406         (dbus_message_iter_get_int32_array),
13407         (dbus_message_iter_get_uint32_array),
13408         (dbus_message_iter_get_double_array),
13409         (dbus_message_iter_get_byte_array),
13410         (dbus_message_iter_get_string_array):
13411
13412         * dbus/dbus-message.h:
13413         Add functions for appending and getting arrays.
13414
13415 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13416
13417         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13418         element size at least 8 bytes, fixes mempool tests on
13419         64-bit machines.
13420
13421 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13422
13423         * dbus/dbus-transport-unix.c (unix_do_iteration):
13424         Unlock the connection mutex during a blocking select call.
13425         Add todo about how we need a way to wake up the select.
13426
13427         * dbus/dbus-connection-internal.h:
13428         * dbus/dbus-connection.c:
13429         Add _dbus_connection_lock and _dbus_connection_unlock.
13430
13431 2003-02-19  Havoc Pennington  <hp@pobox.com>
13432
13433         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13434         Doxyfile.in, not Doxyfile
13435
13436         * dbus/dbus-keyring.c: do some hacking on this
13437
13438         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13439
13440         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13441         dbus_error_init
13442         (dbus_set_error): remove dbus_error_init, check for message ==
13443         NULL *before* we sprintf into it, and add @todo about including
13444         system headers in this file
13445
13446         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13447
13448         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13449
13450         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13451         get various bits of user information based on either username
13452         or user ID
13453         (_dbus_homedir_from_username): new function
13454
13455 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13456
13457         * configure.in:
13458         Add check for nonposix getpwnam_r
13459
13460         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13461         Align the pool element size to a sizeof (void *) boundary.
13462
13463         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13464         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13465         General Solaris fixes.
13466
13467         * test/data/valid-messages/simplest-manual.message:
13468         Explicitly state that we want little-endian packing.
13469
13470 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13471
13472         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13473
13474         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13475         Added to create a transport connecting using a tcp/ip socket.
13476
13477         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13478         to a tcp socket at given host and port.
13479         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13480         hostname and port.
13481
13482         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13483
13484         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13485         Added to create a server listening on a TCP/IP socket.
13486
13487 2003-02-19  Havoc Pennington  <hp@pobox.com>
13488
13489         Throughout: mop up all the Doxygen warnings and undocumented
13490         stuff.
13491
13492         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13493         to search any paths.
13494
13495         * dbus/dbus-threads.c: move global mutex initializers to
13496         dbus-internals.h, multiple prototypes was confusing doxygen
13497         besides being kind of ugly
13498
13499         * Doxyfile (PREDEFINED): have Doxygen define
13500         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13501         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13502         (do not abuse the feature! it's for stuff like the autogenerated
13503         macros in dbus-md5.c, not just for things you don't feel like
13504         documenting...)
13505
13506 2003-02-18  Havoc Pennington  <hp@pobox.com>
13507
13508         * dbus/dbus-string.c (_dbus_string_zero): new function
13509
13510         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13511         wrap it in some dbus-friendly API
13512
13513         * dbus/dbus-types.h: add 16-bit types
13514
13515 2003-02-18  Joe Shaw  <joe@assbarn.com>
13516
13517         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13518         credentials from our currently running process.
13519         (get_word): Fix a buglet where we were copying the entire length
13520         instead of relative to our position.
13521
13522         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13523         keys on the stack... it's 640k of data.
13524
13525         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13526         read the credentials byte off the socket, even if we don't have
13527         SO_PEERCRED.
13528         (_dbus_poll): Implement poll() using select() for systems which
13529         don't have it.
13530
13531         * glib/test-dbus-glib.c (main): Print out an error if no
13532         parameters are given.
13533
13534         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13535         can fallback to a secondary auth mechanism if the first fails.
13536
13537 2003-02-18  Havoc Pennington  <hp@pobox.com>
13538
13539         * AUTHORS: add Alex
13540
13541 2003-02-17  Havoc Pennington  <hp@pobox.com>
13542
13543         * doc/dbus-specification.sgml: lots of cosmetic
13544         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13545         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13546         s/server/bus/ (except in authentication section). Add a section
13547         "Message Bus Message Routing"
13548
13549 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13550
13551         Release 0.4
13552
13553         * NEWS: Update
13554
13555 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13556
13557         * doc/dbus-specification.sgml:
13558         Specification updates.
13559
13560 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13561
13562         * bus/activation.c: (bus_activation_init), (child_setup),
13563         (bus_activation_activate_service):
13564         * bus/activation.h:
13565         * bus/main.c: (main):
13566         Set DBUS_ADDRESS environment variable.
13567
13568         * dbus/dbus-errors.c: (dbus_set_error):
13569         Don't use va_copy since that's a C99 feature.
13570
13571         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13572         (_dbus_spawn_async):
13573         * dbus/dbus-sysdeps.h:
13574         Add child_setup_func to _dbus_spawn_async.
13575
13576         * doc/dbus-specification.sgml:
13577         Update specification.
13578
13579         * test/spawn-test.c: (setup_func), (main):
13580         Fix test.
13581
13582 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13583
13584         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13585         Added todo.
13586
13587 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13588
13589         * doc/.cvsignore:
13590         * doc/Makefile.am:
13591         * doc/dbus-test-plan.sgml:
13592         Add test plan document.
13593
13594         * test/Makefile.am:
13595         Fix distcheck.
13596
13597 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13598
13599         * dbus/dbus-message.c: (decode_header_data),
13600         (_dbus_message_loader_return_buffer):
13601         Set the header padding amount when loading a message.
13602
13603 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13604
13605         * bus/dispatch.c: (send_one_message):
13606         Only send broadcast messages to registered connections.
13607
13608         * dbus/dbus-message.c: (dbus_message_name_is):
13609         * dbus/dbus-message.h:
13610         New convenience function.
13611
13612         * dbus/dbus-transport-debug.c: (do_reading):
13613         Only dispatch one message per run.
13614
13615         * test/Makefile.am:
13616         * test/bus-test.c: (new_connection_callback), (die),
13617         (test_hello_client1_handler), (test_hello_client2_handler),
13618         (test_hello_replies), (main):
13619
13620         * test/bus-test-loop.[ch]:
13621         Add these.
13622
13623 2003-02-16  Havoc Pennington  <hp@pobox.com>
13624
13625         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13626         backward conditional
13627
13628 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13629
13630         * dbus/dbus-connection.c:
13631         Implement sent_message_with_reply. (with_reply_and block is still
13632         busted).
13633         Made dispatch_message not lose message if OOM.
13634
13635         * dbus/dbus-errors.h:
13636         Add NoReply error (for reply timeouts).
13637
13638 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13639
13640         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13641         Actually free keys and values when destroying hashtable.
13642
13643 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13644
13645         * dbus/dbus-auth.c: (client_try_next_mechanism):
13646         Plug a leak.
13647
13648         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13649         Return TRUE if there's no thread implementation around.
13650
13651         * glib/dbus-gmain.c: (free_source),
13652         (dbus_connection_hookup_with_g_main):
13653         Make sure to remove the GSource when the connection is finalized.
13654
13655 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13656
13657         * bus/dispatch.c: (bus_dispatch_message_handler):
13658         * dbus/dbus-errors.h:
13659         Return an error if someone tries to send a message to a service
13660         that doesn't exist.
13661
13662 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13663
13664         * bus/activation.c: (load_directory), (bus_activation_init),
13665         (bus_activation_activate_service):
13666         * bus/activation.h:
13667         * bus/driver.c:
13668         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13669         More work on the activation handling.
13670
13671         * dbus/dbus-errors.h:
13672         Add some error messages
13673
13674         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13675         * dbus/dbus-message.h:
13676         New function that creates an error message.
13677
13678         * dbus/dbus-protocol.h:
13679         Add ACTIVATE_SERVER message.
13680
13681         * dbus/dbus-server-unix.c: (unix_handle_watch),
13682         (_dbus_server_new_for_domain_socket):
13683         Call _dbus_fd_set_close_on_exec.
13684
13685         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13686         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13687         (_dbus_fd_set_close_on_exec):
13688         * dbus/dbus-sysdeps.h:
13689         Add _dbus_fd_set_close_on exec function. Also add function that checks
13690         that all open fds are set to close-on-exec and warns otherwise.
13691
13692         * dbus/dbus-transport-unix.c:
13693         (_dbus_transport_new_for_domain_socket):
13694         Call _dbus_fd_set_close_on_exec.
13695
13696 2003-02-16  Havoc Pennington  <hp@pobox.com>
13697
13698         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13699         allow people to avoid setting SIGPIPE to SIG_IGN
13700         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13701         we've been asked not to
13702
13703 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13704
13705         * dbus/dbus-list.c: (_dbus_list_append_link),
13706         (_dbus_list_prepend_link):
13707         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13708         (dbus_realloc):
13709         Warning fixes.
13710
13711 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13712
13713         * bus/Makefile.am:
13714         * bus/activation.c: (bus_activation_entry_free),
13715         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13716         * bus/activation.h:
13717         * bus/main.c: (main):
13718         Add simple activation support, doesn't work yet though.
13719
13720 2003-02-15   Zack Rusin  <zack@kde.org>
13721
13722         * qt/dbus-qthread.cpp:  small casting fix
13723
13724 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13725
13726         * dbus/dbus-errors.c: (dbus_set_error):
13727         * dbus/dbus-errors.h:
13728         Add a few errors and make dbus_set_error void.
13729
13730         * dbus/dbus-sysdeps.c:
13731         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13732         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13733         * dbus/dbus-sysdeps.h:
13734         Add _dbus_spawn_async.
13735
13736         * test/spawn-test.c: (main):
13737         Test for _dbus_spawn_async.
13738
13739 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13740
13741         * dbus/dbus-internals.h:
13742         Fix build without tests.
13743
13744         * dbus/dbus-list.c: (alloc_link):
13745         Fix a segfault when a malloc fails.
13746
13747         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13748         (dbus_malloc0), (dbus_realloc):
13749         Add support for malloc debugging.
13750
13751 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13752
13753         * dbus/dbus-threads.c:
13754         * dbus/dbus-threads.h:
13755         Add condvars. Remove static mutext from API.
13756         Implement static mutexes by initializing them from threads_init.
13757
13758         * glib/dbus-gthread.c:
13759         * qt/dbus-qthread.cpp:
13760         Update with the thread api changes.
13761
13762
13763         * dbus/dbus-list.c:
13764         * dbus/dbus-list.h:
13765         Turn StaticMutex into normal mutex + init function.
13766         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13767         _dbus_list_append_link, _dbus_list_prepend_link
13768
13769
13770         * dbus/dbus-sysdeps.c:
13771         * dbus/dbus-sysdeps.h:
13772         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13773         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13774
13775         * dbus/dbus-protocol.h:
13776         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13777
13778         * dbus/dbus-message.c:
13779         Make ref/unref atomic.
13780         Fix some docs.
13781
13782         * dbus/dbus-connection-internal.h:
13783         * dbus/dbus-connection.c:
13784         * dbus/dbus-connection.h:
13785         Make threadsafe.
13786         Change _peek to _borrow,_return & _steal_borrowed.
13787         Change disconnect callback to event.
13788         Make dbus_connection_dispatch_messages reentrant.
13789
13790         * dbus/dbus-transport.c:
13791         Don't ref the connection on calls to the transport
13792         implementation.
13793
13794         * dbus/dbus-message-handler.c:
13795         Make threadsafe.
13796
13797         * glib/dbus-gmain.c:
13798         Don't use peek_message anymore
13799
13800         * test/Makefile.am:
13801         * test/debug-thread.c:
13802         * test/debug-thread.h:
13803         Simple thread implementation that asserts() on deadlocks in
13804         single-threaded code.
13805
13806         * test/bus-test.c:
13807         (main) Call debug_threads_init.
13808
13809         * test/watch.c:
13810         Use disconnect message instead of disconnect callback.
13811
13812         * bus/connection.c:
13813         * bus/connection.h:
13814         Don't call dbus_connection_set_disconnect_function. Instead export
13815         bus_connection_disconnect.
13816
13817         * bus/dispatch.c:
13818         Call bus_connection_disconnect when we get a disconnected message.
13819
13820 2003-02-15  Havoc Pennington  <hp@pobox.com>
13821
13822         * dbus/dbus-message.c (dbus_message_new): fool around with the
13823         docs
13824
13825 2003-02-14  Havoc Pennington  <hp@pobox.com>
13826
13827         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13828
13829         * dbus/dbus-memory.c: fail if the debug functions indicate we
13830         should
13831
13832         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13833         (_dbus_decrement_fail_alloc_counter): debug functions to
13834         simulate memory allocation failures
13835
13836 2003-02-14  Havoc Pennington  <hp@pobox.com>
13837
13838         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13839         to DBusError
13840
13841 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13842
13843         * bus/driver.c: (bus_driver_handle_hello):
13844         * bus/driver.h:
13845         * bus/services.c: (bus_service_lookup):
13846         Reorder message sending so we get a more sane order.
13847
13848         * test/bus-test.c: (message_handler):
13849         Fix tyop.
13850
13851 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13852
13853         * bus/driver.c: (bus_driver_send_service_deleted),
13854         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13855         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13856         (bus_driver_send_welcome_message),
13857         (bus_driver_handle_list_services),
13858         (bus_driver_handle_acquire_service),
13859         (bus_driver_handle_service_exists):
13860         * dbus/dbus-bus.c: (dbus_bus_register_client),
13861         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13862         * dbus/dbus-errors.c: (dbus_result_to_string):
13863         * dbus/dbus-errors.h:
13864         * dbus/dbus-message.c: (dbus_message_append_args),
13865         (dbus_message_append_args_valist), (dbus_message_get_args),
13866         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13867         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13868         (dbus_message_iter_get_byte_array),
13869         (dbus_message_iter_get_string_array), (message_iter_test),
13870         (check_message_handling), (_dbus_message_test):
13871         * dbus/dbus-message.h:
13872         * test/bus-test.c: (main):
13873         Change fields to arguments in messages, so that they won't be
13874         confused with header fields.
13875
13876         * glib/test-dbus-glib.c: (main):
13877         Remove append_fields from hello message.
13878
13879 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13880
13881         * dbus/dbus-errors.c:
13882         * dbus/dbus-message.c:
13883         * dbus/dbus-string.c:
13884         Documentation fixes.
13885
13886 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13887
13888         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13889         (remove_timeout):
13890         Implement support for timeouts in dbus-glib.
13891
13892 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13893
13894         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13895         * dbus/dbus-message.c: (process_test_subdir):
13896         * test/break-loader.c: (find_breaks_based_on):
13897         Plug some memory leaks.
13898
13899 2003-02-13  Richard Hult  <rhult@codefactory.se>
13900
13901         * bus/main.c: Fix build.
13902
13903         * dbus/dbus-errors.h:
13904         * dbus/dbus-errors.c: Fix copyright for Anders.
13905
13906 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13907
13908         * bus/Makefile.am:
13909         Add utils.[ch]
13910
13911         * bus/connection.c: (bus_connection_foreach):
13912         Fix a warning.
13913
13914         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13915         (unescape_string), (new_section), (parse_section_start),
13916         (parse_key_value), (report_error), (bus_desktop_file_load),
13917         (bus_desktop_file_get_string):
13918         * bus/desktop-file.h:
13919         Use DBusError for error reporting.
13920
13921         * bus/dispatch.c: (send_one_message),
13922         (bus_dispatch_message_handler):
13923         * bus/driver.c: (bus_driver_send_service_deleted),
13924         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13925         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13926         (bus_driver_send_welcome_message),
13927         (bus_driver_handle_list_services),
13928         (bus_driver_handle_acquire_service),
13929         (bus_driver_handle_service_exists):
13930         * bus/loop.c: (bus_loop_run):
13931         * bus/main.c:
13932         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13933
13934         * bus/utils.c: (bus_wait_for_memory):
13935         * bus/utils.h:
13936         New files with general utility functions.
13937
13938         * dbus/dbus-internals.h:
13939         Remove _DBUS_HANDLE_OOM.
13940
13941 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13942
13943         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13944         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13945         * dbus/dbus-errors.h:
13946         Add DBusError structure.
13947
13948 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13949
13950         * test/data/valid-messages/standard-acquire-service.message:
13951         * test/data/valid-messages/standard-hello.message:
13952         * test/data/valid-messages/standard-list-services.message:
13953         * test/data/valid-messages/standard-service-exists.message:
13954         Add some standard messages.
13955
13956 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13957
13958         * bus/driver.c: (bus_driver_send_welcome_message),
13959         (bus_driver_handle_list_services),
13960         (bus_driver_handle_acquire_service),
13961         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13962         Update for API changes in libdbus.
13963
13964         * dbus/dbus-message.c: (dbus_message_new_reply):
13965         * dbus/dbus-message.h:
13966         Remove the name argument. The spec states that replies shouldn't
13967         have a name.
13968
13969 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13970
13971         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13972         (report_error), (bus_desktop_file_load), (lookup_section),
13973         (lookup_line), (bus_desktop_file_get_raw),
13974         (bus_desktop_file_get_string):
13975         * bus/desktop-file.h:
13976         Some fixes, and new functions for getting a key value from a section.
13977
13978 2003-02-13  Havoc Pennington  <hp@pobox.com>
13979
13980         * test/data/auth/fail-after-n-attempts.auth-script: new test
13981
13982         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13983         reject the client.
13984
13985 2003-02-13  Havoc Pennington  <hp@pobox.com>
13986
13987         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13988         dbus_credentials_match were backward
13989
13990         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13991         NO_CREDENTIALS and ROOT_CREDENTIALS
13992
13993         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13994         into here. Never process more commands after we've reached an
13995         end state; store further data as unused bytes.
13996
13997         * test/data/auth/*: add more auth tests
13998
13999         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
14000         command to match exact string and EXPECT_UNUSED to match unused
14001         bytes
14002
14003         * test/Makefile.am (dist-hook): fix to dist all the test stuff
14004
14005 2003-02-12  Havoc Pennington  <hp@pobox.com>
14006
14007         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14008         \r off of popped lines
14009
14010         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14011         scripts
14012
14013         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14014         SEND, append \r\n
14015
14016 2003-02-12  Havoc Pennington  <hp@pobox.com>
14017
14018         * dbus/Makefile.am: remove break-loader from the build, since it
14019         moved.
14020
14021         * configure.in: add --enable-gcov to turn on coverage profiling
14022         flags and disable optimization
14023
14024 2003-02-10  Havoc Pennington  <hp@pobox.com>
14025
14026         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14027         initial cut at test framework for DBusAuth from laptop.
14028         Doesn't quite work yet but it compiles and I need to get
14029         it off the 266mhz laptop. ;-)
14030
14031         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14032         fix a memleak in error case
14033
14034 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14035
14036         * bus/Makefile.am:
14037         * bus/desktop-file.c:
14038         * bus/desktop-file.h:
14039         Add a desktop file parser.
14040
14041 2003-02-11  Zack Rusin  <zack@kde.org>
14042
14043         * qt/message.[h|cpp]: sample implementation
14044         of the KDE wrapper for DBusMessage
14045
14046 2003-02-09  Zack Rusin  <zack@kde.org>
14047
14048         * test/bus-test.c: make_it_compile
14049         * doc/dbus-specification.sgml: minimal semantic fix
14050
14051 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14052
14053         Release 0.3
14054
14055         * NEWS: Update
14056
14057 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14058
14059         * dbus/Makefile.am:
14060         * dbus/dbus-break-loader.c:
14061         * test/Makefile.am:
14062         * test/break-loader.c:
14063         Move dbus-break-loader to test/ and rename it to break-loader.
14064
14065 2003-02-02  Havoc Pennington  <hp@pobox.com>
14066
14067         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14068         for code to manage cookies in your home directory
14069
14070         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14071
14072         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14073         to authenticate, then disconnect the client.
14074
14075 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14076
14077         * dbus/dbus-message.c (dbus_message_append_fields):
14078         Correct docs.
14079
14080 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14081
14082         * doc/dbus-specification.sgml:
14083         Update address format section.
14084
14085 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14086
14087         * test/Makefile.am:
14088         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14089         (message_handler), (new_connection_callback), (loop_quit),
14090         (loop_run), (main):
14091         Add bus test.
14092
14093 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14094
14095         * bus/driver.c: (bus_driver_handle_service_exists):
14096         Simplify the code a bit.
14097
14098         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14099         Fix a silly.
14100
14101 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14102
14103         * bus/Makefile.am:
14104         Add libdbus-daemon.la and link to it.
14105
14106 2003-02-01  James Willcox  <jwillcox@gnome.org>
14107
14108         * bus/driver.c: (bus_driver_handle_own_service):
14109         Actually include the service reply code in the message.
14110
14111 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14112
14113         * bus/driver.c: (bus_driver_handle_service_exists):
14114         Don't unref the incoming message.
14115
14116 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14117
14118         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14119
14120 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14121
14122         * dbus/dbus-server.c: (dbus_server_listen):
14123         * dbus/dbus-transport.c: (_dbus_transport_open):
14124         ifdef out the calls to the debug transport and server.
14125
14126 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14127
14128         * dbus/dbus-watch.c (dbus_watch_get_flags):
14129         Add note in the docs that ERROR or HANGUP won't be returned
14130         and are assumed always on.
14131
14132         * glib/dbus-gmain.c (add_watch):
14133         Always add IO_ERR | IO_HUP
14134
14135         * dbus/dbus-message.h:
14136         Add semicolon after dbus_message_iter_get_string_array().
14137         Makes qt code build again
14138
14139 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14140
14141         * bus/driver.c: (create_unique_client_name),
14142         (bus_driver_handle_hello):
14143         Don't take a name, just use a numeric id to identify
14144         each client.
14145
14146         * dbus/Makefile.am:
14147         * dbus/dbus-bus.c: (dbus_bus_register_client),
14148         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14149         * dbus/dbus-bus.h:
14150         Add new convenience functions for communicating with the bus.
14151
14152         * dbus/dbus-message.h:
14153
14154         * dbus/dbus-protocol.h:
14155         Fix a typo.
14156
14157 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14158
14159         * dbus/dbus-message.c (dbus_message_append_fields):
14160         Add some more doc comments.
14161
14162 2003-02-01  Havoc Pennington  <hp@pobox.com>
14163
14164         * dbus/dbus-break-loader.c (randomly_modify_length): change
14165         a 4-byte value in the message as if it were a length
14166
14167         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14168         execute bit on saved files
14169
14170 2003-02-01  Havoc Pennington  <hp@pobox.com>
14171
14172         * dbus/dbus-break-loader.c (main): new program to find messages
14173         that break the loader.
14174
14175         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14176         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14177
14178         * dbus/dbus-string.c (_dbus_string_set_byte): new
14179
14180 2003-01-31  Havoc Pennington  <hp@pobox.com>
14181
14182         * dbus/dbus-message.c: refactor the test code to be more general,
14183         in preparation for writing a "randomly permute test cases to
14184         try to break the loader" program.
14185
14186 2003-01-31  Havoc Pennington  <hp@pobox.com>
14187
14188         * doc/dbus-specification.sgml: work on the specification
14189
14190         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14191         the protocol version of the message.
14192
14193         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14194         no longer specifies that.
14195         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14196         1/2/3/4)
14197
14198         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14199         "break" for DBUS_TYPE_NIL, remove @todo
14200
14201 2003-01-31  Havoc Pennington  <hp@pobox.com>
14202
14203         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14204         just set_is_error/get_is_error as this is a commonly-used
14205         function, and write docs.
14206
14207 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14208
14209         * dbus/dbus-address.c: (dbus_address_entry_free):
14210         Free key and value lists.
14211
14212         * dbus/dbus-internals.c: (_dbus_type_to_string):
14213         Add the types we didn't have.
14214
14215         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14216         (_dbus_marshal_validate_arg):
14217         Add NIL types.
14218
14219         * dbus/dbus-message.c: (dbus_message_set_sender):
14220         Remove todo about being able to set sender to NULL.
14221
14222         (dbus_message_set_is_error_reply),
14223         (dbus_message_get_is_error_reply):
14224         * dbus/dbus-message.h:
14225         New functions.
14226
14227         * dbus/dbus-protocol.h:
14228         Add error reply flag.
14229
14230         * test/data/valid-messages/opposite-endian.message:
14231         Add NIL type to test.
14232
14233 2003-01-31  Havoc Pennington  <hp@pobox.com>
14234
14235         * doc/dbus-specification.sgml: fully specify the header.  Add
14236         flags and major protocol version, and change header/body len to
14237         unsigned.
14238
14239         * dbus/dbus-message-builder.c (append_saved_length): append length
14240         as uint32
14241
14242         * dbus/dbus-message.c (dbus_message_create_header): change header
14243         length and body length to unsigned. Add the new fields from the
14244         spec
14245         (_dbus_message_loader_return_buffer): unsigned header/body len
14246
14247 2003-01-30  Havoc Pennington  <hp@pobox.com>
14248
14249         * dbus/dbus-auth.c: rework to use only REJECTED, no
14250         MECHANISMS
14251
14252         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14253         use REJECTED, suggested by Mark McLoughlin
14254
14255 2003-01-30  Havoc Pennington  <hp@pobox.com>
14256
14257         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14258         a better way to report errors here. e.g.  "unix address lacks
14259         path" or something. also "no such file" when the path doesn't
14260         exist, etc.
14261
14262         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14263         leaking list nodes
14264         (dbus_parse_address): add @todo about documenting address format,
14265         and allowing , and ; to be escaped
14266
14267 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14268
14269         * dbus/Makefile.am:
14270         Add dbus-address.[ch]
14271
14272         * dbus/dbus-address.c: (dbus_address_entry_free),
14273         (dbus_address_entries_free), (create_entry),
14274         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14275         (dbus_parse_address), (_dbus_address_test):
14276         * dbus/dbus-address.h:
14277         New files for dealing with address parsing.
14278
14279         * dbus/dbus-connection.c:
14280         Document timeout functions.
14281
14282         * dbus/dbus-message.c:
14283         Document dbus_message_new_from_message.
14284
14285         * dbus/dbus-server-debug.c:
14286         Document.
14287
14288         * dbus/dbus-server.c: (dbus_server_listen):
14289         Parse address and use correct server implementation.
14290
14291         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14292         * dbus/dbus-string.h:
14293         New function with test.
14294
14295         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14296         * dbus/dbus-test.h:
14297         Add address tests.
14298
14299         * dbus/dbus-transport-debug.c:
14300         Document.
14301
14302         * dbus/dbus-transport.c: (_dbus_transport_open):
14303         Parse address and use correct transport implementation.
14304
14305 2003-01-30  Havoc Pennington  <hp@pobox.com>
14306
14307         * dbus/dbus-message.c: use message->byte_order instead of
14308         DBUS_COMPILER_BYTE_ORDER throughout.
14309         (dbus_message_create_header): pad header to align the
14310         start of the body of the message to 8-byte boundary
14311
14312         * dbus/dbus-marshal.h: make all the demarshalers take const
14313         DBusString arguments.
14314
14315         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14316         validate message args here, so we don't have to do slow validation
14317         later, and so we catch bad messages as they are incoming. Also add
14318         better checks on header_len and body_len. Also fill in
14319         message->byte_order
14320
14321         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14322         implemented properly)
14323         (_dbus_string_validate_nul): new function to check all-nul
14324
14325         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14326         get_arg_end_pos and remove all validation
14327         (_dbus_marshal_validate_arg): actually do validation here.
14328
14329 2003-01-29  Havoc Pennington  <hp@pobox.com>
14330
14331         * dbus/dbus-message.c (check_message_handling): fix assertion
14332         failure on set_client_serial
14333
14334 2003-01-28  Havoc Pennington  <hp@pobox.com>
14335
14336         * dbus/dbus-server-debug.c: Add doc section comments
14337
14338         * dbus/dbus-transport-debug.c: add doc section comments
14339
14340 2003-01-28  Havoc Pennington  <hp@redhat.com>
14341
14342         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14343         the reverse order from how I had it
14344         (_dbus_string_base64_encode): reverse encoding order. I was
14345         basically byteswapping everything during encoding.
14346
14347 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14348
14349         * dbus/dbus-connection-internal.h:
14350         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14351         (_dbus_connection_remove_timeout):
14352         Add functions for adding and removing timeouts.
14353
14354         * dbus/dbus-message.c: (dbus_message_new_from_message):
14355         Add new function that takes a message and creates an exact
14356         copy of it, but with the refcount set to 1.
14357         (check_message_handling):
14358         Fix build error.
14359
14360         * dbus/dbus-server-protected.h:
14361         * dbus/dbus-server.c: (_dbus_server_init_base),
14362         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14363         (dbus_server_set_timeout_functions):
14364         (_dbus_server_remove_timeout):
14365         New functions so that a server can add and remove timeouts.
14366
14367         (dbus_server_listen):
14368         Add commented out call to dbus_server_debug_new.
14369
14370         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14371         Actually set the handler, doh.
14372
14373         * dbus/dbus-transport.c: (_dbus_transport_open):
14374         Add commented out call to dbus_transport_debug_client_new.
14375
14376         * dbus/Makefile.am:
14377         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14378
14379 2003-01-28  Havoc Pennington  <hp@pobox.com>
14380
14381         * dbus/dbus-message.c (check_message_handling): function to check
14382         on the loaded message, iterates over it etc.
14383
14384 2003-01-28  Havoc Pennington  <hp@pobox.com>
14385
14386         * test/Makefile.am (dist-hook): fix make distdir
14387
14388         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14389
14390 2003-01-27  Havoc Pennington  <hp@pobox.com>
14391
14392         * dbus/dbus-mempool.c (time_for_size): replace printf with
14393         _dbus_verbose
14394
14395         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14396         empty lines; fix the SAVE_LENGTH stuff to be
14397         START_LENGTH/END_LENGTH so it actually works; couple other
14398         bugfixes
14399
14400         * test/Makefile.am (dist-hook): add dist-hook for .message files
14401
14402         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14403         can be constant or locked.
14404         (_dbus_string_free): allow freeing a const string as
14405         documented/intended
14406
14407         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14408
14409         * dbus/dbus-test-main.c (main): take an argument which is the
14410         directory containing test data
14411
14412         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14413         argument to this and load all the messages in test/data/
14414         checking that they can be loaded or not loaded as appropriate.
14415
14416 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14417
14418         * bus/dispatch.c: (bus_dispatch_message_handler):
14419         Dispatch messages sent to services.
14420
14421         * bus/driver.c: (bus_driver_send_service_deleted),
14422         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14423         (bus_driver_send_service_acquired):
14424         Add helper functions for sending service related messages.
14425
14426         (bus_driver_send_welcome_message):
14427         Send HELLO_REPLY instead of WELCOME.
14428
14429         (bus_driver_handle_list_services):
14430         Send LIST_SERVICES_REPLY instead of SERVICES.
14431
14432         (bus_driver_handle_own_service),
14433         (bus_driver_handle_service_exists):
14434         New message handlers.
14435
14436         (bus_driver_handle_message):
14437         Invoke new message handlers.
14438
14439         (bus_driver_remove_connection):
14440         Don't remove any services here since that's done automatically
14441         by bus_service_remove_owner now.
14442
14443         * bus/driver.h:
14444         New function signatures.
14445
14446         * bus/services.c: (bus_service_add_owner):
14447         Send ServiceAcquired message if we're the only primary owner.
14448
14449         (bus_service_remove_owner):
14450         Send ServiceAcquired/ServiceLost messages.
14451
14452         (bus_service_set_prohibit_replacement),
14453         (bus_service_get_prohibit_replacement):
14454         Functions for setting prohibit replacement.
14455
14456         (bus_service_has_owner):
14457         New function that checks if a connection is in the owner queue of
14458         a certain service.
14459
14460         * bus/services.h:
14461         Add new function signatures.
14462
14463         * dbus/dbus-list.c: (_dbus_list_test):
14464         Add tests for _dbus_list_remove_last and traversing the list backwards.
14465
14466         * dbus/dbus-list.h:
14467         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14468         go any further, so return NULL then.
14469
14470         * dbus/dbus-protocol.h:
14471         Add new messages, service flags and service replies.
14472
14473 2003-01-26  Havoc Pennington  <hp@pobox.com>
14474
14475         * dbus/dbus-message-builder.c: implement, completely untested.
14476
14477         * test/data/*: add data to be used in testing.
14478         ".message" files are our simple loadable text format.
14479         ".message-raw" will be binary dumps of messages.
14480
14481         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14482
14483 2003-01-26  Havoc Pennington  <hp@pobox.com>
14484
14485         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14486
14487         * dbus/dbus-errors.c (dbus_result_to_string): add
14488         file errors
14489
14490         * dbus/dbus-message-builder.c: new file, will contain code to load
14491         up messages from files. Not implemented yet.
14492
14493 2003-01-26  Havoc Pennington  <hp@pobox.com>
14494
14495         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14496         the sender by setting to NULL
14497
14498 2003-01-26  Havoc Pennington  <hp@pobox.com>
14499
14500         The unit tests pass, but otherwise untested.  If it breaks, the
14501         tests should have been better. ;-)
14502
14503         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14504         the connection.
14505
14506         * dbus/dbus-message.c: redo everything so we maintain
14507         message->header as the only copy of the various fields.
14508         This avoids the possibility of out-of-memory in some cases,
14509         for example dbus_message_lock() can't run out of memory anymore,
14510         and avoids extra copying. Figured I may as well go ahead and do
14511         this since it was busted for dbus_message_lock to not return
14512         failure on OOM, and dbus_message_write_header was totally
14513         unchecked for OOM. Also fixed some random other bugs.
14514
14515         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14516         that strings are nul-terminated. Also, end_pos can be equal
14517         to string length just not greater than, I think.
14518         (_dbus_marshal_set_int32): new function
14519         (_dbus_marshal_set_uint32): new function
14520         (_dbus_marshal_set_string): new function
14521
14522         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14523         a warning, init timeout_list to NULL
14524         (dbus_connection_send_message): don't use uninitialized variable
14525         "serial"
14526
14527         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14528
14529 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14530
14531         * bus/driver.c: (bus_driver_handle_hello),
14532         (bus_driver_send_welcome_message):
14533         Plug leaks
14534
14535 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14536
14537         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14538         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14539         (dbus_connection_unref):
14540         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14541         * dbus/dbus-message.c: (dbus_message_unref),
14542         Plug memory leaks.
14543
14544         (dbus_message_get_fields):
14545         Remove debugging printout.
14546
14547         (_dbus_message_loader_return_buffer):
14548         Don't store the header string.
14549
14550         (_dbus_message_test):
14551         Plug leaks.
14552
14553 2003-01-26  Richard Hult  <rhult@codefactory.se>
14554
14555         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14556         the file descriptor list, since it can change under us.
14557
14558 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14559
14560         * glib/dbus-gmain.c: (dbus_connection_prepare),
14561         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14562         (remove_watch), (dbus_connection_hookup_with_g_main):
14563         Rewrite the glib handling to use its own GSource instead of a
14564         GIOChannel so we can catch messages put in the queue while waiting
14565         for a reply.
14566
14567 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14568
14569         * bus/Makefile.am:
14570         * bus/connection.c: (connection_disconnect_handler),
14571         (connection_watch_callback), (bus_connection_setup):
14572         * bus/dispatch.c: (send_one_message),
14573         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14574         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14575         * bus/dispatch.h:
14576         * bus/driver.c: (bus_driver_send_service_deleted),
14577         (bus_driver_send_service_created), (bus_driver_handle_hello),
14578         (bus_driver_send_welcome_message),
14579         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14580         (bus_driver_handle_message):
14581         * bus/driver.h:
14582         Refactor code, put the message dispatching in its own file. Use
14583         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14584         is disconnected.
14585
14586 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14587
14588         * dbus/dbus-internals.h:
14589         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14590
14591         * dbus/dbus-message.c: (dbus_message_get_sender):
14592         * dbus/dbus-message.h:
14593         Implement dbus_message_get_sender.
14594
14595         * dbus/dbus-protocol.h:
14596         Add message and service defines.
14597
14598 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14599
14600         * dbus/dbus-connection.c: (dbus_connection_send_message):
14601         * dbus/dbus-message-internal.h:
14602         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14603         (dbus_message_write_header):
14604         Remove _dbus_messag_unlock and don't set the client serial on a
14605         message if one already exists.
14606
14607 2003-01-24  Havoc Pennington  <hp@pobox.com>
14608
14609         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14610         list_pool
14611
14612         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14613         on OOM
14614
14615 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14616
14617         * dbus/dbus-list.c: (alloc_link), (free_link):
14618         Use a memory pool for the links.
14619
14620 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14621
14622         * bus/connection.c: (bus_connection_foreach):
14623         * bus/connection.h:
14624         Add new bus_connection_foreach function.
14625
14626         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14627         Add function that broadcasts a message to all clients.
14628
14629         (bus_driver_send_service_created), (bus_driver_handle_hello),
14630         (bus_driver_send_welcome_message),
14631         (bus_driver_handle_list_services), (bus_driver_message_handler):
14632         Implement functions that take care of listing services, and notifying
14633         clients when new services are created.
14634
14635         * bus/services.c: (bus_services_list):
14636         * bus/services.h:
14637         Add new function that returns an array of strings with the currently
14638         registered services.
14639
14640         * glib/dbus-glib.h:
14641         * glib/dbus-gmain.c:
14642         Update copyright year.
14643
14644 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14645
14646         * dbus/dbus-connection.c: (dbus_connection_send_message):
14647         Unlock the message in case it was sent earlier.
14648
14649         (dbus_connection_send_message_with_reply_and_block):
14650         Remove the reply message from the list.
14651
14652         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14653         Set array_len and new_pos correctly.
14654
14655         (_dbus_marshal_test):
14656         Remove debug output.
14657
14658         * dbus/dbus-message-internal.h:
14659         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14660         New function that returns the reply serial.
14661
14662         (_dbus_message_unlock):
14663         New function that unlocks a message and resets its header.
14664
14665         (dbus_message_append_string_array),
14666         (dbus_message_get_fields_valist),
14667         (dbus_message_iter_get_field_type),
14668         (dbus_message_iter_get_string_array),
14669         (dbus_message_get_fields),
14670         (dbus_message_append_fields_valist):
14671         Handle string arrays.
14672
14673         (dbus_message_set_sender):
14674         Make this function public since the bus daemon needs it.
14675
14676         (decode_header_data):
14677         Set the reply serial to -1 initially.
14678
14679         * dbus/dbus-message.h:
14680         Add dbus_message_set_sender.
14681
14682 2003-01-24  Havoc Pennington  <hp@pobox.com>
14683
14684         * doc/dbus-specification.sgml: add some stuff
14685
14686 2003-01-22  Havoc Pennington  <hp@pobox.com>
14687
14688         * doc/dbus-specification.sgml: Start to document the protocol.
14689
14690 2003-01-22  Havoc Pennington  <hp@pobox.com>
14691
14692         * dbus/dbus-connection.c
14693         (dbus_connection_send_message_with_reply_and_block): add some @todo
14694
14695         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14696
14697 2003-01-21  Havoc Pennington  <hp@pobox.com>
14698
14699         (patch untested because can't compile)
14700
14701         * bus/driver.c (create_unique_client_name): make this function
14702         never recycle client names. Also, caller should initialize
14703         the DBusString.
14704
14705         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14706
14707 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14708
14709         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14710         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14711         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14712         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14713         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14714         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14715         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14716         * dbus/dbus-marshal.h:
14717         * dbus/dbus-protocol.h:
14718         Add support for marshalling and demarshalling integer, double
14719         and string arrays.
14720
14721 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14722
14723         * bus/Makefile.am:
14724         Add driver.[ch]
14725
14726         * bus/connection.c: (connection_disconnect_handler):
14727         Remove the connection from the bus driver's list.
14728
14729         (connection_watch_callback): Dispatch messages.
14730
14731         (free_connection_data): Free connection name.
14732
14733         (bus_connection_setup): Add connection to the bus driver's list.
14734         (bus_connection_remove_owned_service):
14735         (bus_connection_set_name), (bus_connection_get_name):
14736         Add functions for setting and getting the connection's name.
14737
14738         * bus/connection.h:
14739         Add function headers.
14740
14741         * bus/driver.c: (create_unique_client_name),
14742         (bus_driver_handle_hello_message),
14743         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14744         (bus_driver_add_connection), (bus_driver_remove_connection):
14745         * bus/driver.h:
14746         * bus/main.c:
14747         * bus/services.c: (bus_service_free):
14748         * bus/services.h:
14749         New file that handles communication and registreation with the bus
14750         itself.
14751
14752 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14753
14754         * dbus/dbus-connection.c: (dbus_connection_send_message):
14755         Add a new client_serial parameter.
14756
14757         (dbus_connection_send_message_with_reply):
14758         Remove a @todo since we've implemented the blocking function.
14759
14760         (dbus_connection_send_message_with_reply_and_block):
14761         New function that sends a message and waits for a reply and
14762         then returns the reply.
14763
14764         * dbus/dbus-connection.h:
14765         Add new functions.
14766
14767         * dbus/dbus-errors.c: (dbus_result_to_string):
14768         * dbus/dbus-errors.h:
14769         Add new DBUS_RESULT.
14770
14771         * dbus/dbus-message-internal.h:
14772         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14773         (_dbus_message_set_sender), (dbus_message_write_header),
14774         (dbus_message_new_reply), (decode_header_data),
14775         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14776         * dbus/dbus-message.h:
14777         Add new functions that set the reply serial and sender.
14778         Also marshal and demarshal them correctly and add test.
14779
14780         * dbus/dbus-protocol.h:
14781         Add new DBUS_MESSAGE_TYPE_SENDER.
14782
14783         * glib/dbus-glib.h:
14784         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14785         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14786         (dbus_connection_hookup_with_g_main):
14787         * glib/test-dbus-glib.c: (main):
14788         Rewrite to use GIOChannel and remove the GSource crack.
14789
14790         * test/echo-client.c: (main):
14791         * test/watch.c: (check_messages):
14792         Update for changed APIs
14793
14794 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14795
14796         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14797
14798         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14799         Create a DBusTimeoutList.
14800         (dbus_connection_set_timeout_functions): Add new function to
14801         set timeout callbacks
14802
14803         * dbus/dbus-connection.h: Add public DBusTimeout API.
14804
14805         * dbus/dbus-message.c: (dbus_message_get_service):
14806         * dbus/dbus-message.h:  New function.
14807
14808         * dbus/dbus-server.c: Fix small doc typo.
14809
14810         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14811
14812 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14813
14814         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14815         of the string, just as long as specified.
14816
14817 2003-01-19  Havoc Pennington  <hp@pobox.com>
14818
14819         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14820         new function
14821
14822         * dbus/dbus-server.c (dbus_server_set_max_connections)
14823         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14824         keep track of current number of connections, and add API for
14825         setting a max (but haven't implemented enforcing the max yet)
14826
14827 2003-01-18  Havoc Pennington  <hp@pobox.com>
14828
14829         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14830         reading/writing if read_watch != NULL or write_watch != NULL.
14831
14832         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14833         the message loader code to actually load message->header and
14834         message->body into the newly-created message.
14835
14836         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14837         in OOM case
14838
14839         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14840         (dbus_connection_get_max_message_size)
14841         (dbus_connection_set_max_live_messages_size)
14842         (dbus_connection_get_max_live_messages_size): implement some
14843         resource limitation functions
14844
14845         * dbus/dbus-resources.c: new file implementing some of the
14846         resource limits stuff
14847
14848         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14849         missing docs, add @todo to handle OOM etc.
14850
14851         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14852         docs
14853
14854 2003-01-18  Havoc Pennington  <hp@pobox.com>
14855
14856         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14857         connection if it hasn't been already.
14858
14859         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14860         replace with DisconnectFunction.
14861
14862 2003-01-18  Havoc Pennington  <hp@pobox.com>
14863
14864         Building --disable-verbose-mode --disable-asserts --disable-tests
14865         cuts the library from 112K to 45K or so
14866
14867         * configure.in: check for varargs macro support,
14868         add --enable-verbose-mode, --enable-asserts.
14869
14870         * dbus/dbus-internals.h (_dbus_assert): support
14871         DBUS_DISABLE_ASSERT
14872         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14873
14874 2003-01-18  Havoc Pennington  <hp@pobox.com>
14875
14876         * dbus/dbus-test.c: include config.h so that tests actually run
14877
14878         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14879         so the failure mode when that assumption fails will be plenty
14880         obvious.
14881
14882 2003-01-18  Havoc Pennington  <hp@pobox.com>
14883
14884         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14885
14886         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14887         the distribution
14888
14889         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14890         since we don't want to use those in make check
14891
14892 2003-01-15  Havoc Pennington  <hp@redhat.com>
14893
14894         Release 0.2
14895
14896         * NEWS: update
14897
14898 2003-01-15  Havoc Pennington  <hp@redhat.com>
14899
14900         * test/Makefile.am: fix so that test source code ends up in the
14901         distribution on make distcheck
14902
14903 2003-01-15  Havoc Pennington  <hp@redhat.com>
14904
14905         Release 0.1.
14906
14907         * NEWS: update
14908
14909 2003-01-15  Havoc Pennington  <hp@redhat.com>
14910
14911         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14912         fix build when --disable-tests
14913
14914         * Makefile.am (EXTRA_DIST): put HACKING in here
14915
14916         * HACKING: document procedure for making a tarball release.
14917
14918 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14919
14920         * bus/connection.c: (connection_error_handler),
14921         (bus_connection_setup):
14922         * bus/main.c: (main):
14923         Make sure that the DBusConnectionData struct is NULLed
14924         out to prevent a segfault.
14925
14926         * dbus/dbus-errors.c: (dbus_result_to_string):
14927         * dbus/dbus-errors.h:
14928         * dbus/dbus-message.c: (dbus_message_get_fields),
14929         (dbus_message_get_fields_valist), (_dbus_message_test):
14930         * dbus/dbus-message.h:
14931         Make dbus_message_get_fields return a result code so we can
14932         track invalid fields as well as oom.
14933
14934 2003-01-11  Havoc Pennington  <hp@pobox.com>
14935
14936         * configure.in: change --enable-test/--enable-ansi action-if-given
14937         to enable_foo=$enableval instead of enable_foo=yes
14938
14939 2003-01-08  Havoc Pennington  <hp@pobox.com>
14940
14941         * dbus/dbus-string.c (_dbus_string_align_length): new function
14942
14943         * dbus/dbus-test-main.c: move main() for test app here
14944         * dbus/dbus-test.c
14945         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14946         symbol to run tests, because dbus-test isn't in the main
14947         library
14948
14949         Code review nitpicks.
14950
14951         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14952         for people with narrow emacs ;-). Assert client_serial was filled
14953         in. Assert message->name != NULL.
14954         (dbus_message_append_fields): have "first_field_type" arg separate
14955         from va list, needed for C++ binding that also uses varargs IIRC
14956         and helps with type safety
14957         (dbus_message_new): add @todo about using DBusString to store
14958         service/name internally
14959         (dbus_message_new): don't leak ->service and ->name on OOM later
14960         in the function
14961         (dbus_message_unref): free the service name
14962         (dbus_message_get_fields): same change to varargs
14963         i.e. first_field_type
14964         (_dbus_message_loader_return_buffer): assert that the message data
14965         is aligned (if not it's a bug in our code). Put in verbose griping
14966         about why we set corrupted = TRUE.
14967         (decode_header_data): add FIXME that char* is evil.  Was going to
14968         add FIXME about evil locale-specific string.h strncmp, but just
14969         switched to wacky string-as-uint32 optimization. Move check for
14970         "no room for field name" above get_const_data_len() to avoid
14971         assertion failure in get_const_data_len if we have trailing 2
14972         bytes or the like. Check for service and name fields being
14973         provided twice. Don't leak service/name on error. Require field
14974         names to be aligned to 4 bytes.
14975
14976         * dbus/dbus-marshal.c: move byte swap stuff to header
14977         (_dbus_pack_int32): uscore-prefix
14978         (_dbus_unpack_int32): uscore-prefix
14979         (_dbus_unpack_uint32): export
14980         (_dbus_demarshal_string): add @todo complaining about use of
14981         memcpy()
14982         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14983         handling allowing corrupt data to go unchecked
14984
14985 2003-01-08  Havoc Pennington  <hp@redhat.com>
14986
14987         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14988         to the select() as needed for authentication. (should be using
14989         _dbus_poll() not select, but for another day)
14990
14991         * dbus/dbus.h: include dbus/dbus-protocol.h
14992
14993 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14994
14995         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14996         dbus-connection.h
14997
14998 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14999
15000         * dbus/dbus-internals.c: (_dbus_type_to_string):
15001         New function that returns a string describing a type.
15002
15003         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
15004         * dbus/dbus-marshal.h:
15005         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15006         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15007         (dbus_message_iter_get_byte_array):
15008         * dbus/dbus-message.h:
15009         Add new convenience functions for appending and getting message fields.
15010         Also add demarshalling routines for byte arrays.
15011
15012 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15013
15014         * dbus/dbus-connection-internal.h:
15015         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15016         (_dbus_connection_get_next_client_serial),
15017         (dbus_connection_send_message):
15018         * dbus/dbus-internals.h:
15019         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15020         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15021         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15022         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15023         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15024         (_dbus_verbose_bytes), (_dbus_marshal_test):
15025         * dbus/dbus-marshal.h:
15026         * dbus/dbus-message-internal.h:
15027         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15028         (dbus_message_write_header), (_dbus_message_lock),
15029         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15030         (dbus_message_get_name), (dbus_message_append_int32),
15031         (dbus_message_append_uint32), (dbus_message_append_double),
15032         (dbus_message_append_string), (dbus_message_append_byte_array),
15033         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15034         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15035         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15036         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15037         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15038         (decode_header_data), (_dbus_message_loader_return_buffer),
15039         (message_iter_test), (_dbus_message_test):
15040         * dbus/dbus-message.h:
15041         * dbus/dbus-protocol.h:
15042         * dbus/dbus-test.c: (main):
15043         * dbus/dbus-test.h:
15044         * glib/test-dbus-glib.c: (message_handler), (main):
15045         * test/echo-client.c: (main):
15046         * test/watch.c: (check_messages):
15047         Make messages sendable and receivable for real.
15048
15049 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15050
15051         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15052         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15053         * dbus/dbus-message.c: (dbus_message_append_int32),
15054         (dbus_message_append_uint32), (dbus_message_append_double),
15055         (dbus_message_append_string), (dbus_message_append_byte_array):
15056         Handle OOM restoration.
15057
15058 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15059
15060         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15061         (_dbus_demarshal_string), (_dbus_marshal_test):
15062         * dbus/dbus-marshal.h:
15063         * dbus/dbus-message.c: (dbus_message_get_name),
15064         Document these functions.
15065
15066         (dbus_message_append_int32), (dbus_message_append_uint32),
15067         (dbus_message_append_double), (dbus_message_append_string),
15068         (dbus_message_append_byte_array):
15069         * dbus/dbus-message.h:
15070         Add functions for adding message fields of different types.
15071
15072         * dbus/dbus-protocol.h:
15073         Add the different types.
15074
15075 2003-01-05  Havoc Pennington  <hp@pobox.com>
15076
15077         * bus/connection.c: implement routines for handling connections,
15078         first thing is keeping a list of owned services on each connection
15079         and setting up watches etc.
15080
15081         * bus/services.c: implement a mapping from service names to lists
15082         of connections
15083
15084         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15085
15086         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15087         to use static mutexes for global data
15088
15089         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15090         collection of functions to set/get application-specific data
15091         on the DBusConnection.
15092
15093 2003-01-04  Havoc Pennington  <hp@pobox.com>
15094
15095         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15096         (_dbus_poll): new function
15097
15098         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15099         copied from GLib
15100
15101         * bus/loop.c: initial code for the daemon main loop
15102
15103 2003-01-04  Havoc Pennington  <hp@pobox.com>
15104
15105         * test/watch.c (error_handler): make it safe if the error handler
15106         is called multiple times (if we s/error handler/disconnect
15107         handler/ we should just guarantee it's called only once)
15108
15109         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15110         error handler on disconnect (it's quite possible we should
15111         just change the error handler to a "disconnect handler," I'm
15112         not sure we have any other meaningful errors)
15113
15114         * configure.in: check for getpwnam_r
15115
15116         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15117         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15118         mechanism as in SASL spec, using socket credentials
15119
15120         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15121         (_dbus_send_credentials_unix_socket): new function
15122
15123         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15124         dbus_accept()
15125         (_dbus_write): only check errno if <0 returned
15126         (_dbus_write_two): ditto
15127
15128 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15129
15130         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15131         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15132         (_dbus_marshal_test):
15133         * dbus/dbus-marshal.h:
15134         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15135         to _dbus_marshal_utf8_string. Also fix some tests.
15136
15137 2002-12-28  Harri Porten  <porten@kde.org>
15138
15139         * configure.in: added check for C++ compiler and a very cheesy
15140         check for the Qt integration
15141
15142         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15143
15144         * qt/Makefile.am: added
15145
15146         * qt/.cvsignore: added
15147
15148         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15149         latter, added #ifdef QT_THREAD_SUPPORT guard.
15150
15151         * dbus/Makefile.am: added missing headers for make dist
15152
15153 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15154
15155         * dbus/Makefile.am: fixup export-symbols-regex.
15156
15157 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15158
15159         * acinclude.m4: Add this file and put the
15160         PKG_CHECK_MODULE macro in it.
15161
15162 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15163
15164         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15165         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15166         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15167         (_dbus_marshal_test):
15168         Make the demarshalling routines align the pos argument.
15169         Add string marshalling tests and fix the obvious bugs
15170         discovered.
15171
15172 2002-12-26  Havoc Pennington  <hp@pobox.com>
15173
15174         * dbus/dbus-auth.c: fixes fixes fixes
15175
15176         * dbus/dbus-transport-unix.c: wire up support for
15177         encoding/decoding data on the wire
15178
15179         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15180         (_dbus_auth_decode_data): append to target string
15181         instead of nuking it.
15182
15183 2002-12-26  Havoc Pennington  <hp@pobox.com>
15184
15185         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15186         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15187         doh
15188
15189         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15190         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15191         now). Main point is because I wanted unpack_uint32 to implement
15192         _dbus_verbose_bytes
15193         (_dbus_verbose_bytes): new function
15194
15195         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15196
15197         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15198         mechanism to handle a corrupt message stream
15199         (_dbus_message_loader_new): fix preallocation to only prealloc,
15200         not prelengthen
15201
15202         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15203         (_dbus_string_test): enhance tests for copy/move and fix the
15204         functions
15205
15206         * dbus/dbus-transport-unix.c: Hold references in more places to
15207         avoid reentrancy problems
15208
15209         * dbus/dbus-transport.c: ditto
15210
15211         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15212         leak reference count in no-message case
15213
15214         * test/watch.c (do_mainloop): handle adding/removing watches
15215         during iteration over the watches. Also, ref the connection/server
15216         stored on a watch, so we don't try to mangle a destroyed one.
15217
15218         * dbus/dbus-transport-unix.c (do_authentication): perform
15219         authentication
15220
15221         * dbus/dbus-auth.c (get_state): add a state
15222         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15223         (_dbus_auth_get_unused_bytes): append the unused bytes
15224         to the passed in string, rather than prepend
15225
15226         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15227         the auth conversation DBusAuth
15228
15229         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15230         (_dbus_transport_new_for_domain_socket): when creating a
15231         transport, pass in whether it's a client-side or server-side
15232         transport so we know which DBusAuth to create
15233
15234 2002-12-03  Havoc Pennington  <hp@pobox.com>
15235
15236         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15237         _after_ finalizing the derived members
15238         (unix_connection_set): unref watch if we fail to add it
15239
15240         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15241         transport first, so that the connection owned by the
15242         transport will be valid as the transport finalizes.
15243
15244         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15245         if necessary, and remove watches from the connection.
15246
15247         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15248
15249 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15250
15251         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15252         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15253         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15254         (_dbus_marshal_test):
15255         * dbus/dbus-marshal.h:
15256         Add string marshal functions and have the demarshal functions
15257         return the new position.
15258
15259 2002-12-25  Havoc Pennington  <hp@pobox.com>
15260
15261         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15262         it is a simple protocol that just maps directly to SASL.
15263
15264         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15265         initial implementation, not actually used yet.
15266
15267         * dbus/dbus-string.c (_dbus_string_find): new function
15268         (_dbus_string_equal): new function
15269         (_dbus_string_base64_encode): new function
15270         (_dbus_string_base64_decode): new function
15271
15272 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15273
15274         * dbus/Makefile.am:
15275         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15276         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15277         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15278         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15279         * dbus/dbus-marshal.h:
15280         * dbus/dbus-protocol.h:
15281         * dbus/dbus-test.c: (main):
15282         * dbus/dbus-test.h:
15283         Add un-optimized marshalling/demarshalling routines.
15284
15285 2002-12-25  Harri Porten  <porten@kde.org>
15286
15287         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15288
15289 2002-12-24  Zack Rusin  <zack@kde.org>
15290
15291         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15292         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15293         main loop stuff
15294
15295 2002-12-24  Havoc Pennington  <hp@pobox.com>
15296
15297         * glib/dbus-gthread.c: fix include
15298
15299         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15300         I think glib API needs to change, though, as you don't
15301         want to use DBusMessageFunction, you want to use the
15302         DBusMessageHandler object. Probably
15303         dbus_connection_open_with_g_main_loop()
15304         and dbus_connection_setup_g_main_loop() or something like that
15305         (but think of better names...) that just create a connection
15306         that has watch/timeout functions etc. already set up.
15307
15308         * dbus/dbus-connection.c
15309         (dbus_connection_send_message_with_reply): new function just to
15310         show how the message handler helps us deal with replies.
15311
15312         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15313
15314         * dbus/dbus-string.c (_dbus_string_test): free a string that
15315         wasn't
15316
15317         * dbus/dbus-hash.c: use memory pools for the hash entries
15318         (rebuild_table): be more paranoid about overflow, and
15319         shrink table when we can
15320         (_dbus_hash_test): reduce number of sprintfs and write
15321         valid C89. Add tests for case where we grow and then
15322         shrink the hash table.
15323
15324         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15325
15326         * dbus/dbus-connection.c (dbus_connection_register_handler)
15327         (dbus_connection_unregister_handler): new functions
15328
15329         * dbus/dbus-message.c (dbus_message_get_name): new
15330
15331         * dbus/dbus-list.c: fix docs typo
15332
15333         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15334         an object representing a handler for messages.
15335
15336 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15337
15338         * glib/dbus-glib.h:
15339         * glib/dbus-gthread.c: (dbus_gthread_init):
15340         Don't use the gdbus prefix for public functions.
15341
15342 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15343
15344         * Makefile.am:
15345         * configure.in:
15346         Add GLib checks and fixup .pc files
15347
15348         * glib/Makefile.am:
15349         * glib/dbus-glib.h:
15350         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15351         (gdbus_connection_check), (gdbus_connection_dispatch),
15352         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15353         (dbus_connection_gsource_new):
15354         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15355         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15356         * glib/test-dbus-glib.c: (message_handler), (main):
15357         Add GLib support.
15358
15359 2002-12-15  Harri Porten  <porten@kde.org>
15360
15361         * autogen.sh: check for libtoolize before attempting to use it
15362
15363         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15364         struct.
15365
15366         * .cvsignore: ignore more stamp files
15367
15368         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15369
15370         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15371         without make install.
15372
15373 2002-12-15  Havoc Pennington  <hp@pobox.com>
15374
15375         * dbus/dbus-threads.c: add thread stubs that a higher library
15376         layer can fill in. e.g. the GLib wrapper might fill them in with
15377         GThread stuff. We still need to use this thread API to
15378         thread-safe-ize the library.
15379
15380 2002-12-12  Havoc Pennington  <hp@pobox.com>
15381
15382         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15383         below new interfaces and include fewer system headers.
15384
15385         * dbus/dbus-sysdeps.c (_dbus_read): new function
15386         (_dbus_write): new function
15387         (_dbus_write_two): new function
15388         (_dbus_connect_unix_socket): new function
15389         (_dbus_listen_unix_socket): new function
15390
15391         * dbus/dbus-message-internal.h: change interfaces to use
15392         DBusString
15393
15394 2002-12-11  Havoc Pennington  <hp@pobox.com>
15395
15396         * dbus/dbus-types.h: add dbus_unichar
15397
15398         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15399
15400         * dbus/dbus-connection.c (dbus_connection_send_message): return
15401         TRUE on success
15402
15403         * dbus/dbus-transport.c: include dbus-watch.h
15404
15405         * dbus/dbus-connection.c: include dbus-message-internal.h
15406
15407         * HACKING: add file with coding guidelines stuff.
15408
15409         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15410         handling here, for security purposes (as in vsftpd). Not actually
15411         using this class yet.
15412
15413         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15414         system/libc usage here, as in vsftpd, for ease of auditing (and
15415         should also simplify portability). Haven't actually moved all the
15416         system/libc usage into here yet.
15417
15418 2002-11-25  Havoc Pennington  <hp@pobox.com>
15419
15420         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15421         always print the first verbose message.
15422
15423 2002-11-24  Havoc Pennington  <hp@pobox.com>
15424
15425         * test/echo-client.c, test/echo-server.c: cheesy test
15426         clients.
15427
15428         * configure.in (AC_CHECK_FUNCS): check for writev
15429
15430         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15431         function
15432
15433         * dbus/dbus-list.c (_dbus_list_foreach): new function
15434
15435         * dbus/dbus-internals.c (_dbus_verbose): new function
15436
15437         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15438         representing a server that listens for connections.
15439
15440         * dbus/.cvsignore: create
15441
15442         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15443         public API for reporting errors
15444
15445         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15446         public object representing a connection that
15447         sends/receives messages. (Same object used for
15448         both client and server.)
15449
15450         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15451         Basic abstraction for different kinds of stream
15452         that we might read/write messages from.
15453
15454 2002-11-23  Havoc Pennington  <hp@pobox.com>
15455
15456         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15457         _DBUS_INT_MAX
15458
15459         * dbus/dbus-test.c (main): add list test, and include
15460         dbus-test.h as intended
15461
15462         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15463         (_dbus_hash_table_remove_int): return value indicates
15464         whether the entry existed to remove
15465
15466         * dbus/dbus-list.c: add linked list utility class,
15467         with docs and tests
15468
15469         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15470         array sometimes.
15471
15472 2002-11-23  Havoc Pennington  <hp@pobox.com>
15473
15474         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15475         DBUS_END_DECLS to nothing, that should fix this once and for all
15476
15477         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15478
15479         * dbus/dbus-message.c, dbus/dbus-hash.c:
15480         add some missing @brief
15481
15482 2002-11-23  Havoc Pennington  <hp@pobox.com>
15483
15484         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15485         to avoid confusing Doxygen
15486
15487         * dbus/dbus-hash.c: @} not }@
15488
15489         * dbus/dbus-message.c (struct DBusMessage): split out
15490         internals docs
15491
15492 2002-11-23  Havoc Pennington  <hp@pobox.com>
15493
15494         * configure.in: pile on more warning flags if using gcc
15495
15496         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15497         to document static functions
15498
15499         * configure.in: add summary to end of configure so it
15500         looks nice and attractive
15501
15502         * dbus/dbus-hash.c: finish implementation and write unit
15503         tests and docs
15504
15505         * configure.in: add --enable-tests to enable unit tests
15506
15507         * dbus/dbus-test.c: test program to run unit tests
15508         for all files in dbus/*, initially runs a test for
15509         dbus-hash.c
15510
15511         * dbus/dbus-internals.h: file to hold some internal utility stuff
15512
15513 2002-11-22  Havoc Pennington  <hp@redhat.com>
15514
15515         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15516         "ported" away from Tcl
15517
15518         * dbus/dbus-types.h: header for types such as dbus_bool_t
15519
15520 2002-11-22  Havoc Pennington  <hp@redhat.com>
15521
15522         * dbus/dbus.h: fixups for doc warnings
15523
15524         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15525         macros
15526         (QUIET): make it quiet so we can see warnings
15527
15528         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15529
15530 2002-11-22  Havoc Pennington  <hp@redhat.com>
15531
15532         * Makefile.am: include "Doxyfile" target in all-local
15533
15534         * configure.in: generate the Doxyfile
15535
15536         * Doxyfile.in: move Doxyfile here, so we can use
15537         configure to generate a Doxyfile with the right
15538         version number etc.
15539
15540 2002-11-22  Havoc Pennington  <hp@redhat.com>
15541
15542         * dbus/dbus-message.c: move inline docs into .c file
15543
15544         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15545         so all docs are under doc/
15546         (MAN_EXTENSION): generate man pages. Use extension
15547         ".3dbus" which matches ".3qt" on my system,
15548         I guess this is OK, I don't know really.
15549         (FILE_PATTERNS): look for .c files not .h, makes sense
15550         for plain C I think
15551
15552 2002-11-22  Havoc Pennington  <hp@pobox.com>
15553
15554         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15555         because any app can be a server, and any app can be a client,
15556         the bus is a special kind of server.
15557
15558 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15559
15560         * Doxyfile : adding. Still needs Makefile rules to be generated
15561         automatically (just run "doxygen" in the toplevel dir for now to
15562         generate docs)
15563
15564         * dbus/dbus-message.h : Adding sample docs (javadoc since
15565         resembles gtk-doc a little more)
15566
15567         * dbus/dbus.h : Adding sample docs
15568
15569 2002-11-21  Havoc Pennington  <hp@redhat.com>
15570
15571         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15572         so we can allow ourselves to include files directly,
15573         instead of having to use dbus.h
15574
15575         * dbus/dbus.h: fill in
15576
15577         * dbus/dbus-message.h: sketch out a sample header file.
15578         Include griping if you include it directly instead of
15579         via dbus.h
15580
15581         * dbus/dbus-macros.h: new file with macros for extern "C",
15582         TRUE/FALSE, NULL, etc.
15583
15584         * doc/file-boilerplate.c: put include guards in here
15585
15586 2002-11-21  Havoc Pennington  <hp@redhat.com>
15587
15588         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15589
15590         * COPYING: include the GPL as well, and license code
15591         under both AFL and GPL.
15592
15593 2002-11-21  Havoc Pennington  <hp@redhat.com>
15594
15595         * acconfig.h: get rid of this
15596
15597         * autogen.sh (run_configure): add --no-configure option
15598
15599         * configure.in: remove AC_ARG_PROGRAM to make
15600         autoconf complain less. add AC_PREREQ.
15601         add AC_DEFINE third arg.
15602
15603 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15604
15605         * doc/Makefile.am:
15606         Fix references so we can distcheck.
15607
15608 2002-11-21  Havoc Pennington  <hp@redhat.com>
15609
15610         * Initial module creation
15611