* cmake: added debug postfixes to debug exe's for easier debugging.
[platform/upstream/dbus.git] / ChangeLog
1 2007-04-26 Ralf.Habacker  <ralf.habacker@freenet.de>
2
3         * cmake: added debug postfixes to debug exe's for 
4         easier debugging.
5         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
6         print error code in case no string message is available.
7
8 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
9
10         * dbus/dbus-message-util.c, dbus/dbus-message.c,
11         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
12         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
13         approved by Havoc Pennington.
14
15 2007-04-03  Timo Hoenig  <thoenig@suse.de>
16
17         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
18           length address.
19         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
20           length address.
21
22 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
23
24         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
25
26 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
27
28         * cmake/modules/FindExpat.cmake: fix package detection on win32.
29
30         * README.win: update install instructions. 
31
32 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
33
34         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
35         new prototyp
36         (_DBUS_PATH_SEPARATOR): new macro. 
37
38         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
39         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
40
41 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
42
43         * bus/config-parser.c, bus/policy.c,  
44         bus/policy.h, bus/dbus-daemon.1.in,
45         bus/session.conf.in: added eavesdrop support 
46         for replies - patch by olli.salli at collabora.co.uk
47         approved by Havoc Pennington. 
48
49 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
50
51         * dbus\dbus-sysdeps-win-thread.c: renamed to 
52         dbus-sysdeps-thread-win.c, it is a platform depending file 
53         similar to dbus-sysdeps-pthread.c.
54
55 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
56
57         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
58         support, needs cmake Find script.
59
60 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
61
62         * cmake: add doxygen support
63
64 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
65
66         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
67
68 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
69
70         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
71         win32 compile fix. 
72
73 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
74
75         * dbus-win.patch: removed obsolate patches. 
76
77 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
78
79         * dbus/dbus-sysdeps-win.c: added zero byte sending 
80         and receiving after connection start up
81
82 2007-03-11  Havoc Pennington  <hp@redhat.com>
83
84         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
85         formatting problem
86
87         * Mostly fix the DBusPipe mess.
88         - put line break after function return types
89         - put space before parens
90         - do not pass structs around by value
91         - don't use dbus_strerror after calling supposedly cross-platform
92         api
93         - don't name pipe variables "fd"
94         - abstract special fd numbers like -1 and 1
95
96 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
97
98         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
99         dbus/dbus-sysdeps-util-win.c: renamed functions 
100         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
101         struct name DBusFile. 
102
103 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
104
105         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
106         fix _dbus_pid_fd check. 
107
108 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
109
110         * tools/dbus-print-message.c (print_message):
111         added printing of the reply serial to method returns and 
112         errors, so you can actually figure out the message/reply 
113         pairs - patch by olli.salli at collabora.co.uk.
114
115 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
116
117         * dbus-win.patch: removed committed patches. 
118
119 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
120
121         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
122         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
123         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
124         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
125         completed _dbus_pipe support. 
126
127 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
128
129         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
130         changed type or port to pointer, because the port is given back.
131
132         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
133         implemented returning tcp port. Skipping port parameter
134         and non integer port values in config <listen> statement
135         needs more effort.
136
137         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
138         (_dbus_listen_tcp_socket): return the real used tcp port.
139
140         * bus/dbus-daemon.1.in: added <listen> tcp examples
141
142 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
143
144         * cmake/config.h.cmake: win32 msvc bug fix
145
146 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
147
148         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
149         using _WINCE does not work.
150
151 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
152
153         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
154         committed.
155
156 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
157
158         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
159         rename pipe related write() function calls to _dbus_write_pipe().
160
161 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
162
163         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
164         uses DBUS_WIN for alls win32 related #ifdefs, 
165         some minor cleanups
166
167 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
168
169         * dbus-win.patch: updated patch for bus/dispatch.c.
170
171 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
172
173         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
174         dbus_connection_get_unix_process_id): Let return them valid user id's, 
175         otherwise bus-test fails. How to replace on win32 ?.
176         
177         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
178         fix memory leak.
179
180 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
181
182         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
183         use dbus friendly error name.
184         (fill_win_user_info_homedir): print user name in error case too.
185
186 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
187
188         * cmake/ConfigureChecks.cmake: fixed socketpair check
189
190 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
191
192         * bus/dispatch.c: disabled segfault test on win32 for now
193
194 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
195
196         * configure.in, cmake/ConfigureChecks.cmake: added check 
197         for setrlimit. 
198         * test/test-segfault.c: only include setrlimit stuff only 
199         when available.  
200
201 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
202
203         * test/test-segfault.c: unix compile fix.
204         * dbus-win.patch: removed obsolate patches.
205
206 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
207
208         * bus/activation.c: removed obsolate include header.
209         * test/test-segfault.c: win32 compile fix, rlimit 
210         isn't available on win32.
211         * dbus-win.patch: removed some more patches, they
212         are applied or obsolate 
213
214 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
215
216         * bus-win.patch: fixes unix listen problems, dbus-test 
217         now runs.
218
219 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
220
221         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
222         cmake/CMakeLists.txt: win32 compile fix
223
224 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
225
226         * dbus-win.patch, README.win: added available win32 
227         patches from windbus project (http://sf.net/projects/windbus)
228
229 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
230
231         * bus/activation.c: (bus_activation_activate_service):
232         fixed call to _dbus_spawn_async_with_babysitter().
233
234 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
235
236         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
237         added environment pointer as function parameter, used on win32.
238
239         * test/spawn-test.c: fixed call to above mentioned function.
240
241 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
242
243         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
244         added configure check for unistd.h.
245
246 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
247
248         * test/Makefile.am: fixed test data copy problem in 
249         out of source build, when sources came from svn or cvs. 
250
251 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
252
253         * dbus/*-win.*,bus/*-win.*: added win32 platform related
254         files. These files are only added to the cmake build system.  
255         The missing dbus-win.patch file will be added later. 
256
257 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
258
259         * cmake: new directory, contains cmake build support.
260         See http://www.cmake.org for more informations.
261         Currently only unix will be buildable because some 
262         win32 required files are still missing. 
263
264 2007-03-03  Thiago Macieira  <thiago@kde.org>
265
266         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
267         output and add it to the DBusError message we return.
268
269         * tools/dbus-launch.1:
270         * tools/dbus-launch.c: Add option --close-stderr to, well,
271         close stderr before starting dbus-daemon.
272
273 2007-01-31  Havoc Pennington  <hp@redhat.com>
274
275         * bus/dbus-daemon.1.in: write a section in the man page on running
276         a test daemon for debugging purposes
277
278 2007-01-26  Havoc Pennington  <hp@redhat.com>
279
280         * bus/session.conf.in: override all the default limits with much
281         higher limits on the session bus, there is no reason the session
282         bus should have low limits
283
284         * bus/config-parser.c (bus_config_parser_new): increase default
285         limits so they are less likely to be hit; in particular the max
286         replies per connection was way too low
287
288 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
289
290         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
291         a pointer to the tutorial maintained as part of dbus-python
292
293 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
294
295         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
296         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
297         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
298
299 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
300
301         * tools/dbus-monitor.c: gettimeofday() is not available 
302         on windows so we have to provide our own. It's taken from 
303         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
304
305 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
306
307         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
308         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
309         is in dbus-sysdeps-win.c (not in this patch).
310
311         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
312         with InterlockedInc/Decrement. 
313         - Patches from Christian Ehrlicher
314         
315 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
316
317         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
318
319 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
320
321         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
322         fix mispaced const statement. - Patch from Peter Kümmel
323
324 2006-12-19  Ray Strode  <rstrode@redhat.com>
325
326         * bus/bus.c (process_config_every_time):
327         don't overwrite existing bus context activation object
328         until after we've checked that the new activation is
329         valid.
330
331         * bus/main.c 
332         (signal_handler), (handle_reload_watch):
333         don't call exit() on failure, instead make do and keep
334         going.
335         (close_reload_pipe): new function to turn off
336         hangup-causes-config-reload behavior if an unexpected
337         error occurs
338
339 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
340
341         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
342         correctness fix. - Patch from Christian Ehrlicher
343
344 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
345
346         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
347         we should also use it. - Patch from Christian Ehrlicher
348
349 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
350   
351         * dbus-sysdeps-util.c: added win32 related tests
352
353 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
354
355         * dbus/dbus-string.c (_dbus_string_pop_line),
356         bus/desktop-file.c (parse_section_start,
357         parse_comment_or_blank,parse_key_value,): uses
358         _dbus_string_find_eol() to support platform independent eol style.
359
360 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
361
362         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
363         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
364               _dbus_string_find_eol().
365         Approved by: Havoc Pennington.
366
367 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
368
369         * configure.in: Added switch to disable user_database caching.
370
371         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
372         be able disable user_dabase caching.
373
374 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
375
376         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
377         struct. It is unnecessary we have a global one already. Also remove 
378         bus_context_get_user_database function, it is no longer needed.
379         Flush the global database on reload.
380
381         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
382         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
383
384         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
385         Add _dbus_user_database_flush_system. 
386         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
387         Small unrelated change in _dbus_is_a_number: change 
388         _dbus_string_parse_int to _dbus_string_parse_uint. 
389
390         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
391         _dbus_groups_from_uid.
392
393         * bus/policy.c, bus/policy.h: Change call to 
394         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
395         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
396         needs it.
397
398 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
399
400         * bus/signal.c: Fix match_rule_equal errata
401         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
402         <kimmo.hamalainen@nokia.com>)
403
404 2006-11-19  Thiago Macieira  <thiago@kde.org>
405
406         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
407         _dbus_pthread_condvar_wait,
408         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
409         pthread_self() after coming back from a conditional variable
410         wait as well as in one codepath where it was forgotten.
411         Approved by: Havoc Pennington.
412
413 2006-11-17  Havoc Pennington  <hp@redhat.com>
414
415         * update-dbus-docs.sh: allow setting fd.org username via env
416         variable. Make it run autogen with --enable-xml-docs=yes
417         --enable-doxygen-docs=yes so configure will fail if the required
418         tools are missing.
419
420 2006-11-17  Havoc Pennington  <hp@redhat.com>
421
422         * doc/dbus-faq.xml: minor FAQ tweaks
423
424 2006-11-14  Havoc Pennington  <hp@redhat.com>
425         
426         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
427         dbus_get_local_machine_id() to its own file, no substantive
428         changes. There are a couple other things we might want to add that
429         are "misc" so moving out of dbus-connection.[hc] which is big
430         enough already.
431         
432 2006-11-14  Havoc Pennington  <hp@redhat.com>
433
434         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
435         UUID had the timestamp last, but the implementation had it first;
436         move it to last since I think it's a tiny bit nicer (easier to
437         compare at a glance, faster to sort, less code), and will not
438         cause any practical compatibility problems. Also, always convert
439         the timestamp to big endian.
440
441         * doc/dbus-specification.xml: Clean up the docs on the UUID.
442
443         * tools/dbus-uuidgen.1: more prominently say it is not suitable
444         as a replacement for regular uuidgen/RFC4122.
445
446 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
447
448         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
449         the correct value so we don't assert when initalizing recursive threads
450
451         * test/name-test/test-thread-init.c: call dbus_threads_init_default
452         instead of _dbus_threads_init_debug since it is more of a real world
453         test
454
455 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
456
457         * Released 1.0.0
458
459 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
460
461         * AUTHORS: added Peter and Tor of windows porting fame
462
463 2006-11-08  Havoc Pennington  <hp@redhat.com>
464
465         * doc/dbus-specification.xml: add a note about protocol stability
466
467         * doc/TODO: Remove "important for 1.0" section, replace with
468         "important for 1.2" section
469         
470 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
471
472         * README: remove some of the out of date flags
473
474         * doc/TODO: Remove todo items which are done
475
476 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
477
478         * tools/dbus-monitor.c: Handle sigint so we flush stdout
479         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
480
481 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
482
483         * tools/dbus-monitor.1: update the manpage for dbus-monitor
484         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
485
486 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
487
488         * AUTHORS: Update with all people listed in the ChangeLog
489
490 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
491
492         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
493         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
494
495 2006-11-07  Havoc Pennington  <hp@redhat.com>
496
497         * HACKING: Update release instructions to include stuff about
498         stable releases, branching, etc. May not be totally correct,
499         please fix if needed, but keep instructions up-to-date so we do
500         each stable release consistently in the future.
501
502 2006-11-07  Havoc Pennington  <hp@redhat.com>
503
504         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
505         documentation updates. Bump faq/spec versions (not to 1.0; I don't
506         think the spec will be "finished"/1.0 when we ship the 1.0 library).
507
508 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
509
510         * bus/bus.c: Missed patch - pass in the context to the directory watch
511
512 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
513
514         * Released D-Bus 1.0 RC 3(0.95)
515
516 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
517
518         * bus/activation.c (bus_activation_new): don't fail if we can not read
519         the directory as it may not exist
520
521 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
522
523         * bus/config-parser.c (service_dirs_find_dir): use 
524         _dbus_list_get_next_link so we don't get stuck in an infinite loop
525         (start_busconfig_child): move processing of standard_session_servicedirs
526         tags here because they have no content
527         (bus_config_parser_content): check we don't have content in 
528         standard_session_servicedirs tag
529
530 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
531
532         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
533         Packagers need to own this directory
534
535 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
536
537         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
538         <standard_session_servicedirs> tag with a <sevicedir> tag that
539         points to the test service directory
540
541 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
542
543         * configure.in: Add a check for DIR *dirp->dd_fd
544
545         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
546         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
547         of both Solaris and Irix
548
549 2006-11-01  Havoc Pennington  <hp@redhat.com>
550
551         * bus/dbus-daemon.1.in: document standard_session_servicedirs
552
553 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
554
555         * configure.in: expose DBUS_DATADIR
556         
557         * bus/config-parser.c: add the standard_session_servicedirs element
558         to the parser
559         (bus_config_parser_content): process the standard_session_servicedirs
560         element by getting the standard directories from sysdeps and merging
561         them into the service directory list
562         (test_default_session_servicedirs): make sure we get what we expect
563
564         * bus/session.conf.in: replace the servicedir tag with the 
565         standard_session_servicedirs tag
566
567         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
568         dbus-sysdeps.h to avoid circular header dependencies
569
570         * dbus/dbus-sysdeps.h: add the typedef of DBusList
571
572         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
573         which takes a string of directories delimited by colons, parses them 
574         out, appends a suffix and puts them in a list ignoring empty elements
575         (_dbus_get_standard_session_servicedirs): returns the standard 
576         directories for a session bus to look for service activation files
577         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
578         DBUS_DATADIR directories
579
580         * test/data/valid-config-files/many-rules.conf: add the 
581         standard_session_servicedirs tag to the valid config file tests
582
583 2006-10-30  Havoc Pennington  <hp@redhat.com>
584
585         * tools/dbus-launch.1, doc/TODO: capture intent to change the
586         command line options of dbus-launch a bit post 1.0
587
588 2006-10-27  Havoc Pennington  <hp@redhat.com>
589         
590         * dbus/dbus-connection.c (dbus_connection_open_private): document
591         how to choose shared vs. private connections
592
593 2006-10-27  Havoc Pennington  <hp@redhat.com>
594
595         * dbus/dbus-test.c: enclose more of the file in the
596         DBUS_BUILD_TESTS check.
597
598         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
599         DBUS_DISABLE_ASSERT case.
600
601         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
602         that it only works on the server side
603
604         * dbus/dbus-bus.c: add a global lock covering the BusData we
605         attach to each connection
606         (internal_bus_get): lock our access to the BusData
607         (dbus_bus_register): lock the entire registration process
608         with _DBUS_LOCK(bus_datas). If we get the lock and 
609         registration is already complete, silently return (vs. previous
610         behavior of aborting).
611         (dbus_bus_set_unique_name): lock the BusData
612         (dbus_bus_get_unique_name): lock the BusData
613
614 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
615
616         * bus/config-parser.c (service_dirs_find_dir, 
617         service_dirs_append_unique_or_free, 
618         service_dirs_append_link_unique_or_free): New static methods
619         for only appending unique service directory names into
620         the service directory list
621         (merge_included, bus_config_parser_content): Only add unique
622         service directory names into the list
623
624 2006-10-27  Havoc Pennington  <hp@redhat.com>
625
626         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
627         variables volatile, suggested by Thiago. Document struct fields.
628         (PTHREAD_CHECK): remove pthread error checking if assertions are
629         disabled, should reduce the no-assertions case to the bare
630         minimum code.
631
632 2006-10-26  Havoc Pennington  <hp@redhat.com>
633         
634         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
635         to be recursive
636         (_dbus_pthread_mutex_unlock): make it recursive
637         (_dbus_pthread_condvar_wait): save/restore the recursion count
638         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
639
640 2006-10-26  Havoc Pennington  <hp@redhat.com>
641
642         * doc/dbus-specification.xml: clarify the UUID text slightly
643
644         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
645         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
646         in preparation for being able to extend them for e.g. recursive
647         mutexes.
648
649 2006-10-26  Havoc Pennington  <hp@redhat.com>
650
651         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
652         condition variables relate to recursive mutexes.
653         
654         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
655         dbus/dbus-threads.c: Split the platforms-specific thread 
656         implementations into their own files.
657         
658         * dbus/dbus-sysdeps-pthread.c
659         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
660         was backward. Not that anything uses it.
661
662 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
663
664         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
665         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
666         needs to be cleaned up more.
667
668         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
669         up the CREDS issue.
670
671 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
672
673         * configure.in, dbus-1.pc.in: Check to see if thread methods 
674         are in glibc or libpthread and add -lpthread to the link stage 
675         if it is the latter
676
677 2006-10-26  Thiago Macieira  <thiago@kde.org>
678
679         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
680         bug 8780: the connection lock is only required while recording
681         the shared connection, so protect only that code
682         section. Don't require connection_lookup_shared to return a
683         locked connection.
684
685 2006-10-26  Thiago Macieira  <thiago@kde.org>
686
687         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
688         check if get_machine_uuid() returns NULL before proceeding any
689         further: we can't init the X atoms or create a session file
690         name if there is no machine ID.
691         This solves a crash reported by some users if
692         --exit-with-session was used without --autolaunch=<machine-id>
693
694 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
695
696         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
697         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
698
699         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
700         before we run dbus-launch
701
702         * configure.in: define TEST_BUS_BINARY to be the full path to 
703         dbus-daemon in the build root 
704
705 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
706
707         * dbus/Makefile.am:
708         * tools/Makefile.am:
709         * toos/dbus-uuidgen.1:
710                 Move the machine-id file to /var/lib/dbus 
711
712 2006-10-24  David Zeuthen  <davidz@redhat.com>
713
714         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
715         _dbus_assert (thread_init_generation != _dbus_current_generation)
716         not _dbus_assert (thread_init_generation == _dbus_current_generation)
717
718 2006-10-24  Thiago Macieira  <thiago@kde.org>
719
720         * dbus/dbus-sysdeps.h:
721         * dbus/dbus-sysdeps-unix.c: Add function
722         _dbus_make_file_world_readable that chmods a file to 0644.
723
724         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
725         Avoid writing to the static "argv" array, thereby avoiding a
726         COW on the child process.
727
728         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
729         call _dbus_make_file_world_readable on the created file.
730
731 2006-10-23  David Zeuthen  <davidz@redhat.com>
732
733         * dbus/dbus-memory.c: Use atomic variable to protect
734         n_blocks_outstanding otherwise OOM will be reported using SMP on
735         some arches
736         
737         * bus/dispatch.c: Add missing end of line characters
738
739         * bus/desktop-file.c (parse_section_start, parse_key_value) 
740         (bus_desktop_file_load): Propertly handle OOM
741
742         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
743         thread_init_generation equals _dbus_current_generation, not 0
744
745 2006-10-22  Havoc Pennington  <hp@redhat.com>
746
747         * dbus/dbus-connection-internal.h: move prototype of
748         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
749         it isn't in a public header and doesn't end up in the DBusBus
750         group in Doxygen
751
752 2006-10-21  Havoc Pennington  <hp@redhat.com>
753
754         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
755         the tarball if packagers want to run it
756
757         * cleanup-man-pages.sh: Add a script which munges all the internal
758         API man pages out of the Doxygen output. This reduces the size of
759         the installed man pages from 7 to 2 megs, and avoids
760         namespace-polluting pages. Right now (like Doxygen) this script
761         isn't in the build, it's something packagers can do manually.
762
763 2006-10-21  Havoc Pennington  <hp@redhat.com>
764
765         * dbus/dbus-connection.h: don't include the watch/timeout
766         functions in connection section
767
768 2006-10-21  Havoc Pennington  <hp@redhat.com>
769
770         * Documentation! Whee! Doxygen now 100% silent. If you make it
771         angry again, you will be punished.
772         
773 2006-10-21  Havoc Pennington  <hp@redhat.com>
774
775         * More documentation - all public API now documented according to
776         Doxygen
777
778 2006-10-21  Havoc Pennington  <hp@redhat.com>
779
780         * Document a bunch of undocumented stuff
781         
782 2006-10-21  Havoc Pennington  <hp@redhat.com>
783
784         * Clean up Doxygen group markers for public API so Doxygen finds
785         everything (not comprehensively fixed for private API).
786         Means all remaining Doxygen warnings are just about missing docs
787         and thus pretty simple to resolve.
788         
789 2006-10-21  Havoc Pennington  <hp@redhat.com>
790         
791         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
792
793         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
794         as DBUS_GNUC_DEPRECATED
795
796 2006-10-21  Havoc Pennington  <hp@redhat.com>
797
798         * Move all private API into the private Doxygen group sections of
799         the files, so they don't show up in the public API docs
800         
801 2006-10-21  Havoc Pennington  <hp@redhat.com>
802
803         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
804         dbus_message_iter_get_array_len().
805
806         * throughout: documentation improvements.
807
808 2006-10-20  Havoc Pennington  <hp@redhat.com>
809
810         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
811         matter, and the message-loader-breaker thing since nobody is going
812         to do it.  Add an item to 1.0 about supporting recursive locks
813         in dbus_threads_init_default() though, since it should be easy.
814
815         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
816         Fix this in the !dispatch case to avoid busy-looping after
817         disconnection
818
819         * More misc docs improvements
820
821 2006-10-19  Havoc Pennington  <hp@redhat.com>
822
823         * more Doxygen-related fixes (lots of moving things from the
824         public to internal section in dbus-connection.c)
825
826 2006-10-19  Havoc Pennington  <hp@redhat.com>
827
828         * Fix a pile of Doxygen warnings and missing docs
829
830 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
831
832         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
833         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
834         instead of a void *.  kqueue uses this to get the context's loop
835         while the other modules ignore the parameter.  This allows us to
836         avoid platform conditionals
837
838         * bus/bus.c (process_config_postinit): Pass in the context to the 
839         watch
840
841 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
842
843         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
844         when starting the system bus
845
846 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
847
848         * configure.in: More fixups for cross compile (Patch from 
849         Marco Pracucci <development at pracucci dot com>)
850
851 2006-10-17  Havoc Pennington  <hp@redhat.com>
852
853         * tools/dbus-send.c (main): don't close shared connection, fix
854         from Timo Hoenig
855
856 2006-10-17  Havoc Pennington  <hp@redhat.com>
857
858         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
859
860         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
861         since realistically it doesn't look like we'll be changing it
862         anymore.
863
864 2006-10-17  Havoc Pennington  <hp@redhat.com>
865
866         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
867         be used for return_if_fail type warnings; prefixes the pid, and
868         fatal by default.
869
870 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
871
872         * configure.in: Released 1.0 RC 2(0.94)
873         Add check for -fPIC and enable it if available
874
875 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
876
877         * doc/TODO: Remove the check TODO item
878
879 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
880
881         * dbus-transport-socket.c (exchange_credentials):
882         Print out more detailed errors if reading or sending
883         credentials fail (Patch from Julio M. Merino Vidal 
884         <jmmv at NetBSD dot org>)
885
886 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
887
888         * configure.in: when checking for posix getpwnam_r assume true
889         for cross compiles
890
891 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
892
893         * configure.in: Check for gethostbyname first before we check for it
894         in libnsl.  On gnu systems it is implemeneted 
895
896 2006-10-13  Havoc Pennington  <hp@redhat.com>
897
898         * dbus/dbus-connection.c
899         (dbus_connection_send_with_reply_and_block): fix to handle closed
900         connections, from Tambet Ingo bug #8631
901
902 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
903
904         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
905
906 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
907
908         * test/name-test/Makefile.am: don't link against both libdbus and
909         libdbus-convenience
910
911 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
912
913         * configure.in: check for dirfd even if it is a macro
914         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
915
916 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
917
918         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
919         avoid using dirfd on systems that don't have dirfd 
920         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
921
922 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
923
924         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
925         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
926
927         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
928         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
929         macro because _dbus_abort calls it
930
931         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
932         works
933
934 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
935
936         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
937         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
938
939 2006-10-02  Thiago Macieira  <thiago@kde.org>
940
941         * tools/dbus-launch.c (main): make it complain and abort
942         execution in case an unknown option is given. Also, process
943         the '--' argument as the end of arguments.
944
945 2006-10-01  Havoc Pennington  <hp@redhat.com>
946
947         * tools/dbus-launch.c (print_variables): if no syntax is given,
948         don't print something that's sort-of-half-sh-syntax, just print
949         a plain key-value pairs thing.
950
951         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
952         the local machine representation (but still have the hostname in
953         the display). Remove the hostname from the display if it is
954         localhost. Change session files to be named
955         ~/.dbus/session-bus/machine-display. Change X atoms to be
956         underscore-prefixed so nobody whines about ICCCM compliance.
957         Otherwise name them the same as the env variables.
958         Change session file format to include key-value pairs and an
959         explanatory comment. Keys are the same as the env variables.
960         (set_address_in_x11): X property format can't depend on
961         sizeof(pid_t) on a particular machine, fix to always be 32 bits
962
963         * tools/dbus-launch.c: make --autolaunch take a machine id
964         argument. If --autolaunch is used with a program to run, complain
965         for now (but add a FIXME). Also, don't look for existing bus if 
966         there's a program to run (but add a FIXME).
967
968         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
969         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
970         just to get this, and avoids duplicating uuid-reading code).
971
972         * tools/dbus-launch.1: clarify various things
973         
974 2006-10-01  Havoc Pennington  <hp@redhat.com>
975
976         * test/test-service.c (path_message_func): remove broken extra
977         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
978
979         * test/test-shell-service.c (path_message_func): same fix
980         
981         * dbus/dbus-connection.c
982         (_dbus_connection_get_dispatch_status_unlocked): break up the
983         function a little for clarity and fix the notification of
984         dbus-bus.c to not require dispatch to be complete
985
986         * dbus/dbus-connection.c (dbus_connection_unref): improve the
987         warning when you try to finalize an open connection.
988         
989 2006-10-01  Havoc Pennington  <hp@redhat.com>
990
991         * dbus/dbus-bus.c
992         (internal_bus_get): only weak ref the connection; this means 
993         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
994         called safely in any context
995         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
996         unref
997
998         * dbus/dbus-connection.c
999         (_dbus_connection_get_dispatch_status_unlocked): move
1000         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1001         when queuing Disconnected instead of when the Disconnected message
1002         arrives, so dbus_bus_get() won't return closed connections.
1003         
1004 2006-10-01  Havoc Pennington  <hp@redhat.com>
1005
1006         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1007         Add a hack to make DBusNewConnectionFunction work right.
1008
1009         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1010         the hack here. Also, fix the todo about refcount leak.
1011         
1012         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1013         and use the hack here
1014         
1015         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1016         "shareable" flag; this was completely broken, since it meant 
1017         dbus_connection_open() returned a connection of unknown
1018         shared-ness. Now, we always hold a ref on anything opened 
1019         as shareable.
1020
1021         Move the call to notify dbus-bus.c into
1022         connection_forget_shared_unlocked, so libdbus consistently forgets
1023         all its knowledge of a connection at once. This exposed numerous
1024         places where things were totally broken if we dropped a ref inside
1025         get_dispatch_status_unlocked where
1026         connection_forget_shared_unlocked was previously, so move
1027         connection_forget_shared_unlocked into
1028         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1029         exit_on_disconnect here.
1030
1031         (shared_connections_shutdown): this assumed weak refs to the
1032         shared connections; since we have strong refs now, the assertion 
1033         was failing and stuff was left in the hash. Fix it to close
1034         still-open shared connections.
1035         
1036         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1037         debug pipe connections
1038         
1039         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1040         dbus-bus.c if the closed connection is in fact shared
1041         (_dbus_connection_close_possibly_shared): rename from 
1042         _dbus_connection_close_internal
1043         (dbus_connection_close, dbus_connection_open,
1044         dbus_connection_open_private): Improve docs to explain the deal
1045         with when you should close or unref or both
1046
1047         * dbus/dbus-bus.c
1048         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1049         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1050         loop over all connections
1051
1052         * test/test-utils.c (test_connection_shutdown): don't try to close
1053         shared connections.
1054
1055         * test/name-test/test-threads-init.c (main): fix warnings in here
1056
1057         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1058         env variable to cause blocking waiting for gdb; drop
1059         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1060         unconditionally.
1061
1062         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1063         so _dbus_print_backtrace works.
1064
1065         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1066         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1067         of -rdynamic/-export-dynamic
1068         
1069 2006-09-30  Havoc Pennington  <hp@redhat.com>
1070
1071         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1072         (internal_bus_get): fix screwy code formatting. whoever committed
1073         that was not paying attention!
1074
1075 2006-09-30  Havoc Pennington  <hp@redhat.com>
1076
1077         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1078         reflect addition of interfaces.
1079
1080         * doc/dbus-specification.xml: describe a new
1081         org.freedesktop.DBus.Peer.GetMachineId method
1082
1083         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1084         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1085         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1086         at end of skip_white
1087         (_dbus_string_chop_white): new function
1088
1089         * bus/connection.c (bus_connections_setup_connection): call
1090         dbus_connection_set_route_peer_messages.
1091
1092         * dbus/dbus-connection.c
1093         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1094         support a GetMachineId method.
1095
1096         Also, support a new flag to let the bus pass peer methods through
1097         to apps on the bus, which can be set with
1098         dbus_connection_set_route_peer_messages.
1099
1100         Finally, handle and return an error for anything unknown on the
1101         Peer interface, which will allow us to extend the Peer interface
1102         in the future without fear that we're now intercepting something
1103         apps were wanting to see.
1104         
1105         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1106         dbus/dbus-uuidgen.c
1107
1108         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1109         binary here, since most of the code is already in libdbus
1110
1111         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1112         uuid from the system config file
1113
1114         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1115         (_dbus_read_uuid_file_without_creating) 
1116         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1117         uuid-related functions, partly factored out from dbus-server.c
1118
1119         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1120         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1121
1122         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1123
1124         * tools/dbus-cleanup-sockets.1: explain what the point of this
1125         thing is a bit more
1126
1127         * autogen.sh (run_configure): add --config-cache to default
1128         configure args
1129
1130         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1131         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1132
1133         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1134         don't try to save address, fixes crash in make check
1135         
1136 2006-09-30  Thiago Macieira  <thiago@kde.org>
1137
1138         * configure.in: add DBUS_BINDIR as a #define to C source code.
1139
1140         * tools/dbus-launch.c
1141         * tools/dbus-launch.h
1142         * tools/dbus-launch-x11.c:
1143         * tools/dbus-launch.1: Add the --autolaunch option to
1144         dbus-launch, which makes it scan for an existing session
1145         started with --autolaunch. With that option, it also creates
1146         an X11 window and saves the bus address and PID to it.
1147
1148         * dbus/dbus-sysdeps.h:
1149         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1150         a function that runs "dbus-launch --autolaunch" to retrieve
1151         the running D-Bus session address (or start one if none was running)
1152
1153         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1154         address protocol, which tries to get the running session from
1155         dbus-launch.
1156
1157         * dbus/dbus-bus.c:
1158         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1159         D-Bus session bus address.
1160
1161         * dbus/dbus-connection.c: Fix horrible typo in error message.
1162
1163 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1164
1165         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1166
1167 2006-09-17  Havoc Pennington  <hp@redhat.com>
1168
1169         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1170         fix so that if unix_user_function is set on windows, we still
1171         do the default check that the auth identity matches the bus identity
1172
1173 2006-09-16  Havoc Pennington  <hp@redhat.com>
1174
1175         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1176         to _dbus_transport_open_platform_specific,
1177         _dbus_transport_open_socket,
1178         and _dbus_transport_open_debug_pipe
1179
1180         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1181
1182 2006-09-16  Havoc Pennington  <hp@redhat.com>
1183
1184         Attempt auditing public API to remove all cases where a Unix
1185         function returns weird emulated goo to Windows. This probably 
1186         breaks the bus daemon on Windows, to fix it again we may 
1187         need to stop processing unix-specific config options on Windows,
1188         and may need to add Windows-specific public API or config options.
1189         
1190         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1191         to reflect added interfaces; should not break soname.
1192         
1193         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1194         not invoke unix user function on Windows. Kind of a hacky fix, but 
1195         we don't want a "unix uid" leaking out on Windows.
1196
1197         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1198         to get the socket fd on Windows or UNIX
1199         (dbus_connection_get_unix_fd): make this always fail on Windows
1200
1201 2006-09-16  Havoc Pennington  <hp@redhat.com>
1202
1203         * dbus/dbus-server.c (dbus_server_listen): change how this works
1204         to be able to delegate to a set of handlers that can succeed,
1205         fail, or choose not to handle. Allows us to have 
1206         dbus_server_listen_platform_specific.
1207
1208         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1209         factor out the tcp socket stuff to be used on windows, leaving
1210         unix domain socket only in dbus-socket-unix.c
1211
1212         * dbus/dbus-transport-socket.c
1213         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1214         stuff to be used on windows, leaving unix domain socket only 
1215         in dbus-transport-unix.c
1216
1217         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1218         temporary hack to be sure this fails on windows
1219         (dbus_connection_get_unix_process_id): ditto
1220
1221 2006-09-16  Havoc Pennington  <hp@redhat.com>
1222
1223         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1224         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1225         _dbus_open_socket so the domain/type/protocol from system headers
1226         are not required. This is kind of pointless though unless we move
1227         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1228         sysdeps-unix.c, which would mean adding a wrapper around
1229         bind/listen/etc.
1230         Also, add DBusError to the socket-opening functions so they 
1231         don't require use of errno.
1232
1233 2006-09-16  Havoc Pennington  <hp@redhat.com>
1234
1235         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1236         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1237
1238         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1239         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1240         functions specifically for sockets only, and move generic 
1241         read/write/open/close into unix-specific code.
1242
1243 2006-09-14  Havoc Pennington  <hp@redhat.com>
1244
1245         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1246         complaint about accessing revents when poll returns 0, from Julian Seward.
1247
1248 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1249
1250         * Released 1.0 RC 1 (0.93) 
1251
1252 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1253
1254         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1255         use _dbus_close instead of close
1256
1257 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1258
1259         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1260         credentials.  Fixes "external" authentication under e.g. NetBSD
1261         which does not support any other socket credentials mechanism.
1262         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1263
1264 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1265
1266         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1267         dbus_threads_init and be used by the dbus mutex functions to
1268         avoid deadlocks.
1269
1270         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1271
1272 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1273
1274         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1275         use threadsafe readdir_r instead of readdir
1276
1277 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1278
1279         * dbus-threads.c (dbus_threads_init_default): New method for
1280         initializing the internal thread implementation (Patch from
1281         Alexander Larsson <alexl at redhat dot com>)
1282
1283 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1284
1285         * remove a bunch of todo items from the 1.0 list
1286
1287 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1288
1289         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1290         key not found
1291
1292 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1293
1294         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1295         complex debugging code
1296
1297         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1298         between the test suite ifdefs
1299         (_dbus_verbose_bytes): return if verbosity is not enabled 
1300
1301 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1302
1303         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1304         remove DBusMark
1305
1306 2006-09-10  Havoc Pennington  <hp@redhat.com>
1307
1308        patch mostly by Peter Kümmel, bug #8211
1309         
1310         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1311         unix-specific stuff in dbus-sysdeps.c
1312
1313         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1314         and move unix-specific stuff to dbus-sysdeps-unix.c
1315
1316         * configure.in: check HAVE_ERRNO_H
1317         
1318 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1319
1320         * bus/test-main.c (main): Initialize threading during tests
1321
1322         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1323         Unlock connection on error
1324         (generate_local_error_message): static method for generating
1325         an error message when we don't have a message to reply to
1326         (_dbus_connection_block_pending_call): Send a disconnect error
1327         instead of just a timeout (NULL) when the bus gets disconnected
1328         while blocking for a reply.
1329         
1330 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1331
1332         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1333         filters (Patch from Kimmo Hämäläinen 
1334         <kimmo dot hamalainen at nokia dot com>)
1335
1336 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1337
1338         * dbus/dbus-connection-internal.h: Add prototype for 
1339         _dbus_connection_test_get_locks to remove warning
1340
1341 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1342
1343         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1344         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1345         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1346
1347 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1348
1349         * Clean up close calls to use _dbus_close (Patch from 
1350         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1351
1352 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1353
1354         * doc/TODO:
1355         - Remove pending call locking todo item
1356         - dbus_connection_open now holds hard ref.  Remove todo item
1357         - do proper locking on _dbus_bus_check_connection_and_unref
1358           and handle DBUS_BUS_STARTER. Remove todo item
1359         - Warn on closing of a shared connection.  Remove todo item
1360
1361         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1362         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1363         so we don't get the warning when closing shared connections
1364
1365         * test/test-service.c, test/test-shell-service.c: Applications
1366         don't close shared connections themselves so we unref instead of
1367         close
1368
1369         * test/test-utils.c (test_connection_shutdown): Close the connection
1370
1371         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1372         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1373         method on a locked connection.  
1374         Make sure we call _dbus_connection_unref_unlocked instead of 
1375         dbus_connection_unref also.
1376         Handle DBUS_BUS_STARTER correctly
1377
1378         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1379         Mark as shared and hard ref the connection
1380         (connection_forget_shared_unlocked): Remove the hard ref from the 
1381         connection
1382         (_dbus_connection_close_internal_and_unlock):  New internal function
1383         which takes a locked connection and unlocks it after closing it
1384         (_dbus_connection_close_internal): New internal function which acts
1385         like the origonal dbus_connection_close method by grabbing a connection
1386         lock and calling _dbus_connection_close_internal_and_unlock
1387         (dbus_connection_close): Public close method, warns when the app
1388         trys to close a shared connection
1389
1390 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1391
1392         * bus/driver.c:
1393         (bus_driver_generate_introspect_string): New method for populating
1394         a DBusString with the introspect data
1395         (bus_driver_handle_introspect): Move introspect generation code to 
1396         bus_driver_generate_introspect_string
1397
1398         * bus/main.c:
1399         (introspect): New function which prints out the intropect data and
1400         exits
1401         (main): Add a --introspect switch
1402
1403 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1404
1405         * doc/TODO: Removed dtd publishing item.  
1406         It seems the dtd has already been added at
1407         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1408
1409 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1410
1411         * doc/TODO, various source files: Audited todo's and FIXME's and
1412         prepended the ones we should be looking at with 1.0.  Those
1413         prepended with 1.0? need clerification or might not be needed
1414         for 1.0
1415
1416 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1417
1418         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1419         NULL in the public API (Patch from Kimmo Hämäläinen 
1420         <kimmo dot hamalainen at nokia dot com>)
1421
1422 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1423
1424         * configure.in: Fix for OS-X compile time endian issues (patch from
1425         Benjamin Reed <ranger at befunk dot com>)
1426
1427 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1428
1429         * configure.in: Check for no-common compiler flag (OS-X fix from
1430         Benjamin Reed <ranger at befunk dot com>)
1431
1432 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1433
1434         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1435         <fcrozat at mandriva dot com>)
1436
1437 2006-08-29  Havoc Pennington  <hp@redhat.com>
1438
1439         * test/test-service.c (path_message_func): fix lack of return value
1440
1441         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1442         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1443         any more sense than on anything else in this file.
1444         (_dbus_get_tmpdir): add const to return value, and keep the
1445         results of the various getenv around in a static variable.
1446
1447 2006-08-29  Havoc Pennington  <hp@redhat.com>
1448
1449         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1450         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1451
1452 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1453
1454         * test/Makefile.am: change find to use syntax that works with non
1455         gnu versions of find
1456
1457 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1458
1459         * dbus/dbus-transport.c: fix invalid deref when checking if
1460         a vtable method exists (Patch from Christian Ehrlicher 
1461         <ch dot ehrlicher at gmx dot de>)
1462
1463 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1464
1465         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1466         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1467         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1468         <bernard at brenda-arkle dot demon dot co dot uk>)
1469
1470 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1471
1472         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1473         default case
1474
1475 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1476
1477         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1478         it works on any system providing this interface, not only FreeBSD.
1479         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1480
1481 2006-08-20  Havoc Pennington  <hp@redhat.com>
1482
1483         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1484         the docs
1485
1486 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1487
1488         * Released 0.92 
1489
1490 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1491
1492         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1493         to reflect the init late change
1494
1495         * bus/bus.c (bus_context_new): Check user before we fork so we can
1496         print out an error message a user will be able to see
1497
1498 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1499
1500         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1501
1502         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1503         Add two more global locks for use on windows platforms.  These are
1504         unused on non-windows platforms but are not ifdefed out to avoid
1505         potential bugs (i.e. the few bytes lost does not warrent the extra
1506         maintanence and complexity that having seperate sets of locks would
1507         cause)
1508
1509 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1510
1511         * bus/services.c (bus_registry_acquire_service): Return an error
1512         when an application tries to register the org.freedesktop.DBus Bus Name
1513
1514         * bus/services.c (bus_registry_release_service): Return an error
1515         when an application tries to release the org.freedesktop.DBus Bus Name
1516
1517 2006-08-17  Alp Toker  <alp@atoker.com>
1518
1519         * doc/dbus-specification.xml: Fix some minor typos.
1520
1521 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1522
1523         * configure.in: use $with_init_scripts instead of $operating_system
1524         to determine where to store the pid since the init scripts manipulate 
1525         the pid file (patch from Marcelo Ricardo Leitner 
1526         <marcelo dot leitner at terra dot com dot br>.  
1527
1528 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1529
1530         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1531         static DBusList *uninitialized_condvar_list to support new late 
1532         initialization threading model.  In this model threads can be initialized
1533         even after the D-Bus API has been used but still needs to be initialized 
1534         before the second thread has been started.  Mutexes and condvar addresses
1535         are stored in the two static lists and are replaced with actuall locks
1536         when threads are initalized.
1537         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1538         the location into the static list
1539         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1540         from the static list and freeing the mutex
1541         (_dbus_condvar_new_at_location): New method for creating a conditional 
1542         variable and placing the location into the static list
1543         (_dbus_condvar_free_at_location): New method for removing a conditional
1544         variable location from the static list and freeing the conditional variable 
1545         (init_uninitialized_locks): Atomic method which goes through the static 
1546         lists of mutex and condvar location and updates them with actuall locks
1547         (init_global_locks): changed to init_locks
1548         
1549         * dbus/dbus-connection.c:
1550         (_dbus_connection_test_get_locks): New method for tests to check connections
1551         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1552         condvar API
1553         (dbus_connection_allocate_data_slot): Pass in the global lock address
1554         to _dbus_data_slot_allocator_alloc
1555
1556         * dbus/dbus-dataslot.c:
1557         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1558         instead of the mutex itself
1559
1560         * dbus/dbus-message.c:
1561         (dbus_message_allocate_data_slot): Pass in the global lock address
1562         to _dbus_data_slot_allocator_alloc
1563
1564         * dbus/dbus-pending-call.c:
1565         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1566         to _dbus_data_slot_allocator_alloc
1567
1568         * dbus/dbus-server.c:
1569         (_dbus_server_init_base): Use the new at_location mutex API
1570         (dbus_server_allocate_data_slot): Pass in the global lock address
1571         to _dbus_data_slot_allocator_alloc
1572
1573         * test/name-test/test-threads-init.c: New test case for late thread
1574         initialization
1575
1576 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1577
1578         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1579         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1580         causes compile problems when asserts are turned off
1581         Keeping _dbus_warn for printing out the message so even if
1582         asserts are turned off the user gets the messages that something is 
1583         wrong 
1584
1585 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1586
1587         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1588
1589         * bus/services.c (bus_service_list_queued_owners):
1590         Add a pointer cast to fix compiler warning
1591
1592         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1593         return a NULL instead of FALSE since the return type
1594         is not expecting a boolean
1595
1596         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1597         Remove unused variable
1598
1599         * dbus/dbus-marshal-recursive-util.c (node_new):
1600         return a NULL instead of FALSE since the return type
1601         is not expecting a boolean
1602
1603         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1604         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1605         because we are expecting a pointer not a boolean
1606
1607         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1608         add void as the parameter so some compilers
1609         don't complain
1610
1611         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1612           _dbus_transport_new_for_tcp_socket):
1613         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1614         because we are expecting a pointer not a boolean
1615
1616         * test/shell-test.c (test_command_line):
1617         cast the second argument to _dbus_list_append to avoid compiler
1618         warnings
1619
1620         * test/test-names.c (main): remove unused variable
1621
1622         * test/test-service.c (check_hello_from_self_reply):
1623         Initialize echo_message and echo_reply to NULL
1624         
1625         * test/test-shell-service.c (handle_echo):
1626         Remove unused variable and cast the third parameter passed to
1627         dbus_connection_get_object_path_data to avoid compiler warrnings
1628
1629         * test/name-test/test-names.c (clear_message_queue):
1630         Remove unused function
1631
1632         * test/name-test/test-pending-call-dispatch.c:
1633         Fix format string in printf
1634
1635
1636 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1637
1638         * dbus/dbus-bus.c:
1639         * test/name-test/test-names.c:
1640         Remove test method dbus_bus_connection_get_unique_name because 
1641         we already have public method dbus_bus_get_unique_name that 
1642         does the exact same thing
1643
1644 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1645
1646         * dbus/dbus-signature.c:
1647         fix typos in Julio's previous patch which cause make check to fail
1648
1649 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1650
1651         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1652         In any case it was wrong since this is a test checking to see if
1653         address parsing is correct.  There was no need to get the true
1654         tmp directory.  
1655
1656 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1657
1658         * dbus/dbus-macros.h: Revert the addition of stddef.h
1659         as we should not be adding it to library headers 
1660
1661 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1662
1663         * dbus/dbus-signature.c:
1664         Fix the unit tests so that they work if assertions are not enabled.
1665         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1666
1667 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1668
1669         * tools/run-with-tmp-session-bus.sh:
1670         * test/name-test/run-test.sh:
1671         Remove bashisms (patch from Julio M. Merino Vidal
1672         <jmmv at NetBSD dot org>)
1673
1674 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1675
1676         * configure.in: add a version (>= 2.6.0) check for libxml2
1677
1678 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1679
1680         * configure.in: make sure the compiler supports -Wfloat-equal
1681         
1682         * bus/dir-watch-dnotify.c: move functional code after 
1683         variable declerations (C99 fix)  (patches from Jens Granseuer
1684         <jensgr at gmx dot net>
1685
1686 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1687
1688         * dbus/dbus-macros.h:
1689         add #include <stddef.h> so that Sun compilers don't complain about
1690         the defining NULL
1691
1692 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1693
1694         * dbus/dbus-sysdeps.c:
1695         * dbus/dbus-address.c:
1696         * bus/activation.c:
1697         * test/shell-test.c:
1698         don't hardcode tmp directory (patch from Dave Meikle 
1699         <dmk at davemeikle dot co dot uk>)
1700
1701 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1702
1703         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1704         Change an assert to a detailed warning and abort.  
1705         When allocator->lock != mutex it indicates that the user has failed
1706         to initalize threads before using the D-Bus library.  This warning
1707         helps the user identify the issue and fix their app.
1708
1709 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1710
1711         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1712         with cleanups of bugs found from Coverity reports:
1713
1714         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1715         close the file on error to avoid a leak
1716
1717         * bus/expirelist.c (bus_expire_list_test):
1718         Check for NULL on dbus_new0
1719
1720         * bus/activation.c (update_directory):
1721         remove dead code
1722
1723         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1724         Fix some leaks
1725
1726         * bus/bus.c (process_config_every_time):
1727         Fixed a leak
1728
1729         * bus/desktop-file.c (parse_key_value):
1730         Fixed leak
1731
1732         * bus/selinux.c (bus_selinux_id_table_insert):
1733         Fixed leak
1734
1735 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1736
1737         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1738         remove dead code
1739
1740 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1741
1742         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1743         #!/bin/bash
1744
1745 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1746
1747         * Doxyfile.in: fix the INPUT line so we can generate docs 
1748         when sourcedir != builddir (patch from Cygwin Ports maintainer
1749         <yselkowitz at users dot sourceforge dot net>
1750
1751 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1752
1753         * dbus/dbus-sysdeps.h:
1754         * dbus/dbus-sysdeps.c: 
1755         * dbus/dbus-string.c: 
1756         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1757         GLib's function which does the same thing
1758
1759         * configure.in:
1760         * bus/Makefile.am:
1761         * bus/dir-watch-default.c:
1762         * bus/dir-watch-dnotify.c:
1763         * bus/dir-watch-kqueue.c:
1764         Add kqueue directory watching for freebsd and split the directory
1765         watching code into seperate files per method/arch
1766         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1767
1768 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1769
1770         * configure.in:
1771         * tools/Makefile.am:
1772         * tools/dbus-launch.c:
1773         * bus/Makefile.am:
1774         allow --with-dbus-daemondir switch to be used to make the
1775         daemon install to a seperate bindir like /usr/libexec
1776         (patch from Brian Cameron <brian dot cameron at sun dot com)
1777
1778 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1779
1780         * bus/Makefile.am (install-data-hook): removed the slash after 
1781         $(DESTDIR) so we don't get the double slash which does not work
1782         in windows (patch from Andras Porjesz 
1783         <andras dot porjesz at siemens dot com>)
1784
1785 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1786
1787         * dbus/dbus-sysdeps.h:
1788         * dbus/dbus-sysdeps.c: 
1789           add _dbus_printf_length (patch from Peter Kümmel 
1790           <syntheticpp at gmx dot net>)
1791
1792 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1793
1794         * dbus/dbus-internals.c: unistd.h is not used 
1795         (_dbus_verbose_real): only enable verbose printing 
1796         if DBUS_VERBOSE environment var is set to '1'
1797         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1798
1799 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1800
1801         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1802         so we still compile on older gcc (patch from Frederic Peters 
1803         <fpeters at 0d dot be>
1804
1805 2006-08-04  Havoc Pennington  <hp@redhat.com>
1806
1807         * configure.in: add -Wdeclaration-after-statement
1808
1809         * dbus/dbus-connection.c: change all the pending call stuff to
1810         reflect the fact that pending call operations use the connection
1811         lock
1812
1813         * dbus/dbus-pending-call.c: add locking here
1814
1815         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1816         field const consistent with how message field is done
1817
1818 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1819
1820         * s/D-BUS/D-Bus/g
1821
1822 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1823
1824         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1825         <in7y118 at public.uni-hamburg dot de> - fix invalid
1826         read/write reported by valgrind
1827
1828 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1829
1830         * Released 0.91
1831
1832 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1833
1834         * dbus/dbus-connection.c:
1835         (_dbus_connection_attach_pending_call_unlocked):
1836         (connection_timeout_and_complete_all_pending_calls_unlocked):
1837         Make sure we set timeout_added on pending calls to FALSE when
1838         we remove the timeout from the connection
1839
1840 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1841
1842         * Removed some extra bindings stuff lingering around (thanks timo)
1843         * dbus-pendingcall.c (_dbus_pending_call_new): 
1844         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1845         when we tried to take a lock on an already locked connection
1846
1847 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1848
1849         * Released 0.90
1850
1851 2006-07-17  Havoc Pennington  <hp@redhat.com>
1852
1853         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1854         ints, reported by Owen Taylor
1855
1856 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1857
1858         * doc/TODO:
1859         * dbus/dbus-bus.c:
1860         * dbus-errors.c:
1861         * dbus/dbus-marshal-validate.c:
1862           Removed TODO items which were fixed or are no longer relevent
1863
1864 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1865
1866         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1867         Remove stray files from the stripped bindings
1868
1869 2006-07-16  Havoc Pennington  <hp@redhat.com>
1870
1871         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1872         Improve the error message on reply timeout
1873
1874 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1875
1876         * Remove all bindings
1877
1878 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1879
1880         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1881         and set pending_reply out arg to NULL is connection is disconnected
1882         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1883         static method for cleaning up pending calls on disconnect
1884         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1885         calls queued timeouts on disconnect 
1886
1887          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1888         Remove 
1889
1890 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1891
1892         * bus/activation.[ch] (bus_activation_list_services): new function to 
1893         get the list of services that can be activated
1894
1895         * bus/dispatch.c: test coverage for the new bus method
1896         ListActivatableNames
1897
1898         * bus/driver.c: new bus method ListActivatableNames to get the list of
1899         services that can be activated
1900
1901         * doc/dbus-specification.xml: ListActivatableNames method documentation
1902
1903 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1904         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1905         source files
1906
1907 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1908         * dbus/dbus-message-factory.c:
1909         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1910
1911 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1912         * dbus/dbus-connection-internal.h:
1913         * dbus/dbus-connection.c:
1914         * file dbus/dbus-pending-call.c:
1915         * dbus/dbus-pending-call.h:
1916         Make DBusPendingCall an opaque type even to D-Bus internals
1917
1918 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1919
1920         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1921         connection_close
1922
1923         * dbus/dbus-connection.c: include dbus-bus.h
1924         (_dbus_connection_read_write_dispatch): make static
1925
1926 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1927
1928         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1929         function
1930         (dbus_connection_dispatch): On disconnect unref any shared connections
1931
1932         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1933         for cleaning up shared connections on disconnect
1934         (internal_bus_get): get a hard refrence to shared connections when
1935         they are created
1936         
1937         * doc/TODO: Remove items which are no longer relevent or have been fixed
1938         Split 1.0 todo items with a 0.90 freeze todo list
1939  
1940 2006-06-14  Ross Burton  <ross@openedhand.com>
1941
1942         * glib/dbus-gobject.c:
1943         Free a leaking GArray (surely not!) in dbus_g_method_return.
1944
1945 2006-06-14  Ross Burton  <ross@openedhand.com>
1946
1947         * tools/Makefile.am:
1948         * tools/dbus-monitor.c:
1949         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1950         Habacker).
1951         
1952 2006-06-14  Ross Burton  <ross@openedhand.com>
1953
1954         * tools/dbus-print-message.c:
1955         Also print the object path when outputting signals or method calls.
1956
1957 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1958
1959         * qt/src/Makefile.am: install the qdbus.h header.
1960         This allows people to actually use the installed code.
1961
1962 2006-06-12  Ross Burton  <ross@openedhand.com>
1963
1964         * glib/dbus-gproxy.c:
1965         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1966
1967 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1968
1969         * Released 0.62
1970
1971 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1972
1973         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1974         break pedantic builds. Closes bug 6043 (patch approved by
1975         Havoc back in February).
1976
1977 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1978
1979         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1980         that took a QDBusMessage parameter.
1981         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1982         * qt/tools/dbus.cpp: Don't use automatic call because we might
1983         be calling an async method: request a reply.
1984
1985 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1986
1987         * test/qt/*: Update the testcases, including testing the new
1988         functionality of sending null QByteArray and QString over the
1989         bus. Add new headertest test and restore the old
1990         qdbusxmlparser test.
1991
1992 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1993
1994         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1995         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1996
1997         * qt/examples/Makefile.am:
1998         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1999         form.
2000
2001         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2002         QByteArray() (nulls) over the bus.
2003         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2004         the one that has the signature suffix stripped.
2005         * qt/src/qdbusreply.h: Make some methods const.
2006
2007 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2008
2009         Patch from Timo Hoenig <thoenig@suse.de>.
2010
2011         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2012         required during build to EXTRA_DIST.
2013         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2014         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2015         * configure.in: Fix "make dist", take care that the Makefile for
2016         qt/dbus is being generated.
2017
2018 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2019
2020         * bus/bus.c: Fix eavesdropping on method calls
2021
2022 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2023
2024         * configure.in:
2025         * dbus/dbus-userdb-util.c:
2026         Add Solaris console owner patch from Artem Kachitchkine
2027
2028 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2029
2030         * qt/Makfile.am:
2031         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2032         reorganisation. Thanks to Timo Hoenig for pointing this out.
2033
2034 2006-06-06  Robert McQueen  <robot101@debian.org>
2035
2036         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2037           call to dbus_g_type_get_struct.
2038
2039 2006-06-06  Robert McQueen  <robot101@debian.org>
2040
2041         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2042           pointers were put into a GPtrArray-based specialised collection, and
2043           then freed along with the array. GValues which you add into
2044           collections or maps which have the NOCOPY flag set are assumed to not
2045           belong to the caller, so rather than the existing pointer-stealing
2046           semantics, they are copied instead. Given that the main consumers of
2047           this abstraction are the bindings themselves, I don't think this is
2048           too bad, but others should watch their choice of take vs set_static.
2049
2050 2006-06-06  Robert McQueen  <robot101@debian.org>
2051
2052         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2053           of g_slist_prepend not being used. Fixed copying of slist-based
2054           specialised collections, then wrote a test case and found that it was
2055           all broken. Went on to fix iterating and appending too. Good thing
2056           nobody uses this code yet.
2057
2058 2006-06-06  Robert McQueen  <robot101@debian.org>
2059
2060         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2061           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2062           are discarded without unsetting, so it makes no difference whether
2063           we take or set_static). Remove cases for G_TYPE_POINTER because
2064           there really is nothing useful we can do with them in our
2065           specialised types - we *need* boxed copy/free functions at the very
2066           least.
2067
2068 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2069
2070         * qt/dbus: Add directory. I had forgotten to add this
2071         yesterday after the move...
2072
2073         * qt/examples/Makefile.am:
2074         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2075
2076         * qt/tools/Makefile.am:
2077         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2078         Added feature to get and set properties.
2079         Added validation of service, object path and interface names.
2080
2081         * qt/tools/dbusidl2cpp.cpp: Two new features:
2082         1) Allow specifying both the header and the source file names,
2083         by separating them with a colon.
2084         2) Don't write an interface output if the -p switch wasn't
2085         given, but the -a was.
2086
2087         * qt/src/*: Fix usage of Iterators and ConstIterators.
2088         Fix shadowing of variables by other variables (-Wshadow).
2089         Fix keyword-cleanliness in headers.
2090         Fix ASCII-cast (QLatin1String, QLatin1Char).
2091         Fix validation of member names.
2092         Add extra checking of introspection data during XML parsing.
2093         Various bug fixes.
2094
2095 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2096
2097         * dbus/Makefile.am:
2098         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2099         qt/dbus/qdbus.h now.
2100
2101 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2102
2103         * configure.in: Make --disable-qt actually do
2104           something. Patch inspired by Zack Rusin.
2105
2106 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2107
2108         * qt/: Update to Subversion r548032.
2109         This includes a big reorganisation of the files inside the
2110         subdir.
2111
2112 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2113
2114         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2115         clear:  
2116         "Failed to connect to socket <host>:<port> <error>" instead of
2117         "Failed to connect to socket <host>: <error>:<port>"
2118
2119         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2120         for a tcp transport. 
2121
2122 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2123
2124         * qt/*: Update the QtDBus bindings up to revision 546310 in
2125         Subversion.
2126         This adds the dbuscpp2xml tool, that parses a C++ header and
2127         outputs a D-BUS Introspection XML.
2128
2129 2006-05-21  Havoc Pennington  <hp@redhat.com>
2130
2131         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2132         is not NULL when it shouldn't be. Also a couple of possible fixes
2133         for #4637 though I don't understand why the bug happens, to be
2134         honest... also the object constructor has an assert name != NULL
2135         and the name is only currently NULL for peer-to-peer proxies that 
2136         I don't think anyone uses? So it should be asserting.
2137         Anyway, for now at least see if we get an earlier assertion failure.
2138
2139         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2140         apparently broken code to be sure the tests fail and someone 
2141         will fix them...
2142
2143 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2144
2145         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2146         and arrays when they had a single element: has_next returns
2147         false, even before you read the element. So, instead, check
2148         the array length.
2149
2150 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2151
2152         * qt/qdbusmessage.cpp:
2153         * qt/qdbustypehelper_p.h:
2154         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2155         the list is a const-reference
2156
2157 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2158
2159         * Adding old doc patch that never got applied
2160         
2161         * dbus/bus.c (dbus_bus_add_match): Add documentation
2162
2163         * doc/dbus-specification.xml: Add documentation for the match rules
2164           and the AddMatch and RemoveMatch methods
2165
2166 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2167
2168         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2169         call (r535506)
2170
2171         * qt/dbusidl2cpp.cpp:
2172         * qt/qdbusabstractadaptor.cpp:
2173         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2174         sibling of the QDBusAbstractAdaptor objects instead of the
2175         parent. (r535848)
2176
2177         * qt/dbusidl2cpp.cpp:
2178         * qt/qdbusabstractinterface.cpp:
2179         * qt/qdbusabstractinterface.h:
2180         * qt/qdbusabstractinterface_p.h:
2181         * qt/qdbusinterface.cpp: Make properties in interfaces
2182         actually work. The code that was generated would not compile,
2183         due to moc calls to functions that did not exist. They now
2184         shall. (r536571)
2185
2186 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2187
2188         * Makefile.am:
2189         * configure.in:
2190         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2191         Thanks to Brad Hards for providing the patch
2192
2193 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2194
2195         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2196         call. (r535506)
2197
2198 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2199
2200         * qt/examples/dbus.cpp: Enhance error messages and use
2201         QDBusInterfacePtr.
2202
2203 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2204
2205         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2206         and disable the copy operators. (r533772, r534746)
2207
2208         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2209
2210         * qt/qdbusabstractinterface.cpp:
2211         * qt/qdbusabstractinterface.h: Change the default call mode to
2212         not use the event loop. Add convenience call() methods that
2213         take a CallMode parameter. (r534042)
2214
2215         * qt/qdbusconnection.h: Change the default call mode to not
2216         use the event loop. (r534042)
2217
2218         * qt/qdbusinterface.cpp:
2219         * qt/qdbusinterface.h: Add a method to tell us if the
2220         interface is valid (since we don't return a null pointer
2221         anymore) (r534099)
2222
2223         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2224         (r534101)
2225
2226         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2227         function in two so taht we get the chance to introspect
2228         without having a QDBusMessage (r534102)
2229
2230         * qt/qdbusbus.h:
2231         * qt/qdbusconnection.cpp:
2232         * qt/qdbusconnection_p.h:
2233         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2234         avoid a round-trip to the server when attempting to introspect
2235         one of our own objects. Also make sure the filter functions
2236         match the empty interface as well. (r534108)
2237         Don't keep the connection names. Instead, trust the unique
2238         connection name (r534111)
2239         Remove event loop usage (r534112)
2240
2241 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2242
2243         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2244         Brad Hards.
2245
2246 2006-04-28  Robert McQueen  <robot101@debian.org>
2247
2248         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2249         any order, making it easier for people who inherit from this
2250         object.
2251
2252 2006-04-28  Robert McQueen  <robot101@debian.org>
2253
2254         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2255         of memory from within pointer arrays and lists. Fixes bug #6300.
2256
2257 2006-04-28  Robert McQueen  <robot101@debian.org>
2258
2259         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2260         generating struct signatures. Fixes bug #6083.
2261
2262 2006-04-28  Robert McQueen  <robot101@debian.org>
2263
2264         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2265         to qdbusconnection_p.moc.
2266
2267 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2268
2269         * README, INSTALL: Doc fixes
2270         Patch from Brad Hards <bradh at frogmouth.net>
2271
2272 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2273
2274         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2275         the dynamic meta object. No need to guess which interface to
2276         call.
2277
2278 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2279
2280         * qt/qdbusconnection_p.h:
2281         * qt/qdbusmetaobject.cpp:
2282         * qt/qdbusmetaobject_p.h:
2283         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2284         for the dynamic meta object. No need to guess which
2285         interface to call.
2286         * qt/qdbusabstractinterface_p.h:
2287         * qt/qdbusconnection.cpp:
2288         * qt/qdbusintegrator.cpp:
2289         * qt/qdbusinterface.cpp:
2290         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2291         Add a QDBusRef that looks and behaves like DCOPRef.
2292
2293 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2294
2295         * dbus/dbus-connection.c: Interfaces are optional in method
2296         calls, so don't give up if the interface parameter is NULL.
2297         Patch reviewed by Havoc Pennington.
2298
2299 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2300
2301         * qt/qdbusreply.h: Add default constructor and operator=
2302           (r532625)
2303         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2304           in public headers (r532952)
2305         * qt/qdbusabstractinterface.cpp:
2306         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2307           make it the default (r532951)
2308
2309 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2310
2311         * dbus/dbus-connection.c: Fix asserts
2312         Patch from Tim Moloney <t.moloney at verizon.net>
2313
2314 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2315
2316         * mono/Connection.cs, mono/Message.cs: Check Target type
2317         Patch from Aaron Bockover (abockover at novell.com)
2318
2319 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2320
2321         * INSTALL: fine-tune the requirements for the Qt4 binding.
2322
2323 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2324
2325         * tools/dbus-print-message.c: Added support for printing of all 
2326           remaining data types. Fixed logic for indentation of compound
2327           data types.
2328         
2329 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2330
2331         * INSTALL: fill out content of file providing DBus specific
2332           build installations, followed by generic Auto* INSTALL file
2333           content
2334         
2335 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2336
2337         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2338           Patch by Stefan Eilers. (r529537)
2339
2340 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2341
2342         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2343           contents (r528208)
2344
2345 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2346
2347         * qt/Makefile.am: fix the dependency for
2348           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2349           not in qdbusconnection.cpp.
2350           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2351           spotting this.
2352
2353 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2354
2355         * qt/examples/listnames.cpp:
2356         * qt/examples/Makefile.am: Three ways to list the names on the
2357           bus.
2358
2359 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2360
2361         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2362           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2363
2364 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2365
2366         Merge from Subversion:
2367         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2368           something that exists (r526315)
2369         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2370           slots/signals (r526316)
2371         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2372           also return an unknown-method error if the parameters don't
2373           match for org.freedesktop.DBus.Properties. (r526842)
2374         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2375         * qt/qdbusintegrator.cpp: Restore the proper order of
2376           delivery: don't make method returns be delivered on priority
2377           (r528150)
2378
2379 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2380
2381         * configure.in qt/Makefile.am: add qt/examples
2382         * qt/examples: Add QtDBus example programs:
2383           - hello: Hello, World
2384           - ping: Simple method-calling program
2385           - pong: Simple object-exporting program (not using adaptors)
2386           - complexping: Interactive method-calling program 
2387                 (also gets and sets properties).
2388           - complexpong: Sample program exporting methods, signals and
2389                 properties, using adaptors.
2390           - dbus: Simple implementation of a generic method-calling
2391                 program, similar to 'dbus-send', but with semantics
2392                 similar to 'dcop'.
2393           - chat: Simplistic chat program, implemented using signals
2394                 and the system bus. Looks like IRC.
2395
2396 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2397
2398         * configure.in: Detect QtGui (necessary for one of the
2399           example programs). Note: this increases the minimum required
2400           version of Qt to 4.1.3.
2401
2402 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2403
2404         * test/qt/*: Sync with KDE Subversion revision 523647.
2405         Update the testcases to the new API. Remove testcases for
2406         classes that are no longer public or have been removed.
2407
2408 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2409
2410         * qt/*: 
2411         * dbus/qdbus.h: Sync with KDE Subversion revision
2412         523647. Hopefully, this will be the last of the
2413         source-incompatible changes. Documentation has been improved;
2414         support for QList<basic-types> has been added; QDBusObject is
2415         gone; QDBus(Abstract)Interface is now a QObject with
2416         auto-generated meta-object; QDBusIntrospection is marked
2417         private, since QMetaObject can be used now; lots of bugfixes.
2418
2419 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2420
2421         Patch from Milosz Derezynski <internalerror at gmail.com>
2422         
2423         * configure.in:
2424         Output the service directory in the configure summary
2425
2426         * dbus-1.pc.in:
2427         Add session_bus_services_dir
2428
2429 2006-03-10  Ross Burton  <ross@openedhand.com>
2430
2431         * tools/dbus-print-message.c:
2432         Add support for object paths and signatures.
2433
2434 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2435
2436         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2437         config reload.
2438         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2439         information caches
2440         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2441         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2442         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2443         * dbus/dbus-userdb.h: Add function to flush all user/group information
2444         caches.
2445
2446 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2447
2448         * qt/dbusidl2cpp.cpp:
2449         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2450         for dcopidl2cpp, found in the KDE installations (or the more
2451         modern kalyptus): generate Qt4 C++ code for the input XML
2452         introspection. Currently no IDL parsing.
2453
2454 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2455
2456         * test/qt/*: Update the self-tests.
2457
2458 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2459
2460         * qt/*: 
2461         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2462         represents the first feature-complete version of the Qt4
2463         bindings since I took ove maintainership.
2464
2465 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2466
2467         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2468         dir. This is C++, so we can't use the DBus ones.
2469
2470 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2471
2472         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2473         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2474
2475 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2476
2477         * dbus/dbus-connection.c: 
2478         (_dbus_connection_block_pending_call):
2479         Check to see if our data has already been read off the connection
2480         by another blocking pending call before we block in poll.
2481         (check_for_reply_and_update_dispatch_unlocked):
2482         Code taken from _dbus_connection_block_pending_call - checks for
2483         an already read reply and updates the dispatch if there is one.
2484
2485         * test/name-test/test-pending-call-dispatch.c:
2486         New test for making sure we don't get stuck polling a 
2487         dbus connection which has no data on the socket when
2488         blocking out of order on two or more pending calls.
2489
2490 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2491
2492         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2493         make/automake don't detect that we're talking about the same
2494         .lo file if I specify the full path to the source files.
2495
2496 2006-02-26  Havoc Pennington  <hp@redhat.com>
2497
2498         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2499
2500         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2501         session bus variable is unset, suggest "man dbus-launch" and "man
2502         dbus-daemon" to figure out how to fix the problem
2503
2504 2006-02-25  Havoc Pennington  <hp@redhat.com>
2505
2506         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2507         should make this thing use the new glib options parser
2508
2509 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2510
2511         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2512         .lo files taking moc sources.
2513
2514 2006-02-25  Havoc Pennington  <hp@redhat.com>
2515
2516         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2517         and install it as a public header
2518
2519 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2520
2521         * Released 0.61
2522
2523 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2524         
2525         * proxies.py: Fix the callchain
2526
2527 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2528         
2529         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2530
2531         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2532         dbus/dbus-sysdeps.c
2533
2534         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2535         call _dbus_group_info_free_allocated which causes infinite loop,
2536         correctly call _dbus_group_info_free
2537
2538 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2539
2540         * qt/qdbusinterface_p.h:
2541         * qt/qdbusinterface.cpp: Use the standard
2542         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2543         calls instead of creating one for us.
2544
2545         * qt/qdbusconnection_p.h:
2546         * qt/qdbusintegrator.cpp: Remove debugging code.
2547
2548         * qt/qdbusintegrator.cpp:
2549         * qt/qdbusmessage.cpp:
2550         * qt/qdbusmessage_p.h:
2551         * qt/qdbusmessage.h: Change the behaviour of automatic
2552         reply-sending: now a reply is always sent, unless the caller
2553         didn't request one or if the user slot has already sent one.
2554
2555 2006-02-16  Robert McQueen  <robot101@debian.org>
2556
2557         * configure.in: Patch from Debian packages by Sjoerd Simons
2558         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2559         arguments so it's possible to build both bindings in the
2560         same tree.
2561
2562         * qt/Makefile.am: Fix truncated value so that make dist works.
2563
2564 2006-02-16  Robert McQueen  <robot101@debian.org>
2565
2566         * acinclude.m4, configure.in: Patch from Brad Hards
2567         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2568         improving quoting, re-ordering a few checks, and a few other
2569         aesthetic tidy-ups.
2570
2571 2006-02-16  Robert McQueen  <robot101@debian.org>
2572
2573         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2574         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2575         assertion that the next element to read from the iter is fixed in
2576         size. This is not the case when you are at the end of the iter,
2577         because the next element type is INVALID.
2578
2579         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2580         a bogus assert which means that you may not initialise a 0-length
2581         string unless you provide a non-NULL pointer. This prevented
2582         you from marshalling messages containing zero-length arrays in
2583         some cases.
2584
2585         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2586         from Rob to correct bogus asserts when trying to demarshal an
2587         array and get_fixed_array got you 0 elements. Append nothing to
2588         the GArray in this case.
2589
2590         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2591         an empty array via the glib bindings. Without all of the above
2592         patches, this new test fails.
2593
2594 2006-02-16  Robert McQueen  <robot101@debian.org>
2595
2596         * glib/dbus-gmain.c: Make the previous commit compile.
2597
2598         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2599         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2600         specify sender_keyword="foo", path_keyword="bar" when adding
2601         a signal listener, so that you can bind to signals generically
2602         but still do something useful in your callback.
2603
2604         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2605         chars so that they're not cast to chars and made negative. Thanks
2606         to Jakub Stachowski for reporting this and testing the fix.
2607
2608 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2609
2610         * dbus/dbus-glib.h:
2611         * glib/dbus-gmain.h:
2612         (dbus_g_connection_open): new method for openning
2613         a connection to an arbitrary address in the glib bindings
2614
2615         * ChangeLog: checkin last entry which doesn't seem to be commited
2616
2617 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2618
2619         * tools/dbus-launch.c: Fixed sh syntax output
2620
2621 2006-02-13  Robert McQueen  <robot101@debian.org>
2622
2623         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2624         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2625         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2626         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2627         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2628         missing piece of the glib bindings jigsaw puzzle. This modifies
2629         the existing specialised types to have N type parameters (rather
2630         than the current 1 or 2 for arrays and dictionaries respectively).
2631         You can then use this to get a glib type to represent any arbitrary
2632         D-Bus struct type using dbus_g_type_get_struct. The only
2633         implementation of these types is with GValueArrays as before,
2634         but it's now possible to store these in arrays, emit them in
2635         signals, etc.
2636
2637 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2638
2639         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2640         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2641         <thiago.macieira at trolltech.com>
2642
2643 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2644
2645         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2646         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2647
2648 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2649
2650         * bus/connection.c (bus_connections_expect_reply): Make
2651         pending reply limit not common to all connections (Bug #5416)
2652         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2653
2654 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2655
2656         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2657
2658 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2659
2660         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2661         patch from Doug Goldstein <cardoe at gentoo.org>
2662
2663 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2664
2665         * mono/Arguments.cs: Fix a magic number in the mono bindings
2666         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2667
2668 2006-01-27  Robert McQueen  <robot101@debian.org>
2669
2670         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2671         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2672         when generating the client-side methods, instead of overloading
2673         CSymbol which broke everything horribly. My apologies.
2674
2675 2006-01-27  Robert McQueen  <robot101@debian.org>
2676
2677         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2678         by me and Rob Taylor to add a simple_free function to D-Bus map
2679         and collection types, which allows those types which can be freed
2680         with a GDestroyNotify (such as GHashTables and GArrays, but not
2681         GPtrArrays) to be stored as the values in hashtables.
2682
2683         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2684         Patch by Rob Taylor to add nested dicts to the glib tests to check
2685         the above code works, and appears not to leak when called repeatedly.
2686
2687 2006-01-27  Robert McQueen  <robot101@debian.org>
2688
2689         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2690         to free a D-Bus allocated string with dbus_free () instead of
2691         g_free ().
2692
2693 2006-01-27  Iain Holmes  <iain@openedhand.com>
2694
2695         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2696         method from being called multiple times.
2697
2698 2006-01-19  Robert McQueen  <robot101@debian.org>
2699
2700         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2701         <rob.taylor@collabora.co.uk> to add support for generating bindings
2702         to arrays that are represented as GPtrArrays rather than GArrays (ie
2703         size-variable things, such as strings, objects, structs, etc).
2704
2705 2006-01-05  Robert McQueen  <robot101@debian.org>
2706
2707         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2708         <ricardo.kekki@movial.fi> to make it possible to inherit from
2709         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2710         a private part, and moving the setting of the DBusGProxyManager into a
2711         connection property, allowing proper GObject construction.
2712
2713 2006-01-05  Robert McQueen  <robot101@debian.org>
2714
2715         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2716         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2717         annotations when generating glib client bindings.
2718
2719 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2720
2721         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2722
2723         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2724
2725 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2726
2727         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2728
2729 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2730
2731         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2732
2733 2005-12-19  Ross Burton  <ross@openedhand.com>
2734
2735         * doc/dbus-tutorial.xml:
2736         Document the Glib client-side bindings, and list all possible annotations.
2737
2738 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2739
2740         * dbus/bus.c (dbus_bus_release_name): Add documentation
2741
2742 2005-12-06  Robert McQueen  <robot101@debian.org>
2743
2744         * python/service.py: s/sucessful/successful/ so we're allocating to
2745         and reading from the same variable. Oops.
2746
2747 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2748
2749         * Released 0.60
2750
2751 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2752
2753         * test/qt/Makefile.am: build from srcdir
2754
2755         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2756         Note - this code is wrong and needs to be fixed by the Qt binding
2757         developers.  The flags should be treated as bitfields and not enums.
2758
2759         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2760
2761 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2762
2763         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2764           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2765           in production code
2766
2767 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2768
2769         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2770         method for getting messages off the bus in the absence of a
2771         mainloop.  This method is much like 
2772         dbus_connection_read_write_dispatch except it does not dispatch
2773         the messages to a registered filter function.  Instead it
2774         allows a developer to process messages by directly popping
2775         them off the bus.
2776
2777 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2778
2779         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2780         the parser to continue instead of returning error
2781         (bus_desktop_file_load): Do not free parser data when
2782         parse_section_start or parse_key_value fails because it was 
2783         already freed by parser_free (patch from Carlos Garcia Campos  
2784         <carlosgc at gnome.org>)
2785
2786 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2787
2788         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2789         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2790         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2791         test/test-segfault.c, test/test-utils.c,
2792         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2793         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2794         Various cleanup of dead code and compiler warnings (patch from
2795         Kjartan Maraas <kmaraas at gnome.org>) 
2796
2797 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2798
2799         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2800         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2801
2802 2005-11-27  Robert McQueen  <robot101@debian.org>
2803
2804         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2805         part of the preceding one. Oops. Merge patch by Johan Hedberg
2806         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2807         on big-endian platforms.
2808
2809         * test/python/test-client.py: Add some 16-bit integers to the test
2810         values.
2811
2812 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2813
2814         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2815         method return message for property getters
2816
2817 2005-11-27  Robert McQueen  <robot101@debian.org>
2818
2819         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2820         with type v of an instance of dbus.Variant(foo, type='x') caused
2821         it to be boxed twice before sending over the bus.
2822
2823         * python/dbus_bindings.pyx, python/service.py,
2824         test/python/test-client.py: Update the constants for the new
2825         request_name flags, and update comments/test cases now that queueing
2826         is the default action.
2827
2828 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2829
2830         * configure.in:
2831         - Change version to 0.60 for impending release
2832         - upped the sonames because of ABI and API breakage
2833
2834 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2835
2836         * configure.in: Add test/name-test/Makefile to the generated
2837         Makefile list
2838
2839         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2840         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2841         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2842         not to queue an ower if it can't be the primary owner
2843
2844         * bus/bus.h: Add new internal BusOwner struct
2845
2846         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2847         to bus_registry_ensure and don't set the prohibit_replacement flag
2848         since they are now set per BusOwner and not per name.
2849         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2850         that returns the list of connections in a name's connection queue
2851         
2852         * bus/services.c (struct BusService): remove prohibit_replacement field
2853         (struct BusOwner): new struct for keeping track of queued connections
2854         and their associated flags for the queue
2855         (struct BusRegistry): add a BusOwner memory pool
2856         (bus_registry_new): initialize the BusOwner memory pool
2857         (bus_registry_unref): free the BusOwner memory pool
2858         (_bus_service_find_owner_link): new internal method for
2859         searching the queue for a specific connection
2860         (bus_owner_set_flags): new method for adding setting the flags on a
2861         bus owner
2862         (bus_owner_new): new method that creates a BusOwner object from the
2863         pool and sets its flags
2864         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2865         (bus_registry_ensure): Add the flags parameter
2866         (bus_registry_acquire_service): Switch from using raw connections to
2867         using the BusOwner struct
2868         Add new state machine for dealing with the new set of flags
2869         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2870         cancel_ownership, free_ownership_cancel_data, 
2871         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2872         restore_ownership, free_ownership_restore_data, 
2873         add_restore_ownership_to_transaction): Switch to using BusOwner 
2874         instead of raw connections
2875         (bus_service_add_owner): Add flags parameter
2876         Switch to using BusOwner instead of raw connections
2877         Add state machine for dealing with the new set of flags
2878         (bus_service_swap_owner): Swaps the first and second owners in the
2879         queue.  Used to make sure proper signals are sent when a service looses 
2880         or gains primary ownership.  We never insert an owner at the top of the
2881         queue.  Instead we insert it in the second position and then swap.
2882         (bus_service_remove_owner): Remove the owner from the queue sending
2883         out the NameLost and NameOwnerChanged signals if the we were the 
2884         primary owner
2885         (bus_service_get_primary_owners_connection): New method that extracts
2886         the connection from the primary owner
2887         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2888         connection
2889         (bus_service_get_allow_replacement): Changed from the old 
2890         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2891         primary owner and returns if it can be replaced or not
2892         (bus_service_set_prohibit_replacement): removed
2893         (bus_service_has_owner): returns TRUE if and owner with
2894         the specified connection exists in the queue
2895         
2896         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2897         method that only compiles if tests are enabled.  Allows us to get the 
2898         unique name of a connection so we can check it against the queue when
2899         doing regression tests
2900
2901         * bus/activation.c (bus_activation_send_pending_auto_activate),
2902         bus/dispatch.c (bus_dispatch),  
2903         bus/driver.c (bus_driver_handle_get_service_owner, 
2904         bus_driver_handle_get_connection_unix_user, 
2905         bus_driver_handle_get_connection_unix_process_id,
2906         bus_driver_handle_get_connection_selinux_security_context),
2907         bus/signals.c (connection_is_primary_owner): 
2908         use bus_service_get_primary_owners_connection instead of
2909         bus_service_get_primary_owner
2910
2911         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2912         _dbus_listen_unix_socket): Calculate the length of the socket
2913         path and use that instead of using a fixed length which was
2914         causing socket names to contain many trailing Nul bytes.
2915
2916         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2917         (dbus_g_method_get_sender): New method for extracting the sender 
2918         from a DBusGMethodInvocation
2919         (dbus_g_method_return_get_reply): changed name to 
2920         dbus_g_method_get_reply
2921         (dbus_g_method_return_send_reply): changed name to
2922         dbus_g_method_send reply
2923
2924         * doc/dbus-specification.xml: New docs that describe how the new
2925         queueing system works and talks about the changes to the how
2926         we specify socket names
2927
2928         * glib/examples/example-service.c, 
2929         glib/examples/example-signal-emitter.c,
2930         glib/examples/statemachine/statemachine-server.c:
2931         Changed the RequestName flags to the new system
2932
2933         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2934         regression test suite for testing various states of the new
2935         queueing system
2936         
2937 2005-11-15  Robert McQueen  <robot101@debian.org>
2938
2939         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2940         Taylor to add two methods, dbus_g_method_return_get_reply and
2941         dbus_g_method_return_send_reply, to allow you to get the reply
2942         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2943         and send it. The GLib bindings can't marshal a return value of
2944         something like a(s) if the array is empty - ultimately they should be
2945         made to heed the signature of the out arguments as the Python bindings
2946         now can, but this is a workable interim solution which might have
2947         other applications.
2948
2949 2005-11-15  Robert McQueen  <robot101@debian.org>
2950
2951         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2952         method to org.freedesktop.DBus to release a bus name or give up
2953         waiting in the queue for it.
2954
2955         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2956         dbus_bus_release_name method to send the ReleaseName method calls.
2957         Add constants for the return values to dbus/dbus-shared.h.
2958
2959         * doc/dbus-specification.xml: Document the new ReleaseName method
2960         in the specification.
2961
2962         * python/dbus_bindings.pyx: Add a low-level python binding for the
2963         release name method.
2964
2965         * python/exceptions.py, python/service.py: Make freeing BusName
2966         objects release the name. Add a NameExistsException, and fix a
2967         bug with creating UnknownMethodException.
2968
2969         * test/python/test-client.py: Add tests for freeing BusName
2970         objects causing names to be released.
2971
2972 2005-11-14  Robert McQueen  <robot101@debian.org>
2973
2974         * python/service.py: Include the traceback in the error reply when we
2975         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2976
2977 2005-11-14  David Zeuthen  <davidz@redhat.com>
2978
2979         Patch from Timo Hoenig <thoenig@suse.de>.
2980
2981         * bus/bus.c: I've recently investigated why the automatic reload
2982         of configuration files does not work as expected.
2983
2984         Currently, reloading configuration files does only work when
2985         running dbus-daemon with --nodaemon.  If we are running as daemon
2986         we're hitting a dnotify bug once we fork the process.
2987
2988         We're initializing the dnotify fds before calling fork().  Once
2989         the child process forked it does still have the fds (and they
2990         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2991         getting SIGIO as changes are made to the configuration files.
2992
2993         The attached patch moves the initialization of the dnotify fds to
2994         process_config_postinit().  This is safe for all current code
2995         paths and solves the dnotify disfunction.  If we're running
2996         dbus-daemon as daemon the fds for dnotify are now being
2997         initialized after fork() for the child process.
2998
2999         * configure.in: The current configure.in check for dnotify probes
3000         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3001         match for 'xlinux', too. Additionally I have adapted the configure
3002         option's style to match with the others.
3003
3004 2005-11-14  Robert McQueen  <robot101@debian.org>
3005
3006         * python/decorators.py, python/service.py: Add a new argument to the
3007         dbus.service.method decorator called sender_keyword, which if set,
3008         specifies the name of an argument which will be provided the bus
3009         name of the method caller.
3010
3011         * test/python/test-client.py, test/python/test-service.py: Add a
3012         method and test to check the sender_keyword functionality.
3013
3014 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3015
3016         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3017         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3018         Simons <sjoerd at luon.net>)
3019
3020         * AUTHORS: Add Robert McQueen for his work on the Python
3021         Bindings and other parts of D-Bus
3022
3023 2005-11-07  Robert McQueen  <robot101@debian.org>
3024
3025         * python/decorators.py: Change emit_signal function to use the
3026         signature annotation of the signal when marhsalling the arguments from
3027         the service. Fix a bug where the code checking signature length
3028         against argument length referenced the wrong variable.
3029
3030         * python/introspect_parser.py: Avoid adding the type signature of
3031         signal arguments to any methods which occur after them in the
3032         introspection data (!) by making the parser a little more careful
3033         about its current state.
3034
3035         * python/service.py: Remove debug prints from last commit (again :D).
3036
3037         * test/python/test-client.py, test/python/test-service.py: Add test
3038         signals with signature decorators to test the strict marshalling code
3039         gives errors at the right time. Could do with checking the signals
3040         actually get emitted too, given that the test does nothing with
3041         signals at the moment...
3042
3043 2005-11-07  Robert McQueen  <robot101@debian.org>
3044
3045         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3046         instances to stop madness of creating new instances representing
3047         the same bus connection all the time, rendering any tracking of
3048         match rules and bus names quite meaningless. Caught a bug where
3049         the private argument to SessionBus() and friends was being passed
3050         in as use_default_mainloop by mistake. Still some problems with
3051         multiple dbus_binding.Connection instances representing the same
3052         low-level connection (eg when you use both SessionBus() and
3053         StarterBus() in same process), but it's a lot better now than it
3054         was.
3055
3056         * python/dbus_bindings.pyx: Add constants with the return values
3057         for bus_request_name().
3058
3059         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3060         and retrieve the same instances for the same name, so deletion can be
3061         done with refcounting. Also now throws some kind of error if you
3062         don't actually get the name you requested, unlike previously...
3063
3064         * test/python/test-client.py: Add tests for instance caching of buses
3065         and bus name objects.
3066
3067 2005-11-04  Robert McQueen  <robot101@debian.org>
3068
3069         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3070         marshalling of boolean values. Add some booleans to the values in
3071         the test client.
3072
3073         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3074         argument to the dbus.service.method decorator, which allows you to
3075         name arguments to take two callback functions for replying with
3076         return values or an exception.
3077
3078         * test/python/test-client.py, test/python/test-service.py: Add test
3079         case using asynchronous method reply functions, both return values and
3080         errors, and from within both the function itself and from a mainloop
3081         callback.
3082
3083         * python/decorators.py, python/service.py: Perform checking that the
3084         number of method/signal arguments matches the number of types in the
3085         signature at class loading time, not when you first introspect the
3086         class.
3087
3088         * python/service.py: Remove debug print left by the last commit.
3089
3090 2005-11-03  Robert McQueen  <robot101@debian.org>
3091
3092         * python/service.py: Heavy refactoring of method invocation, with
3093         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3094         in favour of a new _message_cb that uses seperate functions for
3095         looking up the method to call, marshalling the return values, and
3096         sending exceptions as errors, and is easier to follow as a
3097         consequence.  Fixes some corner cases about returning things that
3098         don't match your declared out_signature, allows exceptions to define
3099         _dbus_error_name and have it be sent over the bus as the error name,
3100         and paves the way for cool stuff like heeding the message no reply
3101         flag, asynchronous method implementations, informing the method of the
3102         sender, and including backtraces in the error messages.
3103
3104         * test/python/test-client.py: Catch and print exceptions thrown in the
3105         async callback tests, rather than passing them to the low-level
3106         bindings to be ignored in a noisy and frustrating manner.
3107
3108 2005-11-03  Robert McQueen  <robot101@debian.org>
3109
3110         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3111         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3112         tweak others to be consistent.
3113
3114         * test/python/test-client.py: Tweak output of testInheritance.
3115
3116 2005-10-29  Robert McQueen  <robot101@debian.org>
3117
3118         * python/service.py: Major changes to allow multiple inheritance
3119         from classes that define D-Bus interfaces:
3120         
3121          1. Create a new Interface class which is the parent class of
3122             Object, and make the ObjectType metaclass into InterfaceType.
3123         
3124          2. Patch written with Rob Taylor to replace use of method_vtable
3125             with code that walks the class's __MRO__ (method resolution order)
3126             to behave like Python does when invoking methods and allow
3127             overriding as you'd expect. Code is quite tricky because
3128             we have to find two methods, the one to invoke which has the
3129             right name and isn't decorated with the /wrong/ interface,
3130             and the one to pick up the signatures from which is decorated
3131             with the right interface.
3132         
3133             The same caveats apply as to normal multiple inheritance -
3134             this has undefined behaviour if you try and inherit from two
3135             classes that define a method with the same name but are
3136             decorated with different interfaces. You should decorate
3137             your overriding method with the interface you want.
3138         
3139          3. Replace grungy introspection XML generation code in the metaclass
3140             with dictionaries that cope correctly with multiple inheritance
3141             and the overriding of methods. This also uses the signature
3142             decorations to provide correct introspection data, including
3143             the debut appearance of the types of your return values. :D
3144
3145         * test/python/test-client.py, test/python/test-service.py: Add a test
3146         case to try invoking an method that overrides one inherited from a
3147         D-Bus interface class.
3148
3149 2005-10-29  Robert McQueen  <robot101@debian.org>
3150
3151         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3152         Add checking for the end of struct character when marshalling a
3153         struct in MessageIter.append_strict.
3154
3155         * python/examples/example-service.py,
3156         python/examples/gconf-proxy-service.py,
3157         python/examples/gconf-proxy-service2.py: Update to use gobject
3158         mainloop directly rather than appearing to depend on gtk.
3159
3160         * python/test/test-client.py, python/test/test-server.py: Remove
3161         obsolete and broken test scripts for old bindings. We have up to date
3162         and working tests in test/python/.
3163
3164 2005-10-29  Robert McQueen  <robot101@debian.org>
3165
3166         * python/decorators.py: Add optional arguments to the method and
3167         signal decorators to allow you to specify the signature of arguments
3168         and return values. Preserve the doc strings of signal functions in the
3169         decorated version, for pydoc and friends.
3170
3171         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3172         parse_signature_block function with an iterable dbus.Signature()
3173         type. Fix a bug in MessageIter.append_strict where you could append
3174         anything by claiming it was a string.
3175
3176         * python/service.py: Use the out_signature decoration on methods to
3177         marshal return values, meaning you no longer require dbus.Array()
3178         or dbus.Dictionary() to indicate the type when returning empty
3179         arrays or dictionaries. Fix a bug where exceptions which are defined
3180         in __main__ are not turned into error replies.
3181
3182         * test/python/test-client.py, test/python/test-service.py: Add test
3183         for correct marshalling of return values according to out_signature.
3184         Fix a bug in the async call test where the error_handler is missing a
3185         self argument.
3186
3187 2005-10-29  Robert McQueen  <robot101@debian.org>
3188
3189         * glib/Makefile.am, glib/examples/Makefile.am,
3190         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3191         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3192
3193         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3194
3195         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3196         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3197         the command line.
3198
3199 2005-10-27  Ross Burton  <ross@openedhand.com>
3200
3201         * dbus/dbus-marshal-header.c:
3202         Remove dead code.
3203
3204         * glib/dbus-gobject.c:
3205         Stop compiler warning.
3206
3207 2005-10-25  Ross Burton  <ross@openedhand.com>
3208
3209         * dbus/dbus-auth.c:
3210         * dbus/dbus-server-unix.c:
3211         * dbus/dbus-transport-unix.c:
3212         * glib/dbus-gmain.c:
3213         * glib/dbus-gobject.c:
3214         Add some const keywords.
3215
3216 2005-10-25  Ross Burton  <ross@openedhand.com>
3217
3218         * doc/dbus-specification.xml:
3219         Document the NoReply annotation.
3220
3221         * glib/dbus-binding-tool-glib.h:
3222         * glib/dbus-binding-tool-glib.c:
3223         Respect the NoReply annotation.
3224
3225 2005-10-24  Robert McQueen <robot101@debian.org>
3226
3227         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3228         derive from unicode instead of str, and encode/decode UTF-8 when
3229         marshalling/unmarshalling bus messages
3230
3231         * python/introspect_parser.py: encode introspection data as UTF-8
3232         before passing the buffer into libxml2
3233
3234         * test/python/test-client.py: add unicode test strings
3235
3236         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3237         ignore generated python test files
3238
3239 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3240
3241         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3242         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3243         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3244
3245         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3246         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3247         when constructing struct signatures
3248
3249         * python/_dbus.py (Bus): handle private connections using the
3250         private keyword in the constructor. defaults to private=False
3251         (Bus::close): new method to close a connection to the bus
3252
3253         * python/dbus_bindings.pyx (Connection::close): renamed method
3254         was previously called disconnect
3255         (bus_get): now supports getting a private connection
3256
3257         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3258         keyword is set to True.  if it is, execute the method without waiting
3259         for a reply
3260         (ProxyObject::_introspect_execute_queue): new method for executing
3261         all the pending methods that were waiting for the introspect to
3262         finish.  this is called when introspect either succeeds or fails
3263         (ProxyObject::_introspect_error_handler): call queued methods
3264
3265 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3266
3267         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3268         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3269
3270         * python/service.py (Object::_message_cb): handle exceptions correctly
3271         by sending them over the wire to the calling app.  This makes sure
3272         the client returns immediately instead of waiting the 15 seconds to
3273         timeout.
3274
3275         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3276         Add a test to benchmark how long it takes to introspect a service and 
3277         call a method which returns a large element (pretty fast)
3278
3279         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3280         method which pushes a lot of data
3281
3282 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3283
3284         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3285         reclaim memory outside of the loop and use del istead of just setting
3286         the key to None
3287
3288 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3289
3290         * python/service.py (ObjectType::_reflect_on_signal): Always close
3291         signal tag even when there are no arguments
3292
3293 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3294
3295         * configure.in: Set mono, mono-docs and Qt3 to default
3296         to no instead of auto when building.  These bindings do not
3297         have full time maintainers and will not be supported for the
3298         1.0 release.
3299
3300 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3301
3302         patches from Michael Krivoruchko <misha at sun.com>: 
3303         
3304         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3305         _dbus_connection_message_sent, 
3306         _dbus_connection_send_preallocated_unlocked_no_update, 
3307         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3308         is NULL when calling _dbus_verbose
3309
3310         * configure.in: check for functions getpeerucred and getpeereid
3311
3312         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3313         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3314         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3315         Patch was only tested on Solaris 10 x86 so it might be issues
3316         with other platforms (i.e. BSDs and MacOSX)
3317         
3318
3319 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3320
3321         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3322         instead of marshal basic so we can handle recursive types in a variant
3323
3324         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3325         in variants
3326
3327         * test/glib/test-service-glib.c, test-service-glib.xml
3328         (my_object_echo_variant [EchoVariant], 
3329         my_object_process_variant_of_array_of_ints123
3330         [ProcessVariantOfArrayOfInts123]): 
3331         Add two test methods
3332
3333         * python/introspect_parser.py: New module for parsing introspect
3334         data.
3335
3336         * python/dbus_bindings.pyx:
3337         (various places): when throwing errors fix to use errormsg instead 
3338         of message local variable because Pyrex can get confused with other 
3339         message variables (initial patch by Robert McQueen 
3340         <robert.mcqueen at collabora.co.uk>)
3341         (MessageIter::parse_signature_block): new method for getting the next
3342         block in a signiture.
3343         (MessageIter::append_strict): new method for appending values strictly
3344         using the passed in signature instead of guessing at the type
3345         (MessageItter:: append_dict, append_struct, append_array): use 
3346         signatures to marshal children if the signature is available
3347         
3348         * python/exceptions.py (IntrospectionParserException): new exception
3349
3350         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3351         introspected signatures if available, else we fall back to the
3352         old way of doing things.
3353         (ProxyObject::_introspect_reply_handler ): parse introspection data
3354         
3355         * python/service.py (ObjectType::_reflect_on_method): Properly
3356         terminate <method> if there are no args in the reflection data
3357
3358         * test/python/test-client.py: add tests for talking with the GLib
3359         test server.  This gives us better coverage for introspection since
3360         python to python will always generate arguments as variants.  It also
3361         allows us to test the robustness of the GLib bindings and interlanguage
3362         communications.
3363
3364         
3365 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3366
3367         * bus/driver.c (bus_driver_handle_introspect): Add signals
3368         to the introspect data. (patch from Daniel P. Berrange 
3369         <dan at berrange.com>)
3370
3371         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3372         
3373         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3374         _dbus_connection_run_builtin_filters): Changed these to
3375         be unlock_no_update functions and call 
3376         _dbus_connection_send_unlocked_no_update instead of
3377         dbus_connection_send to avoid locking errors.
3378         
3379         * doc/TODO: Removed the make Ping test TODO
3380         
3381 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3382
3383         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3384         We now copy the message from a DBusError and then free 
3385         the error object befor throwing the error
3386
3387         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3388         DBusBindingOutputMode enum which was causing a warning.
3389         #include <time.h> so using time_t is explicitly defined
3390
3391 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3392
3393         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3394         - dbus/dbus-bus.c
3395         (internal_bus_get): new method that take over the heavy lifting
3396         of dbus_bus_get and adds the ability to get a private connection
3397         to the bus
3398         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3399         interface as in previous versions
3400         (dbus_bus_get_private): new method that is a wrapper to 
3401         internal_bus_get to get a private connection to the bus
3402
3403         - dbus/dbus-bus.h
3404         (dbus_bus_get_private): add as a public libdbus interface
3405
3406         - dbus-1.pc.in: output system_bus_default_address and 
3407         sysconfdir variables so apps can use them when compiling
3408
3409 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3410         * dbus/qt: New Qt bindings
3411
3412 2005-09-12  Waldo Bastian  <bastian@kde.org>
3413
3414         * dbus/dbus-marshal-validate.c,
3415         doc/dbus-specification.xml, test/Makefile.am,
3416         test/test-names.c: allow hyphens in bus names.
3417
3418 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3419
3420         * test/data/auth/fallback.auth-script: we don't
3421         retry the EXTERNAL method when we know its going
3422         to fail anymore.
3423
3424 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3425
3426         * dbus/dbus-connection-internal.h: rename
3427         (add|remove|toggle)_(watch|timeout) to unlocked()
3428         
3429         * dbus/dbus-connection.c: ditto.
3430         
3431         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3432         Update some callers for the renaming.
3433
3434 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3435
3436         * dbus/dbus-auth.c: (record_mechanisms): don't
3437         retry the first auth mechanism because we know
3438         we're just going to get rejected again.
3439         
3440         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3441         Fix thinko ... and what a nasty little bugger to
3442         track down you were ...
3443
3444         * dbus/dbus-connection.c:
3445         (_dbus_connection_add_watch),
3446         (_dbus_connection_remove_watch): add note about
3447         these needing the connection to be locked.
3448         (_dbus_connection_get_dispatch_status_unlocked):
3449         set status to DATA_REMAINS when we queue the
3450         disconnected message.
3451         
3452         * bus/dispatch.c:
3453         (bus_dispatch): fix warning.
3454         (check_existent_service_no_auto_start):
3455         Expect ChildSignaled error too.
3456         (check_existent_hello_from_self): fix another
3457         couple of warnings.
3458         
3459 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3460
3461         Patches from James Willcox <snorp@snorp.net>
3462
3463         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3464
3465         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3466         support array "out" parameters.
3467
3468         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3469         for 16-bit int support.
3470
3471 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3472
3473         * Released 0.50
3474
3475         * Patch from Steve Grubb:
3476         - bus/activation.c (bus_activation_service_reload_test): clean up
3477         some indentation
3478         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3479         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3480         buffer overflows in the test suite.  This is non critical because
3481         it can not be exploited and this code is only run when doing a 
3482         make check.
3483
3484         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3485         - configure.in: Don't check and link against kdecore, only qt headers
3486         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3487         - gcj/org/freedesktop/dbus/Makefile.am:
3488         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3489         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3490         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3491         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3492         - tools/Makefile.am: Add platform extentions to binaries 
3493         (i.e. .exe on windows)
3494
3495         * configure.in: 
3496         - Make it so if no suitable version of python is found we only 
3497         disable building python instead of exiting the configure script
3498         - Require version 2.4 of glib for glib bindings
3499         - Up version to 0.50
3500
3501         * python/__init__.py: Sync version with libdbus to (0,50,0)
3502         
3503 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3504
3505         * dbus/dbus-object-tree.c (find_subtree_recurse):
3506         a couple of optimizations (bug #710):
3507         - do a binary search in the tree
3508         - insert a new child at the right place directly, no need for
3509           qsort anymore
3510         - do the "double alloc" thing when allocating children
3511
3512 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3513
3514         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3515
3516         * python/dbus_bindings.pyx: Memory management foo
3517         (global): remove hacky _user_data_references global list
3518         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3519         tuples. Unref user_data
3520         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3521         (Connection::__del__): Remove and replace with __dealloc__ method
3522         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3523         to keep tuple from being deallocated instead of the global var hack
3524         (Connection::register_object_path): Stuff user_data into a tuple.
3525         Use Py_INCREF to keep tuple from being deallocated instead of the 
3526         global var hack
3527         (Connection::register_fallback): Stuff user_data into a tuple.
3528         Use Py_INCREF to keep tuple from being deallocated instead of the 
3529         global var hack
3530         (GIL_safe_pending_call_notification): Don't unref the message
3531         because it gets unreffed when going out of scope.  Py_XDECREF
3532         the user_data
3533         (PendingCall::__del__): Remove and replace with __dealloc__ method
3534         (PendingCall::set_notify): ref the pending call because we will
3535         need it to stick around for when the notify callback gets called
3536         (Message::__del__): Remove and replace with __dealloc__ method
3537
3538         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3539         gthreads_init to match up with the dbus call
3540
3541         * python/glib.py (init_threads): Changed to threads_init to match
3542         up with gobject.threads_init().  init_threads is kept for backwards
3543         compat but will most likely be deprecated in the future
3544
3545         * test/python/test-client.py: 
3546         - revamp to use Python's unittest functionality
3547         - add async call tests
3548         - setup threads in glib and dbus so we make sure locks are working
3549         
3550 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3551
3552         * python/dbus_bindings.pyx 
3553         (_pending_call_notification, cunregister_function_handler, 
3554         cmessage_function_handler): All callback functions have been rearranged 
3555         to workaround a bug in Pyrex when working with the GIL which is Python's 
3556         global lock when dealing with threads.  They have been split into
3557         a wrapper function (which assumes the name of the old function) and
3558         a _GIL_safe_<function name> function which contains the functionality
3559         of the old function.  This ensures that Pyrex does not write code
3560         the lock is released.
3561         
3562
3563 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3564
3565         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3566         GIL global lock when calling back into Python
3567
3568 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3569
3570         * Release 0.36.2
3571
3572         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3573
3574         * bus/policy.c (bus_policy_allow_user): change default "user is
3575         allowed" to be "user has same uid as the bus itself"; any
3576         allow/deny rules will override.
3577
3578         * bus/session.conf.in: don't allow all users, since now by default
3579         the user that ran the bus can connect.
3580
3581 2005-08-26  Colin Walters  <walters@verbum.org>
3582
3583         * tools/dbus-print-message.c (print_message): Flush stdout
3584         after printing a message, so that redirecting to a file, then
3585         hitting Ctrl-C works.
3586
3587 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3588
3589         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3590         (EmptyMessage): new class that subclasses Message.  This is a workaround
3591         to a Pyrex bug that fails to call __del__ when the Message object goes out
3592         of scope.  For some reason subclassing Message fixes this bug
3593         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3594         - s/Message(_create=0)/EmptyMessage everywhere else
3595         
3596         * test/python/test-{server|client}.py: add the python/.libs directory
3597         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3598         get picked up from the system
3599
3600 2005-08-25  Colin Walters  <walters@verbum.org>
3601
3602         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3603         to Ryan Lortie for the suggestion.
3604
3605 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3606
3607         * test/python: Add python regression test
3608
3609         * configure.in: Add test/python/Makefile
3610
3611         * test/Makefile.am: Add the python directory to SUBDIRS
3612
3613 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3614
3615         * Release 0.36.1
3616
3617         * python/_dbus.py: 
3618         (Interface::connect_to_signal): propigate keywords for match on args
3619         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3620
3621         * python/proxies.py (ProxyObject::connect_to_signal):
3622         propigate keywords for match on args
3623
3624         * Makefile.am: point everything to pyexecdir since python borks
3625         on multilib
3626
3627 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3628
3629         * Release 0.36
3630
3631 2005-08-23  Colin Walters  <walters@verbum.org>
3632
3633         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3634
3635 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3636
3637         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3638         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3639         of defining DBusConnection ourselves.
3640
3641 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3642
3643         * python/dbus.pth: New path file to fix up problems when installing
3644         c libraries to lib64 and python files to lib.
3645
3646         * python/Makefile.am: install dbus.pth in the correct spot
3647
3648 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3649         * ChangeLog: clean up my last entry a bit
3650
3651         * doc/introspect.xsl: New stylesheet for converting introspection data
3652         into browser renderable xhtml. Contributed by Lennart Poettering.
3653
3654         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3655         Poettering.
3656
3657         * doc/dbus-tutorial.xml: 
3658         - Add Colin Walter to the Authors section for authoring the GLib
3659         section
3660         - Add descriptions of the new signature and type functionality
3661         in the Python complex type mapping section
3662         - Add a sidenote on the new args matching functionality in 
3663         the Python bindings
3664         - Fixed up some of the examples to use the gobject.MainLoop
3665         instead of gtk.main
3666         
3667         * python/_dbus.py:
3668         (Bus::_create_args_dict): New. Converts a hash of arg matches
3669         to a more useable format
3670         (Bus::add_signal_receiver): add a **keywords parameter for catching
3671         arg match parameters
3672         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3673         arg match parameters
3674         
3675         * python/matchrules.py:
3676         (MatchTree::exec_matches): Check for arg matches
3677         (SignalMatchRule::add_args_match): New method
3678         (SignalMatchRule::execute): Added args_list parameter as an optimization
3679         so we don't have to marshal the args more than once
3680         (SignalMatchRule::match_args_from_list): New method that checks to see
3681         if the rule's arg matches match an argument list.  Only arguments
3682         set in the rule are checked.
3683         (SignalMatchRule::match_args_from_rule): New method that checks to see
3684         if the rule's arg matches match another rule's.  All args have to match
3685         in order for this method to return true.  If either rule has more args
3686         then it is not a match.
3687         (SignalMatchRule::is_match): Add args match
3688         (SignalMatchRule::repr): Add args to the final output if they exist
3689
3690 2005-08-17  Ross Burton  <ross@burtonini.com>
3691
3692         * glib/dbus-gproxy.c:
3693         (dbus_g_proxy_call_no_reply): unref the message once sent.
3694         (dbus_g_proxy_call): protect against NULL proxy.
3695
3696 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3697
3698         * python/__init__.py: Version updated (0, 43, 0)
3699         
3700         * python/dbus_bindings.pyx: 
3701         - Fixed type objects to have self passed into __init__
3702         - Added the Variant type
3703         - Add the ability to specify types or signatures for Array, Variant 
3704         and Dictionary
3705         (Connection::send_with_reply_handlers): return a PendingCall object
3706         (_pending_call_notification): handle the case when an error is returned 
3707         without an error message in the body
3708         (MessageIter::get_boolean): return True or False instead of an integer
3709         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3710         and add checks for objects with embeded signatures or types (Array, 
3711         Variant and Dictionary)
3712         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3713         (MessageIter::append_dict): handle embeded types or signatures
3714         (MessageIter::append_array): handle embeded types or signatures
3715         (MessageIter::append_variant): new method
3716         
3717         * python/proxies.py:
3718         (DeferedMethod): New. Dummy executable object used when queuing calls 
3719         blocking on introspection data
3720         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3721         or shorter timeouts for method calls
3722         (ProxyObject): Add first pass at an introspection state machine
3723         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3724         introspection. 
3725         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3726         the usual mechanisms for sending messages.  This is to avoid a deadlock
3727         where the Intospect call would be queued waiting for the Introspect 
3728         call to finish ;-)
3729         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3730         when introspection returns with no error
3731         (ProxyObject::_introspect_error_handler): New.  This method is called 
3732         when introspection encounters an error
3733         (ProxyObject::__getattr__): Code to handle different introspection 
3734         states.  Queue async calls or block blocking calls if we are 
3735         introspecting.  Pass through as normal if we are not or are done with 
3736         introspecting.
3737         
3738         * python/service.py: Import signal and method from decorators.py
3739
3740         * python/types.py: Add Variant type
3741
3742 2005-08-16  Colin Walters  <walters@verbum.org>
3743
3744         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3745         DBusError message is NULL.
3746
3747 2005-08-09  Havoc Pennington  <hp@redhat.com>
3748
3749         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3750         malloc'd copy of the name parameter
3751
3752 2005-08-09  Havoc Pennington  <hp@redhat.com>
3753
3754         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3755         warning if the reply serial is set to 0
3756
3757 2005-08-04  Colin Walters  <walters@verbum.org>
3758
3759         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3760         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3761         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3762         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3763         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3764         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3765         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3766         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3767         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3768         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3769         
3770         Prefix name with _ to ensure they're not exported.  All callers
3771         updated.
3772
3773         * glib/dbus-gvalue.c (typecode_to_gtype)
3774         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3775         (signature_iter_to_g_type_dict)
3776         (signature_iter_to_g_type_array)
3777         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3778         (dbus_gtypes_from_arg_signature):
3779         Move to dbus-gsignature.c.
3780
3781         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3782         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3783         (dbus_binding_tool_output_glib_client): Ditto.
3784
3785         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3786         and dbus-gsignature.h
3787
3788         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3789         unused variable.
3790
3791 2005-08-03  Colin Walters  <walters@verbum.org>
3792
3793         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3794         catch any incompatible changes accidentally made.
3795
3796 2005-08-03  Havoc Pennington  <hp@redhat.com>
3797
3798         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3799         typo, from Julien Puydt
3800
3801         * bus/connection.c (bus_connection_disconnected): we were always
3802         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3803
3804 2005-08-01  Colin Walters  <walters@verbum.org>
3805
3806         Patch from Joe Markus Clarke:   
3807         
3808         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3809         use-after-free.
3810
3811 2005-08-01  Colin Walters  <walters@verbum.org>
3812         
3813         Patch from Joe Markus Clarke:   
3814         
3815         * tools/dbus-send.c (main): 
3816         
3817         Don't use C99 style initializers (bug #3933).
3818         
3819 2005-08-01  Colin Walters  <walters@verbum.org>
3820
3821         Patch from Joe Markus Clarke:   
3822
3823         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3824         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3825         * glib/dbus-gobject.c (write_interface):
3826
3827         Don't use C99 style initializers (bug #3933).
3828
3829 2005-07-31  Havoc Pennington  <hp@redhat.com>
3830
3831         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3832         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3833
3834 2005-07-30  Havoc Pennington  <hp@redhat.com>
3835
3836         * fix a bunch of Doxygen warnings and mistakes
3837
3838 2005-07-30  Havoc Pennington  <hp@redhat.com>
3839
3840         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3841         DBUS_BUILD_TESTS since it's now used in production code
3842
3843 2005-07-29  Havoc Pennington  <hp@redhat.com>
3844
3845         * test/glib/test-profile.c (write_junk): initialize the junk
3846         buffer so valgrind doesn't have a breakdown
3847
3848 2005-07-29  Havoc Pennington  <hp@redhat.com>
3849
3850         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3851         (match_rule_matches): remove unused arg
3852         (test_matching): add tests for match_rule_matches()
3853
3854         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3855         do arg0='foo' arg5='bar' in the match rules
3856         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3857
3858         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3859
3860 2005-07-29  Ross Burton  <ross@openedhand.com>
3861
3862         * dbus/dbus-connection.c:
3863         Don't create a DBusCondVar which is never used.
3864
3865 2005-07-27  Ross Burton  <ross@openedhand.com>
3866
3867         * dbus/dbus-message.c:
3868         Reduce the size of the maximum cached message to 10K.
3869
3870 2005-07-25  Ross Burton  <ross@openedhand.com>
3871
3872         * glib/dbus-gproxy.c:
3873         Remove matches when all proxies are unregistered.
3874
3875 2005-07-24  Colin Walters  <walters@verbum.org>
3876
3877         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3878         typedata; recursive arrays won't have it.
3879
3880         * test/glib/test-dbus-glib.c:
3881         * test/glib/test-service-glib.c:
3882         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3883         
3884 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3885
3886         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3887         proxies.py, service.py: Cleanup of code after running it through the
3888         pyflakes code checker mostly dealing with undefined names.  
3889         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3890
3891 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3892
3893         * NEWS: Update to 0.35.2
3894
3895 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3896
3897         * python/_dbus.py: Remove import of the dbus.services
3898         module as it no longer exists (patch from Dimitur Kirov)
3899
3900         * python/service.py (Object::__init__): Fixed typo
3901         s/name/bus_name (patch from Dimitur Kirov)
3902
3903         * python/examples/example-signal-emitter.py: import dbus.glib
3904         to get the main loop and use glib mainloop instead of gtk so
3905         X doesn't have to be running.
3906
3907         * python/examples/example-signal-recipient.py: import dbus.glib
3908         to get the main loop and use glib mainloop instead of gtk so
3909         X doesn't have to be running. Import the decorators module
3910         directly.
3911
3912         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3913         didn't pick up on but are needed to build
3914
3915         * configure.in: upped version to 0.35.2
3916
3917         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3918         added Colin Walters' SELinux API rename patch from head 
3919         s/unix sercurity context/selinux security context/
3920
3921 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3922
3923         * python/Makefile.am: dbus_binding.pxd.in should be included 
3924         in EXTRA_DIST not dbus_binding.pxd
3925         fix up $(srcdir) hopefully for the last time
3926
3927         * NEWS: Update to 0.35.1
3928
3929 2005-07-16  Colin Walters  <walters@verbum.org>
3930
3931         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3932         from bus_driver_handle_get_connection_unix_security_context.  Update for
3933         error usage.
3934         (message_handlers): Update for renames.
3935
3936         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3937         _dbus_string_init failure correctly.
3938         (bus_selinux_append_context): Convert SID to context.  Append it
3939         as a byte array.
3940         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3941         hasn't been called.
3942
3943         * bus/selinux.h: Update prototype.
3944
3945         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3946         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3947
3948 2005-07-15  Colin Walters  <walters@verbum.org>
3949
3950         * doc/TODO: Add note about convenience wrappers.
3951
3952 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3953
3954         * NEWS: Update to 0.35
3955
3956 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3957
3958         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3959         so distcheck doesn't fail
3960
3961         * glib/examples/Makefile.am: Add example-service.xml and 
3962         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3963
3964         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3965         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3966
3967         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3968         compiler looks in the right places during distcheck
3969
3970 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3971
3972         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3973         to fail
3974
3975 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3976
3977         * python/examples/example-service.py,
3978         python/examples/example-signal-emitter.py: Fixed up examples
3979         for API changes
3980
3981 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3982
3983         * python/__init__.py: Upped to version (0,42,0) because of
3984         the API change
3985
3986 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3987
3988         * ChangeLog: fix date in last entry
3989
3990         * configure.in, bus/system.conf.in: add the ability to configure 
3991         the system bus user at compiletime with the --with-dbus-user flag
3992         (patch from Kristof Vansant)
3993
3994 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3995
3996         * bus/dispatch.c, test/test-service.c: Add testcase
3997         for sending messages to oneself (TODO item).
3998
3999         * python/service.py (class Object): Swap ordering of bus_name 
4000         and object_path parameters to better support inheritance.
4001
4002         * doc/dbus-tutorial.xml: change Python docs to reflect change
4003         in parameter ordering and fix the inheritance section.
4004
4005         * doc/TODO: remove sending message to oneself TODO item
4006
4007 2005-07-15  Ross Burton  <ross@openedhand.com>
4008
4009         * glib/dbus-gproxy.c:
4010         Fix a leak when calling methods via the proxy.
4011
4012 2005-07-15  Colin Walters  <walters@verbum.org>
4013
4014         * bus/selinux.c (bus_selinux_append_context): Wrap in
4015         HAVE_SELINUX.
4016
4017 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4018
4019         * python/_dbus.py (Bus::remove_signal_receiver):
4020         don't add a callback to the match if none has been passed in
4021         
4022         * python/matchrules.py (SignalMatchTree::remove): if the rule
4023         being matched does not have a callback treat it as a wildcard
4024         fix matching logic
4025
4026         * doc/dbus-tutorial.xml: Add Python tutorial
4027
4028 2005-07-14  Colin Walters  <walters@verbum.org>
4029
4030         * bus/driver.c
4031         (bus_driver_handle_get_connection_unix_security_context): New function.
4032         (message_handlers): Add.
4033
4034         * bus/selinux.c (bus_selinux_append_context): New function; appends
4035         security context to message.
4036
4037         * bus/selinux.h: Prototype.
4038
4039         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4040
4041 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4042
4043         * bus/activation.c: clean up all tabs to be 8 spaces 
4044         (bus_activation_activate_service): make sure we clean up
4045         if activation fails
4046
4047         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4048         (check_shell_fail_service_auto_start): New function
4049         tests to make sure we get fail properly when trying to auto start a service
4050         with a faulty command line
4051         (check_shell_service_success_auto_start): New function tests to make sure
4052         auto started services get the arguments on the command line
4053
4054         * test/test-shell-service.c: Added service for testing auto-starting with 
4055         command line arguments
4056
4057         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4058         test/data/valid-service-files/debug-shell-echo-success.service.in:
4059         Added service files for testing auto-starting with command line arguments
4060
4061         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4062
4063 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4064
4065         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4066         
4067         * dbus/Makefile.am: added new files to build.
4068
4069         * bus/activation.c (bus_activation_activate_service): support
4070         activation commands with parameters.
4071
4072         * test/shell-test.c: added test program for the shell parsing
4073         code.
4074
4075 2005-07-13  David Zeuthen  <davidz@redhat.com>
4076
4077         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4078         64 bit signed and unsigned parameters
4079
4080 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4081
4082         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4083
4084         * python/service.py (class Name): renamed BusName to make it clearer
4085         what the object is for (a name on the bus)
4086
4087         * python/examples/example-service.py,
4088         python/examples/example-signal-emitter.py: change the Name object to
4089         BusName
4090
4091 2005-07-12  Colin Walters  <walters@verbum.org>
4092
4093         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4094
4095         * tools/dbus-launch.c: Include sys/select.h.
4096
4097 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4098         * python/dbus_bindings.pyx.in: removed
4099
4100         * python/dbus_bindings.pyx: Added.
4101         - Fixed some memleaks (patch from 
4102         Sean Meiners <sean.meiners@linspireinc.com>)
4103         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4104         own pxd file (Pyrex definition)
4105         - Broke out glib dependancies into its own pyx module
4106         
4107         * python/dbus_bindings.pdx: Added.
4108         - Defines C class Connection for exporting to other modules
4109
4110         * python/dbus_glib_bindings.pyx: Added.
4111         - New module to handle lowlevel dbus-glib mainloop integration
4112
4113         * python/glib.py: Added.
4114         - Registers the glib mainloop when you import this module
4115
4116         * python/services.py: Removed (renamed to service.py)
4117         
4118         * python/service.py: Added.
4119         - (class Server): renamed Name
4120
4121         * python/__init__.py: Bump ro version (0,41,0)
4122         -don't import the decorators or service module
4123         by default.  These now reside in the dbus.service namespace
4124
4125         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4126         setup function on creation 
4127
4128         * python/examples/example-service.py,
4129         python/examples/example-signal-emitter.py: update examples
4130
4131         * python/examples/gconf-proxy-service.py,
4132         python/examples/gconf-proxy-service2.py: TODO fix these up
4133
4134         * doc/TODO: Addition
4135         - Added a Python Bindings 1.0 section
4136         - added "Add match on args or match on details to match rules"
4137
4138
4139 2005-07-12  Colin Walters  <walters@verbum.org>
4140
4141         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4142         (statemachine-glue.h): 
4143         * glib/examples/Makefile.am (example-service-glue.h) 
4144         (example-signal-emitter-glue.h): 
4145         * glib/Makefile.am (dbus-glib-error-switch.h): 
4146         Add libtool --mode=execute so we use the built library instead
4147         of any installed one.
4148
4149 2005-07-11  Colin Walters  <walters@verbum.org>
4150
4151         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4152         (dbus_g_value_types_init): Remove assertion.
4153         (dbus_g_value_get_g_type, dbus_g_value_open)
4154         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4155         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4156         functions related to DBusGValue.  Now we marshal/demarshal
4157         structures as GValueArray.
4158         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4159         structures.
4160         (signature_iter_to_g_type_array): Don't call
4161         signature_iter_to_g_type_struct.
4162         (signature_iter_to_g_type_struct): Delete.
4163         (dbus_gvalue_to_signature): Delete.
4164         (dbus_gvalue_to_signature): New function with same name as other
4165         one; we can convert structures to signatures.
4166         (demarshal_valuearray): New function.
4167         (get_type_demarshaller): Use it.
4168         (demarshal_recurse): Delete.
4169         (marshal_proxy): New function.
4170         (marshal_map): Warn if we can't determine signature from type.
4171         (marshal_collection_ptrarray): Ditto.
4172         (marshal_collection_array): Ditto.
4173         (get_type_marshaller): Use marshal_valuearray.
4174         (marshal_recurse): Delete.
4175         (_dbus_gvalue_test): Add some tests.
4176
4177         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4178         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4179         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4180         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4181         (dbus_g_value_free): Remove prototypes.
4182
4183         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4184         G_TYPE_VALUE_ARRAY.
4185
4186         * glib/examples/example-service.c:
4187         * glib/examples/example-client.c: Implement GetTuple.
4188
4189         * test/glib/test-dbus-glib.c:
4190         * test/glib/test-service-glib.c:
4191         * test/glib/test-service-glib.xml: Add structure tests.
4192
4193 2005-07-10  Colin Walters  <walters@verbum.org>
4194
4195         * doc/TODO: Knock off some GLib items with this patch.
4196
4197         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4198         (_dbus_gvalue_signals_error): New functions.
4199
4200         * glib/dbus-gvalue-utils.h: Prototype them.
4201
4202         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4203         and change to not output const/retval flags for input args.  All
4204         callers updated.
4205         (invoke_object_method): Refactor to handle return values.  Add
4206         some more comments in various places.  Remove debug g_print.
4207
4208         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4209
4210         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4211         Handle G_TYPE_NONE.
4212         (compute_gsignature): New function; refactored from code from
4213         compute_marshaller and compute_marshaller_name.  Enhance to
4214         handle return values and async ops more cleanly.  Update for
4215         async ops returning NONE instead of BOOLEAN.
4216         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4217         and output appropriate string.
4218         (generate_glue): Handle return value annotation.  Also don't dump
4219         constness flag for input arguments.
4220
4221         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4222         files shared between installed library and utilities.
4223         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4224         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4225         binding tool can access gtype utility functions.
4226
4227         * test/glib/test-service-glib.c: 
4228         * test/glib/test-service-glib.xml: 
4229         * test/glib/test-dbus-glib.c: Add some tests for return values.
4230
4231 2005-07-09  Colin Walters  <walters@verbum.org>
4232
4233         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4234         argument if available, not method.
4235
4236         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4237         (invoke_object_method): First, remove some redundant
4238         GValues (object_value, error_value) in favor of working on
4239         array directly.  Second, rework constness to be less buggy.
4240         Now we iterate directly over the argument metadata instead
4241         of parallel iterating over output signature and metadata.
4242
4243         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4244
4245         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4246         annotation on input args.
4247         
4248 2005-07-09  Colin Walters  <walters@verbum.org>
4249
4250         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4251         Define.
4252
4253         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4254         annotation.
4255
4256         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4257         (method_dir_signature_from_object_info): Handle arg_iterate change.
4258         (write_interface): Ditto.
4259         (lookup_object_info): Don't barf if format_version is > 0.
4260         (invoke_object_method): Handle arg constness.
4261
4262         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4263         (arg_info_new): Create.
4264         (arg_info_unref): Destroy.
4265         (arg_info_get_annotations, arg_info_get_annotation) 
4266         (arg_info_add_annotation): New functions.
4267
4268         * glib/dbus-gidl.h: Prototype them.
4269
4270         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4271         args, disallow them in properties.
4272         (parse_annotation): Handle arg annotations.
4273
4274         * test/glib/test-service-glib.xml: 
4275         * test/glib/test-service-glib.c: Update to make some methods
4276         const.
4277
4278 2005-07-08  Colin Walters  <walters@verbum.org>
4279
4280         * test/glib/test-service-glib.xml: 
4281         * test/glib/test-service-glib.c:
4282         * test/glib/test-dbus-glib.c: Test a{sv}.
4283
4284         * glib/examples/statemachine/statemachine.c:
4285         * glib/examples/statemachine/statemachine-server.c:
4286         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4287         add progress bar, etc.
4288
4289         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4290         needed anymore due to generic array/map marshalling.
4291         (dbus_g_value_types_init): Don't register basic arrays or the
4292         string/string hash.
4293         (dbus_gtype_from_signature_iter): Don't try to recurse into
4294         variants.
4295         (dbus_gtype_to_signature): Check collection/map before type
4296         metadata.
4297         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4298         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4299         generic map creation/append functions instead of hash table
4300         specifically.
4301         (get_type_demarshaller): Handle maps.
4302         (demarshal_collection): Dispatch on collection type to either
4303         demarshal_collection_ptrarray or demarshal_collection_array.
4304         (get_type_marshaller): Handle maps.
4305         (marshal_collection): Dispatch collection type to either
4306         marshal_collection_ptrarray or marshal_collection_array.
4307         (_dbus_gvalue_test): New test.
4308
4309         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4310         (hash_free_from_gtype): Use it to free GValues.
4311         (hashtable_append): New function.
4312         (ptrarray_append): Fix prototype.
4313         (slist_append): Ditto.
4314         (_dbus_gvalue_utils_test): Extend tests.
4315
4316         * glib/dbus-gtype-specialized.c
4317         (dbus_g_type_specialized_init_append): Renamed from
4318         dbus_g_type_specialized_collection_init_append.  Remove const from
4319         value, since we steal it.
4320         (dbus_g_type_specialized_map_append): New function.
4321
4322         * glib/dbus-gtype-specialized.h: Update prototypes.
4323         Add DBusGTypeSpecializedMapAppendFunc.
4324
4325         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4326         _dbus_gvalue_test.
4327         
4328         * glib/dbus-gtest.h: Prototype it.
4329
4330 2005-07-08  Ross Burton  <ross@openedhand.com>
4331
4332         * dbus/dbus-glib.h:
4333         Add DBysGAsyncData for the async bindings.
4334
4335         * glib/dbus-binding-tool-glib.c:
4336         Re-enable the async bindings.
4337
4338         * test/glib/test-dbus-glib.c:
4339         Add a test for the generated async bindings.
4340
4341 2005-07-08  Colin Walters  <walters@verbum.org>
4342
4343         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4344         connection concept.
4345         
4346 2005-07-08  Colin Walters  <walters@verbum.org>
4347         
4348         * tools/Makefile.am: Kill of print-introspect in favor of using
4349         dbus-send --print-reply=literal.
4350
4351         * test/glib/test-service-glib.xml: 
4352         * test/glib/test-service-glib.c (my_object_get_objs): New test
4353         for "ao".
4354
4355         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4356         (main): Test GetObjs.
4357
4358         * glib/examples/statemachine/Makefile.am:
4359         * glib/examples/statemachine/sm-marshal.list:
4360         * glib/examples/statemachine/statemachine-client.c:
4361         * glib/examples/statemachine/statemachine-server.c:
4362         * glib/examples/statemachine/statemachine-server.xml:
4363         * glib/examples/statemachine/statemachine.c:
4364         * glib/examples/statemachine/statemachine.h:
4365         * glib/examples/statemachine/statemachine.xml:
4366
4367         New example.
4368
4369         * glib/examples/example-service.c (main): Move invocation
4370         of dbus_g_object_type_install_info earlier, to emphasize it
4371         should only be done once.
4372
4373         * glib/examples/example-signal-emitter.c (main): Ditto.
4374
4375         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4376
4377         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4378         (dbus_gvalue_marshal): Update prototypes.
4379
4380         * glib/dbus-gvalue.c: Update all marshalling functions to take
4381         const GValue instead of GValue.
4382         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4383         types.
4384         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4385         change.
4386         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4387         Return a newly-allocated string.
4388         (demarshal_proxy, demarshal_object_path, demarshal_object)
4389         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4390         we get the wrong types from message.
4391         (get_type_demarshaller): New function, extracted from
4392         dbus_gvalue_demarshal.
4393         (demarshal_collection): New function, demarshals generic
4394         collection.
4395         (dbus_gvalue_demarshal): Just invoke result of
4396         get_type_demarshaller.  Throw error if we don't have one.
4397         (marshal_garray_basic): Abort on OOM.
4398         (get_type_marshaller): New function, extracted from
4399         dbus_gvalue_marshal.
4400         (collection_marshal_iterator, marshal_collection): New functions;
4401         implements generic marshalling for an iteratable specialized
4402         collection.
4403         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4404
4405         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4406         G_TYPE_STRING.
4407         (ptrarray_value_from_gvalue): Ditto.
4408         (ptrarray_append, ptrarray_free): New functions.
4409         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4410         (slist_append, slist_end_append, slist_free): New functions.
4411         (dbus_g_type_specialized_builtins_init): Add append fuctions
4412         for GPtrArray and GSList.  Register GSList.
4413         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4414
4415         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4416         New.
4417         (dbus_g_type_specialized_collection_init_append)
4418         (dbus_g_type_specialized_collection_append)
4419         (dbus_g_type_specialized_collection_end_append): Prototype.
4420         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4421         end_append_func.
4422
4423         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4424         (dbus_g_type_specialized_collection_append) 
4425         (dbus_g_type_specialized_collection_end_append): New functions.
4426         (dbus_g_type_map_value_iterate): Take const GValue.
4427         (dbus_g_type_collection_value_iterate): Ditto.
4428
4429         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4430         _dbus_gvalue_utils_test.
4431         
4432         * glib/dbus-gtest.h: Prototype it.
4433
4434         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4435         using uninitialized owner_list.
4436         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4437         public API.
4438         (dbus_g_proxy_end_call_internal): Update to use error set
4439         from dbus_gvalue_demarshal instead of setting it here.
4440         (dbus_g_proxy_begin_call): Move return_if_fail here.
4441
4442         * glib/dbus-gobject.c (write_interface): Update for
4443         dbus_gtype_to_signature returning new string.
4444
4445         * configure.in: Add glib/examples/statemachine.
4446
4447 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4448
4449         * configure.in: Add a configure option, --with-console-auth-dir
4450         
4451         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4452         new setting.  Patch from Kay Sievers.
4453
4454 2005-07-06  Colin Walters  <walters@verbum.org>
4455
4456         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4457         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4458         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4459         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4460         Delete in favor of dbus_g_proxy_begin_call and
4461         dbus_g_proxy_cancel_call.
4462         (DBusGProxyCall, DBusGProxyCallNotify): New.
4463         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4464         data, and destroy function.  This replaces
4465         dbus_g_pending_call_set_notify.
4466         (dbus_g_proxy_cancel_call): Prototype.
4467         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4468
4469         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4470         pending_calls map.
4471         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4472         internal proxy for calls to the bus. Remove
4473         pending_nameowner_calls, now the internal proxy keeps track.
4474         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4475         pending_nameowner_calls.
4476         (got_name_owner_cb): Update prototype, and use
4477         dbus_g_proxy_end_call.
4478         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4479         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4480         favor of using internal proxy.
4481         (dbus_g_proxy_manager_unregister): Update to use
4482         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4483         (dbus_g_proxy_init): Initialize pending calls map.
4484         (dbus_g_proxy_constructor): New.
4485         (dbus_g_proxy_class_init): Add get/set property functions,
4486         constructor, and add NAME, PATH, and INTERFACE properties.
4487         (cancel_pending_call): New function.
4488         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4489         cancel them.
4490         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4491         (GPendingNotifyClosure): New structure.
4492         (d_pending_call_notify, d_pending_call_free): Moved here from
4493         dbus-glib.c.
4494         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4495         ordering.
4496         (manager_begin_bus_call): New internal function for talking to
4497         internal bus proxy.
4498         (dbus_g_proxy_new): Construct object using GObjet properties.
4499         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4500         Create closure of same, and insert call into map of pending calls.
4501         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4502         call.  Look up pending call in current set.  Remove it when we've
4503         completed.
4504         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4505         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4506         and destroy function directly.
4507         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4508         (dbus_g_proxy_call): Invoke with NULL callback.
4509         (dbus_g_proxy_cancel_call): New function, replaces
4510         dbus_g_pending_call_cancel.
4511
4512         * glib/dbus-gparser.c (validate_signature): Fix call to
4513         dbus_set_g_error.
4514
4515         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4516         New quark for attaching metadata to GType.
4517         (info_hash): Delete.
4518         (lookup_object_info): Look up using quark.
4519         (dbus_g_object_type_install_info): Check that a type is classed,
4520         not that it's an object.  Also just install type data using quark
4521         instead of using global hash.
4522
4523         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4524         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4525         (GPendingNotifyClosure): Delete.
4526         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4527         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4528
4529         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4530         client method generation until we can fix it...
4531         
4532         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4533         (load_from_service_thread_func): Ditto.
4534
4535         * tools/dbus-names-model.c (struct NamesModel): Hold
4536         DBusGProxyCall.
4537         (have_names_notify): Update prototype, use
4538         dbus_g_proxy_cancel_call.
4539         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4540
4541         * tools/dbus-monitor.c (filter_func): Update for print_message
4542         API change.
4543
4544         * test/glib/test-dbus-glib.c: Add more tests for async
4545         invocations.  Update many begin_call/end_call pairs to just use
4546         dbus_g_proxy_call.
4547
4548         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4549         allows us to dump print-introspect.c.
4550
4551         * tools/dbus-print-message.h (print_message): Add literal argument
4552         to print_message which is intended to allow printing arguments without
4553         metadata like "string=".
4554
4555         * tools/dbus-print-message.c (print_iter): Add literal argument.
4556         (print_message): Allow printing string messages literally.
4557
4558 2005-07-05  Colin Walters  <walters@verbum.org>
4559
4560         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4561         Remove value refcount leak, original patch from Jorn Baayen
4562         <jorn@openedhand.com>.  Also remove useless extra value in favor
4563         of prepending to value array directly.
4564
4565 2005-07-02  Colin Walters  <walters@verbum.org>
4566
4567         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4568
4569 2005-07-01  Colin Walters  <walters@verbum.org>
4570
4571         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4572         
4573         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4574         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4575         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4576         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4577
4578 2005-06-30  Colin Walters  <walters@verbum.org>
4579
4580         * test/glib/test-dbus-glib.c:
4581         * test/glib/test-service-glib.c:
4582         * test/glib/test-service-glib.xml: Update tests for new error
4583         setting bits, also add async tests (patch from Ross Burton).
4584
4585         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4586         DBUS_GLIB_THREADS_LIBS.
4587
4588         * glib/dbus-gproxy.c (get_name_owner)
4589         (dbus_g_pending_call_end_valist): Ditto.
4590
4591         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4592         domain (GQuark) to DBusGErrorInfo.  
4593         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4594         quark in error_metadata.  Take message interface as default
4595         error message interface.
4596         (gerror_to_dbus_error_message): Pass message interface.
4597         (dbus_set_g_error): Resurrected.
4598         (dbus_g_error_info_free): New function.
4599         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4600         of _peek to actually create the object class if it hasn't been
4601         created yet.
4602         (dbus_g_error_domain_register): New function.
4603
4604         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4605
4606         * glib/dbus-gparser.c (validate_signature): Ditto.
4607
4608         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4609         (dbus_g_error_domain_register): Prototype.
4610
4611         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4612         Update tests.
4613
4614 2005-06-29  Colin Walters  <walters@verbum.org>
4615
4616         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4617         DBUS_TYPE_G_OBJECT_PATH.
4618
4619         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4620         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4621         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4622         (dbus_g_object_path_get_g_type): New function.
4623         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4624         to DBUS_TYPE_G_OBJECT_PATH by default.
4625         (demarshal_proxy): Remove unused name variable.
4626         (demarshal_object_path, marshal_object_path): New functions.
4627         (demarshal_proxy_array, marshal_proxy_array): Delete.
4628         
4629         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4630         DBUS_TYPE_G_OBJECT_PATH to char *.
4631         (dbus_g_type_get_lookup_function): Map builtin
4632         DBUS_TYPE_G_OBJECT_PATH.
4633
4634         * test/glib/test-dbus-glib.c
4635         * test/glib/test-service-glib.c (my_object_objpath): 
4636         Adapt tests to new object path marshalling.
4637
4638 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4639
4640         * configure.in: force check for Python >= 2.4
4641
4642 2005-06-29  Colin Walters  <walters@verbum.org>
4643         
4644         Patch from Ross Burton <ross@openedhand.com>
4645         
4646         * glib/dbus-gobject.c (invoke_object_method): Unset object
4647         value in all cases, not only in async case.
4648
4649 2005-06-29  Colin Walters  <walters@verbum.org>
4650
4651         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4652         name_call for keeping track of any outgoing GetNameOwner call.
4653         Also add for_owner and associated.
4654         (struct _DBusGProxyManager): Add owner_names, which is hash table
4655         that maps a base name to a list of names it owns (that we're
4656         interested in).  Add pending_nameowner_calls which is a list of
4657         all outstanding GetNameOwner; avoids us having to iterate over
4658         every proxy.  Add unassociated_proxies which keeps track of name
4659         proxies with no associated name owner.
4660         (dbus_g_proxy_manager_unref): Destroy owner_names.
4661         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4662         name refcounts.
4663         (find_name_in_info, name_owner_foreach)
4664         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4665         (dbus_g_proxy_manager_monitor_name_owner)
4666         (dbus_g_proxy_manager_unmonitor_name_owner)
4667         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4668         New functions; they manipulate the owner_names mapping.
4669         (got_name_owner_cb): New function.
4670         (get_name_owner): New function, extracted from
4671         dbus_g_proxy_new_for_name_owner.
4672         (dbus_g_proxy_manager_register): For now we need to keep track of
4673         all NameOwnerChanged.  Also if the proxy is for a name, if we
4674         don't already know the name owner, queue a new GetNameOwner
4675         request and add it to our list of unassociated proxies.  Otherwise
4676         inc the refcount.
4677         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4678         cancel any pending GetNameOwner call, etc.
4679         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4680         the owner_names mapping to look up the current names for the
4681         signal source, and dispatch to any proxies for that name.
4682         (dbus_g_proxy_new): Initialize new members.
4683         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4684         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4685         (dbus_g_pending_call_end_valist): New function, extracted from
4686         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4687         but want to use the GLib infrastructure.  Also note how many
4688         arguments in reply were over.
4689         (dbus_g_pending_call_end): New function, just call
4690         dbus_g_pending_call_end_valist.
4691         (dbus_g_proxy_end_call_internal): Just call
4692         dbus_g_pending_call_end_valist.
4693
4694         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4695         of builtin marshaller for STRING_STRING_STRING.
4696
4697         * test/glib/test-dbus-glib.c: 
4698         * test/glib/test-service-glib.c:
4699         * test/glib/test-service-glib.xml:
4700         Extend tests to cover name proxies, destruction of owner proxies,
4701         etc.
4702         
4703         * glib/examples/example-signal-recipient.c
4704         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4705         
4706         * tools/dbus-send.c (main): Print D-BUS error name in addition
4707         to message.
4708
4709 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4710
4711         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4712         cmessage_function_handler): Patch from 
4713         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4714         by using the Py_GILState_Ensure/Release to synchronize with the
4715         python runtime.
4716         
4717 2005-06-28  Ray Strode  <rstrode@redhat.com>
4718
4719         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4720         babysitter helper process on last unref, bug #2813.
4721
4722 2005-06-27  Colin Walters  <walters@verbum.org>
4723
4724         * test/glib/test-dbus-glib.c: 
4725         * test/glib/test-service-glib.c:
4726         * test/glib/test-service-glib.xml:
4727         Test hash table signal emitting.
4728
4729         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4730         types to their fundamental basis types, since this is what
4731         marshallers operate on.  Also add an entry for VOID__BOXED.
4732         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4733
4734 2005-06-26  Havoc Pennington  <hp@redhat.com>
4735
4736         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4737         from Don Park
4738
4739 2005-06-26  Colin Walters  <walters@verbum.org>
4740
4741         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4742         (dbus_g_error_set): New public function from its ashes; used by
4743         both service-side method implementation and GLib bindings
4744         internals.
4745         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4746         (_dbus_glib_test): Add some tests.
4747
4748         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4749
4750         * test/glib/test-service-glib.c (my_object_throw_error): Use
4751         dbus_g_error_set.
4752
4753         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4754         errors thrown by dbus_g_error_set.
4755
4756         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4757
4758         * glib/dbus-gparser.c (validate_signature): Ditto.
4759
4760         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4761         (dbus_g_proxy_end_call_internal): Ditto.
4762
4763         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4764         converts DBUS_ERROR_x to DBUS_GERROR_x.
4765         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4766
4767         * doc/TODO: Remove error TODO.
4768
4769         * doc/dbus-tutorial.xml: Update with documentation about error
4770         handling.
4771
4772         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4773         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4774         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4775
4776 2005-06-22  Colin Walters  <walters@verbum.org>
4777         
4778         Patch from Ross Burton <ross@openedhand.com>
4779
4780         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4781
4782 2005-06-20  Colin Walters  <walters@verbum.org>
4783
4784         * configure.in: Add glib/examples.
4785
4786         * glib/Makefile.am: Add examples/
4787
4788         * glib/examples/.cvsignore
4789         * glib/examples/Makefile.am
4790         * glib/examples/example-client.c
4791         * glib/examples/example-service.c
4792         * glib/examples/example-service.xml
4793         * glib/examples/example-signal-emitter.c
4794         * glib/examples/example-signal-emitter.xml
4795         * glib/examples/example-signal-recipient.c:
4796         New files; GLib binding examples, ported from
4797         python/examples.
4798
4799 2005-06-20  Colin Walters  <walters@verbum.org>
4800
4801         * dbus/dbus-glib.h: 
4802         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4803         dbus_g_proxy_call.
4804
4805         * glib/dbus-binding-tool-glib.c: 
4806         * doc/dbus-tutorial.xml: 
4807         * test/glib/test-dbus-glib.c: Update for rename.
4808         
4809 2005-06-20  Colin Walters  <walters@verbum.org>
4810
4811         Patch suggested by Ross Burton <ross@openedhand.com>
4812
4813         * glib/dbus-gobject.c (export_signals): Free signal name.
4814         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4815         memory leak.  Add a bit of documentation.
4816         (dbus_g_method_return_error): Free context, and note we do
4817         so.
4818
4819 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4820
4821         * dbus/dbus-glib.h:
4822         * glib/dbus-gobject.c:
4823         * glib/dbus-gproxy.c:
4824         * glib/dbus-gvalue.c: Predeclare structs as 
4825         typedef struct _Something Something instead of 
4826         typedef struct Something Something, so we can 
4827         redeclare the prototypes. Other GNOME libraries 
4828         do this already.
4829
4830 2005-06-17  Colin Walters  <walters@verbum.org>
4831
4832         * tools/dbus-names-model.c (have_names_notify): Fix call
4833         to dbus_g_proxy_end_call.
4834         
4835 2005-06-17  Colin Walters  <walters@verbum.org>
4836
4837         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4838         spew warnings if we get malformed remote signals.
4839
4840         * glib/dbus-gobject.c (propsig_iterate): New function.
4841         (lookup_object_info): New function, extracted from
4842         lookup_object_and_method.
4843         (introspect_properties, introspect_signals): Delete; these
4844         are merged into write_interface.
4845         (write_interface): Write out signals and properties here;
4846         dump the org.gtk.object stuff and use the interface given
4847         in the introspection data blob.  Also fix up property XML.
4848         (lookup_values): New function.
4849         (introspect_interfaces): Gather a mapping from interface to a
4850         list of its methods, signals, and properties, then write out
4851         each interface.
4852         (lookup_object_and_method): Use lookup_object_info.
4853         (struct DBusGSignalClosure): Add interface.
4854         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4855         we can just use the constant data.
4856         (dbus_g_signal_closure_finalize): Don't free signal name.
4857         (signal_emitter_marshaller): Use interface from signal closure.
4858         (export_signals): Only export signals mentioned in introspection
4859         blob.
4860         (dbus_g_connection_register_g_object): Warn if we have no
4861         introspection data for an object.
4862         (funcsig_equal): Remove unused variable.
4863         (dbus_g_object_register_marshaller): Take varargs instead of
4864         list.
4865         (dbus_g_object_register_marshaller_array): New function,
4866         extracted from old dbus_g_object_register_marshaller.
4867
4868         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4869         signals and property data.
4870         (write_quoted_string): New function, extracted from generate_glue.
4871         (generate_glue): Write signals and properties to introspection
4872         blob.
4873
4874         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4875         exported_signals and exported_properties.
4876         (dbus_g_object_register_marshaller): Update prototype.
4877         (dbus_g_object_register_marshaller_array): Prototype.
4878         
4879         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4880
4881         * test/glib/test-service-glib.c: Add new test signals and method
4882         to emit them.
4883
4884         * test/glib/test-service-glib.xml: Add some test signals.
4885
4886         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4887         and my-object-marshal.h
4888         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4889         my-object-marshal.c.
4890         (my-object-marshal.c, my-object-marshal.h): Implement.
4891
4892         * test/glib/.cvsignore: Update.
4893
4894         * doc/TODO: Remove two GLib TODO items fixed by this
4895         patch.
4896
4897 2005-06-16  Colin Walters  <walters@verbum.org>
4898
4899         * doc/TODO: Update for GLib bindings.
4900         
4901 2005-06-16  Colin Walters  <walters@verbum.org>
4902
4903         * glib/dbus-binding-tool-glib.c:
4904         * glib/dbus-gobject.c:
4905         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4906         from Ross Burton, for his GLib bindings work.
4907
4908 2005-06-16  Colin Walters  <walters@verbum.org>
4909
4910         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4911         to iterate instead of walking to G_TYPE_INVALID.
4912
4913         Patch based on a patch from Ryan Gammon.
4914
4915 2005-06-16  Colin Walters  <walters@verbum.org>
4916
4917         * bus/bus.c (bus_context_new): Set parser to NULL
4918         after we unref it (Patch from Chris Boscolo, #2174).
4919         
4920 2005-06-16  Colin Walters  <walters@verbum.org>
4921
4922         * python/dbus_bindings.pyx.in: Import size_t,
4923         __int64_t, __uint64_t, and __signed.
4924
4925         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4926         Define cmsg struct, output it.
4927         (_dbus_read_credentials_unix_socket):
4928         Use cmsg struct.
4929         
4930         Patch from Joe Markus Clarke for FreeBSD support.
4931         
4932 2005-06-16  Colin Walters  <walters@verbum.org>
4933
4934         * tools/dbus-send.c (append_array): Use strtok.
4935         (append_dict): New function.
4936         (type_from_name): New function, extracted from main.
4937         (main): Handle sending dicts.
4938
4939         * tools/dbus-print-message.c (print_iter): Print dict
4940         entries.
4941         
4942 2005-06-16  Colin Walters  <walters@verbum.org>
4943
4944         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4945         values as the empty string (#2948).
4946         
4947 2005-06-16  Colin Walters  <walters@verbum.org>
4948
4949         * dbus/Makefile.am:
4950         * mono/doc/Makefile.am:
4951         * test/glib/Makefile.am:
4952
4953         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4954
4955 2005-06-16  Colin Walters  <walters@verbum.org>
4956
4957         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4958         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4959
4960         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4961         Increment pointer after swapping fixed array.  Add assertion
4962         for array length.
4963                 
4964 2005-06-15  Colin Walters  <walters@verbum.org>
4965
4966         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4967         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4968         
4969 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4970
4971         * NEWS: Update to 0.34
4972
4973 2005-06-15  David Zeuthen  <davidz@redhat.com>
4974
4975         * configure.in (LT_CURRENT): Revert back to 1 as the library
4976         hasn't changed and we've certainly not committed to protocol
4977         stability yet.  All this does is to break ABI. See commit note
4978         from hp@redhat.com 2005-05-05 for details.
4979         
4980 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4981
4982         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4983         (_dbus_connection_run_builtin_filters): New method
4984         (dbus_connection_dispatch): Run the builtin filters which in turn
4985         runs the peer filter which handles Ping messages.
4986
4987         * doc/TODO: 
4988          - Ping isn't handled: This patch fixes it
4989          
4990          - Add a test case for the Ping message: added TODO item
4991
4992 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4993
4994         * dbus/dbus-message.c:
4995         (dbus_message_has_path): New method
4996         (dbus_message_has_interface): New method
4997         (dbus_message_has_member): New method
4998
4999         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5000         New method
5001
5002         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5003         the keyring directory is private to the user
5004
5005         * doc/TODO:
5006          - The convenience functions in dbus-bus.h should perhaps have
5007          the signatures that they would have if they were autogenerated
5008          stubs. e.g. the acquire service function. We should also evaluate
5009          which of these functions to include, in light of the fact that
5010          GLib/Qt native stubs will probably also exist.: Punted
5011
5012          - add dbus_message_has_path(), maybe has_member/interface:
5013          fixed in this patch
5014
5015          - in dbus-keyring.c, enforce that the keyring dir is not
5016          world readable/writable: Fixed in this patch
5017
5018 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5019
5020         * dbus/dbus-marshal-validate.h: Added a new validation
5021         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5022         out of memory errors when validating signitures
5023
5024         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5025         in places where we previously used DBUS_VALID and a FALSE return 
5026         value to indicate OOM
5027         
5028         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5029         Use a stack to track the number of elements inside containers.  The 
5030         stack values are then used to validate that dict entries have only two
5031         elements within them.
5032         (validate_body_helper): check the reason for failure when validating
5033         varients
5034         
5035         * dbus/dbus-message.c (load_message): use 
5036         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5037         DBUS_VALID and a FALSE return value to indicate OOM
5038
5039         * doc/TODO: remove "- validate dict entry number of fields" as this
5040         patch fixes it
5041
5042 2005-06-14  David Zeuthen  <davidz@redhat.com>
5043
5044         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5045         watches (if applicable) and add new watches
5046
5047         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5048         (main): Setup SIGIO signal handler if using D_NOTIFY
5049
5050         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5051
5052         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5053         (merge_included): Also merge conf_dirs list
5054         (bus_config_parser_unref): Clear conf_dirs list
5055         (include_dir): Add directory to conf_dirs list
5056         (bus_config_parser_get_conf_dirs): New function
5057
5058         * bus/dir-watch.[ch]: New files
5059
5060         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5061
5062         * configure.in: Add checks for D_NOTIFY on Linux
5063
5064 2005-06-14  Colin Walters  <walters@verbum.org>
5065
5066         * glib/dbus-binding-tool-glib.c:
5067         * glib/dbus-gobject.c:
5068         * glib/dbus-gvalue.c: Fix indentation and brace style.
5069         
5070 2005-06-14  Ross Burton <ross@openedhand.com>.
5071
5072         * glib/dbus-glib.h: Make DBusGMethodInvocation
5073         a private structure.  Rearrange prototypes a bit.
5074         
5075         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5076         documentation for first_arg_type.
5077         
5078         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5079         here, add documentation.  Move dbus_g_method_return
5080         and dbus_g_method_return_error into public API
5081         section.
5082
5083 2005-06-14  Colin Walters  <walters@verbum.org>
5084
5085         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5086         Add missing return statements, noticed by Ross Burton.
5087         
5088 2005-06-13  Ross Burton <ross@openedhand.com>.
5089
5090         * glib/dbus-gobject.c: Handle errors on message
5091         demarshalling by sending error message back.
5092         * glib/dbus-gvalue.c: Initialize return variables.
5093
5094 2005-06-13  Colin Walters  <walters@verbum.org>
5095
5096         * glib/Makefile.am: Fix thinko in last patch.
5097
5098 2005-06-13  Colin Walters  <walters@verbum.org>
5099
5100         * glib/Makefile.am: Move dbus-gtype-specialized.c
5101         and dbus-gtype-specialized.h into a _HEADERS variable,
5102         install them.
5103
5104 2005-06-12  Colin Walters  <walters@verbum.org>
5105
5106         Async signals and various bugfixes and testing by
5107         Ross Burton <ross@openedhand.com>.
5108
5109         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5110         (dbus_gvalue_genmarshal_name_from_type)
5111         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5112         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5113         (dbus_g_value_types_init, dbus_gtype_from_signature)
5114         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5115         (dbus_gtypes_from_arg_signature): New function prototypes.
5116         (dbus_gvalue_demarshal): Take context and error arguments.
5117         (dbus_gvalue_demarshal_variant): New function.
5118         (dbus_gvalue_demarshal_message): New function.
5119         (dbus_gvalue_store): Delete.
5120
5121         * glib/dbus-gvalue.c:
5122
5123         File has been almost entirely rewritten; now we special-case
5124         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5125         hash tables correctly, etc.  Full support for recursive values
5126         is not yet complete.
5127
5128         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5129         argument of signal to G_TYPE_POINTER since we now pass a
5130         structure.
5131         (lookup_g_marshaller): Delete in favor of
5132         _dbus_gobject_lookup_marshaller.
5133         (marshal_dbus_message_to_g_marshaller): Use
5134         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5135         to handle remote signal callbacks.
5136         (dbus_g_proxy_new_from_proxy): New function; creates a new
5137         DBusGProxy by copying an existing one.
5138         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5139         (dbus_g_proxy_get_path): New functions.
5140         (dbus_g_proxy_marshal_args_to_message): New function;
5141         factored out of existing code.
5142         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5143         from a varargs array.
5144         (dbus_g_proxy_begin_call_internal): New function.
5145         (dbus_g_proxy_end_call_internal): New function.
5146         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5147         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5148         after collecting args into value array.
5149         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5150         invoke dbus_g_proxy_end_call_internal.
5151         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5152         end_call_internal.
5153         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5154         types.
5155         (array_free_all): New function.
5156         (dbus_g_proxy_add_signal): Take GTypes.
5157
5158         * glib/dbus-gobject.h:
5159         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5160         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5161         Prototype.
5162
5163         * glib/dbus-gobject.c: Add a global marshal_table hash which
5164         stores mappings from type signatures to marshallers.  Change lots
5165         of invocations of dbus_gtype_to_dbus_type to
5166         dbus_gtype_to_signature.
5167         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5168         (introspect_signals): Fix test for query.return_type.
5169         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5170         (invoke_object_method): Many changes.  Handle asynchronous
5171         invocations.  Convert arguments with
5172         dbus_gvalue_demarshal_message.  Handle errors.  Use
5173         DBusSignatureIter instead of strlen on args. Handle all arguments
5174         generically.  Special-case variants.
5175         (dbus_g_method_return, dbus_g_method_return_error): New function.
5176         (DBusGSignalClosure): New structure, closes over signal
5177         information.
5178         (dbus_g_signal_closure_new): New function.
5179         (dbus_g_signal_closure_finalize): New function.
5180         (signal_emitter_marshaller): New function; is special marshaller
5181         which emits signals on bus.
5182         (export_signals): New function; introspects object signals and
5183         connects to them.
5184         (dbus_g_object_type_install_info): Take GType instead of
5185         GObjectClass.
5186         (dbus_g_connection_register_g_object): Invoke export_signals.
5187         (dbus_g_connection_lookup_g_object): New function.
5188         (DBusGFuncSignature) New structure; used for mapping type
5189         signatures to marshallers.
5190         (funcsig_hash): New function; hashes DBusGFuncSignature.
5191         (funcsig_equal): New function; compares DBusGFuncSignature.
5192         (_dbus_gobject_lookup_marshaller): New function.
5193         (dbus_g_object_register_marshaller): New function; used to
5194         register a marshaller at runtime for a particular signature.
5195
5196         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5197
5198         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5199         which notes a server method implementation should be
5200         asynchronous.
5201
5202         * glib/dbus-binding-tool-glib.c
5203         (dbus_binding_tool_output_glib_server): Call
5204         dbus_g_value_types_init.
5205         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5206         variants specially.
5207         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5208         of a lookup function.
5209         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5210         (write_untyped_out_args): New method; write output arguments.
5211         (write_formal_declarations_for_direction): Function for
5212         writing prototypes.
5213         (write_formal_parameters_for_direction): Function for
5214         writing implementations.
5215         (write_typed_args_for_direction): Function for writing
5216         arguments prefixed with GTypes.
5217         (write_async_method_client): Write out async version
5218         of method.
5219
5220         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5221         (dbus_g_type_get_marshal_name): Move mapping from GType
5222         to marshal name into here.
5223         (dbus_g_type_get_c_name): Move into here.
5224         (compute_marshaller): Convert signature to type with
5225         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5226         (compute_marshaller_name): Ditto.
5227         (compute_marshaller): Handle async signal annotations.
5228         (gather_marshallers): Return if we don't have a known
5229         prefix.
5230         (generate_glue): Collect introspection blob here, and
5231         write all of the blob at the end.  This allows an object
5232         with multiple interfaces to work.
5233         Mark async methods in introspection blob.
5234
5235         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5236         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5237         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5238
5239         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5240         avoids people accidentally using DBUS_TYPE_* which should
5241         not be necessary anymore.
5242         Do include dbus-gtype-specialized.h, which are utilities
5243         for GLib container types.
5244         Add various #defines for types such as
5245         DBUS_TYPE_G_BOOLEAN_ARRAY.
5246         (DBusGValueIterator, DBusGValue): Define, not fully used
5247         yet.
5248         (dbus_g_value_get_g_type): Type for recursive value.
5249         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5250         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5251         (dbus_g_value_free): Prototypes.
5252         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5253         (dbus_g_proxy_set_interface): Prototype.
5254         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5255         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5256         types.
5257         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5258         Accessors.
5259         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5260         doing async invocations.
5261         (dbus_g_method_return, dbus_g_method_return_error):
5262         Prototypes.
5263         * doc/dbus-tutorial.xml: Update GLib section.
5264         
5265         * tools/dbus-viewer.c (load_child_nodes): Update
5266         for new invocation type of dbus_g_proxy_end_call.
5267         (load_from_service_thread_func): Ditto.
5268
5269         * tools/print-introspect.c (main): Ditto.
5270
5271         * tools/dbus-names-model.c (have_names_notify)
5272         (names_model_reload, names_model_set_connection)
5273         Use GTypes.
5274
5275         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5276         needed since Python bindings use GLib bindings.
5277
5278         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5279         Add --prefix argument.
5280
5281         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5282         unneeded --ignore-unsupported arg.
5283         
5284         * test/glib/test-service-glib.c: 
5285         * test/glib/test-service-glib.xml:
5286         * test/glib/test-dbus-glib.c: Add many more tests.
5287
5288 2005-06-06  David Zeuthen  <davidz@redhat.com>
5289
5290         * doc/TODO: Add item about need to remove deprecated functions.
5291
5292         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5293
5294         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5295         to repair the ABI which was broken with the last commit.
5296
5297 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5298
5299         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5300         (dbus_connection_disconnect): renamed to dbus_connection_close 
5301         for API symmetry with dbus_connection_open
5302         (_dbus_connection_open_internal): 
5303         s/dbus_connection_disconnect/dbus_connection_close
5304
5305         * dbus/dbus-bus.c (dbus_bus_get):
5306         s/dbus_connection_disconnect/dbus_connection_close
5307
5308         * bus/connection.c (bus_connections_unref, 
5309         bus_connections_setup_connection, bus_connections_expire_incomplete):
5310         s/dbus_connection_disconnect/dbus_connection_close
5311
5312         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5313         kill_client_connection_unchecked, check_hello_connection):
5314         s/dbus_connection_disconnect/dbus_connection_close
5315
5316         * bus/bus.c (new_connection_callback):
5317         s/dbus_connection_disconnect/dbus_connection_close
5318
5319         * tools/dbus-send.c (main):
5320         s/dbus_connection_disconnect/dbus_connection_close
5321
5322         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5323         s/dbus_connection_disconnect/dbus_connection_close
5324         
5325         * test/test-service.c (path_message_func, filter_func):
5326         s/dbus_connection_disconnect/dbus_connection_close
5327         
5328         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5329         
5330 2005-05-25  Colin Walters  <walters@verbum.org>
5331
5332         * dbus/dbus-protocol.h: Move various bus service #defines such
5333           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5334           dbus/dbus-shared.h.
5335         * dbus/dbus-shared.h: Various defines moved here.
5336         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5337
5338 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5339
5340         * python/__init__.py: Python bindings deserve a minor version
5341         update.  Upped to (0, 40, 2)
5342
5343 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5344
5345         * python/decorators.py: add explicitly_pass_message decorator
5346         for passing in the dbus message as keyword for edge case signal
5347         handling
5348
5349         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5350         to conform with what dbus expects for match rules
5351         (SignalMatchRule.execute): add the dbus message as a keyword
5352         if the signal handler has requested it
5353
5354         * python/examples/example/signal-recipient.py: added some more
5355         examples on how to hook up to signals
5356
5357 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5358
5359         * python/decorators.py: import dbus_bindings
5360
5361         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5362         SignalMatchNode): new classes that implement wildcard signal
5363         callback matching using a tree lookup. Heavily modified from a
5364         patch sent by Celso Pinto (fd.o bug #3241)
5365
5366         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5367         use new match classes to handle signals.
5368
5369 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5370         
5371         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5372
5373 2005-05-18  Havoc Pennington  <hp@redhat.com>
5374
5375         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5376         gettext. Not really worth requiring yet perhaps, but any
5377         production quality 1.0 would require it so we should go ahead and
5378         get things set up. We do have a couple token calls to
5379         bindtextdomain in the code already.
5380
5381 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5382
5383         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5384         when using recursive g_main_loops
5385
5386         * python/_dbus.py (class Bus): add the ProxyObjectClass
5387         alias for ProxyObject to make it easier for the Twisted 
5388         networking framework to integrate dbus.
5389
5390         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5391         alias for ProxyMethod to make it easier for the Twisted 
5392         networking framework to integrate dbus. 
5393
5394 2005-05-11  Ross Burton  <ross@openedhand.com>
5395
5396         * glib/dbus-glib-tool.c: Add --prefix argument.
5397         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5398         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5399         Add prefix argument.
5400         (generate_glue): Pass prefix argument down.
5401         (dbus_binding_tool_output_glib_server): Pass prefix to
5402         glib-genmarshal.
5403         
5404 2005-05-11  Colin Walters  <walters@verbum.org>
5405
5406         * tools/dbus-send.c (append_array): New function.
5407         (append_arg): Broken out from main.
5408         (main): Add cheesy hack to send arrays and variants.
5409         (usage): Update.
5410         * tools/dbus-print-message.c (print_iter): Broken out
5411         from main.
5412
5413 2005-05-11  Colin Walters  <walters@verbum.org>
5414
5415         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5416         New function, returns signature string for signature iter.
5417         * dbus/dbus-signature.h: Prototype it.
5418         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5419         New function, returns signature string for message iter.
5420         (dbus_message_iter_get_array_len): New function, returns
5421         length of array.
5422         (dbus_message_iter_get_fixed_array): Fix assertion; this
5423         function should be used when the iter is pointing to the
5424         contents of an array
5425         * dbus/dbus-message.h: Prototypes.
5426         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5427         New function; returns length of an array.
5428         * dbus/dbus-marshal-recursive.h: Prototype it.
5429         
5430 2005-05-11  Colin Walters  <walters@verbum.org>
5431
5432         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5433         compilation error.
5434         
5435 2005-05-08  Havoc Pennington  <hp@redhat.com>
5436
5437         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5438         daemon's pid, not the parent's pid, to the file descriptor.
5439         Reported by Taj Morton.
5440
5441 2005-05-05  Havoc Pennington  <hp@redhat.com>
5442
5443         * configure.in (LT_*): add notes on how the libtool versioning
5444         works to save thinking. Increment soname to indicate protocol
5445         breakage (though really the library interface hasn't changed I
5446         guess)
5447
5448         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5449         verify the GUID received from server matches what we were
5450         expecting, if we had an expectation
5451
5452         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5453         (_dbus_auth_get_guid_from_server): new function
5454         (send_begin): parse the OK args
5455
5456         * doc/dbus-specification.xml: add GUID to the auth protocol
5457
5458 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5459
5460         * Fix my name in previous changelog ;)
5461
5462         * python/proxies.py (ProxyObject.__getattr__): add further patch
5463         from Anthony Baxter to throw an AttributeError when python 
5464         __special__ functions are called instead of marshling them over 
5465         the bus (Bug#1685 comment 3).
5466
5467 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5468
5469         * python/Makefile.am: changed to use pyexecdir for the binding
5470         shared libraries (Bug#2494)
5471
5472         * python/exceptions.py: bring exceptions over from the bindings
5473         so they can be used in applications (Bug#2036)
5474         Make all exceptions derive from DBusException
5475
5476         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5477         of classes so that print obj doesn't throw an exception (Bug #1685)
5478
5479 2005-05-03  Ross Burton  <ross@openedhand.com>
5480
5481         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5482         Return if we get an error during registration.  Set up a
5483         weak reference on object to unregister if object is destroyed.
5484         (unregister_gobject): New function.
5485         
5486 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5487
5488         * python/dbus_bindings.pyx.in: 
5489         - added new type classes for hinting to the marashaler what type 
5490         to send over the wire
5491         - added int16 and uint16 marshalers
5492         - Fixed a bug in the type constants that caused int32 to go out
5493         as uint16 over the wire
5494         * python/dbus.py: split up into different files and renamed _dbus.py
5495         * python/__init__.py, python/_util.py, python/decorators.py, 
5496         python/exceptions.py, python/proxies.py, python/services.py,
5497         python/types.py: new files split off from dbus.py
5498         * python/Makefile.am: Add new files, remove dbus.py and 
5499         install all python files to <python module dir>/dbus
5500         * python/examples/*: Added #!/usr/bin/env python to the top of
5501         every example.  Patch provided by Tatavarty Kalyan
5502
5503 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5504
5505         * NEWS: Update to 0.33
5506
5507 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5508
5509         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5510         method for doing async calls
5511         (_pending_call_notification): New C function for handling pendning call
5512         callbacks
5513         (set_notify): New method for setting pending call notification
5514         
5515         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5516         Async capabilities added to remote method calls
5517         (Sender): class removed
5518         (RemoteService): class removed
5519         (ObjectTree): class removed for now
5520         (RemoteObject): Renamed to ProxyObject
5521         (RemoteMethod): Renamed to ProxyMethod
5522         (method): Decorator added for decorating python methods as dbus methods
5523         (signal): Decorator added for decorating python methods as signal emitters
5524         (ObjectType): Metaclass added for generating introspection data and the
5525         method callback vtable
5526         (Interface): Wrapper class added to wrap objects in a dbus interface
5527         (Object): Uses ObjectType as its metaclass and exports Introspect
5528         of the org.freedesktop.DBus.Introspectable interface
5529         (ValidationException, UnknownMethodException): new exceptions
5530
5531         * python/examples/*: Modified to fit with the new bindings
5532
5533 2005-04-23  Havoc Pennington  <hp@redhat.com>
5534
5535         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5536         reported by Tony Houghton
5537
5538         * test/test-service.c (main): test
5539         dbus_connection_get_object_path_data()
5540
5541         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5542         the exact_match
5543         (_dbus_object_tree_get_user_data_unlocked): new function used by
5544         dbus_connection_get_object_path_data()
5545         (do_register): add assertion test for get_user_data_unlocked
5546         (object_tree_test_iteration): more tests
5547
5548         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5549         new function from Dan Reed to let you get the user data from 
5550         dbus_connection_register_object_path()
5551
5552 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5553
5554         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5555         in numerous places that did not account for the NULL terminator
5556         (signature_from_seed): changed the manual string copy loop to 
5557         just use strcpy instead
5558         make check should now pass
5559
5560 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5561
5562         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5563         so that it allows messages that are not signals to pass in 
5564         NULL as the interface.
5565
5566 2005-04-18  David Zeuthen  <davidz@redhat.com>
5567
5568         * glib/dbus-gmain.c (io_handler_destroy_source): 
5569         (timeout_handler_destroy_source, connection_setup_free): 
5570         Also unref the source to avoid memory leaks.
5571
5572 2005-04-13  David Zeuthen  <davidz@redhat.com>
5573
5574         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5575         more reasonable, yet still totally arbitrary, value :-). 
5576
5577 2005-04-13  David Zeuthen  <davidz@redhat.com>
5578
5579         * doc/TODO: Added an "important for 1.0" item about selinux
5580         allow/deny messages
5581
5582 2005-04-13  David Zeuthen  <davidz@redhat.com>
5583
5584         * bus/selinux.c: Add c-file-style to top of file
5585         (log_audit_callback): Don't free the data here anymore
5586         (bus_selinux_check): Don't take spid and tpid since appending
5587         that to auxdata may OOM.
5588         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5589         to the caller if we are OOM by taking an error object.
5590         (bus_selinux_allows_send): -do-
5591
5592         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5593         and bus_selinux_allows_send
5594
5595         * bus/bus.c (bus_context_check_security_policy): Pass error and
5596         pass on OOM thrown by bus_selinux_allows_send()
5597
5598         * bus/services.c (bus_registry_acquire_service): Pass error and
5599         pass on OOM thrown by bus_selinux_allows_acquire_service()
5600
5601 2005-04-13  Havoc Pennington  <hp@redhat.com>
5602
5603         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5604         message at a time to avoid monopolizing the main loop, bug 
5605         #2953 from Benjamin Otte
5606
5607 2005-04-09  Havoc Pennington  <hp@redhat.com>
5608
5609         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5610         possible overlap, fix from Daniel Reed
5611         (fixup_alignment): fix signedness warnings
5612         (_dbus_string_append_unichar): ditto
5613
5614 2005-04-09  Havoc Pennington  <hp@redhat.com>
5615
5616         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5617
5618         * glib/dbus-glib-tool.c (main): fix warning
5619
5620         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5621
5622         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5623         add a new function that can be used in simple applications that
5624         don't have a main loop and are willing to block
5625
5626 2005-04-05  David Zeuthen  <davidz@redhat.com>
5627
5628         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5629
5630         * glib/dbus-gmain.c:
5631         (io_handler_destroy_source): Remove from list of IO handlers
5632         of the ConnectionSetup object
5633         (timeout_handler_destroy_source): -do- for timeout handlers
5634         (io_handler_source_finalized): Don't remove from list since
5635         we now do that in io_handler_destroy_source(). Renamed from
5636         io_handler_source_destroyed
5637         (timeout_handler_source_destroyed): -do- for timeout handlers
5638         (connection_setup_free): It is now safe to iterate over all
5639         IO and timeout handlers as the _destroy_source removes them
5640         from the list synchronously
5641
5642 2005-03-30  Havoc Pennington  <hp@redhat.com>
5643
5644         * configure.in: change check to gtk 2.4
5645
5646         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5647         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5648         to 2.4
5649
5650 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5651
5652         * News: Update 0.32
5653
5654         * HACKING: Fixed realease instructions.  configure.in should be updated to
5655           the next release by the person who made the last release.
5656
5657 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5658
5659         * python/lvalue_cast_post_process.py - removed.  Patch has been
5660           submitted to Pyrex maintainers that fixes gcc4.0 errors
5661
5662         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5663
5664 2005-03-24  Daniel Reed  <n@ml.org>
5665
5666         * tools/Makefile.am: Make print-introspect and
5667         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5668
5669 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5670
5671         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5672
5673         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5674           had in Red Hat packages for a while but for some reason never 
5675           got merged upstream
5676           (_dbus_is_a_number): New checks if a string
5677           can be converted to a number and does the conversion if it can
5678           (_dbus_user_database_lookup): Add check to see if the given username
5679           is a udi.  This allows udi's to be used instead of usernames in the
5680           config file.
5681           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5682           is a gdi.  This allows gdi's to be used instead of groupnames in the
5683           config file.
5684
5685 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5686
5687         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5688           code so that it compiles with gcc4.0
5689
5690         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5691           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5692           results back to dbus_binding.c
5693
5694 2005-03-20  Colin Walters  <walters@verbum.org>
5695
5696         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5697
5698         * configure.in: Require GTK+ 2.6.
5699         
5700 2005-03-20  Colin Walters  <walters@verbum.org>
5701
5702         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5703
5704 2005-03-17  Tom Parker  <palfrey@tevp.net>
5705
5706         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5707         print DBUS_UID_UNSET; instead print passed username.  Also
5708         be sure to actually use gid looked up in cache.
5709         
5710         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5711         for DBUS_GID_UNSET and groupname.
5712
5713 2005-03-17  Colin Walters  <walters@verbum.org>
5714
5715         * bus/print-introspect.c: Move to tools/.
5716         * bus/run-with-tmp-session-bus.sh: Ditto.
5717         
5718         * glib/Makefile.am (dbus-glib-bindings.h): Move
5719         generation to tools/Makefile.am.
5720
5721         * test/glib/run-test.sh: Update to handle move
5722         of run-with-tmp-session-bus.sh.
5723
5724         * test/glib/test-service-glib.c: Update to handle
5725         move of dbus-glib-bindings.h.
5726
5727         * tools/print-introspect.c: Moved here
5728         from bus/, and ported to GLib bindings.
5729
5730         * tools/run-with-tmp-session-bus.sh: Moved here
5731         from bus/.
5732
5733         * tools/Makefile.am: Generate dbus-glib-bindings.h
5734         and dbus-bus-introspect.xml here.
5735
5736         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5737         Update.
5738
5739 2005-03-17  Colin Walters  <walters@verbum.org>
5740
5741         * bus/driver.c (write_args_for_direction): Use
5742         _dbus_string_get_const_data to retrieve string;
5743         _dbus_string_get_const_data_len doesn't actually return
5744         a NULL-terminated substring.
5745
5746         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5747         (main): Change to use org_freedesktop_DBus_request_name
5748         instead of using g_proxy_begin_call/end_call.
5749
5750 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5751
5752         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5753         generating the finalizer.  Fixes from Ben Maurer.
5754
5755 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5756
5757         * mono/BusDriver.cs: Update method names: ListServices
5758         becomes ListNames; GetOwner becomes GetNameOwner.
5759
5760         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5761         onto the eval stack when removing the delegate.
5762
5763 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5764
5765         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5766         LT_CURRENT.  Set it to the autoconf variable.
5767                                                                                 
5768         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5769         classes that disconnects the signal handler delegate from the
5770         service object.  Fixes a big leak of proxy objects on the
5771         client side of things.  Patch from Ben Maurer
5772         <bmaurer@ximian.com>
5773
5774 2005-03-12  Colin Walters  <walters@verbum.org>
5775
5776         * bus/driver.c (write_args_for_direction): New function,
5777         parses a type signature into arguments and outputs to
5778         XML.
5779         (bus_driver_handle_introspect): Use it instead of
5780         hardcoding XML for certain signatures.
5781         
5782         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5783         dependency on dbus-daemon.
5784
5785         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5786         argument, pass it to dbus_binding_tool_output_glib_client.
5787
5788         * glib/dbus-binding-tool-glib.c
5789         (generate_client_glue): Protect against multiple inclusion.
5790         (dbus_binding_tool_output_glib_client): Add
5791         G_BEGIN_DECLS/G_END_DECLS.
5792
5793         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5794         Change to just take iface prefix directly.
5795         (write_formal_parameters): Clarify error message.
5796         (check_supported_parameters): New function; checks to see type
5797         signatures of method parameters are supported.
5798         (generate_client_glue): Handle ignore_unsupported flag.
5799         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5800         parameter.
5801
5802         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5803         --ignore-unsupported by default until glib bindings
5804         support arrays.
5805
5806 2005-03-11  Colin Walters  <walters@verbum.org>
5807
5808         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5809         install it.
5810
5811         * bus/print-introspect.c: New file; prints introspection
5812         data for a given name and object path.
5813
5814         * bus/run-with-tmp-session-bus.sh: New file, refactored
5815         from test/glib/run-test.sh.  Creates a temporary session
5816         bus and runs another program.
5817
5818         * test/glib/run-test.sh: Refactor to invoke
5819         run-with-tmp-session-bus.sh.
5820
5821         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5822         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5823         macros instead of hardcoding.
5824
5825         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5826
5827 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5828
5829         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5830         this unref; it doesn't match up evenly in some codepaths.
5831         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5832         this evenly matches with the ref near the top of this function.
5833
5834 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5835
5836         * dbus/dbus-object-tree.c
5837         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5838         and we try to unregister a path that's not registered, still go
5839         through the process of unlocking and don't just return.
5840
5841 2005-03-09  Colin Walters  <walters@verbum.org>
5842
5843         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5844         to this are generated for client-side wrappers.  Invokes a
5845         D-BUS method and returns reply values.  
5846
5847         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5848         function; writes signature string for argument direction.
5849         (write_args_for_direction): Change to pass input values directly
5850         instead of via address, and fix indentation.
5851         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5852         make generated wrappers inlineable.
5853
5854         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5855         note about using dbus_type_is_fixed.
5856
5857         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5858         dbus/dbus-signature.c as dbus_type_is_fixed.
5859
5860         All callers updated.
5861
5862         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5863         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5864
5865         * dbus/dbus-signature.h: Prototype.
5866
5867         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5868         error printf code.
5869
5870         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5871         appropriate instead of just freeing it.
5872         (main): Free returned strings using g_free.
5873
5874         * test/glib/Makefile.am (test-service-glib-glue.h)
5875         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5876
5877         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5878         simply maps a simple D-BUS type to GType.
5879         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5880         GType.
5881         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5882         initialize the value with it.
5883         (dbus_gvalue_binding_type_from_type): Unused, delete.
5884         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5885         various types instead of unmarshalling to value data directly.
5886         Remove can_convert boolean.
5887         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5888         returning directly instead of using can_convert boolean.
5889         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5890         Stores a GValue in a pointer to a value of its corresponding C
5891         type.
5892
5893         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5894         add dbus_gvalue_store.
5895
5896 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5897
5898         Fix a bunch of lifecycle and memory management problems
5899         in the mono bindings.
5900
5901         * mono/Arguments.cs (Arguments): Implement IDisposable
5902
5903         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5904         strictly a static class.
5905
5906         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5907         delegates into this file.
5908         (Connection): Implement IDisposable.
5909         (Dispose): Disconnect the connection and set the raw connection
5910         pointer to IntPtr.Zero.
5911         (~Connection): Call Dispose().
5912         (RegisterObjectPath): Added.  Manages the registration of object
5913         paths so we can cleanly disconnect them at dispose/finalize time.
5914         (UnregisterObjectPath): Ditto.
5915         (set_RawConnection): Unregister all of the object paths when
5916         changing the underlying DBusConnection.  Add them back onto the
5917         new connection, if any.
5918
5919         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5920         more unmanaged resources anymore, so it's not necessary.  Move all
5921         the DBusObjectPathVTable stuff out of here.
5922         (Handler): Save references to our delegates so that they don't get
5923         finalized.  Call Connection.RegisterObjectPath() instead of
5924         dbus_connection_register_object_path() directly.
5925         (Message_Called): Dispose the message after we're finished with
5926         it.
5927
5928         * mono/Message.cs (Message): Implement IDisposable.
5929         (Dispose): Dispose the Arguments, and set the RawMessage to
5930         IntPtr.Zero.
5931         (SendWithReplyAndBlock): We own the ref to the reply that comes
5932         back from dbus_connection_send_with_reply_and_block() so add a
5933         comment about that and unref it after we've constructed a managed
5934         MethodReturn class around it.  Fixes a big, big leak.
5935
5936         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5937         method.
5938         (BuildSignalHandler): After we've sent the Signal message, dispose
5939         of it.
5940         (BuildMethod): Dispose of the method call and reply messages after
5941         we've sent the message and extracted the data we want from the
5942         reply.
5943
5944         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5945         anymore.
5946         (Service_FilterCalled): Dispose of the message after we're
5947         finished with it.
5948
5949 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5950
5951         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5952         After we attach our pending call to the connection, unref
5953         it.  Fixes a leak.
5954  
5955         * mono/Connection.cs (set_RawConnection): Disconnect our
5956         filter and match callbacks from the old connection and
5957         reconnect them to the new connection, if any.
5958
5959         * mono/DBusType/Array.cs: "Code" is a static member, so
5960         don't use "this" to refer to it.  Fix for stricter checking
5961         in Mono 1.1.4.
5962  
5963         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5964         object path that we pass into unmanaged code.
5965  
5966         * mono/DBusType/String.cs (Append): Don't leak the string
5967         that we pass into unmanged code.
5968
5969 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5970         * NEWS: Update for 0.31
5971
5972         * configure.in: Release 0.31
5973         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5974
5975         * qt/Makefile.am: fixed build
5976
5977         * dbus/Makefile.am: soname bump for libdbus
5978
5979         * glib/Makefile.am: soname bump for libdbus-glib
5980
5981 2005-03-05  Havoc Pennington  <hp@redhat.com>
5982
5983         * dbus/dbus-sysdeps.c:
5984         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5985         value
5986         (_dbus_generate_random_bytes_buffer): fix return value
5987
5988         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5989         checks actually work, from Tom Parker <fdo@tevp.net>
5990
5991 2005-03-01  Colin Walters  <walters@verbum.org>
5992
5993         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5994         functions copied from dbus-glib-tool.c.
5995         (main): Convert lots of error code to use them.
5996         Also add some testing for introspection bits.
5997
5998 2005-03-01  Colin Walters  <walters@verbum.org>
5999         
6000         * doc/TODO: Remove introspection signature TODO.
6001
6002 2005-02-27  Colin Walters  <walters@verbum.org>
6003
6004         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6005         Change return value to const char * instead of int so we can do
6006         full signatures.
6007         (struct PropertyInfo, struct ArgInfo): Store char *.
6008         (property_info_new, arg_info_new): Update parameters, strdup.
6009         (property_info_unref, arg_info_unref): Free.
6010
6011         * glib/dbus-gidl.h: Update prototypes.
6012
6013         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6014         (validate_signature): New function, just validates signature and
6015         sets GError.
6016         (parse_property, parse_arg): Invoke validate_signature.  Store
6017         signature instead of just type code.
6018
6019         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6020         function to return a primary type for a signature, dropping
6021         information about types in container types.
6022         (dbus_gvalue_genmarshal_name_from_type)
6023         (dbus_gvalue_binding_type_from_type)
6024         (dbus_gvalue_ctype_from_type): Update to take full signature
6025          instead of type code.
6026         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6027
6028         * glib/dbus-gvalue.h: Update prototypes for above.
6029
6030         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6031         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6032         (introspect_properties, introspect_signals, write_interface):
6033         Update to handle signatures, and remove usage of
6034         _dbus_gutils_type_to_string.
6035         (handle_introspect): Print out type codes instead of e.g. "string"
6036         in hardcoded introspection XML; also use x_AS_STRING constants
6037         instead of hardcoding in string.
6038
6039         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6040         to string.  Remove usage of _dbus_gutils_type_to_string.
6041
6042         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6043
6044         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6045         deletion.
6046         
6047         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6048         (compute_marshaller_name, generate_glue): Handle signature change
6049         to string.
6050         (write_formal_parameters, write_args_for_direction): Ditto, and
6051         remove FIXME.
6052
6053         * tools/dbus-tree-view.c (type_to_string): Delete.
6054         (info_set_func_text): Update to print full signatures.
6055
6056         * test/glib/test-service-glib.xml: Change types to new
6057         introspection format.
6058
6059 2005-02-26  Havoc Pennington  <hp@redhat.com>
6060
6061         * doc/TODO: remove the "guid" item
6062
6063         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6064         (with_bus_thread_func): use open_private
6065
6066         * dbus/dbus-connection.c (dbus_connection_open_private): new
6067         function that works like the old dbus_connection_open()
6068         (dbus_connection_open): now returns an existing connection if
6069         possible
6070
6071         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6072         through the GUID to the transport
6073
6074         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6075         GUID in hex-encoded form.
6076
6077         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6078         pass GUID argument in to the transport
6079
6080         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6081         guid argument
6082
6083         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6084
6085         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6086
6087 2005-02-25  Havoc Pennington  <hp@redhat.com>
6088
6089         * doc/dbus-specification.xml: document the GUID thing
6090
6091         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6092         globally unique ID for the server, and put a "guid=hexencoded"
6093         field in the address
6094
6095         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6096
6097         * dbus/dbus-message.c: ditto
6098
6099         * dbus/dbus-dataslot.c: ditto
6100
6101         * dbus/dbus-list.c: ditto
6102
6103         * dbus/dbus-internals.h: wait, just include
6104         dbus-threads-internal.h here
6105         
6106         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6107         use in main library
6108
6109         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6110
6111 2005-02-24  Colin Walters  <walters@verbum.org>
6112
6113         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6114
6115 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6116
6117         * glib/Makefile.am: added dbus-gobject.h to sources list
6118         so distcheck doesn't fail
6119         
6120 2005-02-24  Havoc Pennington  <hp@redhat.com>
6121
6122         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6123         you must disconnect before unref, since locking and other things
6124         are screwed up otherwise. Fix assorted other locking stuff.
6125
6126         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6127         fix compilation
6128
6129         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6130         into a private header and don't export from the library
6131
6132         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6133
6134 2005-02-24  Colin Walters  <walters@verbum.org>
6135         
6136         * dbus/dbus-signature.c: New file; implements various functions
6137         related to type signatures.  Includes an interator for parsing,
6138         validation functions.
6139         (dbus_type_is_basic): Moved here from
6140         dbus-marshal-basic.c:_dbus_type_is_basic.
6141         (dbus_type_is_container): Moved here from
6142         dbus-marshal-basic.c:_dbus_type_is_container.
6143
6144         All callers of _dbus_type_is_container and _dbus_type_is_basic
6145         updated, and include dbus-signature.h.
6146
6147         * dbus/dbus-signature.h: New file; prototypes for the above.
6148
6149         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6150         dbus-signature.h.
6151
6152         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6153         function factored out of _dbus_first_type_in_signature.
6154         (_dbus_first_type_in_signature_c_str): New function; returns first
6155         type code for a type signature character.
6156
6157         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6158         handle function moves.
6159
6160         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6161
6162         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6163         function; skips to next complete type in type signature.
6164         Implemented using previous skip_one_complete_type.  Now
6165         skip_one_complete_type just delegates to
6166         _dbus_type_signature_next.
6167
6168         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6169         to dbus-signature.c
6170         (_dbus_type_is_container): Ditto.
6171
6172         * doc/dbus-specification.xml: Update introspection sample to
6173         use real type signatures.
6174
6175         * dbus/dbus-test.h: Prototype signature test.
6176
6177         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6178         signature tests.
6179
6180         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6181
6182 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6183
6184         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6185         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6186
6187 2005-02-21  Colin Walters  <walters@verbum.org>
6188
6189         * dbus/dbus-test-main.c (main): Take optional specific test
6190         argument.
6191
6192         * dbus/dbus-test.c (run_test): New function, runs a test function
6193         with no data directory.
6194         (run_data_test): Like above, but takes data directory.
6195         (dbus_internal_do_not_use_run_tests): Take
6196         specific test argument.  Replace lots of cut n' paste code
6197         with run_test and run_data_test.
6198
6199         * dbus/dbus-test.h: Update prototype for
6200         dbus_internal_do_not_use_run_tests.
6201
6202 2005-02-20  Havoc Pennington  <hp@redhat.com>
6203
6204         Fix bugs reported by Daniel P. Berrange
6205         
6206         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6207         (protected_change_watch): new function
6208         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6209         (_dbus_server_add_watch): change to work like the
6210         dbus-connection.c equivalents; like those, probably kind of
6211         busted, but should at least mostly work for now
6212         (dbus_server_disconnect): drop the lock if we were already
6213         disconnected, patch from Daniel P. Berrange
6214
6215         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6216         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6217         same stuff
6218
6219         * doc/TODO: todo about unscrewing this mess
6220
6221 2005-02-19  Colin Walters  <walters@verbum.org>
6222
6223         * glib/dbus-binding-tool-glib.c
6224         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6225
6226         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6227         as errno.h and sys/stat.h.
6228         (lose): New function, prints error with
6229         newline and exits.
6230         (lose_gerror): Similar, but takes GError for message.
6231         (main): Add --output argument to specify output file to write to,
6232         instead of always printing to stdout.  In this mode, determine
6233         timestamps on source files to see whether any are newer than the
6234         target file.  If not, exit.  Also convert a number of error
6235         messages to use lose (since it's shorter), and switch to using
6236         g_io_channel_shutdown.
6237
6238 2005-02-19  Havoc Pennington  <hp@redhat.com>
6239
6240         * glib/dbus-gobject.c
6241         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6242
6243         * glib/dbus-glib.c: fix doxygen warnings
6244
6245         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6246         is found on an <arg>
6247
6248 2005-02-17  Colin Walters  <walters@verbum.org>
6249
6250         * glib/dbus-gobject.h: Don't export
6251         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6252         
6253         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6254         (invoke_object_method): Handle it.
6255
6256         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6257         Handle rename.
6258         
6259 2005-02-17  Colin Walters  <walters@verbum.org>
6260
6261         * bus/.cvsignore, doc/.cvsignore
6262         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6263         Update.
6264
6265 2005-02-17  Colin Walters  <walters@verbum.org>
6266         
6267         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6268         Rename to DBUS_SERVICE_DBUS.
6269         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6270         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6271         Change the value from "org.freedesktop.Local"
6272         to "org.freedesktop.DBus.Local".
6273         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6274         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6275         DBUS_INTERFACE_INTROSPECTABLE.
6276         Change the value from "org.freedesktop.Introspectable"
6277         to "org.freedesktop.DBus.Introspectable".
6278         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6279         DBUS_INTERFACE_PROPERTIES.
6280         Change the value from "org.freedesktop.Properties"
6281         to "org.freedesktop.DBus.Properties".
6282         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6283         DBUS_INTERFACE_PEER.
6284         Change the value from "org.freedesktop.Peer"
6285         to "org.freedesktop.DBus.Peer".
6286         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6287         DBUS_INTERFACE_LOCAL.
6288         Change the value from "org.freedesktop.Local"
6289         to "org.freedesktop.DBus.Local".
6290
6291         All other users of those constants have been changed.
6292
6293         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6294
6295         * glib/dbus-gobject.c (handle_introspect): Use constants.
6296
6297         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6298
6299 2005-02-17  Colin Walters  <walters@verbum.org>
6300
6301         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6302         (parse_node, parse_interface, parse_method, parse_signal)
6303         (parse_property, parse_annotation): Lose if we're currently in an
6304         annotation.
6305         (parse_annotation): New function.
6306         (parser_start_element, parser_end_element): Handle annotation.
6307         (parse_method, parse_interface): Remove support for c_name attribute,
6308         switch to annotations.
6309
6310         * glib/dbus-gidl.h (interface_info_get_binding_names)
6311         (method_info_get_binding_names)
6312         (interface_info_get_binding_name, method_info_get_binding_name)
6313         (interface_info_set_binding_name, method_info_set_binding_name):
6314         Remove.
6315         (interface_info_get_annotations, method_info_get_annotations)
6316         (interface_info_get_annotation, method_info_get_annotation)
6317         (interface_info_add_annotation, method_info_add_annotation):
6318         Prototype.
6319
6320         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6321         for "bindings".
6322         (struct MethodInfo): Ditto.
6323         Straightfoward conversion of binding methods into annotation methods
6324         as prototyped.
6325
6326         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6327
6328         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6329
6330         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6331         Use new annotation API.
6332
6333         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6334         annotation element.
6335         
6336         * doc/dbus-specification.xml: Discuss introspection annotations,
6337         include list of well-known annotations.
6338
6339         * test/glib/test-service-glib.xml: Make validate against new DTD.
6340
6341 2005-02-17  Colin Walters  <walters@verbum.org>
6342
6343         This patch is based on initial work from
6344         Paul Kuliniewicz <kuliniew@purdue.edu>.
6345
6346         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6347         initialization of GValue from dbus type to here.
6348         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6349         for the "glib-genmarshal" program from a DBus type.
6350         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6351         into the C name for it we use in the glib bindings.
6352         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6353         glib C type (not GValue).
6354         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6355
6356         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6357         from dbus-gobject.c.
6358
6359         * glib/dbus-gutils.h: Prototype it.
6360
6361         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6362         (marshal_dbus_message_to_g_marshaller): Use new shared function
6363         dbus_glib_marshal_dbus_message_to_gvalue_array.
6364
6365         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6366         Will be changed once we have annotations.
6367
6368         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6369         GStaticRWLock.  Callers updated.
6370         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6371         (string_table_next): New function for iterating over zero-terminated
6372         string value array.
6373         (string_table_lookup): New function; retrieves specific entry in
6374         array.
6375         (get_method_data): New function; look up method data in object data chunk.
6376         (object_error_domain_prefix_from_object_info)
6377         (object_error_code_from_object_info): New functions, but not implemented yet.
6378         (method_interface_from_object_info): New function; retrieve interface name.
6379         (method_name_from_object_info): New function; retrieve method name.
6380         (method_arg_info_from_object_info): New function; retrieve argument data.
6381         (arg_iterate): New function; iterates over serialized argument data.
6382         (method_dir_signature_from_object_info): New function; returns a
6383         GString holding type signature for arguments for just one
6384         direction (input or output).
6385         (method_input_signature_from_object_info)
6386         (method_output_signature_from_object_info): New functions.
6387         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6388         converts dbus message arguments into a GValue array.  Used for both
6389         signal handling and method invocation.
6390         (struct DBusGlibWriteIterfaceData): New utility structure.
6391         (write_interface): New function; generate introspection XML for
6392         an interface.
6393         (introspect_interfaces): New function; gathers all interface->methods,
6394         generates introspection XML for them.
6395         (handle_introspect): Invoke introspect_interfaces.
6396         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6397         (lookup_object_and_method): New function; examines an incoming message
6398         and attempts to match it up (via interface, method name, and argument
6399         signature) with a known object and method.
6400         (gerror_domaincode_to_dbus_error_name): New function; converts a
6401         GError domain and code into a DBus error name.  Needs GError data
6402         added to object introspection to work well.
6403         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6404         GError.
6405         (invoke_object_method): New function to invoke an object method
6406         looked up via lookup_object_and_method.  Parses the incoming
6407         message, turns it into a GValue array, then invokes the marshaller
6408         specified in the DBusGMethodInfo.  Creates a new message with
6409         either return values or error message as appropriate.
6410         (gobject_message_function): Invoke lookup_object_and_method and
6411         invoke_object_method.
6412
6413         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6414         (enum DBusBindingOutputMode): New enum for binding output modes.
6415         (pretty_print): Print binding names.
6416         (dbus_binding_tool_error_quark): GError bits.
6417         (version): Fix typo.
6418         (main): Create GIOChannel for output.  Parse new --mode argument,
6419         possible values are "pretty-print", "glib-server", "glib-client".
6420         Use mode to invoke appropriate function.
6421         
6422         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6423
6424         * glib/dbus-glib-tool.h: New header, just includes GError bits
6425         for now.
6426
6427         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6428         maps binding style to name.
6429         (struct MethodInfo): Ditto.
6430         (get_hash_keys, get_hash_key): Utility function, returns keys for
6431         a GHashTable.
6432         (interface_info_new, method_info_new): Initialize bindings.
6433         (interface_info_unref, method_info_unref): Destroy bindings.
6434         (method_info_get_binding_names, method_info_get_binding_name)
6435         (interface_info_get_binding_names, interface_info_get_binding_name):
6436         Functions for retrieving binding names.
6437         (method_info_set_binding_name, interface_info_set_binding_name):
6438         Functions for setting binding names.
6439
6440         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6441         for glib binding generation.
6442
6443         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6444         and client-side glib glue generation.
6445
6446         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6447         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6448         dbus-glib-tool.h.
6449
6450         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6451         of using GClosureMarshal directly.
6452         (struct DBusGObjectInfo): Add n_infos member.
6453
6454         * test/glib/test-service-glib.xml: New file; contains introspection data
6455         for MyTestObject used in test-service-glib.c.
6456
6457         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6458         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6459         (my_object_uppercase, my_object_many_args): New test methods.
6460         (main): Use dbus_g_object_class_install_info to include generated object
6461         info.
6462
6463         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6464         as well as client-side bindings.
6465
6466         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6467         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6468         using both the dbus_gproxy stuff directly as well as the generated bindings.
6469
6470 2005-02-15  Havoc Pennington  <hp@redhat.com>
6471
6472         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6473         complete a pending call, don't run filters first.
6474
6475         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6476         dbus_pending_call_steal_reply
6477
6478         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6479         _dbus_connection_block_pending_call
6480         (dbus_pending_call_get_reply): change to steal_reply and return a
6481         ref
6482
6483         * dbus/dbus-connection.c
6484         (dbus_connection_send_with_reply_and_block): port to work in terms
6485         of DBusPendingCall
6486         (_dbus_connection_block_pending_call): replace block_for_reply
6487         with this
6488
6489 2005-02-14  Havoc Pennington  <hp@redhat.com>
6490
6491         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6492         properly handle looking up group information by name; fix 
6493         from j@bootlab.org
6494
6495 2005-02-13  Havoc Pennington  <hp@redhat.com>
6496
6497         * dbus/dbus-connection.c (dbus_connection_return_message) 
6498         (dbus_connection_borrow_message): hold dispatch lock while message
6499         is outstanding
6500         (_dbus_connection_block_for_reply): hold dispatch lock while we
6501         block for the reply, so nobody steals our reply
6502         (dbus_connection_pop_message): hold the dispatch lock while we
6503         pluck the message
6504
6505 2005-02-13  Havoc Pennington  <hp@redhat.com>
6506
6507         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6508         (_dbus_connection_release_dispatch)
6509         (_dbus_connection_acquire_io_path)
6510         (_dbus_connection_release_io_path): make the mutex and condvar
6511         control access to the "acquired" flag. Drop the connection lock
6512         while waiting on the condvar. Hopefully these are baby steps in
6513         roughly the right direction.
6514
6515 2005-02-13  Havoc Pennington  <hp@redhat.com>
6516
6517         * dbus/dbus-connection.c: use separate mutexes for the condition
6518         variables; this is some kind of baseline for sanity, but the
6519         condition variables still aren't used correctly afaict
6520
6521 2005-02-13  Havoc Pennington  <hp@redhat.com>
6522
6523         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6524         fix a double-unlock
6525
6526         * dbus/dbus-connection.c
6527         (_dbus_connection_detach_pending_call_unlocked): add this
6528
6529         Initial semi-correct pass through to fix thread locking; there are
6530         still some issues with the condition variable paths I'm pretty
6531         sure
6532         
6533         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6534         lock/unlock calls
6535
6536         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6537         rename to add _unlocked
6538         (struct DBusConnection): move "dispatch_acquired" and
6539         "io_path_acquired" to use only one bit each.
6540         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6541         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6542         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6543         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6544         (_dbus_connection_remove_timeout) 
6545         (_dbus_connection_toggle_timeout): drop lock when calling out to
6546         user functions; done in a hacky/bad way.
6547         (_dbus_connection_send_and_unlock): add a missing unlock
6548         (_dbus_connection_block_for_reply): add a missing unlock
6549
6550         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6551         drop lock in a hacky probably unsafe way to call out to user
6552         function
6553
6554 2005-02-12  Havoc Pennington  <hp@redhat.com>
6555
6556         * tools/dbus-tree-view.c (info_set_func_text): display more
6557         details on args
6558
6559         * bus/driver.c (bus_driver_handle_list_services): list the bus
6560         driver
6561
6562         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6563
6564         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6565         (method_info_get_n_args): new function
6566
6567 2005-02-12  Havoc Pennington  <hp@redhat.com>
6568
6569         * bus/driver.c (bus_driver_handle_introspect): add introspection
6570         for bus driver
6571
6572 2005-02-12  Havoc Pennington  <hp@redhat.com>
6573
6574         * bus/driver.c: put the signature of each bus driver method in the
6575         table of handlers and check it on incoming calls; this isn't
6576         really useful, but going to add introspect support in a minute.
6577
6578 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6579
6580         * mono/Connection.cs: The unpredictability of finalizers in mono
6581         prevents us from deterministically disconnecting the filters from
6582         the Service class's finalizer, so move tracking of filters and
6583         matches here.  Add API for that.
6584
6585         * mono/Service.cs: Remove the code, add code which calls the
6586         methods now on the Connection class.
6587
6588 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6589
6590         * python/dbus.py (class Sender): added to support dbus signals better
6591         (Bus::add_signal_receiver): added expand_args parameter which defaults
6592         to True.  When expand args is True the signal handler will pass the 
6593         message arguments as parameters to the signal handler.  If False
6594         revert to previous behavior where the signal handler must get the
6595         argument list from the message.  This is to help port applications
6596         like HAL that have a tendancy to send variable length argument lists.
6597         self._match_rule_to_receivers is now a dict of dicts.
6598         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6599         removing it from a list
6600         (Bus::_signal_func): change signal handlers so that interface,
6601         signal_name, service, path and message are packed into a Sender
6602         object and that is passed to the handler.  If expand_args is True
6603         extract the args list from the message and append it to the parameter
6604         list
6605         
6606         * python/dbus_bindings.pyx.in (class Signature): added to support 
6607         signiature types
6608         (MessageIter::__init__): changed iteration limit to match D-BUS
6609         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6610         STRUCT and VARIENT type support
6611         (MessageIter::python_value_to_dbus_sig): made recursive to support
6612         recursive types
6613         (MessageIter::append*): added Signature, dict, tuple 
6614         support
6615
6616         * python/examples/example-client.py: added examples of getting tuples
6617         and dicts
6618
6619         * python/examples/example-service.py: added examples of sending tuples
6620         and dicts
6621
6622         * python/examples/example-signal-recipient.py: Fixed to handle new
6623         signal callback format
6624
6625 2005-02-10  Havoc Pennington  <hp@redhat.com>
6626
6627         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6628         (call dbus_g_proxy_add_signal)
6629
6630         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6631         escape the hostname
6632         (_dbus_server_new_for_domain_socket): escape the path
6633
6634         * dbus/dbus-address.c (dbus_address_escape_value): new
6635         (dbus_address_unescape_value): new
6636         (dbus_parse_address): unescape values
6637
6638         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6639
6640         * doc/dbus-specification.xml: explain how to escape values in
6641         addresses
6642
6643 2005-02-10  Havoc Pennington  <hp@redhat.com>
6644
6645         * dbus/dbus-message-factory.c (generate_special): modify test to
6646         avoid using a non-basic dict key
6647
6648         * dbus/dbus-marshal-validate-util.c: add test for the below
6649
6650         * doc/dbus-specification.xml: require that dict keys are a basic
6651         type
6652
6653         * dbus/dbus-marshal-validate.c
6654         (_dbus_validate_signature_with_reason): require that dict key is a
6655         basic type
6656
6657 2005-02-10  Havoc Pennington  <hp@redhat.com>
6658
6659         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6660         change to be _and_unlock instead of _unlocked
6661
6662         * dbus/dbus-connection.c
6663         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6664         have no_update so we can find this bug quickly in future
6665
6666 2005-02-10  Havoc Pennington  <hp@redhat.com>
6667
6668         * dbus/dbus-message-util.c (verify_test_message): tests for string
6669         array
6670
6671         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6672         support for arrays of string/signature/path
6673
6674 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6675
6676         * dbus/dbus-connection.c
6677         (_dbus_connection_queue_received_message_link,
6678         _dbus_connection_message_sent): Add the path to
6679         the verbose output.
6680         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6681         _dbus_connection_send_preallocated_unlocked(), updated the
6682         dispatch status, and unlocks.  Fixes a bug where certain
6683         situations (like a broken pipe) could cause a Disconnect message
6684         to not be sent, tricking the bus into thinking a service was still
6685         there when the process had quit.
6686         (_dbus_connection_send_preallocated): Call
6687         _dbus_connection_send_preallocated_and_unlock().
6688         (_dbus_connection_send_and_unlock): Added.  Calls
6689         _dbus_connection_send_preallocated_and_unlock().
6690         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6691         (dbus_connection_send_with_reply): Update the dispatch status and
6692         unlock.
6693
6694         * mono/Service.cs (~Service): Added.  Removes the filter so that
6695         we don't get unmanaged code calling back into a GCed delegate.
6696         (RemoveFilter); Added.
6697
6698 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6699
6700         * dbus/dbus-message.c (dbus_message_iter_open_container):
6701         - Removed check for iterator type being an array because
6702         get_arg_type does not work with writer iterators
6703         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6704
6705 2005-02-07  Havoc Pennington  <hp@redhat.com>
6706
6707         * doc/dbus-specification.xml: some more language cleanups; add
6708         stuff about how to deal with invalid protocol and extension
6709         points; add _ to allowed chars in auth commands; add EXTENSION_
6710         auth command prefix
6711
6712 2005-02-06  Havoc Pennington  <hp@redhat.com>
6713
6714         * s/expected/required/ in a couple places for clarity
6715
6716 2005-02-07  Colin Walters  <walters@verbum.org>
6717
6718         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6719         sender or proposed_recipient.
6720
6721 2005-02-06  Havoc Pennington  <hp@redhat.com>
6722
6723         * dbus/dbus-message-factory.c (generate_special): more tests
6724
6725         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6726         array length that exceeds the maximum
6727
6728 2005-02-05  Havoc Pennington  <hp@redhat.com>
6729
6730         * dbus/dbus-message-factory.c (generate_special): more test cases,
6731         increasing coverage
6732
6733         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6734         reason why a signature was invalid
6735
6736         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6737         skip the length of the string before we look at it in validation
6738
6739         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6740         equal_substring
6741
6742         * dbus/dbus-message.c (_dbus_message_loader_new): default
6743         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6744
6745 2005-02-05  Havoc Pennington  <hp@redhat.com>
6746
6747         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6748         if the signature of a variant was empty
6749         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6750         struct with no element type)
6751
6752         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6753         mangled messages to break things
6754
6755 2005-02-04  Havoc Pennington  <hp@redhat.com>
6756
6757         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6758         g_quark_try_string() so it actually can return 0
6759         (dbus_g_proxy_connect_signal): ditto
6760
6761 2005-02-04  Havoc Pennington  <hp@redhat.com>
6762
6763         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6764         bogus warning
6765         (tristring_from_message): assert cleanly on null path/interface
6766         (should not be possible though I decided later)
6767         (dbus_g_proxy_dispose): move proxy manager unregistration here
6768         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6769         g_return_if_fail() checks
6770
6771 2005-02-04  Havoc Pennington  <hp@redhat.com>
6772
6773         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6774
6775         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6776         (with some minor changes)
6777
6778         * doc/dbus-specification.xml: add deprecated attribute to
6779         introspection format
6780
6781 2005-01-31  Havoc Pennington  <hp@redhat.com>
6782
6783         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6784         think it's sort of right
6785
6786 2005-01-30  Havoc Pennington  <hp@redhat.com>
6787
6788         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6789
6790 2005-01-30  Havoc Pennington  <hp@redhat.com>
6791
6792         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6793
6794         * autogen.sh: change to autotools 1.9
6795
6796         * glib/dbus-gproxy.c: completely change how signals work
6797         (dbus_g_proxy_add_signal): new function to specify signature of a
6798         signal
6799         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6800         and g_warning if the incoming message has the wrong signature.
6801
6802 2005-01-30  Havoc Pennington  <hp@redhat.com>
6803
6804         * tools/dbus-names-model.c (have_names_notify): fix this
6805
6806         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6807         up the string array handling a bit 
6808
6809 2005-01-30  Havoc Pennington  <hp@redhat.com>
6810
6811         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6812         (dbus_g_pending_call_cancel): new function
6813
6814         * dbus/dbus-glib.h: move GType decls for connection/message here;
6815         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6816         here, just kind of rationalizing how we handle all that
6817
6818         * tools/dbus-names-model.c: new file for a tree model listing the
6819         services on a bus
6820
6821         * tools/dbus-tree-view.c (model_new): use proper typing on the
6822         model rows
6823
6824 2005-01-30  Havoc Pennington  <hp@redhat.com>
6825
6826         * glib/dbus-gmain.c: add a custom GSource back that just checks
6827         whether the message queue has anything in it; otherwise, there are 
6828         cases where we won't see messages in the queue since there was no 
6829         IO visible to the glib main loop
6830
6831         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6832         increase default message timeout to 25 seconds
6833
6834 2005-01-30  Havoc Pennington  <hp@redhat.com>
6835
6836         * test/glib/test-profile.c (no_bus_stop_server): remove the
6837         warning about the g_warning that I just fixed
6838
6839         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6840         custom source, seems to be a lot easier to understand and work
6841         better.
6842
6843 2005-01-30  Havoc Pennington  <hp@redhat.com>
6844
6845         I think this main loop thing is conceptually broken, but here are 
6846         some band aids. I'll maybe rewrite it in a minute.
6847         
6848         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6849         custom GSource, so don't pass it in; confusing
6850         (gsource_server_finalize, gsource_connection_finalize): add
6851         finalize handlers that remove all the watches.  
6852
6853 2005-01-30  Havoc Pennington  <hp@redhat.com>
6854
6855         * glib/dbus-gobject.c (introspect_properties): fix the XML
6856         generated
6857
6858         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6859         which effectively detects the use of freed messages
6860
6861         * glib/dbus-gobject.c (handle_introspect): modify and return the
6862         reply message instead of the incoming message
6863
6864         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6865         gee, maybe it should SEND THE XML instead of just making a string
6866         and freeing it again ;-)
6867
6868         * tools/dbus-print-message.c (print_message): improve printing of
6869         messages
6870
6871         * configure.in: add debug-glib.service to the output
6872
6873 2005-01-30  Havoc Pennington  <hp@redhat.com>
6874
6875         dbus-viewer introspected and displayed the bus driver
6876         
6877         * dbus/dbus-object-tree.c 
6878         (object_tree_test_iteration): add tests for a handler registered on "/"
6879
6880         * dbus/dbus-object-tree.c
6881         (_dbus_decompose_path): fix to handle path "/" properly
6882         (run_decompose_tests): add tests for path decomposition
6883         
6884         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6885         properly
6886
6887         * glib/dbus-gobject.c (handle_introspect): fix quotes
6888
6889         * test/glib/run-test.sh: support launching the bus, then running
6890         dbus-viewer
6891
6892         * test/glib/test-service-glib.c (main): put in a trivial gobject
6893         subclass and register it on the connection
6894
6895         * bus/driver.c (bus_driver_handle_introspect): implement
6896         introspection of the bus driver service
6897
6898         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6899         identifiers, doctype decl
6900
6901         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6902         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6903         returning the service unchanged.
6904         (bus_driver_handle_message): remove old check for reply_serial in
6905         method calls, now the message type deals with that
6906         (bus_driver_handle_message): handle NULL interface
6907
6908         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6909
6910         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6911         -1 for len
6912
6913         * tools/dbus-viewer.c: add support for introspecting a service on
6914         a bus
6915
6916         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6917         (dbus_g_pending_call_unref): add
6918
6919 2005-01-29  Havoc Pennington  <hp@redhat.com>
6920
6921         * tools/dbus-tree-view.c: add support for displaying properties.
6922         (run dbus-viewer with an introspect xml file as arg, then resize
6923         the window so the tree elements show up, not sure what that is)
6924
6925         * glib/dbus-gobject.c (handle_introspect): return
6926         org.freedesktop.Properties and org.freedesktop.Introspectable
6927         interfaces when we are introspected.
6928
6929         * doc/dbus-specification.xml: allow empty interface name when 
6930         Get/Set a property
6931
6932 2005-01-29  Havoc Pennington  <hp@redhat.com>
6933
6934         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6935         though it uses glib, it could be extended for any binding in
6936         principle
6937
6938         * glib/dbus-gobject.c (gobject_message_function): change to the
6939         new way properties work
6940
6941         * dbus/dbus-protocol.h: add the new interfaces
6942
6943         * doc/dbus-specification.xml: document the introspection format,
6944         Introspectable interface, and add an org.freedesktop.Properties
6945         interface.
6946
6947         * glib/dbus-gparser.c: add support for a <property> element
6948
6949         * glib/dbus-gidl.c: add PropertyInfo
6950
6951         * glib/dbus-gobject.c (handle_introspect): put the outermost
6952         <node> outside the signal and property descriptions.
6953         (introspect_properties): export properties as <property> rather
6954         than as method calls
6955
6956 2005-01-28  Havoc Pennington  <hp@redhat.com>
6957
6958         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6959         related to authentication protocol
6960
6961 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6962
6963         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6964                 - BUS_ACTIVATION -> BUS_STARTER
6965                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6966                 - class MessageIter (__init__): Added recursion checking 
6967                 so we throw a nice error instead of just disconnecting from the
6968                 bus.
6969                 (get): Added arg_type parameter for recursion.
6970                 Removed the nil type
6971                 Added signiture type placeholder (not implemented)
6972                 Added struct type placeholder (not implemented)
6973                 Added varient type placeholder (not implemented)
6974                 Commented out dict type for now     
6975                 (get_element_type): renamed from get_array_type
6976                 (get_*): changed to use the dbus_message_iter_get_basic API
6977                 (get_*_array): removed in favor of recursive get_array method
6978                 (get_array): new recursive method which calls get to marshal
6979                 the elements of the array
6980                 (value_to_dbus_sig): New method returns the corrasponding
6981                 dbus signiture to a python value
6982                 (append): Comment out dict handling for now
6983                 Handle lists with the new recursive API
6984                 Comment out None handling for now
6985                 (append_nil): removed
6986                 (append_*): changed to use dbus_message_iter_append_basic API
6987                 (append_*_array): removed in favor of recursive append_array 
6988                 method
6989                 (__str__): Make it easier to print out recursive iterators
6990                 for debugging
6991                 - class Message (__str__): moved type inspection to the
6992                 MessageIter class' __str__ method
6993                 (get_iter): Added an append parameter wich defaults to False
6994                 If True use the new API's to create an append iterator
6995
6996         * python/dbus.py: Update to use new bindings API
6997                 - TYPE_ACTIVATION -> TYPE_STARTER
6998                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6999                 - class ActivationBus -> class StarterBus
7000                 - class RemoteObject (__call__): get an append iterator
7001                 - (_dispatch_dbus_method_call): get an append iterator
7002                 - class Object (emit_signal): get an append iterator
7003
7004         * python/examples/: Fixed up the examples to work with the new API
7005                 
7006 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7007
7008         * configure.in: Bump version up to 0.30.
7009
7010         * HACKING: Add a release item to bump the version number up after 
7011         a release.
7012
7013 2005-01-28  Havoc Pennington  <hp@redhat.com>
7014
7015         * doc/dbus-specification.xml: update to describe 16-bit types and
7016         dict entries
7017
7018         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7019         assertion
7020
7021         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7022         type
7023
7024         * dbus/dbus-marshal-recursive.c: implement
7025
7026 2005-01-27  Havoc Pennington  <hp@redhat.com>
7027
7028         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7029
7030         * configure.in: find the right type for 16 and 32 bit ints as well
7031         as 64
7032
7033         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7034         the 16-bit types so people don't have to stuff them in 32-bit or
7035         byte arrays.
7036
7037 2005-01-27  Havoc Pennington  <hp@redhat.com>
7038
7039         * dbus/dbus-message.c: byteswap the message if you init an
7040         iterator to read/write from it
7041         
7042         * dbus/dbus-marshal-byteswap.c: new file implementing 
7043         _dbus_marshal_byteswap()
7044
7045         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7046
7047 2005-01-26  Havoc Pennington  <hp@redhat.com>
7048         
7049         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7050         build, apparently - nobody noticed?)
7051         
7052 2005-01-26  Havoc Pennington  <hp@redhat.com>
7053
7054         * dbus/dbus-marshal-recursive.h: remove todo comment
7055
7056 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7057
7058         * Land the mono binding changes to conform to the new APIs.
7059
7060         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7061         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7062
7063         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7064         type code as a string.
7065         (InitAppending): Rename dbus_message_append_iter_init() to
7066         dbus_message_iter_init_append().
7067
7068         * mono/BusDriver.cs: Rename ServiceEventHandler to
7069         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7070         Rename ServiceOwnerChanged to NameOwnerChanged.
7071
7072         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7073         underlying C call.
7074
7075         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7076
7077         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7078         dbus_bus_acquire_service() to dbus_bus_request_name().
7079
7080         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7081         of Type.UnderlyingSystemType to get the correct element type for
7082         the array.
7083         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7084         dbus_message_get_{element|arg}_type() instead of
7085         dbus_message_iter_init_array_iterator().
7086         (Append): Replace dbus_message_iter_append_array() with
7087         dbus_message_iter_open_container() and
7088         dbus_message_iter_close_container().
7089
7090         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7091         types have been removed.
7092         
7093         * mono/DBusType/*.cs: Replace calls of
7094         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7095         but specify the type in the DllImport extern declaration.  Ditto
7096         for dbus_message_iter_append_[type]() ->
7097         dbus_message_iter_append_basic().
7098
7099         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7100         NameOwnerChangedHandler.
7101
7102 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7103
7104         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7105                 - get_base_service -> get_unique_name
7106                 - bus_get_base_service -> bus_get_unique_name
7107                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7108                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7109                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7110                 - bus_activate_service -> bus_start_service_by_name
7111                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7112                 - bus_acquire_service -> bus_request_name
7113                 - dbus_bus_acquire_service -> dbus_bus_request_name
7114                 - bus_service_exists -> bus_name_has_owner
7115                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7116
7117         * python/dbus.py: Rename of methods
7118                 - activate_service -> start_service_by_name
7119                 - bus_acquire_service -> bus_request_name
7120                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7121                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7122
7123         
7124 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7125
7126         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7127         signature for the method that can't be found.
7128
7129         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7130         the message has any arguments, we need to call
7131         _dbus_type_reader_get_current_type(), not
7132         _dbus_type_reader_has_next().
7133
7134 2005-01-24  Havoc Pennington  <hp@redhat.com>
7135
7136         * dbus/dbus-message-factory.c: more testing of message validation
7137
7138         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7139         header
7140
7141 2005-01-23  Havoc Pennington  <hp@redhat.com>
7142
7143         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7144         get this all working, not many tests in the framework yet though
7145
7146 2005-01-22  Havoc Pennington  <hp@redhat.com>
7147
7148         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7149         tutorial, based on work from David Wheeler.
7150
7151 2005-01-21  Havoc Pennington  <hp@redhat.com>
7152
7153         * dbus/dbus-bus.c: add more return_if_fail checks
7154
7155         * dbus/dbus-message.c (load_message): have the "no validation"
7156         mode (have to edit the code to toggle the mode for now though)
7157
7158         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7159         skips all validation; I want to use this at least for benchmark
7160         baseline, I'm not sure if it should be a publicly-available switch.
7161
7162 2005-01-21  Havoc Pennington  <hp@redhat.com>
7163
7164         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7165         toplevel doxygen group as the low-level API stuff
7166
7167         * dbus/dbus.h: note that libdbus is the low-level API
7168
7169 2005-01-20  Havoc Pennington  <hp@redhat.com>
7170
7171         * update-dbus-docs.sh: script to update docs on the web site, only
7172         works for me though. neener.
7173
7174 2005-01-20  Havoc Pennington  <hp@redhat.com>
7175
7176         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7177         code can reveal bugs in it
7178
7179 2005-01-20  Havoc Pennington  <hp@redhat.com>
7180
7181         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7182         select() version, patches from Tor Lillqvist
7183
7184 2005-01-20  Havoc Pennington  <hp@redhat.com>
7185
7186         * doc/dbus-tutorial.xml: replace > with &gt;
7187
7188         * bus/services.c (bus_registry_acquire_service): validate the name
7189         and return a better error if it's no good.
7190
7191         * doc/dbus-specification.xml: note NO_AUTO_START change
7192
7193         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7194         from AUTO_START, we're toggling the default
7195
7196         * bus/dispatch.c: adapt the tests to change of auto-start default
7197
7198 2005-01-18  Havoc Pennington  <hp@redhat.com>
7199
7200         * rename dbus-daemon-1 to dbus-daemon throughout
7201
7202 2005-01-18  Havoc Pennington  <hp@redhat.com>
7203
7204         * Throughout, grand renaming to strip out the use of "service",
7205         just say "name" instead (or "bus name" when ambiguous).  Did not
7206         change the internal code of the message bus itself, only the
7207         programmer-facing API and messages.
7208         
7209         * doc/dbus-specification.xml: further update the message bus section
7210         
7211         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7212         in error case
7213
7214 2005-01-17  Havoc Pennington  <hp@redhat.com>
7215
7216         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7217         ever
7218
7219         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7220         "invalid name character" not only non-ASCII
7221
7222         * doc/dbus-specification.xml: further update spec, message bus 
7223         parts are still out-of-date but the marshaling etc. stuff is now
7224         accurate-ish
7225
7226 2005-01-17  Havoc Pennington  <hp@redhat.com>
7227
7228         * doc/dbus-specification.xml: partially update spec
7229
7230 2005-01-17  Havoc Pennington  <hp@redhat.com>
7231
7232         * Throughout, align variant bodies according to the contained
7233         type, rather than always to 8. Should save a fair bit of space in
7234         message headers.
7235         
7236         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7237         fix handling of case where p == end
7238
7239         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7240
7241 2005-01-17  Havoc Pennington  <hp@redhat.com>
7242
7243         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7244
7245         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7246         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7247         are marshaling/unmarshaling a boolean.
7248
7249 2005-01-16  Havoc Pennington  <hp@redhat.com>
7250
7251         This is about it on what can be disabled/deleted from libdbus
7252         easily, back below 150K anyhow. Deeper cuts are more work than 
7253         just turning the code off as I've done here.
7254         
7255         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7256         signed int convenience funcs
7257
7258         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7259         verbose mode
7260
7261         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7262         things out of libdbus
7263
7264         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7265         
7266         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7267         tests-enabled-only, though it should probably be deleted)
7268
7269         * dbus/dbus-message-util.c: same stuff
7270
7271         * dbus/dbus-auth-util.c: same stuff
7272
7273 2005-01-16  Havoc Pennington  <hp@redhat.com>
7274
7275         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7276
7277         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7278         way for stripping down dbus-userdb.c stuff included in libdbus.
7279         Rename _dbus_parse_uid for consistency.
7280
7281 2005-01-16  Havoc Pennington  <hp@redhat.com>
7282
7283         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7284         name the assertion failed in
7285
7286         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7287         (_dbus_return_val_if_fail): assert that the name of the function
7288         containing the check doesn't start with '_', since we only want to 
7289         use checks on public functions
7290         
7291         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7292         checks to assertions
7293
7294         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7295         change checks to asserts for private function
7296
7297         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7298         to asserts for private function
7299
7300         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7301         broken assertion that was breaking make check
7302         (_dbus_type_reader_array_is_empty): remove this rather than fix
7303         it, was only used in assertions
7304
7305 2005-01-16  Havoc Pennington  <hp@redhat.com>
7306
7307         * test/unused-code-gc.py: hacky script to find code that's used
7308         only by the bus (not libdbus) or used only by tests or not used at
7309         all. It has some false alarms, but looks like we can clean up a
7310         lot of size from libdbus.
7311
7312         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7313         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7314         
7315 2005-01-16  Havoc Pennington  <hp@redhat.com>
7316
7317         * Add and fix docs according to Doxygen warnings throughout
7318         source.
7319         
7320         * dbus/dbus-marshal-recursive.c
7321         (_dbus_type_reader_array_is_empty): change this to just call
7322         array_reader_get_array_len() and make it static
7323
7324         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7325         from get_array_type
7326         (dbus_message_iter_init_append): rename from append_iter_init
7327
7328         * dbus/dbus-marshal-recursive.c
7329         (_dbus_type_reader_get_element_type): rename from
7330         _dbus_type_reader_get_array_type
7331
7332 2005-01-15  Havoc Pennington  <hp@redhat.com>
7333
7334         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7335
7336         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7337         when DBUS_DISABLE_ASSERT
7338         (_dbus_marshal_set_basic): be sure we align for the string length
7339
7340         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7341         this look faster
7342
7343         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7344         inline macro version
7345         (_dbus_string_set_byte): provide inline macro version
7346
7347 2005-01-15  Havoc Pennington  <hp@redhat.com>
7348
7349         * Land the new message args API and type system.
7350
7351         This patch is huge, but the public API change is not 
7352         really large. The set of D-BUS types has changed somewhat, 
7353         and the arg "getters" are more geared toward language bindings;
7354         they don't make a copy, etc.
7355
7356         There are also some known issues. See these emails for details
7357         on this huge patch:
7358         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7359         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7360         
7361         * dbus/dbus-marshal-*: all the new stuff
7362
7363         * dbus/dbus-message.c: basically rewritten
7364
7365         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7366         freed blocks to be all non-nul bytes so using freed memory is less
7367         likely to work right
7368
7369         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7370         DBUS_FAIL_MALLOC=N environment variable, so you can do
7371         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7372         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7373         thorough.
7374
7375         * qt/message.cpp: port to the new message args API
7376         (operator<<): use str.utf8() rather than str.unicode()
7377         (pretty sure this is right from the Qt docs?)
7378
7379         * glib/dbus-gvalue.c: port to the new message args API
7380
7381         * bus/dispatch.c, bus/driver.c: port to the new message args API
7382
7383         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7384         "locked" flag to TRUE and align_offset to 0; I guess we never
7385         looked at these anyhow, but seems cleaner.
7386
7387         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7388         move allocation padding macro to this header; use it to implement
7389         (_DBUS_STRING_STATIC): ability to declare a static string.
7390
7391         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7392         change to return TRUE if the interface is not set.
7393
7394         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7395         to dbus-marshal-validate.[hc]
7396
7397         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7398         dbus-internals.c
7399
7400         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7401         to dbus-marshal-*.[hc]
7402
7403         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7404         function here from dbus-marshal.c
7405
7406 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7407
7408         * NEWS: Update for 0.23.
7409
7410         * configure.in: Release 0.23.
7411
7412 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7413
7414         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7415         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7416         behind.
7417
7418         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7419         uninstall"
7420
7421         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7422         is an enum, get the enum's underlying type.  Another mono
7423         1.1.3 fix.
7424
7425 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7426
7427         Patch from Sjoerd Simons <sjoerd@luon.net>
7428
7429         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7430         DESTDIR.  It breaks stuff.
7431
7432 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7433
7434         Patch from Tambet Ingo <tambet@ximian.com>
7435
7436         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7437         calling type.GetElementType().  The code previously depended on
7438         broken Mono behavior, which was fixed in Mono 1.1.3.
7439
7440         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7441         Activator.CreateInstance() so that the class's constructor is
7442         called with the right parameters.
7443
7444 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7445
7446         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7447
7448         * dbus/dbus-connection.c
7449         (_dbus_connection_queue_received_message_link): Call
7450         _dbus_connection_remove_timeout() instead of the _locked()
7451         variant, since it's always called from
7452         _dbus_connection_handle_watch(), which handles the locking.
7453         Removed the _locked() variant since it's no longer used.
7454
7455 2005-01-03  Havoc Pennington  <hp@redhat.com>
7456
7457         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7458         return
7459         
7460 2004-12-26  Havoc Pennington  <hp@redhat.com>
7461
7462         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7463
7464 2005-01-03  Havoc Pennington  <hp@redhat.com>
7465
7466         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7467         floating point
7468
7469         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7470
7471 2005-01-02  Havoc Pennington  <hp@redhat.com>
7472
7473         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7474
7475 2005-01-01  Havoc Pennington  <hp@redhat.com>
7476
7477         * configure.in: add -Wfloat-equal
7478
7479 2005-01-01  Havoc Pennington  <hp@redhat.com>
7480
7481         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7482         for a variety of reasons '==' doesn't do this.
7483
7484 2004-12-31  Havoc Pennington  <hp@redhat.com>
7485
7486         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7487         I keep wishing I had
7488
7489 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7490
7491         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7492
7493 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7494
7495         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7496         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7497         dbus-protocol.h.  Because they are defines and not enums they are not
7498         autogenerated.
7499
7500 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7501
7502         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7503         dbus_bus_activate_service
7504
7505         * python/dbus.py (Bus.activate_service): activate a service on the
7506         bus.
7507
7508 2004-12-24  Havoc Pennington  <hp@redhat.com>
7509
7510         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7511         file format has also changed and I haven't adapted to that yet
7512         
7513         * Makefile.am: load .gcno files from latest gcc
7514
7515 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7516         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7517
7518         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7519         lowlevel binding
7520
7521         * python/dbus.py (get_unix_user): Added binding to 
7522         call dbus_bindings.bus_get_unix_user
7523
7524         * python/extract.py: Modified the proto_pat regex to
7525         handle unsigned long
7526
7527 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7528
7529         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7530         better POSIX compliance.
7531
7532 2004-12-19  Havoc Pennington  <hp@redhat.com>
7533
7534         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7535         (_dbus_string_insert_8_aligned): new functions
7536
7537         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7538
7539 2004-12-18  Havoc Pennington  <hp@redhat.com>
7540
7541         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7542         macro
7543
7544         * dbus/dbus-message.c: fix a comment, and add a still-unused
7545         not-implemented function
7546
7547         * dbus/dbus-marshal.h: fix comment
7548
7549         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7550
7551 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7552
7553         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7554         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7555         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7556         Type.UnderlyingSystemType to get the actual system type
7557         underneath.  This code previously depended on the broken Mono
7558         behavior, which was fixed in 1.1.3.
7559
7560 2004-11-27  Havoc Pennington  <hp@redhat.com>
7561
7562         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7563         are disabled
7564         (_dbus_string_get_const_data): inline when asserts are disabled
7565
7566         * dbus/dbus-message.c: record the _dbus_current_generation of
7567         creation so we can complain if dbus_shutdown() is used improperly.
7568         Do this only if checks are enabled.
7569
7570         * dbus/dbus-connection.c: ditto
7571         
7572 2004-11-26  Havoc Pennington  <hp@redhat.com>
7573
7574         * test/glib/test-profile.c: add with_bus mode to profile echoes
7575         that go through the bus.
7576
7577         * test/glib/run-test.sh: add ability to run test-profile
7578
7579         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7580         config file reload.
7581
7582 2004-11-26  Havoc Pennington  <hp@redhat.com>
7583
7584         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7585         thing was implemented
7586
7587 2004-11-26  Havoc Pennington  <hp@redhat.com>
7588
7589         * test/glib/test-profile.c: tweak a bit, add support for some
7590         made-up minimal malloc overhead with plain sockets, since in 
7591         real life some sort of buffers are unavoidable thus we could 
7592         count them in the theoretical best case
7593
7594 2004-11-26  Havoc Pennington  <hp@redhat.com>
7595
7596         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7597         where I was trying to cache one too many messages
7598
7599 2004-11-26  Havoc Pennington  <hp@redhat.com>
7600
7601         * dbus/dbus-message.c: reimplement message cache as an array which 
7602         makes the cache about twice as fast and saves maybe 1.5% overall
7603
7604 2004-11-26  Havoc Pennington  <hp@redhat.com>
7605
7606         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7607         message cache lock here
7608
7609 2004-11-26  Havoc Pennington  <hp@redhat.com>
7610
7611         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7612         the "char byte_order" next to each other to save 4 bytes
7613         (dbus_message_new_empty_header): reduce preallocation, since the
7614         message cache should achieve a similar effect
7615         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7616         message cache that keeps a few DBusMessage around in a pool,
7617         another 8% speedup or so.
7618
7619         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7620
7621 2004-11-25  Havoc Pennington  <hp@redhat.com>
7622
7623         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7624         to write, without reading or blocking, try it before the poll()
7625         and skip the poll() if nothing remains to write. This is about a
7626         3% speedup in the echo client/server
7627
7628 2004-11-25  Havoc Pennington  <hp@redhat.com>
7629
7630         The primary change here is to always write() once before adding
7631         the write watch, which gives us about a 10% performance increase.
7632         
7633         * dbus/dbus-transport-unix.c: a number of modifications to cope
7634         with removing messages_pending
7635         (check_write_watch): properly handle
7636         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7637         messages_pending stuff
7638         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7639         AUTHENTICATED cases
7640         (unix_handle_watch): after writing, see if the write watch can be
7641         removed
7642         (unix_do_iteration): assert that write_watch/read_watch are
7643         non-NULL rather than testing that they aren't, since they 
7644         aren't allowed to be NULL. check_write_watch() at the end so 
7645         we add the watch if we did not finish writing (e.g. got EAGAIN)
7646
7647         * dbus/dbus-transport-protected.h: remove messages_pending call,
7648         since it resulted in too much inefficient watch adding/removing; 
7649         instead we now require that the transport user does an iteration 
7650         after queueing outgoing messages, and after trying the first
7651         write() we add a write watch if we got EAGAIN or exceeded our 
7652         max bytes to write per iteration setting
7653
7654         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7655         function
7656
7657         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7658         freed and then accessed, valgrind flagged this bug, fix it
7659
7660         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7661         as the last valid field plus 1, where really it is equal to the
7662         last valid field. Corrects some message corruption issues.
7663
7664         * dbus/dbus-mainloop.c: verbosity changes
7665
7666         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7667         instead of aborting in one of the test codepaths
7668
7669         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7670         caused not printing the pid ever again if a verbose was missing
7671         the newline at the end
7672         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7673
7674         * dbus/dbus-connection.c: verbosity changes; 
7675         (dbus_connection_has_messages_to_send): new function
7676         (_dbus_connection_message_sent): no longer call transport->messages_pending
7677         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7678         try to write() immediately, so we can avoid the write watch. This
7679         is the core purpose of this patchset
7680         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7681         dump the outgoing message queue, so nobody will get confused
7682         trying to send them or thinking stuff is pending to be sent
7683
7684         * bus/test.c: verbosity changes
7685
7686         * bus/driver.c: verbosity/assertion changes
7687
7688         * bus/dispatch.c: a bunch of little tweaks to get it working again
7689         because this patchset changes when/where you need to block.
7690
7691 2004-11-23  Havoc Pennington  <hp@redhat.com>
7692
7693         * test/glib/test-profile.c: modify to accept a plain_sockets
7694         argument in which case it will bench plain sockets instead of
7695         libdbus, for comparison purposes.
7696
7697 2004-11-22  Havoc Pennington  <hp@redhat.com>
7698
7699         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7700         threads for more time, so sysprof can get a grip on it.
7701
7702         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7703         pointless variable
7704
7705 2004-11-13  Havoc Pennington  <hp@redhat.com>
7706
7707         * test/glib/test-profile.c: fix this thing up a bit
7708
7709         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7710         preallocation sizes by a fair bit; not sure if this will be an
7711         overall performance win or not, but it does reduce reallocs.
7712
7713         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7714         the test hack that forced constant realloc if asserts are
7715         disabled, so we can profile sanely. Sprinkle in some
7716         _DBUS_UNLIKELY() which are probably pointless, but before I
7717         noticed the real performance problem I put them in.
7718         (_dbus_string_validate_utf8): micro-optimize this thing a little
7719         bit, though callgrind says it didn't help; then special-case
7720         ascii, which did help a lot; then be sure we detect nul bytes as
7721         invalid, which is a bugfix.
7722         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7723         superstition; use memset to nul the padding instead of a manual
7724         loop.
7725         (_dbus_string_get_length): inline this as a
7726         macro; it showed up in the profile because it's used for loop
7727         tests and so forth
7728
7729 2004-11-10  Colin Walters  <walters@verbum.org>
7730
7731         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7732         for extra paranoia.
7733
7734 2004-11-09  Colin Walters  <walters@verbum.org>
7735
7736         * dbus/dbus-string.c (_dbus_string_get_length): New
7737         function, writes DBusString to C buffer.
7738
7739         * dbus/dbus-string.h: Prototype it.
7740
7741         * dbus/dbus-message.c (dbus_message_type_to_string): New
7742         function, converts message type into C string.
7743
7744         * dbus/dbus-message.h: Prototype it.
7745
7746         * bus/selinux.c (bus_selinux_check): Take source pid,
7747         target pid, and audit data.  Pass audit data to
7748         avc_has_perm.
7749         (log_audit_callback): New function, appends extra
7750         audit information.
7751         (bus_selinux_allows_acquire_service): Also take
7752         service name, add it to audit data.
7753         (bus_selinux_allows_send): Also take message
7754         type, interface, method member, error name,
7755         and destination, and add them to audit data.
7756         (log_cb): Initialize func_audit.
7757         
7758         * bus/selinux.h (bus_selinux_allows_acquire_service)
7759         (bus_selinux_allows_send): Update prototypes 
7760
7761         * bus/services.c (bus_registry_acquire_service): Pass
7762         service name to bus_selinux_allows_acquire_service.
7763
7764         * bus/bus.c (bus_context_check_security_policy): Pass
7765         additional audit data.  Move assignment of dest
7766         to its own line.
7767
7768 2004-11-07  Colin Walters  <walters@verbum.org>
7769
7770         * dbus/dbus-transport-unix.c (do_authentication): Always
7771         initialize auth_completed.
7772         
7773 2004-11-07  Colin Walters  <walters@verbum.org>
7774
7775         * bus/bus.c (load_config): Break into three
7776         separate functions: process_config_first_time_only,
7777         process_config_every_time, and process_config_postinit.
7778         (process_config_every_time): Move call of
7779         bus_registry_set_service_context_table into
7780         process_config_postinit.
7781         (process_config_postinit): New function, does
7782         any processing that needs to happen late
7783         in initialization (and also on reload).
7784         (bus_context_new): Instead of calling load_config,
7785         open config parser here and call process_config_first_time_only
7786         and process_config_every_time directly.  Later, after
7787         we have forked but before changing UID,
7788         invoke bus_selinux_full_init, and then call
7789         process_config_postinit.
7790         (bus_context_reload_config): As in bus_context_new,
7791         load parse file inside here, and call process_config_every_time
7792         and process_config_postinit.
7793
7794         * bus/services.h, bus/services.c
7795         (bus_registry_set_service_context_table): Rename
7796         from bus_registry_set_sid_table.  Take string hash from config
7797         parser, and convert them here into SIDs.
7798
7799         * bus/config-parser.c (struct BusConfigParser): Have
7800         config parser only store a mapping of service->context
7801         string.
7802         (merge_service_context_hash): New function.
7803         (merge_included): Merge context string hashes instead
7804         of using bus_selinux_id_table_union.
7805         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7806         simply create a new string hash.
7807         (bus_config_parser_unref): Unref it.
7808         (start_selinux_child): Simply insert strings into hash,
7809         don't call bus_selinux_id_table_copy_over.
7810
7811         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7812         (bus_selinux_id_table_copy_over): Delete.
7813
7814 2004-11-03  Colin Walters  <walters@verbum.org>
7815
7816         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7817         variables.
7818         
7819 2004-11-03  Colin Walters  <walters@verbum.org>
7820
7821         * bus/test-main.c (test_pre_hook): Fix test logic,
7822         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7823
7824 2004-11-02  Colin Walters  <walters@redhat.com>
7825
7826         * bus/selinux.c (bus_selinux_init): Split into two functions,
7827         bus_selinux_pre_init and bus_selinux_post_init.
7828         (bus_selinux_pre_init): Just determine whether SELinux is
7829         enabled.
7830         (bus_selinux_post_init): Do everything else.
7831
7832         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7833         config file, and bus_selinux_post_init after.  This ensures that
7834         we don't lose the policyreload notification thread that
7835         bus_selinux_init created before forking previously.
7836         
7837         * bus/test-main.c (test_pre_hook): Update for split.
7838
7839 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7840
7841         Patch from Johan Fischer <linux@fischaz.com>
7842         
7843         * mono/doc/Makefile.am (install-data-local): Added directory
7844         install for DESTDIR
7845
7846 2004-10-29  Colin Walters  <walters@redhat.com>
7847
7848         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7849         parameter for fd to write pid to.       
7850
7851         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7852         
7853         * bus/bus.c (bus_context_new): Pass print_pid_fd
7854         to _dbus_become_daemon (bug #1720)
7855
7856 2004-10-29  Colin Walters  <walters@redhat.com>
7857
7858         Patch from Ed Catmur <ed@catmur.co.uk>
7859
7860         * mono/doc/Makefile.am (install-data-local): Handle
7861         DESTDIR.
7862
7863 2004-10-29  Colin Walters  <walters@redhat.com>
7864
7865         * bus/.cvsignore, qt/.cvsignore: Update.
7866
7867 2004-10-29  Colin Walters  <walters@redhat.com>
7868
7869         Patch from Kristof Vansant <de_lupus@pandora.be>
7870
7871         * configure.in: Detect Slackware.
7872         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7873         * bus/rc.messagebus.in: New file.
7874
7875 2004-10-29  Colin Walters  <walters@redhat.com>
7876
7877         * tools/dbus-monitor.c (filter_func): Return
7878         DBUS_HANDLER_RESULT_HANDLED in filter function
7879         for now.  See:
7880         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7881
7882 2004-10-29  Colin Walters  <walters@redhat.com>
7883
7884         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7885
7886         * bus/services.c (bus_registry_acquire_service): 
7887         Correctly retrieve service name from DBusString
7888         for printing.
7889
7890 2004-10-29  Colin Walters  <walters@redhat.com>
7891
7892         * dbus/dbus-glib.h: Update documentation to not
7893         refer to internal APIs.
7894
7895 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7896
7897         * mono/Arguments.cs (GetDBusTypeConstructor):
7898         type.UnderlyingSystemType will return "System.Byte" if you do it
7899         on "byte[]", which is not what we want.  So check the type.IsArray
7900         property and use System.Array instead.
7901
7902 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7903
7904         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7905         the DBusUserInfo structure since this is passed into the function.
7906         This would cause a double free when the function that allocated
7907         the structure would try to free it when an error occured.
7908
7909         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7910         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7911         for service activation to avoid 32bit/64bit parallel install issues
7912
7913 2004-10-21  Colin Walters  <walters@verbum.org>
7914
7915         * AUTHORS: Fix my email address, the @gnu.org one
7916         has been bouncing for some time.  Also add J5.
7917         
7918 2004-10-21  Colin Walters  <walters@verbum.org>
7919
7920         * dbus/dbus-transport-unix.c (do_authentication): Return
7921         authentication status to callers.
7922         (unix_handle_watch): If we completed authentication this round,
7923         don't do another read.  Instead wait until the next iteration,
7924         after we've read any pending data in the auth buffer.
7925         (unix_do_iteration): Ditto.
7926         (unix_handle_watch): Updated for new do_authentication prototype.
7927
7928 2004-10-18  Colin Walters  <walters@verbum.org>
7929
7930         * bus/selinux.c (bus_selinux_enabled): Handle
7931         --disable-selinux case.
7932         
7933 2004-10-18  Colin Walters  <walters@verbum.org>
7934
7935         * bus/selinux.h: Add bus_selinux_enabled.
7936         
7937         * bus/selinux.c (bus_selinux_enabled): Implement it.
7938         
7939         * bus/config-parser.c (struct include): Add
7940         if_selinux_enabled member.
7941         (start_busconfig_child): Parse if_selinux_enabled
7942         attribute for include.
7943         (bus_config_parser_content): Handle it.
7944
7945         * bus/session.conf.in, bus/system.conf.in: Add
7946         inclusion of context mapping to default config files;
7947         conditional on SELinux being enabled.
7948         
7949         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7950         
7951         * test/data/invalid-config-files/badselinux-1.conf, 
7952         test/data/invalid-config-files/badselinux-2.conf:
7953         Test files for bad syntax.
7954         
7955 2004-10-17  Colin Walters  <walters@verbum.org>
7956
7957         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7958         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7959         format specifier mismatches.
7960
7961 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7962
7963         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7964         format string.
7965
7966         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7967         pointer (bug #1540, Leonardo Boiko).
7968
7969 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7970
7971         * mono/BusDriver.cs: Changed BusDriver struct to remove
7972         the ServiceCreated and ServiceDeleted events and replace them
7973         with the new ServiceOwnerChanged event.
7974
7975         * mono/example/BusListener.cs: Added a new example program,
7976         which listens for and reports any ServiceOwnerChanged events
7977         on the bus driver.
7978
7979         * mono/example/Makefile.am (DESTDIR): Build changes for the
7980         new BusListener.cs example.
7981
7982 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7983
7984         * bus/signals.c (bus_match_rule_parse): validate the components of
7985         match rules (bug #1439).
7986
7987         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7988
7989 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7990
7991         * doc/dbus-specification.xml: document ServiceOwnerChanged
7992         signal.
7993         
7994         * bus/driver.c, bus/driver.h, bus/services.c: Use
7995         ServiceOwnerChanged signal instead of ServiceCreated and
7996         ServiceDeleted.
7997         
7998         * bus/dispatch.c: update testcase for the new signal.
7999
8000 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8001
8002         Patch from Nat Friedman <nat@novell.com>
8003
8004         * mono/Makefile.am: A number of small build fixes to allow "make
8005         distcheck" to succeed.
8006
8007         * mono/example/Makefile.am: "make distcheck" fixes.
8008
8009         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8010         key in @srcdir@.
8011
8012         * test/Makefile.am: "make distcheck" fixes.
8013
8014 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8015
8016         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8017
8018         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8019
8020         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8021         messages after the first one (bug #1389).
8022         
8023         * bus/dispatch.c (check_double_hello_message): add a test case for
8024         the double hello message bug.
8025         (check_existent_service_activation): fix check of spawning error.
8026         
8027 2004-09-16  David Zeuthen  <david@fubar.dk>
8028
8029         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8030
8031 2004-09-12  David Zeuthen  <david@fubar.dk>
8032
8033         Patch from Kay Sievers <kay.sievers@vrfy.org>
8034
8035         * bus/bus.c (bus_context_new):
8036         * bus/bus.h:
8037         * bus/main.c (usage)
8038         (main):
8039         Add commandline option --nofork to override configuration file
8040         setting.
8041
8042 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8043
8044         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8045         compilers don't like it (bug #974).
8046
8047 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8048
8049         * qt/connection.*: Applied patch by Jérôme Lodewyck
8050         <lodewyck@clipper.ens.fr> to integrate an existing
8051         connection into the Qt eventloop
8052
8053 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8054
8055         * mono/BusDriver.cs: Added.  This is a class for interacting with
8056         the org.freedesktop.DBus service.
8057
8058         * mono/Message.cs: Added a mechanism to expose the message that is
8059         currently being dispatched via the static Message.Current
8060         property.  Added Message.Sender and Message.Destination
8061         properties.
8062
8063         * mono/Handler.cs: Expose the dispatched message via
8064         Message.Current when handling method calls.
8065
8066         * mono/Service.cs: Expose the dispatched message via
8067         Message.Current when handling signal emissions.
8068         
8069         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8070         Connection.BaseService property.
8071
8072 2004-08-28  Havoc Pennington  <hp@redhat.com>
8073
8074         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8075
8076         More fixes from Steve Grubb
8077         
8078         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8079         (_dbus_listen_tcp_socket): fix fd leak
8080
8081         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8082         EINTR to a bit lower in the code
8083
8084 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8085
8086         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8087         TRUE if we are inquiring about the existence of the built-in
8088         org.freedesktop.DBus service.
8089
8090 2004-08-25  John Palmieri  <johnp@redhat.com>
8091         * bus/config-parser.c:
8092         (struct PolicyType): Add POLICY_CONSOLE
8093         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8094         (start_busconfig_child): Sets up console element when
8095         <policy at_console=""> is encountered in a policy file
8096         (append_rule_from_element): Convert console elements to console
8097         rules.
8098
8099         * bus/policy.c: 
8100         (bus_policy_create_client_policy): Add console rules to the client
8101         policy based on if the client is at the console
8102         (bus_policy_append_console_rule): New function for adding a
8103         console rule to a policy
8104         (bus_policy_merge): Handle console rule merging
8105
8106         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8107         where we check for console user files
8108         
8109         * dbus/dbus-sysdeps.c:
8110         (_dbus_file_exists): New function which checks if the given
8111         file exists
8112         (_dbus_user_at_console): New function which does the system
8113         specific process of checking if the user is at the console
8114
8115         * dbus/dbus-userdb.c:
8116         (_dbus_is_console_user): New function converts a UID to user name
8117         and then calls the system specific _dbus_user_at_console to 
8118         see if the user is at the console and therefor a console user
8119
8120 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8121
8122         * bus/config-parser.c (set_limit):
8123         * bus/dbus-daemon-1.1.in:
8124         * test/data/valid-config-files/many-rules.conf: set the
8125         max_match_rules_per_connection limt from the config file. 
8126
8127         * doc/busconfig.dtd: update the DTD.
8128
8129         * bus/driver.c: remove some unused variables.
8130
8131 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8132
8133         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8134         it's been replaced by dbus_g_bus_get
8135
8136 2004-08-23  Colin Walters  <walters@redhat.com>
8137
8138         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8139
8140         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8141
8142         * bus/selinux.c: Create a thread for policy reload notification.
8143         (bus_selinux_get_policy_root): Implement.
8144
8145         * bus/config-parser.c (start_busconfig_child)
8146         (bus_config_parser_content): Support SELinux-root relative
8147         inclusion.
8148
8149         * configure.in <HAVE_SELINUX>: Add -lpthread.
8150         
8151         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8152         (test_post_hook): Move memory checking into here.
8153         (test_pre_hook, test_post_hook): Move SELinux checks in
8154         here, but conditional on a DBUS_TEST_SELINUX environment
8155         variable.  Unfortunately we can't run the SELinux checks
8156         as a normal user, since they won't have any permissions
8157         for /selinux.  So this will have to be tested manually
8158         for now, until we have virtualization for most of
8159         libselinux.
8160         
8161 2004-08-23  Havoc Pennington  <hp@redhat.com>
8162
8163         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8164         drop supplementary groups, suggested by Steve Grubb
8165
8166 2004-08-20  Colin Walters  <walters@redhat.com>
8167
8168         * bus/config-parser.c (start_busconfig_child): Remove some unused
8169         variables.
8170         
8171         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8172         warning.
8173
8174 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8175
8176         * configure.in: If --enable-mono is passed in, if we can't find
8177         mono error out.
8178
8179         * mono/Makefile.am: Use /gacutil to install assemblies into the
8180         GAC and not /root.
8181
8182 2004-08-12  Havoc Pennington  <hp@redhat.com>
8183
8184         * NEWS: update for 0.22
8185
8186         * configure.in: release 0.22
8187
8188 2004-08-11  Colin Walters  <walters@redhat.com>
8189
8190         * tools/dbus-send.c (main, usage): Add --reply-timeout
8191         argument.
8192
8193 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8194
8195         * bus/bus.c (process_config_first_time_only): get rid of an unused
8196         DBusError that was causing a memoy leak (bug #989).
8197
8198         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8199         fix compilation on Solaris/Forte C (bug #974)
8200
8201         * bus/main.c (main): plug two minuscule memleaks.
8202
8203 2004-08-10  Havoc Pennington  <hp@redhat.com>
8204
8205         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8206
8207 2004-08-09  Havoc Pennington  <hp@redhat.com>
8208
8209         * COPYING: switch to Academic Free License version 2.1 instead of
8210         2.0, to resolve complaints about patent termination clause.
8211
8212 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8213
8214         * README: added documentation for the --enable-python 
8215         configure switch.
8216
8217 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8218
8219         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8220         _unref in the SELinux support.
8221
8222         * doc/busconfig.dtd: update DTD for SELinux support.
8223
8224         * bus/config-loader-libxml.c: fix error handler and parser
8225         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8226
8227         * configure.in: remove the warning about libxml2.
8228
8229         * dbus/dbus-bus.c: silence doxygen warning.
8230
8231 2004-07-31  Colin Walters  <walters@redhat.com>
8232
8233         * configure.in: Move #error in SELinux check to its own line.
8234
8235 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8236
8237         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8238         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8239         dbus_error_set.
8240
8241         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8242         broken by the change in the _SET_OOM macros.
8243
8244 2004-07-31  Colin Walters  <walters@redhat.com>
8245
8246         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8247         BUS_SET_OOM.
8248
8249 2004-07-31  Colin Walters  <walters@redhat.com>
8250
8251         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8252         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8253         AC_MSG_CHECKING.
8254
8255 2004-07-24  Havoc Pennington  <hp@redhat.com>
8256
8257         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8258
8259         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8260         functionality
8261
8262         * configure.in: add --enable-selinux
8263         
8264         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8265
8266         * bus/main.c (main): initialize and shut down selinux
8267
8268         * bus/connection.c: store SELinux ID on each connection, to avoid 
8269         repeated getting of the string context and converting it into 
8270         an ID
8271
8272         * bus/bus.c (bus_context_get_policy): new accessor, though it
8273         isn't used
8274         (bus_context_check_security_policy): check whether the security
8275         context of sender connection can send to the security context of
8276         recipient connection
8277
8278         * bus/config-parser.c: add parsing for <selinux> and <associate>
8279         
8280         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8281         implement dbus_connection_get_unix_fd()
8282
8283         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8284         function, used by the selinux stuff
8285         
8286 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8287
8288         * bus/config-loader-libxml.c: complete the implementation of
8289         libxml backend for config file loader. Doesn't work with full OOM
8290         test yet. 
8291         
8292         * configure.in: change error when selecting libxml into a warning.
8293         
8294         * test/data/invalid-config-files: add two non-well-formed XML
8295         files. 
8296         
8297         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8298         
8299         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8300         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8301         be necessary to read all the buffer. (bug #894)
8302
8303         * bus/activation.c (bus_activation_activate_service): fix a
8304         potential assertion failure (bug #896). Small optimization in the
8305         case of auto-activation messages.
8306
8307         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8308         add test case for byte-through-vararg bug (#901). patch by Kimmo
8309         Hämäläinen. 
8310
8311 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8312
8313         * python/dbus.py:
8314         * python/dbus_bindings.pyx.in:
8315         Add dbus.init_gthreads (), allow emit_signal to pass
8316         arguments to the signal.
8317         
8318 2004-07-24  Havoc Pennington  <hp@redhat.com>
8319
8320         * AUTHORS: add some people, not really comprehensively, let me
8321         know if I missed you
8322
8323 2004-07-24  Havoc Pennington  <hp@redhat.com>
8324
8325         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8326         Owen
8327
8328         * test/Makefile.am (DIST_SUBDIRS): here also
8329
8330 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8331
8332         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8333         breaking build on Solaris, reported by Farhad Saberi on the ML.
8334
8335         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8336         va_arg invocation to account for integer promotion in the case of
8337         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8338
8339         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8340         _dbus_list_get_first_link, not _dbus_list_get_first.
8341
8342         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8343
8344         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8345         handler functions so that the asserts in _dbus_object_subtree_unref
8346         do not fail.
8347
8348         * dbus/dbus-transport-unix.c (do_reading):
8349         _dbus_transport_queue_messages return value is of type
8350         dbus_bool_t, not DBusDispatchStatus.
8351         
8352 2004-07-19  David Zeuthen  <david@fubar.dk>
8353
8354         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8355
8356         * bus/dispatch.c:
8357         (check_get_connection_unix_user): Debug says GetProperty; but the
8358         method is called GetConnectionUnixUser
8359         (check_get_connection_unix_process_id): New function
8360         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8361         also call check_get_connection_unix_process_id()
8362         
8363         * bus/driver.c:
8364         (bus_driver_handle_get_connection_unix_process_id): New function,
8365         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8366         interface
8367         
8368         * dbus/dbus-auth.c:
8369         (handle_server_data_external_mech): Set pid from the credentials
8370         obtained from the socket
8371         
8372         * dbus/dbus-connection.c:
8373         (dbus_connection_get_unix_process_id): New function
8374         
8375         * dbus/dbus-connection.h: 
8376         Add prototype for dbus_connection_get_unix_process_id
8377         
8378         * dbus/dbus-transport.c:
8379         (_dbus_transport_get_unix_process_id): New function
8380         
8381         * dbus/dbus-transport.h:
8382         Add prototype for _dbus_transport_get_unix_process_id
8383         
8384 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8385
8386         * dbus/dbus-message.c: Message counter fix, patch by Christian
8387         Hammond <chipx86@gnupdate.org>
8388
8389 2004-07-18  Seth Nickell  <seth@gnome.org>
8390
8391         * python/dbus.py:
8392         * python/dbus_bindings.pyx.in:
8393         * python/tests/test-client.py:
8394
8395         Add dbus.ByteArray and dbus_bindings.ByteArray
8396         types so that byte streams can be passed back.
8397
8398         Give jdahlin the heaps of credit that are so
8399         rightfully his.
8400         
8401 2004-07-12  Seth Nickell  <seth@gnome.org>
8402
8403         * python/dbus.py:
8404
8405         Add message argument to the default object_method_handler
8406         function.
8407         
8408         * python/dbus_bindings.pyx.in:
8409
8410         Automatically return NIL when passed an empty list
8411         (we can't pass back a list since lists are typed
8412         and we don't have any idea what type the the client
8413         intended the list to be... :-( )
8414         
8415 2004-07-10  Seth Nickell  <seth@gnome.org>
8416
8417         * python/examples/Makefile.am:
8418
8419         Fix distcheck breakage caused by new examples.
8420
8421 2004-07-10  Seth Nickell  <seth@gnome.org>
8422
8423         * python/dbus.py:
8424
8425         Add "message" argument to service-side dbus.Object
8426         methods. This will break existing services written
8427         using the python bindings, but will allow extraction
8428         of all the message information (e.g. who its from).
8429
8430         Add improved "object oriented" signal handling/emission.
8431         
8432         * python/examples/example-service.py:
8433
8434         Nix this example.
8435         
8436         * python/examples/example-signal-emitter.py:
8437         * python/examples/example-signal-recipient.py:
8438
8439         Two new examples that show how to emit and receive
8440         signals using the new APIs.
8441         
8442         * python/examples/example-signals.py:
8443         * python/examples/gconf-proxy-service.py:
8444         * python/examples/gconf-proxy-service2.py:
8445
8446         Add "message" argument to service methods.
8447
8448 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8449
8450         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8451         * dbus/bus.c (dbus_bus_get_unix_user)
8452         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8453         method of org.freedesktop.DBus interface.
8454
8455         * bus/dispatch.c: test case
8456
8457 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8458
8459         * python/Makefile.am: switched include directory from glib/ to dbus/
8460         since dbus-glib.h moved
8461  
8462 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8463
8464         * configure.in: prevent building the gcj stuff and libxml loader
8465         since they are broken.
8466
8467 2004-06-20  Havoc Pennington  <hp@redhat.com>
8468
8469         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8470         codes from the dbus error names
8471         
8472         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8473         as dbus/dbus-glib.h and that breakage is now visible due to 
8474         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8475         
8476         * glib/dbus-glib.h: s/gproxy/g_proxy/
8477
8478         * dbus/dbus-shared.h: new header to hold stuff shared with
8479         binding APIs
8480         
8481         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8482         than dbus-errors.h
8483
8484         * glib/dbus-glib.h (dbus_set_g_error): move to
8485         dbus-glib-lowlevel.h
8486
8487         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8488         of stuff to enable this
8489
8490         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8491
8492         * a bunch of other changes with the same basic "separate glib 
8493         bindings from dbus.h" theme
8494         
8495 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8496
8497         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8498
8499         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8500
8501 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8502
8503         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8504         the reply value of the ServiceExists message.
8505
8506 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8507
8508         * python/dbus_bindings.pyx.in: No longer need to parse path
8509         elements and pass them as arrays of strings.  The C API now
8510         accepts plain path strings.
8511         (_build_parsed_path): removed 
8512
8513 2004-06-07  Havoc Pennington  <hp@redhat.com>
8514
8515         * doc/TODO: remove auto-activation item since it's done; sort
8516         items by importance/milestone
8517
8518 2004-06-07  Havoc Pennington  <hp@redhat.com>
8519
8520         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8521         random signature when using REQUIRED_FIELDS (this hack won't work
8522         in the long term)
8523
8524         * dbus/dbus-message.c: change the signature to be a header field,
8525         instead of message->signature special-case string. Incremental
8526         step forward. Then we can fix up code to send the signature in the
8527         message, then fix up code to validate said signature, then fix up
8528         code to not put the typecodes inline, etc.
8529         (load_one_message): don't make up the signature after the fact
8530         (decode_header_data): require signature field for the known
8531         message types
8532
8533         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8534
8535         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8536
8537 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8538
8539         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8540
8541         * mono/Handler.cs: Updated to follow new path argument for
8542         (un-)registering objects.
8543
8544         * mono/example/Makefile.am:
8545         * mono/Makefile.am:
8546         * configure.in: Bumped required version for mono and use new -pkg
8547         syntax for deps
8548
8549 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8550
8551         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8552         registration functions take the path argument as char* instead of
8553         char**.
8554
8555         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8556         split off the path decompostion part of
8557         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8558         warnings. 
8559
8560         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8561         
8562 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8563  
8564         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8565         machine approach.  A state is implemented as a function that
8566         handles incoming events as specified for that state.
8567         
8568         * doc/dbus-specification.xml: Update auth protocol state machine
8569         specification to match implementation.  Remove some leftover
8570         base64 examples.
8571
8572 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8573
8574         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8575         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8576         quiet doxygen.
8577
8578         * Doxyfile.in: remove deprecated options.
8579
8580         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8581         glib/test-thread.h, glib/test-thread-client.c,
8582         glib/test-thread-server.c, glib/test-profile.c,
8583         glib/test-dbus-glib.c: remove these unused files.
8584
8585 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8586
8587         * dbus/dbus-object-tree.c
8588         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8589         non-fallback handlers (bug #684).
8590         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8591         (find_subtree_recurse): report wether the returned subtree is an
8592         exact match or a "fallback" match higher up in the tree.
8593         (object_tree_test_iteration): update test case.
8594
8595 2004-06-01  Seth Nickell  <seth@gnome.org>
8596
8597         * python/dbus_bindings.pyx.in:
8598         * python/tests/test-client.py:
8599
8600         Round off basic type support. Add dicts (yay!), and 
8601         remaining array types.
8602
8603         Make MessageIter more general so it works for dicts too.
8604
8605         Mark all loop variables as C integers.
8606         
8607 2004-05-31  Havoc Pennington  <hp@redhat.com>
8608
8609         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8610         "in" before "out"
8611
8612         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8613
8614         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8615         option that runs the tests, and start filling in some code
8616         including for starters just dumping the interfaces to stdout
8617
8618         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8619
8620         * test/data/valid-introspection-files/lots-of-types.xml: test of
8621         an example introspection file
8622
8623         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8624         "node" (I think...)
8625
8626 2004-05-31  Seth Nickell  <seth@gnome.org>
8627
8628         * python/dbus_bindings.pyx.in:
8629         * python/tests/test-client.py:
8630
8631         Test Suite: 1
8632         Python Bindings: 0
8633
8634         Fix string array memory trashing bug... oops...
8635
8636 2004-05-30  Seth Nickell  <seth@gnome.org>
8637
8638         * python/dbus.py:
8639
8640         Add a nicer-but-less-flexible alternate API for handling 
8641         calls to virtual objects in dbus.ObjectTree.
8642
8643         Screw up the argument order to the dbus.Object constructor
8644         for consistency with dbus.ObjectTree (and to make dbus_methods
8645         optional for future extension)
8646         
8647         * python/examples/Makefile.am:
8648         * python/examples/gconf-proxy-service.py:
8649         * python/examples/gconf-proxy-service2.py:
8650
8651         Alternate implementation of gconf-proxy-service using the
8652         nicer dbus.ObjectTree API.
8653         
8654         * python/examples/example-service.py:
8655         * python/tests/test-server.py
8656
8657         Reverse the argument order to deal with dbus.Object constructor
8658         changes.
8659         
8660 2004-05-30  Seth Nickell  <seth@gnome.org>
8661
8662         * python/examples/example-client.py:
8663         * python/examples/example-service.py:
8664
8665         Take it back. Lists seem to work but they're broken
8666         in the test suite. Make the base examples use
8667         lists (works fine).
8668
8669 2004-05-30  Seth Nickell  <seth@gnome.org>
8670
8671         * python/dbus_bindings.pyx.in:
8672         * python/tests/test-client.py:
8673
8674         Add some more tests and fix errors that crop up.
8675         Unfortunately, currently it seems like marshalling
8676         and unmarshalling of lists is completely broken :-(
8677
8678 2004-05-30  Seth Nickell  <seth@gnome.org>
8679
8680         * python/dbus_bindings.pyx.in:
8681
8682         Add support for ObjectPath type.
8683
8684         * python/dbus.py:
8685
8686         Refactor message handling code to a common function.
8687         
8688         * python/tests/test-client.py:
8689         * python/tests/test-server.py:
8690
8691         Add tests that check to make sure values of all types
8692         can be echoed from a service w/o mangling.
8693         
8694 2004-05-29  Seth Nickell  <seth@gnome.org>
8695
8696         * python/dbus.py:
8697
8698         Add ObjectTree class which allows implementation
8699         of trees of "virtual" objects. Basically the python
8700         wrapper for "register_fallback".
8701         
8702         * python/examples/Makefile.am
8703         * python/examples/gconf-proxy-client.py:
8704         * python/examples/gconf-proxy-service.py:
8705
8706         Implement a simple GConf proxy service that supports
8707         get/set on string and int GConf keys using the ObjectTree.
8708         
8709 2004-05-29  Seth Nickell  <seth@gnome.org>
8710
8711         * python/dbus.py:
8712         * python/examples/example-client.py:
8713         * python/examples/example-service.py:
8714         * python/examples/list-system-services.py:
8715
8716         Add SessionBus, SystemBus and ActivationBus classes
8717         so you don't need to know the special little BUS_TYPE
8718         flag.
8719         
8720 2004-05-29  Havoc Pennington  <hp@redhat.com>
8721
8722         * bus/config-parser.c (process_test_valid_subdir): temporarily
8723         stop testing config parser OOM handling, since expat has issues
8724         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8725
8726         * bus/dbus-daemon-1.1.in: change requested_reply to
8727         send_requested_reply/receive_requested_reply so we can send the
8728         replies, not just receive them.
8729
8730         * bus/config-parser.c: parse the new
8731         send_requested_reply/receive_requested_reply
8732
8733         * bus/policy.c (bus_client_policy_check_can_send): add
8734         requested_reply argument and use it
8735
8736         * bus/bus.c (bus_context_check_security_policy): pass through
8737         requested_reply status to message send check
8738
8739         * bus/system.conf.in: adapt to requested_reply change
8740         
8741 2004-05-28  Havoc Pennington  <hp@redhat.com>
8742
8743         * test/glib/test-service-glib.c (main): remove unused variable
8744
8745         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8746
8747         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8748         from the enum, no longer in use.
8749
8750         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8751         works right.
8752
8753         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8754         whether error_name passed in is a valid error name.
8755
8756 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8757
8758         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8759         OBJECT_PATH and OBJECT_PATH_ARRAY
8760
8761 2004-05-28  Seth Nickell  <seth@gnome.org>
8762
8763         * python/examples/Makefile.am:
8764
8765         Forget to add Makefile.am. Do not pass go.
8766
8767 2004-05-28  Michael Meeks  <michael@ximian.com>
8768
8769         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8770         fix no int64 case.
8771
8772         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8773
8774         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8775         (_dbus_message_iter_get_basic_type_array): impl.
8776         drastically simplify ~all relevant _get methods to use these.
8777         (_dbus_message_iter_append_basic_array),
8778         (dbus_message_iter_append_basic): impl
8779         drastically simplify ~all relevant _append methods to use these.
8780
8781         * dbus/dbus-message-builder.c (parse_basic_type) 
8782         (parse_basic_array, lookup_basic_type): impl.
8783         (_dbus_message_data_load): prune scads of duplicate /
8784         cut & paste coding.
8785
8786         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8787         (_dbus_demarshal_basic_type): implement,
8788         (demarshal_and_validate_len/arg): beef up debug.
8789         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8790
8791 2004-05-27  Seth Nickell  <seth@gnome.org>
8792
8793         * configure.in:
8794         * python/Makefile.am:
8795
8796         Include the example python apps in the tarball.
8797         
8798         * python/examples/list-system-services.py
8799
8800         Add a python new example that fetches the list of services
8801         from the system bus.
8802         
8803 2004-05-27  Seth Nickell  <seth@gnome.org>
8804
8805         * python/dbus.py:
8806         * python/dbus_bindings.pyx.in:
8807
8808         Fix failure to notify that a signal was not handled,
8809         resulted in hung functions.
8810         
8811 2004-05-25  Colin Walters  <walters@redhat.com>
8812
8813         * tools/dbus-monitor.c (main): Monitor all types of messages.
8814
8815 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8816
8817         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8818         which unregisters the object path and disposes the handler.
8819
8820 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8821  
8822         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8823          
8824         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8825         operands to && so we call dbus_message_iter_next () for the last
8826         argument also.
8827
8828 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8829
8830         * dbus/dbus-object-tree.c
8831         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8832         children even if the requested path isn't registered.
8833         (object_tree_test_iteration): test object_tree_list_registered.
8834
8835         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8836         it to 0.
8837         
8838 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8839
8840         * doc/TODO: Remove resolved items.
8841
8842         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8843         field.
8844         
8845         * bus/connection.c (bus_connections_expect_reply): Enforce the
8846         per-connection limit on pending replies.
8847         
8848         Patch from Jon Trowbridge <trow@ximian.com>:
8849  
8850         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8851         up a watch that triggers a config reload when one end of the pipe
8852         becomes readable.
8853         (signal_handler): Instead of doing the config reload in our SIGHUP
8854         handler, just write to the reload pipe and let the associated
8855         watch handle the reload when control returns to the main loop.
8856  
8857         * bus/driver.c (bus_driver_handle_reload_config): Added.
8858         Implements a ReloadConfig method for requesting a configuration
8859         file reload via the bus driver.
8860  
8861 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8862
8863         * HACKING: Updated release instructions concerning the wiki page.
8864
8865 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8866
8867         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8868         filter against auth->allowed_mechs; we only add allowed mechs in
8869         record_mechanisms().
8870  
8871         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8872         ALLOWED_MECHS to auth-script format so we can set the list of
8873         allowed mechanisms.
8874  
8875         * data/auth/client-out-of-mechanisms.auth-script: New test to
8876         check client disconnects when it is out of mechanisms to try.
8877  
8878         * dbus/dbus-auth.c (process_command): Remove check for lines
8879         longer that 1 MB; we only buffer up maximum 16 kB.
8880  
8881         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8882         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8883         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8884         assume there might be unused bytes.
8885  
8886         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8887         client-out-of-mechs, it is handled in process_reject(). Move check
8888         for max failures to send_rejected(), as it's a server-only thing.
8889
8890         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8891         send_auth(), send_data(), send_rejected(), send_error(),
8892         send_ok(), send_begin() and send_cancel().
8893
8894 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8895
8896         Remove base64 encoding, replace with hex encoding. Original patch
8897         from trow@ximian.com, added error handling.
8898
8899         * dbus/dbus-string.c (_dbus_string_base64_encode)
8900         (_dbus_string_base64_decode): Remove.
8901         (_dbus_string_hex_decode): Add end_return argument so we can
8902         distinguish between OOM and invalid hex encoding.
8903         (_dbus_string_test): Remove base64 tests and add test case for
8904         invalid hex.
8905
8906         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8907         Replace base64 with hex.
8908
8909         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8910         for invalid hex encoded data in auth protocol.
8911
8912 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8913
8914         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8915         leak.
8916
8917 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8918
8919         * mono/dbus-sharp.dll.config.in: Added for GAC
8920         * mono/dbus-sharp.snk: Added for GAC
8921         * mono/Assembly.cs.in: Added for GAC
8922         * mono/Makefile.am: Changes for GAC installation        
8923         * configure.in: Added refs for dbus-sharp.dll.config.in and
8924         Assembly.cs.in. More fixes for mono testing
8925         * mono/example/Makefile.am: Changed var to CSC
8926         * Makefile.am: Changed flag name to DBUS_USE_CSC
8927
8928 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8929
8930         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8931         * mono/doc/*: Added documentation framework
8932         * configure.in: Added monodoc check
8933         * README: Added description of mono configure flags
8934
8935 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8936
8937         * doc/dbus-specification.xml: Added a "Required" column to the 
8938         header fields table and changed the "zero or more" verbage in
8939         the above paragraph to read "The header must contain the required 
8940         named header fields and zero or more of the optional named header 
8941         fields".
8942         * test/data/invalid-messages/*.message: Added the required PATH 
8943         named header field to the tests so that they don't fail on 
8944         'Missing path field'
8945
8946 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8947
8948         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8949         the stack by implicitly defining variable and parameter types and
8950         removing the hack of defining C pointers as python objects and later
8951         casting them.
8952
8953 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8954
8955         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8956
8957 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8958
8959         * mono/DBusType/Dict.cs: Handle empty dicts
8960         * mono/DBusType/Array.cs: Handle empty arrays
8961         * mono/Arguments.cs: Handle empty arguments
8962
8963 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8964
8965         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8966         field
8967
8968 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8969
8970         * test/data/valid-messages/standard-*.message: Update message
8971         test scripts to new header field names.
8972
8973 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8974
8975         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8976         overflow to times_we_did_each_thing array which would chop off the
8977         first character of the failure_dir string. Increased the size of
8978         the array to 7 to reflect the number of random mutation functions
8979         we have.
8980
8981 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8982
8983         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8984         unix_server->watch here, it is unreffed in disconnect.
8985         (_dbus_server_new_for_tcp_socket): convert NULL host to
8986         "localhost" here so we don't append NULL to address.
8987         
8988         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8989         various addresses, including tcp with no explicit host.
8990
8991 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8992
8993         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8994         fix incorrect setting of .name_offset in the HeaderField (it was
8995         off by two bytes, positioned right after the name and typecode)
8996
8997         * bus/bus.c (bus_context_new, bus_context_unref): test before
8998         calling dbus_server_free_data_slot and _dbus_user_database_unref
8999         in case of an error.
9000
9001         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9002         by libdbus-gtool.
9003
9004 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9005
9006         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9007         _dbus_poll() instead of select().
9008
9009 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9010
9011         * bus/main.c (signal_handler): Reload the configuration files
9012         on SIGHUP.
9013         (main): Set up our SIGHUP handler.
9014
9015         * bus/bus.c (struct BusContext): Store the config file, user and
9016         fork flag in the BusContext.
9017         (process_config_first_time_only): Added.  Contains the code
9018         (previously in bus_context_new) for setting up the BusContext from
9019         the BusConfigParser that should only be run the first time the
9020         config files are read.
9021         (process_config_every_time): Added.  Contains the code (previously
9022         in bus_context_new) for setting up the BusContext from the
9023         BusConfigParser that should be run every time the config files are
9024         read.
9025         (load_config): Added.  Builds a BusConfigParser from the config
9026         files and passes the resulting structure off to
9027         process_config_first_time_only (assuming this is the first time)
9028         and process_config_every_time.
9029         (bus_context_new): All of the config-related code has been moved
9030         to process_config_first_time_only and process_config_every_time.
9031         Now this function just does the non-config-related initializations
9032         and calls load_config.
9033         (bus_context_reload_config): Added.
9034
9035 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9036
9037         * bus/driver.c (bus_driver_handle_get_service_owner):
9038         implement a GetServiceOwner method.
9039         * doc/dbus-specification.xml: document it.
9040         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9041         
9042         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9043         implement, using the bus GetServiceOwner method.
9044
9045         * test/glib/test-dbus-glib.c:
9046         use dbus_gproxy_new_for_service_owner so that we can receive the
9047         signal. 
9048
9049 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9050
9051         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9052         dbus/dbus-message.c, dbus/dbus-protocol.h
9053         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9054
9055         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9056         dbus/dbus-message.c, dbus/dbus-protocol.h
9057         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9058
9059         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9060         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9061         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9062
9063         * doc/dbus-specification.xml (Header Fields Table):
9064         s/SERVICE/DESTINATION
9065         s/SENDER_SERVICE/SENDER
9066
9067
9068 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9069
9070         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9071         a few seconds.
9072
9073 2004-04-13  Michael Meeks  <michael@ximian.com>
9074
9075         * glib/dbus-gobject.c (handle_introspect): split out
9076         (introspect_properties): this.
9077         (handle_introspect): implement this.
9078
9079         * test/glib/Makefile.am: use the absolute path so the bus
9080         daemon's chdir ("/") doesn't kill us dead.
9081
9082         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9083
9084 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9085
9086         * bus/config-parser.c (struct BusConfigParser): Added
9087         included_files field.
9088         (seen_include): Added.  Checks whether or not a file has already
9089         been included by any parent BusConfigParser.
9090         (bus_config_parser_new): Copy the parent's included_files.
9091         (include_file): Track which files have been included, and fail on
9092         circular inclusions.
9093         (process_test_valid_subdir): Changed printf to report if we are
9094         testing valid or invalid conf files.
9095         (all_are_equiv): Changed printf to be a bit clearer about
9096         what we are actually doing.
9097         (bus_config_parser_test): Test invalid configuration files.
9098
9099 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9100
9101         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9102         argument.  If non-null, the newly-constructed BusConfigParser will
9103         be initialized with the parent's BusLimits instead of the default
9104         values.
9105         (include_file): When including a config file, pass in
9106         the current parser as the parent and then copy the BusLimits
9107         from the included BusConfigParser pack to the current parser.
9108         (process_test_valid_subdir): Renamed from process_test_subdir.
9109         (process_test_equiv_subdir): Added.  Walks through a directory,
9110         descending into each subdirectory and loading the config files
9111         it finds there.  If any subdirectory contains two config files
9112         that don't produce identical BusConfigParser structs, fail.
9113         For now, the BusConfigParser's BusPolicies are not compared.
9114         (bus_config_parser_test): Call both process_test_valid_subdir and
9115         process_test_equiv_subdir.
9116
9117         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9118         argument and pass it along to the call to bus_config_parser_new.
9119         Also made a few small changes to allow this code to compile.
9120
9121         * bus/config-loader-expat.c (bus_config_load): Take a parent
9122         argument and pass it along to the call to bus_config_parser_new.
9123
9124         * bus/bus.c (bus_context_new): Load the config file
9125         with a NULL parent argument.
9126
9127 2004-03-29  Michael Meeks  <michael@ximian.com>
9128
9129         * glib/dbus-gobject.c (introspect_properties): split
9130         out, fix mangled 'while' flow control.
9131         (introspect_signals): implement.
9132         (handle_introspect): update.
9133
9134 2004-03-29  Michael Meeks  <michael@ximian.com>
9135
9136         * glib/dbus-gobject.c (set_object_property): split out / 
9137         re-work, use the property type, and not the message type(!)
9138         (get_object_property): ditto.
9139
9140         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9141         (dbus_gvalue_marshal): make this code re-usable, needed
9142         for signals too, also on both proxy and server side.
9143         Re-write for more efficiency / readability.
9144
9145 2004-03-29  Michael Meeks  <michael@ximian.com>
9146
9147         * dbus/dbus-message.c
9148         (dbus_message_new_error_printf): impl.
9149
9150         * dbus/dbus-connection.c
9151         (dbus_connection_unregister_object_path): fix warning.
9152
9153         * configure.in: fix no-mono-installed situation.
9154
9155 2004-03-27  Havoc Pennington  <hp@redhat.com>
9156
9157         Patch from Timo Teräs:
9158         
9159         * tools/dbus-send.c (main): if --print-reply, assume type is
9160         method call; support boolean type args
9161         
9162         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9163         bunch of memleak and logic bugs
9164         
9165 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9166
9167         * mono/Arguments.cs:
9168         * mono/Introspector.cs:
9169         * mono/Handler.cs:
9170         * mono/InterfaceProxy.cs:
9171         * mono/Message.cs
9172         * mono/ProxyBuilder.cs:
9173         * mono/Service.cs:
9174         Added InterfaceProxy class to avoid building proxies for every
9175         object.
9176
9177         * dbus-message.h:
9178         * dbus-message.c (dbus_message_append_args_valist)
9179         (dbus_message_iter_get_object_path)
9180         (dbus_message_iter_get_object_path_array)
9181         (dbus_message_iter_append_object_path)
9182         (dbus_message_iter_append_object_path_array):
9183         Added object_path iter functions to handle OBJECT_PATH arguments
9184         
9185 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9186
9187         First checkin of mono bindings.
9188         * configure.in:
9189         * Makefile.am:
9190         Build stuff for the bindings
9191         * dbus-sharp.pc.in: Added for pkgconfig
9192         
9193 2004-03-21  Havoc Pennington  <hp@redhat.com>
9194
9195         * test/test-service.c (main): remove debug spew
9196
9197 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9198
9199         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9200         arrays
9201
9202         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9203         (dbus_message_iter_init_array_iterator)
9204         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9205         indicate whether the iterator is empty
9206
9207         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9208         warnings
9209
9210 2004-03-19  Havoc Pennington  <hp@redhat.com>
9211
9212         * NEWS: 0.21 updates
9213
9214         * configure.in: 0.21
9215
9216         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9217         
9218         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9219         you don't need pyrex to make dist
9220
9221         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9222         sources; run moc
9223         
9224 2004-03-18  Richard Hult  <richard@imendio.com>
9225
9226         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9227         (dbus_message_set_auto_activation): Add doxygen docs.
9228
9229 2004-03-16  Richard Hult  <richard@imendio.com>
9230
9231         * bus/activation.c: (bus_activation_service_created),
9232         (bus_activation_send_pending_auto_activation_messages),
9233         (bus_activation_activate_service):
9234         * bus/activation.h:
9235         * bus/dispatch.c: (bus_dispatch),
9236         (check_nonexistent_service_auto_activation),
9237         (check_service_auto_activated),
9238         (check_segfault_service_auto_activation),
9239         (check_existent_service_auto_activation), (bus_dispatch_test):
9240         * bus/driver.c: (bus_driver_handle_activate_service):
9241         * bus/services.c: (bus_registry_acquire_service):
9242         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9243         (dbus_message_get_auto_activation):
9244         * dbus/dbus-message.h:
9245         * dbus/dbus-protocol.h: Implement auto-activation.
9246         
9247         * doc/dbus-specification.xml: Add auto-activation to the spec.
9248
9249 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9250
9251         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9252         fix a bug with CUSTOM types.
9253
9254         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9255         a unit test for this bug (used to fail).
9256
9257 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9258
9259         * bus/activation.c:
9260         (babysitter_watch_callback): notify all pending activations waiting for
9261           the same exec that the activation failed.
9262         (bus_activation_activate_service): shortcut the activation if we 
9263           already waiting for the same executable to start up.
9264
9265 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9266
9267         * bus/activation.c: 
9268         - Added service file reloading. 
9269           Each service files directory is kept in an hash table in 
9270           BusActivation and each BusActivationEntry knows what .service-file it
9271           was read from. So when you try to activate a service the bus will 
9272           check if it's been updated, removed or if new .service-files has 
9273           been installed.
9274         - Test code at the bottom for the service file reloading.
9275         * bus/test-main.c: (main):
9276         * bus/test.h:
9277         - added service reloading test.
9278         * dbus/dbus-sysdeps.c: 
9279         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9280
9281 2004-03-08  Michael Meeks  <michael@ximian.com>
9282
9283         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9284         bail immediately if disconnected, to avoid busy loop.
9285
9286         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9287         cleanup cut/paste/inefficiency.
9288
9289 2004-03-01  David Zeuthen  <david@fubar.dk>
9290
9291         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9292         bug where args were used twice. This bug resulted in a segfault
9293         on a Debian/PPC system when starting the messagebus daemon. Include
9294         dbus-sysdeps.h for DBUS_VA_COPY
9295
9296         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9297
9298         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9299         appropriate va_copy implementation. From GLib
9300         
9301 2004-02-24  Joe Shaw  <joe@ximian.com>
9302
9303         * bus/services.c (bus_registry_acquire_service): We need to pass
9304         in the service name to dbus_set_error() to prevent a crash.
9305
9306 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9307
9308         * AUTHORS: Reveal my True identity.
9309
9310 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9311
9312         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9313         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9314
9315 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9316
9317         * doc/TODO: Added not about better error check of configuration files.
9318
9319 2003-12-02  Richard Hult  <richard@imendio.com>
9320
9321         * Update AFL version to 2.0 throughout the source files to reflect
9322         the update that was done a while ago.
9323
9324 2003-12-02  Richard Hult  <richard@imendio.com>
9325
9326         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9327         wrote_dict_key to FALSE on the iter that the dict is appended to,
9328         just like when appending other types. Fixes a bug where a dict
9329         couldn't be put inside a dict.
9330         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9331         (message_iter_test, _dbus_message_test): Add test case for dict
9332         inside dict.
9333
9334 2003-12-01  David Zeuthen  <david@fubar.dk>
9335
9336         * python/dbus.py: Add the actual message when calling the reciever
9337         of a signal such that parameters can be inspected. Add the method
9338         remove_signal_receiver
9339         
9340 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9341
9342         * bus/*.[ch]:
9343         * dbus/*.[ch]:
9344         * glib/*.[ch]: Made ref functions return the pointer
9345
9346 2003-11-25  Zack Rusin  <zack@kde.org>
9347
9348         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9349
9350         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9351         wrappers,
9352
9353         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9354         the Integrator and to better fit with the server,
9355
9356 2003-11-24  Zack Rusin  <zack@kde.org>
9357
9358         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9359         the integrator handles it now
9360
9361         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9362         since QTimer wasn't really meant to be used the way DBusTimeout is
9363
9364 2003-11-24  Zack Rusin  <zack@kde.org>
9365
9366         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9367         Integrator class which integrates D-BUS with the Qt event loop,
9368
9369         * qt/connection.h, qt/connection.cpp: Move all the code which
9370         was dealing with D-BUS integration to the Integrator class,
9371         and start using Integrator,
9372
9373 2003-11-23  Zack Rusin  <zack@kde.org>
9374
9375         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9376         wrapper
9377
9378         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9379         switching namespaces to DBusQt, reworking the class,
9380
9381         * Makefile.cvs: switching dependencies so that it matches KDE 
9382         schematics,
9383         
9384         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9385         the library
9386
9387 2003-11-19  Havoc Pennington  <hp@redhat.com>
9388
9389         * NEWS: update
9390
9391         * configure.in: bump version to 0.20
9392
9393         * configure.in (have_qt): add yet another place to look for qt
9394         (someone hand trolltech a .pc file...)
9395
9396 2003-11-01  Havoc Pennington  <hp@redhat.com>
9397
9398         * doc/dbus-specification.xml: add state machine docs on the auth
9399         protocol; just a first draft, I'm sure it's wrong.      
9400
9401 2003-10-28  David Zeuthen  <david@fubar.dk>
9402
9403         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9404         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9405         
9406 2003-10-28  Havoc Pennington  <hp@redhat.com>
9407
9408         * dbus/dbus-message.c (get_next_field): delete unused function
9409
9410 2003-10-28  Havoc Pennington  <hp@redhat.com>
9411
9412         * bus/expirelist.c (do_expiration_with_current_time): detect
9413         failure of the expire_func due to OOM
9414
9415         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9416
9417         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9418         NoReply error that's now created by the bus when the service exits
9419
9420 2003-10-28  Havoc Pennington  <hp@redhat.com>
9421
9422         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9423         tests for set_path, set_interface, set_member, etc.
9424
9425         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9426
9427         * dbus/dbus-message.c (set_string_field): always just delete and
9428         re-append the field; accept NULL for deletion
9429         (re_align_fields_recurse): reimplement
9430         
9431 2003-10-26  Havoc Pennington  <hp@redhat.com>
9432
9433         * dbus/dbus-connection.c: fix docs to properly describe the
9434         disconnected message
9435         (_dbus_connection_notify_disconnected): remove this function; 
9436         we can't synchronously add the disconnected message, we have to 
9437         do it after we've queued any remaining real messages
9438         (_dbus_connection_get_dispatch_status_unlocked): queue the
9439         disconnect message only if the transport has finished queueing all
9440         its real messages and is disconnected.
9441         (dbus_connection_disconnect): update the dispatch status here
9442
9443 2003-10-22  Havoc Pennington  <hp@redhat.com>
9444
9445         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9446
9447         * bus/connection.c (bus_transaction_send_from_driver): set the
9448         destination to the connection's base service
9449
9450 2003-10-20  Havoc Pennington  <hp@redhat.com>
9451
9452         hmm, make check is currently not passing.
9453         
9454         * doc/dbus-specification.xml: add requirement that custom type
9455         names follow the same rules as interface names.
9456
9457         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9458         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9459         'map'
9460
9461         * doc/dbus-specification.xml: update type codes to match
9462         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9463         CUSTOM. Add type OBJECT_PATH to the spec.
9464
9465 2003-10-17  Havoc Pennington  <hp@redhat.com>
9466
9467         * bus/driver.c (create_unique_client_name): use "." as separator
9468         in base service names instead of '-'
9469
9470         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9471         byte at the end of the string
9472
9473         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9474         optimization macros since string validation seems to be a slow
9475         point.
9476         
9477         * doc/dbus-specification.xml: restrict valid
9478         service/interface/member/error names. Add test suite code for the
9479         name validation.
9480
9481         * dbus/dbus-string.c: limit service/interface/member/error names 
9482         to [0-9][A-Z][a-z]_
9483
9484         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9485         format arg to verbose spew
9486
9487         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9488         memory, return instead of g_error
9489
9490         * test/test-service.c (path_message_func): support emitting a
9491         signal on request
9492
9493         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9494         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9495         assuming the activation bus was the session bus so that services
9496         started manually will still register.
9497         (init_connections_unlocked): fix so that in OOM situation we get
9498         the same semantics when retrying the function
9499         
9500         * test/test-service.c (main): change to use path registration, to
9501         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9502         than DBUS_BUS_SESSION
9503
9504 2003-10-16  Havoc Pennington  <hp@redhat.com>
9505
9506         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9507
9508         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9509         coverage of the tests
9510         (coverage-report.txt): don't move the .da and .bbg files around
9511
9512 2003-10-16  Havoc Pennington  <hp@redhat.com>
9513
9514         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9515         to put there
9516
9517 2003-10-16  Havoc Pennington  <hp@redhat.com>
9518
9519         * bus/connection.c (bus_pending_reply_expired): either cancel or
9520         execute, not both
9521         (bus_connections_check_reply): use unlink, not remove_link, as we
9522         don't want to free the link; fixes double free mess
9523
9524         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9525         where no reply was received
9526
9527         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9528         fix a refcount leak
9529
9530         * bus/signals.c (match_rule_matches): add special cases for the
9531         bus driver, so you can match on sender/destination for it.
9532
9533         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9534         DBUS_PRINT_BACKTRACE is set
9535
9536         * dbus/dbus-internals.c: add pid to assertion failure messages
9537
9538         * dbus/dbus-connection.c: add message type code to the debug spew
9539
9540         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9541         sender=foo not service=foo
9542
9543         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9544         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9545         DBUS_ACTIVATION_ADDRESS instead
9546
9547         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9548         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9549
9550         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9551         context struct
9552
9553         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9554         (dbus_message_iter_get_object_path_array): new function (half
9555         finished, disabled for the moment)
9556         
9557         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9558         DBUS_MESSAGE_TYPE_ERROR
9559
9560         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9561         avoid redirecting stderr to /dev/null
9562         (babysit): close stdin if not doing the "exit_with_session" thing
9563
9564         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9565         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9566         stdout/stdin, so things don't get confused
9567         
9568         * bus/system.conf.in: fix to allow replies, I modified .conf
9569         instead of .conf.in again.
9570
9571 2003-10-14  David Zeuthen  <david@fubar.dk>
9572
9573         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9574         argtype to arg_type when raising unknown arg type exception.
9575         Changed type list to reflect the changes in dbus-protocol.h so 
9576         the bindings actually work.
9577
9578 2003-10-14  Havoc Pennington  <hp@redhat.com>
9579
9580         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9581         to have a bug keeping it from outputting the .da files sometimes
9582         (string_get_string): don't append garbage nul bytes to the string.
9583
9584 2003-10-15  Seth Nickell  <seth@gnome.org>
9585
9586         * python/Makefile.am:
9587
9588         Include dbus_h_wrapper.h in the dist tarball.
9589
9590 2003-10-14  Havoc Pennington  <hp@redhat.com>
9591
9592         * bus/bus.c (bus_context_check_security_policy): revamp this to
9593         work more sanely with new policy-based requested reply setup
9594
9595         * bus/connection.c (bus_transaction_send_from_driver): set bus
9596         driver messages as no reply
9597
9598         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9599         requested_reply attribute on allow/deny rules
9600
9601         * bus/system.conf: add <allow requested_reply="true"/>
9602
9603         * bus/driver.c (bus_driver_handle_message): fix check for replies
9604         sent to the bus driver, which was backward. How did this ever work
9605         at all though? I think I'm missing something.
9606
9607         * dbus/dbus-message.c (decode_header_data): require error and
9608         method return messages to have a reply serial field to be valid
9609         (_dbus_message_loader_queue_messages): break up this function;
9610         validate that reply serial and plain serial are nonzero; 
9611         clean up the OOM/error handling.
9612         (get_uint_field): don't return -1 from this
9613         (dbus_message_create_header): fix signed/unsigned bug
9614
9615         * bus/connection.c (bus_connections_expect_reply): save serial of
9616         the incoming message, not reply serial
9617
9618 2003-10-14  Havoc Pennington  <hp@redhat.com>
9619
9620         * bus/connection.c: implement pending reply tracking using
9621         BusExpireList
9622
9623         * bus/bus.c (bus_context_check_security_policy): verify that a
9624         reply is pending in order to allow a reply to be sent. Deny 
9625         messages of unknown type.
9626
9627         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9628
9629         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9630         (bus_context_get_reply_timeout): new
9631
9632 2003-10-13  Seth Nickell  <seth@gnome.org>
9633
9634         * python/Makefile.am:
9635
9636         Pass "make distcheck": remove a couple files from DIST_FILES
9637         that weren't included in the final version.
9638
9639 2003-10-12  Havoc Pennington  <hp@pobox.com>
9640
9641         Added test code that 1) starts an actual bus daemon and 2) uses
9642         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9643         more testing possible, but this is the basic framework.
9644         
9645         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9646         empty proxy lists from the proxy list hash
9647
9648         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9649         couple of return_if_fail checks
9650
9651         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9652         to allocate, so everything is cleared to NULL as it should be.
9653
9654         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9655         source as data to dbus_connection_set_timeout_functions() as the 
9656         timeout functions expected
9657
9658         * test/glib/run-test.sh: add a little script to start up a message
9659         bus and run tests using it
9660
9661         * tools/dbus-launch.1: updates
9662
9663         * tools/dbus-launch.c (main): add --config-file option
9664
9665         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9666         that could never be reached.
9667
9668         * dbus/dbus-message.c (dbus_message_new_method_return) 
9669         (dbus_message_new_error, dbus_message_new_signal): set the
9670         no-reply-expected flag on all these. Redundant, but may
9671         as well be consistent.
9672
9673 2003-10-11  Havoc Pennington  <hp@pobox.com>
9674
9675         * test/decode-gcov.c (function_solve_graph): make broken block
9676         graph a nonfatal error since it seems to be broken. Need to debug
9677         this.
9678
9679         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9680         can't just check type > INVALID < LAST anymore
9681
9682         * dbus/dbus-message.c (dbus_message_get_signature): new function
9683         (dbus_message_has_signature): new function
9684         (struct DBusMessage): add signature field (right now it isn't sent
9685         over the wire, just generated on the fly)
9686         (dbus_message_copy): copy the signature, and init strings to
9687         proper length to avoid some reallocs
9688         (dbus_message_iter_init_array_iterator): return void, since it
9689         can't fail
9690         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9691         (_dbus_message_loader_queue_messages): add silly temporary hack to
9692         fill in message->signature on load
9693
9694         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9695         characters, so they are relatively human-readable.
9696
9697 2003-10-11  Havoc Pennington  <hp@pobox.com>
9698
9699         * dbus/dbus-message.c (_dbus_message_test): add more test
9700         coverage, but #if 0 for now since they uncover a bug 
9701         not fixed yet; I think in re_align_field_recurse()
9702         (re_align_field_recurse): add FIXME about broken assertion
9703
9704         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9705
9706         * bus/connection.c: share a couple code bits with expirelist.c
9707
9708         * bus/expirelist.h, bus/expirelist.c: implement a generic
9709         expire-items-after-N-seconds facility, was going to share between
9710         expiring connections and replies, decided not to use for expiring
9711         connections for now.
9712
9713         * COPYING: include AFL 2.0 (still need to change all the file headers)
9714
9715 2003-10-09  Havoc Pennington  <hp@redhat.com>
9716
9717         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9718         gcc 3.3. Not that we do anything about it yet.
9719
9720         * bus/signals.c (bus_match_rule_parse): impose max length on the
9721         match rule text
9722
9723         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9724
9725 2003-10-09  Havoc Pennington  <hp@redhat.com>
9726
9727         Make matching rules theoretically work (add parser).
9728         
9729         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9730         the case where destination is explicitly specified as bus driver
9731         and someone else is eavesdropping.
9732         
9733         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9734         definition of eavesdropping and assertion
9735
9736         * tools/dbus-send.c (main): use dbus_message_type_from_string
9737
9738         * bus/signals.c (bus_match_rule_parse): implement
9739
9740         * dbus/dbus-message.c (dbus_message_type_from_string): new
9741
9742         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9743
9744 2003-10-02  Havoc Pennington  <hp@pobox.com>
9745
9746         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9747         dbus_gproxy_oneway_call
9748
9749         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9750         (dbus_server_setup_with_g_main): fix to allow calling them more
9751         than once on the same args
9752         (dbus_bus_get_with_g_main): new function
9753
9754 2003-10-02  Havoc Pennington  <hp@redhat.com>
9755
9756         * doc/dbus-tutorial.xml: write some stuff
9757
9758 2003-09-29  Havoc Pennington  <hp@pobox.com>
9759
9760         * configure.in: split checks for Doxygen from XML docs, check for
9761         xmlto
9762
9763         * doc/Makefile.am: XML-ify all the docs, and add a blank
9764         dbus-tutorial.xml
9765
9766 2003-09-29  Havoc Pennington  <hp@pobox.com>
9767
9768         * Merge dbus-object-names branch. To see the entire patch 
9769         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9770         it's huuuuge though.
9771         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9772         
9773 2003-09-28  Havoc Pennington  <hp@pobox.com>
9774
9775         * HACKING: update to reflect new server
9776
9777 2003-09-26  Seth Nickell  <seth@gnome.org>
9778
9779         * python/dbus.py:
9780         * python/examples/example-signals.py:
9781
9782         Start implementing some notions of signals. The API
9783         is really terrible, but they sort of work (with the
9784         exception of being able to filter by service, and to
9785         transmit signals *as* a particular service). Need to
9786         figure out how to make messages come from the service
9787         we registered :-(
9788         
9789         * python/dbus_bindings.pyx.in:
9790
9791         Removed duplicate message_handler callbacks.
9792         
9793 2003-09-25  Havoc Pennington  <hp@redhat.com>
9794
9795         * bus/session.conf.in: fix my mess
9796
9797 2003-09-25  Havoc Pennington  <hp@pobox.com>
9798
9799         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9800
9801 2003-09-25  Seth Nickell  <seth@gnome.org>
9802
9803         * python/examples/example-service.py:
9804
9805         Johan notices complete wrong code in example-service, but
9806         completely wrong in a way that works exactly the same (!).
9807         Johan is confused, how could this possibly work? Example
9808         code fails to serve purpose of making things clear.
9809         Seth fixes.
9810
9811 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9812
9813         * doc/dbus-specification.sgml: don't require header fields
9814         to be 4-byte aligned and specify that fields should be
9815         distinguished from padding by the fact that zero is not
9816         a valid field name.
9817         
9818         * doc/TODO: remove re-alignment item and add item to doc
9819         the OBJECT_PATH type.
9820         
9821         * dbus/dbus-message.c:
9822         (HeaderField): rename the original member to value_offset
9823         and introduce a name_offset member to keep track of where
9824         the field actually begins.
9825         (adjust_field_offsets): remove.
9826         (append_int_field), (append_uint_field),
9827         (append_string_field): don't align the start of the header
9828         field to a 4-byte boundary.
9829         (get_next_field): impl finding the next marhsalled field
9830         after a given field.
9831         (re_align_field_recurse): impl re-aligning a number of
9832         already marshalled fields.
9833         (delete_field): impl deleting a field of any type and
9834         re-aligning any following fields.
9835         (delete_int_or_uint_field), (delete_string_field): remove.
9836         (set_int_field), (set_uint_field): no need to re-check
9837         that we have the correct type for the field.
9838         (set_string_field): ditto and impl re-aligning any
9839         following fields.
9840         (decode_header_data): update to take into account that
9841         the fields aren't 4-byte aligned any more and the new
9842         way to distinguish padding from header fields. Also,
9843         don't exit when there is too much header padding.
9844         (process_test_subdir): print the directory.
9845         (_dbus_message_test): add test to make sure a following
9846         field is re-aligned correctly after field deletion.
9847         
9848         * dbus/dbus-string.[ch]:
9849         (_dbus_string_insert_bytes): rename from insert_byte and
9850         allow the insert of multiple bytes.
9851         (_dbus_string_test): test inserting multiple bytes.
9852
9853         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9854         warning note to docs about having to re-align any
9855         marshalled values following the string.
9856         
9857         * dbus/dbus-message-builder.c:
9858         (append_string_field), (_dbus_message_data_load):
9859         don't align the header field.
9860         
9861         * dbus/dbus-auth.c: (process_test_subdir): print the
9862         directory.
9863         
9864         * test/break-loader.c: (randomly_add_one_byte): upd. for
9865         insert_byte change.
9866         
9867         * test/data/invalid-messages/bad-header-field-alignment.message:
9868         new test case.
9869         
9870         * test/data/valid-messages/unknown-header-field.message: shove
9871         a dict in the unknown field.
9872
9873 2003-09-25  Seth Nickell  <seth@gnome.org>
9874
9875         * python/dbus.py:
9876         * python/dbus_bindings.pyx.in:
9877
9878         Handle return values.
9879         
9880         * python/examples/example-client.py:
9881         * python/examples/example-service.py:
9882
9883         Pass back return values from the service to the client.
9884         
9885 2003-09-24  Seth Nickell  <seth@gnome.org>
9886
9887         * python/dbus.py:
9888
9889         Connect Object methods (when you are sharing an object) up... pass
9890         in a list of methods to be shared. Sharing all the methods just
9891         worked out too weird. You can now create nice Services over the
9892         DBus in Python. :-)
9893         
9894         * python/dbus_bindings.pyx.in:
9895
9896         Keep references to user_data tuples passed into C functions so 
9897         Python doesn't garbage collect on us.
9898
9899         Implement MethodReturn and Error subclasses of Message for creating
9900         DBusMessage's of those types.
9901         
9902         * python/examples/example-client.py:
9903         * python/examples/example-service.py:
9904
9905         Simple example code showing both how create DBus services and objects,
9906         and how to use them.
9907
9908 2003-09-23  Havoc Pennington  <hp@pobox.com>
9909
9910         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9911
9912 2003-09-23  Havoc Pennington  <hp@redhat.com>
9913
9914         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9915         (dbus_gproxy_disconnect_signal): implement
9916         (dbus_gproxy_manager_remove_signal_match): implement
9917         (dbus_gproxy_manager_add_signal_match): implement
9918         (dbus_gproxy_oneway_call): implement
9919
9920 2003-09-23  Havoc Pennington  <hp@pobox.com>
9921
9922         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9923         subclass. This means dropping the transparent thread safety of the
9924         proxy; you now need a separate proxy per-thread, or your own
9925         locking on the proxy. Probably right anyway.
9926         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9927
9928 2003-09-22  Havoc Pennington  <hp@redhat.com>
9929
9930         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9931
9932 2003-09-21  Seth Nickell  <seth@gnome.org>
9933
9934         First checkin of the Python bindings.
9935         
9936         * python/.cvsignore:
9937         * python/Makefile.am:
9938         * python/dbus_bindings.pyx.in:
9939         * python/dbus_h_wrapper.h:
9940
9941         Pieces for Pyrex to operate on, building a dbus_bindings.so
9942         python module for low-level access to the DBus APIs.
9943         
9944         * python/dbus.py:
9945
9946         High-level Python module for accessing DBus objects.
9947
9948         * configure.in:
9949         * Makefile.am:
9950
9951         Build stuff for the python bindings.
9952
9953         * acinclude.m4:
9954
9955         Extra macro needed for finding the Python C header files.
9956
9957 2003-09-21  Havoc Pennington  <hp@pobox.com>
9958
9959         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9960         implementing the proxy manager, didn't get very far.
9961
9962         * dbus/dbus-bus.c (dbus_bus_add_match): new
9963         (dbus_bus_remove_match): new
9964
9965         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9966         path_name argument; adjust the other not-yet-implemented 
9967         gproxy constructors to be what I think they should be.
9968
9969 2003-09-21  Havoc Pennington  <hp@pobox.com>
9970
9971         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9972         by default for message bus connections.
9973
9974         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9975         exit_on_disconnect flag is set and we process the disconnected
9976         signal.
9977         (dbus_connection_set_exit_on_disconnect): new function
9978
9979 2003-09-21  Havoc Pennington  <hp@pobox.com>
9980
9981         Get matching rules mostly working in the bus; only actually
9982         parsing the rule text remains. However, the client side of
9983         "signal connections" hasn't been started, this patch is only the
9984         bus side.
9985         
9986         * dbus/dispatch.c: fix for the matching rules changes
9987         
9988         * bus/driver.c (bus_driver_handle_remove_match)
9989         (bus_driver_handle_add_match): send an ack reply from these
9990         method calls
9991
9992         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9993         arguments, reported by Seth Nickell
9994
9995         * bus/config-parser.c (append_rule_from_element): support
9996         eavesdrop=true|false attribute on policies so match rules 
9997         can be prevented from snooping on the system bus.
9998
9999         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10000         and "destination" in attribute names; fix some docs bugs; 
10001         add eavesdrop=true|false attribute
10002
10003         * bus/driver.c (bus_driver_handle_add_match)
10004         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10005         messages
10006
10007         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10008         rid of broadcast service concept, signals are just always broadcast
10009
10010         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10011         mostly implement matching rules stuff (currently only exposed as signal
10012         connections)
10013
10014 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10015
10016         * doc/dbus-specification.sgml: Change the header field name
10017         to be an enum and update the rest of the spec to reference
10018         the fields using the conventinal name.
10019
10020         * dbus/dbus-protocol.h: update to reflect the spec.
10021
10022         * doc/TODO: add item to remove the 4 byte alignment requirement.
10023         
10024         * dbus/dbus-message.c: Remove the code to generalise the
10025         header/body length and serial number header fields as named
10026         header fields so we can reference field names using the 
10027         protocol values.
10028         (append_int_field), (append_uint_field), (append_string_field):
10029         Append the field name as a byte rather than four chars.
10030         (delete_int_or_uint_field), (delete_string_field): reflect the
10031         fact that the field name and typecode now occupy 4 bytes instead
10032         of 8.
10033         (decode_string_field), (decode_header_data): update to reflect
10034         protocol changes and move the field specific encoding from
10035         decode_string_field() back into decode_header_data().
10036         
10037         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10038         Add utility to aid debugging.
10039         
10040         * dbus/dbus-message-builder.c:
10041         (append_string_field), (_dbus_message_data_load): Update to
10042         reflect protocol changes; Change the FIELD_NAME directive
10043         to HEADER_FIELD and allow it to take the field's conventional
10044         name rather than the actual value.
10045         
10046         * test/data/*/*.message: Update to use HEADER_FIELD instead
10047         of FIELD_NAME; Always align the header on an 8 byte boundary
10048         *before* updating the header length.
10049
10050 2003-09-15  Havoc Pennington  <hp@pobox.com>
10051
10052         * dbus/dbus-pending-call.c: add the get/set object data
10053         boilerplate as for DBusConnection, etc. Use generic object data
10054         for the notify callback.
10055
10056         * glib/dbus-gparser.c (parse_node): parse child nodes
10057
10058         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10059         
10060         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10061         contain functions shared between the convenience lib and the
10062         installed lib
10063
10064         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10065         -export-symbols-regex to the GLib library
10066
10067         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10068         fix the locking in here, and add a default handler for
10069         Introspect() that just returns sub-nodes.
10070
10071 2003-09-14  Havoc Pennington  <hp@pobox.com>
10072
10073         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10074         rather than gfoo consistent
10075
10076         * glib/dbus-gproxy.h: delete for now, move contents to
10077         dbus-glib.h, because the include files don't work right since we
10078         aren't in the dbus/ subdir.
10079         
10080         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10081         (dbus_gproxy_end_call): finish
10082         (dbus_gproxy_begin_call): finish
10083
10084         * glib/dbus-gmain.c (dbus_set_g_error): new
10085
10086         * glib/dbus-gobject.c (handle_introspect): include information
10087         about child nodes in the introspection
10088
10089         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10090         function to help in implementation of introspection
10091
10092         * dbus/dbus-object-tree.c
10093         (_dbus_object_tree_list_registered_and_unlock): new function
10094
10095 2003-09-12  Havoc Pennington  <hp@pobox.com>
10096
10097         * glib/dbus-gidl.h: add common base class for all the foo_info
10098         types
10099
10100         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10101         similar to kdcop
10102
10103         * test/Makefile.am: try test srcdir -ef . in addition to test
10104         srcdir = ., one of them should work (yeah lame)
10105         
10106         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10107         library
10108         
10109         * glib/dbus-gparser.h: make description_load routines return
10110         NodeInfo* not Parser*
10111
10112         * Makefile.am (SUBDIRS): build test dir after all library dirs
10113
10114         * configure.in: add GTK+ detection
10115
10116 2003-09-07  Havoc Pennington  <hp@pobox.com>
10117
10118         * Make Doxygen contented.
10119
10120 2003-09-07  Havoc Pennington  <hp@pobox.com>
10121
10122         * doc/dbus-specification.sgml: more updates
10123
10124 2003-09-06  Havoc Pennington  <hp@pobox.com>
10125
10126         * doc/dbus-specification.sgml: partial updates
10127
10128         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10129         zillionth time; hopefully I edited the right file this time.
10130
10131         * bus/config-parser.c (append_rule_from_element): support
10132         send_type, send_path, receive_type, receive_path
10133
10134         * bus/policy.c: add message type and path to the list of things
10135         that can be "firewalled"
10136
10137 2003-09-06  Havoc Pennington  <hp@pobox.com>
10138
10139         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10140         (dbus_connection_register_object_path): make this not handle
10141         messages to paths below the given path
10142
10143 2003-09-03  Havoc Pennington  <hp@pobox.com>
10144
10145         * test/glib/Makefile.am: add this with random glib-linked test
10146         programs
10147
10148         * glib/Makefile.am: remove the random test programs from here,
10149         leave only the unit tests
10150
10151         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10152         uscore/javacaps conversion, and fix     
10153         (get_object_property, set_object_property): change to .NET
10154         convention for mapping props to methods, set_FooBar/get_FooBar, 
10155         since one language has such a convention we may as well copy it. 
10156         Plus real methods in either getFooBar or get_foo_bar style won't 
10157         collide with this convention.
10158
10159 2003-09-01  Havoc Pennington  <hp@pobox.com>
10160
10161         * glib/dbus-gparser.c: implement
10162
10163         * glib/dbus-gobject.c: start implementing skeletons support
10164
10165         * configure.in: when disabling checks/assert, also define
10166         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10167
10168 2003-09-01  Havoc Pennington  <hp@pobox.com>
10169
10170         * glib/Makefile.am: rearrange a bunch of files and get "make
10171         check" framework set up
10172
10173 2003-08-31  Havoc Pennington  <hp@pobox.com>
10174
10175         * fix build with --disable-tests
10176
10177 2003-08-30  Havoc Pennington  <hp@pobox.com>
10178
10179         * dbus/dbus-connection.c: purge DBusMessageHandler
10180
10181         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10182         use callbacks everywhere
10183
10184 2003-08-30  Havoc Pennington  <hp@pobox.com>
10185
10186         * test/data/valid-config-files/system.d/test.conf: change to 
10187         root for the user so warnings don't get printed
10188
10189         * dbus/dbus-message.c: add dbus_message_get_path,
10190         dbus_message_set_path
10191         
10192         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10193         dispatching to a path
10194
10195         * dbus/dbus-string.c (_dbus_string_validate_path): add
10196
10197         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10198         (_dbus_marshal_object_path): implement
10199
10200         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10201         to contain the path to the target object
10202         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10203         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10204
10205 2003-08-30  Havoc Pennington  <hp@pobox.com>
10206
10207         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10208
10209 2003-08-29  Havoc Pennington  <hp@pobox.com>
10210
10211         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10212         registered
10213         (struct DBusObjectSubtree): shrink this
10214         a lot, since we may have a lot of them
10215         (_dbus_object_tree_free_all_unlocked): implement
10216         (_dbus_object_tree_dispatch_and_unlock): implement
10217
10218 2003-08-29  Havoc Pennington  <hp@pobox.com>
10219
10220         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10221
10222 2003-08-28  Havoc Pennington  <hp@pobox.com>
10223
10224         purge DBusObjectID
10225         
10226         * dbus/dbus-connection.c: port to no ObjectID, create a
10227         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10228
10229         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10230         everything except UnregisterFunction and MessageFunction
10231         
10232         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10233         add DBUS_TYPE_OBJECT_PATH
10234         
10235         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10236         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10237         path-based object IDs
10238
10239 2003-08-25  Havoc Pennington  <hp@pobox.com>
10240
10241         Just noticed that dbus_message_test is hosed, I wonder when I
10242         broke that. I thought make check was passing earlier...
10243         
10244         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10245         container tree, will replace most of dbus-object-registry
10246
10247         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10248         screwup
10249
10250 2003-08-19  Havoc Pennington  <hp@pobox.com>
10251
10252         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10253         (dbus_message_is_error): fix this function
10254
10255         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10256         match
10257
10258         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10259         reflect clarified man page
10260         (bus_client_policy_check_can_send): ditto
10261         
10262         * bus/session.conf.in: fixup
10263
10264         * bus/system.conf.in: fixup
10265
10266 2003-08-18  Havoc Pennington  <hp@redhat.com>
10267
10268         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10269
10270         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10271         dumb bug created earlier (wrong order of args to
10272         decode_header_data())
10273         
10274         * tools/dbus-send.c: port
10275
10276         * tools/dbus-print-message.c (print_message): port
10277
10278         * test/data/*messages: port all messages over
10279         
10280         * dbus/dbus-message-builder.c: support including 
10281         message type
10282         
10283         * bus/driver.c: port over
10284         
10285         * bus/dispatch.c: port over to new stuff
10286
10287         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10288         rename disconnect signal to "Disconnected"
10289
10290 2003-08-17  Havoc Pennington  <hp@pobox.com>
10291
10292         This doesn't compile yet, but syncing up so I can hack on it from
10293         work. What are branches for if not broken code? ;-)
10294         
10295         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10296         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10297         DBUS_HEADER_FIELD_ERROR_NAME
10298         
10299         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10300         for the interface+member pairs
10301         (string_hash): change to use g_str_hash algorithm
10302         (find_direct_function, find_string_function): refactor these to
10303         share most code.
10304         
10305         * dbus/dbus-message.c: port all of this over to support 
10306         interface/member fields instead of name field
10307
10308         * dbus/dbus-object-registry.c: port over
10309         
10310         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10311         from _dbus_string_validate_name
10312
10313         * bus/dbus-daemon-1.1: change file format for the 
10314         <deny>/<allow> stuff to match new message naming scheme
10315
10316         * bus/policy.c: port over
10317
10318         * bus/config-parser.c: parse new format
10319         
10320 2003-08-16  Havoc Pennington  <hp@pobox.com>
10321
10322         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10323         broken assertion
10324
10325         * glib/dbus-gproxy.c: some hacking
10326
10327 2003-08-15  Havoc Pennington  <hp@redhat.com>
10328
10329         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10330
10331         * dbus/dbus-connection.c
10332         (dbus_connection_send_with_reply_and_block): factor out internals;
10333         change to convert any error replies to DBusError instead of 
10334         returning them as a message
10335
10336 2003-08-15  Havoc Pennington  <hp@pobox.com>
10337
10338         * dbus/dbus-connection.c, 
10339         dbus/dbus-pending-call.c: Finish the pending call stuff
10340
10341 2003-08-14  Havoc Pennington  <hp@redhat.com>
10342
10343         * dbus/dbus-pending-call.c: start on new object that will replace
10344         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10345         replies
10346
10347         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10348         with remote interfaces
10349
10350         * dbus/dbus-gidl.c: do the boring boilerplate in here
10351         
10352 2003-08-12  Havoc Pennington  <hp@pobox.com>
10353
10354         * bus/dispatch.c (bus_dispatch): make this return proper 
10355         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10356
10357         * dbus/dbus-errors.c (dbus_set_error): use
10358         _dbus_string_append_printf_valist
10359
10360         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10361         (_dbus_string_append_printf): new
10362
10363         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10364         UNKNOWN_METHOD
10365
10366         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10367         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10368         message is unhandled.
10369
10370 2003-08-11  Havoc Pennington  <hp@pobox.com>
10371
10372         * bus/test.c (client_disconnect_handler): change to return
10373         HANDLED (would have been REMOVE_MESSAGE)
10374
10375         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10376         HANDLED/NOT_YET_HANDLED instead of
10377         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10378         should be used.
10379
10380 2003-08-10  Havoc Pennington  <hp@pobox.com>
10381
10382         * tools/dbus-send.c (main): add --type argument, for now
10383         supporting only method_call and signal types.
10384
10385         * tools/dbus-print-message.c: print message type
10386
10387         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10388         init connection->objects
10389
10390         * doc/dbus-specification.sgml: fix sgml
10391
10392         * bus/*.c: port over to object-instance API changes
10393
10394         * test/test-service.c: ditto
10395         
10396         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10397         name, we will have to fix up the rest of the code to also handle
10398         this
10399         (dbus_message_new): generic message-creation call
10400         (set_string_field): allow appending name field
10401
10402 2003-08-06  Havoc Pennington  <hp@pobox.com>
10403
10404         * dbus/dbus-object-registry.c: implement signal connection 
10405         and dispatch
10406
10407         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10408
10409         * dbus/dbus-internals.c (_dbus_memdup): new function
10410
10411 2003-08-02  Havoc Pennington  <hp@pobox.com>
10412
10413         * dbus/dbus-message.c (dbus_message_get_no_reply)
10414         (dbus_message_set_no_reply): add these and remove
10415         set_is_error/get_is_error
10416
10417         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10418         remove the ERROR flag, since there's now an ERROR type
10419
10420 2003-08-01  Havoc Pennington  <hp@pobox.com>
10421
10422         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10423         implement
10424
10425         * dbus/dbus-message.c (dbus_message_get_type): new function
10426
10427         * doc/dbus-specification.sgml: add "type" byte to messages
10428
10429 2003-08-01  Havoc Pennington  <hp@pobox.com>
10430
10431         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10432         a message type enum to distinguish kinds of message
10433         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10434         that need not be replied to
10435
10436 2003-08-01  Havoc Pennington  <hp@pobox.com>
10437
10438         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10439         (unpack_8_octets): fix no-64-bit-int bug
10440
10441         * dbus/dbus-object-registry.c (validate_id): validate the 
10442         connection ID bits, not just the instance ID.
10443
10444         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10445         the connection-global 33 bits of the object ID
10446
10447         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10448         object ID in the new way
10449
10450         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10451         define server/client/instance bits.
10452
10453 2003-07-30  Havoc Pennington  <hp@pobox.com>
10454
10455         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10456         build
10457
10458 2003-07-13  Havoc Pennington  <hp@pobox.com>
10459
10460         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10461         fields to DBusObjectVTable and DBusObjectInfo
10462
10463 2003-07-12  Havoc Pennington  <hp@pobox.com>
10464
10465         * dbus/dbus-object-registry.c: implement unit test,
10466         fix bugs discovered in process
10467
10468         * dbus/dbus-connection.c: remove handler_table and
10469         register_handler(), add DBusObjectRegistry usage
10470
10471         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10472         (dbus_object_id_set_null): new functions
10473
10474 2003-07-08  Havoc Pennington  <hp@pobox.com>
10475
10476         * dbus/dbus-object.c: implement some of this
10477
10478         * dbus/dbus-object-registry.c
10479         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10480         param
10481         (_dbus_object_registry_new): handle OOM
10482
10483 2003-07-08  Havoc Pennington  <hp@pobox.com>
10484
10485         * dbus/dbus-object.h: sketch out an API for registering objects
10486         with a connection, that allows us to use as little as 24 bytes
10487         per object and lets application code represent an object in 
10488         any conceivable way.
10489
10490         * dbus/dbus-object-registry.c: implement the hard bits of the
10491         DBusConnection aspect of object API. Not yet wired up.
10492         
10493 2003-07-06  Havoc Pennington  <hp@pobox.com>
10494
10495         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10496         (_dbus_marshal_object_id): new
10497         (_dbus_demarshal_object_id): new
10498         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10499         consolidate identical switch cases. Don't conditionalize handling
10500         of DBUS_TYPE_UINT64, need to handle the type always.
10501         (_dbus_marshal_validate_arg): consolidate identical cases, and
10502         handle DBUS_TYPE_OBJECT_ID
10503
10504         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10505
10506         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10507
10508 2003-09-28  Havoc Pennington  <hp@pobox.com>
10509
10510         * real 0.13 release
10511
10512 2003-09-28  Havoc Pennington  <hp@pobox.com>
10513
10514         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10515         to work with Debian db2html
10516
10517 2003-09-28  Havoc Pennington  <hp@pobox.com>
10518
10519         * configure.in: 0.13
10520
10521         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10522         stylesheet-images for benefit of Debian
10523         
10524         Change back to using filesystem-linked sockets for the system
10525         bus, so only root can create the default system bus address.
10526         
10527         * bus/system.conf.in: change to use
10528         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10529
10530         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10531         from here.
10532
10533         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10534         here, and AC_DEFINE DBUS_SYSTEM_PATH
10535
10536 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10537
10538         * doc/TODO:
10539         * doc/busconfig.dtd:
10540         Add busconfig DTD.
10541         
10542 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10543
10544         * doc/dbus-specification.sgml:
10545         Add activation reply values.
10546         
10547 2003-08-05  Havoc Pennington  <hp@redhat.com>
10548
10549         * configure.in: 0.12
10550
10551 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10552
10553         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10554         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10555         (add_watch), (remove_watch), (create_source):
10556         Refcount fds, fixes some reentrancy issues.
10557         
10558 2003-07-30  Havoc Pennington  <hp@redhat.com>
10559
10560         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10561         bus address to be abstract if we have abstract sockets
10562
10563         * NEWS: update
10564
10565 2003-07-28  Havoc Pennington  <hp@redhat.com>
10566
10567         * bus/messagebus.in: fix to avoid processname/servicename 
10568         confusion, from Michael Kearey
10569         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10570         
10571 2003-07-23  Havoc Pennington  <hp@pobox.com>
10572
10573         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10574         fix from Andy Hanton to remove broken "+1"
10575
10576 2003-07-16  Havoc Pennington  <hp@pobox.com>
10577
10578         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10579         babysitter process, as suggested by Thomas Leonard, so 
10580         an "eval `dbus-launch --exit-with-session`" will actually 
10581         return
10582
10583 2003-07-16  Havoc Pennington  <hp@pobox.com>
10584
10585         * configure.in: print out EXPANDED_* variables in the summary at
10586         the end; clean up the code that computes EXPANDED_ variables and
10587         get the ones using exec_prefix right. Should make things work
10588         when you build without --prefix
10589
10590 2003-06-29  Havoc Pennington  <hp@pobox.com>
10591
10592         * mono/Test.cs (class Test): fire up a main loop and run it
10593
10594         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10595         done once, the app has to do it
10596
10597 2003-06-26  Havoc Pennington  <hp@pobox.com>
10598
10599         * mono/Connection.cs: set up connection with the glib main loop
10600
10601 2003-07-01  Havoc Pennington  <hp@redhat.com>
10602
10603         * doc/dbus-specification.sgml: clarify the format of a type code,
10604         change suggested by Jim Blandy
10605
10606 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10607
10608         * doc/Makefile.am:
10609         * tools/Makefile.am: Don't assume srcdir == builddir.
10610
10611         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10612         the allocated block.
10613         (_dbus_memory_test): New function.
10614         * dbus/dbus-test.h: Add _dbus_memory_test ().
10615         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10616
10617         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10618         of %c%c%c%c.
10619         (dbus_message_new): Remove obsolete @todo.
10620
10621         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10622         (_dbus_marshal_set_uint64): Fix comment.
10623
10624         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10625         hardcode FIELD_REPLY_SERIAL.
10626
10627         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10628         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10629
10630         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10631         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10632
10633 2003-06-24  Havoc Pennington  <hp@pobox.com>
10634
10635         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10636
10637 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10638
10639         * configure.in:
10640         * gcj/.cvsignore:
10641         * gcj/Hello.java:
10642         * gcj/Makefile.am:
10643         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10644         * gcj/org/.cvsignore:
10645         * gcj/org/Makefile.am:
10646         * gcj/org/freedesktop/.cvsignore:
10647         * gcj/org/freedesktop/Makefile.am:
10648         * gcj/org/freedesktop/dbus/.cvsignore:
10649         * gcj/org/freedesktop/dbus/Makefile.am:
10650         * gcj/org/freedesktop/dbus/Message.java: (Message),
10651         (Message.Message):
10652         * gcj/org/freedesktop/dbus/natMessage.cc:
10653         Fix the build system.
10654
10655 2003-06-22  Havoc Pennington  <hp@pobox.com>
10656
10657         * mono/Connection.cs: add more bindings
10658
10659         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10660         more than once.
10661
10662 2003-06-22  Havoc Pennington  <hp@pobox.com>
10663
10664         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10665         Start wrapping more stuff.
10666
10667 2003-06-22  Havoc Pennington  <hp@pobox.com>
10668
10669         * mono/Message.cs: implement Message.Wrap() that ensures we only
10670         have a single C# wrapper per DBusMessage, assuming it works which
10671         it probably doesn't.
10672
10673         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10674         (dbus_message_free_data_slot): new
10675         (dbus_message_set_data): new
10676         (dbus_message_get_data): new
10677
10678 2003-06-22  Havoc Pennington  <hp@pobox.com>
10679
10680         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10681         (_dbus_data_slot_allocator_alloc): rework these to keep a
10682         reference count on each slot and automatically manage a global
10683         slot ID variable passed in by address
10684
10685         * bus/bus.c: convert to new dataslot API
10686
10687         * dbus/dbus-bus.c: convert to new dataslot API
10688
10689         * dbus/dbus-connection.c: convert to new dataslot API
10690
10691         * dbus/dbus-server.c: convert to new dataslot API
10692
10693         * glib/dbus-gmain.c: ditto
10694
10695         * bus/test.c: ditto
10696
10697         * bus/connection.c: ditto
10698
10699 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10700
10701         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10702         after the gcj checks so that the correct configuration tags
10703         will be added to libtool.
10704
10705         * dbus-glib-1.pc.in: No need to specify any includes since
10706         dbus-1.pc.in has those.
10707
10708 2003-06-22  Havoc Pennington  <hp@pobox.com>
10709
10710         * mono/*, gcj/*, configure.in, Makefile.am:
10711         Check in makefiles and subdirs for mono and gcj bindings.
10712         Neither binding actually exists, just trying to get through
10713         all the build and other boring bits.
10714
10715 2003-06-21  Philip Blundell  <philb@gnu.org>
10716
10717         * tools/dbus-monitor.1: Updated.
10718
10719         * tools/dbus-send.1: Likewise.
10720
10721 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10722
10723         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10724         for hangup and error after checking read so we won't discard
10725         pending data if both hangup and read are set.
10726
10727 2003-06-19  Philip Blundell  <philb@gnu.org>
10728
10729         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10730
10731         * tools/dbus-send.c: Accept both --system and --session.
10732
10733         * tools/dbus-monitor.c: Same here.
10734
10735 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10736
10737         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10738         from C++ (Patch by Miloslav Trmac).
10739
10740 2003-06-15  Joe Shaw  <joe@assbarn.com>
10741
10742         * configure.in: Check for socklen_t.
10743
10744         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10745
10746         * test/test-segfault.c: Add #include <sys/time.h>
10747
10748         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10749         dbus-launch needs it.
10750
10751 2003-06-09  Havoc Pennington  <hp@redhat.com>
10752
10753         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10754         SUN_LEN, it breaks abstract socket usage
10755
10756         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10757         starts of lines.
10758
10759 2003-06-04  Havoc Pennington  <hp@pobox.com>
10760
10761         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10762         using unix:abstract=/foo, and when listening in a tmpdir
10763         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10764
10765         * dbus/dbus-transport.c (_dbus_transport_open): support
10766         unix:abstract=/foo
10767
10768         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10769         support abstract sockets
10770
10771         * dbus/dbus-transport-unix.c
10772         (_dbus_transport_new_for_domain_socket): support abstract sockets
10773
10774         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10775         toggle as an argument, implement abstract namespace support
10776         (_dbus_listen_unix_socket): ditto
10777
10778         * configure.in: add --enable-abstract-sockets and implement
10779         a configure check for autodetection of the right value.
10780
10781 2003-06-01  Havoc Pennington  <hp@pobox.com>
10782
10783         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10784         in /tmp (though on Linux this will end up being useless,
10785         when we add abstract namespace support)
10786
10787         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10788         subst'ing it
10789
10790 2003-05-28  Colin Walters  <walters@verbum.org>
10791
10792         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10793
10794 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10795
10796         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10797
10798 2003-05-17  Colin Walters  <walters@gnu.org>
10799
10800         * tools/dbus-send.c: Don't exit with an error code if --help was
10801         passed.  Default to using the session bus instead of the system
10802         one.
10803
10804         * tools/dbus-launch.c: Ditto.
10805
10806         * tools/dbus-monitor.c: Ditto.
10807
10808         * tools/dbus-send.1: Update with new arguments.
10809
10810         * tools/dbus-launch.c: Emit code to export variables.  New
10811         arguments -s and -c to specify shell syntax, and a bit of code to
10812         autodetect syntax.  Also, allow specifying a program to run.
10813
10814         * tools/dbus-launch.1: Update with new arguments.
10815
10816         * tools/dbus-send.1: Ditto.
10817
10818         * tools/dbus-monitor.1: Ditto.
10819
10820 2003-05-17  Havoc Pennington  <hp@pobox.com>
10821
10822         * bus/config-parser.c (merge_included): merge in policies from
10823         child configuration file.
10824
10825         * bus/policy.c (bus_policy_merge): function to merge two policies
10826         together
10827
10828 2003-05-16  Havoc Pennington  <hp@redhat.com>
10829
10830         * dbus/dbus-connection.c: disable verbose lock spew
10831
10832         * tools/dbus-send.c: add --print-reply command line option
10833
10834         * tools/dbus-print-message.h (print_message): new util function
10835         shared by dbus-send and dbus-monitor
10836
10837         * tools/dbus-monitor.c (handler_func): exit on disconnect
10838
10839         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10840         disconnected, don't try to use the read_watch
10841
10842         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10843         so we can find this bug more easily
10844
10845 2003-05-16  Havoc Pennington  <hp@redhat.com>
10846
10847         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10848         NULL as DBusHashTable is annoyingly likely to do.
10849
10850 2003-05-16  Colin Walters  <walters@verbum.org>
10851
10852         * tools/dbus-monitor.c: Add --session argument and usage()
10853         function.
10854
10855         * tools/dbus-monitor.1: Update with new --session arg.
10856
10857         * bus/Makefile.am (install-data-hook): Create
10858         $(libdir)/dbus-1.0/services so that the session bus is happy.
10859
10860 2003-05-15  Havoc Pennington  <hp@redhat.com>
10861
10862         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10863         on non-x86. ifdef's are evil.
10864
10865 2003-05-15  Havoc Pennington  <hp@redhat.com>
10866
10867         * configure.in: 0.11
10868
10869         * NEWS: update
10870
10871         * bus/Makefile.am (initddir): apparently we are supposed to put
10872         init scripts in /etc/rc.d/init.d not /etc/init.d
10873
10874         * bus/Makefile.am: remove the "you must --enable-tests to make
10875         check" as it broke distcheck
10876
10877         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10878
10879 2003-05-13  James Willcox  <jwillcox@gnome.org>
10880
10881         * configure.in:
10882         * bus/activation.c: (bus_activation_service_created),
10883         (bus_activation_activate_service):
10884         * bus/driver.c: (bus_driver_send_service_deleted),
10885         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10886         (bus_driver_send_service_acquired),
10887         (bus_driver_send_welcome_message),
10888         (bus_driver_handle_list_services):
10889         * bus/session.conf.in:
10890         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10891         (dbus_bus_service_exists), (dbus_bus_activate_service):
10892         * dbus/dbus-bus.h:
10893
10894         Add some convenience API which lets you activate a service, and did a
10895         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10896         and dbus_message_get_args()
10897
10898 2003-05-11  Havoc Pennington  <hp@pobox.com>
10899
10900         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10901         calling _dbus_marshal_validate_arg() for every byte in a byte
10902         array, etc.
10903
10904         * dbus/dbus-message-handler.c: use atomic reference counting to
10905         reduce number of locks slightly; the global lock in here sucks
10906
10907         * dbus/dbus-connection.c
10908         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10909         update_dispatch_status that can be called with lock held; then use
10910         in a couple places to reduce locking/unlocking
10911         (dbus_connection_send): hold the lock over the whole function
10912         instead of acquiring it twice.
10913
10914         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10915
10916         * bus/connection.c (bus_connections_setup_connection): fix access
10917         to already-freed memory.
10918
10919         * dbus/dbus-connection.c: keep a little cache of linked list
10920         nodes, to avoid using the global linked list alloc lock in the
10921         normal send-message case. Instead we just use the connection lock
10922         that we already have to take.
10923
10924         * dbus/dbus-list.c (_dbus_list_find_last): new function
10925
10926         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10927         change to use a struct for the atomic type; fix docs,
10928         they return value before increment, not after increment.
10929
10930         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10931         (_dbus_string_append_8_aligned): new functions to try to
10932         microoptimize this operation.
10933         (reallocate_for_length): break this out of set_length(), to
10934         improve profile info, and also so we can consider inlining the
10935         set_length() part.
10936
10937         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10938         strings with some preallocation, cuts down on our calls to realloc
10939         a fair bit. Though if we can get the "move entire string to empty
10940         string" optimization below to kick in here, it would be better.
10941
10942         * dbus/dbus-string.c (_dbus_string_move): just call
10943         _dbus_string_move_len
10944         (_dbus_string_move_len): add a special case for moving
10945         an entire string into an empty string; we can just
10946         swap the string data instead of doing any reallocs.
10947         (_dbus_string_init_preallocated): new function
10948
10949 2003-05-11  Havoc Pennington  <hp@pobox.com>
10950
10951         Write a "test-profile" that does echo client-server with threads;
10952         profile reveals lock contention, memcpy/realloc of buffers, and
10953         UTF-8 validation as hot spots. 20% of lock contention eliminated
10954         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10955         contention is global mempool locks for GList and DBusList.
10956
10957         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10958         x86 implementation
10959
10960         * dbus/dbus-connection.c (struct DBusConnection): use
10961         dbus_atomic_t for the reference count
10962
10963         * dbus/dbus-message.c (struct DBusMessage): declare
10964         dbus_atomic_t values as volatile
10965
10966         * configure.in: code to detect ability to use atomic integer
10967         operations in assembly, from GLib patch
10968
10969         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10970         time, tired of it being wrong in threads and forked processes
10971
10972         * glib/test-profile.c: a little program to bounce messages back
10973         and forth between threads and eat CPU
10974
10975         * dbus/dbus-connection.c: add debug spew macros for debugging
10976         thread locks; include config.h at top; fix deadlock in
10977         dbus_connection_flush()
10978
10979 2003-05-08  Havoc Pennington  <hp@pobox.com>
10980
10981         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10982         data from getting written, and there wasn't a good reason to
10983         use _exit really.
10984
10985         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10986         dbus_verbose lines in test coverage
10987         (main): add list of functions sorted by # of untested blocks
10988         to the coverage report
10989
10990         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10991
10992         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10993
10994         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10995         extend test coverage
10996
10997         * test/data/auth/cancel.auth-script: test canceling an
10998         authentication
10999
11000         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11001         aren't used. in CVS history if we end up needing them.
11002
11003 2003-05-04  Havoc Pennington  <hp@pobox.com>
11004
11005         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11006         unit test
11007
11008         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11009         function, which assumed length was in # of strings, not bytes
11010
11011         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11012         missing coverage
11013
11014         * dbus/dbus-connection.c
11015         (_dbus_connection_queue_received_message): disable function for
11016         now, we are only using it in test mode
11017
11018         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11019         remove a mistaken FIXME
11020
11021 2003-05-04  Havoc Pennington  <hp@pobox.com>
11022
11023         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11024         unlock mutex on successful return, patch from Anders Gustafsson
11025
11026 2003-05-04  Havoc Pennington  <hp@pobox.com>
11027
11028         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11029         Anders Gustafsson
11030
11031 2003-05-04  Havoc Pennington  <hp@pobox.com>
11032
11033         * tools/dbus-launch.c: implement
11034
11035         * bus/main.c (main), bus/bus.c (bus_context_new):
11036         implement --print-pid and --fork
11037
11038 2003-05-03  Havoc Pennington  <hp@redhat.com>
11039
11040         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11041         the address had no value, and add to test suite. Fix and
11042         regression test from Miloslav Trmac
11043
11044 2003-05-03  Havoc Pennington  <hp@pobox.com>
11045
11046         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11047         watch is invalid when handled
11048
11049         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11050         dbus-launch utility to launch the bus from a shell script.  Didn't
11051         actually implement dbus-launch yet, it's just a placeholder still.
11052
11053 2003-05-03  Havoc Pennington  <hp@pobox.com>
11054
11055         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11056         daemon; also documents daemon config file, so replaces
11057         doc/config-file.txt. Corrected some stuff from config-file.txt in
11058         the process of moving it.
11059
11060 2003-05-03  Havoc Pennington  <hp@pobox.com>
11061
11062         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11063         add some man pages
11064
11065 2003-05-03  Colin Walters  <walters@verbum.org>
11066
11067         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11068         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11069
11070         * Makefile.am: Update to use new .pc versioning scheme.
11071
11072 2003-05-02  Havoc Pennington  <hp@redhat.com>
11073
11074         * bus/system.conf.in: allow send/receive to/from message bus
11075         service
11076
11077 2003-04-30  Havoc Pennington  <hp@redhat.com>
11078
11079         * configure.in: print a note when building with unit tests and
11080         without assertions
11081
11082 2003-04-30  Havoc Pennington  <hp@redhat.com>
11083
11084         * Makefile.am: add a check-local that complains if you didn't
11085         configure with --enable-tests
11086
11087 2003-04-29  Havoc Pennington  <hp@redhat.com>
11088
11089         * glib/dbus-gmain.c: docs cleanups
11090
11091         * dbus/dbus-types.h: add docs on int64 types
11092
11093         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11094         public API docs section
11095
11096 2003-04-29  Havoc Pennington  <hp@redhat.com>
11097
11098         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11099         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11100         parallel install API version, not with the D-BUS package version.
11101
11102         * HACKING: move some of README over here
11103
11104         * README: updates, and document API/ABI policy
11105
11106         * configure.in: reindentation
11107
11108 2003-04-29  Havoc Pennington  <hp@redhat.com>
11109
11110         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11111         to use this library" to be sure people have the right
11112         expectations.
11113
11114 2003-04-28  Havoc Pennington  <hp@redhat.com>
11115
11116         * configure.in: add --enable-docs which by default is auto yes if
11117         doxygen and db2html found, no otherwise; but can be forced on/off
11118
11119         * doc/Makefile.am: conditionalize whether to build docs on
11120         --enable-docs
11121
11122 2003-04-28  Havoc Pennington  <hp@redhat.com>
11123
11124         * configure.in: 0.10
11125
11126         * NEWS: update
11127
11128         * bus/system.conf.in: add <includedir>system.d</includedir>
11129
11130         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11131         username was provided but not uid
11132
11133         * bus/config-parser.c (struct BusConfigParser): keep track of
11134         whether the parser is toplevel or was included; change some
11135         of the error handling if it's included.
11136
11137 2003-04-27  Havoc Pennington  <hp@pobox.com>
11138
11139         Unbreak my code...
11140
11141         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11142         report correct status if we finish processing authentication
11143         inside this function.
11144
11145         * bus/activation.c (try_send_activation_failure): use
11146         bus_transaction_send_error_reply
11147
11148         * bus/connection.c (bus_connection_get_groups): return an error
11149         explaining the problem
11150
11151         * bus/bus.c (bus_context_check_security_policy): implement
11152         restriction here that inactive connections can only send the
11153         hello message. Also, allow bus driver to send anything to
11154         any recipient.
11155
11156         * bus/connection.c (bus_connection_complete): create the
11157         BusClientPolicy here instead of on-demand.
11158         (bus_connection_get_policy): don't return an error
11159
11160         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11161         sender field in message being replied to
11162
11163         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11164         causing it to return FALSE always
11165
11166         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11167         we checked sender rather than destination
11168
11169 2003-04-25  Havoc Pennington  <hp@redhat.com>
11170
11171         test suite is slightly hosed at the moment, will fix soon
11172
11173         * bus/connection.c (bus_connections_expire_incomplete): fix to
11174         properly disable the timeout when required
11175         (bus_connection_set_name): check whether we can remove incomplete
11176         connections timeout after we complete each connection.
11177
11178         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11179         probably still broken.
11180
11181         * bus/services.c (bus_registry_acquire_service): implement max
11182         number of services owned, and honor allow/deny rules on which
11183         services a connection can own.
11184
11185         * bus/connection.c (bus_connection_get_policy): report errors here
11186
11187         * bus/activation.c: implement limit on number of pending
11188         activations
11189
11190 2003-04-25  Havoc Pennington  <hp@redhat.com>
11191
11192         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11193         where we used >= 0 instead of != DBUS_UID_UNSET.
11194
11195 2003-04-25  Havoc Pennington  <hp@redhat.com>
11196
11197         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11198         were toggled without add/remove, fix from Anders Gustafsson
11199
11200 2003-04-24  Havoc Pennington  <hp@redhat.com>
11201
11202         * test/data/valid-config-files/basic.conf: add <limit> tags to
11203         this test
11204
11205         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11206         <limit> tag in configuration file.
11207
11208 2003-04-24  Havoc Pennington  <hp@redhat.com>
11209
11210         * bus/dispatch.c: somehow missed some name_is
11211
11212         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11213         (_dbus_timeout_set_interval): new
11214
11215         * bus/connection.c (bus_connections_setup_connection): record time
11216         when each connection is first set up, and expire them after the
11217         auth timeout passes.
11218
11219 2003-04-24  Havoc Pennington  <hp@redhat.com>
11220
11221         * dbus/dbus-message.c (dbus_message_name_is): rename
11222         (dbus_message_service_is): rename
11223         (dbus_message_sender_is): rename
11224         (dbus_message_get_service): rename
11225
11226 2003-04-24  Havoc Pennington  <hp@redhat.com>
11227
11228         * configure.in: add --enable-checks
11229
11230         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11231
11232         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11233         to use thread locks.
11234         (_dbus_connection_handler_destroyed_locked): move some private
11235         functions into proper docs group
11236
11237         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11238         _dbus_return_val_if_fail
11239
11240         Throughout: use dbus_return_if_fail
11241
11242 2003-04-23  James Willcox  <jwillcox@gnome.org>
11243
11244         * glib/dbus-glib.h:
11245         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11246         (dbus_connection_setup_with_g_main),
11247         (dbus_server_setup_with_g_main):
11248         * glib/test-dbus-glib.c: (main):
11249         * glib/test-thread-client.c: (main):
11250         * glib/test-thread-server.c: (new_connection_callback), (main):
11251         * tools/dbus-monitor.c: (main):
11252
11253         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11254         and dbus_server_setup_with_g_main().
11255
11256 2003-04-20  Havoc Pennington  <hp@pobox.com>
11257
11258         * doc/dbus-specification.sgml: document the restrictions on
11259         message and service names
11260
11261 2003-04-22  Havoc Pennington  <hp@redhat.com>
11262
11263         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11264         support, and do some code cleanups to share more code and
11265         speed up array marshal/demarshal.
11266
11267         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11268
11269         * configure.in: generate dbus-arch-deps.h
11270
11271         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11272         64-bit typecodes
11273
11274 2003-04-22  Havoc Pennington  <hp@redhat.com>
11275
11276         * test/data/valid-messages/opposite-endian.message: fix test
11277         to use proper type for rply field
11278
11279         * test/data/invalid-messages: add tests for below validation
11280
11281         * dbus/dbus-message.c (decode_header_data): validate field types,
11282         and validate that named fields are valid names
11283         (decode_name_field): consider messages in the
11284         org.freedesktop.Local. namespace to be invalid.
11285
11286         * dbus/dbus-string.c (_dbus_string_validate_name): new
11287
11288 2003-04-19  Havoc Pennington  <hp@pobox.com>
11289
11290         * bus/driver.c (bus_driver_handle_hello): check limits and
11291         return an error if they are exceeded.
11292
11293         * bus/connection.c: maintain separate lists of active and inactive
11294         connections, and a count of each. Maintain count of completed
11295         connections per user. Implement code to check connection limits.
11296
11297         * dbus/dbus-list.c (_dbus_list_unlink): export
11298
11299         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11300         number of bytes in the message queue for a connection
11301
11302 2003-04-18  Havoc Pennington  <hp@pobox.com>
11303
11304         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11305
11306         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11307         memleaks
11308
11309         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11310         on realloc be sure to update the pointer in the keyring
11311
11312         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11313         offset to avoid writing to unallocated memory
11314
11315         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11316         try the next mechanism, so we properly handle OOM
11317
11318         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11319         on OOM.
11320         (_dbus_keyring_new): fix OOM bug
11321         (_dbus_keyring_new_homedir): always set error; impose a maximum
11322         number of keys we'll load from the file, mostly to speed up the
11323         test suite and make its OOM checks more useful, but also for
11324         general sanity.
11325
11326         * dbus/dbus-auth.c (process_error_server): reject authentication
11327         if we get an error from the client
11328         (process_cancel): on cancel, send REJECTED, per the spec
11329         (process_error_client): send CANCEL if we get an error from the
11330         server.
11331
11332 2003-04-18  Havoc Pennington  <hp@pobox.com>
11333
11334         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11335         debug spew
11336
11337         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11338         handling problem
11339
11340         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11341         about DBUS_TEST_HOMEDIR once
11342
11343         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11344         the environment
11345
11346         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11347         config file so we test the right thing
11348
11349         Throughout: assorted docs improvements
11350
11351 2003-04-18  Havoc Pennington  <hp@pobox.com>
11352
11353         * glib/dbus-gmain.c: adapt to watch changes
11354
11355         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11356
11357         * dbus/dbus-server.h: remove dbus_server_handle_watch
11358
11359         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11360
11361         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11362         like DBusTimeout, so we don't need dbus_connection_handle_watch
11363         etc.
11364
11365 2003-04-17  Havoc Pennington  <hp@redhat.com>
11366
11367         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11368         database usage so it all goes via the DBusUserDatabase cache.
11369
11370 2003-04-17  Havoc Pennington  <hp@redhat.com>
11371
11372         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11373         there was an OOM watch we skipped, we always return TRUE so we
11374         iterate again to have a look at it again. Fixes test suite hang.
11375         Code rearrangement also lets us lose some memset and only iterate
11376         over callbacks once.
11377
11378         * bus/driver.c (bus_driver_handle_message): sense of test for
11379         reply was backward
11380
11381 2003-04-16  Havoc Pennington  <hp@pobox.com>
11382
11383         * doc/dbus-specification.sgml: make spec say serials are unsigned
11384
11385         * dbus/dbus-message.h: change message serials to unsigned
11386
11387         * dbus/dbus-connection.c: adapt to message serials being unsigned
11388
11389 2003-04-15  Havoc Pennington  <hp@pobox.com>
11390
11391         * bus/bus.c: create and keep around a shared DBusUserDatabase
11392         object.
11393
11394         * bus/connection.c (bus_connection_get_groups): don't cache
11395         groups for user in the connection object, since user database
11396         object now does that.
11397
11398 2003-04-16  Havoc Pennington  <hp@redhat.com>
11399
11400         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11401         list of size counters
11402         (_dbus_message_loader_putback_message_link): put back a popped link
11403
11404         * dbus/dbus-connection.c
11405         (dbus_connection_set_max_live_messages_size): rename
11406         max_received_size
11407         (dbus_connection_get_outgoing_size): get size of outgoing
11408         queue
11409         (_dbus_connection_set_connection_counter): remove this cruft
11410
11411 2003-04-14  Havoc Pennington  <hp@redhat.com>
11412
11413         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11414         caching, but at some point we might want to be able to use a
11415         different database.
11416
11417         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11418         SHA1 conf file to test the sha1 auth mechanism, since the regular
11419         test always uses EXTERNAL when available.
11420
11421         * configure.in,
11422         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11423         add conf file that requires use of sha1 auth
11424
11425 2003-04-13  Havoc Pennington  <hp@pobox.com>
11426
11427         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11428         from Philip Blundell to send messages and monitor them.
11429
11430 2003-04-13  Havoc Pennington  <hp@pobox.com>
11431
11432         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11433         callbacks
11434
11435         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11436         users
11437
11438         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11439         fix to only recover unused bytes if we're already authenticated
11440         (_dbus_transport_get_is_authenticated): fix to still mark us
11441         authenticated if there are unused bytes.
11442
11443         * bus/dispatch.c: implement security policy checking
11444
11445         * bus/connection.c (bus_transaction_send_from_driver): new
11446
11447         * bus/bus.c (bus_context_check_security_policy): new
11448
11449         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11450         now we just set the DBusError and it gets converted to an error
11451         reply.
11452
11453         * bus/connection.c (allow_user_function): enable code using actual
11454         data from the config file
11455
11456         * bus/policy.c (list_allows_user): handle wildcard rules for
11457         user/group connection perms
11458
11459 2003-04-13  Havoc Pennington  <hp@pobox.com>
11460
11461         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11462
11463         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11464
11465         * bus/policy.c (bus_policy_append_mandatory_rule)
11466         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11467         (bus_policy_append_group_rule): new functions
11468
11469 2003-04-12  Havoc Pennington  <hp@pobox.com>
11470
11471         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11472
11473         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11474         the pid/gid/uid, just for paranoia.
11475
11476         * test/break-loader.c (randomly_do_n_things): find a byte
11477         containing a type code, and randomly change it to a different
11478         type code.
11479
11480 2003-04-12  Havoc Pennington  <hp@pobox.com>
11481
11482         * bus/policy.h: change BusPolicy to be the thing from the config
11483         file, and rename old BusPolicy to BusClientPolicy
11484
11485         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11486         match change in how policy works
11487
11488         * dbus/dbus-internals.h: mark assert_not_reached as
11489         __attribute((noreturn))__
11490
11491 2003-04-11  Havoc Pennington  <hp@redhat.com>
11492
11493         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11494         the broadcast service. Use boolean return for ServiceExists.
11495
11496 2003-04-11  Havoc Pennington  <hp@redhat.com>
11497
11498         * configure.in: add another directory to look for qt in.
11499
11500 2003-04-11  Havoc Pennington  <hp@redhat.com>
11501
11502         * AUTHORS: add Colin Walters
11503
11504 2003-04-11  Havoc Pennington  <hp@redhat.com>
11505
11506         * NEWS: update
11507
11508         * configure.in: 0.9
11509
11510 2003-04-11  Havoc Pennington  <hp@redhat.com>
11511
11512         * bus/messagebus.in: remove pid file when stopping the
11513         message bus, since the bus won't have privileges to remove it
11514         itself.
11515
11516 2003-04-11  Havoc Pennington  <hp@redhat.com>
11517
11518         * bus/bus.c (bus_context_new): move credentials change after
11519         creating pidfile
11520
11521 2003-04-11  Havoc Pennington  <hp@pobox.com>
11522
11523         * test/decode-gcov.c: add "below average functions" to the
11524         coverage report, and change how some of the code works.
11525
11526         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11527         not in the coverage stats.
11528
11529         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11530         couple places so running the test suite doesn't result in megaspam.
11531
11532 2003-04-11  Havoc Pennington  <hp@pobox.com>
11533
11534         * bus/dispatch.c (check_existent_service_activation): accept a no
11535         memory error in a place we didn't before
11536
11537         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11538         in case the first one failed," since the test suite is less
11539         broken now.
11540
11541 2003-04-10  Havoc Pennington  <hp@pobox.com>
11542
11543         * bus/dispatch.c (check_segfault_service_activation): add test
11544         for launching an executable that just crashes.
11545
11546         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11547         don't leave a million cores. We'll see how portable this is.
11548
11549 2003-04-10  Havoc Pennington  <hp@pobox.com>
11550
11551         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11552         the possible parent failures before we fork, so that we don't
11553         fail to create a babysitter after creating the child.
11554
11555         * bus/activation.c (bus_activation_activate_service): kill child
11556         if we don't successfully complete the activation.
11557
11558 2003-04-10  Havoc Pennington  <hp@redhat.com>
11559
11560         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11561         the connection if it's disconnected
11562
11563         * bus/activation.c (bus_activation_service_created): use new
11564         transaction features to roll back removal of pending activation if
11565         we don't successfully create the service after all. Don't remove
11566         pending activation if the function fails.
11567
11568         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11569         (_dbus_list_insert_after_link): new code to facilitate
11570         services.c fixes
11571
11572         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11573         new functionality, so we can preallocate the ability to insert
11574         into a hash table.
11575
11576         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11577         allowing us to put custom hooks in a transaction to be used for
11578         cancelling said transaction
11579
11580         * doc/dbus-specification.sgml: add some discussion of secondary
11581         service owners, and disallow zero-length service names
11582
11583         * bus/services.c (bus_registry_acquire_service): new function,
11584         splits out part of bus_driver_handle_acquire_service() and fixes
11585         a bug where we didn't remove the service doing the acquiring
11586         from the secondary queue if we failed to remove the current owner
11587         from the front of the queue.
11588
11589 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11590
11591         * doc/dbus-specification.sgml:
11592         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11593
11594 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11595
11596         * bus/.cvsignore:
11597         * glib/.cvsignore:
11598         * test/.cvsignore:
11599         Added files to cvsignore
11600
11601         * dbus/dbus-message.h:
11602         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11603         Make get_named() take two out argument and return a boolean.
11604         (dbus_message_iter_get_args_valist):
11605         Update usage of get_named().
11606         (dbus_message_iter_append_byte):
11607         Fix typo
11608         (dbus_message_iter_append_named)
11609         Fix typo
11610         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11611         More tests.
11612
11613 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11614
11615         * dbus/dbus-marshal.[ch]:
11616         Add array_type_pos argument to _dbus_marshal_validate_arg.
11617         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11618
11619         * dbus/dbus-message.[ch]:
11620         Multi-dimensional arrays have full type specification in the
11621         outermost array. Iter code re-arranged to handle this.
11622         Added some more iter tests.
11623
11624         * doc/dbus-specification.sgml:
11625         Add me to authors.
11626         Remove old FIXME.
11627         Update new array encoding description.
11628         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11629
11630         * test/data/invalid-messages/array-with-mixed-types.message:
11631         * test/data/valid-messages/array-of-array-of-uint32.message:
11632         Change to the new array format.
11633
11634         * test/data/invalid-messages/too-short-dict.message:
11635         Fix bug in test.
11636
11637         * test/data/valid-messages/recursive-types.message:
11638         Fix up and extend test.
11639
11640 2003-04-10  Havoc Pennington  <hp@pobox.com>
11641
11642         * bus/dispatch.c: lots of fixes
11643
11644         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11645         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11646         that was crack, broke the test service.
11647
11648         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11649         handling to avoid piling up errors if we get a failure on the
11650         first address.
11651
11652         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11653         pid in assertion failures.
11654
11655         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11656         to some fixed size of file descriptor array. Don't return TRUE
11657         anytime a timeout exists, that led to lots of busy loop silliness
11658         in the tests.
11659
11660 2003-04-09  Havoc Pennington  <hp@redhat.com>
11661
11662         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11663         I'd checked this in earlier but hadn't.
11664
11665 2003-04-09  Havoc Pennington  <hp@redhat.com>
11666
11667         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11668         the activation test (man this is getting old!)
11669
11670 2003-04-09  Havoc Pennington  <hp@redhat.com>
11671
11672         * test/test-utils.c: use dispatch status function to fix this up
11673
11674         * bus/connection.c (connection_watch_callback): don't dispatch
11675         from here
11676         (connection_timeout_callback): don't dispatch from here
11677         (bus_connections_setup_connection): set the dispatch status function
11678         (bus_connection_disconnected): unset it
11679
11680         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11681         used to add a connection to be dispatched
11682         (_dbus_loop_iterate): do the dispatching at the end of each
11683         iteration
11684
11685         * dbus/dbus-connection.c
11686         (dbus_connection_set_dispatch_status_function): new function
11687         allowing us to fix up main loop usage
11688         (_dbus_connection_last_unref): free all the various function
11689         user data
11690         (dbus_connection_dispatch): call the DispatchStatusFunction
11691         whenever this function returns
11692         (dbus_connection_handle_watch): call DispatchStatusFunction
11693         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11694         (reply_handler_timeout): call DispatchStatusFunction
11695         (dbus_connection_flush): call DispatchStatusFunction
11696
11697 2003-04-09  Havoc Pennington  <hp@redhat.com>
11698
11699         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11700         a memory leak
11701
11702         * bus/dispatch.c (check_service_activated): fix bug in test
11703
11704         * dbus/dbus-mainloop.c (check_timeout): fix this up
11705
11706         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11707         verbose output so we can sort out output from different processes,
11708         e.g. in the activation case.
11709
11710 2003-04-08  Colin Walters  <walters@gnu.org>
11711
11712         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11713         the pid file.
11714         (bus_context_new): Set it.
11715         (bus_context_unref): Use it to delete the pid file.
11716
11717 2003-04-08  Havoc Pennington  <hp@redhat.com>
11718
11719         * test/data/invalid-messages/array-with-mixed-types.message:
11720         regression test that fails for the moment
11721
11722         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11723         tests for convenience
11724
11725         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11726         array of nil, it broke things.
11727
11728         * test/data/invalid-messages/array-of-nil.message: regression test
11729
11730         * test/data/valid-messages/array-of-array-of-uint32.message:
11731         happened to write this so added it to suite
11732
11733 2003-04-08  Havoc Pennington  <hp@redhat.com>
11734
11735         * bus/driver.c (bus_driver_handle_acquire_service): init
11736         retval/reply before checking name
11737
11738         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11739         recursion depth argument
11740
11741         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11742         in the public struct for future extension
11743
11744         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11745         typo
11746
11747         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11748         message
11749
11750         * doc/dbus-specification.sgml: fix typo
11751
11752 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11753
11754         Implemented recursive types, named types and new-style iters
11755
11756         * bus/driver.c:
11757         * glib/test-thread-client.c: (thread_func):
11758         * glib/test-thread-server.c: (handle_test_message):
11759         * test/test-service.c: (handle_echo):
11760         Update to new api
11761
11762         * dbus/Makefile.am:
11763         * dbus/dbus-dict.c:
11764         * dbus/dbus-dict.h:
11765         * dbus/dbus.h
11766         Remove DBusDict
11767
11768         * dbus/dbus-internals.c: (_dbus_type_to_string):
11769         Update for new types.
11770
11771         * dbus/dbus-marshal.[ch]:
11772         Implement recursive types and the new marshalling format.
11773         Remove hardcoded dict marshalling.
11774         Marshal named types.
11775
11776         * dbus/dbus-message-builder.c:
11777         Add BYTE_ARRAY.
11778         Remove references to old types
11779
11780         * dbus/dbus-message.[ch]:
11781         New non-refcounted iter API that supports recursive iters.
11782         Use iters for appending, including support for recursive
11783         iters.
11784         Add byte and named type support.
11785         Update everything to new marshalling formats.
11786         Add tests for new API.
11787
11788         * dbus/dbus-protocol.h:
11789         Remove old array types.
11790         Add types: BYTE, ARRAY, DICT, NAMED
11791
11792         * dbus/dbus-string.c:
11793         * dbus/dbus-sysdeps.c:
11794         Make parse_double locale safe.
11795
11796         * dbus/dbus-test-main.c:
11797         Call setlocale.
11798
11799         * dbus/dbus-test.c:
11800         Kill dict test
11801
11802         * doc/dbus-specification.sgml:
11803         Update spec
11804
11805         * test/data/incomplete-messages/missing-body.message:
11806         * test/data/invalid-messages/bad-boolean.message:
11807         * test/data/invalid-messages/bad-boolean-array.message:
11808         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11809         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11810         * test/data/invalid-messages/too-short-dict.message:
11811         * test/data/valid-messages/dict-simple.message:
11812         * test/data/valid-messages/dict.message:
11813         * test/data/valid-messages/emptiness.message:
11814         * test/data/valid-messages/lots-of-arguments.message:
11815         * test/data/valid-messages/no-padding.message:
11816         * test/data/valid-messages/recursive-types.message:
11817         Add missing NAME fields
11818         Fix up dicts & arrays
11819
11820         * test/data/invalid-messages/dict-with-nil-value.message:
11821         Removed, this is not invalid anymore.
11822
11823         * test/data/valid-messages/recursive-types.message:
11824         Add new test for deeply recursive types.
11825
11826 2003-04-07  Havoc Pennington  <hp@pobox.com>
11827
11828         * bus/driver.c (bus_driver_handle_acquire_service): return an
11829         error if you try to acquire a service that starts with ':'
11830
11831 2003-04-07  Havoc Pennington  <hp@redhat.com>
11832
11833         * doc/dbus-specification.sgml: require that base service names
11834         start with ':' and that the base service is created/deleted
11835         as first and last things a connection does on the bus
11836
11837         * bus/dispatch.c (check_existent_service_activation): lots more
11838         work on the activation test; it doesn't fully pass yet...
11839
11840         * test/test-service.c (main): fix so we don't memleak the
11841         connection to the message bus
11842         (filter_func): accept a message asking us to exit
11843
11844 2003-04-06  Havoc Pennington  <hp@pobox.com>
11845
11846         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11847         from Colin Walters
11848
11849         * configure.in: fixes to Qt detection from Colin Walters
11850
11851         * doc/Makefile.am: Only remove generated docbook dirs if they
11852         exist, from Colin Walters
11853
11854         * dbus/dbus-bus.c: change how we set well-known connections to
11855         NULL, so that it works if a single connection is stored in
11856         two well-known array slots.
11857
11858         * test/Makefile.am: remove a lot of stuff that isn't immediately
11859         useful, it's in CVS history if we want it.
11860
11861         * test/test-service.c: use dbus-mainloop instead of that
11862         watch.[hc] crack
11863
11864 2003-04-06  Havoc Pennington  <hp@pobox.com>
11865
11866         * dbus/Makefile.am: split lists of sources into stuff that goes in
11867         the library, util functions that go in the lib and are also used
11868         elsewhere, and util functions that are used in tests/daemon but
11869         don't go in the lib.
11870
11871         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11872         here so it can be used in test binaries also
11873
11874 2003-04-06  Havoc Pennington  <hp@pobox.com>
11875
11876         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11877         here in the parent process, so we can return an error if it
11878         fails. Also, move some of the code into the child so the parent
11879         is less hosed if we fail midway through.
11880
11881         * bus/bus.c (bus_context_new): move pidfile detection further up
11882         in the function, before we start overwriting sockets and such.
11883
11884         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11885
11886         * configure.in: add --with-system-pid-file and --with-system-socket
11887
11888 2003-04-06  Colin Walters  <walters@verbum.org>
11889
11890         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11891
11892         * bus/system.conf.in: Declare a pidfile.
11893
11894         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11895         create one (if appropriate).
11896
11897         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11898         (struct BusConfigParser) [pidfile]: New.
11899         (element_type_to_name, merge_included, start_busconfig_child)
11900         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11901         (bus_config_parser_unref): Free it.
11902         (bus_config_parser_get_pidfile): New function.
11903
11904         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11905
11906         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11907
11908         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11909
11910         * dbus/dbus-sysdeps.h: Prototype it.
11911
11912 2003-04-06  Havoc Pennington  <hp@pobox.com>
11913
11914         * bus/bus.c (bus_context_new): print the address in here, rather
11915         than in main(), because we need to do it before forking the daemon
11916
11917         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11918         on the service nonexistent error
11919
11920         * bus/driver.c (bus_driver_handle_acquire_service): set the
11921         sender on the AcquireService reply
11922
11923         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11924         server also listen on a UNIX socket so services can connect to it.
11925
11926 2003-04-06  Havoc Pennington  <hp@pobox.com>
11927
11928         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11929         so it detects deadlocks and also we actually init threads when
11930         debugging.
11931
11932 2003-04-06  Havoc Pennington  <hp@pobox.com>
11933
11934         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11935         save the domain socket name, and unlink it when we disconnect the
11936         server. Means that at least when we exit normally, we won't leave
11937         a bunch of junk in /tmp
11938
11939         * dbus/dbus-transport-unix.c
11940         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11941         memory management). (I was making a real change here but then
11942         didn't)
11943
11944 2003-04-06  Havoc Pennington  <hp@pobox.com>
11945
11946         * bus/bus.c (bus_context_new): fix wrong handling of
11947         server_data_slot_unref() in the error case.
11948
11949         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11950         "(condition) != 0" to _dbus_real_assert so that
11951         "_dbus_assert (pointer)" doesn't cause a warning
11952
11953         * bus/main.c (main): accept --print-address option to print out
11954         the message bus address
11955
11956         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11957
11958         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11959         "tmpdir" option to unix: address on client side
11960
11961         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11962         to unix: address
11963
11964         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11965         we can use to create sockets in the test suite.
11966
11967         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11968         cleanly. To be used for testing.
11969
11970         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11971
11972         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11973
11974         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11975         handle trying to call this when there's no servers active
11976
11977 2003-04-05  Havoc Pennington  <hp@pobox.com>
11978
11979         * NEWS: update
11980
11981         * configure.in: 0.8
11982
11983 2003-04-05  Havoc Pennington  <hp@pobox.com>
11984
11985         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11986         crash on startup. Need to get "try starting the daemon"
11987         in the test suite I guess. ;-)
11988
11989         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11990         tracked the number of open connections; it's better done in
11991         application-specific code as you want it to span all servers etc.
11992
11993 2003-04-05  Havoc Pennington  <hp@pobox.com>
11994
11995         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11996         patch from Colin Walters
11997
11998 2003-04-05  Havoc Pennington  <hp@pobox.com>
11999
12000         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12001         reality; in fact multiple mechanisms are allowed.
12002
12003         * dbus/dbus-internals.c (_dbus_real_assert)
12004         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12005         _dbus_assert_not_reached() into functions, so that they don't show
12006         up in basic block counts for test coverage, and don't use up as
12007         much disk space. Does mean slower execution speed though, so
12008         assumes --disable-asserts is the normal production case.
12009
12010 2003-04-05  Havoc Pennington  <hp@pobox.com>
12011
12012         * test/Makefile.am (dist-hook): also dist *.in files
12013
12014         * NEWS: update
12015
12016         * configure.in: 0.7
12017
12018 2003-04-05  Havoc Pennington  <hp@pobox.com>
12019
12020         * dbus/dbus-string.c: docs warning
12021
12022         * dbus/dbus-spawn.c: missing docs
12023
12024         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12025
12026 2003-04-05  Havoc Pennington  <hp@pobox.com>
12027
12028         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12029         magic from GLib
12030
12031         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12032         to -1 once we've reaped the babysitter
12033         (_dbus_babysitter_handle_watch): do as much work as we can, not
12034         just one go of it
12035
12036         * bus/activation.c: add code using DBusBabysitter so that we
12037         handle it when a service fails to start up properly.
12038         (bus_activation_service_created): don't remove the activation
12039         entries as we go, just let them get removed when we free the pending
12040         activation. Unref reply messages after sending them.
12041
12042 2003-04-05  Havoc Pennington  <hp@pobox.com>
12043
12044         * test/decode-gcov.c (main): print per-directory stats in the report
12045
12046         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12047
12048 2003-04-05  Havoc Pennington  <hp@pobox.com>
12049
12050         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12051
12052         * test/decode-gcov.c: hack up a little program to suck data
12053         out of gcov files. Yes this is sort of silly.
12054
12055         * configure.in: define something in config.h and do an
12056         AM_CONDITIONAL when gcov is enabled
12057
12058 2003-04-04  Havoc Pennington  <hp@redhat.com>
12059
12060         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12061         return a "babysitter" object that is used to monitor the status of
12062         the spawned process and reap it when required.
12063
12064         * test/test-segfault.c, test/test-exit.c,
12065         test/test-sleep-forever.c: binaries that do various lame things,
12066         used in the test suite.
12067
12068         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12069
12070 2003-04-03  Havoc Pennington  <hp@pobox.com>
12071
12072         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12073         in preparation for modifying it, dbus-sysdeps is getting
12074         a bit unmanageable.
12075
12076 2003-04-03  Havoc Pennington  <hp@redhat.com>
12077
12078         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12079         have multiple ones
12080
12081         * bus/*.[hc]: adapt to mainloop change
12082
12083 2003-04-03  Havoc Pennington  <hp@redhat.com>
12084
12085         * bus/activation.c (load_directory): fix up memleaks
12086         (bus_activation_entry_free): free the entry
12087
12088         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12089         we get one from the message bus; fix memleaks.
12090
12091         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12092
12093 2003-04-03  Havoc Pennington  <hp@pobox.com>
12094
12095         * bus/config-parser.c (bus_config_parser_unref): free
12096         list of mechanisms, bug discovered by test suite enhancements
12097         (putting system.conf and session.conf into suite)
12098
12099         * test/Makefile.am, test/test-service.c: add placeholder for a
12100         test service that we'll activate as part of test suite. Doesn't
12101         do anything yet.
12102
12103         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12104         setting NULL value, and use system malloc not dbus_malloc()
12105         when we have unavoidable memleakage.
12106
12107         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12108         didn't work, and support DBUS_BUS_ACTIVATION.
12109
12110         * bus/activation.c (child_setup): pass our well-known bus type to
12111         the child
12112
12113         * bus/config-parser.c: support <type> to specify well-known type
12114
12115         * doc/dbus-specification.sgml: document the env variables to
12116         locate well-known buses and find service activator
12117
12118 2003-04-02  Havoc Pennington  <hp@redhat.com>
12119
12120         * test/Makefile.am (all-local): add a rule to copy tests to
12121         builddir, so we can have generated tests. Use this to remove the
12122         silly hack for testing system.conf and session.conf. Will use this
12123         shortly to generate .service files pointing to test binaries.
12124
12125 2003-04-02  Havoc Pennington  <hp@redhat.com>
12126
12127         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12128         current alloc and needed new length, not max of the doubled
12129         allocation and needed new length. Also, when building tests,
12130         don't do the double-allocation stuff, just realloc every time.
12131
12132 2003-04-02  Havoc Pennington  <hp@redhat.com>
12133
12134         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12135         in error messages
12136         (_dbus_string_get_dirname): new
12137         (_dbus_sysdeps_test): new
12138         (_dbus_directory_open): include dirnames in error messages
12139
12140         * bus/config-parser.c: interpret <include> and <includedir> and
12141         <servicedir> relative to config file location if the given
12142         filename is not absolute.
12143
12144         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12145
12146 2003-04-02  Havoc Pennington  <hp@redhat.com>
12147
12148         * bus/connection.c (bus_transaction_send_error_reply): set sender
12149         service for the error, and unref the reply on success
12150
12151         * bus/activation.c: convert to use BusTransaction so OOM can be
12152         handled correctly
12153         (bus_activation_service_created): set sender of the message
12154
12155 2003-04-01  Havoc Pennington  <hp@redhat.com>
12156
12157         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12158         <includedir> (at least mostly)
12159
12160         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12161         first, then the user ID
12162
12163 2003-04-01  Havoc Pennington  <hp@pobox.com>
12164
12165         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12166         function
12167
12168         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12169
12170         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12171
12172         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12173         socket 0777, and unlink any existing socket.
12174
12175         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12176         the configuration file so specifies; set up auth mechanism
12177         restrictions
12178
12179         * bus/config-parser.c (bus_config_parser_content): add support
12180         for <fork> option and fill in code for <auth>
12181
12182         * bus/system.conf.in: add <fork/> to default configuration,
12183         and limit auth mechanisms to EXTERNAL
12184
12185         * doc/config-file.txt (Elements): add <fork>
12186
12187         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12188         (_dbus_change_identity): new function
12189
12190 2003-03-31  Havoc Pennington  <hp@redhat.com>
12191
12192         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12193         (_dbus_listen_unix_socket): fix off-by-one error in null
12194         termination spotted by Nalin
12195
12196 2003-03-31  Havoc Pennington  <hp@redhat.com>
12197
12198         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12199         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12200         having a real home directory available.
12201
12202 2003-03-31  Havoc Pennington  <hp@redhat.com>
12203
12204         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12205
12206         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12207
12208         * configure.in: add support for specifying a style of init script
12209         to install
12210
12211 2003-03-31  Havoc Pennington  <hp@redhat.com>
12212
12213         Fix some annoying DBusString API and fix all affected code.
12214
12215         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12216         max_length argument
12217         (_dbus_string_get_data): change to return string instead of using
12218         an out param
12219         (_dbus_string_get_const_data): ditto
12220         (_dbus_string_get_data_len): ditto
12221         (_dbus_string_get_const_data_len): ditto
12222
12223 2003-03-31  Havoc Pennington  <hp@redhat.com>
12224
12225         * bus/main.c (main): fix up the command line arguments to be nicer
12226
12227 2003-03-31  Havoc Pennington  <hp@redhat.com>
12228
12229         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12230         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12231         final location that lands in the config file
12232
12233         * bus/config-loader-expat.c (bus_config_load): fix type of
12234         XML_Parser variable
12235
12236         * doc/TODO: remove TODO item for dbus_bus_get()
12237
12238         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12239
12240 2003-03-31  Havoc Pennington  <hp@pobox.com>
12241
12242         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12243         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12244         argument since they are always client side
12245
12246         * dbus/dbus-server.c (dbus_server_get_address): new function
12247
12248         * bus/main.c (main): take the configuration file as an argument.
12249
12250         * test/data/valid-config-files/debug-allow-all.conf: new file to
12251         use with dispatch.c tests for example
12252
12253         * bus/test-main.c (main): require test data dir
12254
12255         * bus/bus.c (bus_context_new): change this to take a
12256         configuration file name as argument
12257
12258         * doc/config-file.txt (Elements): add <servicedir>
12259
12260         * bus/system.conf, bus/session.conf: new files
12261
12262         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12263         well-known socket if none set
12264
12265         * configure.in: create system.conf and session.conf
12266
12267 2003-03-30  Havoc Pennington  <hp@pobox.com>
12268
12269         * bus/config-parser.c: hacking
12270
12271         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12272         to shut down, since it could cause weirdness with the DBusList
12273         lock
12274
12275         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12276         link-oriented stack routines
12277         (alloc_link): free the mempool if the first alloc from it fails
12278
12279         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12280
12281         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12282         from GLib
12283         (_dbus_string_skip_white): new
12284
12285         * doc/config-file.txt (Elements): add <includedir>
12286
12287 2003-03-28  Havoc Pennington  <hp@pobox.com>
12288
12289         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12290         (_dbus_string_copy_data): new functions
12291
12292 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12293
12294         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12295         * dbus/dbus-bus.h:
12296         Add dbus_bus_get.
12297
12298         * dbus/dbus-memory.c:
12299         Fix a doc comment.
12300
12301 2003-03-28  Havoc Pennington  <hp@pobox.com>
12302
12303         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12304         I think it may have just been superstition. Not sure.
12305
12306         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12307         failures that were not being handled.
12308
12309         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12310
12311         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12312         row that will fail on out-of-memory.
12313
12314         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12315         function for testing out-of-memory handling.
12316
12317         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12318         allocation functions, they do map exactly to the expat ones.
12319
12320 2003-03-27  Havoc Pennington  <hp@redhat.com>
12321
12322         * bus/config-loader-libxml.c (bus_config_load): add another error
12323         check
12324
12325 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12326
12327         * doc/TODO:
12328         Add note about automatic service activation.
12329
12330         * doc/dbus-specification.sgml:
12331         Rename the specification and clarify a few things.
12332
12333 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12334
12335         * Doxyfile.in:
12336         * dbus/dbus-address.c:
12337         * dbus/dbus-dict.c:
12338         * dbus/dbus-marshal.c:
12339         * dbus/dbus-server-debug-pipe.c:
12340         * dbus/dbus-transport-unix.c:
12341         Fix documentation warnings.
12342
12343 2003-03-26  Havoc Pennington  <hp@pobox.com>
12344
12345         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12346         after every test so it's quick and easy to see which leaked, and
12347         so we test multiple dbus_shutdown() calls
12348
12349         * configure.in: change configure.in XML stuff to also support
12350         expat
12351
12352         * config-loader-libxml.c: some hacking
12353
12354         * config-loader-expat.c: some hacking
12355
12356         * config-parser.c: some hacking, plus tests
12357
12358 2003-03-25  Havoc Pennington  <hp@redhat.com>
12359
12360         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12361
12362         * configure.in: add --with-xml option to specify XML library,
12363         right now only libxml is supported.
12364
12365         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12366         nonworking code between home and work, still just stubs
12367
12368 2003-03-24  Havoc Pennington  <hp@redhat.com>
12369
12370         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12371         file
12372
12373         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12374         NULL argument for "message" if the error is a well-known one,
12375         fill in a generic message in this case.
12376
12377         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12378         favor of DBusError
12379
12380         * bus/test.c (bus_test_flush_bus): add
12381
12382         * bus/policy.c (bus_policy_test): test code stub
12383
12384 2003-03-24  Havoc Pennington  <hp@pobox.com>
12385
12386         * bus/connection.c (bus_connections_setup_connection): set up
12387         the "can this user connect" function, but it always returns
12388         TRUE until we have a config file parser so we can have a config
12389         file that allows connections.
12390
12391 2003-03-23  Havoc Pennington  <hp@pobox.com>
12392
12393         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12394         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12395         the mutex, so we can check for proper memory management
12396         and OOM handling.
12397
12398         * dbus/dbus-dataslot.c: remove the mutex from
12399         DBusDataSlotAllocator and lock it manually when using it,
12400         to simplify fitting it into the global slots framework.
12401
12402         * dbus/dbus-threads.c (init_static_locks): rework how we're
12403         handling global locks so they are easily shut down.
12404
12405         * bus/policy.c (bus_policy_append_rule): fix
12406
12407         * bus/test-main.c (main): check for memleaks
12408
12409         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12410         test suite check for memleaks
12411
12412         * dbus/dbus-memory.c: add support in test mode for tracking
12413         number of outstanding blocks
12414
12415 2003-03-23  Havoc Pennington  <hp@pobox.com>
12416
12417         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12418         policies code
12419
12420         * dbus/dbus-hash.h: add ULONG hash keys
12421
12422         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12423         (_dbus_get_group_id): new function
12424
12425 2003-03-20  Havoc Pennington  <hp@redhat.com>
12426
12427         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12428         new function
12429         (dbus_connection_get_unix_user): new function
12430
12431 2003-03-20  Havoc Pennington  <hp@pobox.com>
12432
12433         * bus/connection.c (bus_connection_send_oom_error): assert that
12434         message has a sender
12435         (connection_execute_transaction): ditto
12436         (bus_connection_preallocate_oom_error): fix to set the sender, and
12437         set recipient to the destination service, not the bus driver
12438
12439         * bus/policy.c: hacking
12440
12441         * dbus/dbus-message.c (dbus_message_service_is): new function
12442         (dbus_message_sender_is): new
12443
12444 2003-03-19  Havoc Pennington  <hp@redhat.com>
12445
12446         * bus/policy.c: start sketching code for policy restrictions on
12447         what connections can do.
12448
12449 2003-03-18  Havoc Pennington  <hp@redhat.com>
12450
12451         * doc/TODO: some notes on high-level todo items. Little nitpick
12452         stuff is all in @todo, so no need to add it here.
12453
12454         * doc/config-file.txt: some notes on how config file might look
12455
12456 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12457
12458         * configure.in: 0.6
12459
12460         * NEWS: Update.
12461
12462 2003-03-17  Havoc Pennington  <hp@redhat.com>
12463
12464         * dbus/dbus-internals.h: add gcc attributes so that
12465         our printf-style functions warn on bad arguments to
12466         format
12467
12468         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12469         format bug
12470
12471         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12472         printf format bug
12473
12474 2003-03-17  Havoc Pennington  <hp@redhat.com>
12475
12476         * bus/test-main.c (main): make it print something as it runs
12477         so make check doesn't look stuck
12478
12479         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12480         from CVS, now obsolete
12481
12482 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12483
12484         * bus/dispatch.c: (bus_dispatch):
12485         Refetch the service name since it may have been reallocated
12486         when dbus_message_set_sender was called.
12487
12488         * dbus/dbus-sysdeps.c: (_dbus_accept):
12489         Add address and address length variables and use them to stop
12490         valgrind from complaining.
12491
12492 2003-03-17  Havoc Pennington  <hp@pobox.com>
12493
12494         All tests pass, no memleaks, no valgrind complaints.
12495
12496         * bus/test.c: refcount handler_slot
12497
12498         * bus/connection.c (bus_connections_new): refcount
12499         connection_data_slot
12500
12501         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12502         bytes so that auth scripts pass.
12503
12504         * bus/dispatch.c: init message_handler_slot so it gets allocated
12505         properly
12506
12507         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12508
12509         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12510         dealloc server_pipe_hash when no longer used for benefit of
12511         leak checking
12512
12513         * dbus/dbus-auth.c (process_command): memleak fix
12514
12515         * bus/dispatch.c (check_hello_message): memleak fix
12516
12517 2003-03-16  Havoc Pennington  <hp@pobox.com>
12518
12519         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12520
12521 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12522
12523         * bus/activation.c (bus_activation_activate_service): Append
12524         the pending activation entry to the list of pending activations.
12525
12526 2003-03-16  Havoc Pennington  <hp@pobox.com>
12527
12528         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12529         connections
12530
12531         * dbus/dbus-address.c (create_entry): fix OOM handling when
12532         failing to alloc entry->method
12533
12534 2003-03-16  Havoc Pennington  <hp@pobox.com>
12535
12536         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12537         the watch
12538
12539         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12540         add some missing dbus_set_result
12541
12542         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12543         alloc the DBusMessageHandler
12544
12545         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12546         the transport here, since we call this from the finalizer; it
12547         resulted in a double-finalize.
12548
12549         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12550         where we tried to use transport->connection that was NULL,
12551         happened when transport was disconnected early on due to OOM
12552
12553         * bus/*.c: adapt to handle OOM for watches/timeouts
12554
12555         * dbus/dbus-transport-unix.c: port to handle OOM during
12556         watch handling
12557
12558         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12559         reference to unused bytes instead of a copy
12560
12561         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12562         out of memory
12563
12564         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12565         FALSE on OOM
12566
12567         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12568         of memory
12569
12570 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12571
12572         * doc/dbus-specification.sgml:
12573         Document reply message for ActivateService.
12574
12575 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12576
12577         * bus/activation.c: (bus_pending_activation_entry_free),
12578         (bus_pending_activation_free), (bus_activation_new),
12579         (bus_activation_unref), (bus_activation_service_created),
12580         (bus_activation_activate_service):
12581         * bus/activation.h:
12582         * bus/bus.c: (bus_context_new):
12583         * bus/desktop-file.c: (new_section):
12584         * bus/driver.c: (bus_driver_send_service_deleted),
12585         (bus_driver_handle_activate_service):
12586         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12587         * bus/services.h:
12588         * dbus/dbus-connection.c:
12589         (dbus_connection_send_with_reply_and_block):
12590         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12591         * dbus/dbus-protocol.h:
12592         Make activation work better. Now pending activations will be queued
12593         and the daemon won't try to activate services that are already registered.
12594
12595 2003-03-16  Havoc Pennington  <hp@pobox.com>
12596
12597         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12598         connection data
12599
12600         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12601         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12602
12603 2003-03-16  Havoc Pennington  <hp@pobox.com>
12604
12605         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12606         this. always run the test suite before commit...
12607
12608         * bus/*: adapt to DBusConnection API changes
12609
12610         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12611         requires renaming stuff to avoid dbus_connection_dispatch name
12612         conflict.
12613
12614         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12615         function
12616
12617         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12618         separate from _dbus_message_loader_return_buffer()
12619
12620         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12621         this, because it's now always broken to use; the number of
12622         messages in queue vs. the number still buffered by the message
12623         loader is undefined/meaningless. Should use
12624         dbus_connection_get_dispatch_state().
12625         (dbus_connection_dispatch): rename from
12626         dbus_connection_dispatch_message
12627
12628 2003-03-16  Havoc Pennington  <hp@pobox.com>
12629
12630         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12631         implementation
12632
12633 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12634
12635         * dbus/dbus-connection.c:
12636         (dbus_connection_send_with_reply_and_block):
12637         Decrease connection->n_incoming when removing an entry
12638         from the list.
12639         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12640         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12641         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12642         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12643         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12644         (dbus_dict_get_byte_array):
12645         Handle NULL arrays and strings. Also add support for byte arrays.
12646
12647         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12648         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12649         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12650         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12651         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12652         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12653         * dbus/dbus-marshal.h:
12654         Add support for marshalling and demarshalling empty arrays and strings.
12655
12656         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12657         (dbus_message_append_string_array),
12658         (dbus_message_iter_get_boolean),
12659         (dbus_message_iter_get_boolean_array),
12660         (dbus_message_iter_get_int32_array),
12661         (dbus_message_iter_get_uint32_array),
12662         (dbus_message_iter_get_double_array),
12663         (dbus_message_iter_get_byte_array),
12664         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12665         (check_message_handling):
12666         Add support for getting empty arrays and dicts.
12667
12668         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12669         Don't do any validation at all for now, that's better than just checking
12670         for ASCII.
12671
12672         * test/data/valid-messages/emptiness.message:
12673         New test message with lots of empty arrays.
12674
12675 2003-03-16  Havoc Pennington  <hp@pobox.com>
12676
12677         * dbus/dbus-connection.c
12678         (_dbus_connection_queue_received_message_link): new function that
12679         can't fail due to OOM
12680
12681         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12682         new function pops a message together with a list link
12683         containing it.
12684
12685         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12686         message queuing functions to avoid needing to alloc memory
12687
12688 2003-03-16  Havoc Pennington  <hp@pobox.com>
12689
12690         Oops - test code was only testing failure of around 30 of the
12691         mallocs in the test path, but it turns out there are 500+
12692         mallocs. I believe this was due to misguided linking setup such
12693         that there was one copy of dbus_malloc etc. in the daemon and one
12694         in the shared lib, and only daemon mallocs were tested. In any
12695         case, the test case now tests all 500+ mallocs, and doesn't pass
12696         yet, though there are lots of fixes in this patch.
12697
12698         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12699         this so that it doesn't need to allocate memory, since it
12700         has no way of indicating failure due to OOM (and would be
12701         annoying if it did).
12702
12703         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12704
12705         * bus/Makefile.am: rearrange to create two self-contained
12706         libraries, to avoid having libraries with overlapping symbols.
12707         that was resulting in weirdness, e.g. I'm pretty sure there
12708         were two copies of global static variables.
12709
12710         * dbus/dbus-internals.c: move the malloc debug stuff to
12711         dbus-memory.c
12712
12713         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12714         empty.
12715
12716         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12717
12718         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12719         on failure.
12720
12721         * bus/dispatch.c (bus_dispatch_add_connection): free
12722         message_handler_slot when no longer using it, so
12723         memory leak checkers are happy for the test suite.
12724
12725         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12726
12727         * bus/bus.c (new_connection_callback): disconnect in here if
12728         bus_connections_setup_connection fails.
12729
12730         * bus/connection.c (bus_connections_unref): fix to free the
12731         connections
12732         (bus_connections_setup_connection): if this fails, don't
12733         disconnect the connection, just be sure there are no side
12734         effects.
12735
12736         * dbus/dbus-string.c (undo_alignment): unbreak this
12737
12738         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12739         leaking
12740         (_dbus_auth_new): fix the order in which we free strings
12741         on OOM failure
12742
12743         * bus/connection.c (bus_connection_disconnected): fix to
12744         not send ServiceDeleted multiple times in case of memory
12745         allocation failure
12746
12747         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12748         get the base service name
12749         (dbus_bus_register_client): don't return base service name,
12750         instead store it on the DBusConnection and have an accessor
12751         function for it.
12752         (dbus_bus_register_client): rename dbus_bus_register()
12753
12754         * bus/dispatch.c (check_hello_message): verify that other
12755         connections on the bus also got the correct results, not
12756         just the one sending hello
12757
12758 2003-03-15  Havoc Pennington  <hp@pobox.com>
12759
12760         Make it pass the Hello handling test including all OOM codepaths.
12761         Now to do other messages...
12762
12763         * bus/services.c (bus_service_remove_owner): fix crash when
12764         removing owner from an empty list of owners
12765         (bus_registry_ensure): don't leave service in the list of
12766         a connection's owned services if we fail to put the service
12767         in the hash table.
12768
12769         * bus/connection.c (bus_connection_preallocate_oom_error): set
12770         error flag on the OOM error.
12771
12772         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12773         handle _dbus_transport_set_connection failure
12774
12775         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12776         to create watches up front and simply enable/disable them as
12777         needed.
12778         (unix_connection_set): this can now fail on OOM
12779
12780         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12781         of enabling/disabling a watch or timeout.
12782
12783         * bus/loop.c (bus_loop_iterate): don't touch disabled
12784         watches/timeouts
12785
12786         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12787
12788 2003-03-15  Havoc Pennington  <hp@pobox.com>
12789
12790         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12791         write useful test code, after all that futzing around ;-)
12792
12793         Test does not yet pass because we can't handle OOM in
12794         _dbus_transport_messages_pending (basically,
12795         dbus_connection_preallocate_send() does not prealloc the write
12796         watch). To fix this, I think we need to add new stuff to
12797         set_watch_functions, namely a SetEnabled function so we can alloc
12798         the watch earlier, then enable it later.
12799
12800         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12801         dbus-memory.c to the convenience lib
12802
12803         * bus/test.c: rename some static functions to keep them clearly
12804         distinct from stuff in connection.c. Handle client disconnection.
12805
12806 2003-03-14  Havoc Pennington  <hp@pobox.com>
12807
12808         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12809         transport, tests more of the real codepath. Set up clients
12810         with bus_setup_debug_client.
12811
12812         * bus/test.c (bus_setup_debug_client): function to set up debug
12813         "clients" on the main loop
12814
12815         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12816         support
12817
12818         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12819         server type
12820
12821         * dbus/dbus-server-debug.c: support a debug server based on pipes
12822
12823         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12824         (_dbus_close): new function
12825
12826         * configure.in: check for socketpair
12827
12828 2003-03-14  Havoc Pennington  <hp@redhat.com>
12829
12830         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12831         cheesy hack
12832
12833         * dbus/dbus-transport-debug.c: rework this a good bit to be
12834         less complicated. hopefully still works.
12835
12836         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12837         manually
12838
12839         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12840         after running it
12841
12842         * dbus/dbus-message.c (dbus_message_copy): rename from
12843         dbus_message_new_from_message, fix it up to copy
12844         all the message fields, add test case
12845
12846         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12847         not quite passing yet
12848
12849 2003-03-14  Havoc Pennington  <hp@pobox.com>
12850
12851         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12852         until no work remains" in test code. (the large diff here
12853         is just code movement, no actual changes)
12854
12855         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12856         1, no point waiting around for test code.
12857         (_dbus_server_debug_accept_transport): unref the timeout
12858         after adding it (right?)
12859
12860         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12861
12862 2003-03-13  Havoc Pennington  <hp@redhat.com>
12863
12864         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12865         out of memory
12866
12867         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12868         of memory
12869
12870         * dbus/dbus-connection.h: Make AddWatchFunction and
12871         AddTimeoutFunction return a bool so they can fail on out-of-memory
12872
12873         * bus/bus.c (bus_context_new): set up timeout handlers
12874
12875         * bus/connection.c (bus_connections_setup_connection): set up
12876         timeout handlers
12877
12878         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12879         can fail
12880
12881         * bus/bus.c (bus_context_new): adapt to changes
12882
12883         * bus/connection.c: adapt to changes
12884
12885         * test/watch.c: adapt to DBusWatch changes
12886
12887         * bus/dispatch.c (bus_dispatch_test): started adding this but
12888         didn't finish
12889
12890 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12891
12892         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12893
12894 2003-03-13  Havoc Pennington  <hp@pobox.com>
12895
12896         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12897         set up a test framework as for the library
12898
12899 2003-03-12  Havoc Pennington  <hp@pobox.com>
12900
12901         Throughout: purge global variables, introduce BusActivation,
12902         BusConnections, BusRegistry, etc. objects instead.
12903
12904         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12905         message bus object
12906
12907         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12908         going to redo this a bit differently I think
12909
12910 2003-03-12  Havoc Pennington  <hp@redhat.com>
12911
12912         Mega-patch that gets the message bus daemon initially handling
12913         out-of-memory. Work still needed. Also lots of random
12914         moving stuff to DBusError instead of ResultCode.
12915
12916         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12917
12918         * dbus/dbus-connection.c
12919         (dbus_connection_send_with_reply_and_block): use DBusError
12920
12921         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12922         DBusResultCode
12923
12924         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12925         code here, as the only failure possible is OOM.
12926
12927         * bus/connection.c (bus_connection_disconnect):
12928         rename bus_connection_disconnected as it's a notification only
12929
12930         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12931         "name" on get_args failure, should be done by get_args;
12932         don't disconnect client for bad args, just return an error.
12933         (bus_driver_handle_service_exists): ditto
12934
12935         * bus/services.c (bus_services_list): NULL-terminate returned array
12936
12937         * bus/driver.c (bus_driver_send_service_lost)
12938         (bus_driver_send_service_acquired): send messages from driver to a
12939         specific client to the client's unique name, not to the broadcast
12940         service.
12941
12942         * dbus/dbus-message.c (decode_header_data): reject messages that
12943         contain no name field
12944         (_dbus_message_get_client_serial): rename to
12945         dbus_message_get_serial and make public
12946         (_dbus_message_set_serial): rename from set_client_serial
12947         (_dbus_message_set_reply_serial): make public
12948         (_dbus_message_get_reply_serial): make public
12949
12950         * bus/connection.c (bus_connection_foreach): allow stopping
12951         iteration by returning FALSE from foreach function.
12952
12953         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12954         (dbus_connection_free_preallocated_send)
12955         (dbus_connection_preallocate_send): new API for sending a message
12956         without possibility of malloc failure.
12957         (dbus_connection_send_message): rename to just
12958         dbus_connection_send (and same for whole function family)
12959
12960         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12961
12962         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12963
12964         * bus/activation.c: handle/return errors
12965
12966         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12967
12968         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12969         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12970         (_dbus_result_from_errno): move to this file
12971
12972 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12973
12974         * dbus/dbus-marshal.c:
12975         (_dbus_marshal_set_string):
12976         Take a length argument so we can marshal the correct string
12977         length.
12978
12979         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12980         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12981         (_dbus_marshal_test):
12982         * dbus/dbus-marshal.h:
12983         Add support for marshalling and demarshalling dicts.
12984
12985         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12986         Add support for TYPE DICT.
12987
12988         * dbus/dbus-message.c: (set_string_field):
12989         Adjust header padding.
12990
12991         (dbus_message_append_args_valist), (dbus_message_append_dict),
12992         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12993         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12994         (check_message_handling), (check_have_valid_message):
12995         * dbus/dbus-message.h:
12996         Add functions for setting and getting dicts.
12997
12998         * dbus/dbus-protocol.h:
12999         Add DBUS_TYPE_DICT.
13000
13001         * dbus/dbus.h:
13002         Add dbus-dict.h
13003
13004         * doc/dbus-specification.sgml:
13005         Add information about how dicts are marshalled.
13006
13007         * test/data/invalid-messages/dict-with-nil-value.message:
13008         * test/data/invalid-messages/too-short-dict.message:
13009         * test/data/valid-messages/dict-simple.message:
13010         * test/data/valid-messages/dict.message:
13011         Add sample messages containing dicts.
13012
13013 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13014
13015         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13016
13017 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13018
13019         * dbus/Makefile.am:
13020         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13021         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13022         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13023         (dbus_dict_set_double), (dbus_dict_set_string),
13024         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13025         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13026         (dbus_dict_set_string_array), (_dbus_dict_test):
13027         * dbus/dbus-dict.h:
13028         Fix according to comments from Havoc.
13029
13030 2003-03-06  Michael Meeks  <michael@server.home>
13031
13032         * configure.in: if we don't have kde-config, disable have_qt.
13033
13034 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13035
13036         * dbus/Makefile.am:
13037         Add dbus-dict.[ch]
13038
13039         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13040         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13041         (dbus_dict_remove), (dbus_dict_get_value_type),
13042         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13043         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13044         (dbus_dict_put_double), (dbus_dict_put_string),
13045         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13046         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13047         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13048         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13049         (dbus_dict_get_double), (dbus_dict_get_string),
13050         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13051         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13052         (dbus_dict_get_string_array), (_dbus_dict_test):
13053         * dbus/dbus-dict.h:
13054         Add DBusDict implementation
13055
13056         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13057         * dbus/dbus-test.h:
13058         Add _dbus_dict_test
13059
13060 2003-03-04  Havoc Pennington  <hp@pobox.com>
13061
13062         * test/data/auth/*: adapt to changes
13063
13064         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13065         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13066         userid
13067
13068         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13069         more stuff from being in a context name, to make the protocol
13070         simpler to deal with
13071
13072         * dbus/dbus-errors.c (dbus_error_has_name): new function
13073         (dbus_error_is_set): new function
13074
13075         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13076         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13077
13078         * dbus/dbus-connection.c (dbus_connection_flush): also read
13079         messages during a flush operation
13080
13081         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13082
13083 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13084
13085         * configure.in: Check for gethostbyname on Solaris.
13086
13087         * dbus/dbus-transport.c: (_dbus_transport_open):
13088         Remove duplicate "tcp" entry.
13089
13090         * doc/dbus-specification.sgml:
13091         Clarify some things.
13092
13093 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13094
13095         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13096         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13097         (_dbus_keyring_test):
13098         * dbus/dbus-md5.c: (_dbus_md5_compute):
13099         * dbus/dbus-sha.c: (_dbus_sha_compute):
13100         Plug memory leaks.
13101
13102 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13103
13104         * README: Add some things.
13105
13106 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13107
13108         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13109         after case DBUS_TYPE_BOOELAN.
13110
13111 2003-03-02  Havoc Pennington  <hp@pobox.com>
13112
13113         * test/break-loader.c (randomly_set_extreme_ints): add test that
13114         sets really huge and small integers
13115
13116         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13117         that length of boolean array fits in the string, and that
13118         string has room for boolean value in single-bool case.
13119
13120         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13121         optional value to "ALIGN" command which is what to fill the
13122         alignment with.
13123
13124         * test/data/valid-messages/no-padding.message: add regression
13125         test for the message padding problem
13126
13127 2003-03-02  Havoc Pennington  <hp@pobox.com>
13128
13129         * dbus/dbus-message.c (decode_header_data): fix to always init
13130         message_padding, from Benjamin Dauvergne
13131
13132 2003-03-02  Havoc Pennington  <hp@pobox.com>
13133
13134         * configure.in: 0.5
13135
13136         * NEWS: Update.
13137
13138 2003-03-01  Joe Shaw  <joe@assbarn.com>
13139
13140         * configure.in: Check for "struct cmsgcred" and try to access its
13141         members for BSD-like unices.
13142
13143         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13144         _dbus_read_credentials_unix_socket().
13145         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13146         read() for reading the credential byte off the unix socket.  Use
13147         struct cmsgcred on systems that support it.
13148
13149 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13150
13151         * glib/Makefile.am:
13152         * configure.in:
13153         Make gthreads-2.0 dependency optional. Don't build thread test if
13154         its not found.
13155
13156 2003-02-27  Havoc Pennington  <hp@pobox.com>
13157
13158         * dbus/dbus-connection.c
13159         (dbus_connection_send_message_with_reply_and_block): fix doh!
13160         doh! doh! bug that resulted in never removing a reply from the
13161         queue, no wonder we called get_reply_serial so much ;-)
13162
13163         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13164         and client serial instead of demarshaling them every time
13165
13166 2003-02-27  Havoc Pennington  <hp@pobox.com>
13167
13168         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13169         more inlined, using dbus-string-private.h, speeds things up
13170         substantially
13171
13172         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13173         when freeing the string
13174         (_dbus_string_steal_data): fix for align offset
13175         (undo_alignment): new function
13176
13177 2003-02-26  Havoc Pennington  <hp@redhat.com>
13178
13179         All kinds of audit fixes from Owen, plus initial attempt to
13180         handle unaligned memory returned from malloc.
13181
13182         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13183         leave room for align_offset and nul byte
13184         (fixup_alignment): function to track an align_offset and
13185         ensure real->str is aligned
13186         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13187         to allow a nul byte plus align offset
13188         (_dbus_string_lock): fix overflow issue
13189         (_dbus_string_init_const_len): add assertions on sanity of len,
13190         assign allocated to be ALLOCATION_PADDING larger than len
13191         (set_length): fixup the overflow handling
13192         (_dbus_string_get_data_len): fix overflow in assertion
13193         (open_gap): detect overflow in size of gap to be opened
13194         (_dbus_string_lengthen): add overflow check
13195         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13196         (_dbus_string_append): add overflow check
13197         (_dbus_string_append_unichar): overflow
13198         (_dbus_string_delete): fix overflow in assertion
13199         (_dbus_string_copy_len): overflow in assertion
13200         (_dbus_string_replace_len): overflows in assertions
13201         (_dbus_string_find): change to implement in terms of
13202         _dbus_string_find_to
13203         (_dbus_string_find_to): assorted fixage
13204         (_dbus_string_equal_c_str): assert c_str != NULL,
13205         fix logic so the function works
13206         (_dbus_string_ends_with_c_str): fix overflow thingy
13207         (_dbus_string_base64_encode): overflow fix
13208         (_dbus_string_validate_ascii): overflow
13209         (_dbus_string_validate_nul): overflow
13210
13211 2003-02-26  Havoc Pennington  <hp@redhat.com>
13212
13213         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13214
13215 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13216
13217         * configure.in:
13218         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13219
13220         * dbus/dbus-connection.c:
13221         * dbus/dbus-connection.h:
13222         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13223         Add dbus_connection_set_wakeup_main_function and use it when queueing
13224         incoming and outgoing messages.
13225
13226
13227         * dbus/dbus-dataslot.c:
13228         Threadsafe usage of DBusDataSlotAllocator
13229
13230         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13231         dbus_new can fail.
13232
13233         * dbus/dbus-server-unix.c:
13234         Add todo comment
13235
13236         * glib/dbus-gmain.c:
13237         Implement the new wakeup functions for glib.
13238
13239         * glib/Makefile.am:
13240         * glib/test-thread-client.c:
13241         * glib/test-thread-server.c:
13242         * glib/test-thread.h:
13243         Initial cut at some thread test code. Not really done yet.
13244
13245 2003-02-26  Havoc Pennington  <hp@pobox.com>
13246
13247         * dbus/dbus-connection.c
13248         (dbus_connection_send_message_with_reply_and_block): fix crash
13249         where we ref'd the outgoing message instead of the returned reply
13250
13251         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13252         at the end of this function, so if we didn't need to read for
13253         authentication, we reinstall it for receiving messages
13254
13255         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13256         a NULL sender for peer-to-peer case
13257
13258         * dbus/dbus-transport-unix.c (check_read_watch): handle
13259         !authenticated case correctly
13260
13261         * glib/dbus-gmain.c: add support for DBusServer
13262
13263         * dbus/dbus-server.c: add data slot support
13264
13265         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13266         return values and handle errors
13267
13268         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13269         DBusConnection
13270
13271         * Doxyfile.in (INPUT): add glib subdir
13272
13273         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13274         setup_with_g_main instead of hookup_with_g_main; write docs
13275
13276 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13277
13278         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13279         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13280         * dbus/dbus-message.c: (dbus_message_append_boolean),
13281         (dbus_message_append_boolean_array),
13282         (dbus_message_get_args_valist), (_dbus_message_test):
13283         * dbus/dbus-message.h:
13284         * doc/dbus-specification.sgml:
13285         Various fixes as pointed out by Havoc.
13286
13287         * test/data/invalid-messages/bad-boolean-array.message:
13288         * test/data/invalid-messages/bad-boolean.message:
13289         Add invalid boolean value test cases.
13290
13291 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13292
13293         * dbus/dbus-internals.c: (_dbus_type_to_string):
13294         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13295         (_dbus_marshal_validate_arg):
13296         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13297         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13298         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13299         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13300         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13301         (dbus_message_iter_get_double),
13302         (dbus_message_iter_get_boolean_array), (message_iter_test):
13303         * dbus/dbus-message.h:
13304         * dbus/dbus-protocol.h:
13305         * doc/dbus-specification.sgml:
13306         * test/data/valid-messages/lots-of-arguments.message:
13307         Add support for boolean and boolean array types.
13308
13309 2003-02-23  Havoc Pennington  <hp@pobox.com>
13310
13311         * dbus/dbus-keyring.c: finish most of this implementation and
13312         simple unit test
13313
13314         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13315         these barf if the error isn't cleared to NULL
13316
13317         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13318         (_dbus_create_directory): new function
13319
13320         * dbus/dbus-errors.c (dbus_set_error): fix warning
13321
13322         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13323         (_dbus_string_hex_decode): new function
13324         (test_hex_roundtrip): test code
13325
13326         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13327
13328         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13329
13330         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13331         the save-to-temp/rename trick to atomically write the new file
13332         (_dbus_string_parse_uint): new function
13333
13334 2003-02-22  Havoc Pennington  <hp@pobox.com>
13335
13336         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13337
13338 2003-02-22  Havoc Pennington  <hp@pobox.com>
13339
13340         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13341         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13342
13343         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13344
13345         * dbus/test/data/sha-1: add US government test suite for SHA-1
13346
13347 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13348
13349         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13350         Make string arrays NULL-terminated.
13351
13352         * dbus/dbus-memory.c: (dbus_free_string_array):
13353         * dbus/dbus-memory.h:
13354         New function for freeing NULL-terminated string arrays.
13355
13356         * dbus/dbus-message-builder.c: (append_quoted_string),
13357         (_dbus_message_data_load):
13358         Add support for array types.
13359
13360         * dbus/dbus-message.c: (check_message_handling):
13361         Add more types as test cases.
13362
13363         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13364         (_dbus_string_parse_double):
13365         Add the start offset to the end offset.
13366
13367         * test/data/valid-messages/lots-of-arguments.message:
13368         New test message with lots of arguments.
13369
13370 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13371
13372         * dbus/dbus-message.c: (dbus_message_append_nil),
13373         (dbus_message_append_int32), (dbus_message_append_uint32),
13374         (dbus_message_append_double), (dbus_message_append_string),
13375         (dbus_message_append_int32_array),
13376         (dbus_message_append_uint32_array),
13377         (dbus_message_append_double_array),
13378         (dbus_message_append_byte_array),
13379         (dbus_message_append_string_array):
13380         Fix all out-of-memory handling in these functions.
13381
13382 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13383
13384         * dbus/dbus-message.c: (dbus_message_append_nil):
13385         Fix a silly.
13386
13387 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13388
13389         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13390         (dbus_message_append_nil), (dbus_message_append_int32_array),
13391         (dbus_message_append_uint32_array),
13392         (dbus_message_append_double_array),
13393         (dbus_message_append_byte_array),
13394         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13395         (dbus_message_iter_get_int32_array),
13396         (dbus_message_iter_get_uint32_array),
13397         (dbus_message_iter_get_double_array),
13398         (dbus_message_iter_get_byte_array),
13399         (dbus_message_iter_get_string_array):
13400
13401         * dbus/dbus-message.h:
13402         Add functions for appending and getting arrays.
13403
13404 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13405
13406         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13407         element size at least 8 bytes, fixes mempool tests on
13408         64-bit machines.
13409
13410 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13411
13412         * dbus/dbus-transport-unix.c (unix_do_iteration):
13413         Unlock the connection mutex during a blocking select call.
13414         Add todo about how we need a way to wake up the select.
13415
13416         * dbus/dbus-connection-internal.h:
13417         * dbus/dbus-connection.c:
13418         Add _dbus_connection_lock and _dbus_connection_unlock.
13419
13420 2003-02-19  Havoc Pennington  <hp@pobox.com>
13421
13422         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13423         Doxyfile.in, not Doxyfile
13424
13425         * dbus/dbus-keyring.c: do some hacking on this
13426
13427         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13428
13429         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13430         dbus_error_init
13431         (dbus_set_error): remove dbus_error_init, check for message ==
13432         NULL *before* we sprintf into it, and add @todo about including
13433         system headers in this file
13434
13435         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13436
13437         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13438
13439         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13440         get various bits of user information based on either username
13441         or user ID
13442         (_dbus_homedir_from_username): new function
13443
13444 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13445
13446         * configure.in:
13447         Add check for nonposix getpwnam_r
13448
13449         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13450         Align the pool element size to a sizeof (void *) boundary.
13451
13452         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13453         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13454         General Solaris fixes.
13455
13456         * test/data/valid-messages/simplest-manual.message:
13457         Explicitly state that we want little-endian packing.
13458
13459 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13460
13461         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13462
13463         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13464         Added to create a transport connecting using a tcp/ip socket.
13465
13466         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13467         to a tcp socket at given host and port.
13468         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13469         hostname and port.
13470
13471         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13472
13473         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13474         Added to create a server listening on a TCP/IP socket.
13475
13476 2003-02-19  Havoc Pennington  <hp@pobox.com>
13477
13478         Throughout: mop up all the Doxygen warnings and undocumented
13479         stuff.
13480
13481         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13482         to search any paths.
13483
13484         * dbus/dbus-threads.c: move global mutex initializers to
13485         dbus-internals.h, multiple prototypes was confusing doxygen
13486         besides being kind of ugly
13487
13488         * Doxyfile (PREDEFINED): have Doxygen define
13489         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13490         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13491         (do not abuse the feature! it's for stuff like the autogenerated
13492         macros in dbus-md5.c, not just for things you don't feel like
13493         documenting...)
13494
13495 2003-02-18  Havoc Pennington  <hp@pobox.com>
13496
13497         * dbus/dbus-string.c (_dbus_string_zero): new function
13498
13499         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13500         wrap it in some dbus-friendly API
13501
13502         * dbus/dbus-types.h: add 16-bit types
13503
13504 2003-02-18  Joe Shaw  <joe@assbarn.com>
13505
13506         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13507         credentials from our currently running process.
13508         (get_word): Fix a buglet where we were copying the entire length
13509         instead of relative to our position.
13510
13511         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13512         keys on the stack... it's 640k of data.
13513
13514         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13515         read the credentials byte off the socket, even if we don't have
13516         SO_PEERCRED.
13517         (_dbus_poll): Implement poll() using select() for systems which
13518         don't have it.
13519
13520         * glib/test-dbus-glib.c (main): Print out an error if no
13521         parameters are given.
13522
13523         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13524         can fallback to a secondary auth mechanism if the first fails.
13525
13526 2003-02-18  Havoc Pennington  <hp@pobox.com>
13527
13528         * AUTHORS: add Alex
13529
13530 2003-02-17  Havoc Pennington  <hp@pobox.com>
13531
13532         * doc/dbus-specification.sgml: lots of cosmetic
13533         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13534         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13535         s/server/bus/ (except in authentication section). Add a section
13536         "Message Bus Message Routing"
13537
13538 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13539
13540         Release 0.4
13541
13542         * NEWS: Update
13543
13544 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13545
13546         * doc/dbus-specification.sgml:
13547         Specification updates.
13548
13549 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13550
13551         * bus/activation.c: (bus_activation_init), (child_setup),
13552         (bus_activation_activate_service):
13553         * bus/activation.h:
13554         * bus/main.c: (main):
13555         Set DBUS_ADDRESS environment variable.
13556
13557         * dbus/dbus-errors.c: (dbus_set_error):
13558         Don't use va_copy since that's a C99 feature.
13559
13560         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13561         (_dbus_spawn_async):
13562         * dbus/dbus-sysdeps.h:
13563         Add child_setup_func to _dbus_spawn_async.
13564
13565         * doc/dbus-specification.sgml:
13566         Update specification.
13567
13568         * test/spawn-test.c: (setup_func), (main):
13569         Fix test.
13570
13571 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13572
13573         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13574         Added todo.
13575
13576 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13577
13578         * doc/.cvsignore:
13579         * doc/Makefile.am:
13580         * doc/dbus-test-plan.sgml:
13581         Add test plan document.
13582
13583         * test/Makefile.am:
13584         Fix distcheck.
13585
13586 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13587
13588         * dbus/dbus-message.c: (decode_header_data),
13589         (_dbus_message_loader_return_buffer):
13590         Set the header padding amount when loading a message.
13591
13592 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13593
13594         * bus/dispatch.c: (send_one_message):
13595         Only send broadcast messages to registered connections.
13596
13597         * dbus/dbus-message.c: (dbus_message_name_is):
13598         * dbus/dbus-message.h:
13599         New convenience function.
13600
13601         * dbus/dbus-transport-debug.c: (do_reading):
13602         Only dispatch one message per run.
13603
13604         * test/Makefile.am:
13605         * test/bus-test.c: (new_connection_callback), (die),
13606         (test_hello_client1_handler), (test_hello_client2_handler),
13607         (test_hello_replies), (main):
13608
13609         * test/bus-test-loop.[ch]:
13610         Add these.
13611
13612 2003-02-16  Havoc Pennington  <hp@pobox.com>
13613
13614         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13615         backward conditional
13616
13617 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13618
13619         * dbus/dbus-connection.c:
13620         Implement sent_message_with_reply. (with_reply_and block is still
13621         busted).
13622         Made dispatch_message not lose message if OOM.
13623
13624         * dbus/dbus-errors.h:
13625         Add NoReply error (for reply timeouts).
13626
13627 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13628
13629         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13630         Actually free keys and values when destroying hashtable.
13631
13632 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13633
13634         * dbus/dbus-auth.c: (client_try_next_mechanism):
13635         Plug a leak.
13636
13637         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13638         Return TRUE if there's no thread implementation around.
13639
13640         * glib/dbus-gmain.c: (free_source),
13641         (dbus_connection_hookup_with_g_main):
13642         Make sure to remove the GSource when the connection is finalized.
13643
13644 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13645
13646         * bus/dispatch.c: (bus_dispatch_message_handler):
13647         * dbus/dbus-errors.h:
13648         Return an error if someone tries to send a message to a service
13649         that doesn't exist.
13650
13651 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13652
13653         * bus/activation.c: (load_directory), (bus_activation_init),
13654         (bus_activation_activate_service):
13655         * bus/activation.h:
13656         * bus/driver.c:
13657         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13658         More work on the activation handling.
13659
13660         * dbus/dbus-errors.h:
13661         Add some error messages
13662
13663         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13664         * dbus/dbus-message.h:
13665         New function that creates an error message.
13666
13667         * dbus/dbus-protocol.h:
13668         Add ACTIVATE_SERVER message.
13669
13670         * dbus/dbus-server-unix.c: (unix_handle_watch),
13671         (_dbus_server_new_for_domain_socket):
13672         Call _dbus_fd_set_close_on_exec.
13673
13674         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13675         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13676         (_dbus_fd_set_close_on_exec):
13677         * dbus/dbus-sysdeps.h:
13678         Add _dbus_fd_set_close_on exec function. Also add function that checks
13679         that all open fds are set to close-on-exec and warns otherwise.
13680
13681         * dbus/dbus-transport-unix.c:
13682         (_dbus_transport_new_for_domain_socket):
13683         Call _dbus_fd_set_close_on_exec.
13684
13685 2003-02-16  Havoc Pennington  <hp@pobox.com>
13686
13687         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13688         allow people to avoid setting SIGPIPE to SIG_IGN
13689         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13690         we've been asked not to
13691
13692 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13693
13694         * dbus/dbus-list.c: (_dbus_list_append_link),
13695         (_dbus_list_prepend_link):
13696         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13697         (dbus_realloc):
13698         Warning fixes.
13699
13700 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13701
13702         * bus/Makefile.am:
13703         * bus/activation.c: (bus_activation_entry_free),
13704         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13705         * bus/activation.h:
13706         * bus/main.c: (main):
13707         Add simple activation support, doesn't work yet though.
13708
13709 2003-02-15   Zack Rusin  <zack@kde.org>
13710
13711         * qt/dbus-qthread.cpp:  small casting fix
13712
13713 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13714
13715         * dbus/dbus-errors.c: (dbus_set_error):
13716         * dbus/dbus-errors.h:
13717         Add a few errors and make dbus_set_error void.
13718
13719         * dbus/dbus-sysdeps.c:
13720         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13721         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13722         * dbus/dbus-sysdeps.h:
13723         Add _dbus_spawn_async.
13724
13725         * test/spawn-test.c: (main):
13726         Test for _dbus_spawn_async.
13727
13728 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13729
13730         * dbus/dbus-internals.h:
13731         Fix build without tests.
13732
13733         * dbus/dbus-list.c: (alloc_link):
13734         Fix a segfault when a malloc fails.
13735
13736         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13737         (dbus_malloc0), (dbus_realloc):
13738         Add support for malloc debugging.
13739
13740 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13741
13742         * dbus/dbus-threads.c:
13743         * dbus/dbus-threads.h:
13744         Add condvars. Remove static mutext from API.
13745         Implement static mutexes by initializing them from threads_init.
13746
13747         * glib/dbus-gthread.c:
13748         * qt/dbus-qthread.cpp:
13749         Update with the thread api changes.
13750
13751
13752         * dbus/dbus-list.c:
13753         * dbus/dbus-list.h:
13754         Turn StaticMutex into normal mutex + init function.
13755         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13756         _dbus_list_append_link, _dbus_list_prepend_link
13757
13758
13759         * dbus/dbus-sysdeps.c:
13760         * dbus/dbus-sysdeps.h:
13761         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13762         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13763
13764         * dbus/dbus-protocol.h:
13765         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13766
13767         * dbus/dbus-message.c:
13768         Make ref/unref atomic.
13769         Fix some docs.
13770
13771         * dbus/dbus-connection-internal.h:
13772         * dbus/dbus-connection.c:
13773         * dbus/dbus-connection.h:
13774         Make threadsafe.
13775         Change _peek to _borrow,_return & _steal_borrowed.
13776         Change disconnect callback to event.
13777         Make dbus_connection_dispatch_messages reentrant.
13778
13779         * dbus/dbus-transport.c:
13780         Don't ref the connection on calls to the transport
13781         implementation.
13782
13783         * dbus/dbus-message-handler.c:
13784         Make threadsafe.
13785
13786         * glib/dbus-gmain.c:
13787         Don't use peek_message anymore
13788
13789         * test/Makefile.am:
13790         * test/debug-thread.c:
13791         * test/debug-thread.h:
13792         Simple thread implementation that asserts() on deadlocks in
13793         single-threaded code.
13794
13795         * test/bus-test.c:
13796         (main) Call debug_threads_init.
13797
13798         * test/watch.c:
13799         Use disconnect message instead of disconnect callback.
13800
13801         * bus/connection.c:
13802         * bus/connection.h:
13803         Don't call dbus_connection_set_disconnect_function. Instead export
13804         bus_connection_disconnect.
13805
13806         * bus/dispatch.c:
13807         Call bus_connection_disconnect when we get a disconnected message.
13808
13809 2003-02-15  Havoc Pennington  <hp@pobox.com>
13810
13811         * dbus/dbus-message.c (dbus_message_new): fool around with the
13812         docs
13813
13814 2003-02-14  Havoc Pennington  <hp@pobox.com>
13815
13816         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13817
13818         * dbus/dbus-memory.c: fail if the debug functions indicate we
13819         should
13820
13821         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13822         (_dbus_decrement_fail_alloc_counter): debug functions to
13823         simulate memory allocation failures
13824
13825 2003-02-14  Havoc Pennington  <hp@pobox.com>
13826
13827         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13828         to DBusError
13829
13830 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13831
13832         * bus/driver.c: (bus_driver_handle_hello):
13833         * bus/driver.h:
13834         * bus/services.c: (bus_service_lookup):
13835         Reorder message sending so we get a more sane order.
13836
13837         * test/bus-test.c: (message_handler):
13838         Fix tyop.
13839
13840 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13841
13842         * bus/driver.c: (bus_driver_send_service_deleted),
13843         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13844         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13845         (bus_driver_send_welcome_message),
13846         (bus_driver_handle_list_services),
13847         (bus_driver_handle_acquire_service),
13848         (bus_driver_handle_service_exists):
13849         * dbus/dbus-bus.c: (dbus_bus_register_client),
13850         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13851         * dbus/dbus-errors.c: (dbus_result_to_string):
13852         * dbus/dbus-errors.h:
13853         * dbus/dbus-message.c: (dbus_message_append_args),
13854         (dbus_message_append_args_valist), (dbus_message_get_args),
13855         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13856         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13857         (dbus_message_iter_get_byte_array),
13858         (dbus_message_iter_get_string_array), (message_iter_test),
13859         (check_message_handling), (_dbus_message_test):
13860         * dbus/dbus-message.h:
13861         * test/bus-test.c: (main):
13862         Change fields to arguments in messages, so that they won't be
13863         confused with header fields.
13864
13865         * glib/test-dbus-glib.c: (main):
13866         Remove append_fields from hello message.
13867
13868 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13869
13870         * dbus/dbus-errors.c:
13871         * dbus/dbus-message.c:
13872         * dbus/dbus-string.c:
13873         Documentation fixes.
13874
13875 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13876
13877         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13878         (remove_timeout):
13879         Implement support for timeouts in dbus-glib.
13880
13881 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13882
13883         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13884         * dbus/dbus-message.c: (process_test_subdir):
13885         * test/break-loader.c: (find_breaks_based_on):
13886         Plug some memory leaks.
13887
13888 2003-02-13  Richard Hult  <rhult@codefactory.se>
13889
13890         * bus/main.c: Fix build.
13891
13892         * dbus/dbus-errors.h:
13893         * dbus/dbus-errors.c: Fix copyright for Anders.
13894
13895 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13896
13897         * bus/Makefile.am:
13898         Add utils.[ch]
13899
13900         * bus/connection.c: (bus_connection_foreach):
13901         Fix a warning.
13902
13903         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13904         (unescape_string), (new_section), (parse_section_start),
13905         (parse_key_value), (report_error), (bus_desktop_file_load),
13906         (bus_desktop_file_get_string):
13907         * bus/desktop-file.h:
13908         Use DBusError for error reporting.
13909
13910         * bus/dispatch.c: (send_one_message),
13911         (bus_dispatch_message_handler):
13912         * bus/driver.c: (bus_driver_send_service_deleted),
13913         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13914         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13915         (bus_driver_send_welcome_message),
13916         (bus_driver_handle_list_services),
13917         (bus_driver_handle_acquire_service),
13918         (bus_driver_handle_service_exists):
13919         * bus/loop.c: (bus_loop_run):
13920         * bus/main.c:
13921         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13922
13923         * bus/utils.c: (bus_wait_for_memory):
13924         * bus/utils.h:
13925         New files with general utility functions.
13926
13927         * dbus/dbus-internals.h:
13928         Remove _DBUS_HANDLE_OOM.
13929
13930 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13931
13932         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13933         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13934         * dbus/dbus-errors.h:
13935         Add DBusError structure.
13936
13937 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13938
13939         * test/data/valid-messages/standard-acquire-service.message:
13940         * test/data/valid-messages/standard-hello.message:
13941         * test/data/valid-messages/standard-list-services.message:
13942         * test/data/valid-messages/standard-service-exists.message:
13943         Add some standard messages.
13944
13945 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13946
13947         * bus/driver.c: (bus_driver_send_welcome_message),
13948         (bus_driver_handle_list_services),
13949         (bus_driver_handle_acquire_service),
13950         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13951         Update for API changes in libdbus.
13952
13953         * dbus/dbus-message.c: (dbus_message_new_reply):
13954         * dbus/dbus-message.h:
13955         Remove the name argument. The spec states that replies shouldn't
13956         have a name.
13957
13958 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13959
13960         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13961         (report_error), (bus_desktop_file_load), (lookup_section),
13962         (lookup_line), (bus_desktop_file_get_raw),
13963         (bus_desktop_file_get_string):
13964         * bus/desktop-file.h:
13965         Some fixes, and new functions for getting a key value from a section.
13966
13967 2003-02-13  Havoc Pennington  <hp@pobox.com>
13968
13969         * test/data/auth/fail-after-n-attempts.auth-script: new test
13970
13971         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13972         reject the client.
13973
13974 2003-02-13  Havoc Pennington  <hp@pobox.com>
13975
13976         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13977         dbus_credentials_match were backward
13978
13979         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13980         NO_CREDENTIALS and ROOT_CREDENTIALS
13981
13982         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13983         into here. Never process more commands after we've reached an
13984         end state; store further data as unused bytes.
13985
13986         * test/data/auth/*: add more auth tests
13987
13988         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13989         command to match exact string and EXPECT_UNUSED to match unused
13990         bytes
13991
13992         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13993
13994 2003-02-12  Havoc Pennington  <hp@pobox.com>
13995
13996         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13997         \r off of popped lines
13998
13999         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14000         scripts
14001
14002         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14003         SEND, append \r\n
14004
14005 2003-02-12  Havoc Pennington  <hp@pobox.com>
14006
14007         * dbus/Makefile.am: remove break-loader from the build, since it
14008         moved.
14009
14010         * configure.in: add --enable-gcov to turn on coverage profiling
14011         flags and disable optimization
14012
14013 2003-02-10  Havoc Pennington  <hp@pobox.com>
14014
14015         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14016         initial cut at test framework for DBusAuth from laptop.
14017         Doesn't quite work yet but it compiles and I need to get
14018         it off the 266mhz laptop. ;-)
14019
14020         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14021         fix a memleak in error case
14022
14023 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14024
14025         * bus/Makefile.am:
14026         * bus/desktop-file.c:
14027         * bus/desktop-file.h:
14028         Add a desktop file parser.
14029
14030 2003-02-11  Zack Rusin  <zack@kde.org>
14031
14032         * qt/message.[h|cpp]: sample implementation
14033         of the KDE wrapper for DBusMessage
14034
14035 2003-02-09  Zack Rusin  <zack@kde.org>
14036
14037         * test/bus-test.c: make_it_compile
14038         * doc/dbus-specification.sgml: minimal semantic fix
14039
14040 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14041
14042         Release 0.3
14043
14044         * NEWS: Update
14045
14046 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14047
14048         * dbus/Makefile.am:
14049         * dbus/dbus-break-loader.c:
14050         * test/Makefile.am:
14051         * test/break-loader.c:
14052         Move dbus-break-loader to test/ and rename it to break-loader.
14053
14054 2003-02-02  Havoc Pennington  <hp@pobox.com>
14055
14056         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14057         for code to manage cookies in your home directory
14058
14059         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14060
14061         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14062         to authenticate, then disconnect the client.
14063
14064 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14065
14066         * dbus/dbus-message.c (dbus_message_append_fields):
14067         Correct docs.
14068
14069 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14070
14071         * doc/dbus-specification.sgml:
14072         Update address format section.
14073
14074 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14075
14076         * test/Makefile.am:
14077         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14078         (message_handler), (new_connection_callback), (loop_quit),
14079         (loop_run), (main):
14080         Add bus test.
14081
14082 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14083
14084         * bus/driver.c: (bus_driver_handle_service_exists):
14085         Simplify the code a bit.
14086
14087         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14088         Fix a silly.
14089
14090 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14091
14092         * bus/Makefile.am:
14093         Add libdbus-daemon.la and link to it.
14094
14095 2003-02-01  James Willcox  <jwillcox@gnome.org>
14096
14097         * bus/driver.c: (bus_driver_handle_own_service):
14098         Actually include the service reply code in the message.
14099
14100 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14101
14102         * bus/driver.c: (bus_driver_handle_service_exists):
14103         Don't unref the incoming message.
14104
14105 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14106
14107         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14108
14109 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14110
14111         * dbus/dbus-server.c: (dbus_server_listen):
14112         * dbus/dbus-transport.c: (_dbus_transport_open):
14113         ifdef out the calls to the debug transport and server.
14114
14115 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14116
14117         * dbus/dbus-watch.c (dbus_watch_get_flags):
14118         Add note in the docs that ERROR or HANGUP won't be returned
14119         and are assumed always on.
14120
14121         * glib/dbus-gmain.c (add_watch):
14122         Always add IO_ERR | IO_HUP
14123
14124         * dbus/dbus-message.h:
14125         Add semicolon after dbus_message_iter_get_string_array().
14126         Makes qt code build again
14127
14128 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14129
14130         * bus/driver.c: (create_unique_client_name),
14131         (bus_driver_handle_hello):
14132         Don't take a name, just use a numeric id to identify
14133         each client.
14134
14135         * dbus/Makefile.am:
14136         * dbus/dbus-bus.c: (dbus_bus_register_client),
14137         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14138         * dbus/dbus-bus.h:
14139         Add new convenience functions for communicating with the bus.
14140
14141         * dbus/dbus-message.h:
14142
14143         * dbus/dbus-protocol.h:
14144         Fix a typo.
14145
14146 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14147
14148         * dbus/dbus-message.c (dbus_message_append_fields):
14149         Add some more doc comments.
14150
14151 2003-02-01  Havoc Pennington  <hp@pobox.com>
14152
14153         * dbus/dbus-break-loader.c (randomly_modify_length): change
14154         a 4-byte value in the message as if it were a length
14155
14156         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14157         execute bit on saved files
14158
14159 2003-02-01  Havoc Pennington  <hp@pobox.com>
14160
14161         * dbus/dbus-break-loader.c (main): new program to find messages
14162         that break the loader.
14163
14164         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14165         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14166
14167         * dbus/dbus-string.c (_dbus_string_set_byte): new
14168
14169 2003-01-31  Havoc Pennington  <hp@pobox.com>
14170
14171         * dbus/dbus-message.c: refactor the test code to be more general,
14172         in preparation for writing a "randomly permute test cases to
14173         try to break the loader" program.
14174
14175 2003-01-31  Havoc Pennington  <hp@pobox.com>
14176
14177         * doc/dbus-specification.sgml: work on the specification
14178
14179         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14180         the protocol version of the message.
14181
14182         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14183         no longer specifies that.
14184         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14185         1/2/3/4)
14186
14187         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14188         "break" for DBUS_TYPE_NIL, remove @todo
14189
14190 2003-01-31  Havoc Pennington  <hp@pobox.com>
14191
14192         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14193         just set_is_error/get_is_error as this is a commonly-used
14194         function, and write docs.
14195
14196 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14197
14198         * dbus/dbus-address.c: (dbus_address_entry_free):
14199         Free key and value lists.
14200
14201         * dbus/dbus-internals.c: (_dbus_type_to_string):
14202         Add the types we didn't have.
14203
14204         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14205         (_dbus_marshal_validate_arg):
14206         Add NIL types.
14207
14208         * dbus/dbus-message.c: (dbus_message_set_sender):
14209         Remove todo about being able to set sender to NULL.
14210
14211         (dbus_message_set_is_error_reply),
14212         (dbus_message_get_is_error_reply):
14213         * dbus/dbus-message.h:
14214         New functions.
14215
14216         * dbus/dbus-protocol.h:
14217         Add error reply flag.
14218
14219         * test/data/valid-messages/opposite-endian.message:
14220         Add NIL type to test.
14221
14222 2003-01-31  Havoc Pennington  <hp@pobox.com>
14223
14224         * doc/dbus-specification.sgml: fully specify the header.  Add
14225         flags and major protocol version, and change header/body len to
14226         unsigned.
14227
14228         * dbus/dbus-message-builder.c (append_saved_length): append length
14229         as uint32
14230
14231         * dbus/dbus-message.c (dbus_message_create_header): change header
14232         length and body length to unsigned. Add the new fields from the
14233         spec
14234         (_dbus_message_loader_return_buffer): unsigned header/body len
14235
14236 2003-01-30  Havoc Pennington  <hp@pobox.com>
14237
14238         * dbus/dbus-auth.c: rework to use only REJECTED, no
14239         MECHANISMS
14240
14241         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14242         use REJECTED, suggested by Mark McLoughlin
14243
14244 2003-01-30  Havoc Pennington  <hp@pobox.com>
14245
14246         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14247         a better way to report errors here. e.g.  "unix address lacks
14248         path" or something. also "no such file" when the path doesn't
14249         exist, etc.
14250
14251         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14252         leaking list nodes
14253         (dbus_parse_address): add @todo about documenting address format,
14254         and allowing , and ; to be escaped
14255
14256 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14257
14258         * dbus/Makefile.am:
14259         Add dbus-address.[ch]
14260
14261         * dbus/dbus-address.c: (dbus_address_entry_free),
14262         (dbus_address_entries_free), (create_entry),
14263         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14264         (dbus_parse_address), (_dbus_address_test):
14265         * dbus/dbus-address.h:
14266         New files for dealing with address parsing.
14267
14268         * dbus/dbus-connection.c:
14269         Document timeout functions.
14270
14271         * dbus/dbus-message.c:
14272         Document dbus_message_new_from_message.
14273
14274         * dbus/dbus-server-debug.c:
14275         Document.
14276
14277         * dbus/dbus-server.c: (dbus_server_listen):
14278         Parse address and use correct server implementation.
14279
14280         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14281         * dbus/dbus-string.h:
14282         New function with test.
14283
14284         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14285         * dbus/dbus-test.h:
14286         Add address tests.
14287
14288         * dbus/dbus-transport-debug.c:
14289         Document.
14290
14291         * dbus/dbus-transport.c: (_dbus_transport_open):
14292         Parse address and use correct transport implementation.
14293
14294 2003-01-30  Havoc Pennington  <hp@pobox.com>
14295
14296         * dbus/dbus-message.c: use message->byte_order instead of
14297         DBUS_COMPILER_BYTE_ORDER throughout.
14298         (dbus_message_create_header): pad header to align the
14299         start of the body of the message to 8-byte boundary
14300
14301         * dbus/dbus-marshal.h: make all the demarshalers take const
14302         DBusString arguments.
14303
14304         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14305         validate message args here, so we don't have to do slow validation
14306         later, and so we catch bad messages as they are incoming. Also add
14307         better checks on header_len and body_len. Also fill in
14308         message->byte_order
14309
14310         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14311         implemented properly)
14312         (_dbus_string_validate_nul): new function to check all-nul
14313
14314         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14315         get_arg_end_pos and remove all validation
14316         (_dbus_marshal_validate_arg): actually do validation here.
14317
14318 2003-01-29  Havoc Pennington  <hp@pobox.com>
14319
14320         * dbus/dbus-message.c (check_message_handling): fix assertion
14321         failure on set_client_serial
14322
14323 2003-01-28  Havoc Pennington  <hp@pobox.com>
14324
14325         * dbus/dbus-server-debug.c: Add doc section comments
14326
14327         * dbus/dbus-transport-debug.c: add doc section comments
14328
14329 2003-01-28  Havoc Pennington  <hp@redhat.com>
14330
14331         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14332         the reverse order from how I had it
14333         (_dbus_string_base64_encode): reverse encoding order. I was
14334         basically byteswapping everything during encoding.
14335
14336 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14337
14338         * dbus/dbus-connection-internal.h:
14339         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14340         (_dbus_connection_remove_timeout):
14341         Add functions for adding and removing timeouts.
14342
14343         * dbus/dbus-message.c: (dbus_message_new_from_message):
14344         Add new function that takes a message and creates an exact
14345         copy of it, but with the refcount set to 1.
14346         (check_message_handling):
14347         Fix build error.
14348
14349         * dbus/dbus-server-protected.h:
14350         * dbus/dbus-server.c: (_dbus_server_init_base),
14351         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14352         (dbus_server_set_timeout_functions):
14353         (_dbus_server_remove_timeout):
14354         New functions so that a server can add and remove timeouts.
14355
14356         (dbus_server_listen):
14357         Add commented out call to dbus_server_debug_new.
14358
14359         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14360         Actually set the handler, doh.
14361
14362         * dbus/dbus-transport.c: (_dbus_transport_open):
14363         Add commented out call to dbus_transport_debug_client_new.
14364
14365         * dbus/Makefile.am:
14366         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14367
14368 2003-01-28  Havoc Pennington  <hp@pobox.com>
14369
14370         * dbus/dbus-message.c (check_message_handling): function to check
14371         on the loaded message, iterates over it etc.
14372
14373 2003-01-28  Havoc Pennington  <hp@pobox.com>
14374
14375         * test/Makefile.am (dist-hook): fix make distdir
14376
14377         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14378
14379 2003-01-27  Havoc Pennington  <hp@pobox.com>
14380
14381         * dbus/dbus-mempool.c (time_for_size): replace printf with
14382         _dbus_verbose
14383
14384         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14385         empty lines; fix the SAVE_LENGTH stuff to be
14386         START_LENGTH/END_LENGTH so it actually works; couple other
14387         bugfixes
14388
14389         * test/Makefile.am (dist-hook): add dist-hook for .message files
14390
14391         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14392         can be constant or locked.
14393         (_dbus_string_free): allow freeing a const string as
14394         documented/intended
14395
14396         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14397
14398         * dbus/dbus-test-main.c (main): take an argument which is the
14399         directory containing test data
14400
14401         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14402         argument to this and load all the messages in test/data/
14403         checking that they can be loaded or not loaded as appropriate.
14404
14405 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14406
14407         * bus/dispatch.c: (bus_dispatch_message_handler):
14408         Dispatch messages sent to services.
14409
14410         * bus/driver.c: (bus_driver_send_service_deleted),
14411         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14412         (bus_driver_send_service_acquired):
14413         Add helper functions for sending service related messages.
14414
14415         (bus_driver_send_welcome_message):
14416         Send HELLO_REPLY instead of WELCOME.
14417
14418         (bus_driver_handle_list_services):
14419         Send LIST_SERVICES_REPLY instead of SERVICES.
14420
14421         (bus_driver_handle_own_service),
14422         (bus_driver_handle_service_exists):
14423         New message handlers.
14424
14425         (bus_driver_handle_message):
14426         Invoke new message handlers.
14427
14428         (bus_driver_remove_connection):
14429         Don't remove any services here since that's done automatically
14430         by bus_service_remove_owner now.
14431
14432         * bus/driver.h:
14433         New function signatures.
14434
14435         * bus/services.c: (bus_service_add_owner):
14436         Send ServiceAcquired message if we're the only primary owner.
14437
14438         (bus_service_remove_owner):
14439         Send ServiceAcquired/ServiceLost messages.
14440
14441         (bus_service_set_prohibit_replacement),
14442         (bus_service_get_prohibit_replacement):
14443         Functions for setting prohibit replacement.
14444
14445         (bus_service_has_owner):
14446         New function that checks if a connection is in the owner queue of
14447         a certain service.
14448
14449         * bus/services.h:
14450         Add new function signatures.
14451
14452         * dbus/dbus-list.c: (_dbus_list_test):
14453         Add tests for _dbus_list_remove_last and traversing the list backwards.
14454
14455         * dbus/dbus-list.h:
14456         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14457         go any further, so return NULL then.
14458
14459         * dbus/dbus-protocol.h:
14460         Add new messages, service flags and service replies.
14461
14462 2003-01-26  Havoc Pennington  <hp@pobox.com>
14463
14464         * dbus/dbus-message-builder.c: implement, completely untested.
14465
14466         * test/data/*: add data to be used in testing.
14467         ".message" files are our simple loadable text format.
14468         ".message-raw" will be binary dumps of messages.
14469
14470         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14471
14472 2003-01-26  Havoc Pennington  <hp@pobox.com>
14473
14474         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14475
14476         * dbus/dbus-errors.c (dbus_result_to_string): add
14477         file errors
14478
14479         * dbus/dbus-message-builder.c: new file, will contain code to load
14480         up messages from files. Not implemented yet.
14481
14482 2003-01-26  Havoc Pennington  <hp@pobox.com>
14483
14484         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14485         the sender by setting to NULL
14486
14487 2003-01-26  Havoc Pennington  <hp@pobox.com>
14488
14489         The unit tests pass, but otherwise untested.  If it breaks, the
14490         tests should have been better. ;-)
14491
14492         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14493         the connection.
14494
14495         * dbus/dbus-message.c: redo everything so we maintain
14496         message->header as the only copy of the various fields.
14497         This avoids the possibility of out-of-memory in some cases,
14498         for example dbus_message_lock() can't run out of memory anymore,
14499         and avoids extra copying. Figured I may as well go ahead and do
14500         this since it was busted for dbus_message_lock to not return
14501         failure on OOM, and dbus_message_write_header was totally
14502         unchecked for OOM. Also fixed some random other bugs.
14503
14504         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14505         that strings are nul-terminated. Also, end_pos can be equal
14506         to string length just not greater than, I think.
14507         (_dbus_marshal_set_int32): new function
14508         (_dbus_marshal_set_uint32): new function
14509         (_dbus_marshal_set_string): new function
14510
14511         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14512         a warning, init timeout_list to NULL
14513         (dbus_connection_send_message): don't use uninitialized variable
14514         "serial"
14515
14516         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14517
14518 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14519
14520         * bus/driver.c: (bus_driver_handle_hello),
14521         (bus_driver_send_welcome_message):
14522         Plug leaks
14523
14524 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14525
14526         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14527         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14528         (dbus_connection_unref):
14529         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14530         * dbus/dbus-message.c: (dbus_message_unref),
14531         Plug memory leaks.
14532
14533         (dbus_message_get_fields):
14534         Remove debugging printout.
14535
14536         (_dbus_message_loader_return_buffer):
14537         Don't store the header string.
14538
14539         (_dbus_message_test):
14540         Plug leaks.
14541
14542 2003-01-26  Richard Hult  <rhult@codefactory.se>
14543
14544         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14545         the file descriptor list, since it can change under us.
14546
14547 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14548
14549         * glib/dbus-gmain.c: (dbus_connection_prepare),
14550         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14551         (remove_watch), (dbus_connection_hookup_with_g_main):
14552         Rewrite the glib handling to use its own GSource instead of a
14553         GIOChannel so we can catch messages put in the queue while waiting
14554         for a reply.
14555
14556 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14557
14558         * bus/Makefile.am:
14559         * bus/connection.c: (connection_disconnect_handler),
14560         (connection_watch_callback), (bus_connection_setup):
14561         * bus/dispatch.c: (send_one_message),
14562         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14563         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14564         * bus/dispatch.h:
14565         * bus/driver.c: (bus_driver_send_service_deleted),
14566         (bus_driver_send_service_created), (bus_driver_handle_hello),
14567         (bus_driver_send_welcome_message),
14568         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14569         (bus_driver_handle_message):
14570         * bus/driver.h:
14571         Refactor code, put the message dispatching in its own file. Use
14572         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14573         is disconnected.
14574
14575 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14576
14577         * dbus/dbus-internals.h:
14578         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14579
14580         * dbus/dbus-message.c: (dbus_message_get_sender):
14581         * dbus/dbus-message.h:
14582         Implement dbus_message_get_sender.
14583
14584         * dbus/dbus-protocol.h:
14585         Add message and service defines.
14586
14587 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14588
14589         * dbus/dbus-connection.c: (dbus_connection_send_message):
14590         * dbus/dbus-message-internal.h:
14591         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14592         (dbus_message_write_header):
14593         Remove _dbus_messag_unlock and don't set the client serial on a
14594         message if one already exists.
14595
14596 2003-01-24  Havoc Pennington  <hp@pobox.com>
14597
14598         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14599         list_pool
14600
14601         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14602         on OOM
14603
14604 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14605
14606         * dbus/dbus-list.c: (alloc_link), (free_link):
14607         Use a memory pool for the links.
14608
14609 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14610
14611         * bus/connection.c: (bus_connection_foreach):
14612         * bus/connection.h:
14613         Add new bus_connection_foreach function.
14614
14615         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14616         Add function that broadcasts a message to all clients.
14617
14618         (bus_driver_send_service_created), (bus_driver_handle_hello),
14619         (bus_driver_send_welcome_message),
14620         (bus_driver_handle_list_services), (bus_driver_message_handler):
14621         Implement functions that take care of listing services, and notifying
14622         clients when new services are created.
14623
14624         * bus/services.c: (bus_services_list):
14625         * bus/services.h:
14626         Add new function that returns an array of strings with the currently
14627         registered services.
14628
14629         * glib/dbus-glib.h:
14630         * glib/dbus-gmain.c:
14631         Update copyright year.
14632
14633 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14634
14635         * dbus/dbus-connection.c: (dbus_connection_send_message):
14636         Unlock the message in case it was sent earlier.
14637
14638         (dbus_connection_send_message_with_reply_and_block):
14639         Remove the reply message from the list.
14640
14641         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14642         Set array_len and new_pos correctly.
14643
14644         (_dbus_marshal_test):
14645         Remove debug output.
14646
14647         * dbus/dbus-message-internal.h:
14648         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14649         New function that returns the reply serial.
14650
14651         (_dbus_message_unlock):
14652         New function that unlocks a message and resets its header.
14653
14654         (dbus_message_append_string_array),
14655         (dbus_message_get_fields_valist),
14656         (dbus_message_iter_get_field_type),
14657         (dbus_message_iter_get_string_array),
14658         (dbus_message_get_fields),
14659         (dbus_message_append_fields_valist):
14660         Handle string arrays.
14661
14662         (dbus_message_set_sender):
14663         Make this function public since the bus daemon needs it.
14664
14665         (decode_header_data):
14666         Set the reply serial to -1 initially.
14667
14668         * dbus/dbus-message.h:
14669         Add dbus_message_set_sender.
14670
14671 2003-01-24  Havoc Pennington  <hp@pobox.com>
14672
14673         * doc/dbus-specification.sgml: add some stuff
14674
14675 2003-01-22  Havoc Pennington  <hp@pobox.com>
14676
14677         * doc/dbus-specification.sgml: Start to document the protocol.
14678
14679 2003-01-22  Havoc Pennington  <hp@pobox.com>
14680
14681         * dbus/dbus-connection.c
14682         (dbus_connection_send_message_with_reply_and_block): add some @todo
14683
14684         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14685
14686 2003-01-21  Havoc Pennington  <hp@pobox.com>
14687
14688         (patch untested because can't compile)
14689
14690         * bus/driver.c (create_unique_client_name): make this function
14691         never recycle client names. Also, caller should initialize
14692         the DBusString.
14693
14694         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14695
14696 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14697
14698         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14699         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14700         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14701         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14702         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14703         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14704         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14705         * dbus/dbus-marshal.h:
14706         * dbus/dbus-protocol.h:
14707         Add support for marshalling and demarshalling integer, double
14708         and string arrays.
14709
14710 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14711
14712         * bus/Makefile.am:
14713         Add driver.[ch]
14714
14715         * bus/connection.c: (connection_disconnect_handler):
14716         Remove the connection from the bus driver's list.
14717
14718         (connection_watch_callback): Dispatch messages.
14719
14720         (free_connection_data): Free connection name.
14721
14722         (bus_connection_setup): Add connection to the bus driver's list.
14723         (bus_connection_remove_owned_service):
14724         (bus_connection_set_name), (bus_connection_get_name):
14725         Add functions for setting and getting the connection's name.
14726
14727         * bus/connection.h:
14728         Add function headers.
14729
14730         * bus/driver.c: (create_unique_client_name),
14731         (bus_driver_handle_hello_message),
14732         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14733         (bus_driver_add_connection), (bus_driver_remove_connection):
14734         * bus/driver.h:
14735         * bus/main.c:
14736         * bus/services.c: (bus_service_free):
14737         * bus/services.h:
14738         New file that handles communication and registreation with the bus
14739         itself.
14740
14741 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14742
14743         * dbus/dbus-connection.c: (dbus_connection_send_message):
14744         Add a new client_serial parameter.
14745
14746         (dbus_connection_send_message_with_reply):
14747         Remove a @todo since we've implemented the blocking function.
14748
14749         (dbus_connection_send_message_with_reply_and_block):
14750         New function that sends a message and waits for a reply and
14751         then returns the reply.
14752
14753         * dbus/dbus-connection.h:
14754         Add new functions.
14755
14756         * dbus/dbus-errors.c: (dbus_result_to_string):
14757         * dbus/dbus-errors.h:
14758         Add new DBUS_RESULT.
14759
14760         * dbus/dbus-message-internal.h:
14761         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14762         (_dbus_message_set_sender), (dbus_message_write_header),
14763         (dbus_message_new_reply), (decode_header_data),
14764         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14765         * dbus/dbus-message.h:
14766         Add new functions that set the reply serial and sender.
14767         Also marshal and demarshal them correctly and add test.
14768
14769         * dbus/dbus-protocol.h:
14770         Add new DBUS_MESSAGE_TYPE_SENDER.
14771
14772         * glib/dbus-glib.h:
14773         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14774         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14775         (dbus_connection_hookup_with_g_main):
14776         * glib/test-dbus-glib.c: (main):
14777         Rewrite to use GIOChannel and remove the GSource crack.
14778
14779         * test/echo-client.c: (main):
14780         * test/watch.c: (check_messages):
14781         Update for changed APIs
14782
14783 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14784
14785         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14786
14787         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14788         Create a DBusTimeoutList.
14789         (dbus_connection_set_timeout_functions): Add new function to
14790         set timeout callbacks
14791
14792         * dbus/dbus-connection.h: Add public DBusTimeout API.
14793
14794         * dbus/dbus-message.c: (dbus_message_get_service):
14795         * dbus/dbus-message.h:  New function.
14796
14797         * dbus/dbus-server.c: Fix small doc typo.
14798
14799         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14800
14801 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14802
14803         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14804         of the string, just as long as specified.
14805
14806 2003-01-19  Havoc Pennington  <hp@pobox.com>
14807
14808         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14809         new function
14810
14811         * dbus/dbus-server.c (dbus_server_set_max_connections)
14812         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14813         keep track of current number of connections, and add API for
14814         setting a max (but haven't implemented enforcing the max yet)
14815
14816 2003-01-18  Havoc Pennington  <hp@pobox.com>
14817
14818         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14819         reading/writing if read_watch != NULL or write_watch != NULL.
14820
14821         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14822         the message loader code to actually load message->header and
14823         message->body into the newly-created message.
14824
14825         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14826         in OOM case
14827
14828         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14829         (dbus_connection_get_max_message_size)
14830         (dbus_connection_set_max_live_messages_size)
14831         (dbus_connection_get_max_live_messages_size): implement some
14832         resource limitation functions
14833
14834         * dbus/dbus-resources.c: new file implementing some of the
14835         resource limits stuff
14836
14837         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14838         missing docs, add @todo to handle OOM etc.
14839
14840         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14841         docs
14842
14843 2003-01-18  Havoc Pennington  <hp@pobox.com>
14844
14845         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14846         connection if it hasn't been already.
14847
14848         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14849         replace with DisconnectFunction.
14850
14851 2003-01-18  Havoc Pennington  <hp@pobox.com>
14852
14853         Building --disable-verbose-mode --disable-asserts --disable-tests
14854         cuts the library from 112K to 45K or so
14855
14856         * configure.in: check for varargs macro support,
14857         add --enable-verbose-mode, --enable-asserts.
14858
14859         * dbus/dbus-internals.h (_dbus_assert): support
14860         DBUS_DISABLE_ASSERT
14861         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14862
14863 2003-01-18  Havoc Pennington  <hp@pobox.com>
14864
14865         * dbus/dbus-test.c: include config.h so that tests actually run
14866
14867         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14868         so the failure mode when that assumption fails will be plenty
14869         obvious.
14870
14871 2003-01-18  Havoc Pennington  <hp@pobox.com>
14872
14873         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14874
14875         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14876         the distribution
14877
14878         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14879         since we don't want to use those in make check
14880
14881 2003-01-15  Havoc Pennington  <hp@redhat.com>
14882
14883         Release 0.2
14884
14885         * NEWS: update
14886
14887 2003-01-15  Havoc Pennington  <hp@redhat.com>
14888
14889         * test/Makefile.am: fix so that test source code ends up in the
14890         distribution on make distcheck
14891
14892 2003-01-15  Havoc Pennington  <hp@redhat.com>
14893
14894         Release 0.1.
14895
14896         * NEWS: update
14897
14898 2003-01-15  Havoc Pennington  <hp@redhat.com>
14899
14900         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14901         fix build when --disable-tests
14902
14903         * Makefile.am (EXTRA_DIST): put HACKING in here
14904
14905         * HACKING: document procedure for making a tarball release.
14906
14907 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14908
14909         * bus/connection.c: (connection_error_handler),
14910         (bus_connection_setup):
14911         * bus/main.c: (main):
14912         Make sure that the DBusConnectionData struct is NULLed
14913         out to prevent a segfault.
14914
14915         * dbus/dbus-errors.c: (dbus_result_to_string):
14916         * dbus/dbus-errors.h:
14917         * dbus/dbus-message.c: (dbus_message_get_fields),
14918         (dbus_message_get_fields_valist), (_dbus_message_test):
14919         * dbus/dbus-message.h:
14920         Make dbus_message_get_fields return a result code so we can
14921         track invalid fields as well as oom.
14922
14923 2003-01-11  Havoc Pennington  <hp@pobox.com>
14924
14925         * configure.in: change --enable-test/--enable-ansi action-if-given
14926         to enable_foo=$enableval instead of enable_foo=yes
14927
14928 2003-01-08  Havoc Pennington  <hp@pobox.com>
14929
14930         * dbus/dbus-string.c (_dbus_string_align_length): new function
14931
14932         * dbus/dbus-test-main.c: move main() for test app here
14933         * dbus/dbus-test.c
14934         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14935         symbol to run tests, because dbus-test isn't in the main
14936         library
14937
14938         Code review nitpicks.
14939
14940         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14941         for people with narrow emacs ;-). Assert client_serial was filled
14942         in. Assert message->name != NULL.
14943         (dbus_message_append_fields): have "first_field_type" arg separate
14944         from va list, needed for C++ binding that also uses varargs IIRC
14945         and helps with type safety
14946         (dbus_message_new): add @todo about using DBusString to store
14947         service/name internally
14948         (dbus_message_new): don't leak ->service and ->name on OOM later
14949         in the function
14950         (dbus_message_unref): free the service name
14951         (dbus_message_get_fields): same change to varargs
14952         i.e. first_field_type
14953         (_dbus_message_loader_return_buffer): assert that the message data
14954         is aligned (if not it's a bug in our code). Put in verbose griping
14955         about why we set corrupted = TRUE.
14956         (decode_header_data): add FIXME that char* is evil.  Was going to
14957         add FIXME about evil locale-specific string.h strncmp, but just
14958         switched to wacky string-as-uint32 optimization. Move check for
14959         "no room for field name" above get_const_data_len() to avoid
14960         assertion failure in get_const_data_len if we have trailing 2
14961         bytes or the like. Check for service and name fields being
14962         provided twice. Don't leak service/name on error. Require field
14963         names to be aligned to 4 bytes.
14964
14965         * dbus/dbus-marshal.c: move byte swap stuff to header
14966         (_dbus_pack_int32): uscore-prefix
14967         (_dbus_unpack_int32): uscore-prefix
14968         (_dbus_unpack_uint32): export
14969         (_dbus_demarshal_string): add @todo complaining about use of
14970         memcpy()
14971         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14972         handling allowing corrupt data to go unchecked
14973
14974 2003-01-08  Havoc Pennington  <hp@redhat.com>
14975
14976         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14977         to the select() as needed for authentication. (should be using
14978         _dbus_poll() not select, but for another day)
14979
14980         * dbus/dbus.h: include dbus/dbus-protocol.h
14981
14982 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14983
14984         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14985         dbus-connection.h
14986
14987 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14988
14989         * dbus/dbus-internals.c: (_dbus_type_to_string):
14990         New function that returns a string describing a type.
14991
14992         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14993         * dbus/dbus-marshal.h:
14994         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14995         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14996         (dbus_message_iter_get_byte_array):
14997         * dbus/dbus-message.h:
14998         Add new convenience functions for appending and getting message fields.
14999         Also add demarshalling routines for byte arrays.
15000
15001 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15002
15003         * dbus/dbus-connection-internal.h:
15004         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15005         (_dbus_connection_get_next_client_serial),
15006         (dbus_connection_send_message):
15007         * dbus/dbus-internals.h:
15008         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15009         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15010         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15011         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15012         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15013         (_dbus_verbose_bytes), (_dbus_marshal_test):
15014         * dbus/dbus-marshal.h:
15015         * dbus/dbus-message-internal.h:
15016         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15017         (dbus_message_write_header), (_dbus_message_lock),
15018         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15019         (dbus_message_get_name), (dbus_message_append_int32),
15020         (dbus_message_append_uint32), (dbus_message_append_double),
15021         (dbus_message_append_string), (dbus_message_append_byte_array),
15022         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15023         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15024         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15025         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15026         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15027         (decode_header_data), (_dbus_message_loader_return_buffer),
15028         (message_iter_test), (_dbus_message_test):
15029         * dbus/dbus-message.h:
15030         * dbus/dbus-protocol.h:
15031         * dbus/dbus-test.c: (main):
15032         * dbus/dbus-test.h:
15033         * glib/test-dbus-glib.c: (message_handler), (main):
15034         * test/echo-client.c: (main):
15035         * test/watch.c: (check_messages):
15036         Make messages sendable and receivable for real.
15037
15038 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15039
15040         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15041         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15042         * dbus/dbus-message.c: (dbus_message_append_int32),
15043         (dbus_message_append_uint32), (dbus_message_append_double),
15044         (dbus_message_append_string), (dbus_message_append_byte_array):
15045         Handle OOM restoration.
15046
15047 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15048
15049         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15050         (_dbus_demarshal_string), (_dbus_marshal_test):
15051         * dbus/dbus-marshal.h:
15052         * dbus/dbus-message.c: (dbus_message_get_name),
15053         Document these functions.
15054
15055         (dbus_message_append_int32), (dbus_message_append_uint32),
15056         (dbus_message_append_double), (dbus_message_append_string),
15057         (dbus_message_append_byte_array):
15058         * dbus/dbus-message.h:
15059         Add functions for adding message fields of different types.
15060
15061         * dbus/dbus-protocol.h:
15062         Add the different types.
15063
15064 2003-01-05  Havoc Pennington  <hp@pobox.com>
15065
15066         * bus/connection.c: implement routines for handling connections,
15067         first thing is keeping a list of owned services on each connection
15068         and setting up watches etc.
15069
15070         * bus/services.c: implement a mapping from service names to lists
15071         of connections
15072
15073         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15074
15075         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15076         to use static mutexes for global data
15077
15078         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15079         collection of functions to set/get application-specific data
15080         on the DBusConnection.
15081
15082 2003-01-04  Havoc Pennington  <hp@pobox.com>
15083
15084         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15085         (_dbus_poll): new function
15086
15087         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15088         copied from GLib
15089
15090         * bus/loop.c: initial code for the daemon main loop
15091
15092 2003-01-04  Havoc Pennington  <hp@pobox.com>
15093
15094         * test/watch.c (error_handler): make it safe if the error handler
15095         is called multiple times (if we s/error handler/disconnect
15096         handler/ we should just guarantee it's called only once)
15097
15098         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15099         error handler on disconnect (it's quite possible we should
15100         just change the error handler to a "disconnect handler," I'm
15101         not sure we have any other meaningful errors)
15102
15103         * configure.in: check for getpwnam_r
15104
15105         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15106         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15107         mechanism as in SASL spec, using socket credentials
15108
15109         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15110         (_dbus_send_credentials_unix_socket): new function
15111
15112         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15113         dbus_accept()
15114         (_dbus_write): only check errno if <0 returned
15115         (_dbus_write_two): ditto
15116
15117 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15118
15119         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15120         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15121         (_dbus_marshal_test):
15122         * dbus/dbus-marshal.h:
15123         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15124         to _dbus_marshal_utf8_string. Also fix some tests.
15125
15126 2002-12-28  Harri Porten  <porten@kde.org>
15127
15128         * configure.in: added check for C++ compiler and a very cheesy
15129         check for the Qt integration
15130
15131         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15132
15133         * qt/Makefile.am: added
15134
15135         * qt/.cvsignore: added
15136
15137         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15138         latter, added #ifdef QT_THREAD_SUPPORT guard.
15139
15140         * dbus/Makefile.am: added missing headers for make dist
15141
15142 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15143
15144         * dbus/Makefile.am: fixup export-symbols-regex.
15145
15146 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15147
15148         * acinclude.m4: Add this file and put the
15149         PKG_CHECK_MODULE macro in it.
15150
15151 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15152
15153         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15154         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15155         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15156         (_dbus_marshal_test):
15157         Make the demarshalling routines align the pos argument.
15158         Add string marshalling tests and fix the obvious bugs
15159         discovered.
15160
15161 2002-12-26  Havoc Pennington  <hp@pobox.com>
15162
15163         * dbus/dbus-auth.c: fixes fixes fixes
15164
15165         * dbus/dbus-transport-unix.c: wire up support for
15166         encoding/decoding data on the wire
15167
15168         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15169         (_dbus_auth_decode_data): append to target string
15170         instead of nuking it.
15171
15172 2002-12-26  Havoc Pennington  <hp@pobox.com>
15173
15174         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15175         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15176         doh
15177
15178         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15179         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15180         now). Main point is because I wanted unpack_uint32 to implement
15181         _dbus_verbose_bytes
15182         (_dbus_verbose_bytes): new function
15183
15184         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15185
15186         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15187         mechanism to handle a corrupt message stream
15188         (_dbus_message_loader_new): fix preallocation to only prealloc,
15189         not prelengthen
15190
15191         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15192         (_dbus_string_test): enhance tests for copy/move and fix the
15193         functions
15194
15195         * dbus/dbus-transport-unix.c: Hold references in more places to
15196         avoid reentrancy problems
15197
15198         * dbus/dbus-transport.c: ditto
15199
15200         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15201         leak reference count in no-message case
15202
15203         * test/watch.c (do_mainloop): handle adding/removing watches
15204         during iteration over the watches. Also, ref the connection/server
15205         stored on a watch, so we don't try to mangle a destroyed one.
15206
15207         * dbus/dbus-transport-unix.c (do_authentication): perform
15208         authentication
15209
15210         * dbus/dbus-auth.c (get_state): add a state
15211         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15212         (_dbus_auth_get_unused_bytes): append the unused bytes
15213         to the passed in string, rather than prepend
15214
15215         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15216         the auth conversation DBusAuth
15217
15218         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15219         (_dbus_transport_new_for_domain_socket): when creating a
15220         transport, pass in whether it's a client-side or server-side
15221         transport so we know which DBusAuth to create
15222
15223 2002-12-03  Havoc Pennington  <hp@pobox.com>
15224
15225         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15226         _after_ finalizing the derived members
15227         (unix_connection_set): unref watch if we fail to add it
15228
15229         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15230         transport first, so that the connection owned by the
15231         transport will be valid as the transport finalizes.
15232
15233         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15234         if necessary, and remove watches from the connection.
15235
15236         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15237
15238 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15239
15240         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15241         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15242         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15243         (_dbus_marshal_test):
15244         * dbus/dbus-marshal.h:
15245         Add string marshal functions and have the demarshal functions
15246         return the new position.
15247
15248 2002-12-25  Havoc Pennington  <hp@pobox.com>
15249
15250         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15251         it is a simple protocol that just maps directly to SASL.
15252
15253         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15254         initial implementation, not actually used yet.
15255
15256         * dbus/dbus-string.c (_dbus_string_find): new function
15257         (_dbus_string_equal): new function
15258         (_dbus_string_base64_encode): new function
15259         (_dbus_string_base64_decode): new function
15260
15261 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15262
15263         * dbus/Makefile.am:
15264         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15265         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15266         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15267         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15268         * dbus/dbus-marshal.h:
15269         * dbus/dbus-protocol.h:
15270         * dbus/dbus-test.c: (main):
15271         * dbus/dbus-test.h:
15272         Add un-optimized marshalling/demarshalling routines.
15273
15274 2002-12-25  Harri Porten  <porten@kde.org>
15275
15276         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15277
15278 2002-12-24  Zack Rusin  <zack@kde.org>
15279
15280         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15281         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15282         main loop stuff
15283
15284 2002-12-24  Havoc Pennington  <hp@pobox.com>
15285
15286         * glib/dbus-gthread.c: fix include
15287
15288         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15289         I think glib API needs to change, though, as you don't
15290         want to use DBusMessageFunction, you want to use the
15291         DBusMessageHandler object. Probably
15292         dbus_connection_open_with_g_main_loop()
15293         and dbus_connection_setup_g_main_loop() or something like that
15294         (but think of better names...) that just create a connection
15295         that has watch/timeout functions etc. already set up.
15296
15297         * dbus/dbus-connection.c
15298         (dbus_connection_send_message_with_reply): new function just to
15299         show how the message handler helps us deal with replies.
15300
15301         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15302
15303         * dbus/dbus-string.c (_dbus_string_test): free a string that
15304         wasn't
15305
15306         * dbus/dbus-hash.c: use memory pools for the hash entries
15307         (rebuild_table): be more paranoid about overflow, and
15308         shrink table when we can
15309         (_dbus_hash_test): reduce number of sprintfs and write
15310         valid C89. Add tests for case where we grow and then
15311         shrink the hash table.
15312
15313         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15314
15315         * dbus/dbus-connection.c (dbus_connection_register_handler)
15316         (dbus_connection_unregister_handler): new functions
15317
15318         * dbus/dbus-message.c (dbus_message_get_name): new
15319
15320         * dbus/dbus-list.c: fix docs typo
15321
15322         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15323         an object representing a handler for messages.
15324
15325 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15326
15327         * glib/dbus-glib.h:
15328         * glib/dbus-gthread.c: (dbus_gthread_init):
15329         Don't use the gdbus prefix for public functions.
15330
15331 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15332
15333         * Makefile.am:
15334         * configure.in:
15335         Add GLib checks and fixup .pc files
15336
15337         * glib/Makefile.am:
15338         * glib/dbus-glib.h:
15339         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15340         (gdbus_connection_check), (gdbus_connection_dispatch),
15341         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15342         (dbus_connection_gsource_new):
15343         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15344         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15345         * glib/test-dbus-glib.c: (message_handler), (main):
15346         Add GLib support.
15347
15348 2002-12-15  Harri Porten  <porten@kde.org>
15349
15350         * autogen.sh: check for libtoolize before attempting to use it
15351
15352         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15353         struct.
15354
15355         * .cvsignore: ignore more stamp files
15356
15357         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15358
15359         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15360         without make install.
15361
15362 2002-12-15  Havoc Pennington  <hp@pobox.com>
15363
15364         * dbus/dbus-threads.c: add thread stubs that a higher library
15365         layer can fill in. e.g. the GLib wrapper might fill them in with
15366         GThread stuff. We still need to use this thread API to
15367         thread-safe-ize the library.
15368
15369 2002-12-12  Havoc Pennington  <hp@pobox.com>
15370
15371         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15372         below new interfaces and include fewer system headers.
15373
15374         * dbus/dbus-sysdeps.c (_dbus_read): new function
15375         (_dbus_write): new function
15376         (_dbus_write_two): new function
15377         (_dbus_connect_unix_socket): new function
15378         (_dbus_listen_unix_socket): new function
15379
15380         * dbus/dbus-message-internal.h: change interfaces to use
15381         DBusString
15382
15383 2002-12-11  Havoc Pennington  <hp@pobox.com>
15384
15385         * dbus/dbus-types.h: add dbus_unichar
15386
15387         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15388
15389         * dbus/dbus-connection.c (dbus_connection_send_message): return
15390         TRUE on success
15391
15392         * dbus/dbus-transport.c: include dbus-watch.h
15393
15394         * dbus/dbus-connection.c: include dbus-message-internal.h
15395
15396         * HACKING: add file with coding guidelines stuff.
15397
15398         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15399         handling here, for security purposes (as in vsftpd). Not actually
15400         using this class yet.
15401
15402         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15403         system/libc usage here, as in vsftpd, for ease of auditing (and
15404         should also simplify portability). Haven't actually moved all the
15405         system/libc usage into here yet.
15406
15407 2002-11-25  Havoc Pennington  <hp@pobox.com>
15408
15409         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15410         always print the first verbose message.
15411
15412 2002-11-24  Havoc Pennington  <hp@pobox.com>
15413
15414         * test/echo-client.c, test/echo-server.c: cheesy test
15415         clients.
15416
15417         * configure.in (AC_CHECK_FUNCS): check for writev
15418
15419         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15420         function
15421
15422         * dbus/dbus-list.c (_dbus_list_foreach): new function
15423
15424         * dbus/dbus-internals.c (_dbus_verbose): new function
15425
15426         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15427         representing a server that listens for connections.
15428
15429         * dbus/.cvsignore: create
15430
15431         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15432         public API for reporting errors
15433
15434         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15435         public object representing a connection that
15436         sends/receives messages. (Same object used for
15437         both client and server.)
15438
15439         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15440         Basic abstraction for different kinds of stream
15441         that we might read/write messages from.
15442
15443 2002-11-23  Havoc Pennington  <hp@pobox.com>
15444
15445         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15446         _DBUS_INT_MAX
15447
15448         * dbus/dbus-test.c (main): add list test, and include
15449         dbus-test.h as intended
15450
15451         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15452         (_dbus_hash_table_remove_int): return value indicates
15453         whether the entry existed to remove
15454
15455         * dbus/dbus-list.c: add linked list utility class,
15456         with docs and tests
15457
15458         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15459         array sometimes.
15460
15461 2002-11-23  Havoc Pennington  <hp@pobox.com>
15462
15463         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15464         DBUS_END_DECLS to nothing, that should fix this once and for all
15465
15466         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15467
15468         * dbus/dbus-message.c, dbus/dbus-hash.c:
15469         add some missing @brief
15470
15471 2002-11-23  Havoc Pennington  <hp@pobox.com>
15472
15473         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15474         to avoid confusing Doxygen
15475
15476         * dbus/dbus-hash.c: @} not }@
15477
15478         * dbus/dbus-message.c (struct DBusMessage): split out
15479         internals docs
15480
15481 2002-11-23  Havoc Pennington  <hp@pobox.com>
15482
15483         * configure.in: pile on more warning flags if using gcc
15484
15485         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15486         to document static functions
15487
15488         * configure.in: add summary to end of configure so it
15489         looks nice and attractive
15490
15491         * dbus/dbus-hash.c: finish implementation and write unit
15492         tests and docs
15493
15494         * configure.in: add --enable-tests to enable unit tests
15495
15496         * dbus/dbus-test.c: test program to run unit tests
15497         for all files in dbus/*, initially runs a test for
15498         dbus-hash.c
15499
15500         * dbus/dbus-internals.h: file to hold some internal utility stuff
15501
15502 2002-11-22  Havoc Pennington  <hp@redhat.com>
15503
15504         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15505         "ported" away from Tcl
15506
15507         * dbus/dbus-types.h: header for types such as dbus_bool_t
15508
15509 2002-11-22  Havoc Pennington  <hp@redhat.com>
15510
15511         * dbus/dbus.h: fixups for doc warnings
15512
15513         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15514         macros
15515         (QUIET): make it quiet so we can see warnings
15516
15517         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15518
15519 2002-11-22  Havoc Pennington  <hp@redhat.com>
15520
15521         * Makefile.am: include "Doxyfile" target in all-local
15522
15523         * configure.in: generate the Doxyfile
15524
15525         * Doxyfile.in: move Doxyfile here, so we can use
15526         configure to generate a Doxyfile with the right
15527         version number etc.
15528
15529 2002-11-22  Havoc Pennington  <hp@redhat.com>
15530
15531         * dbus/dbus-message.c: move inline docs into .c file
15532
15533         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15534         so all docs are under doc/
15535         (MAN_EXTENSION): generate man pages. Use extension
15536         ".3dbus" which matches ".3qt" on my system,
15537         I guess this is OK, I don't know really.
15538         (FILE_PATTERNS): look for .c files not .h, makes sense
15539         for plain C I think
15540
15541 2002-11-22  Havoc Pennington  <hp@pobox.com>
15542
15543         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15544         because any app can be a server, and any app can be a client,
15545         the bus is a special kind of server.
15546
15547 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15548
15549         * Doxyfile : adding. Still needs Makefile rules to be generated
15550         automatically (just run "doxygen" in the toplevel dir for now to
15551         generate docs)
15552
15553         * dbus/dbus-message.h : Adding sample docs (javadoc since
15554         resembles gtk-doc a little more)
15555
15556         * dbus/dbus.h : Adding sample docs
15557
15558 2002-11-21  Havoc Pennington  <hp@redhat.com>
15559
15560         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15561         so we can allow ourselves to include files directly,
15562         instead of having to use dbus.h
15563
15564         * dbus/dbus.h: fill in
15565
15566         * dbus/dbus-message.h: sketch out a sample header file.
15567         Include griping if you include it directly instead of
15568         via dbus.h
15569
15570         * dbus/dbus-macros.h: new file with macros for extern "C",
15571         TRUE/FALSE, NULL, etc.
15572
15573         * doc/file-boilerplate.c: put include guards in here
15574
15575 2002-11-21  Havoc Pennington  <hp@redhat.com>
15576
15577         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15578
15579         * COPYING: include the GPL as well, and license code
15580         under both AFL and GPL.
15581
15582 2002-11-21  Havoc Pennington  <hp@redhat.com>
15583
15584         * acconfig.h: get rid of this
15585
15586         * autogen.sh (run_configure): add --no-configure option
15587
15588         * configure.in: remove AC_ARG_PROGRAM to make
15589         autoconf complain less. add AC_PREREQ.
15590         add AC_DEFINE third arg.
15591
15592 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15593
15594         * doc/Makefile.am:
15595         Fix references so we can distcheck.
15596
15597 2002-11-21  Havoc Pennington  <hp@redhat.com>
15598
15599         * Initial module creation
15600