* dbus-1.pc.in: add daemondir to pc file
[platform/upstream/dbus.git] / ChangeLog
1 2007-05-10  John (J5) Palmieri <johnp@redhat.com>
2
3         * dbus-1.pc.in: add daemondir to pc file
4         patch from Brian Cameron <brian.cameron at sun.com>
5
6 2007-05-04  Simon McVittie <simon.mcvittie@collabora.co.uk>
7
8         * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local
9         interface and the corresponding /o/fd/DBus/Local object path;
10         describe them as reserved and forbid using them in a sent message,
11         mentioning that in the reference implementation this will cause the
12         connection to be dropped. Patch approved by Havoc.
13
14 2007-04-28  Ralf Habacker <ralf.habacker@freenet.de>
15
16         * cmake/: don't install test applications and service files,
17         moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
18
19 2007-04-27  Havoc Pennington  <hp@redhat.com>
20
21         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
22         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
23         the fd itself
24
25 2007-04-26 Ralf Habacker  <ralf.habacker@freenet.de>
26
27         * cmake/: added debug postfixes to debug exe's for 
28         easier debugging.
29         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
30         print error code in case no string message is available.
31
32 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
33
34         * dbus/dbus-message-util.c, dbus/dbus-message.c,
35         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
36         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
37         approved by Havoc Pennington.
38
39 2007-04-03  Timo Hoenig  <thoenig@suse.de>
40
41         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
42           length address.
43         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
44           length address.
45
46 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
47
48         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
49
50 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
51
52         * cmake/modules/FindExpat.cmake: fix package detection on win32.
53
54         * README.win: update install instructions. 
55
56 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
57
58         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
59         new prototyp
60         (_DBUS_PATH_SEPARATOR): new macro. 
61
62         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
63         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
64
65 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
66
67         * bus/config-parser.c, bus/policy.c,  
68         bus/policy.h, bus/dbus-daemon.1.in,
69         bus/session.conf.in: added eavesdrop support 
70         for replies - patch by olli.salli at collabora.co.uk
71         approved by Havoc Pennington. 
72
73 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
74
75         * dbus\dbus-sysdeps-win-thread.c: renamed to 
76         dbus-sysdeps-thread-win.c, it is a platform depending file 
77         similar to dbus-sysdeps-pthread.c.
78
79 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
80
81         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
82         support, needs cmake Find script.
83
84 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
85
86         * cmake: add doxygen support
87
88 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
89
90         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
91
92 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
93
94         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
95         win32 compile fix. 
96
97 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
98
99         * dbus-win.patch: removed obsolate patches. 
100
101 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
102
103         * dbus/dbus-sysdeps-win.c: added zero byte sending 
104         and receiving after connection start up
105
106 2007-03-11  Havoc Pennington  <hp@redhat.com>
107
108         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
109         formatting problem
110
111         * Mostly fix the DBusPipe mess.
112         - put line break after function return types
113         - put space before parens
114         - do not pass structs around by value
115         - don't use dbus_strerror after calling supposedly cross-platform
116         api
117         - don't name pipe variables "fd"
118         - abstract special fd numbers like -1 and 1
119
120 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
121
122         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
123         dbus/dbus-sysdeps-util-win.c: renamed functions 
124         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
125         struct name DBusFile. 
126
127 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
128
129         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
130         fix _dbus_pid_fd check. 
131
132 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
133
134         * tools/dbus-print-message.c (print_message):
135         added printing of the reply serial to method returns and 
136         errors, so you can actually figure out the message/reply 
137         pairs - patch by olli.salli at collabora.co.uk.
138
139 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
140
141         * dbus-win.patch: removed committed patches. 
142
143 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
144
145         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
146         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
147         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
148         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
149         completed _dbus_pipe support. 
150
151 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
152
153         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
154         changed type or port to pointer, because the port is given back.
155
156         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
157         implemented returning tcp port. Skipping port parameter
158         and non integer port values in config <listen> statement
159         needs more effort.
160
161         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
162         (_dbus_listen_tcp_socket): return the real used tcp port.
163
164         * bus/dbus-daemon.1.in: added <listen> tcp examples
165
166 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
167
168         * cmake/config.h.cmake: win32 msvc bug fix
169
170 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
171
172         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
173         using _WINCE does not work.
174
175 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
176
177         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
178         committed.
179
180 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
181
182         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
183         rename pipe related write() function calls to _dbus_write_pipe().
184
185 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
186
187         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
188         uses DBUS_WIN for alls win32 related #ifdefs, 
189         some minor cleanups
190
191 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
192
193         * dbus-win.patch: updated patch for bus/dispatch.c.
194
195 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
196
197         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
198         dbus_connection_get_unix_process_id): Let return them valid user id's, 
199         otherwise bus-test fails. How to replace on win32 ?.
200         
201         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
202         fix memory leak.
203
204 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
205
206         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
207         use dbus friendly error name.
208         (fill_win_user_info_homedir): print user name in error case too.
209
210 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
211
212         * cmake/ConfigureChecks.cmake: fixed socketpair check
213
214 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
215
216         * bus/dispatch.c: disabled segfault test on win32 for now
217
218 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
219
220         * configure.in, cmake/ConfigureChecks.cmake: added check 
221         for setrlimit. 
222         * test/test-segfault.c: only include setrlimit stuff only 
223         when available.  
224
225 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
226
227         * test/test-segfault.c: unix compile fix.
228         * dbus-win.patch: removed obsolate patches.
229
230 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
231
232         * bus/activation.c: removed obsolate include header.
233         * test/test-segfault.c: win32 compile fix, rlimit 
234         isn't available on win32.
235         * dbus-win.patch: removed some more patches, they
236         are applied or obsolate 
237
238 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
239
240         * bus-win.patch: fixes unix listen problems, dbus-test 
241         now runs.
242
243 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
244
245         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
246         cmake/CMakeLists.txt: win32 compile fix
247
248 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
249
250         * dbus-win.patch, README.win: added available win32 
251         patches from windbus project (http://sf.net/projects/windbus)
252
253 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
254
255         * bus/activation.c: (bus_activation_activate_service):
256         fixed call to _dbus_spawn_async_with_babysitter().
257
258 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
259
260         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
261         added environment pointer as function parameter, used on win32.
262
263         * test/spawn-test.c: fixed call to above mentioned function.
264
265 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
266
267         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
268         added configure check for unistd.h.
269
270 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
271
272         * test/Makefile.am: fixed test data copy problem in 
273         out of source build, when sources came from svn or cvs. 
274
275 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
276
277         * dbus/*-win.*,bus/*-win.*: added win32 platform related
278         files. These files are only added to the cmake build system.  
279         The missing dbus-win.patch file will be added later. 
280
281 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
282
283         * cmake: new directory, contains cmake build support.
284         See http://www.cmake.org for more informations.
285         Currently only unix will be buildable because some 
286         win32 required files are still missing. 
287
288 2007-03-03  Thiago Macieira  <thiago@kde.org>
289
290         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
291         output and add it to the DBusError message we return.
292
293         * tools/dbus-launch.1:
294         * tools/dbus-launch.c: Add option --close-stderr to, well,
295         close stderr before starting dbus-daemon.
296
297 2007-01-31  Havoc Pennington  <hp@redhat.com>
298
299         * bus/dbus-daemon.1.in: write a section in the man page on running
300         a test daemon for debugging purposes
301
302 2007-01-26  Havoc Pennington  <hp@redhat.com>
303
304         * bus/session.conf.in: override all the default limits with much
305         higher limits on the session bus, there is no reason the session
306         bus should have low limits
307
308         * bus/config-parser.c (bus_config_parser_new): increase default
309         limits so they are less likely to be hit; in particular the max
310         replies per connection was way too low
311
312 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
313
314         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
315         a pointer to the tutorial maintained as part of dbus-python
316
317 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
318
319         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
320         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
321         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
322
323 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
324
325         * tools/dbus-monitor.c: gettimeofday() is not available 
326         on windows so we have to provide our own. It's taken from 
327         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
328
329 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
330
331         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
332         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
333         is in dbus-sysdeps-win.c (not in this patch).
334
335         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
336         with InterlockedInc/Decrement. 
337         - Patches from Christian Ehrlicher
338         
339 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
340
341         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
342
343 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
344
345         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
346         fix mispaced const statement. - Patch from Peter Kümmel
347
348 2006-12-19  Ray Strode  <rstrode@redhat.com>
349
350         * bus/bus.c (process_config_every_time):
351         don't overwrite existing bus context activation object
352         until after we've checked that the new activation is
353         valid.
354
355         * bus/main.c 
356         (signal_handler), (handle_reload_watch):
357         don't call exit() on failure, instead make do and keep
358         going.
359         (close_reload_pipe): new function to turn off
360         hangup-causes-config-reload behavior if an unexpected
361         error occurs
362
363 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
364
365         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
366         correctness fix. - Patch from Christian Ehrlicher
367
368 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
369
370         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
371         we should also use it. - Patch from Christian Ehrlicher
372
373 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
374   
375         * dbus-sysdeps-util.c: added win32 related tests
376
377 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
378
379         * dbus/dbus-string.c (_dbus_string_pop_line),
380         bus/desktop-file.c (parse_section_start,
381         parse_comment_or_blank,parse_key_value,): uses
382         _dbus_string_find_eol() to support platform independent eol style.
383
384 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
385
386         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
387         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
388               _dbus_string_find_eol().
389         Approved by: Havoc Pennington.
390
391 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
392
393         * configure.in: Added switch to disable user_database caching.
394
395         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
396         be able disable user_dabase caching.
397
398 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
399
400         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
401         struct. It is unnecessary we have a global one already. Also remove 
402         bus_context_get_user_database function, it is no longer needed.
403         Flush the global database on reload.
404
405         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
406         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
407
408         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
409         Add _dbus_user_database_flush_system. 
410         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
411         Small unrelated change in _dbus_is_a_number: change 
412         _dbus_string_parse_int to _dbus_string_parse_uint. 
413
414         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
415         _dbus_groups_from_uid.
416
417         * bus/policy.c, bus/policy.h: Change call to 
418         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
419         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
420         needs it.
421
422 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
423
424         * bus/signal.c: Fix match_rule_equal errata
425         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
426         <kimmo.hamalainen@nokia.com>)
427
428 2006-11-19  Thiago Macieira  <thiago@kde.org>
429
430         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
431         _dbus_pthread_condvar_wait,
432         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
433         pthread_self() after coming back from a conditional variable
434         wait as well as in one codepath where it was forgotten.
435         Approved by: Havoc Pennington.
436
437 2006-11-17  Havoc Pennington  <hp@redhat.com>
438
439         * update-dbus-docs.sh: allow setting fd.org username via env
440         variable. Make it run autogen with --enable-xml-docs=yes
441         --enable-doxygen-docs=yes so configure will fail if the required
442         tools are missing.
443
444 2006-11-17  Havoc Pennington  <hp@redhat.com>
445
446         * doc/dbus-faq.xml: minor FAQ tweaks
447
448 2006-11-14  Havoc Pennington  <hp@redhat.com>
449         
450         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
451         dbus_get_local_machine_id() to its own file, no substantive
452         changes. There are a couple other things we might want to add that
453         are "misc" so moving out of dbus-connection.[hc] which is big
454         enough already.
455         
456 2006-11-14  Havoc Pennington  <hp@redhat.com>
457
458         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
459         UUID had the timestamp last, but the implementation had it first;
460         move it to last since I think it's a tiny bit nicer (easier to
461         compare at a glance, faster to sort, less code), and will not
462         cause any practical compatibility problems. Also, always convert
463         the timestamp to big endian.
464
465         * doc/dbus-specification.xml: Clean up the docs on the UUID.
466
467         * tools/dbus-uuidgen.1: more prominently say it is not suitable
468         as a replacement for regular uuidgen/RFC4122.
469
470 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
471
472         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
473         the correct value so we don't assert when initalizing recursive threads
474
475         * test/name-test/test-thread-init.c: call dbus_threads_init_default
476         instead of _dbus_threads_init_debug since it is more of a real world
477         test
478
479 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
480
481         * Released 1.0.0
482
483 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
484
485         * AUTHORS: added Peter and Tor of windows porting fame
486
487 2006-11-08  Havoc Pennington  <hp@redhat.com>
488
489         * doc/dbus-specification.xml: add a note about protocol stability
490
491         * doc/TODO: Remove "important for 1.0" section, replace with
492         "important for 1.2" section
493         
494 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
495
496         * README: remove some of the out of date flags
497
498         * doc/TODO: Remove todo items which are done
499
500 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
501
502         * tools/dbus-monitor.c: Handle sigint so we flush stdout
503         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
504
505 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
506
507         * tools/dbus-monitor.1: update the manpage for dbus-monitor
508         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
509
510 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
511
512         * AUTHORS: Update with all people listed in the ChangeLog
513
514 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
515
516         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
517         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
518
519 2006-11-07  Havoc Pennington  <hp@redhat.com>
520
521         * HACKING: Update release instructions to include stuff about
522         stable releases, branching, etc. May not be totally correct,
523         please fix if needed, but keep instructions up-to-date so we do
524         each stable release consistently in the future.
525
526 2006-11-07  Havoc Pennington  <hp@redhat.com>
527
528         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
529         documentation updates. Bump faq/spec versions (not to 1.0; I don't
530         think the spec will be "finished"/1.0 when we ship the 1.0 library).
531
532 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
533
534         * bus/bus.c: Missed patch - pass in the context to the directory watch
535
536 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
537
538         * Released D-Bus 1.0 RC 3(0.95)
539
540 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
541
542         * bus/activation.c (bus_activation_new): don't fail if we can not read
543         the directory as it may not exist
544
545 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
546
547         * bus/config-parser.c (service_dirs_find_dir): use 
548         _dbus_list_get_next_link so we don't get stuck in an infinite loop
549         (start_busconfig_child): move processing of standard_session_servicedirs
550         tags here because they have no content
551         (bus_config_parser_content): check we don't have content in 
552         standard_session_servicedirs tag
553
554 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
555
556         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
557         Packagers need to own this directory
558
559 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
560
561         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
562         <standard_session_servicedirs> tag with a <sevicedir> tag that
563         points to the test service directory
564
565 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
566
567         * configure.in: Add a check for DIR *dirp->dd_fd
568
569         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
570         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
571         of both Solaris and Irix
572
573 2006-11-01  Havoc Pennington  <hp@redhat.com>
574
575         * bus/dbus-daemon.1.in: document standard_session_servicedirs
576
577 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
578
579         * configure.in: expose DBUS_DATADIR
580         
581         * bus/config-parser.c: add the standard_session_servicedirs element
582         to the parser
583         (bus_config_parser_content): process the standard_session_servicedirs
584         element by getting the standard directories from sysdeps and merging
585         them into the service directory list
586         (test_default_session_servicedirs): make sure we get what we expect
587
588         * bus/session.conf.in: replace the servicedir tag with the 
589         standard_session_servicedirs tag
590
591         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
592         dbus-sysdeps.h to avoid circular header dependencies
593
594         * dbus/dbus-sysdeps.h: add the typedef of DBusList
595
596         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
597         which takes a string of directories delimited by colons, parses them 
598         out, appends a suffix and puts them in a list ignoring empty elements
599         (_dbus_get_standard_session_servicedirs): returns the standard 
600         directories for a session bus to look for service activation files
601         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
602         DBUS_DATADIR directories
603
604         * test/data/valid-config-files/many-rules.conf: add the 
605         standard_session_servicedirs tag to the valid config file tests
606
607 2006-10-30  Havoc Pennington  <hp@redhat.com>
608
609         * tools/dbus-launch.1, doc/TODO: capture intent to change the
610         command line options of dbus-launch a bit post 1.0
611
612 2006-10-27  Havoc Pennington  <hp@redhat.com>
613         
614         * dbus/dbus-connection.c (dbus_connection_open_private): document
615         how to choose shared vs. private connections
616
617 2006-10-27  Havoc Pennington  <hp@redhat.com>
618
619         * dbus/dbus-test.c: enclose more of the file in the
620         DBUS_BUILD_TESTS check.
621
622         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
623         DBUS_DISABLE_ASSERT case.
624
625         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
626         that it only works on the server side
627
628         * dbus/dbus-bus.c: add a global lock covering the BusData we
629         attach to each connection
630         (internal_bus_get): lock our access to the BusData
631         (dbus_bus_register): lock the entire registration process
632         with _DBUS_LOCK(bus_datas). If we get the lock and 
633         registration is already complete, silently return (vs. previous
634         behavior of aborting).
635         (dbus_bus_set_unique_name): lock the BusData
636         (dbus_bus_get_unique_name): lock the BusData
637
638 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
639
640         * bus/config-parser.c (service_dirs_find_dir, 
641         service_dirs_append_unique_or_free, 
642         service_dirs_append_link_unique_or_free): New static methods
643         for only appending unique service directory names into
644         the service directory list
645         (merge_included, bus_config_parser_content): Only add unique
646         service directory names into the list
647
648 2006-10-27  Havoc Pennington  <hp@redhat.com>
649
650         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
651         variables volatile, suggested by Thiago. Document struct fields.
652         (PTHREAD_CHECK): remove pthread error checking if assertions are
653         disabled, should reduce the no-assertions case to the bare
654         minimum code.
655
656 2006-10-26  Havoc Pennington  <hp@redhat.com>
657         
658         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
659         to be recursive
660         (_dbus_pthread_mutex_unlock): make it recursive
661         (_dbus_pthread_condvar_wait): save/restore the recursion count
662         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
663
664 2006-10-26  Havoc Pennington  <hp@redhat.com>
665
666         * doc/dbus-specification.xml: clarify the UUID text slightly
667
668         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
669         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
670         in preparation for being able to extend them for e.g. recursive
671         mutexes.
672
673 2006-10-26  Havoc Pennington  <hp@redhat.com>
674
675         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
676         condition variables relate to recursive mutexes.
677         
678         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
679         dbus/dbus-threads.c: Split the platforms-specific thread 
680         implementations into their own files.
681         
682         * dbus/dbus-sysdeps-pthread.c
683         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
684         was backward. Not that anything uses it.
685
686 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
687
688         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
689         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
690         needs to be cleaned up more.
691
692         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
693         up the CREDS issue.
694
695 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
696
697         * configure.in, dbus-1.pc.in: Check to see if thread methods 
698         are in glibc or libpthread and add -lpthread to the link stage 
699         if it is the latter
700
701 2006-10-26  Thiago Macieira  <thiago@kde.org>
702
703         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
704         bug 8780: the connection lock is only required while recording
705         the shared connection, so protect only that code
706         section. Don't require connection_lookup_shared to return a
707         locked connection.
708
709 2006-10-26  Thiago Macieira  <thiago@kde.org>
710
711         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
712         check if get_machine_uuid() returns NULL before proceeding any
713         further: we can't init the X atoms or create a session file
714         name if there is no machine ID.
715         This solves a crash reported by some users if
716         --exit-with-session was used without --autolaunch=<machine-id>
717
718 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
719
720         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
721         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
722
723         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
724         before we run dbus-launch
725
726         * configure.in: define TEST_BUS_BINARY to be the full path to 
727         dbus-daemon in the build root 
728
729 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
730
731         * dbus/Makefile.am:
732         * tools/Makefile.am:
733         * toos/dbus-uuidgen.1:
734                 Move the machine-id file to /var/lib/dbus 
735
736 2006-10-24  David Zeuthen  <davidz@redhat.com>
737
738         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
739         _dbus_assert (thread_init_generation != _dbus_current_generation)
740         not _dbus_assert (thread_init_generation == _dbus_current_generation)
741
742 2006-10-24  Thiago Macieira  <thiago@kde.org>
743
744         * dbus/dbus-sysdeps.h:
745         * dbus/dbus-sysdeps-unix.c: Add function
746         _dbus_make_file_world_readable that chmods a file to 0644.
747
748         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
749         Avoid writing to the static "argv" array, thereby avoiding a
750         COW on the child process.
751
752         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
753         call _dbus_make_file_world_readable on the created file.
754
755 2006-10-23  David Zeuthen  <davidz@redhat.com>
756
757         * dbus/dbus-memory.c: Use atomic variable to protect
758         n_blocks_outstanding otherwise OOM will be reported using SMP on
759         some arches
760         
761         * bus/dispatch.c: Add missing end of line characters
762
763         * bus/desktop-file.c (parse_section_start, parse_key_value) 
764         (bus_desktop_file_load): Propertly handle OOM
765
766         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
767         thread_init_generation equals _dbus_current_generation, not 0
768
769 2006-10-22  Havoc Pennington  <hp@redhat.com>
770
771         * dbus/dbus-connection-internal.h: move prototype of
772         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
773         it isn't in a public header and doesn't end up in the DBusBus
774         group in Doxygen
775
776 2006-10-21  Havoc Pennington  <hp@redhat.com>
777
778         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
779         the tarball if packagers want to run it
780
781         * cleanup-man-pages.sh: Add a script which munges all the internal
782         API man pages out of the Doxygen output. This reduces the size of
783         the installed man pages from 7 to 2 megs, and avoids
784         namespace-polluting pages. Right now (like Doxygen) this script
785         isn't in the build, it's something packagers can do manually.
786
787 2006-10-21  Havoc Pennington  <hp@redhat.com>
788
789         * dbus/dbus-connection.h: don't include the watch/timeout
790         functions in connection section
791
792 2006-10-21  Havoc Pennington  <hp@redhat.com>
793
794         * Documentation! Whee! Doxygen now 100% silent. If you make it
795         angry again, you will be punished.
796         
797 2006-10-21  Havoc Pennington  <hp@redhat.com>
798
799         * More documentation - all public API now documented according to
800         Doxygen
801
802 2006-10-21  Havoc Pennington  <hp@redhat.com>
803
804         * Document a bunch of undocumented stuff
805         
806 2006-10-21  Havoc Pennington  <hp@redhat.com>
807
808         * Clean up Doxygen group markers for public API so Doxygen finds
809         everything (not comprehensively fixed for private API).
810         Means all remaining Doxygen warnings are just about missing docs
811         and thus pretty simple to resolve.
812         
813 2006-10-21  Havoc Pennington  <hp@redhat.com>
814         
815         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
816
817         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
818         as DBUS_GNUC_DEPRECATED
819
820 2006-10-21  Havoc Pennington  <hp@redhat.com>
821
822         * Move all private API into the private Doxygen group sections of
823         the files, so they don't show up in the public API docs
824         
825 2006-10-21  Havoc Pennington  <hp@redhat.com>
826
827         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
828         dbus_message_iter_get_array_len().
829
830         * throughout: documentation improvements.
831
832 2006-10-20  Havoc Pennington  <hp@redhat.com>
833
834         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
835         matter, and the message-loader-breaker thing since nobody is going
836         to do it.  Add an item to 1.0 about supporting recursive locks
837         in dbus_threads_init_default() though, since it should be easy.
838
839         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
840         Fix this in the !dispatch case to avoid busy-looping after
841         disconnection
842
843         * More misc docs improvements
844
845 2006-10-19  Havoc Pennington  <hp@redhat.com>
846
847         * more Doxygen-related fixes (lots of moving things from the
848         public to internal section in dbus-connection.c)
849
850 2006-10-19  Havoc Pennington  <hp@redhat.com>
851
852         * Fix a pile of Doxygen warnings and missing docs
853
854 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
855
856         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
857         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
858         instead of a void *.  kqueue uses this to get the context's loop
859         while the other modules ignore the parameter.  This allows us to
860         avoid platform conditionals
861
862         * bus/bus.c (process_config_postinit): Pass in the context to the 
863         watch
864
865 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
866
867         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
868         when starting the system bus
869
870 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
871
872         * configure.in: More fixups for cross compile (Patch from 
873         Marco Pracucci <development at pracucci dot com>)
874
875 2006-10-17  Havoc Pennington  <hp@redhat.com>
876
877         * tools/dbus-send.c (main): don't close shared connection, fix
878         from Timo Hoenig
879
880 2006-10-17  Havoc Pennington  <hp@redhat.com>
881
882         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
883
884         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
885         since realistically it doesn't look like we'll be changing it
886         anymore.
887
888 2006-10-17  Havoc Pennington  <hp@redhat.com>
889
890         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
891         be used for return_if_fail type warnings; prefixes the pid, and
892         fatal by default.
893
894 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
895
896         * configure.in: Released 1.0 RC 2(0.94)
897         Add check for -fPIC and enable it if available
898
899 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
900
901         * doc/TODO: Remove the check TODO item
902
903 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
904
905         * dbus-transport-socket.c (exchange_credentials):
906         Print out more detailed errors if reading or sending
907         credentials fail (Patch from Julio M. Merino Vidal 
908         <jmmv at NetBSD dot org>)
909
910 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
911
912         * configure.in: when checking for posix getpwnam_r assume true
913         for cross compiles
914
915 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
916
917         * configure.in: Check for gethostbyname first before we check for it
918         in libnsl.  On gnu systems it is implemeneted 
919
920 2006-10-13  Havoc Pennington  <hp@redhat.com>
921
922         * dbus/dbus-connection.c
923         (dbus_connection_send_with_reply_and_block): fix to handle closed
924         connections, from Tambet Ingo bug #8631
925
926 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
927
928         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
929
930 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
931
932         * test/name-test/Makefile.am: don't link against both libdbus and
933         libdbus-convenience
934
935 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
936
937         * configure.in: check for dirfd even if it is a macro
938         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
939
940 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
941
942         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
943         avoid using dirfd on systems that don't have dirfd 
944         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
945
946 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
947
948         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
949         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
950
951         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
952         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
953         macro because _dbus_abort calls it
954
955         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
956         works
957
958 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
959
960         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
961         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
962
963 2006-10-02  Thiago Macieira  <thiago@kde.org>
964
965         * tools/dbus-launch.c (main): make it complain and abort
966         execution in case an unknown option is given. Also, process
967         the '--' argument as the end of arguments.
968
969 2006-10-01  Havoc Pennington  <hp@redhat.com>
970
971         * tools/dbus-launch.c (print_variables): if no syntax is given,
972         don't print something that's sort-of-half-sh-syntax, just print
973         a plain key-value pairs thing.
974
975         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
976         the local machine representation (but still have the hostname in
977         the display). Remove the hostname from the display if it is
978         localhost. Change session files to be named
979         ~/.dbus/session-bus/machine-display. Change X atoms to be
980         underscore-prefixed so nobody whines about ICCCM compliance.
981         Otherwise name them the same as the env variables.
982         Change session file format to include key-value pairs and an
983         explanatory comment. Keys are the same as the env variables.
984         (set_address_in_x11): X property format can't depend on
985         sizeof(pid_t) on a particular machine, fix to always be 32 bits
986
987         * tools/dbus-launch.c: make --autolaunch take a machine id
988         argument. If --autolaunch is used with a program to run, complain
989         for now (but add a FIXME). Also, don't look for existing bus if 
990         there's a program to run (but add a FIXME).
991
992         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
993         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
994         just to get this, and avoids duplicating uuid-reading code).
995
996         * tools/dbus-launch.1: clarify various things
997         
998 2006-10-01  Havoc Pennington  <hp@redhat.com>
999
1000         * test/test-service.c (path_message_func): remove broken extra
1001         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
1002
1003         * test/test-shell-service.c (path_message_func): same fix
1004         
1005         * dbus/dbus-connection.c
1006         (_dbus_connection_get_dispatch_status_unlocked): break up the
1007         function a little for clarity and fix the notification of
1008         dbus-bus.c to not require dispatch to be complete
1009
1010         * dbus/dbus-connection.c (dbus_connection_unref): improve the
1011         warning when you try to finalize an open connection.
1012         
1013 2006-10-01  Havoc Pennington  <hp@redhat.com>
1014
1015         * dbus/dbus-bus.c
1016         (internal_bus_get): only weak ref the connection; this means 
1017         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1018         called safely in any context
1019         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1020         unref
1021
1022         * dbus/dbus-connection.c
1023         (_dbus_connection_get_dispatch_status_unlocked): move
1024         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1025         when queuing Disconnected instead of when the Disconnected message
1026         arrives, so dbus_bus_get() won't return closed connections.
1027         
1028 2006-10-01  Havoc Pennington  <hp@redhat.com>
1029
1030         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1031         Add a hack to make DBusNewConnectionFunction work right.
1032
1033         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1034         the hack here. Also, fix the todo about refcount leak.
1035         
1036         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1037         and use the hack here
1038         
1039         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1040         "shareable" flag; this was completely broken, since it meant 
1041         dbus_connection_open() returned a connection of unknown
1042         shared-ness. Now, we always hold a ref on anything opened 
1043         as shareable.
1044
1045         Move the call to notify dbus-bus.c into
1046         connection_forget_shared_unlocked, so libdbus consistently forgets
1047         all its knowledge of a connection at once. This exposed numerous
1048         places where things were totally broken if we dropped a ref inside
1049         get_dispatch_status_unlocked where
1050         connection_forget_shared_unlocked was previously, so move
1051         connection_forget_shared_unlocked into
1052         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1053         exit_on_disconnect here.
1054
1055         (shared_connections_shutdown): this assumed weak refs to the
1056         shared connections; since we have strong refs now, the assertion 
1057         was failing and stuff was left in the hash. Fix it to close
1058         still-open shared connections.
1059         
1060         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1061         debug pipe connections
1062         
1063         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1064         dbus-bus.c if the closed connection is in fact shared
1065         (_dbus_connection_close_possibly_shared): rename from 
1066         _dbus_connection_close_internal
1067         (dbus_connection_close, dbus_connection_open,
1068         dbus_connection_open_private): Improve docs to explain the deal
1069         with when you should close or unref or both
1070
1071         * dbus/dbus-bus.c
1072         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1073         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1074         loop over all connections
1075
1076         * test/test-utils.c (test_connection_shutdown): don't try to close
1077         shared connections.
1078
1079         * test/name-test/test-threads-init.c (main): fix warnings in here
1080
1081         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1082         env variable to cause blocking waiting for gdb; drop
1083         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1084         unconditionally.
1085
1086         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1087         so _dbus_print_backtrace works.
1088
1089         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1090         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1091         of -rdynamic/-export-dynamic
1092         
1093 2006-09-30  Havoc Pennington  <hp@redhat.com>
1094
1095         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1096         (internal_bus_get): fix screwy code formatting. whoever committed
1097         that was not paying attention!
1098
1099 2006-09-30  Havoc Pennington  <hp@redhat.com>
1100
1101         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1102         reflect addition of interfaces.
1103
1104         * doc/dbus-specification.xml: describe a new
1105         org.freedesktop.DBus.Peer.GetMachineId method
1106
1107         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1108         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1109         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1110         at end of skip_white
1111         (_dbus_string_chop_white): new function
1112
1113         * bus/connection.c (bus_connections_setup_connection): call
1114         dbus_connection_set_route_peer_messages.
1115
1116         * dbus/dbus-connection.c
1117         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1118         support a GetMachineId method.
1119
1120         Also, support a new flag to let the bus pass peer methods through
1121         to apps on the bus, which can be set with
1122         dbus_connection_set_route_peer_messages.
1123
1124         Finally, handle and return an error for anything unknown on the
1125         Peer interface, which will allow us to extend the Peer interface
1126         in the future without fear that we're now intercepting something
1127         apps were wanting to see.
1128         
1129         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1130         dbus/dbus-uuidgen.c
1131
1132         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1133         binary here, since most of the code is already in libdbus
1134
1135         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1136         uuid from the system config file
1137
1138         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1139         (_dbus_read_uuid_file_without_creating) 
1140         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1141         uuid-related functions, partly factored out from dbus-server.c
1142
1143         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1144         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1145
1146         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1147
1148         * tools/dbus-cleanup-sockets.1: explain what the point of this
1149         thing is a bit more
1150
1151         * autogen.sh (run_configure): add --config-cache to default
1152         configure args
1153
1154         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1155         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1156
1157         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1158         don't try to save address, fixes crash in make check
1159         
1160 2006-09-30  Thiago Macieira  <thiago@kde.org>
1161
1162         * configure.in: add DBUS_BINDIR as a #define to C source code.
1163
1164         * tools/dbus-launch.c
1165         * tools/dbus-launch.h
1166         * tools/dbus-launch-x11.c:
1167         * tools/dbus-launch.1: Add the --autolaunch option to
1168         dbus-launch, which makes it scan for an existing session
1169         started with --autolaunch. With that option, it also creates
1170         an X11 window and saves the bus address and PID to it.
1171
1172         * dbus/dbus-sysdeps.h:
1173         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1174         a function that runs "dbus-launch --autolaunch" to retrieve
1175         the running D-Bus session address (or start one if none was running)
1176
1177         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1178         address protocol, which tries to get the running session from
1179         dbus-launch.
1180
1181         * dbus/dbus-bus.c:
1182         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1183         D-Bus session bus address.
1184
1185         * dbus/dbus-connection.c: Fix horrible typo in error message.
1186
1187 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1188
1189         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1190
1191 2006-09-17  Havoc Pennington  <hp@redhat.com>
1192
1193         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1194         fix so that if unix_user_function is set on windows, we still
1195         do the default check that the auth identity matches the bus identity
1196
1197 2006-09-16  Havoc Pennington  <hp@redhat.com>
1198
1199         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1200         to _dbus_transport_open_platform_specific,
1201         _dbus_transport_open_socket,
1202         and _dbus_transport_open_debug_pipe
1203
1204         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1205
1206 2006-09-16  Havoc Pennington  <hp@redhat.com>
1207
1208         Attempt auditing public API to remove all cases where a Unix
1209         function returns weird emulated goo to Windows. This probably 
1210         breaks the bus daemon on Windows, to fix it again we may 
1211         need to stop processing unix-specific config options on Windows,
1212         and may need to add Windows-specific public API or config options.
1213         
1214         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1215         to reflect added interfaces; should not break soname.
1216         
1217         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1218         not invoke unix user function on Windows. Kind of a hacky fix, but 
1219         we don't want a "unix uid" leaking out on Windows.
1220
1221         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1222         to get the socket fd on Windows or UNIX
1223         (dbus_connection_get_unix_fd): make this always fail on Windows
1224
1225 2006-09-16  Havoc Pennington  <hp@redhat.com>
1226
1227         * dbus/dbus-server.c (dbus_server_listen): change how this works
1228         to be able to delegate to a set of handlers that can succeed,
1229         fail, or choose not to handle. Allows us to have 
1230         dbus_server_listen_platform_specific.
1231
1232         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1233         factor out the tcp socket stuff to be used on windows, leaving
1234         unix domain socket only in dbus-socket-unix.c
1235
1236         * dbus/dbus-transport-socket.c
1237         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1238         stuff to be used on windows, leaving unix domain socket only 
1239         in dbus-transport-unix.c
1240
1241         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1242         temporary hack to be sure this fails on windows
1243         (dbus_connection_get_unix_process_id): ditto
1244
1245 2006-09-16  Havoc Pennington  <hp@redhat.com>
1246
1247         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1248         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1249         _dbus_open_socket so the domain/type/protocol from system headers
1250         are not required. This is kind of pointless though unless we move
1251         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1252         sysdeps-unix.c, which would mean adding a wrapper around
1253         bind/listen/etc.
1254         Also, add DBusError to the socket-opening functions so they 
1255         don't require use of errno.
1256
1257 2006-09-16  Havoc Pennington  <hp@redhat.com>
1258
1259         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1260         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1261
1262         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1263         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1264         functions specifically for sockets only, and move generic 
1265         read/write/open/close into unix-specific code.
1266
1267 2006-09-14  Havoc Pennington  <hp@redhat.com>
1268
1269         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1270         complaint about accessing revents when poll returns 0, from Julian Seward.
1271
1272 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1273
1274         * Released 1.0 RC 1 (0.93) 
1275
1276 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1277
1278         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1279         use _dbus_close instead of close
1280
1281 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1282
1283         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1284         credentials.  Fixes "external" authentication under e.g. NetBSD
1285         which does not support any other socket credentials mechanism.
1286         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1287
1288 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1289
1290         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1291         dbus_threads_init and be used by the dbus mutex functions to
1292         avoid deadlocks.
1293
1294         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1295
1296 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1297
1298         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1299         use threadsafe readdir_r instead of readdir
1300
1301 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1302
1303         * dbus-threads.c (dbus_threads_init_default): New method for
1304         initializing the internal thread implementation (Patch from
1305         Alexander Larsson <alexl at redhat dot com>)
1306
1307 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1308
1309         * remove a bunch of todo items from the 1.0 list
1310
1311 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1312
1313         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1314         key not found
1315
1316 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1317
1318         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1319         complex debugging code
1320
1321         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1322         between the test suite ifdefs
1323         (_dbus_verbose_bytes): return if verbosity is not enabled 
1324
1325 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1326
1327         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1328         remove DBusMark
1329
1330 2006-09-10  Havoc Pennington  <hp@redhat.com>
1331
1332        patch mostly by Peter Kümmel, bug #8211
1333         
1334         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1335         unix-specific stuff in dbus-sysdeps.c
1336
1337         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1338         and move unix-specific stuff to dbus-sysdeps-unix.c
1339
1340         * configure.in: check HAVE_ERRNO_H
1341         
1342 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1343
1344         * bus/test-main.c (main): Initialize threading during tests
1345
1346         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1347         Unlock connection on error
1348         (generate_local_error_message): static method for generating
1349         an error message when we don't have a message to reply to
1350         (_dbus_connection_block_pending_call): Send a disconnect error
1351         instead of just a timeout (NULL) when the bus gets disconnected
1352         while blocking for a reply.
1353         
1354 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1357         filters (Patch from Kimmo Hämäläinen 
1358         <kimmo dot hamalainen at nokia dot com>)
1359
1360 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1361
1362         * dbus/dbus-connection-internal.h: Add prototype for 
1363         _dbus_connection_test_get_locks to remove warning
1364
1365 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1366
1367         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1368         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1369         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1370
1371 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1372
1373         * Clean up close calls to use _dbus_close (Patch from 
1374         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1375
1376 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1377
1378         * doc/TODO:
1379         - Remove pending call locking todo item
1380         - dbus_connection_open now holds hard ref.  Remove todo item
1381         - do proper locking on _dbus_bus_check_connection_and_unref
1382           and handle DBUS_BUS_STARTER. Remove todo item
1383         - Warn on closing of a shared connection.  Remove todo item
1384
1385         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1386         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1387         so we don't get the warning when closing shared connections
1388
1389         * test/test-service.c, test/test-shell-service.c: Applications
1390         don't close shared connections themselves so we unref instead of
1391         close
1392
1393         * test/test-utils.c (test_connection_shutdown): Close the connection
1394
1395         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1396         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1397         method on a locked connection.  
1398         Make sure we call _dbus_connection_unref_unlocked instead of 
1399         dbus_connection_unref also.
1400         Handle DBUS_BUS_STARTER correctly
1401
1402         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1403         Mark as shared and hard ref the connection
1404         (connection_forget_shared_unlocked): Remove the hard ref from the 
1405         connection
1406         (_dbus_connection_close_internal_and_unlock):  New internal function
1407         which takes a locked connection and unlocks it after closing it
1408         (_dbus_connection_close_internal): New internal function which acts
1409         like the origonal dbus_connection_close method by grabbing a connection
1410         lock and calling _dbus_connection_close_internal_and_unlock
1411         (dbus_connection_close): Public close method, warns when the app
1412         trys to close a shared connection
1413
1414 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1415
1416         * bus/driver.c:
1417         (bus_driver_generate_introspect_string): New method for populating
1418         a DBusString with the introspect data
1419         (bus_driver_handle_introspect): Move introspect generation code to 
1420         bus_driver_generate_introspect_string
1421
1422         * bus/main.c:
1423         (introspect): New function which prints out the intropect data and
1424         exits
1425         (main): Add a --introspect switch
1426
1427 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1428
1429         * doc/TODO: Removed dtd publishing item.  
1430         It seems the dtd has already been added at
1431         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1432
1433 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * doc/TODO, various source files: Audited todo's and FIXME's and
1436         prepended the ones we should be looking at with 1.0.  Those
1437         prepended with 1.0? need clerification or might not be needed
1438         for 1.0
1439
1440 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1441
1442         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1443         NULL in the public API (Patch from Kimmo Hämäläinen 
1444         <kimmo dot hamalainen at nokia dot com>)
1445
1446 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1447
1448         * configure.in: Fix for OS-X compile time endian issues (patch from
1449         Benjamin Reed <ranger at befunk dot com>)
1450
1451 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1452
1453         * configure.in: Check for no-common compiler flag (OS-X fix from
1454         Benjamin Reed <ranger at befunk dot com>)
1455
1456 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1457
1458         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1459         <fcrozat at mandriva dot com>)
1460
1461 2006-08-29  Havoc Pennington  <hp@redhat.com>
1462
1463         * test/test-service.c (path_message_func): fix lack of return value
1464
1465         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1466         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1467         any more sense than on anything else in this file.
1468         (_dbus_get_tmpdir): add const to return value, and keep the
1469         results of the various getenv around in a static variable.
1470
1471 2006-08-29  Havoc Pennington  <hp@redhat.com>
1472
1473         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1474         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1475
1476 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1477
1478         * test/Makefile.am: change find to use syntax that works with non
1479         gnu versions of find
1480
1481 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1482
1483         * dbus/dbus-transport.c: fix invalid deref when checking if
1484         a vtable method exists (Patch from Christian Ehrlicher 
1485         <ch dot ehrlicher at gmx dot de>)
1486
1487 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1488
1489         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1490         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1491         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1492         <bernard at brenda-arkle dot demon dot co dot uk>)
1493
1494 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1495
1496         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1497         default case
1498
1499 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1500
1501         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1502         it works on any system providing this interface, not only FreeBSD.
1503         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1504
1505 2006-08-20  Havoc Pennington  <hp@redhat.com>
1506
1507         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1508         the docs
1509
1510 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1511
1512         * Released 0.92 
1513
1514 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1515
1516         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1517         to reflect the init late change
1518
1519         * bus/bus.c (bus_context_new): Check user before we fork so we can
1520         print out an error message a user will be able to see
1521
1522 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1523
1524         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1525
1526         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1527         Add two more global locks for use on windows platforms.  These are
1528         unused on non-windows platforms but are not ifdefed out to avoid
1529         potential bugs (i.e. the few bytes lost does not warrent the extra
1530         maintanence and complexity that having seperate sets of locks would
1531         cause)
1532
1533 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1534
1535         * bus/services.c (bus_registry_acquire_service): Return an error
1536         when an application tries to register the org.freedesktop.DBus Bus Name
1537
1538         * bus/services.c (bus_registry_release_service): Return an error
1539         when an application tries to release the org.freedesktop.DBus Bus Name
1540
1541 2006-08-17  Alp Toker  <alp@atoker.com>
1542
1543         * doc/dbus-specification.xml: Fix some minor typos.
1544
1545 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1546
1547         * configure.in: use $with_init_scripts instead of $operating_system
1548         to determine where to store the pid since the init scripts manipulate 
1549         the pid file (patch from Marcelo Ricardo Leitner 
1550         <marcelo dot leitner at terra dot com dot br>.  
1551
1552 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1553
1554         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1555         static DBusList *uninitialized_condvar_list to support new late 
1556         initialization threading model.  In this model threads can be initialized
1557         even after the D-Bus API has been used but still needs to be initialized 
1558         before the second thread has been started.  Mutexes and condvar addresses
1559         are stored in the two static lists and are replaced with actuall locks
1560         when threads are initalized.
1561         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1562         the location into the static list
1563         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1564         from the static list and freeing the mutex
1565         (_dbus_condvar_new_at_location): New method for creating a conditional 
1566         variable and placing the location into the static list
1567         (_dbus_condvar_free_at_location): New method for removing a conditional
1568         variable location from the static list and freeing the conditional variable 
1569         (init_uninitialized_locks): Atomic method which goes through the static 
1570         lists of mutex and condvar location and updates them with actuall locks
1571         (init_global_locks): changed to init_locks
1572         
1573         * dbus/dbus-connection.c:
1574         (_dbus_connection_test_get_locks): New method for tests to check connections
1575         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1576         condvar API
1577         (dbus_connection_allocate_data_slot): Pass in the global lock address
1578         to _dbus_data_slot_allocator_alloc
1579
1580         * dbus/dbus-dataslot.c:
1581         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1582         instead of the mutex itself
1583
1584         * dbus/dbus-message.c:
1585         (dbus_message_allocate_data_slot): Pass in the global lock address
1586         to _dbus_data_slot_allocator_alloc
1587
1588         * dbus/dbus-pending-call.c:
1589         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1590         to _dbus_data_slot_allocator_alloc
1591
1592         * dbus/dbus-server.c:
1593         (_dbus_server_init_base): Use the new at_location mutex API
1594         (dbus_server_allocate_data_slot): Pass in the global lock address
1595         to _dbus_data_slot_allocator_alloc
1596
1597         * test/name-test/test-threads-init.c: New test case for late thread
1598         initialization
1599
1600 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1601
1602         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1603         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1604         causes compile problems when asserts are turned off
1605         Keeping _dbus_warn for printing out the message so even if
1606         asserts are turned off the user gets the messages that something is 
1607         wrong 
1608
1609 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1610
1611         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1612
1613         * bus/services.c (bus_service_list_queued_owners):
1614         Add a pointer cast to fix compiler warning
1615
1616         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1617         return a NULL instead of FALSE since the return type
1618         is not expecting a boolean
1619
1620         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1621         Remove unused variable
1622
1623         * dbus/dbus-marshal-recursive-util.c (node_new):
1624         return a NULL instead of FALSE since the return type
1625         is not expecting a boolean
1626
1627         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1628         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1629         because we are expecting a pointer not a boolean
1630
1631         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1632         add void as the parameter so some compilers
1633         don't complain
1634
1635         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1636           _dbus_transport_new_for_tcp_socket):
1637         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1638         because we are expecting a pointer not a boolean
1639
1640         * test/shell-test.c (test_command_line):
1641         cast the second argument to _dbus_list_append to avoid compiler
1642         warnings
1643
1644         * test/test-names.c (main): remove unused variable
1645
1646         * test/test-service.c (check_hello_from_self_reply):
1647         Initialize echo_message and echo_reply to NULL
1648         
1649         * test/test-shell-service.c (handle_echo):
1650         Remove unused variable and cast the third parameter passed to
1651         dbus_connection_get_object_path_data to avoid compiler warrnings
1652
1653         * test/name-test/test-names.c (clear_message_queue):
1654         Remove unused function
1655
1656         * test/name-test/test-pending-call-dispatch.c:
1657         Fix format string in printf
1658
1659
1660 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1661
1662         * dbus/dbus-bus.c:
1663         * test/name-test/test-names.c:
1664         Remove test method dbus_bus_connection_get_unique_name because 
1665         we already have public method dbus_bus_get_unique_name that 
1666         does the exact same thing
1667
1668 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1669
1670         * dbus/dbus-signature.c:
1671         fix typos in Julio's previous patch which cause make check to fail
1672
1673 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1674
1675         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1676         In any case it was wrong since this is a test checking to see if
1677         address parsing is correct.  There was no need to get the true
1678         tmp directory.  
1679
1680 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1681
1682         * dbus/dbus-macros.h: Revert the addition of stddef.h
1683         as we should not be adding it to library headers 
1684
1685 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1686
1687         * dbus/dbus-signature.c:
1688         Fix the unit tests so that they work if assertions are not enabled.
1689         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1690
1691 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1692
1693         * tools/run-with-tmp-session-bus.sh:
1694         * test/name-test/run-test.sh:
1695         Remove bashisms (patch from Julio M. Merino Vidal
1696         <jmmv at NetBSD dot org>)
1697
1698 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1699
1700         * configure.in: add a version (>= 2.6.0) check for libxml2
1701
1702 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1703
1704         * configure.in: make sure the compiler supports -Wfloat-equal
1705         
1706         * bus/dir-watch-dnotify.c: move functional code after 
1707         variable declerations (C99 fix)  (patches from Jens Granseuer
1708         <jensgr at gmx dot net>
1709
1710 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1711
1712         * dbus/dbus-macros.h:
1713         add #include <stddef.h> so that Sun compilers don't complain about
1714         the defining NULL
1715
1716 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1717
1718         * dbus/dbus-sysdeps.c:
1719         * dbus/dbus-address.c:
1720         * bus/activation.c:
1721         * test/shell-test.c:
1722         don't hardcode tmp directory (patch from Dave Meikle 
1723         <dmk at davemeikle dot co dot uk>)
1724
1725 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1726
1727         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1728         Change an assert to a detailed warning and abort.  
1729         When allocator->lock != mutex it indicates that the user has failed
1730         to initalize threads before using the D-Bus library.  This warning
1731         helps the user identify the issue and fix their app.
1732
1733 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1734
1735         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1736         with cleanups of bugs found from Coverity reports:
1737
1738         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1739         close the file on error to avoid a leak
1740
1741         * bus/expirelist.c (bus_expire_list_test):
1742         Check for NULL on dbus_new0
1743
1744         * bus/activation.c (update_directory):
1745         remove dead code
1746
1747         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1748         Fix some leaks
1749
1750         * bus/bus.c (process_config_every_time):
1751         Fixed a leak
1752
1753         * bus/desktop-file.c (parse_key_value):
1754         Fixed leak
1755
1756         * bus/selinux.c (bus_selinux_id_table_insert):
1757         Fixed leak
1758
1759 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1760
1761         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1762         remove dead code
1763
1764 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1765
1766         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1767         #!/bin/bash
1768
1769 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1770
1771         * Doxyfile.in: fix the INPUT line so we can generate docs 
1772         when sourcedir != builddir (patch from Cygwin Ports maintainer
1773         <yselkowitz at users dot sourceforge dot net>
1774
1775 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1776
1777         * dbus/dbus-sysdeps.h:
1778         * dbus/dbus-sysdeps.c: 
1779         * dbus/dbus-string.c: 
1780         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1781         GLib's function which does the same thing
1782
1783         * configure.in:
1784         * bus/Makefile.am:
1785         * bus/dir-watch-default.c:
1786         * bus/dir-watch-dnotify.c:
1787         * bus/dir-watch-kqueue.c:
1788         Add kqueue directory watching for freebsd and split the directory
1789         watching code into seperate files per method/arch
1790         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1791
1792 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1793
1794         * configure.in:
1795         * tools/Makefile.am:
1796         * tools/dbus-launch.c:
1797         * bus/Makefile.am:
1798         allow --with-dbus-daemondir switch to be used to make the
1799         daemon install to a seperate bindir like /usr/libexec
1800         (patch from Brian Cameron <brian dot cameron at sun dot com)
1801
1802 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1803
1804         * bus/Makefile.am (install-data-hook): removed the slash after 
1805         $(DESTDIR) so we don't get the double slash which does not work
1806         in windows (patch from Andras Porjesz 
1807         <andras dot porjesz at siemens dot com>)
1808
1809 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1810
1811         * dbus/dbus-sysdeps.h:
1812         * dbus/dbus-sysdeps.c: 
1813           add _dbus_printf_length (patch from Peter Kümmel 
1814           <syntheticpp at gmx dot net>)
1815
1816 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1817
1818         * dbus/dbus-internals.c: unistd.h is not used 
1819         (_dbus_verbose_real): only enable verbose printing 
1820         if DBUS_VERBOSE environment var is set to '1'
1821         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1822
1823 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1824
1825         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1826         so we still compile on older gcc (patch from Frederic Peters 
1827         <fpeters at 0d dot be>
1828
1829 2006-08-04  Havoc Pennington  <hp@redhat.com>
1830
1831         * configure.in: add -Wdeclaration-after-statement
1832
1833         * dbus/dbus-connection.c: change all the pending call stuff to
1834         reflect the fact that pending call operations use the connection
1835         lock
1836
1837         * dbus/dbus-pending-call.c: add locking here
1838
1839         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1840         field const consistent with how message field is done
1841
1842 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1843
1844         * s/D-BUS/D-Bus/g
1845
1846 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1847
1848         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1849         <in7y118 at public.uni-hamburg dot de> - fix invalid
1850         read/write reported by valgrind
1851
1852 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1853
1854         * Released 0.91
1855
1856 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1857
1858         * dbus/dbus-connection.c:
1859         (_dbus_connection_attach_pending_call_unlocked):
1860         (connection_timeout_and_complete_all_pending_calls_unlocked):
1861         Make sure we set timeout_added on pending calls to FALSE when
1862         we remove the timeout from the connection
1863
1864 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1865
1866         * Removed some extra bindings stuff lingering around (thanks timo)
1867         * dbus-pendingcall.c (_dbus_pending_call_new): 
1868         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1869         when we tried to take a lock on an already locked connection
1870
1871 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1872
1873         * Released 0.90
1874
1875 2006-07-17  Havoc Pennington  <hp@redhat.com>
1876
1877         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1878         ints, reported by Owen Taylor
1879
1880 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1881
1882         * doc/TODO:
1883         * dbus/dbus-bus.c:
1884         * dbus-errors.c:
1885         * dbus/dbus-marshal-validate.c:
1886           Removed TODO items which were fixed or are no longer relevent
1887
1888 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1889
1890         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1891         Remove stray files from the stripped bindings
1892
1893 2006-07-16  Havoc Pennington  <hp@redhat.com>
1894
1895         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1896         Improve the error message on reply timeout
1897
1898 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1899
1900         * Remove all bindings
1901
1902 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1903
1904         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1905         and set pending_reply out arg to NULL is connection is disconnected
1906         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1907         static method for cleaning up pending calls on disconnect
1908         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1909         calls queued timeouts on disconnect 
1910
1911          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1912         Remove 
1913
1914 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1915
1916         * bus/activation.[ch] (bus_activation_list_services): new function to 
1917         get the list of services that can be activated
1918
1919         * bus/dispatch.c: test coverage for the new bus method
1920         ListActivatableNames
1921
1922         * bus/driver.c: new bus method ListActivatableNames to get the list of
1923         services that can be activated
1924
1925         * doc/dbus-specification.xml: ListActivatableNames method documentation
1926
1927 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1928         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1929         source files
1930
1931 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1932         * dbus/dbus-message-factory.c:
1933         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1934
1935 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1936         * dbus/dbus-connection-internal.h:
1937         * dbus/dbus-connection.c:
1938         * file dbus/dbus-pending-call.c:
1939         * dbus/dbus-pending-call.h:
1940         Make DBusPendingCall an opaque type even to D-Bus internals
1941
1942 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1943
1944         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1945         connection_close
1946
1947         * dbus/dbus-connection.c: include dbus-bus.h
1948         (_dbus_connection_read_write_dispatch): make static
1949
1950 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1951
1952         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1953         function
1954         (dbus_connection_dispatch): On disconnect unref any shared connections
1955
1956         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1957         for cleaning up shared connections on disconnect
1958         (internal_bus_get): get a hard refrence to shared connections when
1959         they are created
1960         
1961         * doc/TODO: Remove items which are no longer relevent or have been fixed
1962         Split 1.0 todo items with a 0.90 freeze todo list
1963  
1964 2006-06-14  Ross Burton  <ross@openedhand.com>
1965
1966         * glib/dbus-gobject.c:
1967         Free a leaking GArray (surely not!) in dbus_g_method_return.
1968
1969 2006-06-14  Ross Burton  <ross@openedhand.com>
1970
1971         * tools/Makefile.am:
1972         * tools/dbus-monitor.c:
1973         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1974         Habacker).
1975         
1976 2006-06-14  Ross Burton  <ross@openedhand.com>
1977
1978         * tools/dbus-print-message.c:
1979         Also print the object path when outputting signals or method calls.
1980
1981 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1982
1983         * qt/src/Makefile.am: install the qdbus.h header.
1984         This allows people to actually use the installed code.
1985
1986 2006-06-12  Ross Burton  <ross@openedhand.com>
1987
1988         * glib/dbus-gproxy.c:
1989         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1990
1991 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1992
1993         * Released 0.62
1994
1995 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1996
1997         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1998         break pedantic builds. Closes bug 6043 (patch approved by
1999         Havoc back in February).
2000
2001 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2002
2003         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
2004         that took a QDBusMessage parameter.
2005         * qt/src/qdbusbus.h: Add a default flag for RequestName.
2006         * qt/tools/dbus.cpp: Don't use automatic call because we might
2007         be calling an async method: request a reply.
2008
2009 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2010
2011         * test/qt/*: Update the testcases, including testing the new
2012         functionality of sending null QByteArray and QString over the
2013         bus. Add new headertest test and restore the old
2014         qdbusxmlparser test.
2015
2016 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2017
2018         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2019         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2020
2021         * qt/examples/Makefile.am:
2022         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2023         form.
2024
2025         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2026         QByteArray() (nulls) over the bus.
2027         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2028         the one that has the signature suffix stripped.
2029         * qt/src/qdbusreply.h: Make some methods const.
2030
2031 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2032
2033         Patch from Timo Hoenig <thoenig@suse.de>.
2034
2035         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2036         required during build to EXTRA_DIST.
2037         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2038         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2039         * configure.in: Fix "make dist", take care that the Makefile for
2040         qt/dbus is being generated.
2041
2042 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2043
2044         * bus/bus.c: Fix eavesdropping on method calls
2045
2046 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2047
2048         * configure.in:
2049         * dbus/dbus-userdb-util.c:
2050         Add Solaris console owner patch from Artem Kachitchkine
2051
2052 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2053
2054         * qt/Makfile.am:
2055         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2056         reorganisation. Thanks to Timo Hoenig for pointing this out.
2057
2058 2006-06-06  Robert McQueen  <robot101@debian.org>
2059
2060         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2061           call to dbus_g_type_get_struct.
2062
2063 2006-06-06  Robert McQueen  <robot101@debian.org>
2064
2065         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2066           pointers were put into a GPtrArray-based specialised collection, and
2067           then freed along with the array. GValues which you add into
2068           collections or maps which have the NOCOPY flag set are assumed to not
2069           belong to the caller, so rather than the existing pointer-stealing
2070           semantics, they are copied instead. Given that the main consumers of
2071           this abstraction are the bindings themselves, I don't think this is
2072           too bad, but others should watch their choice of take vs set_static.
2073
2074 2006-06-06  Robert McQueen  <robot101@debian.org>
2075
2076         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2077           of g_slist_prepend not being used. Fixed copying of slist-based
2078           specialised collections, then wrote a test case and found that it was
2079           all broken. Went on to fix iterating and appending too. Good thing
2080           nobody uses this code yet.
2081
2082 2006-06-06  Robert McQueen  <robot101@debian.org>
2083
2084         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2085           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2086           are discarded without unsetting, so it makes no difference whether
2087           we take or set_static). Remove cases for G_TYPE_POINTER because
2088           there really is nothing useful we can do with them in our
2089           specialised types - we *need* boxed copy/free functions at the very
2090           least.
2091
2092 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2093
2094         * qt/dbus: Add directory. I had forgotten to add this
2095         yesterday after the move...
2096
2097         * qt/examples/Makefile.am:
2098         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2099
2100         * qt/tools/Makefile.am:
2101         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2102         Added feature to get and set properties.
2103         Added validation of service, object path and interface names.
2104
2105         * qt/tools/dbusidl2cpp.cpp: Two new features:
2106         1) Allow specifying both the header and the source file names,
2107         by separating them with a colon.
2108         2) Don't write an interface output if the -p switch wasn't
2109         given, but the -a was.
2110
2111         * qt/src/*: Fix usage of Iterators and ConstIterators.
2112         Fix shadowing of variables by other variables (-Wshadow).
2113         Fix keyword-cleanliness in headers.
2114         Fix ASCII-cast (QLatin1String, QLatin1Char).
2115         Fix validation of member names.
2116         Add extra checking of introspection data during XML parsing.
2117         Various bug fixes.
2118
2119 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2120
2121         * dbus/Makefile.am:
2122         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2123         qt/dbus/qdbus.h now.
2124
2125 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2126
2127         * configure.in: Make --disable-qt actually do
2128           something. Patch inspired by Zack Rusin.
2129
2130 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2131
2132         * qt/: Update to Subversion r548032.
2133         This includes a big reorganisation of the files inside the
2134         subdir.
2135
2136 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2137
2138         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2139         clear:  
2140         "Failed to connect to socket <host>:<port> <error>" instead of
2141         "Failed to connect to socket <host>: <error>:<port>"
2142
2143         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2144         for a tcp transport. 
2145
2146 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2147
2148         * qt/*: Update the QtDBus bindings up to revision 546310 in
2149         Subversion.
2150         This adds the dbuscpp2xml tool, that parses a C++ header and
2151         outputs a D-BUS Introspection XML.
2152
2153 2006-05-21  Havoc Pennington  <hp@redhat.com>
2154
2155         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2156         is not NULL when it shouldn't be. Also a couple of possible fixes
2157         for #4637 though I don't understand why the bug happens, to be
2158         honest... also the object constructor has an assert name != NULL
2159         and the name is only currently NULL for peer-to-peer proxies that 
2160         I don't think anyone uses? So it should be asserting.
2161         Anyway, for now at least see if we get an earlier assertion failure.
2162
2163         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2164         apparently broken code to be sure the tests fail and someone 
2165         will fix them...
2166
2167 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2168
2169         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2170         and arrays when they had a single element: has_next returns
2171         false, even before you read the element. So, instead, check
2172         the array length.
2173
2174 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2175
2176         * qt/qdbusmessage.cpp:
2177         * qt/qdbustypehelper_p.h:
2178         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2179         the list is a const-reference
2180
2181 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2182
2183         * Adding old doc patch that never got applied
2184         
2185         * dbus/bus.c (dbus_bus_add_match): Add documentation
2186
2187         * doc/dbus-specification.xml: Add documentation for the match rules
2188           and the AddMatch and RemoveMatch methods
2189
2190 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2191
2192         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2193         call (r535506)
2194
2195         * qt/dbusidl2cpp.cpp:
2196         * qt/qdbusabstractadaptor.cpp:
2197         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2198         sibling of the QDBusAbstractAdaptor objects instead of the
2199         parent. (r535848)
2200
2201         * qt/dbusidl2cpp.cpp:
2202         * qt/qdbusabstractinterface.cpp:
2203         * qt/qdbusabstractinterface.h:
2204         * qt/qdbusabstractinterface_p.h:
2205         * qt/qdbusinterface.cpp: Make properties in interfaces
2206         actually work. The code that was generated would not compile,
2207         due to moc calls to functions that did not exist. They now
2208         shall. (r536571)
2209
2210 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2211
2212         * Makefile.am:
2213         * configure.in:
2214         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2215         Thanks to Brad Hards for providing the patch
2216
2217 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2218
2219         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2220         call. (r535506)
2221
2222 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2223
2224         * qt/examples/dbus.cpp: Enhance error messages and use
2225         QDBusInterfacePtr.
2226
2227 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2228
2229         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2230         and disable the copy operators. (r533772, r534746)
2231
2232         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2233
2234         * qt/qdbusabstractinterface.cpp:
2235         * qt/qdbusabstractinterface.h: Change the default call mode to
2236         not use the event loop. Add convenience call() methods that
2237         take a CallMode parameter. (r534042)
2238
2239         * qt/qdbusconnection.h: Change the default call mode to not
2240         use the event loop. (r534042)
2241
2242         * qt/qdbusinterface.cpp:
2243         * qt/qdbusinterface.h: Add a method to tell us if the
2244         interface is valid (since we don't return a null pointer
2245         anymore) (r534099)
2246
2247         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2248         (r534101)
2249
2250         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2251         function in two so taht we get the chance to introspect
2252         without having a QDBusMessage (r534102)
2253
2254         * qt/qdbusbus.h:
2255         * qt/qdbusconnection.cpp:
2256         * qt/qdbusconnection_p.h:
2257         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2258         avoid a round-trip to the server when attempting to introspect
2259         one of our own objects. Also make sure the filter functions
2260         match the empty interface as well. (r534108)
2261         Don't keep the connection names. Instead, trust the unique
2262         connection name (r534111)
2263         Remove event loop usage (r534112)
2264
2265 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2266
2267         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2268         Brad Hards.
2269
2270 2006-04-28  Robert McQueen  <robot101@debian.org>
2271
2272         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2273         any order, making it easier for people who inherit from this
2274         object.
2275
2276 2006-04-28  Robert McQueen  <robot101@debian.org>
2277
2278         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2279         of memory from within pointer arrays and lists. Fixes bug #6300.
2280
2281 2006-04-28  Robert McQueen  <robot101@debian.org>
2282
2283         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2284         generating struct signatures. Fixes bug #6083.
2285
2286 2006-04-28  Robert McQueen  <robot101@debian.org>
2287
2288         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2289         to qdbusconnection_p.moc.
2290
2291 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2292
2293         * README, INSTALL: Doc fixes
2294         Patch from Brad Hards <bradh at frogmouth.net>
2295
2296 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2297
2298         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2299         the dynamic meta object. No need to guess which interface to
2300         call.
2301
2302 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2303
2304         * qt/qdbusconnection_p.h:
2305         * qt/qdbusmetaobject.cpp:
2306         * qt/qdbusmetaobject_p.h:
2307         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2308         for the dynamic meta object. No need to guess which
2309         interface to call.
2310         * qt/qdbusabstractinterface_p.h:
2311         * qt/qdbusconnection.cpp:
2312         * qt/qdbusintegrator.cpp:
2313         * qt/qdbusinterface.cpp:
2314         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2315         Add a QDBusRef that looks and behaves like DCOPRef.
2316
2317 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2318
2319         * dbus/dbus-connection.c: Interfaces are optional in method
2320         calls, so don't give up if the interface parameter is NULL.
2321         Patch reviewed by Havoc Pennington.
2322
2323 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2324
2325         * qt/qdbusreply.h: Add default constructor and operator=
2326           (r532625)
2327         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2328           in public headers (r532952)
2329         * qt/qdbusabstractinterface.cpp:
2330         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2331           make it the default (r532951)
2332
2333 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2334
2335         * dbus/dbus-connection.c: Fix asserts
2336         Patch from Tim Moloney <t.moloney at verizon.net>
2337
2338 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2339
2340         * mono/Connection.cs, mono/Message.cs: Check Target type
2341         Patch from Aaron Bockover (abockover at novell.com)
2342
2343 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2344
2345         * INSTALL: fine-tune the requirements for the Qt4 binding.
2346
2347 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2348
2349         * tools/dbus-print-message.c: Added support for printing of all 
2350           remaining data types. Fixed logic for indentation of compound
2351           data types.
2352         
2353 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2354
2355         * INSTALL: fill out content of file providing DBus specific
2356           build installations, followed by generic Auto* INSTALL file
2357           content
2358         
2359 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2360
2361         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2362           Patch by Stefan Eilers. (r529537)
2363
2364 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2365
2366         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2367           contents (r528208)
2368
2369 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2370
2371         * qt/Makefile.am: fix the dependency for
2372           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2373           not in qdbusconnection.cpp.
2374           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2375           spotting this.
2376
2377 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2378
2379         * qt/examples/listnames.cpp:
2380         * qt/examples/Makefile.am: Three ways to list the names on the
2381           bus.
2382
2383 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2384
2385         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2386           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2387
2388 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2389
2390         Merge from Subversion:
2391         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2392           something that exists (r526315)
2393         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2394           slots/signals (r526316)
2395         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2396           also return an unknown-method error if the parameters don't
2397           match for org.freedesktop.DBus.Properties. (r526842)
2398         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2399         * qt/qdbusintegrator.cpp: Restore the proper order of
2400           delivery: don't make method returns be delivered on priority
2401           (r528150)
2402
2403 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2404
2405         * configure.in qt/Makefile.am: add qt/examples
2406         * qt/examples: Add QtDBus example programs:
2407           - hello: Hello, World
2408           - ping: Simple method-calling program
2409           - pong: Simple object-exporting program (not using adaptors)
2410           - complexping: Interactive method-calling program 
2411                 (also gets and sets properties).
2412           - complexpong: Sample program exporting methods, signals and
2413                 properties, using adaptors.
2414           - dbus: Simple implementation of a generic method-calling
2415                 program, similar to 'dbus-send', but with semantics
2416                 similar to 'dcop'.
2417           - chat: Simplistic chat program, implemented using signals
2418                 and the system bus. Looks like IRC.
2419
2420 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2421
2422         * configure.in: Detect QtGui (necessary for one of the
2423           example programs). Note: this increases the minimum required
2424           version of Qt to 4.1.3.
2425
2426 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2427
2428         * test/qt/*: Sync with KDE Subversion revision 523647.
2429         Update the testcases to the new API. Remove testcases for
2430         classes that are no longer public or have been removed.
2431
2432 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2433
2434         * qt/*: 
2435         * dbus/qdbus.h: Sync with KDE Subversion revision
2436         523647. Hopefully, this will be the last of the
2437         source-incompatible changes. Documentation has been improved;
2438         support for QList<basic-types> has been added; QDBusObject is
2439         gone; QDBus(Abstract)Interface is now a QObject with
2440         auto-generated meta-object; QDBusIntrospection is marked
2441         private, since QMetaObject can be used now; lots of bugfixes.
2442
2443 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2444
2445         Patch from Milosz Derezynski <internalerror at gmail.com>
2446         
2447         * configure.in:
2448         Output the service directory in the configure summary
2449
2450         * dbus-1.pc.in:
2451         Add session_bus_services_dir
2452
2453 2006-03-10  Ross Burton  <ross@openedhand.com>
2454
2455         * tools/dbus-print-message.c:
2456         Add support for object paths and signatures.
2457
2458 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2459
2460         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2461         config reload.
2462         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2463         information caches
2464         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2465         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2466         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2467         * dbus/dbus-userdb.h: Add function to flush all user/group information
2468         caches.
2469
2470 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2471
2472         * qt/dbusidl2cpp.cpp:
2473         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2474         for dcopidl2cpp, found in the KDE installations (or the more
2475         modern kalyptus): generate Qt4 C++ code for the input XML
2476         introspection. Currently no IDL parsing.
2477
2478 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2479
2480         * test/qt/*: Update the self-tests.
2481
2482 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2483
2484         * qt/*: 
2485         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2486         represents the first feature-complete version of the Qt4
2487         bindings since I took ove maintainership.
2488
2489 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2490
2491         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2492         dir. This is C++, so we can't use the DBus ones.
2493
2494 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2495
2496         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2497         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2498
2499 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2500
2501         * dbus/dbus-connection.c: 
2502         (_dbus_connection_block_pending_call):
2503         Check to see if our data has already been read off the connection
2504         by another blocking pending call before we block in poll.
2505         (check_for_reply_and_update_dispatch_unlocked):
2506         Code taken from _dbus_connection_block_pending_call - checks for
2507         an already read reply and updates the dispatch if there is one.
2508
2509         * test/name-test/test-pending-call-dispatch.c:
2510         New test for making sure we don't get stuck polling a 
2511         dbus connection which has no data on the socket when
2512         blocking out of order on two or more pending calls.
2513
2514 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2515
2516         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2517         make/automake don't detect that we're talking about the same
2518         .lo file if I specify the full path to the source files.
2519
2520 2006-02-26  Havoc Pennington  <hp@redhat.com>
2521
2522         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2523
2524         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2525         session bus variable is unset, suggest "man dbus-launch" and "man
2526         dbus-daemon" to figure out how to fix the problem
2527
2528 2006-02-25  Havoc Pennington  <hp@redhat.com>
2529
2530         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2531         should make this thing use the new glib options parser
2532
2533 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2534
2535         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2536         .lo files taking moc sources.
2537
2538 2006-02-25  Havoc Pennington  <hp@redhat.com>
2539
2540         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2541         and install it as a public header
2542
2543 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2544
2545         * Released 0.61
2546
2547 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2548         
2549         * proxies.py: Fix the callchain
2550
2551 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2552         
2553         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2554
2555         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2556         dbus/dbus-sysdeps.c
2557
2558         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2559         call _dbus_group_info_free_allocated which causes infinite loop,
2560         correctly call _dbus_group_info_free
2561
2562 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2563
2564         * qt/qdbusinterface_p.h:
2565         * qt/qdbusinterface.cpp: Use the standard
2566         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2567         calls instead of creating one for us.
2568
2569         * qt/qdbusconnection_p.h:
2570         * qt/qdbusintegrator.cpp: Remove debugging code.
2571
2572         * qt/qdbusintegrator.cpp:
2573         * qt/qdbusmessage.cpp:
2574         * qt/qdbusmessage_p.h:
2575         * qt/qdbusmessage.h: Change the behaviour of automatic
2576         reply-sending: now a reply is always sent, unless the caller
2577         didn't request one or if the user slot has already sent one.
2578
2579 2006-02-16  Robert McQueen  <robot101@debian.org>
2580
2581         * configure.in: Patch from Debian packages by Sjoerd Simons
2582         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2583         arguments so it's possible to build both bindings in the
2584         same tree.
2585
2586         * qt/Makefile.am: Fix truncated value so that make dist works.
2587
2588 2006-02-16  Robert McQueen  <robot101@debian.org>
2589
2590         * acinclude.m4, configure.in: Patch from Brad Hards
2591         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2592         improving quoting, re-ordering a few checks, and a few other
2593         aesthetic tidy-ups.
2594
2595 2006-02-16  Robert McQueen  <robot101@debian.org>
2596
2597         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2598         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2599         assertion that the next element to read from the iter is fixed in
2600         size. This is not the case when you are at the end of the iter,
2601         because the next element type is INVALID.
2602
2603         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2604         a bogus assert which means that you may not initialise a 0-length
2605         string unless you provide a non-NULL pointer. This prevented
2606         you from marshalling messages containing zero-length arrays in
2607         some cases.
2608
2609         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2610         from Rob to correct bogus asserts when trying to demarshal an
2611         array and get_fixed_array got you 0 elements. Append nothing to
2612         the GArray in this case.
2613
2614         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2615         an empty array via the glib bindings. Without all of the above
2616         patches, this new test fails.
2617
2618 2006-02-16  Robert McQueen  <robot101@debian.org>
2619
2620         * glib/dbus-gmain.c: Make the previous commit compile.
2621
2622         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2623         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2624         specify sender_keyword="foo", path_keyword="bar" when adding
2625         a signal listener, so that you can bind to signals generically
2626         but still do something useful in your callback.
2627
2628         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2629         chars so that they're not cast to chars and made negative. Thanks
2630         to Jakub Stachowski for reporting this and testing the fix.
2631
2632 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2633
2634         * dbus/dbus-glib.h:
2635         * glib/dbus-gmain.h:
2636         (dbus_g_connection_open): new method for openning
2637         a connection to an arbitrary address in the glib bindings
2638
2639         * ChangeLog: checkin last entry which doesn't seem to be commited
2640
2641 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2642
2643         * tools/dbus-launch.c: Fixed sh syntax output
2644
2645 2006-02-13  Robert McQueen  <robot101@debian.org>
2646
2647         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2648         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2649         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2650         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2651         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2652         missing piece of the glib bindings jigsaw puzzle. This modifies
2653         the existing specialised types to have N type parameters (rather
2654         than the current 1 or 2 for arrays and dictionaries respectively).
2655         You can then use this to get a glib type to represent any arbitrary
2656         D-Bus struct type using dbus_g_type_get_struct. The only
2657         implementation of these types is with GValueArrays as before,
2658         but it's now possible to store these in arrays, emit them in
2659         signals, etc.
2660
2661 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2662
2663         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2664         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2665         <thiago.macieira at trolltech.com>
2666
2667 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2668
2669         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2670         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2671
2672 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2673
2674         * bus/connection.c (bus_connections_expect_reply): Make
2675         pending reply limit not common to all connections (Bug #5416)
2676         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2677
2678 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2679
2680         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2681
2682 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2683
2684         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2685         patch from Doug Goldstein <cardoe at gentoo.org>
2686
2687 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2688
2689         * mono/Arguments.cs: Fix a magic number in the mono bindings
2690         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2691
2692 2006-01-27  Robert McQueen  <robot101@debian.org>
2693
2694         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2695         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2696         when generating the client-side methods, instead of overloading
2697         CSymbol which broke everything horribly. My apologies.
2698
2699 2006-01-27  Robert McQueen  <robot101@debian.org>
2700
2701         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2702         by me and Rob Taylor to add a simple_free function to D-Bus map
2703         and collection types, which allows those types which can be freed
2704         with a GDestroyNotify (such as GHashTables and GArrays, but not
2705         GPtrArrays) to be stored as the values in hashtables.
2706
2707         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2708         Patch by Rob Taylor to add nested dicts to the glib tests to check
2709         the above code works, and appears not to leak when called repeatedly.
2710
2711 2006-01-27  Robert McQueen  <robot101@debian.org>
2712
2713         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2714         to free a D-Bus allocated string with dbus_free () instead of
2715         g_free ().
2716
2717 2006-01-27  Iain Holmes  <iain@openedhand.com>
2718
2719         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2720         method from being called multiple times.
2721
2722 2006-01-19  Robert McQueen  <robot101@debian.org>
2723
2724         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2725         <rob.taylor@collabora.co.uk> to add support for generating bindings
2726         to arrays that are represented as GPtrArrays rather than GArrays (ie
2727         size-variable things, such as strings, objects, structs, etc).
2728
2729 2006-01-05  Robert McQueen  <robot101@debian.org>
2730
2731         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2732         <ricardo.kekki@movial.fi> to make it possible to inherit from
2733         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2734         a private part, and moving the setting of the DBusGProxyManager into a
2735         connection property, allowing proper GObject construction.
2736
2737 2006-01-05  Robert McQueen  <robot101@debian.org>
2738
2739         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2740         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2741         annotations when generating glib client bindings.
2742
2743 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2744
2745         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2746
2747         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2748
2749 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2750
2751         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2752
2753 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2754
2755         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2756
2757 2005-12-19  Ross Burton  <ross@openedhand.com>
2758
2759         * doc/dbus-tutorial.xml:
2760         Document the Glib client-side bindings, and list all possible annotations.
2761
2762 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2763
2764         * dbus/bus.c (dbus_bus_release_name): Add documentation
2765
2766 2005-12-06  Robert McQueen  <robot101@debian.org>
2767
2768         * python/service.py: s/sucessful/successful/ so we're allocating to
2769         and reading from the same variable. Oops.
2770
2771 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2772
2773         * Released 0.60
2774
2775 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2776
2777         * test/qt/Makefile.am: build from srcdir
2778
2779         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2780         Note - this code is wrong and needs to be fixed by the Qt binding
2781         developers.  The flags should be treated as bitfields and not enums.
2782
2783         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2784
2785 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2786
2787         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2788           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2789           in production code
2790
2791 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2792
2793         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2794         method for getting messages off the bus in the absence of a
2795         mainloop.  This method is much like 
2796         dbus_connection_read_write_dispatch except it does not dispatch
2797         the messages to a registered filter function.  Instead it
2798         allows a developer to process messages by directly popping
2799         them off the bus.
2800
2801 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2802
2803         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2804         the parser to continue instead of returning error
2805         (bus_desktop_file_load): Do not free parser data when
2806         parse_section_start or parse_key_value fails because it was 
2807         already freed by parser_free (patch from Carlos Garcia Campos  
2808         <carlosgc at gnome.org>)
2809
2810 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2811
2812         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2813         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2814         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2815         test/test-segfault.c, test/test-utils.c,
2816         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2817         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2818         Various cleanup of dead code and compiler warnings (patch from
2819         Kjartan Maraas <kmaraas at gnome.org>) 
2820
2821 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2822
2823         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2824         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2825
2826 2005-11-27  Robert McQueen  <robot101@debian.org>
2827
2828         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2829         part of the preceding one. Oops. Merge patch by Johan Hedberg
2830         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2831         on big-endian platforms.
2832
2833         * test/python/test-client.py: Add some 16-bit integers to the test
2834         values.
2835
2836 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2837
2838         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2839         method return message for property getters
2840
2841 2005-11-27  Robert McQueen  <robot101@debian.org>
2842
2843         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2844         with type v of an instance of dbus.Variant(foo, type='x') caused
2845         it to be boxed twice before sending over the bus.
2846
2847         * python/dbus_bindings.pyx, python/service.py,
2848         test/python/test-client.py: Update the constants for the new
2849         request_name flags, and update comments/test cases now that queueing
2850         is the default action.
2851
2852 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2853
2854         * configure.in:
2855         - Change version to 0.60 for impending release
2856         - upped the sonames because of ABI and API breakage
2857
2858 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2859
2860         * configure.in: Add test/name-test/Makefile to the generated
2861         Makefile list
2862
2863         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2864         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2865         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2866         not to queue an ower if it can't be the primary owner
2867
2868         * bus/bus.h: Add new internal BusOwner struct
2869
2870         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2871         to bus_registry_ensure and don't set the prohibit_replacement flag
2872         since they are now set per BusOwner and not per name.
2873         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2874         that returns the list of connections in a name's connection queue
2875         
2876         * bus/services.c (struct BusService): remove prohibit_replacement field
2877         (struct BusOwner): new struct for keeping track of queued connections
2878         and their associated flags for the queue
2879         (struct BusRegistry): add a BusOwner memory pool
2880         (bus_registry_new): initialize the BusOwner memory pool
2881         (bus_registry_unref): free the BusOwner memory pool
2882         (_bus_service_find_owner_link): new internal method for
2883         searching the queue for a specific connection
2884         (bus_owner_set_flags): new method for adding setting the flags on a
2885         bus owner
2886         (bus_owner_new): new method that creates a BusOwner object from the
2887         pool and sets its flags
2888         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2889         (bus_registry_ensure): Add the flags parameter
2890         (bus_registry_acquire_service): Switch from using raw connections to
2891         using the BusOwner struct
2892         Add new state machine for dealing with the new set of flags
2893         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2894         cancel_ownership, free_ownership_cancel_data, 
2895         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2896         restore_ownership, free_ownership_restore_data, 
2897         add_restore_ownership_to_transaction): Switch to using BusOwner 
2898         instead of raw connections
2899         (bus_service_add_owner): Add flags parameter
2900         Switch to using BusOwner instead of raw connections
2901         Add state machine for dealing with the new set of flags
2902         (bus_service_swap_owner): Swaps the first and second owners in the
2903         queue.  Used to make sure proper signals are sent when a service looses 
2904         or gains primary ownership.  We never insert an owner at the top of the
2905         queue.  Instead we insert it in the second position and then swap.
2906         (bus_service_remove_owner): Remove the owner from the queue sending
2907         out the NameLost and NameOwnerChanged signals if the we were the 
2908         primary owner
2909         (bus_service_get_primary_owners_connection): New method that extracts
2910         the connection from the primary owner
2911         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2912         connection
2913         (bus_service_get_allow_replacement): Changed from the old 
2914         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2915         primary owner and returns if it can be replaced or not
2916         (bus_service_set_prohibit_replacement): removed
2917         (bus_service_has_owner): returns TRUE if and owner with
2918         the specified connection exists in the queue
2919         
2920         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2921         method that only compiles if tests are enabled.  Allows us to get the 
2922         unique name of a connection so we can check it against the queue when
2923         doing regression tests
2924
2925         * bus/activation.c (bus_activation_send_pending_auto_activate),
2926         bus/dispatch.c (bus_dispatch),  
2927         bus/driver.c (bus_driver_handle_get_service_owner, 
2928         bus_driver_handle_get_connection_unix_user, 
2929         bus_driver_handle_get_connection_unix_process_id,
2930         bus_driver_handle_get_connection_selinux_security_context),
2931         bus/signals.c (connection_is_primary_owner): 
2932         use bus_service_get_primary_owners_connection instead of
2933         bus_service_get_primary_owner
2934
2935         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2936         _dbus_listen_unix_socket): Calculate the length of the socket
2937         path and use that instead of using a fixed length which was
2938         causing socket names to contain many trailing Nul bytes.
2939
2940         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2941         (dbus_g_method_get_sender): New method for extracting the sender 
2942         from a DBusGMethodInvocation
2943         (dbus_g_method_return_get_reply): changed name to 
2944         dbus_g_method_get_reply
2945         (dbus_g_method_return_send_reply): changed name to
2946         dbus_g_method_send reply
2947
2948         * doc/dbus-specification.xml: New docs that describe how the new
2949         queueing system works and talks about the changes to the how
2950         we specify socket names
2951
2952         * glib/examples/example-service.c, 
2953         glib/examples/example-signal-emitter.c,
2954         glib/examples/statemachine/statemachine-server.c:
2955         Changed the RequestName flags to the new system
2956
2957         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2958         regression test suite for testing various states of the new
2959         queueing system
2960         
2961 2005-11-15  Robert McQueen  <robot101@debian.org>
2962
2963         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2964         Taylor to add two methods, dbus_g_method_return_get_reply and
2965         dbus_g_method_return_send_reply, to allow you to get the reply
2966         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2967         and send it. The GLib bindings can't marshal a return value of
2968         something like a(s) if the array is empty - ultimately they should be
2969         made to heed the signature of the out arguments as the Python bindings
2970         now can, but this is a workable interim solution which might have
2971         other applications.
2972
2973 2005-11-15  Robert McQueen  <robot101@debian.org>
2974
2975         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2976         method to org.freedesktop.DBus to release a bus name or give up
2977         waiting in the queue for it.
2978
2979         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2980         dbus_bus_release_name method to send the ReleaseName method calls.
2981         Add constants for the return values to dbus/dbus-shared.h.
2982
2983         * doc/dbus-specification.xml: Document the new ReleaseName method
2984         in the specification.
2985
2986         * python/dbus_bindings.pyx: Add a low-level python binding for the
2987         release name method.
2988
2989         * python/exceptions.py, python/service.py: Make freeing BusName
2990         objects release the name. Add a NameExistsException, and fix a
2991         bug with creating UnknownMethodException.
2992
2993         * test/python/test-client.py: Add tests for freeing BusName
2994         objects causing names to be released.
2995
2996 2005-11-14  Robert McQueen  <robot101@debian.org>
2997
2998         * python/service.py: Include the traceback in the error reply when we
2999         send an exception over the bus. _BEST_ _PATCH_ _EVER_
3000
3001 2005-11-14  David Zeuthen  <davidz@redhat.com>
3002
3003         Patch from Timo Hoenig <thoenig@suse.de>.
3004
3005         * bus/bus.c: I've recently investigated why the automatic reload
3006         of configuration files does not work as expected.
3007
3008         Currently, reloading configuration files does only work when
3009         running dbus-daemon with --nodaemon.  If we are running as daemon
3010         we're hitting a dnotify bug once we fork the process.
3011
3012         We're initializing the dnotify fds before calling fork().  Once
3013         the child process forked it does still have the fds (and they
3014         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
3015         getting SIGIO as changes are made to the configuration files.
3016
3017         The attached patch moves the initialization of the dnotify fds to
3018         process_config_postinit().  This is safe for all current code
3019         paths and solves the dnotify disfunction.  If we're running
3020         dbus-daemon as daemon the fds for dnotify are now being
3021         initialized after fork() for the child process.
3022
3023         * configure.in: The current configure.in check for dnotify probes
3024         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3025         match for 'xlinux', too. Additionally I have adapted the configure
3026         option's style to match with the others.
3027
3028 2005-11-14  Robert McQueen  <robot101@debian.org>
3029
3030         * python/decorators.py, python/service.py: Add a new argument to the
3031         dbus.service.method decorator called sender_keyword, which if set,
3032         specifies the name of an argument which will be provided the bus
3033         name of the method caller.
3034
3035         * test/python/test-client.py, test/python/test-service.py: Add a
3036         method and test to check the sender_keyword functionality.
3037
3038 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3039
3040         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3041         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3042         Simons <sjoerd at luon.net>)
3043
3044         * AUTHORS: Add Robert McQueen for his work on the Python
3045         Bindings and other parts of D-Bus
3046
3047 2005-11-07  Robert McQueen  <robot101@debian.org>
3048
3049         * python/decorators.py: Change emit_signal function to use the
3050         signature annotation of the signal when marhsalling the arguments from
3051         the service. Fix a bug where the code checking signature length
3052         against argument length referenced the wrong variable.
3053
3054         * python/introspect_parser.py: Avoid adding the type signature of
3055         signal arguments to any methods which occur after them in the
3056         introspection data (!) by making the parser a little more careful
3057         about its current state.
3058
3059         * python/service.py: Remove debug prints from last commit (again :D).
3060
3061         * test/python/test-client.py, test/python/test-service.py: Add test
3062         signals with signature decorators to test the strict marshalling code
3063         gives errors at the right time. Could do with checking the signals
3064         actually get emitted too, given that the test does nothing with
3065         signals at the moment...
3066
3067 2005-11-07  Robert McQueen  <robot101@debian.org>
3068
3069         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3070         instances to stop madness of creating new instances representing
3071         the same bus connection all the time, rendering any tracking of
3072         match rules and bus names quite meaningless. Caught a bug where
3073         the private argument to SessionBus() and friends was being passed
3074         in as use_default_mainloop by mistake. Still some problems with
3075         multiple dbus_binding.Connection instances representing the same
3076         low-level connection (eg when you use both SessionBus() and
3077         StarterBus() in same process), but it's a lot better now than it
3078         was.
3079
3080         * python/dbus_bindings.pyx: Add constants with the return values
3081         for bus_request_name().
3082
3083         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3084         and retrieve the same instances for the same name, so deletion can be
3085         done with refcounting. Also now throws some kind of error if you
3086         don't actually get the name you requested, unlike previously...
3087
3088         * test/python/test-client.py: Add tests for instance caching of buses
3089         and bus name objects.
3090
3091 2005-11-04  Robert McQueen  <robot101@debian.org>
3092
3093         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3094         marshalling of boolean values. Add some booleans to the values in
3095         the test client.
3096
3097         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3098         argument to the dbus.service.method decorator, which allows you to
3099         name arguments to take two callback functions for replying with
3100         return values or an exception.
3101
3102         * test/python/test-client.py, test/python/test-service.py: Add test
3103         case using asynchronous method reply functions, both return values and
3104         errors, and from within both the function itself and from a mainloop
3105         callback.
3106
3107         * python/decorators.py, python/service.py: Perform checking that the
3108         number of method/signal arguments matches the number of types in the
3109         signature at class loading time, not when you first introspect the
3110         class.
3111
3112         * python/service.py: Remove debug print left by the last commit.
3113
3114 2005-11-03  Robert McQueen  <robot101@debian.org>
3115
3116         * python/service.py: Heavy refactoring of method invocation, with
3117         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3118         in favour of a new _message_cb that uses seperate functions for
3119         looking up the method to call, marshalling the return values, and
3120         sending exceptions as errors, and is easier to follow as a
3121         consequence.  Fixes some corner cases about returning things that
3122         don't match your declared out_signature, allows exceptions to define
3123         _dbus_error_name and have it be sent over the bus as the error name,
3124         and paves the way for cool stuff like heeding the message no reply
3125         flag, asynchronous method implementations, informing the method of the
3126         sender, and including backtraces in the error messages.
3127
3128         * test/python/test-client.py: Catch and print exceptions thrown in the
3129         async callback tests, rather than passing them to the low-level
3130         bindings to be ignored in a noisy and frustrating manner.
3131
3132 2005-11-03  Robert McQueen  <robot101@debian.org>
3133
3134         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3135         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3136         tweak others to be consistent.
3137
3138         * test/python/test-client.py: Tweak output of testInheritance.
3139
3140 2005-10-29  Robert McQueen  <robot101@debian.org>
3141
3142         * python/service.py: Major changes to allow multiple inheritance
3143         from classes that define D-Bus interfaces:
3144         
3145          1. Create a new Interface class which is the parent class of
3146             Object, and make the ObjectType metaclass into InterfaceType.
3147         
3148          2. Patch written with Rob Taylor to replace use of method_vtable
3149             with code that walks the class's __MRO__ (method resolution order)
3150             to behave like Python does when invoking methods and allow
3151             overriding as you'd expect. Code is quite tricky because
3152             we have to find two methods, the one to invoke which has the
3153             right name and isn't decorated with the /wrong/ interface,
3154             and the one to pick up the signatures from which is decorated
3155             with the right interface.
3156         
3157             The same caveats apply as to normal multiple inheritance -
3158             this has undefined behaviour if you try and inherit from two
3159             classes that define a method with the same name but are
3160             decorated with different interfaces. You should decorate
3161             your overriding method with the interface you want.
3162         
3163          3. Replace grungy introspection XML generation code in the metaclass
3164             with dictionaries that cope correctly with multiple inheritance
3165             and the overriding of methods. This also uses the signature
3166             decorations to provide correct introspection data, including
3167             the debut appearance of the types of your return values. :D
3168
3169         * test/python/test-client.py, test/python/test-service.py: Add a test
3170         case to try invoking an method that overrides one inherited from a
3171         D-Bus interface class.
3172
3173 2005-10-29  Robert McQueen  <robot101@debian.org>
3174
3175         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3176         Add checking for the end of struct character when marshalling a
3177         struct in MessageIter.append_strict.
3178
3179         * python/examples/example-service.py,
3180         python/examples/gconf-proxy-service.py,
3181         python/examples/gconf-proxy-service2.py: Update to use gobject
3182         mainloop directly rather than appearing to depend on gtk.
3183
3184         * python/test/test-client.py, python/test/test-server.py: Remove
3185         obsolete and broken test scripts for old bindings. We have up to date
3186         and working tests in test/python/.
3187
3188 2005-10-29  Robert McQueen  <robot101@debian.org>
3189
3190         * python/decorators.py: Add optional arguments to the method and
3191         signal decorators to allow you to specify the signature of arguments
3192         and return values. Preserve the doc strings of signal functions in the
3193         decorated version, for pydoc and friends.
3194
3195         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3196         parse_signature_block function with an iterable dbus.Signature()
3197         type. Fix a bug in MessageIter.append_strict where you could append
3198         anything by claiming it was a string.
3199
3200         * python/service.py: Use the out_signature decoration on methods to
3201         marshal return values, meaning you no longer require dbus.Array()
3202         or dbus.Dictionary() to indicate the type when returning empty
3203         arrays or dictionaries. Fix a bug where exceptions which are defined
3204         in __main__ are not turned into error replies.
3205
3206         * test/python/test-client.py, test/python/test-service.py: Add test
3207         for correct marshalling of return values according to out_signature.
3208         Fix a bug in the async call test where the error_handler is missing a
3209         self argument.
3210
3211 2005-10-29  Robert McQueen  <robot101@debian.org>
3212
3213         * glib/Makefile.am, glib/examples/Makefile.am,
3214         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3215         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3216
3217         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3218
3219         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3220         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3221         the command line.
3222
3223 2005-10-27  Ross Burton  <ross@openedhand.com>
3224
3225         * dbus/dbus-marshal-header.c:
3226         Remove dead code.
3227
3228         * glib/dbus-gobject.c:
3229         Stop compiler warning.
3230
3231 2005-10-25  Ross Burton  <ross@openedhand.com>
3232
3233         * dbus/dbus-auth.c:
3234         * dbus/dbus-server-unix.c:
3235         * dbus/dbus-transport-unix.c:
3236         * glib/dbus-gmain.c:
3237         * glib/dbus-gobject.c:
3238         Add some const keywords.
3239
3240 2005-10-25  Ross Burton  <ross@openedhand.com>
3241
3242         * doc/dbus-specification.xml:
3243         Document the NoReply annotation.
3244
3245         * glib/dbus-binding-tool-glib.h:
3246         * glib/dbus-binding-tool-glib.c:
3247         Respect the NoReply annotation.
3248
3249 2005-10-24  Robert McQueen <robot101@debian.org>
3250
3251         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3252         derive from unicode instead of str, and encode/decode UTF-8 when
3253         marshalling/unmarshalling bus messages
3254
3255         * python/introspect_parser.py: encode introspection data as UTF-8
3256         before passing the buffer into libxml2
3257
3258         * test/python/test-client.py: add unicode test strings
3259
3260         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3261         ignore generated python test files
3262
3263 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3264
3265         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3266         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3267         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3268
3269         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3270         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3271         when constructing struct signatures
3272
3273         * python/_dbus.py (Bus): handle private connections using the
3274         private keyword in the constructor. defaults to private=False
3275         (Bus::close): new method to close a connection to the bus
3276
3277         * python/dbus_bindings.pyx (Connection::close): renamed method
3278         was previously called disconnect
3279         (bus_get): now supports getting a private connection
3280
3281         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3282         keyword is set to True.  if it is, execute the method without waiting
3283         for a reply
3284         (ProxyObject::_introspect_execute_queue): new method for executing
3285         all the pending methods that were waiting for the introspect to
3286         finish.  this is called when introspect either succeeds or fails
3287         (ProxyObject::_introspect_error_handler): call queued methods
3288
3289 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3290
3291         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3292         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3293
3294         * python/service.py (Object::_message_cb): handle exceptions correctly
3295         by sending them over the wire to the calling app.  This makes sure
3296         the client returns immediately instead of waiting the 15 seconds to
3297         timeout.
3298
3299         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3300         Add a test to benchmark how long it takes to introspect a service and 
3301         call a method which returns a large element (pretty fast)
3302
3303         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3304         method which pushes a lot of data
3305
3306 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3307
3308         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3309         reclaim memory outside of the loop and use del istead of just setting
3310         the key to None
3311
3312 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3313
3314         * python/service.py (ObjectType::_reflect_on_signal): Always close
3315         signal tag even when there are no arguments
3316
3317 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3318
3319         * configure.in: Set mono, mono-docs and Qt3 to default
3320         to no instead of auto when building.  These bindings do not
3321         have full time maintainers and will not be supported for the
3322         1.0 release.
3323
3324 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3325
3326         patches from Michael Krivoruchko <misha at sun.com>: 
3327         
3328         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3329         _dbus_connection_message_sent, 
3330         _dbus_connection_send_preallocated_unlocked_no_update, 
3331         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3332         is NULL when calling _dbus_verbose
3333
3334         * configure.in: check for functions getpeerucred and getpeereid
3335
3336         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3337         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3338         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3339         Patch was only tested on Solaris 10 x86 so it might be issues
3340         with other platforms (i.e. BSDs and MacOSX)
3341         
3342
3343 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3344
3345         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3346         instead of marshal basic so we can handle recursive types in a variant
3347
3348         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3349         in variants
3350
3351         * test/glib/test-service-glib.c, test-service-glib.xml
3352         (my_object_echo_variant [EchoVariant], 
3353         my_object_process_variant_of_array_of_ints123
3354         [ProcessVariantOfArrayOfInts123]): 
3355         Add two test methods
3356
3357         * python/introspect_parser.py: New module for parsing introspect
3358         data.
3359
3360         * python/dbus_bindings.pyx:
3361         (various places): when throwing errors fix to use errormsg instead 
3362         of message local variable because Pyrex can get confused with other 
3363         message variables (initial patch by Robert McQueen 
3364         <robert.mcqueen at collabora.co.uk>)
3365         (MessageIter::parse_signature_block): new method for getting the next
3366         block in a signiture.
3367         (MessageIter::append_strict): new method for appending values strictly
3368         using the passed in signature instead of guessing at the type
3369         (MessageItter:: append_dict, append_struct, append_array): use 
3370         signatures to marshal children if the signature is available
3371         
3372         * python/exceptions.py (IntrospectionParserException): new exception
3373
3374         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3375         introspected signatures if available, else we fall back to the
3376         old way of doing things.
3377         (ProxyObject::_introspect_reply_handler ): parse introspection data
3378         
3379         * python/service.py (ObjectType::_reflect_on_method): Properly
3380         terminate <method> if there are no args in the reflection data
3381
3382         * test/python/test-client.py: add tests for talking with the GLib
3383         test server.  This gives us better coverage for introspection since
3384         python to python will always generate arguments as variants.  It also
3385         allows us to test the robustness of the GLib bindings and interlanguage
3386         communications.
3387
3388         
3389 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3390
3391         * bus/driver.c (bus_driver_handle_introspect): Add signals
3392         to the introspect data. (patch from Daniel P. Berrange 
3393         <dan at berrange.com>)
3394
3395         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3396         
3397         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3398         _dbus_connection_run_builtin_filters): Changed these to
3399         be unlock_no_update functions and call 
3400         _dbus_connection_send_unlocked_no_update instead of
3401         dbus_connection_send to avoid locking errors.
3402         
3403         * doc/TODO: Removed the make Ping test TODO
3404         
3405 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3406
3407         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3408         We now copy the message from a DBusError and then free 
3409         the error object befor throwing the error
3410
3411         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3412         DBusBindingOutputMode enum which was causing a warning.
3413         #include <time.h> so using time_t is explicitly defined
3414
3415 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3416
3417         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3418         - dbus/dbus-bus.c
3419         (internal_bus_get): new method that take over the heavy lifting
3420         of dbus_bus_get and adds the ability to get a private connection
3421         to the bus
3422         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3423         interface as in previous versions
3424         (dbus_bus_get_private): new method that is a wrapper to 
3425         internal_bus_get to get a private connection to the bus
3426
3427         - dbus/dbus-bus.h
3428         (dbus_bus_get_private): add as a public libdbus interface
3429
3430         - dbus-1.pc.in: output system_bus_default_address and 
3431         sysconfdir variables so apps can use them when compiling
3432
3433 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3434         * dbus/qt: New Qt bindings
3435
3436 2005-09-12  Waldo Bastian  <bastian@kde.org>
3437
3438         * dbus/dbus-marshal-validate.c,
3439         doc/dbus-specification.xml, test/Makefile.am,
3440         test/test-names.c: allow hyphens in bus names.
3441
3442 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3443
3444         * test/data/auth/fallback.auth-script: we don't
3445         retry the EXTERNAL method when we know its going
3446         to fail anymore.
3447
3448 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3449
3450         * dbus/dbus-connection-internal.h: rename
3451         (add|remove|toggle)_(watch|timeout) to unlocked()
3452         
3453         * dbus/dbus-connection.c: ditto.
3454         
3455         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3456         Update some callers for the renaming.
3457
3458 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3459
3460         * dbus/dbus-auth.c: (record_mechanisms): don't
3461         retry the first auth mechanism because we know
3462         we're just going to get rejected again.
3463         
3464         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3465         Fix thinko ... and what a nasty little bugger to
3466         track down you were ...
3467
3468         * dbus/dbus-connection.c:
3469         (_dbus_connection_add_watch),
3470         (_dbus_connection_remove_watch): add note about
3471         these needing the connection to be locked.
3472         (_dbus_connection_get_dispatch_status_unlocked):
3473         set status to DATA_REMAINS when we queue the
3474         disconnected message.
3475         
3476         * bus/dispatch.c:
3477         (bus_dispatch): fix warning.
3478         (check_existent_service_no_auto_start):
3479         Expect ChildSignaled error too.
3480         (check_existent_hello_from_self): fix another
3481         couple of warnings.
3482         
3483 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3484
3485         Patches from James Willcox <snorp@snorp.net>
3486
3487         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3488
3489         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3490         support array "out" parameters.
3491
3492         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3493         for 16-bit int support.
3494
3495 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3496
3497         * Released 0.50
3498
3499         * Patch from Steve Grubb:
3500         - bus/activation.c (bus_activation_service_reload_test): clean up
3501         some indentation
3502         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3503         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3504         buffer overflows in the test suite.  This is non critical because
3505         it can not be exploited and this code is only run when doing a 
3506         make check.
3507
3508         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3509         - configure.in: Don't check and link against kdecore, only qt headers
3510         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3511         - gcj/org/freedesktop/dbus/Makefile.am:
3512         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3513         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3514         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3515         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3516         - tools/Makefile.am: Add platform extentions to binaries 
3517         (i.e. .exe on windows)
3518
3519         * configure.in: 
3520         - Make it so if no suitable version of python is found we only 
3521         disable building python instead of exiting the configure script
3522         - Require version 2.4 of glib for glib bindings
3523         - Up version to 0.50
3524
3525         * python/__init__.py: Sync version with libdbus to (0,50,0)
3526         
3527 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3528
3529         * dbus/dbus-object-tree.c (find_subtree_recurse):
3530         a couple of optimizations (bug #710):
3531         - do a binary search in the tree
3532         - insert a new child at the right place directly, no need for
3533           qsort anymore
3534         - do the "double alloc" thing when allocating children
3535
3536 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3537
3538         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3539
3540         * python/dbus_bindings.pyx: Memory management foo
3541         (global): remove hacky _user_data_references global list
3542         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3543         tuples. Unref user_data
3544         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3545         (Connection::__del__): Remove and replace with __dealloc__ method
3546         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3547         to keep tuple from being deallocated instead of the global var hack
3548         (Connection::register_object_path): Stuff user_data into a tuple.
3549         Use Py_INCREF to keep tuple from being deallocated instead of the 
3550         global var hack
3551         (Connection::register_fallback): Stuff user_data into a tuple.
3552         Use Py_INCREF to keep tuple from being deallocated instead of the 
3553         global var hack
3554         (GIL_safe_pending_call_notification): Don't unref the message
3555         because it gets unreffed when going out of scope.  Py_XDECREF
3556         the user_data
3557         (PendingCall::__del__): Remove and replace with __dealloc__ method
3558         (PendingCall::set_notify): ref the pending call because we will
3559         need it to stick around for when the notify callback gets called
3560         (Message::__del__): Remove and replace with __dealloc__ method
3561
3562         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3563         gthreads_init to match up with the dbus call
3564
3565         * python/glib.py (init_threads): Changed to threads_init to match
3566         up with gobject.threads_init().  init_threads is kept for backwards
3567         compat but will most likely be deprecated in the future
3568
3569         * test/python/test-client.py: 
3570         - revamp to use Python's unittest functionality
3571         - add async call tests
3572         - setup threads in glib and dbus so we make sure locks are working
3573         
3574 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3575
3576         * python/dbus_bindings.pyx 
3577         (_pending_call_notification, cunregister_function_handler, 
3578         cmessage_function_handler): All callback functions have been rearranged 
3579         to workaround a bug in Pyrex when working with the GIL which is Python's 
3580         global lock when dealing with threads.  They have been split into
3581         a wrapper function (which assumes the name of the old function) and
3582         a _GIL_safe_<function name> function which contains the functionality
3583         of the old function.  This ensures that Pyrex does not write code
3584         the lock is released.
3585         
3586
3587 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3588
3589         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3590         GIL global lock when calling back into Python
3591
3592 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3593
3594         * Release 0.36.2
3595
3596         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3597
3598         * bus/policy.c (bus_policy_allow_user): change default "user is
3599         allowed" to be "user has same uid as the bus itself"; any
3600         allow/deny rules will override.
3601
3602         * bus/session.conf.in: don't allow all users, since now by default
3603         the user that ran the bus can connect.
3604
3605 2005-08-26  Colin Walters  <walters@verbum.org>
3606
3607         * tools/dbus-print-message.c (print_message): Flush stdout
3608         after printing a message, so that redirecting to a file, then
3609         hitting Ctrl-C works.
3610
3611 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3612
3613         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3614         (EmptyMessage): new class that subclasses Message.  This is a workaround
3615         to a Pyrex bug that fails to call __del__ when the Message object goes out
3616         of scope.  For some reason subclassing Message fixes this bug
3617         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3618         - s/Message(_create=0)/EmptyMessage everywhere else
3619         
3620         * test/python/test-{server|client}.py: add the python/.libs directory
3621         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3622         get picked up from the system
3623
3624 2005-08-25  Colin Walters  <walters@verbum.org>
3625
3626         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3627         to Ryan Lortie for the suggestion.
3628
3629 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3630
3631         * test/python: Add python regression test
3632
3633         * configure.in: Add test/python/Makefile
3634
3635         * test/Makefile.am: Add the python directory to SUBDIRS
3636
3637 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3638
3639         * Release 0.36.1
3640
3641         * python/_dbus.py: 
3642         (Interface::connect_to_signal): propigate keywords for match on args
3643         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3644
3645         * python/proxies.py (ProxyObject::connect_to_signal):
3646         propigate keywords for match on args
3647
3648         * Makefile.am: point everything to pyexecdir since python borks
3649         on multilib
3650
3651 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3652
3653         * Release 0.36
3654
3655 2005-08-23  Colin Walters  <walters@verbum.org>
3656
3657         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3658
3659 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3660
3661         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3662         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3663         of defining DBusConnection ourselves.
3664
3665 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3666
3667         * python/dbus.pth: New path file to fix up problems when installing
3668         c libraries to lib64 and python files to lib.
3669
3670         * python/Makefile.am: install dbus.pth in the correct spot
3671
3672 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3673         * ChangeLog: clean up my last entry a bit
3674
3675         * doc/introspect.xsl: New stylesheet for converting introspection data
3676         into browser renderable xhtml. Contributed by Lennart Poettering.
3677
3678         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3679         Poettering.
3680
3681         * doc/dbus-tutorial.xml: 
3682         - Add Colin Walter to the Authors section for authoring the GLib
3683         section
3684         - Add descriptions of the new signature and type functionality
3685         in the Python complex type mapping section
3686         - Add a sidenote on the new args matching functionality in 
3687         the Python bindings
3688         - Fixed up some of the examples to use the gobject.MainLoop
3689         instead of gtk.main
3690         
3691         * python/_dbus.py:
3692         (Bus::_create_args_dict): New. Converts a hash of arg matches
3693         to a more useable format
3694         (Bus::add_signal_receiver): add a **keywords parameter for catching
3695         arg match parameters
3696         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3697         arg match parameters
3698         
3699         * python/matchrules.py:
3700         (MatchTree::exec_matches): Check for arg matches
3701         (SignalMatchRule::add_args_match): New method
3702         (SignalMatchRule::execute): Added args_list parameter as an optimization
3703         so we don't have to marshal the args more than once
3704         (SignalMatchRule::match_args_from_list): New method that checks to see
3705         if the rule's arg matches match an argument list.  Only arguments
3706         set in the rule are checked.
3707         (SignalMatchRule::match_args_from_rule): New method that checks to see
3708         if the rule's arg matches match another rule's.  All args have to match
3709         in order for this method to return true.  If either rule has more args
3710         then it is not a match.
3711         (SignalMatchRule::is_match): Add args match
3712         (SignalMatchRule::repr): Add args to the final output if they exist
3713
3714 2005-08-17  Ross Burton  <ross@burtonini.com>
3715
3716         * glib/dbus-gproxy.c:
3717         (dbus_g_proxy_call_no_reply): unref the message once sent.
3718         (dbus_g_proxy_call): protect against NULL proxy.
3719
3720 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3721
3722         * python/__init__.py: Version updated (0, 43, 0)
3723         
3724         * python/dbus_bindings.pyx: 
3725         - Fixed type objects to have self passed into __init__
3726         - Added the Variant type
3727         - Add the ability to specify types or signatures for Array, Variant 
3728         and Dictionary
3729         (Connection::send_with_reply_handlers): return a PendingCall object
3730         (_pending_call_notification): handle the case when an error is returned 
3731         without an error message in the body
3732         (MessageIter::get_boolean): return True or False instead of an integer
3733         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3734         and add checks for objects with embeded signatures or types (Array, 
3735         Variant and Dictionary)
3736         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3737         (MessageIter::append_dict): handle embeded types or signatures
3738         (MessageIter::append_array): handle embeded types or signatures
3739         (MessageIter::append_variant): new method
3740         
3741         * python/proxies.py:
3742         (DeferedMethod): New. Dummy executable object used when queuing calls 
3743         blocking on introspection data
3744         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3745         or shorter timeouts for method calls
3746         (ProxyObject): Add first pass at an introspection state machine
3747         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3748         introspection. 
3749         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3750         the usual mechanisms for sending messages.  This is to avoid a deadlock
3751         where the Intospect call would be queued waiting for the Introspect 
3752         call to finish ;-)
3753         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3754         when introspection returns with no error
3755         (ProxyObject::_introspect_error_handler): New.  This method is called 
3756         when introspection encounters an error
3757         (ProxyObject::__getattr__): Code to handle different introspection 
3758         states.  Queue async calls or block blocking calls if we are 
3759         introspecting.  Pass through as normal if we are not or are done with 
3760         introspecting.
3761         
3762         * python/service.py: Import signal and method from decorators.py
3763
3764         * python/types.py: Add Variant type
3765
3766 2005-08-16  Colin Walters  <walters@verbum.org>
3767
3768         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3769         DBusError message is NULL.
3770
3771 2005-08-09  Havoc Pennington  <hp@redhat.com>
3772
3773         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3774         malloc'd copy of the name parameter
3775
3776 2005-08-09  Havoc Pennington  <hp@redhat.com>
3777
3778         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3779         warning if the reply serial is set to 0
3780
3781 2005-08-04  Colin Walters  <walters@verbum.org>
3782
3783         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3784         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3785         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3786         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3787         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3788         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3789         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3790         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3791         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3792         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3793         
3794         Prefix name with _ to ensure they're not exported.  All callers
3795         updated.
3796
3797         * glib/dbus-gvalue.c (typecode_to_gtype)
3798         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3799         (signature_iter_to_g_type_dict)
3800         (signature_iter_to_g_type_array)
3801         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3802         (dbus_gtypes_from_arg_signature):
3803         Move to dbus-gsignature.c.
3804
3805         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3806         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3807         (dbus_binding_tool_output_glib_client): Ditto.
3808
3809         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3810         and dbus-gsignature.h
3811
3812         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3813         unused variable.
3814
3815 2005-08-03  Colin Walters  <walters@verbum.org>
3816
3817         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3818         catch any incompatible changes accidentally made.
3819
3820 2005-08-03  Havoc Pennington  <hp@redhat.com>
3821
3822         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3823         typo, from Julien Puydt
3824
3825         * bus/connection.c (bus_connection_disconnected): we were always
3826         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3827
3828 2005-08-01  Colin Walters  <walters@verbum.org>
3829
3830         Patch from Joe Markus Clarke:   
3831         
3832         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3833         use-after-free.
3834
3835 2005-08-01  Colin Walters  <walters@verbum.org>
3836         
3837         Patch from Joe Markus Clarke:   
3838         
3839         * tools/dbus-send.c (main): 
3840         
3841         Don't use C99 style initializers (bug #3933).
3842         
3843 2005-08-01  Colin Walters  <walters@verbum.org>
3844
3845         Patch from Joe Markus Clarke:   
3846
3847         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3848         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3849         * glib/dbus-gobject.c (write_interface):
3850
3851         Don't use C99 style initializers (bug #3933).
3852
3853 2005-07-31  Havoc Pennington  <hp@redhat.com>
3854
3855         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3856         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3857
3858 2005-07-30  Havoc Pennington  <hp@redhat.com>
3859
3860         * fix a bunch of Doxygen warnings and mistakes
3861
3862 2005-07-30  Havoc Pennington  <hp@redhat.com>
3863
3864         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3865         DBUS_BUILD_TESTS since it's now used in production code
3866
3867 2005-07-29  Havoc Pennington  <hp@redhat.com>
3868
3869         * test/glib/test-profile.c (write_junk): initialize the junk
3870         buffer so valgrind doesn't have a breakdown
3871
3872 2005-07-29  Havoc Pennington  <hp@redhat.com>
3873
3874         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3875         (match_rule_matches): remove unused arg
3876         (test_matching): add tests for match_rule_matches()
3877
3878         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3879         do arg0='foo' arg5='bar' in the match rules
3880         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3881
3882         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3883
3884 2005-07-29  Ross Burton  <ross@openedhand.com>
3885
3886         * dbus/dbus-connection.c:
3887         Don't create a DBusCondVar which is never used.
3888
3889 2005-07-27  Ross Burton  <ross@openedhand.com>
3890
3891         * dbus/dbus-message.c:
3892         Reduce the size of the maximum cached message to 10K.
3893
3894 2005-07-25  Ross Burton  <ross@openedhand.com>
3895
3896         * glib/dbus-gproxy.c:
3897         Remove matches when all proxies are unregistered.
3898
3899 2005-07-24  Colin Walters  <walters@verbum.org>
3900
3901         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3902         typedata; recursive arrays won't have it.
3903
3904         * test/glib/test-dbus-glib.c:
3905         * test/glib/test-service-glib.c:
3906         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3907         
3908 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3909
3910         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3911         proxies.py, service.py: Cleanup of code after running it through the
3912         pyflakes code checker mostly dealing with undefined names.  
3913         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3914
3915 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3916
3917         * NEWS: Update to 0.35.2
3918
3919 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3920
3921         * python/_dbus.py: Remove import of the dbus.services
3922         module as it no longer exists (patch from Dimitur Kirov)
3923
3924         * python/service.py (Object::__init__): Fixed typo
3925         s/name/bus_name (patch from Dimitur Kirov)
3926
3927         * python/examples/example-signal-emitter.py: import dbus.glib
3928         to get the main loop and use glib mainloop instead of gtk so
3929         X doesn't have to be running.
3930
3931         * python/examples/example-signal-recipient.py: import dbus.glib
3932         to get the main loop and use glib mainloop instead of gtk so
3933         X doesn't have to be running. Import the decorators module
3934         directly.
3935
3936         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3937         didn't pick up on but are needed to build
3938
3939         * configure.in: upped version to 0.35.2
3940
3941         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3942         added Colin Walters' SELinux API rename patch from head 
3943         s/unix sercurity context/selinux security context/
3944
3945 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3946
3947         * python/Makefile.am: dbus_binding.pxd.in should be included 
3948         in EXTRA_DIST not dbus_binding.pxd
3949         fix up $(srcdir) hopefully for the last time
3950
3951         * NEWS: Update to 0.35.1
3952
3953 2005-07-16  Colin Walters  <walters@verbum.org>
3954
3955         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3956         from bus_driver_handle_get_connection_unix_security_context.  Update for
3957         error usage.
3958         (message_handlers): Update for renames.
3959
3960         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3961         _dbus_string_init failure correctly.
3962         (bus_selinux_append_context): Convert SID to context.  Append it
3963         as a byte array.
3964         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3965         hasn't been called.
3966
3967         * bus/selinux.h: Update prototype.
3968
3969         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3970         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3971
3972 2005-07-15  Colin Walters  <walters@verbum.org>
3973
3974         * doc/TODO: Add note about convenience wrappers.
3975
3976 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3977
3978         * NEWS: Update to 0.35
3979
3980 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3981
3982         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3983         so distcheck doesn't fail
3984
3985         * glib/examples/Makefile.am: Add example-service.xml and 
3986         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3987
3988         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3989         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3990
3991         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3992         compiler looks in the right places during distcheck
3993
3994 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3995
3996         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3997         to fail
3998
3999 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4000
4001         * python/examples/example-service.py,
4002         python/examples/example-signal-emitter.py: Fixed up examples
4003         for API changes
4004
4005 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4006
4007         * python/__init__.py: Upped to version (0,42,0) because of
4008         the API change
4009
4010 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4011
4012         * ChangeLog: fix date in last entry
4013
4014         * configure.in, bus/system.conf.in: add the ability to configure 
4015         the system bus user at compiletime with the --with-dbus-user flag
4016         (patch from Kristof Vansant)
4017
4018 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4019
4020         * bus/dispatch.c, test/test-service.c: Add testcase
4021         for sending messages to oneself (TODO item).
4022
4023         * python/service.py (class Object): Swap ordering of bus_name 
4024         and object_path parameters to better support inheritance.
4025
4026         * doc/dbus-tutorial.xml: change Python docs to reflect change
4027         in parameter ordering and fix the inheritance section.
4028
4029         * doc/TODO: remove sending message to oneself TODO item
4030
4031 2005-07-15  Ross Burton  <ross@openedhand.com>
4032
4033         * glib/dbus-gproxy.c:
4034         Fix a leak when calling methods via the proxy.
4035
4036 2005-07-15  Colin Walters  <walters@verbum.org>
4037
4038         * bus/selinux.c (bus_selinux_append_context): Wrap in
4039         HAVE_SELINUX.
4040
4041 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4042
4043         * python/_dbus.py (Bus::remove_signal_receiver):
4044         don't add a callback to the match if none has been passed in
4045         
4046         * python/matchrules.py (SignalMatchTree::remove): if the rule
4047         being matched does not have a callback treat it as a wildcard
4048         fix matching logic
4049
4050         * doc/dbus-tutorial.xml: Add Python tutorial
4051
4052 2005-07-14  Colin Walters  <walters@verbum.org>
4053
4054         * bus/driver.c
4055         (bus_driver_handle_get_connection_unix_security_context): New function.
4056         (message_handlers): Add.
4057
4058         * bus/selinux.c (bus_selinux_append_context): New function; appends
4059         security context to message.
4060
4061         * bus/selinux.h: Prototype.
4062
4063         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4064
4065 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4066
4067         * bus/activation.c: clean up all tabs to be 8 spaces 
4068         (bus_activation_activate_service): make sure we clean up
4069         if activation fails
4070
4071         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4072         (check_shell_fail_service_auto_start): New function
4073         tests to make sure we get fail properly when trying to auto start a service
4074         with a faulty command line
4075         (check_shell_service_success_auto_start): New function tests to make sure
4076         auto started services get the arguments on the command line
4077
4078         * test/test-shell-service.c: Added service for testing auto-starting with 
4079         command line arguments
4080
4081         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4082         test/data/valid-service-files/debug-shell-echo-success.service.in:
4083         Added service files for testing auto-starting with command line arguments
4084
4085         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4086
4087 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4088
4089         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4090         
4091         * dbus/Makefile.am: added new files to build.
4092
4093         * bus/activation.c (bus_activation_activate_service): support
4094         activation commands with parameters.
4095
4096         * test/shell-test.c: added test program for the shell parsing
4097         code.
4098
4099 2005-07-13  David Zeuthen  <davidz@redhat.com>
4100
4101         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4102         64 bit signed and unsigned parameters
4103
4104 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4105
4106         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4107
4108         * python/service.py (class Name): renamed BusName to make it clearer
4109         what the object is for (a name on the bus)
4110
4111         * python/examples/example-service.py,
4112         python/examples/example-signal-emitter.py: change the Name object to
4113         BusName
4114
4115 2005-07-12  Colin Walters  <walters@verbum.org>
4116
4117         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4118
4119         * tools/dbus-launch.c: Include sys/select.h.
4120
4121 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4122         * python/dbus_bindings.pyx.in: removed
4123
4124         * python/dbus_bindings.pyx: Added.
4125         - Fixed some memleaks (patch from 
4126         Sean Meiners <sean.meiners@linspireinc.com>)
4127         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4128         own pxd file (Pyrex definition)
4129         - Broke out glib dependancies into its own pyx module
4130         
4131         * python/dbus_bindings.pdx: Added.
4132         - Defines C class Connection for exporting to other modules
4133
4134         * python/dbus_glib_bindings.pyx: Added.
4135         - New module to handle lowlevel dbus-glib mainloop integration
4136
4137         * python/glib.py: Added.
4138         - Registers the glib mainloop when you import this module
4139
4140         * python/services.py: Removed (renamed to service.py)
4141         
4142         * python/service.py: Added.
4143         - (class Server): renamed Name
4144
4145         * python/__init__.py: Bump ro version (0,41,0)
4146         -don't import the decorators or service module
4147         by default.  These now reside in the dbus.service namespace
4148
4149         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4150         setup function on creation 
4151
4152         * python/examples/example-service.py,
4153         python/examples/example-signal-emitter.py: update examples
4154
4155         * python/examples/gconf-proxy-service.py,
4156         python/examples/gconf-proxy-service2.py: TODO fix these up
4157
4158         * doc/TODO: Addition
4159         - Added a Python Bindings 1.0 section
4160         - added "Add match on args or match on details to match rules"
4161
4162
4163 2005-07-12  Colin Walters  <walters@verbum.org>
4164
4165         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4166         (statemachine-glue.h): 
4167         * glib/examples/Makefile.am (example-service-glue.h) 
4168         (example-signal-emitter-glue.h): 
4169         * glib/Makefile.am (dbus-glib-error-switch.h): 
4170         Add libtool --mode=execute so we use the built library instead
4171         of any installed one.
4172
4173 2005-07-11  Colin Walters  <walters@verbum.org>
4174
4175         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4176         (dbus_g_value_types_init): Remove assertion.
4177         (dbus_g_value_get_g_type, dbus_g_value_open)
4178         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4179         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4180         functions related to DBusGValue.  Now we marshal/demarshal
4181         structures as GValueArray.
4182         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4183         structures.
4184         (signature_iter_to_g_type_array): Don't call
4185         signature_iter_to_g_type_struct.
4186         (signature_iter_to_g_type_struct): Delete.
4187         (dbus_gvalue_to_signature): Delete.
4188         (dbus_gvalue_to_signature): New function with same name as other
4189         one; we can convert structures to signatures.
4190         (demarshal_valuearray): New function.
4191         (get_type_demarshaller): Use it.
4192         (demarshal_recurse): Delete.
4193         (marshal_proxy): New function.
4194         (marshal_map): Warn if we can't determine signature from type.
4195         (marshal_collection_ptrarray): Ditto.
4196         (marshal_collection_array): Ditto.
4197         (get_type_marshaller): Use marshal_valuearray.
4198         (marshal_recurse): Delete.
4199         (_dbus_gvalue_test): Add some tests.
4200
4201         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4202         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4203         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4204         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4205         (dbus_g_value_free): Remove prototypes.
4206
4207         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4208         G_TYPE_VALUE_ARRAY.
4209
4210         * glib/examples/example-service.c:
4211         * glib/examples/example-client.c: Implement GetTuple.
4212
4213         * test/glib/test-dbus-glib.c:
4214         * test/glib/test-service-glib.c:
4215         * test/glib/test-service-glib.xml: Add structure tests.
4216
4217 2005-07-10  Colin Walters  <walters@verbum.org>
4218
4219         * doc/TODO: Knock off some GLib items with this patch.
4220
4221         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4222         (_dbus_gvalue_signals_error): New functions.
4223
4224         * glib/dbus-gvalue-utils.h: Prototype them.
4225
4226         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4227         and change to not output const/retval flags for input args.  All
4228         callers updated.
4229         (invoke_object_method): Refactor to handle return values.  Add
4230         some more comments in various places.  Remove debug g_print.
4231
4232         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4233
4234         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4235         Handle G_TYPE_NONE.
4236         (compute_gsignature): New function; refactored from code from
4237         compute_marshaller and compute_marshaller_name.  Enhance to
4238         handle return values and async ops more cleanly.  Update for
4239         async ops returning NONE instead of BOOLEAN.
4240         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4241         and output appropriate string.
4242         (generate_glue): Handle return value annotation.  Also don't dump
4243         constness flag for input arguments.
4244
4245         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4246         files shared between installed library and utilities.
4247         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4248         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4249         binding tool can access gtype utility functions.
4250
4251         * test/glib/test-service-glib.c: 
4252         * test/glib/test-service-glib.xml: 
4253         * test/glib/test-dbus-glib.c: Add some tests for return values.
4254
4255 2005-07-09  Colin Walters  <walters@verbum.org>
4256
4257         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4258         argument if available, not method.
4259
4260         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4261         (invoke_object_method): First, remove some redundant
4262         GValues (object_value, error_value) in favor of working on
4263         array directly.  Second, rework constness to be less buggy.
4264         Now we iterate directly over the argument metadata instead
4265         of parallel iterating over output signature and metadata.
4266
4267         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4268
4269         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4270         annotation on input args.
4271         
4272 2005-07-09  Colin Walters  <walters@verbum.org>
4273
4274         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4275         Define.
4276
4277         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4278         annotation.
4279
4280         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4281         (method_dir_signature_from_object_info): Handle arg_iterate change.
4282         (write_interface): Ditto.
4283         (lookup_object_info): Don't barf if format_version is > 0.
4284         (invoke_object_method): Handle arg constness.
4285
4286         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4287         (arg_info_new): Create.
4288         (arg_info_unref): Destroy.
4289         (arg_info_get_annotations, arg_info_get_annotation) 
4290         (arg_info_add_annotation): New functions.
4291
4292         * glib/dbus-gidl.h: Prototype them.
4293
4294         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4295         args, disallow them in properties.
4296         (parse_annotation): Handle arg annotations.
4297
4298         * test/glib/test-service-glib.xml: 
4299         * test/glib/test-service-glib.c: Update to make some methods
4300         const.
4301
4302 2005-07-08  Colin Walters  <walters@verbum.org>
4303
4304         * test/glib/test-service-glib.xml: 
4305         * test/glib/test-service-glib.c:
4306         * test/glib/test-dbus-glib.c: Test a{sv}.
4307
4308         * glib/examples/statemachine/statemachine.c:
4309         * glib/examples/statemachine/statemachine-server.c:
4310         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4311         add progress bar, etc.
4312
4313         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4314         needed anymore due to generic array/map marshalling.
4315         (dbus_g_value_types_init): Don't register basic arrays or the
4316         string/string hash.
4317         (dbus_gtype_from_signature_iter): Don't try to recurse into
4318         variants.
4319         (dbus_gtype_to_signature): Check collection/map before type
4320         metadata.
4321         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4322         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4323         generic map creation/append functions instead of hash table
4324         specifically.
4325         (get_type_demarshaller): Handle maps.
4326         (demarshal_collection): Dispatch on collection type to either
4327         demarshal_collection_ptrarray or demarshal_collection_array.
4328         (get_type_marshaller): Handle maps.
4329         (marshal_collection): Dispatch collection type to either
4330         marshal_collection_ptrarray or marshal_collection_array.
4331         (_dbus_gvalue_test): New test.
4332
4333         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4334         (hash_free_from_gtype): Use it to free GValues.
4335         (hashtable_append): New function.
4336         (ptrarray_append): Fix prototype.
4337         (slist_append): Ditto.
4338         (_dbus_gvalue_utils_test): Extend tests.
4339
4340         * glib/dbus-gtype-specialized.c
4341         (dbus_g_type_specialized_init_append): Renamed from
4342         dbus_g_type_specialized_collection_init_append.  Remove const from
4343         value, since we steal it.
4344         (dbus_g_type_specialized_map_append): New function.
4345
4346         * glib/dbus-gtype-specialized.h: Update prototypes.
4347         Add DBusGTypeSpecializedMapAppendFunc.
4348
4349         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4350         _dbus_gvalue_test.
4351         
4352         * glib/dbus-gtest.h: Prototype it.
4353
4354 2005-07-08  Ross Burton  <ross@openedhand.com>
4355
4356         * dbus/dbus-glib.h:
4357         Add DBysGAsyncData for the async bindings.
4358
4359         * glib/dbus-binding-tool-glib.c:
4360         Re-enable the async bindings.
4361
4362         * test/glib/test-dbus-glib.c:
4363         Add a test for the generated async bindings.
4364
4365 2005-07-08  Colin Walters  <walters@verbum.org>
4366
4367         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4368         connection concept.
4369         
4370 2005-07-08  Colin Walters  <walters@verbum.org>
4371         
4372         * tools/Makefile.am: Kill of print-introspect in favor of using
4373         dbus-send --print-reply=literal.
4374
4375         * test/glib/test-service-glib.xml: 
4376         * test/glib/test-service-glib.c (my_object_get_objs): New test
4377         for "ao".
4378
4379         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4380         (main): Test GetObjs.
4381
4382         * glib/examples/statemachine/Makefile.am:
4383         * glib/examples/statemachine/sm-marshal.list:
4384         * glib/examples/statemachine/statemachine-client.c:
4385         * glib/examples/statemachine/statemachine-server.c:
4386         * glib/examples/statemachine/statemachine-server.xml:
4387         * glib/examples/statemachine/statemachine.c:
4388         * glib/examples/statemachine/statemachine.h:
4389         * glib/examples/statemachine/statemachine.xml:
4390
4391         New example.
4392
4393         * glib/examples/example-service.c (main): Move invocation
4394         of dbus_g_object_type_install_info earlier, to emphasize it
4395         should only be done once.
4396
4397         * glib/examples/example-signal-emitter.c (main): Ditto.
4398
4399         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4400
4401         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4402         (dbus_gvalue_marshal): Update prototypes.
4403
4404         * glib/dbus-gvalue.c: Update all marshalling functions to take
4405         const GValue instead of GValue.
4406         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4407         types.
4408         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4409         change.
4410         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4411         Return a newly-allocated string.
4412         (demarshal_proxy, demarshal_object_path, demarshal_object)
4413         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4414         we get the wrong types from message.
4415         (get_type_demarshaller): New function, extracted from
4416         dbus_gvalue_demarshal.
4417         (demarshal_collection): New function, demarshals generic
4418         collection.
4419         (dbus_gvalue_demarshal): Just invoke result of
4420         get_type_demarshaller.  Throw error if we don't have one.
4421         (marshal_garray_basic): Abort on OOM.
4422         (get_type_marshaller): New function, extracted from
4423         dbus_gvalue_marshal.
4424         (collection_marshal_iterator, marshal_collection): New functions;
4425         implements generic marshalling for an iteratable specialized
4426         collection.
4427         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4428
4429         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4430         G_TYPE_STRING.
4431         (ptrarray_value_from_gvalue): Ditto.
4432         (ptrarray_append, ptrarray_free): New functions.
4433         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4434         (slist_append, slist_end_append, slist_free): New functions.
4435         (dbus_g_type_specialized_builtins_init): Add append fuctions
4436         for GPtrArray and GSList.  Register GSList.
4437         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4438
4439         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4440         New.
4441         (dbus_g_type_specialized_collection_init_append)
4442         (dbus_g_type_specialized_collection_append)
4443         (dbus_g_type_specialized_collection_end_append): Prototype.
4444         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4445         end_append_func.
4446
4447         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4448         (dbus_g_type_specialized_collection_append) 
4449         (dbus_g_type_specialized_collection_end_append): New functions.
4450         (dbus_g_type_map_value_iterate): Take const GValue.
4451         (dbus_g_type_collection_value_iterate): Ditto.
4452
4453         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4454         _dbus_gvalue_utils_test.
4455         
4456         * glib/dbus-gtest.h: Prototype it.
4457
4458         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4459         using uninitialized owner_list.
4460         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4461         public API.
4462         (dbus_g_proxy_end_call_internal): Update to use error set
4463         from dbus_gvalue_demarshal instead of setting it here.
4464         (dbus_g_proxy_begin_call): Move return_if_fail here.
4465
4466         * glib/dbus-gobject.c (write_interface): Update for
4467         dbus_gtype_to_signature returning new string.
4468
4469         * configure.in: Add glib/examples/statemachine.
4470
4471 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4472
4473         * configure.in: Add a configure option, --with-console-auth-dir
4474         
4475         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4476         new setting.  Patch from Kay Sievers.
4477
4478 2005-07-06  Colin Walters  <walters@verbum.org>
4479
4480         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4481         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4482         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4483         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4484         Delete in favor of dbus_g_proxy_begin_call and
4485         dbus_g_proxy_cancel_call.
4486         (DBusGProxyCall, DBusGProxyCallNotify): New.
4487         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4488         data, and destroy function.  This replaces
4489         dbus_g_pending_call_set_notify.
4490         (dbus_g_proxy_cancel_call): Prototype.
4491         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4492
4493         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4494         pending_calls map.
4495         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4496         internal proxy for calls to the bus. Remove
4497         pending_nameowner_calls, now the internal proxy keeps track.
4498         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4499         pending_nameowner_calls.
4500         (got_name_owner_cb): Update prototype, and use
4501         dbus_g_proxy_end_call.
4502         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4503         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4504         favor of using internal proxy.
4505         (dbus_g_proxy_manager_unregister): Update to use
4506         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4507         (dbus_g_proxy_init): Initialize pending calls map.
4508         (dbus_g_proxy_constructor): New.
4509         (dbus_g_proxy_class_init): Add get/set property functions,
4510         constructor, and add NAME, PATH, and INTERFACE properties.
4511         (cancel_pending_call): New function.
4512         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4513         cancel them.
4514         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4515         (GPendingNotifyClosure): New structure.
4516         (d_pending_call_notify, d_pending_call_free): Moved here from
4517         dbus-glib.c.
4518         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4519         ordering.
4520         (manager_begin_bus_call): New internal function for talking to
4521         internal bus proxy.
4522         (dbus_g_proxy_new): Construct object using GObjet properties.
4523         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4524         Create closure of same, and insert call into map of pending calls.
4525         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4526         call.  Look up pending call in current set.  Remove it when we've
4527         completed.
4528         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4529         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4530         and destroy function directly.
4531         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4532         (dbus_g_proxy_call): Invoke with NULL callback.
4533         (dbus_g_proxy_cancel_call): New function, replaces
4534         dbus_g_pending_call_cancel.
4535
4536         * glib/dbus-gparser.c (validate_signature): Fix call to
4537         dbus_set_g_error.
4538
4539         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4540         New quark for attaching metadata to GType.
4541         (info_hash): Delete.
4542         (lookup_object_info): Look up using quark.
4543         (dbus_g_object_type_install_info): Check that a type is classed,
4544         not that it's an object.  Also just install type data using quark
4545         instead of using global hash.
4546
4547         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4548         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4549         (GPendingNotifyClosure): Delete.
4550         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4551         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4552
4553         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4554         client method generation until we can fix it...
4555         
4556         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4557         (load_from_service_thread_func): Ditto.
4558
4559         * tools/dbus-names-model.c (struct NamesModel): Hold
4560         DBusGProxyCall.
4561         (have_names_notify): Update prototype, use
4562         dbus_g_proxy_cancel_call.
4563         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4564
4565         * tools/dbus-monitor.c (filter_func): Update for print_message
4566         API change.
4567
4568         * test/glib/test-dbus-glib.c: Add more tests for async
4569         invocations.  Update many begin_call/end_call pairs to just use
4570         dbus_g_proxy_call.
4571
4572         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4573         allows us to dump print-introspect.c.
4574
4575         * tools/dbus-print-message.h (print_message): Add literal argument
4576         to print_message which is intended to allow printing arguments without
4577         metadata like "string=".
4578
4579         * tools/dbus-print-message.c (print_iter): Add literal argument.
4580         (print_message): Allow printing string messages literally.
4581
4582 2005-07-05  Colin Walters  <walters@verbum.org>
4583
4584         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4585         Remove value refcount leak, original patch from Jorn Baayen
4586         <jorn@openedhand.com>.  Also remove useless extra value in favor
4587         of prepending to value array directly.
4588
4589 2005-07-02  Colin Walters  <walters@verbum.org>
4590
4591         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4592
4593 2005-07-01  Colin Walters  <walters@verbum.org>
4594
4595         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4596         
4597         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4598         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4599         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4600         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4601
4602 2005-06-30  Colin Walters  <walters@verbum.org>
4603
4604         * test/glib/test-dbus-glib.c:
4605         * test/glib/test-service-glib.c:
4606         * test/glib/test-service-glib.xml: Update tests for new error
4607         setting bits, also add async tests (patch from Ross Burton).
4608
4609         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4610         DBUS_GLIB_THREADS_LIBS.
4611
4612         * glib/dbus-gproxy.c (get_name_owner)
4613         (dbus_g_pending_call_end_valist): Ditto.
4614
4615         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4616         domain (GQuark) to DBusGErrorInfo.  
4617         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4618         quark in error_metadata.  Take message interface as default
4619         error message interface.
4620         (gerror_to_dbus_error_message): Pass message interface.
4621         (dbus_set_g_error): Resurrected.
4622         (dbus_g_error_info_free): New function.
4623         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4624         of _peek to actually create the object class if it hasn't been
4625         created yet.
4626         (dbus_g_error_domain_register): New function.
4627
4628         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4629
4630         * glib/dbus-gparser.c (validate_signature): Ditto.
4631
4632         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4633         (dbus_g_error_domain_register): Prototype.
4634
4635         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4636         Update tests.
4637
4638 2005-06-29  Colin Walters  <walters@verbum.org>
4639
4640         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4641         DBUS_TYPE_G_OBJECT_PATH.
4642
4643         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4644         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4645         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4646         (dbus_g_object_path_get_g_type): New function.
4647         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4648         to DBUS_TYPE_G_OBJECT_PATH by default.
4649         (demarshal_proxy): Remove unused name variable.
4650         (demarshal_object_path, marshal_object_path): New functions.
4651         (demarshal_proxy_array, marshal_proxy_array): Delete.
4652         
4653         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4654         DBUS_TYPE_G_OBJECT_PATH to char *.
4655         (dbus_g_type_get_lookup_function): Map builtin
4656         DBUS_TYPE_G_OBJECT_PATH.
4657
4658         * test/glib/test-dbus-glib.c
4659         * test/glib/test-service-glib.c (my_object_objpath): 
4660         Adapt tests to new object path marshalling.
4661
4662 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4663
4664         * configure.in: force check for Python >= 2.4
4665
4666 2005-06-29  Colin Walters  <walters@verbum.org>
4667         
4668         Patch from Ross Burton <ross@openedhand.com>
4669         
4670         * glib/dbus-gobject.c (invoke_object_method): Unset object
4671         value in all cases, not only in async case.
4672
4673 2005-06-29  Colin Walters  <walters@verbum.org>
4674
4675         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4676         name_call for keeping track of any outgoing GetNameOwner call.
4677         Also add for_owner and associated.
4678         (struct _DBusGProxyManager): Add owner_names, which is hash table
4679         that maps a base name to a list of names it owns (that we're
4680         interested in).  Add pending_nameowner_calls which is a list of
4681         all outstanding GetNameOwner; avoids us having to iterate over
4682         every proxy.  Add unassociated_proxies which keeps track of name
4683         proxies with no associated name owner.
4684         (dbus_g_proxy_manager_unref): Destroy owner_names.
4685         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4686         name refcounts.
4687         (find_name_in_info, name_owner_foreach)
4688         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4689         (dbus_g_proxy_manager_monitor_name_owner)
4690         (dbus_g_proxy_manager_unmonitor_name_owner)
4691         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4692         New functions; they manipulate the owner_names mapping.
4693         (got_name_owner_cb): New function.
4694         (get_name_owner): New function, extracted from
4695         dbus_g_proxy_new_for_name_owner.
4696         (dbus_g_proxy_manager_register): For now we need to keep track of
4697         all NameOwnerChanged.  Also if the proxy is for a name, if we
4698         don't already know the name owner, queue a new GetNameOwner
4699         request and add it to our list of unassociated proxies.  Otherwise
4700         inc the refcount.
4701         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4702         cancel any pending GetNameOwner call, etc.
4703         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4704         the owner_names mapping to look up the current names for the
4705         signal source, and dispatch to any proxies for that name.
4706         (dbus_g_proxy_new): Initialize new members.
4707         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4708         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4709         (dbus_g_pending_call_end_valist): New function, extracted from
4710         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4711         but want to use the GLib infrastructure.  Also note how many
4712         arguments in reply were over.
4713         (dbus_g_pending_call_end): New function, just call
4714         dbus_g_pending_call_end_valist.
4715         (dbus_g_proxy_end_call_internal): Just call
4716         dbus_g_pending_call_end_valist.
4717
4718         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4719         of builtin marshaller for STRING_STRING_STRING.
4720
4721         * test/glib/test-dbus-glib.c: 
4722         * test/glib/test-service-glib.c:
4723         * test/glib/test-service-glib.xml:
4724         Extend tests to cover name proxies, destruction of owner proxies,
4725         etc.
4726         
4727         * glib/examples/example-signal-recipient.c
4728         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4729         
4730         * tools/dbus-send.c (main): Print D-BUS error name in addition
4731         to message.
4732
4733 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4734
4735         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4736         cmessage_function_handler): Patch from 
4737         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4738         by using the Py_GILState_Ensure/Release to synchronize with the
4739         python runtime.
4740         
4741 2005-06-28  Ray Strode  <rstrode@redhat.com>
4742
4743         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4744         babysitter helper process on last unref, bug #2813.
4745
4746 2005-06-27  Colin Walters  <walters@verbum.org>
4747
4748         * test/glib/test-dbus-glib.c: 
4749         * test/glib/test-service-glib.c:
4750         * test/glib/test-service-glib.xml:
4751         Test hash table signal emitting.
4752
4753         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4754         types to their fundamental basis types, since this is what
4755         marshallers operate on.  Also add an entry for VOID__BOXED.
4756         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4757
4758 2005-06-26  Havoc Pennington  <hp@redhat.com>
4759
4760         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4761         from Don Park
4762
4763 2005-06-26  Colin Walters  <walters@verbum.org>
4764
4765         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4766         (dbus_g_error_set): New public function from its ashes; used by
4767         both service-side method implementation and GLib bindings
4768         internals.
4769         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4770         (_dbus_glib_test): Add some tests.
4771
4772         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4773
4774         * test/glib/test-service-glib.c (my_object_throw_error): Use
4775         dbus_g_error_set.
4776
4777         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4778         errors thrown by dbus_g_error_set.
4779
4780         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4781
4782         * glib/dbus-gparser.c (validate_signature): Ditto.
4783
4784         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4785         (dbus_g_proxy_end_call_internal): Ditto.
4786
4787         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4788         converts DBUS_ERROR_x to DBUS_GERROR_x.
4789         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4790
4791         * doc/TODO: Remove error TODO.
4792
4793         * doc/dbus-tutorial.xml: Update with documentation about error
4794         handling.
4795
4796         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4797         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4798         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4799
4800 2005-06-22  Colin Walters  <walters@verbum.org>
4801         
4802         Patch from Ross Burton <ross@openedhand.com>
4803
4804         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4805
4806 2005-06-20  Colin Walters  <walters@verbum.org>
4807
4808         * configure.in: Add glib/examples.
4809
4810         * glib/Makefile.am: Add examples/
4811
4812         * glib/examples/.cvsignore
4813         * glib/examples/Makefile.am
4814         * glib/examples/example-client.c
4815         * glib/examples/example-service.c
4816         * glib/examples/example-service.xml
4817         * glib/examples/example-signal-emitter.c
4818         * glib/examples/example-signal-emitter.xml
4819         * glib/examples/example-signal-recipient.c:
4820         New files; GLib binding examples, ported from
4821         python/examples.
4822
4823 2005-06-20  Colin Walters  <walters@verbum.org>
4824
4825         * dbus/dbus-glib.h: 
4826         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4827         dbus_g_proxy_call.
4828
4829         * glib/dbus-binding-tool-glib.c: 
4830         * doc/dbus-tutorial.xml: 
4831         * test/glib/test-dbus-glib.c: Update for rename.
4832         
4833 2005-06-20  Colin Walters  <walters@verbum.org>
4834
4835         Patch suggested by Ross Burton <ross@openedhand.com>
4836
4837         * glib/dbus-gobject.c (export_signals): Free signal name.
4838         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4839         memory leak.  Add a bit of documentation.
4840         (dbus_g_method_return_error): Free context, and note we do
4841         so.
4842
4843 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4844
4845         * dbus/dbus-glib.h:
4846         * glib/dbus-gobject.c:
4847         * glib/dbus-gproxy.c:
4848         * glib/dbus-gvalue.c: Predeclare structs as 
4849         typedef struct _Something Something instead of 
4850         typedef struct Something Something, so we can 
4851         redeclare the prototypes. Other GNOME libraries 
4852         do this already.
4853
4854 2005-06-17  Colin Walters  <walters@verbum.org>
4855
4856         * tools/dbus-names-model.c (have_names_notify): Fix call
4857         to dbus_g_proxy_end_call.
4858         
4859 2005-06-17  Colin Walters  <walters@verbum.org>
4860
4861         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4862         spew warnings if we get malformed remote signals.
4863
4864         * glib/dbus-gobject.c (propsig_iterate): New function.
4865         (lookup_object_info): New function, extracted from
4866         lookup_object_and_method.
4867         (introspect_properties, introspect_signals): Delete; these
4868         are merged into write_interface.
4869         (write_interface): Write out signals and properties here;
4870         dump the org.gtk.object stuff and use the interface given
4871         in the introspection data blob.  Also fix up property XML.
4872         (lookup_values): New function.
4873         (introspect_interfaces): Gather a mapping from interface to a
4874         list of its methods, signals, and properties, then write out
4875         each interface.
4876         (lookup_object_and_method): Use lookup_object_info.
4877         (struct DBusGSignalClosure): Add interface.
4878         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4879         we can just use the constant data.
4880         (dbus_g_signal_closure_finalize): Don't free signal name.
4881         (signal_emitter_marshaller): Use interface from signal closure.
4882         (export_signals): Only export signals mentioned in introspection
4883         blob.
4884         (dbus_g_connection_register_g_object): Warn if we have no
4885         introspection data for an object.
4886         (funcsig_equal): Remove unused variable.
4887         (dbus_g_object_register_marshaller): Take varargs instead of
4888         list.
4889         (dbus_g_object_register_marshaller_array): New function,
4890         extracted from old dbus_g_object_register_marshaller.
4891
4892         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4893         signals and property data.
4894         (write_quoted_string): New function, extracted from generate_glue.
4895         (generate_glue): Write signals and properties to introspection
4896         blob.
4897
4898         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4899         exported_signals and exported_properties.
4900         (dbus_g_object_register_marshaller): Update prototype.
4901         (dbus_g_object_register_marshaller_array): Prototype.
4902         
4903         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4904
4905         * test/glib/test-service-glib.c: Add new test signals and method
4906         to emit them.
4907
4908         * test/glib/test-service-glib.xml: Add some test signals.
4909
4910         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4911         and my-object-marshal.h
4912         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4913         my-object-marshal.c.
4914         (my-object-marshal.c, my-object-marshal.h): Implement.
4915
4916         * test/glib/.cvsignore: Update.
4917
4918         * doc/TODO: Remove two GLib TODO items fixed by this
4919         patch.
4920
4921 2005-06-16  Colin Walters  <walters@verbum.org>
4922
4923         * doc/TODO: Update for GLib bindings.
4924         
4925 2005-06-16  Colin Walters  <walters@verbum.org>
4926
4927         * glib/dbus-binding-tool-glib.c:
4928         * glib/dbus-gobject.c:
4929         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4930         from Ross Burton, for his GLib bindings work.
4931
4932 2005-06-16  Colin Walters  <walters@verbum.org>
4933
4934         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4935         to iterate instead of walking to G_TYPE_INVALID.
4936
4937         Patch based on a patch from Ryan Gammon.
4938
4939 2005-06-16  Colin Walters  <walters@verbum.org>
4940
4941         * bus/bus.c (bus_context_new): Set parser to NULL
4942         after we unref it (Patch from Chris Boscolo, #2174).
4943         
4944 2005-06-16  Colin Walters  <walters@verbum.org>
4945
4946         * python/dbus_bindings.pyx.in: Import size_t,
4947         __int64_t, __uint64_t, and __signed.
4948
4949         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4950         Define cmsg struct, output it.
4951         (_dbus_read_credentials_unix_socket):
4952         Use cmsg struct.
4953         
4954         Patch from Joe Markus Clarke for FreeBSD support.
4955         
4956 2005-06-16  Colin Walters  <walters@verbum.org>
4957
4958         * tools/dbus-send.c (append_array): Use strtok.
4959         (append_dict): New function.
4960         (type_from_name): New function, extracted from main.
4961         (main): Handle sending dicts.
4962
4963         * tools/dbus-print-message.c (print_iter): Print dict
4964         entries.
4965         
4966 2005-06-16  Colin Walters  <walters@verbum.org>
4967
4968         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4969         values as the empty string (#2948).
4970         
4971 2005-06-16  Colin Walters  <walters@verbum.org>
4972
4973         * dbus/Makefile.am:
4974         * mono/doc/Makefile.am:
4975         * test/glib/Makefile.am:
4976
4977         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4978
4979 2005-06-16  Colin Walters  <walters@verbum.org>
4980
4981         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4982         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4983
4984         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4985         Increment pointer after swapping fixed array.  Add assertion
4986         for array length.
4987                 
4988 2005-06-15  Colin Walters  <walters@verbum.org>
4989
4990         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4991         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4992         
4993 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4994
4995         * NEWS: Update to 0.34
4996
4997 2005-06-15  David Zeuthen  <davidz@redhat.com>
4998
4999         * configure.in (LT_CURRENT): Revert back to 1 as the library
5000         hasn't changed and we've certainly not committed to protocol
5001         stability yet.  All this does is to break ABI. See commit note
5002         from hp@redhat.com 2005-05-05 for details.
5003         
5004 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5005
5006         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
5007         (_dbus_connection_run_builtin_filters): New method
5008         (dbus_connection_dispatch): Run the builtin filters which in turn
5009         runs the peer filter which handles Ping messages.
5010
5011         * doc/TODO: 
5012          - Ping isn't handled: This patch fixes it
5013          
5014          - Add a test case for the Ping message: added TODO item
5015
5016 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5017
5018         * dbus/dbus-message.c:
5019         (dbus_message_has_path): New method
5020         (dbus_message_has_interface): New method
5021         (dbus_message_has_member): New method
5022
5023         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5024         New method
5025
5026         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5027         the keyring directory is private to the user
5028
5029         * doc/TODO:
5030          - The convenience functions in dbus-bus.h should perhaps have
5031          the signatures that they would have if they were autogenerated
5032          stubs. e.g. the acquire service function. We should also evaluate
5033          which of these functions to include, in light of the fact that
5034          GLib/Qt native stubs will probably also exist.: Punted
5035
5036          - add dbus_message_has_path(), maybe has_member/interface:
5037          fixed in this patch
5038
5039          - in dbus-keyring.c, enforce that the keyring dir is not
5040          world readable/writable: Fixed in this patch
5041
5042 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5043
5044         * dbus/dbus-marshal-validate.h: Added a new validation
5045         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5046         out of memory errors when validating signitures
5047
5048         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5049         in places where we previously used DBUS_VALID and a FALSE return 
5050         value to indicate OOM
5051         
5052         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5053         Use a stack to track the number of elements inside containers.  The 
5054         stack values are then used to validate that dict entries have only two
5055         elements within them.
5056         (validate_body_helper): check the reason for failure when validating
5057         varients
5058         
5059         * dbus/dbus-message.c (load_message): use 
5060         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5061         DBUS_VALID and a FALSE return value to indicate OOM
5062
5063         * doc/TODO: remove "- validate dict entry number of fields" as this
5064         patch fixes it
5065
5066 2005-06-14  David Zeuthen  <davidz@redhat.com>
5067
5068         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5069         watches (if applicable) and add new watches
5070
5071         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5072         (main): Setup SIGIO signal handler if using D_NOTIFY
5073
5074         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5075
5076         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5077         (merge_included): Also merge conf_dirs list
5078         (bus_config_parser_unref): Clear conf_dirs list
5079         (include_dir): Add directory to conf_dirs list
5080         (bus_config_parser_get_conf_dirs): New function
5081
5082         * bus/dir-watch.[ch]: New files
5083
5084         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5085
5086         * configure.in: Add checks for D_NOTIFY on Linux
5087
5088 2005-06-14  Colin Walters  <walters@verbum.org>
5089
5090         * glib/dbus-binding-tool-glib.c:
5091         * glib/dbus-gobject.c:
5092         * glib/dbus-gvalue.c: Fix indentation and brace style.
5093         
5094 2005-06-14  Ross Burton <ross@openedhand.com>.
5095
5096         * glib/dbus-glib.h: Make DBusGMethodInvocation
5097         a private structure.  Rearrange prototypes a bit.
5098         
5099         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5100         documentation for first_arg_type.
5101         
5102         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5103         here, add documentation.  Move dbus_g_method_return
5104         and dbus_g_method_return_error into public API
5105         section.
5106
5107 2005-06-14  Colin Walters  <walters@verbum.org>
5108
5109         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5110         Add missing return statements, noticed by Ross Burton.
5111         
5112 2005-06-13  Ross Burton <ross@openedhand.com>.
5113
5114         * glib/dbus-gobject.c: Handle errors on message
5115         demarshalling by sending error message back.
5116         * glib/dbus-gvalue.c: Initialize return variables.
5117
5118 2005-06-13  Colin Walters  <walters@verbum.org>
5119
5120         * glib/Makefile.am: Fix thinko in last patch.
5121
5122 2005-06-13  Colin Walters  <walters@verbum.org>
5123
5124         * glib/Makefile.am: Move dbus-gtype-specialized.c
5125         and dbus-gtype-specialized.h into a _HEADERS variable,
5126         install them.
5127
5128 2005-06-12  Colin Walters  <walters@verbum.org>
5129
5130         Async signals and various bugfixes and testing by
5131         Ross Burton <ross@openedhand.com>.
5132
5133         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5134         (dbus_gvalue_genmarshal_name_from_type)
5135         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5136         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5137         (dbus_g_value_types_init, dbus_gtype_from_signature)
5138         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5139         (dbus_gtypes_from_arg_signature): New function prototypes.
5140         (dbus_gvalue_demarshal): Take context and error arguments.
5141         (dbus_gvalue_demarshal_variant): New function.
5142         (dbus_gvalue_demarshal_message): New function.
5143         (dbus_gvalue_store): Delete.
5144
5145         * glib/dbus-gvalue.c:
5146
5147         File has been almost entirely rewritten; now we special-case
5148         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5149         hash tables correctly, etc.  Full support for recursive values
5150         is not yet complete.
5151
5152         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5153         argument of signal to G_TYPE_POINTER since we now pass a
5154         structure.
5155         (lookup_g_marshaller): Delete in favor of
5156         _dbus_gobject_lookup_marshaller.
5157         (marshal_dbus_message_to_g_marshaller): Use
5158         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5159         to handle remote signal callbacks.
5160         (dbus_g_proxy_new_from_proxy): New function; creates a new
5161         DBusGProxy by copying an existing one.
5162         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5163         (dbus_g_proxy_get_path): New functions.
5164         (dbus_g_proxy_marshal_args_to_message): New function;
5165         factored out of existing code.
5166         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5167         from a varargs array.
5168         (dbus_g_proxy_begin_call_internal): New function.
5169         (dbus_g_proxy_end_call_internal): New function.
5170         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5171         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5172         after collecting args into value array.
5173         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5174         invoke dbus_g_proxy_end_call_internal.
5175         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5176         end_call_internal.
5177         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5178         types.
5179         (array_free_all): New function.
5180         (dbus_g_proxy_add_signal): Take GTypes.
5181
5182         * glib/dbus-gobject.h:
5183         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5184         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5185         Prototype.
5186
5187         * glib/dbus-gobject.c: Add a global marshal_table hash which
5188         stores mappings from type signatures to marshallers.  Change lots
5189         of invocations of dbus_gtype_to_dbus_type to
5190         dbus_gtype_to_signature.
5191         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5192         (introspect_signals): Fix test for query.return_type.
5193         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5194         (invoke_object_method): Many changes.  Handle asynchronous
5195         invocations.  Convert arguments with
5196         dbus_gvalue_demarshal_message.  Handle errors.  Use
5197         DBusSignatureIter instead of strlen on args. Handle all arguments
5198         generically.  Special-case variants.
5199         (dbus_g_method_return, dbus_g_method_return_error): New function.
5200         (DBusGSignalClosure): New structure, closes over signal
5201         information.
5202         (dbus_g_signal_closure_new): New function.
5203         (dbus_g_signal_closure_finalize): New function.
5204         (signal_emitter_marshaller): New function; is special marshaller
5205         which emits signals on bus.
5206         (export_signals): New function; introspects object signals and
5207         connects to them.
5208         (dbus_g_object_type_install_info): Take GType instead of
5209         GObjectClass.
5210         (dbus_g_connection_register_g_object): Invoke export_signals.
5211         (dbus_g_connection_lookup_g_object): New function.
5212         (DBusGFuncSignature) New structure; used for mapping type
5213         signatures to marshallers.
5214         (funcsig_hash): New function; hashes DBusGFuncSignature.
5215         (funcsig_equal): New function; compares DBusGFuncSignature.
5216         (_dbus_gobject_lookup_marshaller): New function.
5217         (dbus_g_object_register_marshaller): New function; used to
5218         register a marshaller at runtime for a particular signature.
5219
5220         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5221
5222         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5223         which notes a server method implementation should be
5224         asynchronous.
5225
5226         * glib/dbus-binding-tool-glib.c
5227         (dbus_binding_tool_output_glib_server): Call
5228         dbus_g_value_types_init.
5229         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5230         variants specially.
5231         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5232         of a lookup function.
5233         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5234         (write_untyped_out_args): New method; write output arguments.
5235         (write_formal_declarations_for_direction): Function for
5236         writing prototypes.
5237         (write_formal_parameters_for_direction): Function for
5238         writing implementations.
5239         (write_typed_args_for_direction): Function for writing
5240         arguments prefixed with GTypes.
5241         (write_async_method_client): Write out async version
5242         of method.
5243
5244         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5245         (dbus_g_type_get_marshal_name): Move mapping from GType
5246         to marshal name into here.
5247         (dbus_g_type_get_c_name): Move into here.
5248         (compute_marshaller): Convert signature to type with
5249         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5250         (compute_marshaller_name): Ditto.
5251         (compute_marshaller): Handle async signal annotations.
5252         (gather_marshallers): Return if we don't have a known
5253         prefix.
5254         (generate_glue): Collect introspection blob here, and
5255         write all of the blob at the end.  This allows an object
5256         with multiple interfaces to work.
5257         Mark async methods in introspection blob.
5258
5259         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5260         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5261         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5262
5263         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5264         avoids people accidentally using DBUS_TYPE_* which should
5265         not be necessary anymore.
5266         Do include dbus-gtype-specialized.h, which are utilities
5267         for GLib container types.
5268         Add various #defines for types such as
5269         DBUS_TYPE_G_BOOLEAN_ARRAY.
5270         (DBusGValueIterator, DBusGValue): Define, not fully used
5271         yet.
5272         (dbus_g_value_get_g_type): Type for recursive value.
5273         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5274         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5275         (dbus_g_value_free): Prototypes.
5276         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5277         (dbus_g_proxy_set_interface): Prototype.
5278         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5279         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5280         types.
5281         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5282         Accessors.
5283         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5284         doing async invocations.
5285         (dbus_g_method_return, dbus_g_method_return_error):
5286         Prototypes.
5287         * doc/dbus-tutorial.xml: Update GLib section.
5288         
5289         * tools/dbus-viewer.c (load_child_nodes): Update
5290         for new invocation type of dbus_g_proxy_end_call.
5291         (load_from_service_thread_func): Ditto.
5292
5293         * tools/print-introspect.c (main): Ditto.
5294
5295         * tools/dbus-names-model.c (have_names_notify)
5296         (names_model_reload, names_model_set_connection)
5297         Use GTypes.
5298
5299         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5300         needed since Python bindings use GLib bindings.
5301
5302         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5303         Add --prefix argument.
5304
5305         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5306         unneeded --ignore-unsupported arg.
5307         
5308         * test/glib/test-service-glib.c: 
5309         * test/glib/test-service-glib.xml:
5310         * test/glib/test-dbus-glib.c: Add many more tests.
5311
5312 2005-06-06  David Zeuthen  <davidz@redhat.com>
5313
5314         * doc/TODO: Add item about need to remove deprecated functions.
5315
5316         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5317
5318         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5319         to repair the ABI which was broken with the last commit.
5320
5321 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5322
5323         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5324         (dbus_connection_disconnect): renamed to dbus_connection_close 
5325         for API symmetry with dbus_connection_open
5326         (_dbus_connection_open_internal): 
5327         s/dbus_connection_disconnect/dbus_connection_close
5328
5329         * dbus/dbus-bus.c (dbus_bus_get):
5330         s/dbus_connection_disconnect/dbus_connection_close
5331
5332         * bus/connection.c (bus_connections_unref, 
5333         bus_connections_setup_connection, bus_connections_expire_incomplete):
5334         s/dbus_connection_disconnect/dbus_connection_close
5335
5336         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5337         kill_client_connection_unchecked, check_hello_connection):
5338         s/dbus_connection_disconnect/dbus_connection_close
5339
5340         * bus/bus.c (new_connection_callback):
5341         s/dbus_connection_disconnect/dbus_connection_close
5342
5343         * tools/dbus-send.c (main):
5344         s/dbus_connection_disconnect/dbus_connection_close
5345
5346         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5347         s/dbus_connection_disconnect/dbus_connection_close
5348         
5349         * test/test-service.c (path_message_func, filter_func):
5350         s/dbus_connection_disconnect/dbus_connection_close
5351         
5352         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5353         
5354 2005-05-25  Colin Walters  <walters@verbum.org>
5355
5356         * dbus/dbus-protocol.h: Move various bus service #defines such
5357           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5358           dbus/dbus-shared.h.
5359         * dbus/dbus-shared.h: Various defines moved here.
5360         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5361
5362 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5363
5364         * python/__init__.py: Python bindings deserve a minor version
5365         update.  Upped to (0, 40, 2)
5366
5367 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5368
5369         * python/decorators.py: add explicitly_pass_message decorator
5370         for passing in the dbus message as keyword for edge case signal
5371         handling
5372
5373         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5374         to conform with what dbus expects for match rules
5375         (SignalMatchRule.execute): add the dbus message as a keyword
5376         if the signal handler has requested it
5377
5378         * python/examples/example/signal-recipient.py: added some more
5379         examples on how to hook up to signals
5380
5381 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5382
5383         * python/decorators.py: import dbus_bindings
5384
5385         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5386         SignalMatchNode): new classes that implement wildcard signal
5387         callback matching using a tree lookup. Heavily modified from a
5388         patch sent by Celso Pinto (fd.o bug #3241)
5389
5390         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5391         use new match classes to handle signals.
5392
5393 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5394         
5395         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5396
5397 2005-05-18  Havoc Pennington  <hp@redhat.com>
5398
5399         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5400         gettext. Not really worth requiring yet perhaps, but any
5401         production quality 1.0 would require it so we should go ahead and
5402         get things set up. We do have a couple token calls to
5403         bindtextdomain in the code already.
5404
5405 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5406
5407         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5408         when using recursive g_main_loops
5409
5410         * python/_dbus.py (class Bus): add the ProxyObjectClass
5411         alias for ProxyObject to make it easier for the Twisted 
5412         networking framework to integrate dbus.
5413
5414         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5415         alias for ProxyMethod to make it easier for the Twisted 
5416         networking framework to integrate dbus. 
5417
5418 2005-05-11  Ross Burton  <ross@openedhand.com>
5419
5420         * glib/dbus-glib-tool.c: Add --prefix argument.
5421         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5422         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5423         Add prefix argument.
5424         (generate_glue): Pass prefix argument down.
5425         (dbus_binding_tool_output_glib_server): Pass prefix to
5426         glib-genmarshal.
5427         
5428 2005-05-11  Colin Walters  <walters@verbum.org>
5429
5430         * tools/dbus-send.c (append_array): New function.
5431         (append_arg): Broken out from main.
5432         (main): Add cheesy hack to send arrays and variants.
5433         (usage): Update.
5434         * tools/dbus-print-message.c (print_iter): Broken out
5435         from main.
5436
5437 2005-05-11  Colin Walters  <walters@verbum.org>
5438
5439         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5440         New function, returns signature string for signature iter.
5441         * dbus/dbus-signature.h: Prototype it.
5442         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5443         New function, returns signature string for message iter.
5444         (dbus_message_iter_get_array_len): New function, returns
5445         length of array.
5446         (dbus_message_iter_get_fixed_array): Fix assertion; this
5447         function should be used when the iter is pointing to the
5448         contents of an array
5449         * dbus/dbus-message.h: Prototypes.
5450         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5451         New function; returns length of an array.
5452         * dbus/dbus-marshal-recursive.h: Prototype it.
5453         
5454 2005-05-11  Colin Walters  <walters@verbum.org>
5455
5456         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5457         compilation error.
5458         
5459 2005-05-08  Havoc Pennington  <hp@redhat.com>
5460
5461         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5462         daemon's pid, not the parent's pid, to the file descriptor.
5463         Reported by Taj Morton.
5464
5465 2005-05-05  Havoc Pennington  <hp@redhat.com>
5466
5467         * configure.in (LT_*): add notes on how the libtool versioning
5468         works to save thinking. Increment soname to indicate protocol
5469         breakage (though really the library interface hasn't changed I
5470         guess)
5471
5472         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5473         verify the GUID received from server matches what we were
5474         expecting, if we had an expectation
5475
5476         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5477         (_dbus_auth_get_guid_from_server): new function
5478         (send_begin): parse the OK args
5479
5480         * doc/dbus-specification.xml: add GUID to the auth protocol
5481
5482 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5483
5484         * Fix my name in previous changelog ;)
5485
5486         * python/proxies.py (ProxyObject.__getattr__): add further patch
5487         from Anthony Baxter to throw an AttributeError when python 
5488         __special__ functions are called instead of marshling them over 
5489         the bus (Bug#1685 comment 3).
5490
5491 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5492
5493         * python/Makefile.am: changed to use pyexecdir for the binding
5494         shared libraries (Bug#2494)
5495
5496         * python/exceptions.py: bring exceptions over from the bindings
5497         so they can be used in applications (Bug#2036)
5498         Make all exceptions derive from DBusException
5499
5500         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5501         of classes so that print obj doesn't throw an exception (Bug #1685)
5502
5503 2005-05-03  Ross Burton  <ross@openedhand.com>
5504
5505         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5506         Return if we get an error during registration.  Set up a
5507         weak reference on object to unregister if object is destroyed.
5508         (unregister_gobject): New function.
5509         
5510 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5511
5512         * python/dbus_bindings.pyx.in: 
5513         - added new type classes for hinting to the marashaler what type 
5514         to send over the wire
5515         - added int16 and uint16 marshalers
5516         - Fixed a bug in the type constants that caused int32 to go out
5517         as uint16 over the wire
5518         * python/dbus.py: split up into different files and renamed _dbus.py
5519         * python/__init__.py, python/_util.py, python/decorators.py, 
5520         python/exceptions.py, python/proxies.py, python/services.py,
5521         python/types.py: new files split off from dbus.py
5522         * python/Makefile.am: Add new files, remove dbus.py and 
5523         install all python files to <python module dir>/dbus
5524         * python/examples/*: Added #!/usr/bin/env python to the top of
5525         every example.  Patch provided by Tatavarty Kalyan
5526
5527 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5528
5529         * NEWS: Update to 0.33
5530
5531 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5532
5533         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5534         method for doing async calls
5535         (_pending_call_notification): New C function for handling pendning call
5536         callbacks
5537         (set_notify): New method for setting pending call notification
5538         
5539         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5540         Async capabilities added to remote method calls
5541         (Sender): class removed
5542         (RemoteService): class removed
5543         (ObjectTree): class removed for now
5544         (RemoteObject): Renamed to ProxyObject
5545         (RemoteMethod): Renamed to ProxyMethod
5546         (method): Decorator added for decorating python methods as dbus methods
5547         (signal): Decorator added for decorating python methods as signal emitters
5548         (ObjectType): Metaclass added for generating introspection data and the
5549         method callback vtable
5550         (Interface): Wrapper class added to wrap objects in a dbus interface
5551         (Object): Uses ObjectType as its metaclass and exports Introspect
5552         of the org.freedesktop.DBus.Introspectable interface
5553         (ValidationException, UnknownMethodException): new exceptions
5554
5555         * python/examples/*: Modified to fit with the new bindings
5556
5557 2005-04-23  Havoc Pennington  <hp@redhat.com>
5558
5559         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5560         reported by Tony Houghton
5561
5562         * test/test-service.c (main): test
5563         dbus_connection_get_object_path_data()
5564
5565         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5566         the exact_match
5567         (_dbus_object_tree_get_user_data_unlocked): new function used by
5568         dbus_connection_get_object_path_data()
5569         (do_register): add assertion test for get_user_data_unlocked
5570         (object_tree_test_iteration): more tests
5571
5572         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5573         new function from Dan Reed to let you get the user data from 
5574         dbus_connection_register_object_path()
5575
5576 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5577
5578         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5579         in numerous places that did not account for the NULL terminator
5580         (signature_from_seed): changed the manual string copy loop to 
5581         just use strcpy instead
5582         make check should now pass
5583
5584 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5585
5586         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5587         so that it allows messages that are not signals to pass in 
5588         NULL as the interface.
5589
5590 2005-04-18  David Zeuthen  <davidz@redhat.com>
5591
5592         * glib/dbus-gmain.c (io_handler_destroy_source): 
5593         (timeout_handler_destroy_source, connection_setup_free): 
5594         Also unref the source to avoid memory leaks.
5595
5596 2005-04-13  David Zeuthen  <davidz@redhat.com>
5597
5598         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5599         more reasonable, yet still totally arbitrary, value :-). 
5600
5601 2005-04-13  David Zeuthen  <davidz@redhat.com>
5602
5603         * doc/TODO: Added an "important for 1.0" item about selinux
5604         allow/deny messages
5605
5606 2005-04-13  David Zeuthen  <davidz@redhat.com>
5607
5608         * bus/selinux.c: Add c-file-style to top of file
5609         (log_audit_callback): Don't free the data here anymore
5610         (bus_selinux_check): Don't take spid and tpid since appending
5611         that to auxdata may OOM.
5612         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5613         to the caller if we are OOM by taking an error object.
5614         (bus_selinux_allows_send): -do-
5615
5616         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5617         and bus_selinux_allows_send
5618
5619         * bus/bus.c (bus_context_check_security_policy): Pass error and
5620         pass on OOM thrown by bus_selinux_allows_send()
5621
5622         * bus/services.c (bus_registry_acquire_service): Pass error and
5623         pass on OOM thrown by bus_selinux_allows_acquire_service()
5624
5625 2005-04-13  Havoc Pennington  <hp@redhat.com>
5626
5627         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5628         message at a time to avoid monopolizing the main loop, bug 
5629         #2953 from Benjamin Otte
5630
5631 2005-04-09  Havoc Pennington  <hp@redhat.com>
5632
5633         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5634         possible overlap, fix from Daniel Reed
5635         (fixup_alignment): fix signedness warnings
5636         (_dbus_string_append_unichar): ditto
5637
5638 2005-04-09  Havoc Pennington  <hp@redhat.com>
5639
5640         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5641
5642         * glib/dbus-glib-tool.c (main): fix warning
5643
5644         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5645
5646         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5647         add a new function that can be used in simple applications that
5648         don't have a main loop and are willing to block
5649
5650 2005-04-05  David Zeuthen  <davidz@redhat.com>
5651
5652         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5653
5654         * glib/dbus-gmain.c:
5655         (io_handler_destroy_source): Remove from list of IO handlers
5656         of the ConnectionSetup object
5657         (timeout_handler_destroy_source): -do- for timeout handlers
5658         (io_handler_source_finalized): Don't remove from list since
5659         we now do that in io_handler_destroy_source(). Renamed from
5660         io_handler_source_destroyed
5661         (timeout_handler_source_destroyed): -do- for timeout handlers
5662         (connection_setup_free): It is now safe to iterate over all
5663         IO and timeout handlers as the _destroy_source removes them
5664         from the list synchronously
5665
5666 2005-03-30  Havoc Pennington  <hp@redhat.com>
5667
5668         * configure.in: change check to gtk 2.4
5669
5670         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5671         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5672         to 2.4
5673
5674 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5675
5676         * News: Update 0.32
5677
5678         * HACKING: Fixed realease instructions.  configure.in should be updated to
5679           the next release by the person who made the last release.
5680
5681 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5682
5683         * python/lvalue_cast_post_process.py - removed.  Patch has been
5684           submitted to Pyrex maintainers that fixes gcc4.0 errors
5685
5686         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5687
5688 2005-03-24  Daniel Reed  <n@ml.org>
5689
5690         * tools/Makefile.am: Make print-introspect and
5691         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5692
5693 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5694
5695         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5696
5697         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5698           had in Red Hat packages for a while but for some reason never 
5699           got merged upstream
5700           (_dbus_is_a_number): New checks if a string
5701           can be converted to a number and does the conversion if it can
5702           (_dbus_user_database_lookup): Add check to see if the given username
5703           is a udi.  This allows udi's to be used instead of usernames in the
5704           config file.
5705           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5706           is a gdi.  This allows gdi's to be used instead of groupnames in the
5707           config file.
5708
5709 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5710
5711         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5712           code so that it compiles with gcc4.0
5713
5714         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5715           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5716           results back to dbus_binding.c
5717
5718 2005-03-20  Colin Walters  <walters@verbum.org>
5719
5720         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5721
5722         * configure.in: Require GTK+ 2.6.
5723         
5724 2005-03-20  Colin Walters  <walters@verbum.org>
5725
5726         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5727
5728 2005-03-17  Tom Parker  <palfrey@tevp.net>
5729
5730         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5731         print DBUS_UID_UNSET; instead print passed username.  Also
5732         be sure to actually use gid looked up in cache.
5733         
5734         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5735         for DBUS_GID_UNSET and groupname.
5736
5737 2005-03-17  Colin Walters  <walters@verbum.org>
5738
5739         * bus/print-introspect.c: Move to tools/.
5740         * bus/run-with-tmp-session-bus.sh: Ditto.
5741         
5742         * glib/Makefile.am (dbus-glib-bindings.h): Move
5743         generation to tools/Makefile.am.
5744
5745         * test/glib/run-test.sh: Update to handle move
5746         of run-with-tmp-session-bus.sh.
5747
5748         * test/glib/test-service-glib.c: Update to handle
5749         move of dbus-glib-bindings.h.
5750
5751         * tools/print-introspect.c: Moved here
5752         from bus/, and ported to GLib bindings.
5753
5754         * tools/run-with-tmp-session-bus.sh: Moved here
5755         from bus/.
5756
5757         * tools/Makefile.am: Generate dbus-glib-bindings.h
5758         and dbus-bus-introspect.xml here.
5759
5760         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5761         Update.
5762
5763 2005-03-17  Colin Walters  <walters@verbum.org>
5764
5765         * bus/driver.c (write_args_for_direction): Use
5766         _dbus_string_get_const_data to retrieve string;
5767         _dbus_string_get_const_data_len doesn't actually return
5768         a NULL-terminated substring.
5769
5770         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5771         (main): Change to use org_freedesktop_DBus_request_name
5772         instead of using g_proxy_begin_call/end_call.
5773
5774 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5775
5776         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5777         generating the finalizer.  Fixes from Ben Maurer.
5778
5779 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5780
5781         * mono/BusDriver.cs: Update method names: ListServices
5782         becomes ListNames; GetOwner becomes GetNameOwner.
5783
5784         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5785         onto the eval stack when removing the delegate.
5786
5787 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5788
5789         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5790         LT_CURRENT.  Set it to the autoconf variable.
5791                                                                                 
5792         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5793         classes that disconnects the signal handler delegate from the
5794         service object.  Fixes a big leak of proxy objects on the
5795         client side of things.  Patch from Ben Maurer
5796         <bmaurer@ximian.com>
5797
5798 2005-03-12  Colin Walters  <walters@verbum.org>
5799
5800         * bus/driver.c (write_args_for_direction): New function,
5801         parses a type signature into arguments and outputs to
5802         XML.
5803         (bus_driver_handle_introspect): Use it instead of
5804         hardcoding XML for certain signatures.
5805         
5806         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5807         dependency on dbus-daemon.
5808
5809         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5810         argument, pass it to dbus_binding_tool_output_glib_client.
5811
5812         * glib/dbus-binding-tool-glib.c
5813         (generate_client_glue): Protect against multiple inclusion.
5814         (dbus_binding_tool_output_glib_client): Add
5815         G_BEGIN_DECLS/G_END_DECLS.
5816
5817         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5818         Change to just take iface prefix directly.
5819         (write_formal_parameters): Clarify error message.
5820         (check_supported_parameters): New function; checks to see type
5821         signatures of method parameters are supported.
5822         (generate_client_glue): Handle ignore_unsupported flag.
5823         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5824         parameter.
5825
5826         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5827         --ignore-unsupported by default until glib bindings
5828         support arrays.
5829
5830 2005-03-11  Colin Walters  <walters@verbum.org>
5831
5832         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5833         install it.
5834
5835         * bus/print-introspect.c: New file; prints introspection
5836         data for a given name and object path.
5837
5838         * bus/run-with-tmp-session-bus.sh: New file, refactored
5839         from test/glib/run-test.sh.  Creates a temporary session
5840         bus and runs another program.
5841
5842         * test/glib/run-test.sh: Refactor to invoke
5843         run-with-tmp-session-bus.sh.
5844
5845         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5846         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5847         macros instead of hardcoding.
5848
5849         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5850
5851 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5852
5853         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5854         this unref; it doesn't match up evenly in some codepaths.
5855         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5856         this evenly matches with the ref near the top of this function.
5857
5858 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5859
5860         * dbus/dbus-object-tree.c
5861         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5862         and we try to unregister a path that's not registered, still go
5863         through the process of unlocking and don't just return.
5864
5865 2005-03-09  Colin Walters  <walters@verbum.org>
5866
5867         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5868         to this are generated for client-side wrappers.  Invokes a
5869         D-BUS method and returns reply values.  
5870
5871         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5872         function; writes signature string for argument direction.
5873         (write_args_for_direction): Change to pass input values directly
5874         instead of via address, and fix indentation.
5875         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5876         make generated wrappers inlineable.
5877
5878         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5879         note about using dbus_type_is_fixed.
5880
5881         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5882         dbus/dbus-signature.c as dbus_type_is_fixed.
5883
5884         All callers updated.
5885
5886         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5887         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5888
5889         * dbus/dbus-signature.h: Prototype.
5890
5891         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5892         error printf code.
5893
5894         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5895         appropriate instead of just freeing it.
5896         (main): Free returned strings using g_free.
5897
5898         * test/glib/Makefile.am (test-service-glib-glue.h)
5899         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5900
5901         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5902         simply maps a simple D-BUS type to GType.
5903         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5904         GType.
5905         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5906         initialize the value with it.
5907         (dbus_gvalue_binding_type_from_type): Unused, delete.
5908         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5909         various types instead of unmarshalling to value data directly.
5910         Remove can_convert boolean.
5911         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5912         returning directly instead of using can_convert boolean.
5913         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5914         Stores a GValue in a pointer to a value of its corresponding C
5915         type.
5916
5917         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5918         add dbus_gvalue_store.
5919
5920 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5921
5922         Fix a bunch of lifecycle and memory management problems
5923         in the mono bindings.
5924
5925         * mono/Arguments.cs (Arguments): Implement IDisposable
5926
5927         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5928         strictly a static class.
5929
5930         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5931         delegates into this file.
5932         (Connection): Implement IDisposable.
5933         (Dispose): Disconnect the connection and set the raw connection
5934         pointer to IntPtr.Zero.
5935         (~Connection): Call Dispose().
5936         (RegisterObjectPath): Added.  Manages the registration of object
5937         paths so we can cleanly disconnect them at dispose/finalize time.
5938         (UnregisterObjectPath): Ditto.
5939         (set_RawConnection): Unregister all of the object paths when
5940         changing the underlying DBusConnection.  Add them back onto the
5941         new connection, if any.
5942
5943         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5944         more unmanaged resources anymore, so it's not necessary.  Move all
5945         the DBusObjectPathVTable stuff out of here.
5946         (Handler): Save references to our delegates so that they don't get
5947         finalized.  Call Connection.RegisterObjectPath() instead of
5948         dbus_connection_register_object_path() directly.
5949         (Message_Called): Dispose the message after we're finished with
5950         it.
5951
5952         * mono/Message.cs (Message): Implement IDisposable.
5953         (Dispose): Dispose the Arguments, and set the RawMessage to
5954         IntPtr.Zero.
5955         (SendWithReplyAndBlock): We own the ref to the reply that comes
5956         back from dbus_connection_send_with_reply_and_block() so add a
5957         comment about that and unref it after we've constructed a managed
5958         MethodReturn class around it.  Fixes a big, big leak.
5959
5960         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5961         method.
5962         (BuildSignalHandler): After we've sent the Signal message, dispose
5963         of it.
5964         (BuildMethod): Dispose of the method call and reply messages after
5965         we've sent the message and extracted the data we want from the
5966         reply.
5967
5968         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5969         anymore.
5970         (Service_FilterCalled): Dispose of the message after we're
5971         finished with it.
5972
5973 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5974
5975         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5976         After we attach our pending call to the connection, unref
5977         it.  Fixes a leak.
5978  
5979         * mono/Connection.cs (set_RawConnection): Disconnect our
5980         filter and match callbacks from the old connection and
5981         reconnect them to the new connection, if any.
5982
5983         * mono/DBusType/Array.cs: "Code" is a static member, so
5984         don't use "this" to refer to it.  Fix for stricter checking
5985         in Mono 1.1.4.
5986  
5987         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5988         object path that we pass into unmanaged code.
5989  
5990         * mono/DBusType/String.cs (Append): Don't leak the string
5991         that we pass into unmanged code.
5992
5993 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5994         * NEWS: Update for 0.31
5995
5996         * configure.in: Release 0.31
5997         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5998
5999         * qt/Makefile.am: fixed build
6000
6001         * dbus/Makefile.am: soname bump for libdbus
6002
6003         * glib/Makefile.am: soname bump for libdbus-glib
6004
6005 2005-03-05  Havoc Pennington  <hp@redhat.com>
6006
6007         * dbus/dbus-sysdeps.c:
6008         (pseudorandom_generate_random_bytes_buffer): fix to have no return
6009         value
6010         (_dbus_generate_random_bytes_buffer): fix return value
6011
6012         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
6013         checks actually work, from Tom Parker <fdo@tevp.net>
6014
6015 2005-03-01  Colin Walters  <walters@verbum.org>
6016
6017         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6018         functions copied from dbus-glib-tool.c.
6019         (main): Convert lots of error code to use them.
6020         Also add some testing for introspection bits.
6021
6022 2005-03-01  Colin Walters  <walters@verbum.org>
6023         
6024         * doc/TODO: Remove introspection signature TODO.
6025
6026 2005-02-27  Colin Walters  <walters@verbum.org>
6027
6028         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6029         Change return value to const char * instead of int so we can do
6030         full signatures.
6031         (struct PropertyInfo, struct ArgInfo): Store char *.
6032         (property_info_new, arg_info_new): Update parameters, strdup.
6033         (property_info_unref, arg_info_unref): Free.
6034
6035         * glib/dbus-gidl.h: Update prototypes.
6036
6037         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6038         (validate_signature): New function, just validates signature and
6039         sets GError.
6040         (parse_property, parse_arg): Invoke validate_signature.  Store
6041         signature instead of just type code.
6042
6043         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6044         function to return a primary type for a signature, dropping
6045         information about types in container types.
6046         (dbus_gvalue_genmarshal_name_from_type)
6047         (dbus_gvalue_binding_type_from_type)
6048         (dbus_gvalue_ctype_from_type): Update to take full signature
6049          instead of type code.
6050         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6051
6052         * glib/dbus-gvalue.h: Update prototypes for above.
6053
6054         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6055         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6056         (introspect_properties, introspect_signals, write_interface):
6057         Update to handle signatures, and remove usage of
6058         _dbus_gutils_type_to_string.
6059         (handle_introspect): Print out type codes instead of e.g. "string"
6060         in hardcoded introspection XML; also use x_AS_STRING constants
6061         instead of hardcoding in string.
6062
6063         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6064         to string.  Remove usage of _dbus_gutils_type_to_string.
6065
6066         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6067
6068         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6069         deletion.
6070         
6071         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6072         (compute_marshaller_name, generate_glue): Handle signature change
6073         to string.
6074         (write_formal_parameters, write_args_for_direction): Ditto, and
6075         remove FIXME.
6076
6077         * tools/dbus-tree-view.c (type_to_string): Delete.
6078         (info_set_func_text): Update to print full signatures.
6079
6080         * test/glib/test-service-glib.xml: Change types to new
6081         introspection format.
6082
6083 2005-02-26  Havoc Pennington  <hp@redhat.com>
6084
6085         * doc/TODO: remove the "guid" item
6086
6087         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6088         (with_bus_thread_func): use open_private
6089
6090         * dbus/dbus-connection.c (dbus_connection_open_private): new
6091         function that works like the old dbus_connection_open()
6092         (dbus_connection_open): now returns an existing connection if
6093         possible
6094
6095         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6096         through the GUID to the transport
6097
6098         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6099         GUID in hex-encoded form.
6100
6101         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6102         pass GUID argument in to the transport
6103
6104         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6105         guid argument
6106
6107         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6108
6109         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6110
6111 2005-02-25  Havoc Pennington  <hp@redhat.com>
6112
6113         * doc/dbus-specification.xml: document the GUID thing
6114
6115         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6116         globally unique ID for the server, and put a "guid=hexencoded"
6117         field in the address
6118
6119         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6120
6121         * dbus/dbus-message.c: ditto
6122
6123         * dbus/dbus-dataslot.c: ditto
6124
6125         * dbus/dbus-list.c: ditto
6126
6127         * dbus/dbus-internals.h: wait, just include
6128         dbus-threads-internal.h here
6129         
6130         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6131         use in main library
6132
6133         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6134
6135 2005-02-24  Colin Walters  <walters@verbum.org>
6136
6137         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6138
6139 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6140
6141         * glib/Makefile.am: added dbus-gobject.h to sources list
6142         so distcheck doesn't fail
6143         
6144 2005-02-24  Havoc Pennington  <hp@redhat.com>
6145
6146         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6147         you must disconnect before unref, since locking and other things
6148         are screwed up otherwise. Fix assorted other locking stuff.
6149
6150         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6151         fix compilation
6152
6153         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6154         into a private header and don't export from the library
6155
6156         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6157
6158 2005-02-24  Colin Walters  <walters@verbum.org>
6159         
6160         * dbus/dbus-signature.c: New file; implements various functions
6161         related to type signatures.  Includes an interator for parsing,
6162         validation functions.
6163         (dbus_type_is_basic): Moved here from
6164         dbus-marshal-basic.c:_dbus_type_is_basic.
6165         (dbus_type_is_container): Moved here from
6166         dbus-marshal-basic.c:_dbus_type_is_container.
6167
6168         All callers of _dbus_type_is_container and _dbus_type_is_basic
6169         updated, and include dbus-signature.h.
6170
6171         * dbus/dbus-signature.h: New file; prototypes for the above.
6172
6173         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6174         dbus-signature.h.
6175
6176         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6177         function factored out of _dbus_first_type_in_signature.
6178         (_dbus_first_type_in_signature_c_str): New function; returns first
6179         type code for a type signature character.
6180
6181         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6182         handle function moves.
6183
6184         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6185
6186         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6187         function; skips to next complete type in type signature.
6188         Implemented using previous skip_one_complete_type.  Now
6189         skip_one_complete_type just delegates to
6190         _dbus_type_signature_next.
6191
6192         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6193         to dbus-signature.c
6194         (_dbus_type_is_container): Ditto.
6195
6196         * doc/dbus-specification.xml: Update introspection sample to
6197         use real type signatures.
6198
6199         * dbus/dbus-test.h: Prototype signature test.
6200
6201         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6202         signature tests.
6203
6204         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6205
6206 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6207
6208         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6209         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6210
6211 2005-02-21  Colin Walters  <walters@verbum.org>
6212
6213         * dbus/dbus-test-main.c (main): Take optional specific test
6214         argument.
6215
6216         * dbus/dbus-test.c (run_test): New function, runs a test function
6217         with no data directory.
6218         (run_data_test): Like above, but takes data directory.
6219         (dbus_internal_do_not_use_run_tests): Take
6220         specific test argument.  Replace lots of cut n' paste code
6221         with run_test and run_data_test.
6222
6223         * dbus/dbus-test.h: Update prototype for
6224         dbus_internal_do_not_use_run_tests.
6225
6226 2005-02-20  Havoc Pennington  <hp@redhat.com>
6227
6228         Fix bugs reported by Daniel P. Berrange
6229         
6230         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6231         (protected_change_watch): new function
6232         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6233         (_dbus_server_add_watch): change to work like the
6234         dbus-connection.c equivalents; like those, probably kind of
6235         busted, but should at least mostly work for now
6236         (dbus_server_disconnect): drop the lock if we were already
6237         disconnected, patch from Daniel P. Berrange
6238
6239         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6240         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6241         same stuff
6242
6243         * doc/TODO: todo about unscrewing this mess
6244
6245 2005-02-19  Colin Walters  <walters@verbum.org>
6246
6247         * glib/dbus-binding-tool-glib.c
6248         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6249
6250         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6251         as errno.h and sys/stat.h.
6252         (lose): New function, prints error with
6253         newline and exits.
6254         (lose_gerror): Similar, but takes GError for message.
6255         (main): Add --output argument to specify output file to write to,
6256         instead of always printing to stdout.  In this mode, determine
6257         timestamps on source files to see whether any are newer than the
6258         target file.  If not, exit.  Also convert a number of error
6259         messages to use lose (since it's shorter), and switch to using
6260         g_io_channel_shutdown.
6261
6262 2005-02-19  Havoc Pennington  <hp@redhat.com>
6263
6264         * glib/dbus-gobject.c
6265         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6266
6267         * glib/dbus-glib.c: fix doxygen warnings
6268
6269         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6270         is found on an <arg>
6271
6272 2005-02-17  Colin Walters  <walters@verbum.org>
6273
6274         * glib/dbus-gobject.h: Don't export
6275         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6276         
6277         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6278         (invoke_object_method): Handle it.
6279
6280         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6281         Handle rename.
6282         
6283 2005-02-17  Colin Walters  <walters@verbum.org>
6284
6285         * bus/.cvsignore, doc/.cvsignore
6286         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6287         Update.
6288
6289 2005-02-17  Colin Walters  <walters@verbum.org>
6290         
6291         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6292         Rename to DBUS_SERVICE_DBUS.
6293         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6294         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6295         Change the value from "org.freedesktop.Local"
6296         to "org.freedesktop.DBus.Local".
6297         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6298         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6299         DBUS_INTERFACE_INTROSPECTABLE.
6300         Change the value from "org.freedesktop.Introspectable"
6301         to "org.freedesktop.DBus.Introspectable".
6302         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6303         DBUS_INTERFACE_PROPERTIES.
6304         Change the value from "org.freedesktop.Properties"
6305         to "org.freedesktop.DBus.Properties".
6306         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6307         DBUS_INTERFACE_PEER.
6308         Change the value from "org.freedesktop.Peer"
6309         to "org.freedesktop.DBus.Peer".
6310         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6311         DBUS_INTERFACE_LOCAL.
6312         Change the value from "org.freedesktop.Local"
6313         to "org.freedesktop.DBus.Local".
6314
6315         All other users of those constants have been changed.
6316
6317         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6318
6319         * glib/dbus-gobject.c (handle_introspect): Use constants.
6320
6321         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6322
6323 2005-02-17  Colin Walters  <walters@verbum.org>
6324
6325         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6326         (parse_node, parse_interface, parse_method, parse_signal)
6327         (parse_property, parse_annotation): Lose if we're currently in an
6328         annotation.
6329         (parse_annotation): New function.
6330         (parser_start_element, parser_end_element): Handle annotation.
6331         (parse_method, parse_interface): Remove support for c_name attribute,
6332         switch to annotations.
6333
6334         * glib/dbus-gidl.h (interface_info_get_binding_names)
6335         (method_info_get_binding_names)
6336         (interface_info_get_binding_name, method_info_get_binding_name)
6337         (interface_info_set_binding_name, method_info_set_binding_name):
6338         Remove.
6339         (interface_info_get_annotations, method_info_get_annotations)
6340         (interface_info_get_annotation, method_info_get_annotation)
6341         (interface_info_add_annotation, method_info_add_annotation):
6342         Prototype.
6343
6344         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6345         for "bindings".
6346         (struct MethodInfo): Ditto.
6347         Straightfoward conversion of binding methods into annotation methods
6348         as prototyped.
6349
6350         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6351
6352         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6353
6354         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6355         Use new annotation API.
6356
6357         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6358         annotation element.
6359         
6360         * doc/dbus-specification.xml: Discuss introspection annotations,
6361         include list of well-known annotations.
6362
6363         * test/glib/test-service-glib.xml: Make validate against new DTD.
6364
6365 2005-02-17  Colin Walters  <walters@verbum.org>
6366
6367         This patch is based on initial work from
6368         Paul Kuliniewicz <kuliniew@purdue.edu>.
6369
6370         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6371         initialization of GValue from dbus type to here.
6372         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6373         for the "glib-genmarshal" program from a DBus type.
6374         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6375         into the C name for it we use in the glib bindings.
6376         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6377         glib C type (not GValue).
6378         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6379
6380         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6381         from dbus-gobject.c.
6382
6383         * glib/dbus-gutils.h: Prototype it.
6384
6385         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6386         (marshal_dbus_message_to_g_marshaller): Use new shared function
6387         dbus_glib_marshal_dbus_message_to_gvalue_array.
6388
6389         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6390         Will be changed once we have annotations.
6391
6392         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6393         GStaticRWLock.  Callers updated.
6394         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6395         (string_table_next): New function for iterating over zero-terminated
6396         string value array.
6397         (string_table_lookup): New function; retrieves specific entry in
6398         array.
6399         (get_method_data): New function; look up method data in object data chunk.
6400         (object_error_domain_prefix_from_object_info)
6401         (object_error_code_from_object_info): New functions, but not implemented yet.
6402         (method_interface_from_object_info): New function; retrieve interface name.
6403         (method_name_from_object_info): New function; retrieve method name.
6404         (method_arg_info_from_object_info): New function; retrieve argument data.
6405         (arg_iterate): New function; iterates over serialized argument data.
6406         (method_dir_signature_from_object_info): New function; returns a
6407         GString holding type signature for arguments for just one
6408         direction (input or output).
6409         (method_input_signature_from_object_info)
6410         (method_output_signature_from_object_info): New functions.
6411         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6412         converts dbus message arguments into a GValue array.  Used for both
6413         signal handling and method invocation.
6414         (struct DBusGlibWriteIterfaceData): New utility structure.
6415         (write_interface): New function; generate introspection XML for
6416         an interface.
6417         (introspect_interfaces): New function; gathers all interface->methods,
6418         generates introspection XML for them.
6419         (handle_introspect): Invoke introspect_interfaces.
6420         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6421         (lookup_object_and_method): New function; examines an incoming message
6422         and attempts to match it up (via interface, method name, and argument
6423         signature) with a known object and method.
6424         (gerror_domaincode_to_dbus_error_name): New function; converts a
6425         GError domain and code into a DBus error name.  Needs GError data
6426         added to object introspection to work well.
6427         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6428         GError.
6429         (invoke_object_method): New function to invoke an object method
6430         looked up via lookup_object_and_method.  Parses the incoming
6431         message, turns it into a GValue array, then invokes the marshaller
6432         specified in the DBusGMethodInfo.  Creates a new message with
6433         either return values or error message as appropriate.
6434         (gobject_message_function): Invoke lookup_object_and_method and
6435         invoke_object_method.
6436
6437         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6438         (enum DBusBindingOutputMode): New enum for binding output modes.
6439         (pretty_print): Print binding names.
6440         (dbus_binding_tool_error_quark): GError bits.
6441         (version): Fix typo.
6442         (main): Create GIOChannel for output.  Parse new --mode argument,
6443         possible values are "pretty-print", "glib-server", "glib-client".
6444         Use mode to invoke appropriate function.
6445         
6446         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6447
6448         * glib/dbus-glib-tool.h: New header, just includes GError bits
6449         for now.
6450
6451         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6452         maps binding style to name.
6453         (struct MethodInfo): Ditto.
6454         (get_hash_keys, get_hash_key): Utility function, returns keys for
6455         a GHashTable.
6456         (interface_info_new, method_info_new): Initialize bindings.
6457         (interface_info_unref, method_info_unref): Destroy bindings.
6458         (method_info_get_binding_names, method_info_get_binding_name)
6459         (interface_info_get_binding_names, interface_info_get_binding_name):
6460         Functions for retrieving binding names.
6461         (method_info_set_binding_name, interface_info_set_binding_name):
6462         Functions for setting binding names.
6463
6464         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6465         for glib binding generation.
6466
6467         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6468         and client-side glib glue generation.
6469
6470         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6471         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6472         dbus-glib-tool.h.
6473
6474         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6475         of using GClosureMarshal directly.
6476         (struct DBusGObjectInfo): Add n_infos member.
6477
6478         * test/glib/test-service-glib.xml: New file; contains introspection data
6479         for MyTestObject used in test-service-glib.c.
6480
6481         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6482         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6483         (my_object_uppercase, my_object_many_args): New test methods.
6484         (main): Use dbus_g_object_class_install_info to include generated object
6485         info.
6486
6487         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6488         as well as client-side bindings.
6489
6490         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6491         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6492         using both the dbus_gproxy stuff directly as well as the generated bindings.
6493
6494 2005-02-15  Havoc Pennington  <hp@redhat.com>
6495
6496         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6497         complete a pending call, don't run filters first.
6498
6499         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6500         dbus_pending_call_steal_reply
6501
6502         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6503         _dbus_connection_block_pending_call
6504         (dbus_pending_call_get_reply): change to steal_reply and return a
6505         ref
6506
6507         * dbus/dbus-connection.c
6508         (dbus_connection_send_with_reply_and_block): port to work in terms
6509         of DBusPendingCall
6510         (_dbus_connection_block_pending_call): replace block_for_reply
6511         with this
6512
6513 2005-02-14  Havoc Pennington  <hp@redhat.com>
6514
6515         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6516         properly handle looking up group information by name; fix 
6517         from j@bootlab.org
6518
6519 2005-02-13  Havoc Pennington  <hp@redhat.com>
6520
6521         * dbus/dbus-connection.c (dbus_connection_return_message) 
6522         (dbus_connection_borrow_message): hold dispatch lock while message
6523         is outstanding
6524         (_dbus_connection_block_for_reply): hold dispatch lock while we
6525         block for the reply, so nobody steals our reply
6526         (dbus_connection_pop_message): hold the dispatch lock while we
6527         pluck the message
6528
6529 2005-02-13  Havoc Pennington  <hp@redhat.com>
6530
6531         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6532         (_dbus_connection_release_dispatch)
6533         (_dbus_connection_acquire_io_path)
6534         (_dbus_connection_release_io_path): make the mutex and condvar
6535         control access to the "acquired" flag. Drop the connection lock
6536         while waiting on the condvar. Hopefully these are baby steps in
6537         roughly the right direction.
6538
6539 2005-02-13  Havoc Pennington  <hp@redhat.com>
6540
6541         * dbus/dbus-connection.c: use separate mutexes for the condition
6542         variables; this is some kind of baseline for sanity, but the
6543         condition variables still aren't used correctly afaict
6544
6545 2005-02-13  Havoc Pennington  <hp@redhat.com>
6546
6547         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6548         fix a double-unlock
6549
6550         * dbus/dbus-connection.c
6551         (_dbus_connection_detach_pending_call_unlocked): add this
6552
6553         Initial semi-correct pass through to fix thread locking; there are
6554         still some issues with the condition variable paths I'm pretty
6555         sure
6556         
6557         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6558         lock/unlock calls
6559
6560         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6561         rename to add _unlocked
6562         (struct DBusConnection): move "dispatch_acquired" and
6563         "io_path_acquired" to use only one bit each.
6564         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6565         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6566         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6567         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6568         (_dbus_connection_remove_timeout) 
6569         (_dbus_connection_toggle_timeout): drop lock when calling out to
6570         user functions; done in a hacky/bad way.
6571         (_dbus_connection_send_and_unlock): add a missing unlock
6572         (_dbus_connection_block_for_reply): add a missing unlock
6573
6574         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6575         drop lock in a hacky probably unsafe way to call out to user
6576         function
6577
6578 2005-02-12  Havoc Pennington  <hp@redhat.com>
6579
6580         * tools/dbus-tree-view.c (info_set_func_text): display more
6581         details on args
6582
6583         * bus/driver.c (bus_driver_handle_list_services): list the bus
6584         driver
6585
6586         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6587
6588         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6589         (method_info_get_n_args): new function
6590
6591 2005-02-12  Havoc Pennington  <hp@redhat.com>
6592
6593         * bus/driver.c (bus_driver_handle_introspect): add introspection
6594         for bus driver
6595
6596 2005-02-12  Havoc Pennington  <hp@redhat.com>
6597
6598         * bus/driver.c: put the signature of each bus driver method in the
6599         table of handlers and check it on incoming calls; this isn't
6600         really useful, but going to add introspect support in a minute.
6601
6602 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6603
6604         * mono/Connection.cs: The unpredictability of finalizers in mono
6605         prevents us from deterministically disconnecting the filters from
6606         the Service class's finalizer, so move tracking of filters and
6607         matches here.  Add API for that.
6608
6609         * mono/Service.cs: Remove the code, add code which calls the
6610         methods now on the Connection class.
6611
6612 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6613
6614         * python/dbus.py (class Sender): added to support dbus signals better
6615         (Bus::add_signal_receiver): added expand_args parameter which defaults
6616         to True.  When expand args is True the signal handler will pass the 
6617         message arguments as parameters to the signal handler.  If False
6618         revert to previous behavior where the signal handler must get the
6619         argument list from the message.  This is to help port applications
6620         like HAL that have a tendancy to send variable length argument lists.
6621         self._match_rule_to_receivers is now a dict of dicts.
6622         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6623         removing it from a list
6624         (Bus::_signal_func): change signal handlers so that interface,
6625         signal_name, service, path and message are packed into a Sender
6626         object and that is passed to the handler.  If expand_args is True
6627         extract the args list from the message and append it to the parameter
6628         list
6629         
6630         * python/dbus_bindings.pyx.in (class Signature): added to support 
6631         signiature types
6632         (MessageIter::__init__): changed iteration limit to match D-BUS
6633         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6634         STRUCT and VARIENT type support
6635         (MessageIter::python_value_to_dbus_sig): made recursive to support
6636         recursive types
6637         (MessageIter::append*): added Signature, dict, tuple 
6638         support
6639
6640         * python/examples/example-client.py: added examples of getting tuples
6641         and dicts
6642
6643         * python/examples/example-service.py: added examples of sending tuples
6644         and dicts
6645
6646         * python/examples/example-signal-recipient.py: Fixed to handle new
6647         signal callback format
6648
6649 2005-02-10  Havoc Pennington  <hp@redhat.com>
6650
6651         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6652         (call dbus_g_proxy_add_signal)
6653
6654         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6655         escape the hostname
6656         (_dbus_server_new_for_domain_socket): escape the path
6657
6658         * dbus/dbus-address.c (dbus_address_escape_value): new
6659         (dbus_address_unescape_value): new
6660         (dbus_parse_address): unescape values
6661
6662         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6663
6664         * doc/dbus-specification.xml: explain how to escape values in
6665         addresses
6666
6667 2005-02-10  Havoc Pennington  <hp@redhat.com>
6668
6669         * dbus/dbus-message-factory.c (generate_special): modify test to
6670         avoid using a non-basic dict key
6671
6672         * dbus/dbus-marshal-validate-util.c: add test for the below
6673
6674         * doc/dbus-specification.xml: require that dict keys are a basic
6675         type
6676
6677         * dbus/dbus-marshal-validate.c
6678         (_dbus_validate_signature_with_reason): require that dict key is a
6679         basic type
6680
6681 2005-02-10  Havoc Pennington  <hp@redhat.com>
6682
6683         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6684         change to be _and_unlock instead of _unlocked
6685
6686         * dbus/dbus-connection.c
6687         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6688         have no_update so we can find this bug quickly in future
6689
6690 2005-02-10  Havoc Pennington  <hp@redhat.com>
6691
6692         * dbus/dbus-message-util.c (verify_test_message): tests for string
6693         array
6694
6695         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6696         support for arrays of string/signature/path
6697
6698 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6699
6700         * dbus/dbus-connection.c
6701         (_dbus_connection_queue_received_message_link,
6702         _dbus_connection_message_sent): Add the path to
6703         the verbose output.
6704         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6705         _dbus_connection_send_preallocated_unlocked(), updated the
6706         dispatch status, and unlocks.  Fixes a bug where certain
6707         situations (like a broken pipe) could cause a Disconnect message
6708         to not be sent, tricking the bus into thinking a service was still
6709         there when the process had quit.
6710         (_dbus_connection_send_preallocated): Call
6711         _dbus_connection_send_preallocated_and_unlock().
6712         (_dbus_connection_send_and_unlock): Added.  Calls
6713         _dbus_connection_send_preallocated_and_unlock().
6714         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6715         (dbus_connection_send_with_reply): Update the dispatch status and
6716         unlock.
6717
6718         * mono/Service.cs (~Service): Added.  Removes the filter so that
6719         we don't get unmanaged code calling back into a GCed delegate.
6720         (RemoveFilter); Added.
6721
6722 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6723
6724         * dbus/dbus-message.c (dbus_message_iter_open_container):
6725         - Removed check for iterator type being an array because
6726         get_arg_type does not work with writer iterators
6727         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6728
6729 2005-02-07  Havoc Pennington  <hp@redhat.com>
6730
6731         * doc/dbus-specification.xml: some more language cleanups; add
6732         stuff about how to deal with invalid protocol and extension
6733         points; add _ to allowed chars in auth commands; add EXTENSION_
6734         auth command prefix
6735
6736 2005-02-06  Havoc Pennington  <hp@redhat.com>
6737
6738         * s/expected/required/ in a couple places for clarity
6739
6740 2005-02-07  Colin Walters  <walters@verbum.org>
6741
6742         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6743         sender or proposed_recipient.
6744
6745 2005-02-06  Havoc Pennington  <hp@redhat.com>
6746
6747         * dbus/dbus-message-factory.c (generate_special): more tests
6748
6749         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6750         array length that exceeds the maximum
6751
6752 2005-02-05  Havoc Pennington  <hp@redhat.com>
6753
6754         * dbus/dbus-message-factory.c (generate_special): more test cases,
6755         increasing coverage
6756
6757         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6758         reason why a signature was invalid
6759
6760         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6761         skip the length of the string before we look at it in validation
6762
6763         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6764         equal_substring
6765
6766         * dbus/dbus-message.c (_dbus_message_loader_new): default
6767         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6768
6769 2005-02-05  Havoc Pennington  <hp@redhat.com>
6770
6771         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6772         if the signature of a variant was empty
6773         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6774         struct with no element type)
6775
6776         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6777         mangled messages to break things
6778
6779 2005-02-04  Havoc Pennington  <hp@redhat.com>
6780
6781         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6782         g_quark_try_string() so it actually can return 0
6783         (dbus_g_proxy_connect_signal): ditto
6784
6785 2005-02-04  Havoc Pennington  <hp@redhat.com>
6786
6787         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6788         bogus warning
6789         (tristring_from_message): assert cleanly on null path/interface
6790         (should not be possible though I decided later)
6791         (dbus_g_proxy_dispose): move proxy manager unregistration here
6792         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6793         g_return_if_fail() checks
6794
6795 2005-02-04  Havoc Pennington  <hp@redhat.com>
6796
6797         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6798
6799         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6800         (with some minor changes)
6801
6802         * doc/dbus-specification.xml: add deprecated attribute to
6803         introspection format
6804
6805 2005-01-31  Havoc Pennington  <hp@redhat.com>
6806
6807         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6808         think it's sort of right
6809
6810 2005-01-30  Havoc Pennington  <hp@redhat.com>
6811
6812         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6813
6814 2005-01-30  Havoc Pennington  <hp@redhat.com>
6815
6816         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6817
6818         * autogen.sh: change to autotools 1.9
6819
6820         * glib/dbus-gproxy.c: completely change how signals work
6821         (dbus_g_proxy_add_signal): new function to specify signature of a
6822         signal
6823         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6824         and g_warning if the incoming message has the wrong signature.
6825
6826 2005-01-30  Havoc Pennington  <hp@redhat.com>
6827
6828         * tools/dbus-names-model.c (have_names_notify): fix this
6829
6830         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6831         up the string array handling a bit 
6832
6833 2005-01-30  Havoc Pennington  <hp@redhat.com>
6834
6835         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6836         (dbus_g_pending_call_cancel): new function
6837
6838         * dbus/dbus-glib.h: move GType decls for connection/message here;
6839         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6840         here, just kind of rationalizing how we handle all that
6841
6842         * tools/dbus-names-model.c: new file for a tree model listing the
6843         services on a bus
6844
6845         * tools/dbus-tree-view.c (model_new): use proper typing on the
6846         model rows
6847
6848 2005-01-30  Havoc Pennington  <hp@redhat.com>
6849
6850         * glib/dbus-gmain.c: add a custom GSource back that just checks
6851         whether the message queue has anything in it; otherwise, there are 
6852         cases where we won't see messages in the queue since there was no 
6853         IO visible to the glib main loop
6854
6855         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6856         increase default message timeout to 25 seconds
6857
6858 2005-01-30  Havoc Pennington  <hp@redhat.com>
6859
6860         * test/glib/test-profile.c (no_bus_stop_server): remove the
6861         warning about the g_warning that I just fixed
6862
6863         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6864         custom source, seems to be a lot easier to understand and work
6865         better.
6866
6867 2005-01-30  Havoc Pennington  <hp@redhat.com>
6868
6869         I think this main loop thing is conceptually broken, but here are 
6870         some band aids. I'll maybe rewrite it in a minute.
6871         
6872         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6873         custom GSource, so don't pass it in; confusing
6874         (gsource_server_finalize, gsource_connection_finalize): add
6875         finalize handlers that remove all the watches.  
6876
6877 2005-01-30  Havoc Pennington  <hp@redhat.com>
6878
6879         * glib/dbus-gobject.c (introspect_properties): fix the XML
6880         generated
6881
6882         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6883         which effectively detects the use of freed messages
6884
6885         * glib/dbus-gobject.c (handle_introspect): modify and return the
6886         reply message instead of the incoming message
6887
6888         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6889         gee, maybe it should SEND THE XML instead of just making a string
6890         and freeing it again ;-)
6891
6892         * tools/dbus-print-message.c (print_message): improve printing of
6893         messages
6894
6895         * configure.in: add debug-glib.service to the output
6896
6897 2005-01-30  Havoc Pennington  <hp@redhat.com>
6898
6899         dbus-viewer introspected and displayed the bus driver
6900         
6901         * dbus/dbus-object-tree.c 
6902         (object_tree_test_iteration): add tests for a handler registered on "/"
6903
6904         * dbus/dbus-object-tree.c
6905         (_dbus_decompose_path): fix to handle path "/" properly
6906         (run_decompose_tests): add tests for path decomposition
6907         
6908         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6909         properly
6910
6911         * glib/dbus-gobject.c (handle_introspect): fix quotes
6912
6913         * test/glib/run-test.sh: support launching the bus, then running
6914         dbus-viewer
6915
6916         * test/glib/test-service-glib.c (main): put in a trivial gobject
6917         subclass and register it on the connection
6918
6919         * bus/driver.c (bus_driver_handle_introspect): implement
6920         introspection of the bus driver service
6921
6922         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6923         identifiers, doctype decl
6924
6925         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6926         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6927         returning the service unchanged.
6928         (bus_driver_handle_message): remove old check for reply_serial in
6929         method calls, now the message type deals with that
6930         (bus_driver_handle_message): handle NULL interface
6931
6932         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6933
6934         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6935         -1 for len
6936
6937         * tools/dbus-viewer.c: add support for introspecting a service on
6938         a bus
6939
6940         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6941         (dbus_g_pending_call_unref): add
6942
6943 2005-01-29  Havoc Pennington  <hp@redhat.com>
6944
6945         * tools/dbus-tree-view.c: add support for displaying properties.
6946         (run dbus-viewer with an introspect xml file as arg, then resize
6947         the window so the tree elements show up, not sure what that is)
6948
6949         * glib/dbus-gobject.c (handle_introspect): return
6950         org.freedesktop.Properties and org.freedesktop.Introspectable
6951         interfaces when we are introspected.
6952
6953         * doc/dbus-specification.xml: allow empty interface name when 
6954         Get/Set a property
6955
6956 2005-01-29  Havoc Pennington  <hp@redhat.com>
6957
6958         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6959         though it uses glib, it could be extended for any binding in
6960         principle
6961
6962         * glib/dbus-gobject.c (gobject_message_function): change to the
6963         new way properties work
6964
6965         * dbus/dbus-protocol.h: add the new interfaces
6966
6967         * doc/dbus-specification.xml: document the introspection format,
6968         Introspectable interface, and add an org.freedesktop.Properties
6969         interface.
6970
6971         * glib/dbus-gparser.c: add support for a <property> element
6972
6973         * glib/dbus-gidl.c: add PropertyInfo
6974
6975         * glib/dbus-gobject.c (handle_introspect): put the outermost
6976         <node> outside the signal and property descriptions.
6977         (introspect_properties): export properties as <property> rather
6978         than as method calls
6979
6980 2005-01-28  Havoc Pennington  <hp@redhat.com>
6981
6982         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6983         related to authentication protocol
6984
6985 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6986
6987         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6988                 - BUS_ACTIVATION -> BUS_STARTER
6989                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6990                 - class MessageIter (__init__): Added recursion checking 
6991                 so we throw a nice error instead of just disconnecting from the
6992                 bus.
6993                 (get): Added arg_type parameter for recursion.
6994                 Removed the nil type
6995                 Added signiture type placeholder (not implemented)
6996                 Added struct type placeholder (not implemented)
6997                 Added varient type placeholder (not implemented)
6998                 Commented out dict type for now     
6999                 (get_element_type): renamed from get_array_type
7000                 (get_*): changed to use the dbus_message_iter_get_basic API
7001                 (get_*_array): removed in favor of recursive get_array method
7002                 (get_array): new recursive method which calls get to marshal
7003                 the elements of the array
7004                 (value_to_dbus_sig): New method returns the corrasponding
7005                 dbus signiture to a python value
7006                 (append): Comment out dict handling for now
7007                 Handle lists with the new recursive API
7008                 Comment out None handling for now
7009                 (append_nil): removed
7010                 (append_*): changed to use dbus_message_iter_append_basic API
7011                 (append_*_array): removed in favor of recursive append_array 
7012                 method
7013                 (__str__): Make it easier to print out recursive iterators
7014                 for debugging
7015                 - class Message (__str__): moved type inspection to the
7016                 MessageIter class' __str__ method
7017                 (get_iter): Added an append parameter wich defaults to False
7018                 If True use the new API's to create an append iterator
7019
7020         * python/dbus.py: Update to use new bindings API
7021                 - TYPE_ACTIVATION -> TYPE_STARTER
7022                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7023                 - class ActivationBus -> class StarterBus
7024                 - class RemoteObject (__call__): get an append iterator
7025                 - (_dispatch_dbus_method_call): get an append iterator
7026                 - class Object (emit_signal): get an append iterator
7027
7028         * python/examples/: Fixed up the examples to work with the new API
7029                 
7030 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7031
7032         * configure.in: Bump version up to 0.30.
7033
7034         * HACKING: Add a release item to bump the version number up after 
7035         a release.
7036
7037 2005-01-28  Havoc Pennington  <hp@redhat.com>
7038
7039         * doc/dbus-specification.xml: update to describe 16-bit types and
7040         dict entries
7041
7042         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7043         assertion
7044
7045         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7046         type
7047
7048         * dbus/dbus-marshal-recursive.c: implement
7049
7050 2005-01-27  Havoc Pennington  <hp@redhat.com>
7051
7052         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7053
7054         * configure.in: find the right type for 16 and 32 bit ints as well
7055         as 64
7056
7057         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7058         the 16-bit types so people don't have to stuff them in 32-bit or
7059         byte arrays.
7060
7061 2005-01-27  Havoc Pennington  <hp@redhat.com>
7062
7063         * dbus/dbus-message.c: byteswap the message if you init an
7064         iterator to read/write from it
7065         
7066         * dbus/dbus-marshal-byteswap.c: new file implementing 
7067         _dbus_marshal_byteswap()
7068
7069         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7070
7071 2005-01-26  Havoc Pennington  <hp@redhat.com>
7072         
7073         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7074         build, apparently - nobody noticed?)
7075         
7076 2005-01-26  Havoc Pennington  <hp@redhat.com>
7077
7078         * dbus/dbus-marshal-recursive.h: remove todo comment
7079
7080 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7081
7082         * Land the mono binding changes to conform to the new APIs.
7083
7084         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7085         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7086
7087         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7088         type code as a string.
7089         (InitAppending): Rename dbus_message_append_iter_init() to
7090         dbus_message_iter_init_append().
7091
7092         * mono/BusDriver.cs: Rename ServiceEventHandler to
7093         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7094         Rename ServiceOwnerChanged to NameOwnerChanged.
7095
7096         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7097         underlying C call.
7098
7099         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7100
7101         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7102         dbus_bus_acquire_service() to dbus_bus_request_name().
7103
7104         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7105         of Type.UnderlyingSystemType to get the correct element type for
7106         the array.
7107         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7108         dbus_message_get_{element|arg}_type() instead of
7109         dbus_message_iter_init_array_iterator().
7110         (Append): Replace dbus_message_iter_append_array() with
7111         dbus_message_iter_open_container() and
7112         dbus_message_iter_close_container().
7113
7114         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7115         types have been removed.
7116         
7117         * mono/DBusType/*.cs: Replace calls of
7118         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7119         but specify the type in the DllImport extern declaration.  Ditto
7120         for dbus_message_iter_append_[type]() ->
7121         dbus_message_iter_append_basic().
7122
7123         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7124         NameOwnerChangedHandler.
7125
7126 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7127
7128         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7129                 - get_base_service -> get_unique_name
7130                 - bus_get_base_service -> bus_get_unique_name
7131                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7132                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7133                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7134                 - bus_activate_service -> bus_start_service_by_name
7135                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7136                 - bus_acquire_service -> bus_request_name
7137                 - dbus_bus_acquire_service -> dbus_bus_request_name
7138                 - bus_service_exists -> bus_name_has_owner
7139                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7140
7141         * python/dbus.py: Rename of methods
7142                 - activate_service -> start_service_by_name
7143                 - bus_acquire_service -> bus_request_name
7144                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7145                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7146
7147         
7148 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7149
7150         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7151         signature for the method that can't be found.
7152
7153         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7154         the message has any arguments, we need to call
7155         _dbus_type_reader_get_current_type(), not
7156         _dbus_type_reader_has_next().
7157
7158 2005-01-24  Havoc Pennington  <hp@redhat.com>
7159
7160         * dbus/dbus-message-factory.c: more testing of message validation
7161
7162         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7163         header
7164
7165 2005-01-23  Havoc Pennington  <hp@redhat.com>
7166
7167         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7168         get this all working, not many tests in the framework yet though
7169
7170 2005-01-22  Havoc Pennington  <hp@redhat.com>
7171
7172         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7173         tutorial, based on work from David Wheeler.
7174
7175 2005-01-21  Havoc Pennington  <hp@redhat.com>
7176
7177         * dbus/dbus-bus.c: add more return_if_fail checks
7178
7179         * dbus/dbus-message.c (load_message): have the "no validation"
7180         mode (have to edit the code to toggle the mode for now though)
7181
7182         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7183         skips all validation; I want to use this at least for benchmark
7184         baseline, I'm not sure if it should be a publicly-available switch.
7185
7186 2005-01-21  Havoc Pennington  <hp@redhat.com>
7187
7188         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7189         toplevel doxygen group as the low-level API stuff
7190
7191         * dbus/dbus.h: note that libdbus is the low-level API
7192
7193 2005-01-20  Havoc Pennington  <hp@redhat.com>
7194
7195         * update-dbus-docs.sh: script to update docs on the web site, only
7196         works for me though. neener.
7197
7198 2005-01-20  Havoc Pennington  <hp@redhat.com>
7199
7200         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7201         code can reveal bugs in it
7202
7203 2005-01-20  Havoc Pennington  <hp@redhat.com>
7204
7205         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7206         select() version, patches from Tor Lillqvist
7207
7208 2005-01-20  Havoc Pennington  <hp@redhat.com>
7209
7210         * doc/dbus-tutorial.xml: replace > with &gt;
7211
7212         * bus/services.c (bus_registry_acquire_service): validate the name
7213         and return a better error if it's no good.
7214
7215         * doc/dbus-specification.xml: note NO_AUTO_START change
7216
7217         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7218         from AUTO_START, we're toggling the default
7219
7220         * bus/dispatch.c: adapt the tests to change of auto-start default
7221
7222 2005-01-18  Havoc Pennington  <hp@redhat.com>
7223
7224         * rename dbus-daemon-1 to dbus-daemon throughout
7225
7226 2005-01-18  Havoc Pennington  <hp@redhat.com>
7227
7228         * Throughout, grand renaming to strip out the use of "service",
7229         just say "name" instead (or "bus name" when ambiguous).  Did not
7230         change the internal code of the message bus itself, only the
7231         programmer-facing API and messages.
7232         
7233         * doc/dbus-specification.xml: further update the message bus section
7234         
7235         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7236         in error case
7237
7238 2005-01-17  Havoc Pennington  <hp@redhat.com>
7239
7240         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7241         ever
7242
7243         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7244         "invalid name character" not only non-ASCII
7245
7246         * doc/dbus-specification.xml: further update spec, message bus 
7247         parts are still out-of-date but the marshaling etc. stuff is now
7248         accurate-ish
7249
7250 2005-01-17  Havoc Pennington  <hp@redhat.com>
7251
7252         * doc/dbus-specification.xml: partially update spec
7253
7254 2005-01-17  Havoc Pennington  <hp@redhat.com>
7255
7256         * Throughout, align variant bodies according to the contained
7257         type, rather than always to 8. Should save a fair bit of space in
7258         message headers.
7259         
7260         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7261         fix handling of case where p == end
7262
7263         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7264
7265 2005-01-17  Havoc Pennington  <hp@redhat.com>
7266
7267         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7268
7269         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7270         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7271         are marshaling/unmarshaling a boolean.
7272
7273 2005-01-16  Havoc Pennington  <hp@redhat.com>
7274
7275         This is about it on what can be disabled/deleted from libdbus
7276         easily, back below 150K anyhow. Deeper cuts are more work than 
7277         just turning the code off as I've done here.
7278         
7279         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7280         signed int convenience funcs
7281
7282         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7283         verbose mode
7284
7285         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7286         things out of libdbus
7287
7288         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7289         
7290         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7291         tests-enabled-only, though it should probably be deleted)
7292
7293         * dbus/dbus-message-util.c: same stuff
7294
7295         * dbus/dbus-auth-util.c: same stuff
7296
7297 2005-01-16  Havoc Pennington  <hp@redhat.com>
7298
7299         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7300
7301         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7302         way for stripping down dbus-userdb.c stuff included in libdbus.
7303         Rename _dbus_parse_uid for consistency.
7304
7305 2005-01-16  Havoc Pennington  <hp@redhat.com>
7306
7307         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7308         name the assertion failed in
7309
7310         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7311         (_dbus_return_val_if_fail): assert that the name of the function
7312         containing the check doesn't start with '_', since we only want to 
7313         use checks on public functions
7314         
7315         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7316         checks to assertions
7317
7318         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7319         change checks to asserts for private function
7320
7321         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7322         to asserts for private function
7323
7324         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7325         broken assertion that was breaking make check
7326         (_dbus_type_reader_array_is_empty): remove this rather than fix
7327         it, was only used in assertions
7328
7329 2005-01-16  Havoc Pennington  <hp@redhat.com>
7330
7331         * test/unused-code-gc.py: hacky script to find code that's used
7332         only by the bus (not libdbus) or used only by tests or not used at
7333         all. It has some false alarms, but looks like we can clean up a
7334         lot of size from libdbus.
7335
7336         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7337         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7338         
7339 2005-01-16  Havoc Pennington  <hp@redhat.com>
7340
7341         * Add and fix docs according to Doxygen warnings throughout
7342         source.
7343         
7344         * dbus/dbus-marshal-recursive.c
7345         (_dbus_type_reader_array_is_empty): change this to just call
7346         array_reader_get_array_len() and make it static
7347
7348         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7349         from get_array_type
7350         (dbus_message_iter_init_append): rename from append_iter_init
7351
7352         * dbus/dbus-marshal-recursive.c
7353         (_dbus_type_reader_get_element_type): rename from
7354         _dbus_type_reader_get_array_type
7355
7356 2005-01-15  Havoc Pennington  <hp@redhat.com>
7357
7358         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7359
7360         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7361         when DBUS_DISABLE_ASSERT
7362         (_dbus_marshal_set_basic): be sure we align for the string length
7363
7364         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7365         this look faster
7366
7367         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7368         inline macro version
7369         (_dbus_string_set_byte): provide inline macro version
7370
7371 2005-01-15  Havoc Pennington  <hp@redhat.com>
7372
7373         * Land the new message args API and type system.
7374
7375         This patch is huge, but the public API change is not 
7376         really large. The set of D-BUS types has changed somewhat, 
7377         and the arg "getters" are more geared toward language bindings;
7378         they don't make a copy, etc.
7379
7380         There are also some known issues. See these emails for details
7381         on this huge patch:
7382         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7383         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7384         
7385         * dbus/dbus-marshal-*: all the new stuff
7386
7387         * dbus/dbus-message.c: basically rewritten
7388
7389         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7390         freed blocks to be all non-nul bytes so using freed memory is less
7391         likely to work right
7392
7393         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7394         DBUS_FAIL_MALLOC=N environment variable, so you can do
7395         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7396         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7397         thorough.
7398
7399         * qt/message.cpp: port to the new message args API
7400         (operator<<): use str.utf8() rather than str.unicode()
7401         (pretty sure this is right from the Qt docs?)
7402
7403         * glib/dbus-gvalue.c: port to the new message args API
7404
7405         * bus/dispatch.c, bus/driver.c: port to the new message args API
7406
7407         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7408         "locked" flag to TRUE and align_offset to 0; I guess we never
7409         looked at these anyhow, but seems cleaner.
7410
7411         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7412         move allocation padding macro to this header; use it to implement
7413         (_DBUS_STRING_STATIC): ability to declare a static string.
7414
7415         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7416         change to return TRUE if the interface is not set.
7417
7418         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7419         to dbus-marshal-validate.[hc]
7420
7421         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7422         dbus-internals.c
7423
7424         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7425         to dbus-marshal-*.[hc]
7426
7427         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7428         function here from dbus-marshal.c
7429
7430 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7431
7432         * NEWS: Update for 0.23.
7433
7434         * configure.in: Release 0.23.
7435
7436 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7437
7438         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7439         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7440         behind.
7441
7442         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7443         uninstall"
7444
7445         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7446         is an enum, get the enum's underlying type.  Another mono
7447         1.1.3 fix.
7448
7449 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7450
7451         Patch from Sjoerd Simons <sjoerd@luon.net>
7452
7453         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7454         DESTDIR.  It breaks stuff.
7455
7456 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7457
7458         Patch from Tambet Ingo <tambet@ximian.com>
7459
7460         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7461         calling type.GetElementType().  The code previously depended on
7462         broken Mono behavior, which was fixed in Mono 1.1.3.
7463
7464         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7465         Activator.CreateInstance() so that the class's constructor is
7466         called with the right parameters.
7467
7468 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7469
7470         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7471
7472         * dbus/dbus-connection.c
7473         (_dbus_connection_queue_received_message_link): Call
7474         _dbus_connection_remove_timeout() instead of the _locked()
7475         variant, since it's always called from
7476         _dbus_connection_handle_watch(), which handles the locking.
7477         Removed the _locked() variant since it's no longer used.
7478
7479 2005-01-03  Havoc Pennington  <hp@redhat.com>
7480
7481         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7482         return
7483         
7484 2004-12-26  Havoc Pennington  <hp@redhat.com>
7485
7486         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7487
7488 2005-01-03  Havoc Pennington  <hp@redhat.com>
7489
7490         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7491         floating point
7492
7493         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7494
7495 2005-01-02  Havoc Pennington  <hp@redhat.com>
7496
7497         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7498
7499 2005-01-01  Havoc Pennington  <hp@redhat.com>
7500
7501         * configure.in: add -Wfloat-equal
7502
7503 2005-01-01  Havoc Pennington  <hp@redhat.com>
7504
7505         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7506         for a variety of reasons '==' doesn't do this.
7507
7508 2004-12-31  Havoc Pennington  <hp@redhat.com>
7509
7510         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7511         I keep wishing I had
7512
7513 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7514
7515         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7516
7517 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7518
7519         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7520         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7521         dbus-protocol.h.  Because they are defines and not enums they are not
7522         autogenerated.
7523
7524 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7525
7526         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7527         dbus_bus_activate_service
7528
7529         * python/dbus.py (Bus.activate_service): activate a service on the
7530         bus.
7531
7532 2004-12-24  Havoc Pennington  <hp@redhat.com>
7533
7534         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7535         file format has also changed and I haven't adapted to that yet
7536         
7537         * Makefile.am: load .gcno files from latest gcc
7538
7539 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7540         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7541
7542         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7543         lowlevel binding
7544
7545         * python/dbus.py (get_unix_user): Added binding to 
7546         call dbus_bindings.bus_get_unix_user
7547
7548         * python/extract.py: Modified the proto_pat regex to
7549         handle unsigned long
7550
7551 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7552
7553         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7554         better POSIX compliance.
7555
7556 2004-12-19  Havoc Pennington  <hp@redhat.com>
7557
7558         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7559         (_dbus_string_insert_8_aligned): new functions
7560
7561         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7562
7563 2004-12-18  Havoc Pennington  <hp@redhat.com>
7564
7565         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7566         macro
7567
7568         * dbus/dbus-message.c: fix a comment, and add a still-unused
7569         not-implemented function
7570
7571         * dbus/dbus-marshal.h: fix comment
7572
7573         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7574
7575 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7576
7577         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7578         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7579         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7580         Type.UnderlyingSystemType to get the actual system type
7581         underneath.  This code previously depended on the broken Mono
7582         behavior, which was fixed in 1.1.3.
7583
7584 2004-11-27  Havoc Pennington  <hp@redhat.com>
7585
7586         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7587         are disabled
7588         (_dbus_string_get_const_data): inline when asserts are disabled
7589
7590         * dbus/dbus-message.c: record the _dbus_current_generation of
7591         creation so we can complain if dbus_shutdown() is used improperly.
7592         Do this only if checks are enabled.
7593
7594         * dbus/dbus-connection.c: ditto
7595         
7596 2004-11-26  Havoc Pennington  <hp@redhat.com>
7597
7598         * test/glib/test-profile.c: add with_bus mode to profile echoes
7599         that go through the bus.
7600
7601         * test/glib/run-test.sh: add ability to run test-profile
7602
7603         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7604         config file reload.
7605
7606 2004-11-26  Havoc Pennington  <hp@redhat.com>
7607
7608         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7609         thing was implemented
7610
7611 2004-11-26  Havoc Pennington  <hp@redhat.com>
7612
7613         * test/glib/test-profile.c: tweak a bit, add support for some
7614         made-up minimal malloc overhead with plain sockets, since in 
7615         real life some sort of buffers are unavoidable thus we could 
7616         count them in the theoretical best case
7617
7618 2004-11-26  Havoc Pennington  <hp@redhat.com>
7619
7620         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7621         where I was trying to cache one too many messages
7622
7623 2004-11-26  Havoc Pennington  <hp@redhat.com>
7624
7625         * dbus/dbus-message.c: reimplement message cache as an array which 
7626         makes the cache about twice as fast and saves maybe 1.5% overall
7627
7628 2004-11-26  Havoc Pennington  <hp@redhat.com>
7629
7630         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7631         message cache lock here
7632
7633 2004-11-26  Havoc Pennington  <hp@redhat.com>
7634
7635         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7636         the "char byte_order" next to each other to save 4 bytes
7637         (dbus_message_new_empty_header): reduce preallocation, since the
7638         message cache should achieve a similar effect
7639         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7640         message cache that keeps a few DBusMessage around in a pool,
7641         another 8% speedup or so.
7642
7643         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7644
7645 2004-11-25  Havoc Pennington  <hp@redhat.com>
7646
7647         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7648         to write, without reading or blocking, try it before the poll()
7649         and skip the poll() if nothing remains to write. This is about a
7650         3% speedup in the echo client/server
7651
7652 2004-11-25  Havoc Pennington  <hp@redhat.com>
7653
7654         The primary change here is to always write() once before adding
7655         the write watch, which gives us about a 10% performance increase.
7656         
7657         * dbus/dbus-transport-unix.c: a number of modifications to cope
7658         with removing messages_pending
7659         (check_write_watch): properly handle
7660         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7661         messages_pending stuff
7662         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7663         AUTHENTICATED cases
7664         (unix_handle_watch): after writing, see if the write watch can be
7665         removed
7666         (unix_do_iteration): assert that write_watch/read_watch are
7667         non-NULL rather than testing that they aren't, since they 
7668         aren't allowed to be NULL. check_write_watch() at the end so 
7669         we add the watch if we did not finish writing (e.g. got EAGAIN)
7670
7671         * dbus/dbus-transport-protected.h: remove messages_pending call,
7672         since it resulted in too much inefficient watch adding/removing; 
7673         instead we now require that the transport user does an iteration 
7674         after queueing outgoing messages, and after trying the first
7675         write() we add a write watch if we got EAGAIN or exceeded our 
7676         max bytes to write per iteration setting
7677
7678         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7679         function
7680
7681         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7682         freed and then accessed, valgrind flagged this bug, fix it
7683
7684         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7685         as the last valid field plus 1, where really it is equal to the
7686         last valid field. Corrects some message corruption issues.
7687
7688         * dbus/dbus-mainloop.c: verbosity changes
7689
7690         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7691         instead of aborting in one of the test codepaths
7692
7693         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7694         caused not printing the pid ever again if a verbose was missing
7695         the newline at the end
7696         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7697
7698         * dbus/dbus-connection.c: verbosity changes; 
7699         (dbus_connection_has_messages_to_send): new function
7700         (_dbus_connection_message_sent): no longer call transport->messages_pending
7701         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7702         try to write() immediately, so we can avoid the write watch. This
7703         is the core purpose of this patchset
7704         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7705         dump the outgoing message queue, so nobody will get confused
7706         trying to send them or thinking stuff is pending to be sent
7707
7708         * bus/test.c: verbosity changes
7709
7710         * bus/driver.c: verbosity/assertion changes
7711
7712         * bus/dispatch.c: a bunch of little tweaks to get it working again
7713         because this patchset changes when/where you need to block.
7714
7715 2004-11-23  Havoc Pennington  <hp@redhat.com>
7716
7717         * test/glib/test-profile.c: modify to accept a plain_sockets
7718         argument in which case it will bench plain sockets instead of
7719         libdbus, for comparison purposes.
7720
7721 2004-11-22  Havoc Pennington  <hp@redhat.com>
7722
7723         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7724         threads for more time, so sysprof can get a grip on it.
7725
7726         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7727         pointless variable
7728
7729 2004-11-13  Havoc Pennington  <hp@redhat.com>
7730
7731         * test/glib/test-profile.c: fix this thing up a bit
7732
7733         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7734         preallocation sizes by a fair bit; not sure if this will be an
7735         overall performance win or not, but it does reduce reallocs.
7736
7737         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7738         the test hack that forced constant realloc if asserts are
7739         disabled, so we can profile sanely. Sprinkle in some
7740         _DBUS_UNLIKELY() which are probably pointless, but before I
7741         noticed the real performance problem I put them in.
7742         (_dbus_string_validate_utf8): micro-optimize this thing a little
7743         bit, though callgrind says it didn't help; then special-case
7744         ascii, which did help a lot; then be sure we detect nul bytes as
7745         invalid, which is a bugfix.
7746         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7747         superstition; use memset to nul the padding instead of a manual
7748         loop.
7749         (_dbus_string_get_length): inline this as a
7750         macro; it showed up in the profile because it's used for loop
7751         tests and so forth
7752
7753 2004-11-10  Colin Walters  <walters@verbum.org>
7754
7755         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7756         for extra paranoia.
7757
7758 2004-11-09  Colin Walters  <walters@verbum.org>
7759
7760         * dbus/dbus-string.c (_dbus_string_get_length): New
7761         function, writes DBusString to C buffer.
7762
7763         * dbus/dbus-string.h: Prototype it.
7764
7765         * dbus/dbus-message.c (dbus_message_type_to_string): New
7766         function, converts message type into C string.
7767
7768         * dbus/dbus-message.h: Prototype it.
7769
7770         * bus/selinux.c (bus_selinux_check): Take source pid,
7771         target pid, and audit data.  Pass audit data to
7772         avc_has_perm.
7773         (log_audit_callback): New function, appends extra
7774         audit information.
7775         (bus_selinux_allows_acquire_service): Also take
7776         service name, add it to audit data.
7777         (bus_selinux_allows_send): Also take message
7778         type, interface, method member, error name,
7779         and destination, and add them to audit data.
7780         (log_cb): Initialize func_audit.
7781         
7782         * bus/selinux.h (bus_selinux_allows_acquire_service)
7783         (bus_selinux_allows_send): Update prototypes 
7784
7785         * bus/services.c (bus_registry_acquire_service): Pass
7786         service name to bus_selinux_allows_acquire_service.
7787
7788         * bus/bus.c (bus_context_check_security_policy): Pass
7789         additional audit data.  Move assignment of dest
7790         to its own line.
7791
7792 2004-11-07  Colin Walters  <walters@verbum.org>
7793
7794         * dbus/dbus-transport-unix.c (do_authentication): Always
7795         initialize auth_completed.
7796         
7797 2004-11-07  Colin Walters  <walters@verbum.org>
7798
7799         * bus/bus.c (load_config): Break into three
7800         separate functions: process_config_first_time_only,
7801         process_config_every_time, and process_config_postinit.
7802         (process_config_every_time): Move call of
7803         bus_registry_set_service_context_table into
7804         process_config_postinit.
7805         (process_config_postinit): New function, does
7806         any processing that needs to happen late
7807         in initialization (and also on reload).
7808         (bus_context_new): Instead of calling load_config,
7809         open config parser here and call process_config_first_time_only
7810         and process_config_every_time directly.  Later, after
7811         we have forked but before changing UID,
7812         invoke bus_selinux_full_init, and then call
7813         process_config_postinit.
7814         (bus_context_reload_config): As in bus_context_new,
7815         load parse file inside here, and call process_config_every_time
7816         and process_config_postinit.
7817
7818         * bus/services.h, bus/services.c
7819         (bus_registry_set_service_context_table): Rename
7820         from bus_registry_set_sid_table.  Take string hash from config
7821         parser, and convert them here into SIDs.
7822
7823         * bus/config-parser.c (struct BusConfigParser): Have
7824         config parser only store a mapping of service->context
7825         string.
7826         (merge_service_context_hash): New function.
7827         (merge_included): Merge context string hashes instead
7828         of using bus_selinux_id_table_union.
7829         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7830         simply create a new string hash.
7831         (bus_config_parser_unref): Unref it.
7832         (start_selinux_child): Simply insert strings into hash,
7833         don't call bus_selinux_id_table_copy_over.
7834
7835         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7836         (bus_selinux_id_table_copy_over): Delete.
7837
7838 2004-11-03  Colin Walters  <walters@verbum.org>
7839
7840         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7841         variables.
7842         
7843 2004-11-03  Colin Walters  <walters@verbum.org>
7844
7845         * bus/test-main.c (test_pre_hook): Fix test logic,
7846         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7847
7848 2004-11-02  Colin Walters  <walters@redhat.com>
7849
7850         * bus/selinux.c (bus_selinux_init): Split into two functions,
7851         bus_selinux_pre_init and bus_selinux_post_init.
7852         (bus_selinux_pre_init): Just determine whether SELinux is
7853         enabled.
7854         (bus_selinux_post_init): Do everything else.
7855
7856         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7857         config file, and bus_selinux_post_init after.  This ensures that
7858         we don't lose the policyreload notification thread that
7859         bus_selinux_init created before forking previously.
7860         
7861         * bus/test-main.c (test_pre_hook): Update for split.
7862
7863 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7864
7865         Patch from Johan Fischer <linux@fischaz.com>
7866         
7867         * mono/doc/Makefile.am (install-data-local): Added directory
7868         install for DESTDIR
7869
7870 2004-10-29  Colin Walters  <walters@redhat.com>
7871
7872         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7873         parameter for fd to write pid to.       
7874
7875         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7876         
7877         * bus/bus.c (bus_context_new): Pass print_pid_fd
7878         to _dbus_become_daemon (bug #1720)
7879
7880 2004-10-29  Colin Walters  <walters@redhat.com>
7881
7882         Patch from Ed Catmur <ed@catmur.co.uk>
7883
7884         * mono/doc/Makefile.am (install-data-local): Handle
7885         DESTDIR.
7886
7887 2004-10-29  Colin Walters  <walters@redhat.com>
7888
7889         * bus/.cvsignore, qt/.cvsignore: Update.
7890
7891 2004-10-29  Colin Walters  <walters@redhat.com>
7892
7893         Patch from Kristof Vansant <de_lupus@pandora.be>
7894
7895         * configure.in: Detect Slackware.
7896         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7897         * bus/rc.messagebus.in: New file.
7898
7899 2004-10-29  Colin Walters  <walters@redhat.com>
7900
7901         * tools/dbus-monitor.c (filter_func): Return
7902         DBUS_HANDLER_RESULT_HANDLED in filter function
7903         for now.  See:
7904         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7905
7906 2004-10-29  Colin Walters  <walters@redhat.com>
7907
7908         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7909
7910         * bus/services.c (bus_registry_acquire_service): 
7911         Correctly retrieve service name from DBusString
7912         for printing.
7913
7914 2004-10-29  Colin Walters  <walters@redhat.com>
7915
7916         * dbus/dbus-glib.h: Update documentation to not
7917         refer to internal APIs.
7918
7919 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7920
7921         * mono/Arguments.cs (GetDBusTypeConstructor):
7922         type.UnderlyingSystemType will return "System.Byte" if you do it
7923         on "byte[]", which is not what we want.  So check the type.IsArray
7924         property and use System.Array instead.
7925
7926 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7927
7928         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7929         the DBusUserInfo structure since this is passed into the function.
7930         This would cause a double free when the function that allocated
7931         the structure would try to free it when an error occured.
7932
7933         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7934         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7935         for service activation to avoid 32bit/64bit parallel install issues
7936
7937 2004-10-21  Colin Walters  <walters@verbum.org>
7938
7939         * AUTHORS: Fix my email address, the @gnu.org one
7940         has been bouncing for some time.  Also add J5.
7941         
7942 2004-10-21  Colin Walters  <walters@verbum.org>
7943
7944         * dbus/dbus-transport-unix.c (do_authentication): Return
7945         authentication status to callers.
7946         (unix_handle_watch): If we completed authentication this round,
7947         don't do another read.  Instead wait until the next iteration,
7948         after we've read any pending data in the auth buffer.
7949         (unix_do_iteration): Ditto.
7950         (unix_handle_watch): Updated for new do_authentication prototype.
7951
7952 2004-10-18  Colin Walters  <walters@verbum.org>
7953
7954         * bus/selinux.c (bus_selinux_enabled): Handle
7955         --disable-selinux case.
7956         
7957 2004-10-18  Colin Walters  <walters@verbum.org>
7958
7959         * bus/selinux.h: Add bus_selinux_enabled.
7960         
7961         * bus/selinux.c (bus_selinux_enabled): Implement it.
7962         
7963         * bus/config-parser.c (struct include): Add
7964         if_selinux_enabled member.
7965         (start_busconfig_child): Parse if_selinux_enabled
7966         attribute for include.
7967         (bus_config_parser_content): Handle it.
7968
7969         * bus/session.conf.in, bus/system.conf.in: Add
7970         inclusion of context mapping to default config files;
7971         conditional on SELinux being enabled.
7972         
7973         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7974         
7975         * test/data/invalid-config-files/badselinux-1.conf, 
7976         test/data/invalid-config-files/badselinux-2.conf:
7977         Test files for bad syntax.
7978         
7979 2004-10-17  Colin Walters  <walters@verbum.org>
7980
7981         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7982         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7983         format specifier mismatches.
7984
7985 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7986
7987         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7988         format string.
7989
7990         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7991         pointer (bug #1540, Leonardo Boiko).
7992
7993 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7994
7995         * mono/BusDriver.cs: Changed BusDriver struct to remove
7996         the ServiceCreated and ServiceDeleted events and replace them
7997         with the new ServiceOwnerChanged event.
7998
7999         * mono/example/BusListener.cs: Added a new example program,
8000         which listens for and reports any ServiceOwnerChanged events
8001         on the bus driver.
8002
8003         * mono/example/Makefile.am (DESTDIR): Build changes for the
8004         new BusListener.cs example.
8005
8006 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8007
8008         * bus/signals.c (bus_match_rule_parse): validate the components of
8009         match rules (bug #1439).
8010
8011         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
8012
8013 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8014
8015         * doc/dbus-specification.xml: document ServiceOwnerChanged
8016         signal.
8017         
8018         * bus/driver.c, bus/driver.h, bus/services.c: Use
8019         ServiceOwnerChanged signal instead of ServiceCreated and
8020         ServiceDeleted.
8021         
8022         * bus/dispatch.c: update testcase for the new signal.
8023
8024 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8025
8026         Patch from Nat Friedman <nat@novell.com>
8027
8028         * mono/Makefile.am: A number of small build fixes to allow "make
8029         distcheck" to succeed.
8030
8031         * mono/example/Makefile.am: "make distcheck" fixes.
8032
8033         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8034         key in @srcdir@.
8035
8036         * test/Makefile.am: "make distcheck" fixes.
8037
8038 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8039
8040         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8041
8042         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8043
8044         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8045         messages after the first one (bug #1389).
8046         
8047         * bus/dispatch.c (check_double_hello_message): add a test case for
8048         the double hello message bug.
8049         (check_existent_service_activation): fix check of spawning error.
8050         
8051 2004-09-16  David Zeuthen  <david@fubar.dk>
8052
8053         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8054
8055 2004-09-12  David Zeuthen  <david@fubar.dk>
8056
8057         Patch from Kay Sievers <kay.sievers@vrfy.org>
8058
8059         * bus/bus.c (bus_context_new):
8060         * bus/bus.h:
8061         * bus/main.c (usage)
8062         (main):
8063         Add commandline option --nofork to override configuration file
8064         setting.
8065
8066 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8067
8068         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8069         compilers don't like it (bug #974).
8070
8071 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8072
8073         * qt/connection.*: Applied patch by Jérôme Lodewyck
8074         <lodewyck@clipper.ens.fr> to integrate an existing
8075         connection into the Qt eventloop
8076
8077 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8078
8079         * mono/BusDriver.cs: Added.  This is a class for interacting with
8080         the org.freedesktop.DBus service.
8081
8082         * mono/Message.cs: Added a mechanism to expose the message that is
8083         currently being dispatched via the static Message.Current
8084         property.  Added Message.Sender and Message.Destination
8085         properties.
8086
8087         * mono/Handler.cs: Expose the dispatched message via
8088         Message.Current when handling method calls.
8089
8090         * mono/Service.cs: Expose the dispatched message via
8091         Message.Current when handling signal emissions.
8092         
8093         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8094         Connection.BaseService property.
8095
8096 2004-08-28  Havoc Pennington  <hp@redhat.com>
8097
8098         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8099
8100         More fixes from Steve Grubb
8101         
8102         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8103         (_dbus_listen_tcp_socket): fix fd leak
8104
8105         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8106         EINTR to a bit lower in the code
8107
8108 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8109
8110         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8111         TRUE if we are inquiring about the existence of the built-in
8112         org.freedesktop.DBus service.
8113
8114 2004-08-25  John Palmieri  <johnp@redhat.com>
8115         * bus/config-parser.c:
8116         (struct PolicyType): Add POLICY_CONSOLE
8117         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8118         (start_busconfig_child): Sets up console element when
8119         <policy at_console=""> is encountered in a policy file
8120         (append_rule_from_element): Convert console elements to console
8121         rules.
8122
8123         * bus/policy.c: 
8124         (bus_policy_create_client_policy): Add console rules to the client
8125         policy based on if the client is at the console
8126         (bus_policy_append_console_rule): New function for adding a
8127         console rule to a policy
8128         (bus_policy_merge): Handle console rule merging
8129
8130         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8131         where we check for console user files
8132         
8133         * dbus/dbus-sysdeps.c:
8134         (_dbus_file_exists): New function which checks if the given
8135         file exists
8136         (_dbus_user_at_console): New function which does the system
8137         specific process of checking if the user is at the console
8138
8139         * dbus/dbus-userdb.c:
8140         (_dbus_is_console_user): New function converts a UID to user name
8141         and then calls the system specific _dbus_user_at_console to 
8142         see if the user is at the console and therefor a console user
8143
8144 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8145
8146         * bus/config-parser.c (set_limit):
8147         * bus/dbus-daemon-1.1.in:
8148         * test/data/valid-config-files/many-rules.conf: set the
8149         max_match_rules_per_connection limt from the config file. 
8150
8151         * doc/busconfig.dtd: update the DTD.
8152
8153         * bus/driver.c: remove some unused variables.
8154
8155 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8156
8157         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8158         it's been replaced by dbus_g_bus_get
8159
8160 2004-08-23  Colin Walters  <walters@redhat.com>
8161
8162         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8163
8164         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8165
8166         * bus/selinux.c: Create a thread for policy reload notification.
8167         (bus_selinux_get_policy_root): Implement.
8168
8169         * bus/config-parser.c (start_busconfig_child)
8170         (bus_config_parser_content): Support SELinux-root relative
8171         inclusion.
8172
8173         * configure.in <HAVE_SELINUX>: Add -lpthread.
8174         
8175         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8176         (test_post_hook): Move memory checking into here.
8177         (test_pre_hook, test_post_hook): Move SELinux checks in
8178         here, but conditional on a DBUS_TEST_SELINUX environment
8179         variable.  Unfortunately we can't run the SELinux checks
8180         as a normal user, since they won't have any permissions
8181         for /selinux.  So this will have to be tested manually
8182         for now, until we have virtualization for most of
8183         libselinux.
8184         
8185 2004-08-23  Havoc Pennington  <hp@redhat.com>
8186
8187         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8188         drop supplementary groups, suggested by Steve Grubb
8189
8190 2004-08-20  Colin Walters  <walters@redhat.com>
8191
8192         * bus/config-parser.c (start_busconfig_child): Remove some unused
8193         variables.
8194         
8195         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8196         warning.
8197
8198 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8199
8200         * configure.in: If --enable-mono is passed in, if we can't find
8201         mono error out.
8202
8203         * mono/Makefile.am: Use /gacutil to install assemblies into the
8204         GAC and not /root.
8205
8206 2004-08-12  Havoc Pennington  <hp@redhat.com>
8207
8208         * NEWS: update for 0.22
8209
8210         * configure.in: release 0.22
8211
8212 2004-08-11  Colin Walters  <walters@redhat.com>
8213
8214         * tools/dbus-send.c (main, usage): Add --reply-timeout
8215         argument.
8216
8217 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8218
8219         * bus/bus.c (process_config_first_time_only): get rid of an unused
8220         DBusError that was causing a memoy leak (bug #989).
8221
8222         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8223         fix compilation on Solaris/Forte C (bug #974)
8224
8225         * bus/main.c (main): plug two minuscule memleaks.
8226
8227 2004-08-10  Havoc Pennington  <hp@redhat.com>
8228
8229         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8230
8231 2004-08-09  Havoc Pennington  <hp@redhat.com>
8232
8233         * COPYING: switch to Academic Free License version 2.1 instead of
8234         2.0, to resolve complaints about patent termination clause.
8235
8236 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8237
8238         * README: added documentation for the --enable-python 
8239         configure switch.
8240
8241 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8242
8243         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8244         _unref in the SELinux support.
8245
8246         * doc/busconfig.dtd: update DTD for SELinux support.
8247
8248         * bus/config-loader-libxml.c: fix error handler and parser
8249         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8250
8251         * configure.in: remove the warning about libxml2.
8252
8253         * dbus/dbus-bus.c: silence doxygen warning.
8254
8255 2004-07-31  Colin Walters  <walters@redhat.com>
8256
8257         * configure.in: Move #error in SELinux check to its own line.
8258
8259 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8260
8261         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8262         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8263         dbus_error_set.
8264
8265         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8266         broken by the change in the _SET_OOM macros.
8267
8268 2004-07-31  Colin Walters  <walters@redhat.com>
8269
8270         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8271         BUS_SET_OOM.
8272
8273 2004-07-31  Colin Walters  <walters@redhat.com>
8274
8275         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8276         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8277         AC_MSG_CHECKING.
8278
8279 2004-07-24  Havoc Pennington  <hp@redhat.com>
8280
8281         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8282
8283         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8284         functionality
8285
8286         * configure.in: add --enable-selinux
8287         
8288         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8289
8290         * bus/main.c (main): initialize and shut down selinux
8291
8292         * bus/connection.c: store SELinux ID on each connection, to avoid 
8293         repeated getting of the string context and converting it into 
8294         an ID
8295
8296         * bus/bus.c (bus_context_get_policy): new accessor, though it
8297         isn't used
8298         (bus_context_check_security_policy): check whether the security
8299         context of sender connection can send to the security context of
8300         recipient connection
8301
8302         * bus/config-parser.c: add parsing for <selinux> and <associate>
8303         
8304         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8305         implement dbus_connection_get_unix_fd()
8306
8307         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8308         function, used by the selinux stuff
8309         
8310 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8311
8312         * bus/config-loader-libxml.c: complete the implementation of
8313         libxml backend for config file loader. Doesn't work with full OOM
8314         test yet. 
8315         
8316         * configure.in: change error when selecting libxml into a warning.
8317         
8318         * test/data/invalid-config-files: add two non-well-formed XML
8319         files. 
8320         
8321         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8322         
8323         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8324         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8325         be necessary to read all the buffer. (bug #894)
8326
8327         * bus/activation.c (bus_activation_activate_service): fix a
8328         potential assertion failure (bug #896). Small optimization in the
8329         case of auto-activation messages.
8330
8331         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8332         add test case for byte-through-vararg bug (#901). patch by Kimmo
8333         Hämäläinen. 
8334
8335 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8336
8337         * python/dbus.py:
8338         * python/dbus_bindings.pyx.in:
8339         Add dbus.init_gthreads (), allow emit_signal to pass
8340         arguments to the signal.
8341         
8342 2004-07-24  Havoc Pennington  <hp@redhat.com>
8343
8344         * AUTHORS: add some people, not really comprehensively, let me
8345         know if I missed you
8346
8347 2004-07-24  Havoc Pennington  <hp@redhat.com>
8348
8349         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8350         Owen
8351
8352         * test/Makefile.am (DIST_SUBDIRS): here also
8353
8354 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8355
8356         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8357         breaking build on Solaris, reported by Farhad Saberi on the ML.
8358
8359         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8360         va_arg invocation to account for integer promotion in the case of
8361         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8362
8363         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8364         _dbus_list_get_first_link, not _dbus_list_get_first.
8365
8366         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8367
8368         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8369         handler functions so that the asserts in _dbus_object_subtree_unref
8370         do not fail.
8371
8372         * dbus/dbus-transport-unix.c (do_reading):
8373         _dbus_transport_queue_messages return value is of type
8374         dbus_bool_t, not DBusDispatchStatus.
8375         
8376 2004-07-19  David Zeuthen  <david@fubar.dk>
8377
8378         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8379
8380         * bus/dispatch.c:
8381         (check_get_connection_unix_user): Debug says GetProperty; but the
8382         method is called GetConnectionUnixUser
8383         (check_get_connection_unix_process_id): New function
8384         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8385         also call check_get_connection_unix_process_id()
8386         
8387         * bus/driver.c:
8388         (bus_driver_handle_get_connection_unix_process_id): New function,
8389         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8390         interface
8391         
8392         * dbus/dbus-auth.c:
8393         (handle_server_data_external_mech): Set pid from the credentials
8394         obtained from the socket
8395         
8396         * dbus/dbus-connection.c:
8397         (dbus_connection_get_unix_process_id): New function
8398         
8399         * dbus/dbus-connection.h: 
8400         Add prototype for dbus_connection_get_unix_process_id
8401         
8402         * dbus/dbus-transport.c:
8403         (_dbus_transport_get_unix_process_id): New function
8404         
8405         * dbus/dbus-transport.h:
8406         Add prototype for _dbus_transport_get_unix_process_id
8407         
8408 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8409
8410         * dbus/dbus-message.c: Message counter fix, patch by Christian
8411         Hammond <chipx86@gnupdate.org>
8412
8413 2004-07-18  Seth Nickell  <seth@gnome.org>
8414
8415         * python/dbus.py:
8416         * python/dbus_bindings.pyx.in:
8417         * python/tests/test-client.py:
8418
8419         Add dbus.ByteArray and dbus_bindings.ByteArray
8420         types so that byte streams can be passed back.
8421
8422         Give jdahlin the heaps of credit that are so
8423         rightfully his.
8424         
8425 2004-07-12  Seth Nickell  <seth@gnome.org>
8426
8427         * python/dbus.py:
8428
8429         Add message argument to the default object_method_handler
8430         function.
8431         
8432         * python/dbus_bindings.pyx.in:
8433
8434         Automatically return NIL when passed an empty list
8435         (we can't pass back a list since lists are typed
8436         and we don't have any idea what type the the client
8437         intended the list to be... :-( )
8438         
8439 2004-07-10  Seth Nickell  <seth@gnome.org>
8440
8441         * python/examples/Makefile.am:
8442
8443         Fix distcheck breakage caused by new examples.
8444
8445 2004-07-10  Seth Nickell  <seth@gnome.org>
8446
8447         * python/dbus.py:
8448
8449         Add "message" argument to service-side dbus.Object
8450         methods. This will break existing services written
8451         using the python bindings, but will allow extraction
8452         of all the message information (e.g. who its from).
8453
8454         Add improved "object oriented" signal handling/emission.
8455         
8456         * python/examples/example-service.py:
8457
8458         Nix this example.
8459         
8460         * python/examples/example-signal-emitter.py:
8461         * python/examples/example-signal-recipient.py:
8462
8463         Two new examples that show how to emit and receive
8464         signals using the new APIs.
8465         
8466         * python/examples/example-signals.py:
8467         * python/examples/gconf-proxy-service.py:
8468         * python/examples/gconf-proxy-service2.py:
8469
8470         Add "message" argument to service methods.
8471
8472 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8473
8474         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8475         * dbus/bus.c (dbus_bus_get_unix_user)
8476         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8477         method of org.freedesktop.DBus interface.
8478
8479         * bus/dispatch.c: test case
8480
8481 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8482
8483         * python/Makefile.am: switched include directory from glib/ to dbus/
8484         since dbus-glib.h moved
8485  
8486 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8487
8488         * configure.in: prevent building the gcj stuff and libxml loader
8489         since they are broken.
8490
8491 2004-06-20  Havoc Pennington  <hp@redhat.com>
8492
8493         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8494         codes from the dbus error names
8495         
8496         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8497         as dbus/dbus-glib.h and that breakage is now visible due to 
8498         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8499         
8500         * glib/dbus-glib.h: s/gproxy/g_proxy/
8501
8502         * dbus/dbus-shared.h: new header to hold stuff shared with
8503         binding APIs
8504         
8505         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8506         than dbus-errors.h
8507
8508         * glib/dbus-glib.h (dbus_set_g_error): move to
8509         dbus-glib-lowlevel.h
8510
8511         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8512         of stuff to enable this
8513
8514         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8515
8516         * a bunch of other changes with the same basic "separate glib 
8517         bindings from dbus.h" theme
8518         
8519 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8520
8521         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8522
8523         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8524
8525 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8526
8527         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8528         the reply value of the ServiceExists message.
8529
8530 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8531
8532         * python/dbus_bindings.pyx.in: No longer need to parse path
8533         elements and pass them as arrays of strings.  The C API now
8534         accepts plain path strings.
8535         (_build_parsed_path): removed 
8536
8537 2004-06-07  Havoc Pennington  <hp@redhat.com>
8538
8539         * doc/TODO: remove auto-activation item since it's done; sort
8540         items by importance/milestone
8541
8542 2004-06-07  Havoc Pennington  <hp@redhat.com>
8543
8544         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8545         random signature when using REQUIRED_FIELDS (this hack won't work
8546         in the long term)
8547
8548         * dbus/dbus-message.c: change the signature to be a header field,
8549         instead of message->signature special-case string. Incremental
8550         step forward. Then we can fix up code to send the signature in the
8551         message, then fix up code to validate said signature, then fix up
8552         code to not put the typecodes inline, etc.
8553         (load_one_message): don't make up the signature after the fact
8554         (decode_header_data): require signature field for the known
8555         message types
8556
8557         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8558
8559         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8560
8561 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8562
8563         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8564
8565         * mono/Handler.cs: Updated to follow new path argument for
8566         (un-)registering objects.
8567
8568         * mono/example/Makefile.am:
8569         * mono/Makefile.am:
8570         * configure.in: Bumped required version for mono and use new -pkg
8571         syntax for deps
8572
8573 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8574
8575         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8576         registration functions take the path argument as char* instead of
8577         char**.
8578
8579         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8580         split off the path decompostion part of
8581         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8582         warnings. 
8583
8584         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8585         
8586 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8587  
8588         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8589         machine approach.  A state is implemented as a function that
8590         handles incoming events as specified for that state.
8591         
8592         * doc/dbus-specification.xml: Update auth protocol state machine
8593         specification to match implementation.  Remove some leftover
8594         base64 examples.
8595
8596 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8597
8598         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8599         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8600         quiet doxygen.
8601
8602         * Doxyfile.in: remove deprecated options.
8603
8604         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8605         glib/test-thread.h, glib/test-thread-client.c,
8606         glib/test-thread-server.c, glib/test-profile.c,
8607         glib/test-dbus-glib.c: remove these unused files.
8608
8609 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8610
8611         * dbus/dbus-object-tree.c
8612         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8613         non-fallback handlers (bug #684).
8614         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8615         (find_subtree_recurse): report wether the returned subtree is an
8616         exact match or a "fallback" match higher up in the tree.
8617         (object_tree_test_iteration): update test case.
8618
8619 2004-06-01  Seth Nickell  <seth@gnome.org>
8620
8621         * python/dbus_bindings.pyx.in:
8622         * python/tests/test-client.py:
8623
8624         Round off basic type support. Add dicts (yay!), and 
8625         remaining array types.
8626
8627         Make MessageIter more general so it works for dicts too.
8628
8629         Mark all loop variables as C integers.
8630         
8631 2004-05-31  Havoc Pennington  <hp@redhat.com>
8632
8633         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8634         "in" before "out"
8635
8636         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8637
8638         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8639         option that runs the tests, and start filling in some code
8640         including for starters just dumping the interfaces to stdout
8641
8642         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8643
8644         * test/data/valid-introspection-files/lots-of-types.xml: test of
8645         an example introspection file
8646
8647         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8648         "node" (I think...)
8649
8650 2004-05-31  Seth Nickell  <seth@gnome.org>
8651
8652         * python/dbus_bindings.pyx.in:
8653         * python/tests/test-client.py:
8654
8655         Test Suite: 1
8656         Python Bindings: 0
8657
8658         Fix string array memory trashing bug... oops...
8659
8660 2004-05-30  Seth Nickell  <seth@gnome.org>
8661
8662         * python/dbus.py:
8663
8664         Add a nicer-but-less-flexible alternate API for handling 
8665         calls to virtual objects in dbus.ObjectTree.
8666
8667         Screw up the argument order to the dbus.Object constructor
8668         for consistency with dbus.ObjectTree (and to make dbus_methods
8669         optional for future extension)
8670         
8671         * python/examples/Makefile.am:
8672         * python/examples/gconf-proxy-service.py:
8673         * python/examples/gconf-proxy-service2.py:
8674
8675         Alternate implementation of gconf-proxy-service using the
8676         nicer dbus.ObjectTree API.
8677         
8678         * python/examples/example-service.py:
8679         * python/tests/test-server.py
8680
8681         Reverse the argument order to deal with dbus.Object constructor
8682         changes.
8683         
8684 2004-05-30  Seth Nickell  <seth@gnome.org>
8685
8686         * python/examples/example-client.py:
8687         * python/examples/example-service.py:
8688
8689         Take it back. Lists seem to work but they're broken
8690         in the test suite. Make the base examples use
8691         lists (works fine).
8692
8693 2004-05-30  Seth Nickell  <seth@gnome.org>
8694
8695         * python/dbus_bindings.pyx.in:
8696         * python/tests/test-client.py:
8697
8698         Add some more tests and fix errors that crop up.
8699         Unfortunately, currently it seems like marshalling
8700         and unmarshalling of lists is completely broken :-(
8701
8702 2004-05-30  Seth Nickell  <seth@gnome.org>
8703
8704         * python/dbus_bindings.pyx.in:
8705
8706         Add support for ObjectPath type.
8707
8708         * python/dbus.py:
8709
8710         Refactor message handling code to a common function.
8711         
8712         * python/tests/test-client.py:
8713         * python/tests/test-server.py:
8714
8715         Add tests that check to make sure values of all types
8716         can be echoed from a service w/o mangling.
8717         
8718 2004-05-29  Seth Nickell  <seth@gnome.org>
8719
8720         * python/dbus.py:
8721
8722         Add ObjectTree class which allows implementation
8723         of trees of "virtual" objects. Basically the python
8724         wrapper for "register_fallback".
8725         
8726         * python/examples/Makefile.am
8727         * python/examples/gconf-proxy-client.py:
8728         * python/examples/gconf-proxy-service.py:
8729
8730         Implement a simple GConf proxy service that supports
8731         get/set on string and int GConf keys using the ObjectTree.
8732         
8733 2004-05-29  Seth Nickell  <seth@gnome.org>
8734
8735         * python/dbus.py:
8736         * python/examples/example-client.py:
8737         * python/examples/example-service.py:
8738         * python/examples/list-system-services.py:
8739
8740         Add SessionBus, SystemBus and ActivationBus classes
8741         so you don't need to know the special little BUS_TYPE
8742         flag.
8743         
8744 2004-05-29  Havoc Pennington  <hp@redhat.com>
8745
8746         * bus/config-parser.c (process_test_valid_subdir): temporarily
8747         stop testing config parser OOM handling, since expat has issues
8748         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8749
8750         * bus/dbus-daemon-1.1.in: change requested_reply to
8751         send_requested_reply/receive_requested_reply so we can send the
8752         replies, not just receive them.
8753
8754         * bus/config-parser.c: parse the new
8755         send_requested_reply/receive_requested_reply
8756
8757         * bus/policy.c (bus_client_policy_check_can_send): add
8758         requested_reply argument and use it
8759
8760         * bus/bus.c (bus_context_check_security_policy): pass through
8761         requested_reply status to message send check
8762
8763         * bus/system.conf.in: adapt to requested_reply change
8764         
8765 2004-05-28  Havoc Pennington  <hp@redhat.com>
8766
8767         * test/glib/test-service-glib.c (main): remove unused variable
8768
8769         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8770
8771         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8772         from the enum, no longer in use.
8773
8774         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8775         works right.
8776
8777         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8778         whether error_name passed in is a valid error name.
8779
8780 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8781
8782         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8783         OBJECT_PATH and OBJECT_PATH_ARRAY
8784
8785 2004-05-28  Seth Nickell  <seth@gnome.org>
8786
8787         * python/examples/Makefile.am:
8788
8789         Forget to add Makefile.am. Do not pass go.
8790
8791 2004-05-28  Michael Meeks  <michael@ximian.com>
8792
8793         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8794         fix no int64 case.
8795
8796         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8797
8798         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8799         (_dbus_message_iter_get_basic_type_array): impl.
8800         drastically simplify ~all relevant _get methods to use these.
8801         (_dbus_message_iter_append_basic_array),
8802         (dbus_message_iter_append_basic): impl
8803         drastically simplify ~all relevant _append methods to use these.
8804
8805         * dbus/dbus-message-builder.c (parse_basic_type) 
8806         (parse_basic_array, lookup_basic_type): impl.
8807         (_dbus_message_data_load): prune scads of duplicate /
8808         cut & paste coding.
8809
8810         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8811         (_dbus_demarshal_basic_type): implement,
8812         (demarshal_and_validate_len/arg): beef up debug.
8813         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8814
8815 2004-05-27  Seth Nickell  <seth@gnome.org>
8816
8817         * configure.in:
8818         * python/Makefile.am:
8819
8820         Include the example python apps in the tarball.
8821         
8822         * python/examples/list-system-services.py
8823
8824         Add a python new example that fetches the list of services
8825         from the system bus.
8826         
8827 2004-05-27  Seth Nickell  <seth@gnome.org>
8828
8829         * python/dbus.py:
8830         * python/dbus_bindings.pyx.in:
8831
8832         Fix failure to notify that a signal was not handled,
8833         resulted in hung functions.
8834         
8835 2004-05-25  Colin Walters  <walters@redhat.com>
8836
8837         * tools/dbus-monitor.c (main): Monitor all types of messages.
8838
8839 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8840
8841         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8842         which unregisters the object path and disposes the handler.
8843
8844 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8845  
8846         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8847          
8848         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8849         operands to && so we call dbus_message_iter_next () for the last
8850         argument also.
8851
8852 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8853
8854         * dbus/dbus-object-tree.c
8855         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8856         children even if the requested path isn't registered.
8857         (object_tree_test_iteration): test object_tree_list_registered.
8858
8859         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8860         it to 0.
8861         
8862 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8863
8864         * doc/TODO: Remove resolved items.
8865
8866         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8867         field.
8868         
8869         * bus/connection.c (bus_connections_expect_reply): Enforce the
8870         per-connection limit on pending replies.
8871         
8872         Patch from Jon Trowbridge <trow@ximian.com>:
8873  
8874         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8875         up a watch that triggers a config reload when one end of the pipe
8876         becomes readable.
8877         (signal_handler): Instead of doing the config reload in our SIGHUP
8878         handler, just write to the reload pipe and let the associated
8879         watch handle the reload when control returns to the main loop.
8880  
8881         * bus/driver.c (bus_driver_handle_reload_config): Added.
8882         Implements a ReloadConfig method for requesting a configuration
8883         file reload via the bus driver.
8884  
8885 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8886
8887         * HACKING: Updated release instructions concerning the wiki page.
8888
8889 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8890
8891         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8892         filter against auth->allowed_mechs; we only add allowed mechs in
8893         record_mechanisms().
8894  
8895         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8896         ALLOWED_MECHS to auth-script format so we can set the list of
8897         allowed mechanisms.
8898  
8899         * data/auth/client-out-of-mechanisms.auth-script: New test to
8900         check client disconnects when it is out of mechanisms to try.
8901  
8902         * dbus/dbus-auth.c (process_command): Remove check for lines
8903         longer that 1 MB; we only buffer up maximum 16 kB.
8904  
8905         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8906         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8907         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8908         assume there might be unused bytes.
8909  
8910         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8911         client-out-of-mechs, it is handled in process_reject(). Move check
8912         for max failures to send_rejected(), as it's a server-only thing.
8913
8914         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8915         send_auth(), send_data(), send_rejected(), send_error(),
8916         send_ok(), send_begin() and send_cancel().
8917
8918 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8919
8920         Remove base64 encoding, replace with hex encoding. Original patch
8921         from trow@ximian.com, added error handling.
8922
8923         * dbus/dbus-string.c (_dbus_string_base64_encode)
8924         (_dbus_string_base64_decode): Remove.
8925         (_dbus_string_hex_decode): Add end_return argument so we can
8926         distinguish between OOM and invalid hex encoding.
8927         (_dbus_string_test): Remove base64 tests and add test case for
8928         invalid hex.
8929
8930         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8931         Replace base64 with hex.
8932
8933         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8934         for invalid hex encoded data in auth protocol.
8935
8936 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8937
8938         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8939         leak.
8940
8941 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8942
8943         * mono/dbus-sharp.dll.config.in: Added for GAC
8944         * mono/dbus-sharp.snk: Added for GAC
8945         * mono/Assembly.cs.in: Added for GAC
8946         * mono/Makefile.am: Changes for GAC installation        
8947         * configure.in: Added refs for dbus-sharp.dll.config.in and
8948         Assembly.cs.in. More fixes for mono testing
8949         * mono/example/Makefile.am: Changed var to CSC
8950         * Makefile.am: Changed flag name to DBUS_USE_CSC
8951
8952 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8953
8954         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8955         * mono/doc/*: Added documentation framework
8956         * configure.in: Added monodoc check
8957         * README: Added description of mono configure flags
8958
8959 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8960
8961         * doc/dbus-specification.xml: Added a "Required" column to the 
8962         header fields table and changed the "zero or more" verbage in
8963         the above paragraph to read "The header must contain the required 
8964         named header fields and zero or more of the optional named header 
8965         fields".
8966         * test/data/invalid-messages/*.message: Added the required PATH 
8967         named header field to the tests so that they don't fail on 
8968         'Missing path field'
8969
8970 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8971
8972         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8973         the stack by implicitly defining variable and parameter types and
8974         removing the hack of defining C pointers as python objects and later
8975         casting them.
8976
8977 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8978
8979         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8980
8981 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8982
8983         * mono/DBusType/Dict.cs: Handle empty dicts
8984         * mono/DBusType/Array.cs: Handle empty arrays
8985         * mono/Arguments.cs: Handle empty arguments
8986
8987 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8988
8989         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8990         field
8991
8992 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8993
8994         * test/data/valid-messages/standard-*.message: Update message
8995         test scripts to new header field names.
8996
8997 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8998
8999         * test/break-loader.c (randomly_do_n_things): tracked down buffer
9000         overflow to times_we_did_each_thing array which would chop off the
9001         first character of the failure_dir string. Increased the size of
9002         the array to 7 to reflect the number of random mutation functions
9003         we have.
9004
9005 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
9006
9007         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
9008         unix_server->watch here, it is unreffed in disconnect.
9009         (_dbus_server_new_for_tcp_socket): convert NULL host to
9010         "localhost" here so we don't append NULL to address.
9011         
9012         * dbus/dbus-server.c (_dbus_server_test): Add test case for
9013         various addresses, including tcp with no explicit host.
9014
9015 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9016
9017         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9018         fix incorrect setting of .name_offset in the HeaderField (it was
9019         off by two bytes, positioned right after the name and typecode)
9020
9021         * bus/bus.c (bus_context_new, bus_context_unref): test before
9022         calling dbus_server_free_data_slot and _dbus_user_database_unref
9023         in case of an error.
9024
9025         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9026         by libdbus-gtool.
9027
9028 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9029
9030         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9031         _dbus_poll() instead of select().
9032
9033 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9034
9035         * bus/main.c (signal_handler): Reload the configuration files
9036         on SIGHUP.
9037         (main): Set up our SIGHUP handler.
9038
9039         * bus/bus.c (struct BusContext): Store the config file, user and
9040         fork flag in the BusContext.
9041         (process_config_first_time_only): Added.  Contains the code
9042         (previously in bus_context_new) for setting up the BusContext from
9043         the BusConfigParser that should only be run the first time the
9044         config files are read.
9045         (process_config_every_time): Added.  Contains the code (previously
9046         in bus_context_new) for setting up the BusContext from the
9047         BusConfigParser that should be run every time the config files are
9048         read.
9049         (load_config): Added.  Builds a BusConfigParser from the config
9050         files and passes the resulting structure off to
9051         process_config_first_time_only (assuming this is the first time)
9052         and process_config_every_time.
9053         (bus_context_new): All of the config-related code has been moved
9054         to process_config_first_time_only and process_config_every_time.
9055         Now this function just does the non-config-related initializations
9056         and calls load_config.
9057         (bus_context_reload_config): Added.
9058
9059 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9060
9061         * bus/driver.c (bus_driver_handle_get_service_owner):
9062         implement a GetServiceOwner method.
9063         * doc/dbus-specification.xml: document it.
9064         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9065         
9066         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9067         implement, using the bus GetServiceOwner method.
9068
9069         * test/glib/test-dbus-glib.c:
9070         use dbus_gproxy_new_for_service_owner so that we can receive the
9071         signal. 
9072
9073 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9074
9075         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9076         dbus/dbus-message.c, dbus/dbus-protocol.h
9077         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9078
9079         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9080         dbus/dbus-message.c, dbus/dbus-protocol.h
9081         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9082
9083         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9084         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9085         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9086
9087         * doc/dbus-specification.xml (Header Fields Table):
9088         s/SERVICE/DESTINATION
9089         s/SENDER_SERVICE/SENDER
9090
9091
9092 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9093
9094         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9095         a few seconds.
9096
9097 2004-04-13  Michael Meeks  <michael@ximian.com>
9098
9099         * glib/dbus-gobject.c (handle_introspect): split out
9100         (introspect_properties): this.
9101         (handle_introspect): implement this.
9102
9103         * test/glib/Makefile.am: use the absolute path so the bus
9104         daemon's chdir ("/") doesn't kill us dead.
9105
9106         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9107
9108 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9109
9110         * bus/config-parser.c (struct BusConfigParser): Added
9111         included_files field.
9112         (seen_include): Added.  Checks whether or not a file has already
9113         been included by any parent BusConfigParser.
9114         (bus_config_parser_new): Copy the parent's included_files.
9115         (include_file): Track which files have been included, and fail on
9116         circular inclusions.
9117         (process_test_valid_subdir): Changed printf to report if we are
9118         testing valid or invalid conf files.
9119         (all_are_equiv): Changed printf to be a bit clearer about
9120         what we are actually doing.
9121         (bus_config_parser_test): Test invalid configuration files.
9122
9123 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9124
9125         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9126         argument.  If non-null, the newly-constructed BusConfigParser will
9127         be initialized with the parent's BusLimits instead of the default
9128         values.
9129         (include_file): When including a config file, pass in
9130         the current parser as the parent and then copy the BusLimits
9131         from the included BusConfigParser pack to the current parser.
9132         (process_test_valid_subdir): Renamed from process_test_subdir.
9133         (process_test_equiv_subdir): Added.  Walks through a directory,
9134         descending into each subdirectory and loading the config files
9135         it finds there.  If any subdirectory contains two config files
9136         that don't produce identical BusConfigParser structs, fail.
9137         For now, the BusConfigParser's BusPolicies are not compared.
9138         (bus_config_parser_test): Call both process_test_valid_subdir and
9139         process_test_equiv_subdir.
9140
9141         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9142         argument and pass it along to the call to bus_config_parser_new.
9143         Also made a few small changes to allow this code to compile.
9144
9145         * bus/config-loader-expat.c (bus_config_load): Take a parent
9146         argument and pass it along to the call to bus_config_parser_new.
9147
9148         * bus/bus.c (bus_context_new): Load the config file
9149         with a NULL parent argument.
9150
9151 2004-03-29  Michael Meeks  <michael@ximian.com>
9152
9153         * glib/dbus-gobject.c (introspect_properties): split
9154         out, fix mangled 'while' flow control.
9155         (introspect_signals): implement.
9156         (handle_introspect): update.
9157
9158 2004-03-29  Michael Meeks  <michael@ximian.com>
9159
9160         * glib/dbus-gobject.c (set_object_property): split out / 
9161         re-work, use the property type, and not the message type(!)
9162         (get_object_property): ditto.
9163
9164         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9165         (dbus_gvalue_marshal): make this code re-usable, needed
9166         for signals too, also on both proxy and server side.
9167         Re-write for more efficiency / readability.
9168
9169 2004-03-29  Michael Meeks  <michael@ximian.com>
9170
9171         * dbus/dbus-message.c
9172         (dbus_message_new_error_printf): impl.
9173
9174         * dbus/dbus-connection.c
9175         (dbus_connection_unregister_object_path): fix warning.
9176
9177         * configure.in: fix no-mono-installed situation.
9178
9179 2004-03-27  Havoc Pennington  <hp@redhat.com>
9180
9181         Patch from Timo Teräs:
9182         
9183         * tools/dbus-send.c (main): if --print-reply, assume type is
9184         method call; support boolean type args
9185         
9186         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9187         bunch of memleak and logic bugs
9188         
9189 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9190
9191         * mono/Arguments.cs:
9192         * mono/Introspector.cs:
9193         * mono/Handler.cs:
9194         * mono/InterfaceProxy.cs:
9195         * mono/Message.cs
9196         * mono/ProxyBuilder.cs:
9197         * mono/Service.cs:
9198         Added InterfaceProxy class to avoid building proxies for every
9199         object.
9200
9201         * dbus-message.h:
9202         * dbus-message.c (dbus_message_append_args_valist)
9203         (dbus_message_iter_get_object_path)
9204         (dbus_message_iter_get_object_path_array)
9205         (dbus_message_iter_append_object_path)
9206         (dbus_message_iter_append_object_path_array):
9207         Added object_path iter functions to handle OBJECT_PATH arguments
9208         
9209 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9210
9211         First checkin of mono bindings.
9212         * configure.in:
9213         * Makefile.am:
9214         Build stuff for the bindings
9215         * dbus-sharp.pc.in: Added for pkgconfig
9216         
9217 2004-03-21  Havoc Pennington  <hp@redhat.com>
9218
9219         * test/test-service.c (main): remove debug spew
9220
9221 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9222
9223         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9224         arrays
9225
9226         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9227         (dbus_message_iter_init_array_iterator)
9228         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9229         indicate whether the iterator is empty
9230
9231         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9232         warnings
9233
9234 2004-03-19  Havoc Pennington  <hp@redhat.com>
9235
9236         * NEWS: 0.21 updates
9237
9238         * configure.in: 0.21
9239
9240         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9241         
9242         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9243         you don't need pyrex to make dist
9244
9245         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9246         sources; run moc
9247         
9248 2004-03-18  Richard Hult  <richard@imendio.com>
9249
9250         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9251         (dbus_message_set_auto_activation): Add doxygen docs.
9252
9253 2004-03-16  Richard Hult  <richard@imendio.com>
9254
9255         * bus/activation.c: (bus_activation_service_created),
9256         (bus_activation_send_pending_auto_activation_messages),
9257         (bus_activation_activate_service):
9258         * bus/activation.h:
9259         * bus/dispatch.c: (bus_dispatch),
9260         (check_nonexistent_service_auto_activation),
9261         (check_service_auto_activated),
9262         (check_segfault_service_auto_activation),
9263         (check_existent_service_auto_activation), (bus_dispatch_test):
9264         * bus/driver.c: (bus_driver_handle_activate_service):
9265         * bus/services.c: (bus_registry_acquire_service):
9266         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9267         (dbus_message_get_auto_activation):
9268         * dbus/dbus-message.h:
9269         * dbus/dbus-protocol.h: Implement auto-activation.
9270         
9271         * doc/dbus-specification.xml: Add auto-activation to the spec.
9272
9273 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9274
9275         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9276         fix a bug with CUSTOM types.
9277
9278         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9279         a unit test for this bug (used to fail).
9280
9281 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9282
9283         * bus/activation.c:
9284         (babysitter_watch_callback): notify all pending activations waiting for
9285           the same exec that the activation failed.
9286         (bus_activation_activate_service): shortcut the activation if we 
9287           already waiting for the same executable to start up.
9288
9289 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9290
9291         * bus/activation.c: 
9292         - Added service file reloading. 
9293           Each service files directory is kept in an hash table in 
9294           BusActivation and each BusActivationEntry knows what .service-file it
9295           was read from. So when you try to activate a service the bus will 
9296           check if it's been updated, removed or if new .service-files has 
9297           been installed.
9298         - Test code at the bottom for the service file reloading.
9299         * bus/test-main.c: (main):
9300         * bus/test.h:
9301         - added service reloading test.
9302         * dbus/dbus-sysdeps.c: 
9303         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9304
9305 2004-03-08  Michael Meeks  <michael@ximian.com>
9306
9307         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9308         bail immediately if disconnected, to avoid busy loop.
9309
9310         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9311         cleanup cut/paste/inefficiency.
9312
9313 2004-03-01  David Zeuthen  <david@fubar.dk>
9314
9315         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9316         bug where args were used twice. This bug resulted in a segfault
9317         on a Debian/PPC system when starting the messagebus daemon. Include
9318         dbus-sysdeps.h for DBUS_VA_COPY
9319
9320         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9321
9322         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9323         appropriate va_copy implementation. From GLib
9324         
9325 2004-02-24  Joe Shaw  <joe@ximian.com>
9326
9327         * bus/services.c (bus_registry_acquire_service): We need to pass
9328         in the service name to dbus_set_error() to prevent a crash.
9329
9330 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9331
9332         * AUTHORS: Reveal my True identity.
9333
9334 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9335
9336         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9337         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9338
9339 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9340
9341         * doc/TODO: Added not about better error check of configuration files.
9342
9343 2003-12-02  Richard Hult  <richard@imendio.com>
9344
9345         * Update AFL version to 2.0 throughout the source files to reflect
9346         the update that was done a while ago.
9347
9348 2003-12-02  Richard Hult  <richard@imendio.com>
9349
9350         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9351         wrote_dict_key to FALSE on the iter that the dict is appended to,
9352         just like when appending other types. Fixes a bug where a dict
9353         couldn't be put inside a dict.
9354         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9355         (message_iter_test, _dbus_message_test): Add test case for dict
9356         inside dict.
9357
9358 2003-12-01  David Zeuthen  <david@fubar.dk>
9359
9360         * python/dbus.py: Add the actual message when calling the reciever
9361         of a signal such that parameters can be inspected. Add the method
9362         remove_signal_receiver
9363         
9364 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9365
9366         * bus/*.[ch]:
9367         * dbus/*.[ch]:
9368         * glib/*.[ch]: Made ref functions return the pointer
9369
9370 2003-11-25  Zack Rusin  <zack@kde.org>
9371
9372         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9373
9374         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9375         wrappers,
9376
9377         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9378         the Integrator and to better fit with the server,
9379
9380 2003-11-24  Zack Rusin  <zack@kde.org>
9381
9382         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9383         the integrator handles it now
9384
9385         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9386         since QTimer wasn't really meant to be used the way DBusTimeout is
9387
9388 2003-11-24  Zack Rusin  <zack@kde.org>
9389
9390         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9391         Integrator class which integrates D-BUS with the Qt event loop,
9392
9393         * qt/connection.h, qt/connection.cpp: Move all the code which
9394         was dealing with D-BUS integration to the Integrator class,
9395         and start using Integrator,
9396
9397 2003-11-23  Zack Rusin  <zack@kde.org>
9398
9399         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9400         wrapper
9401
9402         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9403         switching namespaces to DBusQt, reworking the class,
9404
9405         * Makefile.cvs: switching dependencies so that it matches KDE 
9406         schematics,
9407         
9408         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9409         the library
9410
9411 2003-11-19  Havoc Pennington  <hp@redhat.com>
9412
9413         * NEWS: update
9414
9415         * configure.in: bump version to 0.20
9416
9417         * configure.in (have_qt): add yet another place to look for qt
9418         (someone hand trolltech a .pc file...)
9419
9420 2003-11-01  Havoc Pennington  <hp@redhat.com>
9421
9422         * doc/dbus-specification.xml: add state machine docs on the auth
9423         protocol; just a first draft, I'm sure it's wrong.      
9424
9425 2003-10-28  David Zeuthen  <david@fubar.dk>
9426
9427         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9428         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9429         
9430 2003-10-28  Havoc Pennington  <hp@redhat.com>
9431
9432         * dbus/dbus-message.c (get_next_field): delete unused function
9433
9434 2003-10-28  Havoc Pennington  <hp@redhat.com>
9435
9436         * bus/expirelist.c (do_expiration_with_current_time): detect
9437         failure of the expire_func due to OOM
9438
9439         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9440
9441         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9442         NoReply error that's now created by the bus when the service exits
9443
9444 2003-10-28  Havoc Pennington  <hp@redhat.com>
9445
9446         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9447         tests for set_path, set_interface, set_member, etc.
9448
9449         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9450
9451         * dbus/dbus-message.c (set_string_field): always just delete and
9452         re-append the field; accept NULL for deletion
9453         (re_align_fields_recurse): reimplement
9454         
9455 2003-10-26  Havoc Pennington  <hp@redhat.com>
9456
9457         * dbus/dbus-connection.c: fix docs to properly describe the
9458         disconnected message
9459         (_dbus_connection_notify_disconnected): remove this function; 
9460         we can't synchronously add the disconnected message, we have to 
9461         do it after we've queued any remaining real messages
9462         (_dbus_connection_get_dispatch_status_unlocked): queue the
9463         disconnect message only if the transport has finished queueing all
9464         its real messages and is disconnected.
9465         (dbus_connection_disconnect): update the dispatch status here
9466
9467 2003-10-22  Havoc Pennington  <hp@redhat.com>
9468
9469         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9470
9471         * bus/connection.c (bus_transaction_send_from_driver): set the
9472         destination to the connection's base service
9473
9474 2003-10-20  Havoc Pennington  <hp@redhat.com>
9475
9476         hmm, make check is currently not passing.
9477         
9478         * doc/dbus-specification.xml: add requirement that custom type
9479         names follow the same rules as interface names.
9480
9481         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9482         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9483         'map'
9484
9485         * doc/dbus-specification.xml: update type codes to match
9486         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9487         CUSTOM. Add type OBJECT_PATH to the spec.
9488
9489 2003-10-17  Havoc Pennington  <hp@redhat.com>
9490
9491         * bus/driver.c (create_unique_client_name): use "." as separator
9492         in base service names instead of '-'
9493
9494         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9495         byte at the end of the string
9496
9497         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9498         optimization macros since string validation seems to be a slow
9499         point.
9500         
9501         * doc/dbus-specification.xml: restrict valid
9502         service/interface/member/error names. Add test suite code for the
9503         name validation.
9504
9505         * dbus/dbus-string.c: limit service/interface/member/error names 
9506         to [0-9][A-Z][a-z]_
9507
9508         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9509         format arg to verbose spew
9510
9511         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9512         memory, return instead of g_error
9513
9514         * test/test-service.c (path_message_func): support emitting a
9515         signal on request
9516
9517         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9518         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9519         assuming the activation bus was the session bus so that services
9520         started manually will still register.
9521         (init_connections_unlocked): fix so that in OOM situation we get
9522         the same semantics when retrying the function
9523         
9524         * test/test-service.c (main): change to use path registration, to
9525         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9526         than DBUS_BUS_SESSION
9527
9528 2003-10-16  Havoc Pennington  <hp@redhat.com>
9529
9530         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9531
9532         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9533         coverage of the tests
9534         (coverage-report.txt): don't move the .da and .bbg files around
9535
9536 2003-10-16  Havoc Pennington  <hp@redhat.com>
9537
9538         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9539         to put there
9540
9541 2003-10-16  Havoc Pennington  <hp@redhat.com>
9542
9543         * bus/connection.c (bus_pending_reply_expired): either cancel or
9544         execute, not both
9545         (bus_connections_check_reply): use unlink, not remove_link, as we
9546         don't want to free the link; fixes double free mess
9547
9548         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9549         where no reply was received
9550
9551         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9552         fix a refcount leak
9553
9554         * bus/signals.c (match_rule_matches): add special cases for the
9555         bus driver, so you can match on sender/destination for it.
9556
9557         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9558         DBUS_PRINT_BACKTRACE is set
9559
9560         * dbus/dbus-internals.c: add pid to assertion failure messages
9561
9562         * dbus/dbus-connection.c: add message type code to the debug spew
9563
9564         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9565         sender=foo not service=foo
9566
9567         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9568         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9569         DBUS_ACTIVATION_ADDRESS instead
9570
9571         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9572         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9573
9574         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9575         context struct
9576
9577         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9578         (dbus_message_iter_get_object_path_array): new function (half
9579         finished, disabled for the moment)
9580         
9581         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9582         DBUS_MESSAGE_TYPE_ERROR
9583
9584         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9585         avoid redirecting stderr to /dev/null
9586         (babysit): close stdin if not doing the "exit_with_session" thing
9587
9588         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9589         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9590         stdout/stdin, so things don't get confused
9591         
9592         * bus/system.conf.in: fix to allow replies, I modified .conf
9593         instead of .conf.in again.
9594
9595 2003-10-14  David Zeuthen  <david@fubar.dk>
9596
9597         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9598         argtype to arg_type when raising unknown arg type exception.
9599         Changed type list to reflect the changes in dbus-protocol.h so 
9600         the bindings actually work.
9601
9602 2003-10-14  Havoc Pennington  <hp@redhat.com>
9603
9604         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9605         to have a bug keeping it from outputting the .da files sometimes
9606         (string_get_string): don't append garbage nul bytes to the string.
9607
9608 2003-10-15  Seth Nickell  <seth@gnome.org>
9609
9610         * python/Makefile.am:
9611
9612         Include dbus_h_wrapper.h in the dist tarball.
9613
9614 2003-10-14  Havoc Pennington  <hp@redhat.com>
9615
9616         * bus/bus.c (bus_context_check_security_policy): revamp this to
9617         work more sanely with new policy-based requested reply setup
9618
9619         * bus/connection.c (bus_transaction_send_from_driver): set bus
9620         driver messages as no reply
9621
9622         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9623         requested_reply attribute on allow/deny rules
9624
9625         * bus/system.conf: add <allow requested_reply="true"/>
9626
9627         * bus/driver.c (bus_driver_handle_message): fix check for replies
9628         sent to the bus driver, which was backward. How did this ever work
9629         at all though? I think I'm missing something.
9630
9631         * dbus/dbus-message.c (decode_header_data): require error and
9632         method return messages to have a reply serial field to be valid
9633         (_dbus_message_loader_queue_messages): break up this function;
9634         validate that reply serial and plain serial are nonzero; 
9635         clean up the OOM/error handling.
9636         (get_uint_field): don't return -1 from this
9637         (dbus_message_create_header): fix signed/unsigned bug
9638
9639         * bus/connection.c (bus_connections_expect_reply): save serial of
9640         the incoming message, not reply serial
9641
9642 2003-10-14  Havoc Pennington  <hp@redhat.com>
9643
9644         * bus/connection.c: implement pending reply tracking using
9645         BusExpireList
9646
9647         * bus/bus.c (bus_context_check_security_policy): verify that a
9648         reply is pending in order to allow a reply to be sent. Deny 
9649         messages of unknown type.
9650
9651         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9652
9653         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9654         (bus_context_get_reply_timeout): new
9655
9656 2003-10-13  Seth Nickell  <seth@gnome.org>
9657
9658         * python/Makefile.am:
9659
9660         Pass "make distcheck": remove a couple files from DIST_FILES
9661         that weren't included in the final version.
9662
9663 2003-10-12  Havoc Pennington  <hp@pobox.com>
9664
9665         Added test code that 1) starts an actual bus daemon and 2) uses
9666         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9667         more testing possible, but this is the basic framework.
9668         
9669         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9670         empty proxy lists from the proxy list hash
9671
9672         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9673         couple of return_if_fail checks
9674
9675         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9676         to allocate, so everything is cleared to NULL as it should be.
9677
9678         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9679         source as data to dbus_connection_set_timeout_functions() as the 
9680         timeout functions expected
9681
9682         * test/glib/run-test.sh: add a little script to start up a message
9683         bus and run tests using it
9684
9685         * tools/dbus-launch.1: updates
9686
9687         * tools/dbus-launch.c (main): add --config-file option
9688
9689         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9690         that could never be reached.
9691
9692         * dbus/dbus-message.c (dbus_message_new_method_return) 
9693         (dbus_message_new_error, dbus_message_new_signal): set the
9694         no-reply-expected flag on all these. Redundant, but may
9695         as well be consistent.
9696
9697 2003-10-11  Havoc Pennington  <hp@pobox.com>
9698
9699         * test/decode-gcov.c (function_solve_graph): make broken block
9700         graph a nonfatal error since it seems to be broken. Need to debug
9701         this.
9702
9703         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9704         can't just check type > INVALID < LAST anymore
9705
9706         * dbus/dbus-message.c (dbus_message_get_signature): new function
9707         (dbus_message_has_signature): new function
9708         (struct DBusMessage): add signature field (right now it isn't sent
9709         over the wire, just generated on the fly)
9710         (dbus_message_copy): copy the signature, and init strings to
9711         proper length to avoid some reallocs
9712         (dbus_message_iter_init_array_iterator): return void, since it
9713         can't fail
9714         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9715         (_dbus_message_loader_queue_messages): add silly temporary hack to
9716         fill in message->signature on load
9717
9718         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9719         characters, so they are relatively human-readable.
9720
9721 2003-10-11  Havoc Pennington  <hp@pobox.com>
9722
9723         * dbus/dbus-message.c (_dbus_message_test): add more test
9724         coverage, but #if 0 for now since they uncover a bug 
9725         not fixed yet; I think in re_align_field_recurse()
9726         (re_align_field_recurse): add FIXME about broken assertion
9727
9728         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9729
9730         * bus/connection.c: share a couple code bits with expirelist.c
9731
9732         * bus/expirelist.h, bus/expirelist.c: implement a generic
9733         expire-items-after-N-seconds facility, was going to share between
9734         expiring connections and replies, decided not to use for expiring
9735         connections for now.
9736
9737         * COPYING: include AFL 2.0 (still need to change all the file headers)
9738
9739 2003-10-09  Havoc Pennington  <hp@redhat.com>
9740
9741         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9742         gcc 3.3. Not that we do anything about it yet.
9743
9744         * bus/signals.c (bus_match_rule_parse): impose max length on the
9745         match rule text
9746
9747         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9748
9749 2003-10-09  Havoc Pennington  <hp@redhat.com>
9750
9751         Make matching rules theoretically work (add parser).
9752         
9753         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9754         the case where destination is explicitly specified as bus driver
9755         and someone else is eavesdropping.
9756         
9757         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9758         definition of eavesdropping and assertion
9759
9760         * tools/dbus-send.c (main): use dbus_message_type_from_string
9761
9762         * bus/signals.c (bus_match_rule_parse): implement
9763
9764         * dbus/dbus-message.c (dbus_message_type_from_string): new
9765
9766         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9767
9768 2003-10-02  Havoc Pennington  <hp@pobox.com>
9769
9770         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9771         dbus_gproxy_oneway_call
9772
9773         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9774         (dbus_server_setup_with_g_main): fix to allow calling them more
9775         than once on the same args
9776         (dbus_bus_get_with_g_main): new function
9777
9778 2003-10-02  Havoc Pennington  <hp@redhat.com>
9779
9780         * doc/dbus-tutorial.xml: write some stuff
9781
9782 2003-09-29  Havoc Pennington  <hp@pobox.com>
9783
9784         * configure.in: split checks for Doxygen from XML docs, check for
9785         xmlto
9786
9787         * doc/Makefile.am: XML-ify all the docs, and add a blank
9788         dbus-tutorial.xml
9789
9790 2003-09-29  Havoc Pennington  <hp@pobox.com>
9791
9792         * Merge dbus-object-names branch. To see the entire patch 
9793         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9794         it's huuuuge though.
9795         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9796         
9797 2003-09-28  Havoc Pennington  <hp@pobox.com>
9798
9799         * HACKING: update to reflect new server
9800
9801 2003-09-26  Seth Nickell  <seth@gnome.org>
9802
9803         * python/dbus.py:
9804         * python/examples/example-signals.py:
9805
9806         Start implementing some notions of signals. The API
9807         is really terrible, but they sort of work (with the
9808         exception of being able to filter by service, and to
9809         transmit signals *as* a particular service). Need to
9810         figure out how to make messages come from the service
9811         we registered :-(
9812         
9813         * python/dbus_bindings.pyx.in:
9814
9815         Removed duplicate message_handler callbacks.
9816         
9817 2003-09-25  Havoc Pennington  <hp@redhat.com>
9818
9819         * bus/session.conf.in: fix my mess
9820
9821 2003-09-25  Havoc Pennington  <hp@pobox.com>
9822
9823         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9824
9825 2003-09-25  Seth Nickell  <seth@gnome.org>
9826
9827         * python/examples/example-service.py:
9828
9829         Johan notices complete wrong code in example-service, but
9830         completely wrong in a way that works exactly the same (!).
9831         Johan is confused, how could this possibly work? Example
9832         code fails to serve purpose of making things clear.
9833         Seth fixes.
9834
9835 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9836
9837         * doc/dbus-specification.sgml: don't require header fields
9838         to be 4-byte aligned and specify that fields should be
9839         distinguished from padding by the fact that zero is not
9840         a valid field name.
9841         
9842         * doc/TODO: remove re-alignment item and add item to doc
9843         the OBJECT_PATH type.
9844         
9845         * dbus/dbus-message.c:
9846         (HeaderField): rename the original member to value_offset
9847         and introduce a name_offset member to keep track of where
9848         the field actually begins.
9849         (adjust_field_offsets): remove.
9850         (append_int_field), (append_uint_field),
9851         (append_string_field): don't align the start of the header
9852         field to a 4-byte boundary.
9853         (get_next_field): impl finding the next marhsalled field
9854         after a given field.
9855         (re_align_field_recurse): impl re-aligning a number of
9856         already marshalled fields.
9857         (delete_field): impl deleting a field of any type and
9858         re-aligning any following fields.
9859         (delete_int_or_uint_field), (delete_string_field): remove.
9860         (set_int_field), (set_uint_field): no need to re-check
9861         that we have the correct type for the field.
9862         (set_string_field): ditto and impl re-aligning any
9863         following fields.
9864         (decode_header_data): update to take into account that
9865         the fields aren't 4-byte aligned any more and the new
9866         way to distinguish padding from header fields. Also,
9867         don't exit when there is too much header padding.
9868         (process_test_subdir): print the directory.
9869         (_dbus_message_test): add test to make sure a following
9870         field is re-aligned correctly after field deletion.
9871         
9872         * dbus/dbus-string.[ch]:
9873         (_dbus_string_insert_bytes): rename from insert_byte and
9874         allow the insert of multiple bytes.
9875         (_dbus_string_test): test inserting multiple bytes.
9876
9877         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9878         warning note to docs about having to re-align any
9879         marshalled values following the string.
9880         
9881         * dbus/dbus-message-builder.c:
9882         (append_string_field), (_dbus_message_data_load):
9883         don't align the header field.
9884         
9885         * dbus/dbus-auth.c: (process_test_subdir): print the
9886         directory.
9887         
9888         * test/break-loader.c: (randomly_add_one_byte): upd. for
9889         insert_byte change.
9890         
9891         * test/data/invalid-messages/bad-header-field-alignment.message:
9892         new test case.
9893         
9894         * test/data/valid-messages/unknown-header-field.message: shove
9895         a dict in the unknown field.
9896
9897 2003-09-25  Seth Nickell  <seth@gnome.org>
9898
9899         * python/dbus.py:
9900         * python/dbus_bindings.pyx.in:
9901
9902         Handle return values.
9903         
9904         * python/examples/example-client.py:
9905         * python/examples/example-service.py:
9906
9907         Pass back return values from the service to the client.
9908         
9909 2003-09-24  Seth Nickell  <seth@gnome.org>
9910
9911         * python/dbus.py:
9912
9913         Connect Object methods (when you are sharing an object) up... pass
9914         in a list of methods to be shared. Sharing all the methods just
9915         worked out too weird. You can now create nice Services over the
9916         DBus in Python. :-)
9917         
9918         * python/dbus_bindings.pyx.in:
9919
9920         Keep references to user_data tuples passed into C functions so 
9921         Python doesn't garbage collect on us.
9922
9923         Implement MethodReturn and Error subclasses of Message for creating
9924         DBusMessage's of those types.
9925         
9926         * python/examples/example-client.py:
9927         * python/examples/example-service.py:
9928
9929         Simple example code showing both how create DBus services and objects,
9930         and how to use them.
9931
9932 2003-09-23  Havoc Pennington  <hp@pobox.com>
9933
9934         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9935
9936 2003-09-23  Havoc Pennington  <hp@redhat.com>
9937
9938         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9939         (dbus_gproxy_disconnect_signal): implement
9940         (dbus_gproxy_manager_remove_signal_match): implement
9941         (dbus_gproxy_manager_add_signal_match): implement
9942         (dbus_gproxy_oneway_call): implement
9943
9944 2003-09-23  Havoc Pennington  <hp@pobox.com>
9945
9946         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9947         subclass. This means dropping the transparent thread safety of the
9948         proxy; you now need a separate proxy per-thread, or your own
9949         locking on the proxy. Probably right anyway.
9950         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9951
9952 2003-09-22  Havoc Pennington  <hp@redhat.com>
9953
9954         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9955
9956 2003-09-21  Seth Nickell  <seth@gnome.org>
9957
9958         First checkin of the Python bindings.
9959         
9960         * python/.cvsignore:
9961         * python/Makefile.am:
9962         * python/dbus_bindings.pyx.in:
9963         * python/dbus_h_wrapper.h:
9964
9965         Pieces for Pyrex to operate on, building a dbus_bindings.so
9966         python module for low-level access to the DBus APIs.
9967         
9968         * python/dbus.py:
9969
9970         High-level Python module for accessing DBus objects.
9971
9972         * configure.in:
9973         * Makefile.am:
9974
9975         Build stuff for the python bindings.
9976
9977         * acinclude.m4:
9978
9979         Extra macro needed for finding the Python C header files.
9980
9981 2003-09-21  Havoc Pennington  <hp@pobox.com>
9982
9983         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9984         implementing the proxy manager, didn't get very far.
9985
9986         * dbus/dbus-bus.c (dbus_bus_add_match): new
9987         (dbus_bus_remove_match): new
9988
9989         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9990         path_name argument; adjust the other not-yet-implemented 
9991         gproxy constructors to be what I think they should be.
9992
9993 2003-09-21  Havoc Pennington  <hp@pobox.com>
9994
9995         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9996         by default for message bus connections.
9997
9998         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9999         exit_on_disconnect flag is set and we process the disconnected
10000         signal.
10001         (dbus_connection_set_exit_on_disconnect): new function
10002
10003 2003-09-21  Havoc Pennington  <hp@pobox.com>
10004
10005         Get matching rules mostly working in the bus; only actually
10006         parsing the rule text remains. However, the client side of
10007         "signal connections" hasn't been started, this patch is only the
10008         bus side.
10009         
10010         * dbus/dispatch.c: fix for the matching rules changes
10011         
10012         * bus/driver.c (bus_driver_handle_remove_match)
10013         (bus_driver_handle_add_match): send an ack reply from these
10014         method calls
10015
10016         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
10017         arguments, reported by Seth Nickell
10018
10019         * bus/config-parser.c (append_rule_from_element): support
10020         eavesdrop=true|false attribute on policies so match rules 
10021         can be prevented from snooping on the system bus.
10022
10023         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10024         and "destination" in attribute names; fix some docs bugs; 
10025         add eavesdrop=true|false attribute
10026
10027         * bus/driver.c (bus_driver_handle_add_match)
10028         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10029         messages
10030
10031         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10032         rid of broadcast service concept, signals are just always broadcast
10033
10034         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10035         mostly implement matching rules stuff (currently only exposed as signal
10036         connections)
10037
10038 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10039
10040         * doc/dbus-specification.sgml: Change the header field name
10041         to be an enum and update the rest of the spec to reference
10042         the fields using the conventinal name.
10043
10044         * dbus/dbus-protocol.h: update to reflect the spec.
10045
10046         * doc/TODO: add item to remove the 4 byte alignment requirement.
10047         
10048         * dbus/dbus-message.c: Remove the code to generalise the
10049         header/body length and serial number header fields as named
10050         header fields so we can reference field names using the 
10051         protocol values.
10052         (append_int_field), (append_uint_field), (append_string_field):
10053         Append the field name as a byte rather than four chars.
10054         (delete_int_or_uint_field), (delete_string_field): reflect the
10055         fact that the field name and typecode now occupy 4 bytes instead
10056         of 8.
10057         (decode_string_field), (decode_header_data): update to reflect
10058         protocol changes and move the field specific encoding from
10059         decode_string_field() back into decode_header_data().
10060         
10061         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10062         Add utility to aid debugging.
10063         
10064         * dbus/dbus-message-builder.c:
10065         (append_string_field), (_dbus_message_data_load): Update to
10066         reflect protocol changes; Change the FIELD_NAME directive
10067         to HEADER_FIELD and allow it to take the field's conventional
10068         name rather than the actual value.
10069         
10070         * test/data/*/*.message: Update to use HEADER_FIELD instead
10071         of FIELD_NAME; Always align the header on an 8 byte boundary
10072         *before* updating the header length.
10073
10074 2003-09-15  Havoc Pennington  <hp@pobox.com>
10075
10076         * dbus/dbus-pending-call.c: add the get/set object data
10077         boilerplate as for DBusConnection, etc. Use generic object data
10078         for the notify callback.
10079
10080         * glib/dbus-gparser.c (parse_node): parse child nodes
10081
10082         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10083         
10084         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10085         contain functions shared between the convenience lib and the
10086         installed lib
10087
10088         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10089         -export-symbols-regex to the GLib library
10090
10091         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10092         fix the locking in here, and add a default handler for
10093         Introspect() that just returns sub-nodes.
10094
10095 2003-09-14  Havoc Pennington  <hp@pobox.com>
10096
10097         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10098         rather than gfoo consistent
10099
10100         * glib/dbus-gproxy.h: delete for now, move contents to
10101         dbus-glib.h, because the include files don't work right since we
10102         aren't in the dbus/ subdir.
10103         
10104         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10105         (dbus_gproxy_end_call): finish
10106         (dbus_gproxy_begin_call): finish
10107
10108         * glib/dbus-gmain.c (dbus_set_g_error): new
10109
10110         * glib/dbus-gobject.c (handle_introspect): include information
10111         about child nodes in the introspection
10112
10113         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10114         function to help in implementation of introspection
10115
10116         * dbus/dbus-object-tree.c
10117         (_dbus_object_tree_list_registered_and_unlock): new function
10118
10119 2003-09-12  Havoc Pennington  <hp@pobox.com>
10120
10121         * glib/dbus-gidl.h: add common base class for all the foo_info
10122         types
10123
10124         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10125         similar to kdcop
10126
10127         * test/Makefile.am: try test srcdir -ef . in addition to test
10128         srcdir = ., one of them should work (yeah lame)
10129         
10130         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10131         library
10132         
10133         * glib/dbus-gparser.h: make description_load routines return
10134         NodeInfo* not Parser*
10135
10136         * Makefile.am (SUBDIRS): build test dir after all library dirs
10137
10138         * configure.in: add GTK+ detection
10139
10140 2003-09-07  Havoc Pennington  <hp@pobox.com>
10141
10142         * Make Doxygen contented.
10143
10144 2003-09-07  Havoc Pennington  <hp@pobox.com>
10145
10146         * doc/dbus-specification.sgml: more updates
10147
10148 2003-09-06  Havoc Pennington  <hp@pobox.com>
10149
10150         * doc/dbus-specification.sgml: partial updates
10151
10152         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10153         zillionth time; hopefully I edited the right file this time.
10154
10155         * bus/config-parser.c (append_rule_from_element): support
10156         send_type, send_path, receive_type, receive_path
10157
10158         * bus/policy.c: add message type and path to the list of things
10159         that can be "firewalled"
10160
10161 2003-09-06  Havoc Pennington  <hp@pobox.com>
10162
10163         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10164         (dbus_connection_register_object_path): make this not handle
10165         messages to paths below the given path
10166
10167 2003-09-03  Havoc Pennington  <hp@pobox.com>
10168
10169         * test/glib/Makefile.am: add this with random glib-linked test
10170         programs
10171
10172         * glib/Makefile.am: remove the random test programs from here,
10173         leave only the unit tests
10174
10175         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10176         uscore/javacaps conversion, and fix     
10177         (get_object_property, set_object_property): change to .NET
10178         convention for mapping props to methods, set_FooBar/get_FooBar, 
10179         since one language has such a convention we may as well copy it. 
10180         Plus real methods in either getFooBar or get_foo_bar style won't 
10181         collide with this convention.
10182
10183 2003-09-01  Havoc Pennington  <hp@pobox.com>
10184
10185         * glib/dbus-gparser.c: implement
10186
10187         * glib/dbus-gobject.c: start implementing skeletons support
10188
10189         * configure.in: when disabling checks/assert, also define
10190         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10191
10192 2003-09-01  Havoc Pennington  <hp@pobox.com>
10193
10194         * glib/Makefile.am: rearrange a bunch of files and get "make
10195         check" framework set up
10196
10197 2003-08-31  Havoc Pennington  <hp@pobox.com>
10198
10199         * fix build with --disable-tests
10200
10201 2003-08-30  Havoc Pennington  <hp@pobox.com>
10202
10203         * dbus/dbus-connection.c: purge DBusMessageHandler
10204
10205         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10206         use callbacks everywhere
10207
10208 2003-08-30  Havoc Pennington  <hp@pobox.com>
10209
10210         * test/data/valid-config-files/system.d/test.conf: change to 
10211         root for the user so warnings don't get printed
10212
10213         * dbus/dbus-message.c: add dbus_message_get_path,
10214         dbus_message_set_path
10215         
10216         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10217         dispatching to a path
10218
10219         * dbus/dbus-string.c (_dbus_string_validate_path): add
10220
10221         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10222         (_dbus_marshal_object_path): implement
10223
10224         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10225         to contain the path to the target object
10226         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10227         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10228
10229 2003-08-30  Havoc Pennington  <hp@pobox.com>
10230
10231         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10232
10233 2003-08-29  Havoc Pennington  <hp@pobox.com>
10234
10235         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10236         registered
10237         (struct DBusObjectSubtree): shrink this
10238         a lot, since we may have a lot of them
10239         (_dbus_object_tree_free_all_unlocked): implement
10240         (_dbus_object_tree_dispatch_and_unlock): implement
10241
10242 2003-08-29  Havoc Pennington  <hp@pobox.com>
10243
10244         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10245
10246 2003-08-28  Havoc Pennington  <hp@pobox.com>
10247
10248         purge DBusObjectID
10249         
10250         * dbus/dbus-connection.c: port to no ObjectID, create a
10251         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10252
10253         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10254         everything except UnregisterFunction and MessageFunction
10255         
10256         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10257         add DBUS_TYPE_OBJECT_PATH
10258         
10259         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10260         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10261         path-based object IDs
10262
10263 2003-08-25  Havoc Pennington  <hp@pobox.com>
10264
10265         Just noticed that dbus_message_test is hosed, I wonder when I
10266         broke that. I thought make check was passing earlier...
10267         
10268         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10269         container tree, will replace most of dbus-object-registry
10270
10271         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10272         screwup
10273
10274 2003-08-19  Havoc Pennington  <hp@pobox.com>
10275
10276         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10277         (dbus_message_is_error): fix this function
10278
10279         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10280         match
10281
10282         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10283         reflect clarified man page
10284         (bus_client_policy_check_can_send): ditto
10285         
10286         * bus/session.conf.in: fixup
10287
10288         * bus/system.conf.in: fixup
10289
10290 2003-08-18  Havoc Pennington  <hp@redhat.com>
10291
10292         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10293
10294         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10295         dumb bug created earlier (wrong order of args to
10296         decode_header_data())
10297         
10298         * tools/dbus-send.c: port
10299
10300         * tools/dbus-print-message.c (print_message): port
10301
10302         * test/data/*messages: port all messages over
10303         
10304         * dbus/dbus-message-builder.c: support including 
10305         message type
10306         
10307         * bus/driver.c: port over
10308         
10309         * bus/dispatch.c: port over to new stuff
10310
10311         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10312         rename disconnect signal to "Disconnected"
10313
10314 2003-08-17  Havoc Pennington  <hp@pobox.com>
10315
10316         This doesn't compile yet, but syncing up so I can hack on it from
10317         work. What are branches for if not broken code? ;-)
10318         
10319         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10320         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10321         DBUS_HEADER_FIELD_ERROR_NAME
10322         
10323         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10324         for the interface+member pairs
10325         (string_hash): change to use g_str_hash algorithm
10326         (find_direct_function, find_string_function): refactor these to
10327         share most code.
10328         
10329         * dbus/dbus-message.c: port all of this over to support 
10330         interface/member fields instead of name field
10331
10332         * dbus/dbus-object-registry.c: port over
10333         
10334         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10335         from _dbus_string_validate_name
10336
10337         * bus/dbus-daemon-1.1: change file format for the 
10338         <deny>/<allow> stuff to match new message naming scheme
10339
10340         * bus/policy.c: port over
10341
10342         * bus/config-parser.c: parse new format
10343         
10344 2003-08-16  Havoc Pennington  <hp@pobox.com>
10345
10346         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10347         broken assertion
10348
10349         * glib/dbus-gproxy.c: some hacking
10350
10351 2003-08-15  Havoc Pennington  <hp@redhat.com>
10352
10353         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10354
10355         * dbus/dbus-connection.c
10356         (dbus_connection_send_with_reply_and_block): factor out internals;
10357         change to convert any error replies to DBusError instead of 
10358         returning them as a message
10359
10360 2003-08-15  Havoc Pennington  <hp@pobox.com>
10361
10362         * dbus/dbus-connection.c, 
10363         dbus/dbus-pending-call.c: Finish the pending call stuff
10364
10365 2003-08-14  Havoc Pennington  <hp@redhat.com>
10366
10367         * dbus/dbus-pending-call.c: start on new object that will replace
10368         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10369         replies
10370
10371         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10372         with remote interfaces
10373
10374         * dbus/dbus-gidl.c: do the boring boilerplate in here
10375         
10376 2003-08-12  Havoc Pennington  <hp@pobox.com>
10377
10378         * bus/dispatch.c (bus_dispatch): make this return proper 
10379         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10380
10381         * dbus/dbus-errors.c (dbus_set_error): use
10382         _dbus_string_append_printf_valist
10383
10384         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10385         (_dbus_string_append_printf): new
10386
10387         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10388         UNKNOWN_METHOD
10389
10390         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10391         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10392         message is unhandled.
10393
10394 2003-08-11  Havoc Pennington  <hp@pobox.com>
10395
10396         * bus/test.c (client_disconnect_handler): change to return
10397         HANDLED (would have been REMOVE_MESSAGE)
10398
10399         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10400         HANDLED/NOT_YET_HANDLED instead of
10401         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10402         should be used.
10403
10404 2003-08-10  Havoc Pennington  <hp@pobox.com>
10405
10406         * tools/dbus-send.c (main): add --type argument, for now
10407         supporting only method_call and signal types.
10408
10409         * tools/dbus-print-message.c: print message type
10410
10411         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10412         init connection->objects
10413
10414         * doc/dbus-specification.sgml: fix sgml
10415
10416         * bus/*.c: port over to object-instance API changes
10417
10418         * test/test-service.c: ditto
10419         
10420         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10421         name, we will have to fix up the rest of the code to also handle
10422         this
10423         (dbus_message_new): generic message-creation call
10424         (set_string_field): allow appending name field
10425
10426 2003-08-06  Havoc Pennington  <hp@pobox.com>
10427
10428         * dbus/dbus-object-registry.c: implement signal connection 
10429         and dispatch
10430
10431         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10432
10433         * dbus/dbus-internals.c (_dbus_memdup): new function
10434
10435 2003-08-02  Havoc Pennington  <hp@pobox.com>
10436
10437         * dbus/dbus-message.c (dbus_message_get_no_reply)
10438         (dbus_message_set_no_reply): add these and remove
10439         set_is_error/get_is_error
10440
10441         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10442         remove the ERROR flag, since there's now an ERROR type
10443
10444 2003-08-01  Havoc Pennington  <hp@pobox.com>
10445
10446         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10447         implement
10448
10449         * dbus/dbus-message.c (dbus_message_get_type): new function
10450
10451         * doc/dbus-specification.sgml: add "type" byte to messages
10452
10453 2003-08-01  Havoc Pennington  <hp@pobox.com>
10454
10455         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10456         a message type enum to distinguish kinds of message
10457         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10458         that need not be replied to
10459
10460 2003-08-01  Havoc Pennington  <hp@pobox.com>
10461
10462         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10463         (unpack_8_octets): fix no-64-bit-int bug
10464
10465         * dbus/dbus-object-registry.c (validate_id): validate the 
10466         connection ID bits, not just the instance ID.
10467
10468         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10469         the connection-global 33 bits of the object ID
10470
10471         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10472         object ID in the new way
10473
10474         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10475         define server/client/instance bits.
10476
10477 2003-07-30  Havoc Pennington  <hp@pobox.com>
10478
10479         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10480         build
10481
10482 2003-07-13  Havoc Pennington  <hp@pobox.com>
10483
10484         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10485         fields to DBusObjectVTable and DBusObjectInfo
10486
10487 2003-07-12  Havoc Pennington  <hp@pobox.com>
10488
10489         * dbus/dbus-object-registry.c: implement unit test,
10490         fix bugs discovered in process
10491
10492         * dbus/dbus-connection.c: remove handler_table and
10493         register_handler(), add DBusObjectRegistry usage
10494
10495         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10496         (dbus_object_id_set_null): new functions
10497
10498 2003-07-08  Havoc Pennington  <hp@pobox.com>
10499
10500         * dbus/dbus-object.c: implement some of this
10501
10502         * dbus/dbus-object-registry.c
10503         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10504         param
10505         (_dbus_object_registry_new): handle OOM
10506
10507 2003-07-08  Havoc Pennington  <hp@pobox.com>
10508
10509         * dbus/dbus-object.h: sketch out an API for registering objects
10510         with a connection, that allows us to use as little as 24 bytes
10511         per object and lets application code represent an object in 
10512         any conceivable way.
10513
10514         * dbus/dbus-object-registry.c: implement the hard bits of the
10515         DBusConnection aspect of object API. Not yet wired up.
10516         
10517 2003-07-06  Havoc Pennington  <hp@pobox.com>
10518
10519         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10520         (_dbus_marshal_object_id): new
10521         (_dbus_demarshal_object_id): new
10522         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10523         consolidate identical switch cases. Don't conditionalize handling
10524         of DBUS_TYPE_UINT64, need to handle the type always.
10525         (_dbus_marshal_validate_arg): consolidate identical cases, and
10526         handle DBUS_TYPE_OBJECT_ID
10527
10528         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10529
10530         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10531
10532 2003-09-28  Havoc Pennington  <hp@pobox.com>
10533
10534         * real 0.13 release
10535
10536 2003-09-28  Havoc Pennington  <hp@pobox.com>
10537
10538         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10539         to work with Debian db2html
10540
10541 2003-09-28  Havoc Pennington  <hp@pobox.com>
10542
10543         * configure.in: 0.13
10544
10545         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10546         stylesheet-images for benefit of Debian
10547         
10548         Change back to using filesystem-linked sockets for the system
10549         bus, so only root can create the default system bus address.
10550         
10551         * bus/system.conf.in: change to use
10552         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10553
10554         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10555         from here.
10556
10557         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10558         here, and AC_DEFINE DBUS_SYSTEM_PATH
10559
10560 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10561
10562         * doc/TODO:
10563         * doc/busconfig.dtd:
10564         Add busconfig DTD.
10565         
10566 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10567
10568         * doc/dbus-specification.sgml:
10569         Add activation reply values.
10570         
10571 2003-08-05  Havoc Pennington  <hp@redhat.com>
10572
10573         * configure.in: 0.12
10574
10575 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10576
10577         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10578         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10579         (add_watch), (remove_watch), (create_source):
10580         Refcount fds, fixes some reentrancy issues.
10581         
10582 2003-07-30  Havoc Pennington  <hp@redhat.com>
10583
10584         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10585         bus address to be abstract if we have abstract sockets
10586
10587         * NEWS: update
10588
10589 2003-07-28  Havoc Pennington  <hp@redhat.com>
10590
10591         * bus/messagebus.in: fix to avoid processname/servicename 
10592         confusion, from Michael Kearey
10593         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10594         
10595 2003-07-23  Havoc Pennington  <hp@pobox.com>
10596
10597         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10598         fix from Andy Hanton to remove broken "+1"
10599
10600 2003-07-16  Havoc Pennington  <hp@pobox.com>
10601
10602         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10603         babysitter process, as suggested by Thomas Leonard, so 
10604         an "eval `dbus-launch --exit-with-session`" will actually 
10605         return
10606
10607 2003-07-16  Havoc Pennington  <hp@pobox.com>
10608
10609         * configure.in: print out EXPANDED_* variables in the summary at
10610         the end; clean up the code that computes EXPANDED_ variables and
10611         get the ones using exec_prefix right. Should make things work
10612         when you build without --prefix
10613
10614 2003-06-29  Havoc Pennington  <hp@pobox.com>
10615
10616         * mono/Test.cs (class Test): fire up a main loop and run it
10617
10618         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10619         done once, the app has to do it
10620
10621 2003-06-26  Havoc Pennington  <hp@pobox.com>
10622
10623         * mono/Connection.cs: set up connection with the glib main loop
10624
10625 2003-07-01  Havoc Pennington  <hp@redhat.com>
10626
10627         * doc/dbus-specification.sgml: clarify the format of a type code,
10628         change suggested by Jim Blandy
10629
10630 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10631
10632         * doc/Makefile.am:
10633         * tools/Makefile.am: Don't assume srcdir == builddir.
10634
10635         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10636         the allocated block.
10637         (_dbus_memory_test): New function.
10638         * dbus/dbus-test.h: Add _dbus_memory_test ().
10639         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10640
10641         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10642         of %c%c%c%c.
10643         (dbus_message_new): Remove obsolete @todo.
10644
10645         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10646         (_dbus_marshal_set_uint64): Fix comment.
10647
10648         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10649         hardcode FIELD_REPLY_SERIAL.
10650
10651         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10652         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10653
10654         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10655         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10656
10657 2003-06-24  Havoc Pennington  <hp@pobox.com>
10658
10659         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10660
10661 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10662
10663         * configure.in:
10664         * gcj/.cvsignore:
10665         * gcj/Hello.java:
10666         * gcj/Makefile.am:
10667         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10668         * gcj/org/.cvsignore:
10669         * gcj/org/Makefile.am:
10670         * gcj/org/freedesktop/.cvsignore:
10671         * gcj/org/freedesktop/Makefile.am:
10672         * gcj/org/freedesktop/dbus/.cvsignore:
10673         * gcj/org/freedesktop/dbus/Makefile.am:
10674         * gcj/org/freedesktop/dbus/Message.java: (Message),
10675         (Message.Message):
10676         * gcj/org/freedesktop/dbus/natMessage.cc:
10677         Fix the build system.
10678
10679 2003-06-22  Havoc Pennington  <hp@pobox.com>
10680
10681         * mono/Connection.cs: add more bindings
10682
10683         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10684         more than once.
10685
10686 2003-06-22  Havoc Pennington  <hp@pobox.com>
10687
10688         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10689         Start wrapping more stuff.
10690
10691 2003-06-22  Havoc Pennington  <hp@pobox.com>
10692
10693         * mono/Message.cs: implement Message.Wrap() that ensures we only
10694         have a single C# wrapper per DBusMessage, assuming it works which
10695         it probably doesn't.
10696
10697         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10698         (dbus_message_free_data_slot): new
10699         (dbus_message_set_data): new
10700         (dbus_message_get_data): new
10701
10702 2003-06-22  Havoc Pennington  <hp@pobox.com>
10703
10704         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10705         (_dbus_data_slot_allocator_alloc): rework these to keep a
10706         reference count on each slot and automatically manage a global
10707         slot ID variable passed in by address
10708
10709         * bus/bus.c: convert to new dataslot API
10710
10711         * dbus/dbus-bus.c: convert to new dataslot API
10712
10713         * dbus/dbus-connection.c: convert to new dataslot API
10714
10715         * dbus/dbus-server.c: convert to new dataslot API
10716
10717         * glib/dbus-gmain.c: ditto
10718
10719         * bus/test.c: ditto
10720
10721         * bus/connection.c: ditto
10722
10723 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10724
10725         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10726         after the gcj checks so that the correct configuration tags
10727         will be added to libtool.
10728
10729         * dbus-glib-1.pc.in: No need to specify any includes since
10730         dbus-1.pc.in has those.
10731
10732 2003-06-22  Havoc Pennington  <hp@pobox.com>
10733
10734         * mono/*, gcj/*, configure.in, Makefile.am:
10735         Check in makefiles and subdirs for mono and gcj bindings.
10736         Neither binding actually exists, just trying to get through
10737         all the build and other boring bits.
10738
10739 2003-06-21  Philip Blundell  <philb@gnu.org>
10740
10741         * tools/dbus-monitor.1: Updated.
10742
10743         * tools/dbus-send.1: Likewise.
10744
10745 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10746
10747         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10748         for hangup and error after checking read so we won't discard
10749         pending data if both hangup and read are set.
10750
10751 2003-06-19  Philip Blundell  <philb@gnu.org>
10752
10753         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10754
10755         * tools/dbus-send.c: Accept both --system and --session.
10756
10757         * tools/dbus-monitor.c: Same here.
10758
10759 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10760
10761         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10762         from C++ (Patch by Miloslav Trmac).
10763
10764 2003-06-15  Joe Shaw  <joe@assbarn.com>
10765
10766         * configure.in: Check for socklen_t.
10767
10768         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10769
10770         * test/test-segfault.c: Add #include <sys/time.h>
10771
10772         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10773         dbus-launch needs it.
10774
10775 2003-06-09  Havoc Pennington  <hp@redhat.com>
10776
10777         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10778         SUN_LEN, it breaks abstract socket usage
10779
10780         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10781         starts of lines.
10782
10783 2003-06-04  Havoc Pennington  <hp@pobox.com>
10784
10785         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10786         using unix:abstract=/foo, and when listening in a tmpdir
10787         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10788
10789         * dbus/dbus-transport.c (_dbus_transport_open): support
10790         unix:abstract=/foo
10791
10792         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10793         support abstract sockets
10794
10795         * dbus/dbus-transport-unix.c
10796         (_dbus_transport_new_for_domain_socket): support abstract sockets
10797
10798         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10799         toggle as an argument, implement abstract namespace support
10800         (_dbus_listen_unix_socket): ditto
10801
10802         * configure.in: add --enable-abstract-sockets and implement
10803         a configure check for autodetection of the right value.
10804
10805 2003-06-01  Havoc Pennington  <hp@pobox.com>
10806
10807         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10808         in /tmp (though on Linux this will end up being useless,
10809         when we add abstract namespace support)
10810
10811         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10812         subst'ing it
10813
10814 2003-05-28  Colin Walters  <walters@verbum.org>
10815
10816         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10817
10818 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10819
10820         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10821
10822 2003-05-17  Colin Walters  <walters@gnu.org>
10823
10824         * tools/dbus-send.c: Don't exit with an error code if --help was
10825         passed.  Default to using the session bus instead of the system
10826         one.
10827
10828         * tools/dbus-launch.c: Ditto.
10829
10830         * tools/dbus-monitor.c: Ditto.
10831
10832         * tools/dbus-send.1: Update with new arguments.
10833
10834         * tools/dbus-launch.c: Emit code to export variables.  New
10835         arguments -s and -c to specify shell syntax, and a bit of code to
10836         autodetect syntax.  Also, allow specifying a program to run.
10837
10838         * tools/dbus-launch.1: Update with new arguments.
10839
10840         * tools/dbus-send.1: Ditto.
10841
10842         * tools/dbus-monitor.1: Ditto.
10843
10844 2003-05-17  Havoc Pennington  <hp@pobox.com>
10845
10846         * bus/config-parser.c (merge_included): merge in policies from
10847         child configuration file.
10848
10849         * bus/policy.c (bus_policy_merge): function to merge two policies
10850         together
10851
10852 2003-05-16  Havoc Pennington  <hp@redhat.com>
10853
10854         * dbus/dbus-connection.c: disable verbose lock spew
10855
10856         * tools/dbus-send.c: add --print-reply command line option
10857
10858         * tools/dbus-print-message.h (print_message): new util function
10859         shared by dbus-send and dbus-monitor
10860
10861         * tools/dbus-monitor.c (handler_func): exit on disconnect
10862
10863         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10864         disconnected, don't try to use the read_watch
10865
10866         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10867         so we can find this bug more easily
10868
10869 2003-05-16  Havoc Pennington  <hp@redhat.com>
10870
10871         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10872         NULL as DBusHashTable is annoyingly likely to do.
10873
10874 2003-05-16  Colin Walters  <walters@verbum.org>
10875
10876         * tools/dbus-monitor.c: Add --session argument and usage()
10877         function.
10878
10879         * tools/dbus-monitor.1: Update with new --session arg.
10880
10881         * bus/Makefile.am (install-data-hook): Create
10882         $(libdir)/dbus-1.0/services so that the session bus is happy.
10883
10884 2003-05-15  Havoc Pennington  <hp@redhat.com>
10885
10886         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10887         on non-x86. ifdef's are evil.
10888
10889 2003-05-15  Havoc Pennington  <hp@redhat.com>
10890
10891         * configure.in: 0.11
10892
10893         * NEWS: update
10894
10895         * bus/Makefile.am (initddir): apparently we are supposed to put
10896         init scripts in /etc/rc.d/init.d not /etc/init.d
10897
10898         * bus/Makefile.am: remove the "you must --enable-tests to make
10899         check" as it broke distcheck
10900
10901         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10902
10903 2003-05-13  James Willcox  <jwillcox@gnome.org>
10904
10905         * configure.in:
10906         * bus/activation.c: (bus_activation_service_created),
10907         (bus_activation_activate_service):
10908         * bus/driver.c: (bus_driver_send_service_deleted),
10909         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10910         (bus_driver_send_service_acquired),
10911         (bus_driver_send_welcome_message),
10912         (bus_driver_handle_list_services):
10913         * bus/session.conf.in:
10914         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10915         (dbus_bus_service_exists), (dbus_bus_activate_service):
10916         * dbus/dbus-bus.h:
10917
10918         Add some convenience API which lets you activate a service, and did a
10919         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10920         and dbus_message_get_args()
10921
10922 2003-05-11  Havoc Pennington  <hp@pobox.com>
10923
10924         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10925         calling _dbus_marshal_validate_arg() for every byte in a byte
10926         array, etc.
10927
10928         * dbus/dbus-message-handler.c: use atomic reference counting to
10929         reduce number of locks slightly; the global lock in here sucks
10930
10931         * dbus/dbus-connection.c
10932         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10933         update_dispatch_status that can be called with lock held; then use
10934         in a couple places to reduce locking/unlocking
10935         (dbus_connection_send): hold the lock over the whole function
10936         instead of acquiring it twice.
10937
10938         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10939
10940         * bus/connection.c (bus_connections_setup_connection): fix access
10941         to already-freed memory.
10942
10943         * dbus/dbus-connection.c: keep a little cache of linked list
10944         nodes, to avoid using the global linked list alloc lock in the
10945         normal send-message case. Instead we just use the connection lock
10946         that we already have to take.
10947
10948         * dbus/dbus-list.c (_dbus_list_find_last): new function
10949
10950         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10951         change to use a struct for the atomic type; fix docs,
10952         they return value before increment, not after increment.
10953
10954         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10955         (_dbus_string_append_8_aligned): new functions to try to
10956         microoptimize this operation.
10957         (reallocate_for_length): break this out of set_length(), to
10958         improve profile info, and also so we can consider inlining the
10959         set_length() part.
10960
10961         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10962         strings with some preallocation, cuts down on our calls to realloc
10963         a fair bit. Though if we can get the "move entire string to empty
10964         string" optimization below to kick in here, it would be better.
10965
10966         * dbus/dbus-string.c (_dbus_string_move): just call
10967         _dbus_string_move_len
10968         (_dbus_string_move_len): add a special case for moving
10969         an entire string into an empty string; we can just
10970         swap the string data instead of doing any reallocs.
10971         (_dbus_string_init_preallocated): new function
10972
10973 2003-05-11  Havoc Pennington  <hp@pobox.com>
10974
10975         Write a "test-profile" that does echo client-server with threads;
10976         profile reveals lock contention, memcpy/realloc of buffers, and
10977         UTF-8 validation as hot spots. 20% of lock contention eliminated
10978         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10979         contention is global mempool locks for GList and DBusList.
10980
10981         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10982         x86 implementation
10983
10984         * dbus/dbus-connection.c (struct DBusConnection): use
10985         dbus_atomic_t for the reference count
10986
10987         * dbus/dbus-message.c (struct DBusMessage): declare
10988         dbus_atomic_t values as volatile
10989
10990         * configure.in: code to detect ability to use atomic integer
10991         operations in assembly, from GLib patch
10992
10993         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10994         time, tired of it being wrong in threads and forked processes
10995
10996         * glib/test-profile.c: a little program to bounce messages back
10997         and forth between threads and eat CPU
10998
10999         * dbus/dbus-connection.c: add debug spew macros for debugging
11000         thread locks; include config.h at top; fix deadlock in
11001         dbus_connection_flush()
11002
11003 2003-05-08  Havoc Pennington  <hp@pobox.com>
11004
11005         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
11006         data from getting written, and there wasn't a good reason to
11007         use _exit really.
11008
11009         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
11010         dbus_verbose lines in test coverage
11011         (main): add list of functions sorted by # of untested blocks
11012         to the coverage report
11013
11014         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
11015
11016         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
11017
11018         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11019         extend test coverage
11020
11021         * test/data/auth/cancel.auth-script: test canceling an
11022         authentication
11023
11024         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11025         aren't used. in CVS history if we end up needing them.
11026
11027 2003-05-04  Havoc Pennington  <hp@pobox.com>
11028
11029         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11030         unit test
11031
11032         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11033         function, which assumed length was in # of strings, not bytes
11034
11035         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11036         missing coverage
11037
11038         * dbus/dbus-connection.c
11039         (_dbus_connection_queue_received_message): disable function for
11040         now, we are only using it in test mode
11041
11042         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11043         remove a mistaken FIXME
11044
11045 2003-05-04  Havoc Pennington  <hp@pobox.com>
11046
11047         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11048         unlock mutex on successful return, patch from Anders Gustafsson
11049
11050 2003-05-04  Havoc Pennington  <hp@pobox.com>
11051
11052         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11053         Anders Gustafsson
11054
11055 2003-05-04  Havoc Pennington  <hp@pobox.com>
11056
11057         * tools/dbus-launch.c: implement
11058
11059         * bus/main.c (main), bus/bus.c (bus_context_new):
11060         implement --print-pid and --fork
11061
11062 2003-05-03  Havoc Pennington  <hp@redhat.com>
11063
11064         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11065         the address had no value, and add to test suite. Fix and
11066         regression test from Miloslav Trmac
11067
11068 2003-05-03  Havoc Pennington  <hp@pobox.com>
11069
11070         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11071         watch is invalid when handled
11072
11073         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11074         dbus-launch utility to launch the bus from a shell script.  Didn't
11075         actually implement dbus-launch yet, it's just a placeholder still.
11076
11077 2003-05-03  Havoc Pennington  <hp@pobox.com>
11078
11079         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11080         daemon; also documents daemon config file, so replaces
11081         doc/config-file.txt. Corrected some stuff from config-file.txt in
11082         the process of moving it.
11083
11084 2003-05-03  Havoc Pennington  <hp@pobox.com>
11085
11086         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11087         add some man pages
11088
11089 2003-05-03  Colin Walters  <walters@verbum.org>
11090
11091         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11092         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11093
11094         * Makefile.am: Update to use new .pc versioning scheme.
11095
11096 2003-05-02  Havoc Pennington  <hp@redhat.com>
11097
11098         * bus/system.conf.in: allow send/receive to/from message bus
11099         service
11100
11101 2003-04-30  Havoc Pennington  <hp@redhat.com>
11102
11103         * configure.in: print a note when building with unit tests and
11104         without assertions
11105
11106 2003-04-30  Havoc Pennington  <hp@redhat.com>
11107
11108         * Makefile.am: add a check-local that complains if you didn't
11109         configure with --enable-tests
11110
11111 2003-04-29  Havoc Pennington  <hp@redhat.com>
11112
11113         * glib/dbus-gmain.c: docs cleanups
11114
11115         * dbus/dbus-types.h: add docs on int64 types
11116
11117         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11118         public API docs section
11119
11120 2003-04-29  Havoc Pennington  <hp@redhat.com>
11121
11122         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11123         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11124         parallel install API version, not with the D-BUS package version.
11125
11126         * HACKING: move some of README over here
11127
11128         * README: updates, and document API/ABI policy
11129
11130         * configure.in: reindentation
11131
11132 2003-04-29  Havoc Pennington  <hp@redhat.com>
11133
11134         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11135         to use this library" to be sure people have the right
11136         expectations.
11137
11138 2003-04-28  Havoc Pennington  <hp@redhat.com>
11139
11140         * configure.in: add --enable-docs which by default is auto yes if
11141         doxygen and db2html found, no otherwise; but can be forced on/off
11142
11143         * doc/Makefile.am: conditionalize whether to build docs on
11144         --enable-docs
11145
11146 2003-04-28  Havoc Pennington  <hp@redhat.com>
11147
11148         * configure.in: 0.10
11149
11150         * NEWS: update
11151
11152         * bus/system.conf.in: add <includedir>system.d</includedir>
11153
11154         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11155         username was provided but not uid
11156
11157         * bus/config-parser.c (struct BusConfigParser): keep track of
11158         whether the parser is toplevel or was included; change some
11159         of the error handling if it's included.
11160
11161 2003-04-27  Havoc Pennington  <hp@pobox.com>
11162
11163         Unbreak my code...
11164
11165         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11166         report correct status if we finish processing authentication
11167         inside this function.
11168
11169         * bus/activation.c (try_send_activation_failure): use
11170         bus_transaction_send_error_reply
11171
11172         * bus/connection.c (bus_connection_get_groups): return an error
11173         explaining the problem
11174
11175         * bus/bus.c (bus_context_check_security_policy): implement
11176         restriction here that inactive connections can only send the
11177         hello message. Also, allow bus driver to send anything to
11178         any recipient.
11179
11180         * bus/connection.c (bus_connection_complete): create the
11181         BusClientPolicy here instead of on-demand.
11182         (bus_connection_get_policy): don't return an error
11183
11184         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11185         sender field in message being replied to
11186
11187         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11188         causing it to return FALSE always
11189
11190         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11191         we checked sender rather than destination
11192
11193 2003-04-25  Havoc Pennington  <hp@redhat.com>
11194
11195         test suite is slightly hosed at the moment, will fix soon
11196
11197         * bus/connection.c (bus_connections_expire_incomplete): fix to
11198         properly disable the timeout when required
11199         (bus_connection_set_name): check whether we can remove incomplete
11200         connections timeout after we complete each connection.
11201
11202         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11203         probably still broken.
11204
11205         * bus/services.c (bus_registry_acquire_service): implement max
11206         number of services owned, and honor allow/deny rules on which
11207         services a connection can own.
11208
11209         * bus/connection.c (bus_connection_get_policy): report errors here
11210
11211         * bus/activation.c: implement limit on number of pending
11212         activations
11213
11214 2003-04-25  Havoc Pennington  <hp@redhat.com>
11215
11216         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11217         where we used >= 0 instead of != DBUS_UID_UNSET.
11218
11219 2003-04-25  Havoc Pennington  <hp@redhat.com>
11220
11221         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11222         were toggled without add/remove, fix from Anders Gustafsson
11223
11224 2003-04-24  Havoc Pennington  <hp@redhat.com>
11225
11226         * test/data/valid-config-files/basic.conf: add <limit> tags to
11227         this test
11228
11229         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11230         <limit> tag in configuration file.
11231
11232 2003-04-24  Havoc Pennington  <hp@redhat.com>
11233
11234         * bus/dispatch.c: somehow missed some name_is
11235
11236         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11237         (_dbus_timeout_set_interval): new
11238
11239         * bus/connection.c (bus_connections_setup_connection): record time
11240         when each connection is first set up, and expire them after the
11241         auth timeout passes.
11242
11243 2003-04-24  Havoc Pennington  <hp@redhat.com>
11244
11245         * dbus/dbus-message.c (dbus_message_name_is): rename
11246         (dbus_message_service_is): rename
11247         (dbus_message_sender_is): rename
11248         (dbus_message_get_service): rename
11249
11250 2003-04-24  Havoc Pennington  <hp@redhat.com>
11251
11252         * configure.in: add --enable-checks
11253
11254         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11255
11256         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11257         to use thread locks.
11258         (_dbus_connection_handler_destroyed_locked): move some private
11259         functions into proper docs group
11260
11261         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11262         _dbus_return_val_if_fail
11263
11264         Throughout: use dbus_return_if_fail
11265
11266 2003-04-23  James Willcox  <jwillcox@gnome.org>
11267
11268         * glib/dbus-glib.h:
11269         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11270         (dbus_connection_setup_with_g_main),
11271         (dbus_server_setup_with_g_main):
11272         * glib/test-dbus-glib.c: (main):
11273         * glib/test-thread-client.c: (main):
11274         * glib/test-thread-server.c: (new_connection_callback), (main):
11275         * tools/dbus-monitor.c: (main):
11276
11277         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11278         and dbus_server_setup_with_g_main().
11279
11280 2003-04-20  Havoc Pennington  <hp@pobox.com>
11281
11282         * doc/dbus-specification.sgml: document the restrictions on
11283         message and service names
11284
11285 2003-04-22  Havoc Pennington  <hp@redhat.com>
11286
11287         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11288         support, and do some code cleanups to share more code and
11289         speed up array marshal/demarshal.
11290
11291         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11292
11293         * configure.in: generate dbus-arch-deps.h
11294
11295         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11296         64-bit typecodes
11297
11298 2003-04-22  Havoc Pennington  <hp@redhat.com>
11299
11300         * test/data/valid-messages/opposite-endian.message: fix test
11301         to use proper type for rply field
11302
11303         * test/data/invalid-messages: add tests for below validation
11304
11305         * dbus/dbus-message.c (decode_header_data): validate field types,
11306         and validate that named fields are valid names
11307         (decode_name_field): consider messages in the
11308         org.freedesktop.Local. namespace to be invalid.
11309
11310         * dbus/dbus-string.c (_dbus_string_validate_name): new
11311
11312 2003-04-19  Havoc Pennington  <hp@pobox.com>
11313
11314         * bus/driver.c (bus_driver_handle_hello): check limits and
11315         return an error if they are exceeded.
11316
11317         * bus/connection.c: maintain separate lists of active and inactive
11318         connections, and a count of each. Maintain count of completed
11319         connections per user. Implement code to check connection limits.
11320
11321         * dbus/dbus-list.c (_dbus_list_unlink): export
11322
11323         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11324         number of bytes in the message queue for a connection
11325
11326 2003-04-18  Havoc Pennington  <hp@pobox.com>
11327
11328         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11329
11330         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11331         memleaks
11332
11333         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11334         on realloc be sure to update the pointer in the keyring
11335
11336         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11337         offset to avoid writing to unallocated memory
11338
11339         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11340         try the next mechanism, so we properly handle OOM
11341
11342         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11343         on OOM.
11344         (_dbus_keyring_new): fix OOM bug
11345         (_dbus_keyring_new_homedir): always set error; impose a maximum
11346         number of keys we'll load from the file, mostly to speed up the
11347         test suite and make its OOM checks more useful, but also for
11348         general sanity.
11349
11350         * dbus/dbus-auth.c (process_error_server): reject authentication
11351         if we get an error from the client
11352         (process_cancel): on cancel, send REJECTED, per the spec
11353         (process_error_client): send CANCEL if we get an error from the
11354         server.
11355
11356 2003-04-18  Havoc Pennington  <hp@pobox.com>
11357
11358         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11359         debug spew
11360
11361         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11362         handling problem
11363
11364         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11365         about DBUS_TEST_HOMEDIR once
11366
11367         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11368         the environment
11369
11370         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11371         config file so we test the right thing
11372
11373         Throughout: assorted docs improvements
11374
11375 2003-04-18  Havoc Pennington  <hp@pobox.com>
11376
11377         * glib/dbus-gmain.c: adapt to watch changes
11378
11379         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11380
11381         * dbus/dbus-server.h: remove dbus_server_handle_watch
11382
11383         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11384
11385         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11386         like DBusTimeout, so we don't need dbus_connection_handle_watch
11387         etc.
11388
11389 2003-04-17  Havoc Pennington  <hp@redhat.com>
11390
11391         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11392         database usage so it all goes via the DBusUserDatabase cache.
11393
11394 2003-04-17  Havoc Pennington  <hp@redhat.com>
11395
11396         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11397         there was an OOM watch we skipped, we always return TRUE so we
11398         iterate again to have a look at it again. Fixes test suite hang.
11399         Code rearrangement also lets us lose some memset and only iterate
11400         over callbacks once.
11401
11402         * bus/driver.c (bus_driver_handle_message): sense of test for
11403         reply was backward
11404
11405 2003-04-16  Havoc Pennington  <hp@pobox.com>
11406
11407         * doc/dbus-specification.sgml: make spec say serials are unsigned
11408
11409         * dbus/dbus-message.h: change message serials to unsigned
11410
11411         * dbus/dbus-connection.c: adapt to message serials being unsigned
11412
11413 2003-04-15  Havoc Pennington  <hp@pobox.com>
11414
11415         * bus/bus.c: create and keep around a shared DBusUserDatabase
11416         object.
11417
11418         * bus/connection.c (bus_connection_get_groups): don't cache
11419         groups for user in the connection object, since user database
11420         object now does that.
11421
11422 2003-04-16  Havoc Pennington  <hp@redhat.com>
11423
11424         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11425         list of size counters
11426         (_dbus_message_loader_putback_message_link): put back a popped link
11427
11428         * dbus/dbus-connection.c
11429         (dbus_connection_set_max_live_messages_size): rename
11430         max_received_size
11431         (dbus_connection_get_outgoing_size): get size of outgoing
11432         queue
11433         (_dbus_connection_set_connection_counter): remove this cruft
11434
11435 2003-04-14  Havoc Pennington  <hp@redhat.com>
11436
11437         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11438         caching, but at some point we might want to be able to use a
11439         different database.
11440
11441         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11442         SHA1 conf file to test the sha1 auth mechanism, since the regular
11443         test always uses EXTERNAL when available.
11444
11445         * configure.in,
11446         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11447         add conf file that requires use of sha1 auth
11448
11449 2003-04-13  Havoc Pennington  <hp@pobox.com>
11450
11451         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11452         from Philip Blundell to send messages and monitor them.
11453
11454 2003-04-13  Havoc Pennington  <hp@pobox.com>
11455
11456         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11457         callbacks
11458
11459         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11460         users
11461
11462         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11463         fix to only recover unused bytes if we're already authenticated
11464         (_dbus_transport_get_is_authenticated): fix to still mark us
11465         authenticated if there are unused bytes.
11466
11467         * bus/dispatch.c: implement security policy checking
11468
11469         * bus/connection.c (bus_transaction_send_from_driver): new
11470
11471         * bus/bus.c (bus_context_check_security_policy): new
11472
11473         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11474         now we just set the DBusError and it gets converted to an error
11475         reply.
11476
11477         * bus/connection.c (allow_user_function): enable code using actual
11478         data from the config file
11479
11480         * bus/policy.c (list_allows_user): handle wildcard rules for
11481         user/group connection perms
11482
11483 2003-04-13  Havoc Pennington  <hp@pobox.com>
11484
11485         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11486
11487         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11488
11489         * bus/policy.c (bus_policy_append_mandatory_rule)
11490         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11491         (bus_policy_append_group_rule): new functions
11492
11493 2003-04-12  Havoc Pennington  <hp@pobox.com>
11494
11495         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11496
11497         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11498         the pid/gid/uid, just for paranoia.
11499
11500         * test/break-loader.c (randomly_do_n_things): find a byte
11501         containing a type code, and randomly change it to a different
11502         type code.
11503
11504 2003-04-12  Havoc Pennington  <hp@pobox.com>
11505
11506         * bus/policy.h: change BusPolicy to be the thing from the config
11507         file, and rename old BusPolicy to BusClientPolicy
11508
11509         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11510         match change in how policy works
11511
11512         * dbus/dbus-internals.h: mark assert_not_reached as
11513         __attribute((noreturn))__
11514
11515 2003-04-11  Havoc Pennington  <hp@redhat.com>
11516
11517         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11518         the broadcast service. Use boolean return for ServiceExists.
11519
11520 2003-04-11  Havoc Pennington  <hp@redhat.com>
11521
11522         * configure.in: add another directory to look for qt in.
11523
11524 2003-04-11  Havoc Pennington  <hp@redhat.com>
11525
11526         * AUTHORS: add Colin Walters
11527
11528 2003-04-11  Havoc Pennington  <hp@redhat.com>
11529
11530         * NEWS: update
11531
11532         * configure.in: 0.9
11533
11534 2003-04-11  Havoc Pennington  <hp@redhat.com>
11535
11536         * bus/messagebus.in: remove pid file when stopping the
11537         message bus, since the bus won't have privileges to remove it
11538         itself.
11539
11540 2003-04-11  Havoc Pennington  <hp@redhat.com>
11541
11542         * bus/bus.c (bus_context_new): move credentials change after
11543         creating pidfile
11544
11545 2003-04-11  Havoc Pennington  <hp@pobox.com>
11546
11547         * test/decode-gcov.c: add "below average functions" to the
11548         coverage report, and change how some of the code works.
11549
11550         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11551         not in the coverage stats.
11552
11553         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11554         couple places so running the test suite doesn't result in megaspam.
11555
11556 2003-04-11  Havoc Pennington  <hp@pobox.com>
11557
11558         * bus/dispatch.c (check_existent_service_activation): accept a no
11559         memory error in a place we didn't before
11560
11561         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11562         in case the first one failed," since the test suite is less
11563         broken now.
11564
11565 2003-04-10  Havoc Pennington  <hp@pobox.com>
11566
11567         * bus/dispatch.c (check_segfault_service_activation): add test
11568         for launching an executable that just crashes.
11569
11570         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11571         don't leave a million cores. We'll see how portable this is.
11572
11573 2003-04-10  Havoc Pennington  <hp@pobox.com>
11574
11575         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11576         the possible parent failures before we fork, so that we don't
11577         fail to create a babysitter after creating the child.
11578
11579         * bus/activation.c (bus_activation_activate_service): kill child
11580         if we don't successfully complete the activation.
11581
11582 2003-04-10  Havoc Pennington  <hp@redhat.com>
11583
11584         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11585         the connection if it's disconnected
11586
11587         * bus/activation.c (bus_activation_service_created): use new
11588         transaction features to roll back removal of pending activation if
11589         we don't successfully create the service after all. Don't remove
11590         pending activation if the function fails.
11591
11592         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11593         (_dbus_list_insert_after_link): new code to facilitate
11594         services.c fixes
11595
11596         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11597         new functionality, so we can preallocate the ability to insert
11598         into a hash table.
11599
11600         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11601         allowing us to put custom hooks in a transaction to be used for
11602         cancelling said transaction
11603
11604         * doc/dbus-specification.sgml: add some discussion of secondary
11605         service owners, and disallow zero-length service names
11606
11607         * bus/services.c (bus_registry_acquire_service): new function,
11608         splits out part of bus_driver_handle_acquire_service() and fixes
11609         a bug where we didn't remove the service doing the acquiring
11610         from the secondary queue if we failed to remove the current owner
11611         from the front of the queue.
11612
11613 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11614
11615         * doc/dbus-specification.sgml:
11616         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11617
11618 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11619
11620         * bus/.cvsignore:
11621         * glib/.cvsignore:
11622         * test/.cvsignore:
11623         Added files to cvsignore
11624
11625         * dbus/dbus-message.h:
11626         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11627         Make get_named() take two out argument and return a boolean.
11628         (dbus_message_iter_get_args_valist):
11629         Update usage of get_named().
11630         (dbus_message_iter_append_byte):
11631         Fix typo
11632         (dbus_message_iter_append_named)
11633         Fix typo
11634         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11635         More tests.
11636
11637 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11638
11639         * dbus/dbus-marshal.[ch]:
11640         Add array_type_pos argument to _dbus_marshal_validate_arg.
11641         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11642
11643         * dbus/dbus-message.[ch]:
11644         Multi-dimensional arrays have full type specification in the
11645         outermost array. Iter code re-arranged to handle this.
11646         Added some more iter tests.
11647
11648         * doc/dbus-specification.sgml:
11649         Add me to authors.
11650         Remove old FIXME.
11651         Update new array encoding description.
11652         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11653
11654         * test/data/invalid-messages/array-with-mixed-types.message:
11655         * test/data/valid-messages/array-of-array-of-uint32.message:
11656         Change to the new array format.
11657
11658         * test/data/invalid-messages/too-short-dict.message:
11659         Fix bug in test.
11660
11661         * test/data/valid-messages/recursive-types.message:
11662         Fix up and extend test.
11663
11664 2003-04-10  Havoc Pennington  <hp@pobox.com>
11665
11666         * bus/dispatch.c: lots of fixes
11667
11668         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11669         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11670         that was crack, broke the test service.
11671
11672         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11673         handling to avoid piling up errors if we get a failure on the
11674         first address.
11675
11676         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11677         pid in assertion failures.
11678
11679         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11680         to some fixed size of file descriptor array. Don't return TRUE
11681         anytime a timeout exists, that led to lots of busy loop silliness
11682         in the tests.
11683
11684 2003-04-09  Havoc Pennington  <hp@redhat.com>
11685
11686         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11687         I'd checked this in earlier but hadn't.
11688
11689 2003-04-09  Havoc Pennington  <hp@redhat.com>
11690
11691         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11692         the activation test (man this is getting old!)
11693
11694 2003-04-09  Havoc Pennington  <hp@redhat.com>
11695
11696         * test/test-utils.c: use dispatch status function to fix this up
11697
11698         * bus/connection.c (connection_watch_callback): don't dispatch
11699         from here
11700         (connection_timeout_callback): don't dispatch from here
11701         (bus_connections_setup_connection): set the dispatch status function
11702         (bus_connection_disconnected): unset it
11703
11704         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11705         used to add a connection to be dispatched
11706         (_dbus_loop_iterate): do the dispatching at the end of each
11707         iteration
11708
11709         * dbus/dbus-connection.c
11710         (dbus_connection_set_dispatch_status_function): new function
11711         allowing us to fix up main loop usage
11712         (_dbus_connection_last_unref): free all the various function
11713         user data
11714         (dbus_connection_dispatch): call the DispatchStatusFunction
11715         whenever this function returns
11716         (dbus_connection_handle_watch): call DispatchStatusFunction
11717         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11718         (reply_handler_timeout): call DispatchStatusFunction
11719         (dbus_connection_flush): call DispatchStatusFunction
11720
11721 2003-04-09  Havoc Pennington  <hp@redhat.com>
11722
11723         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11724         a memory leak
11725
11726         * bus/dispatch.c (check_service_activated): fix bug in test
11727
11728         * dbus/dbus-mainloop.c (check_timeout): fix this up
11729
11730         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11731         verbose output so we can sort out output from different processes,
11732         e.g. in the activation case.
11733
11734 2003-04-08  Colin Walters  <walters@gnu.org>
11735
11736         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11737         the pid file.
11738         (bus_context_new): Set it.
11739         (bus_context_unref): Use it to delete the pid file.
11740
11741 2003-04-08  Havoc Pennington  <hp@redhat.com>
11742
11743         * test/data/invalid-messages/array-with-mixed-types.message:
11744         regression test that fails for the moment
11745
11746         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11747         tests for convenience
11748
11749         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11750         array of nil, it broke things.
11751
11752         * test/data/invalid-messages/array-of-nil.message: regression test
11753
11754         * test/data/valid-messages/array-of-array-of-uint32.message:
11755         happened to write this so added it to suite
11756
11757 2003-04-08  Havoc Pennington  <hp@redhat.com>
11758
11759         * bus/driver.c (bus_driver_handle_acquire_service): init
11760         retval/reply before checking name
11761
11762         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11763         recursion depth argument
11764
11765         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11766         in the public struct for future extension
11767
11768         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11769         typo
11770
11771         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11772         message
11773
11774         * doc/dbus-specification.sgml: fix typo
11775
11776 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11777
11778         Implemented recursive types, named types and new-style iters
11779
11780         * bus/driver.c:
11781         * glib/test-thread-client.c: (thread_func):
11782         * glib/test-thread-server.c: (handle_test_message):
11783         * test/test-service.c: (handle_echo):
11784         Update to new api
11785
11786         * dbus/Makefile.am:
11787         * dbus/dbus-dict.c:
11788         * dbus/dbus-dict.h:
11789         * dbus/dbus.h
11790         Remove DBusDict
11791
11792         * dbus/dbus-internals.c: (_dbus_type_to_string):
11793         Update for new types.
11794
11795         * dbus/dbus-marshal.[ch]:
11796         Implement recursive types and the new marshalling format.
11797         Remove hardcoded dict marshalling.
11798         Marshal named types.
11799
11800         * dbus/dbus-message-builder.c:
11801         Add BYTE_ARRAY.
11802         Remove references to old types
11803
11804         * dbus/dbus-message.[ch]:
11805         New non-refcounted iter API that supports recursive iters.
11806         Use iters for appending, including support for recursive
11807         iters.
11808         Add byte and named type support.
11809         Update everything to new marshalling formats.
11810         Add tests for new API.
11811
11812         * dbus/dbus-protocol.h:
11813         Remove old array types.
11814         Add types: BYTE, ARRAY, DICT, NAMED
11815
11816         * dbus/dbus-string.c:
11817         * dbus/dbus-sysdeps.c:
11818         Make parse_double locale safe.
11819
11820         * dbus/dbus-test-main.c:
11821         Call setlocale.
11822
11823         * dbus/dbus-test.c:
11824         Kill dict test
11825
11826         * doc/dbus-specification.sgml:
11827         Update spec
11828
11829         * test/data/incomplete-messages/missing-body.message:
11830         * test/data/invalid-messages/bad-boolean.message:
11831         * test/data/invalid-messages/bad-boolean-array.message:
11832         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11833         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11834         * test/data/invalid-messages/too-short-dict.message:
11835         * test/data/valid-messages/dict-simple.message:
11836         * test/data/valid-messages/dict.message:
11837         * test/data/valid-messages/emptiness.message:
11838         * test/data/valid-messages/lots-of-arguments.message:
11839         * test/data/valid-messages/no-padding.message:
11840         * test/data/valid-messages/recursive-types.message:
11841         Add missing NAME fields
11842         Fix up dicts & arrays
11843
11844         * test/data/invalid-messages/dict-with-nil-value.message:
11845         Removed, this is not invalid anymore.
11846
11847         * test/data/valid-messages/recursive-types.message:
11848         Add new test for deeply recursive types.
11849
11850 2003-04-07  Havoc Pennington  <hp@pobox.com>
11851
11852         * bus/driver.c (bus_driver_handle_acquire_service): return an
11853         error if you try to acquire a service that starts with ':'
11854
11855 2003-04-07  Havoc Pennington  <hp@redhat.com>
11856
11857         * doc/dbus-specification.sgml: require that base service names
11858         start with ':' and that the base service is created/deleted
11859         as first and last things a connection does on the bus
11860
11861         * bus/dispatch.c (check_existent_service_activation): lots more
11862         work on the activation test; it doesn't fully pass yet...
11863
11864         * test/test-service.c (main): fix so we don't memleak the
11865         connection to the message bus
11866         (filter_func): accept a message asking us to exit
11867
11868 2003-04-06  Havoc Pennington  <hp@pobox.com>
11869
11870         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11871         from Colin Walters
11872
11873         * configure.in: fixes to Qt detection from Colin Walters
11874
11875         * doc/Makefile.am: Only remove generated docbook dirs if they
11876         exist, from Colin Walters
11877
11878         * dbus/dbus-bus.c: change how we set well-known connections to
11879         NULL, so that it works if a single connection is stored in
11880         two well-known array slots.
11881
11882         * test/Makefile.am: remove a lot of stuff that isn't immediately
11883         useful, it's in CVS history if we want it.
11884
11885         * test/test-service.c: use dbus-mainloop instead of that
11886         watch.[hc] crack
11887
11888 2003-04-06  Havoc Pennington  <hp@pobox.com>
11889
11890         * dbus/Makefile.am: split lists of sources into stuff that goes in
11891         the library, util functions that go in the lib and are also used
11892         elsewhere, and util functions that are used in tests/daemon but
11893         don't go in the lib.
11894
11895         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11896         here so it can be used in test binaries also
11897
11898 2003-04-06  Havoc Pennington  <hp@pobox.com>
11899
11900         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11901         here in the parent process, so we can return an error if it
11902         fails. Also, move some of the code into the child so the parent
11903         is less hosed if we fail midway through.
11904
11905         * bus/bus.c (bus_context_new): move pidfile detection further up
11906         in the function, before we start overwriting sockets and such.
11907
11908         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11909
11910         * configure.in: add --with-system-pid-file and --with-system-socket
11911
11912 2003-04-06  Colin Walters  <walters@verbum.org>
11913
11914         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11915
11916         * bus/system.conf.in: Declare a pidfile.
11917
11918         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11919         create one (if appropriate).
11920
11921         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11922         (struct BusConfigParser) [pidfile]: New.
11923         (element_type_to_name, merge_included, start_busconfig_child)
11924         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11925         (bus_config_parser_unref): Free it.
11926         (bus_config_parser_get_pidfile): New function.
11927
11928         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11929
11930         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11931
11932         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11933
11934         * dbus/dbus-sysdeps.h: Prototype it.
11935
11936 2003-04-06  Havoc Pennington  <hp@pobox.com>
11937
11938         * bus/bus.c (bus_context_new): print the address in here, rather
11939         than in main(), because we need to do it before forking the daemon
11940
11941         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11942         on the service nonexistent error
11943
11944         * bus/driver.c (bus_driver_handle_acquire_service): set the
11945         sender on the AcquireService reply
11946
11947         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11948         server also listen on a UNIX socket so services can connect to it.
11949
11950 2003-04-06  Havoc Pennington  <hp@pobox.com>
11951
11952         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11953         so it detects deadlocks and also we actually init threads when
11954         debugging.
11955
11956 2003-04-06  Havoc Pennington  <hp@pobox.com>
11957
11958         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11959         save the domain socket name, and unlink it when we disconnect the
11960         server. Means that at least when we exit normally, we won't leave
11961         a bunch of junk in /tmp
11962
11963         * dbus/dbus-transport-unix.c
11964         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11965         memory management). (I was making a real change here but then
11966         didn't)
11967
11968 2003-04-06  Havoc Pennington  <hp@pobox.com>
11969
11970         * bus/bus.c (bus_context_new): fix wrong handling of
11971         server_data_slot_unref() in the error case.
11972
11973         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11974         "(condition) != 0" to _dbus_real_assert so that
11975         "_dbus_assert (pointer)" doesn't cause a warning
11976
11977         * bus/main.c (main): accept --print-address option to print out
11978         the message bus address
11979
11980         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11981
11982         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11983         "tmpdir" option to unix: address on client side
11984
11985         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11986         to unix: address
11987
11988         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11989         we can use to create sockets in the test suite.
11990
11991         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11992         cleanly. To be used for testing.
11993
11994         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11995
11996         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11997
11998         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11999         handle trying to call this when there's no servers active
12000
12001 2003-04-05  Havoc Pennington  <hp@pobox.com>
12002
12003         * NEWS: update
12004
12005         * configure.in: 0.8
12006
12007 2003-04-05  Havoc Pennington  <hp@pobox.com>
12008
12009         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
12010         crash on startup. Need to get "try starting the daemon"
12011         in the test suite I guess. ;-)
12012
12013         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
12014         tracked the number of open connections; it's better done in
12015         application-specific code as you want it to span all servers etc.
12016
12017 2003-04-05  Havoc Pennington  <hp@pobox.com>
12018
12019         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12020         patch from Colin Walters
12021
12022 2003-04-05  Havoc Pennington  <hp@pobox.com>
12023
12024         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12025         reality; in fact multiple mechanisms are allowed.
12026
12027         * dbus/dbus-internals.c (_dbus_real_assert)
12028         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12029         _dbus_assert_not_reached() into functions, so that they don't show
12030         up in basic block counts for test coverage, and don't use up as
12031         much disk space. Does mean slower execution speed though, so
12032         assumes --disable-asserts is the normal production case.
12033
12034 2003-04-05  Havoc Pennington  <hp@pobox.com>
12035
12036         * test/Makefile.am (dist-hook): also dist *.in files
12037
12038         * NEWS: update
12039
12040         * configure.in: 0.7
12041
12042 2003-04-05  Havoc Pennington  <hp@pobox.com>
12043
12044         * dbus/dbus-string.c: docs warning
12045
12046         * dbus/dbus-spawn.c: missing docs
12047
12048         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12049
12050 2003-04-05  Havoc Pennington  <hp@pobox.com>
12051
12052         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12053         magic from GLib
12054
12055         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12056         to -1 once we've reaped the babysitter
12057         (_dbus_babysitter_handle_watch): do as much work as we can, not
12058         just one go of it
12059
12060         * bus/activation.c: add code using DBusBabysitter so that we
12061         handle it when a service fails to start up properly.
12062         (bus_activation_service_created): don't remove the activation
12063         entries as we go, just let them get removed when we free the pending
12064         activation. Unref reply messages after sending them.
12065
12066 2003-04-05  Havoc Pennington  <hp@pobox.com>
12067
12068         * test/decode-gcov.c (main): print per-directory stats in the report
12069
12070         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12071
12072 2003-04-05  Havoc Pennington  <hp@pobox.com>
12073
12074         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12075
12076         * test/decode-gcov.c: hack up a little program to suck data
12077         out of gcov files. Yes this is sort of silly.
12078
12079         * configure.in: define something in config.h and do an
12080         AM_CONDITIONAL when gcov is enabled
12081
12082 2003-04-04  Havoc Pennington  <hp@redhat.com>
12083
12084         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12085         return a "babysitter" object that is used to monitor the status of
12086         the spawned process and reap it when required.
12087
12088         * test/test-segfault.c, test/test-exit.c,
12089         test/test-sleep-forever.c: binaries that do various lame things,
12090         used in the test suite.
12091
12092         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12093
12094 2003-04-03  Havoc Pennington  <hp@pobox.com>
12095
12096         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12097         in preparation for modifying it, dbus-sysdeps is getting
12098         a bit unmanageable.
12099
12100 2003-04-03  Havoc Pennington  <hp@redhat.com>
12101
12102         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12103         have multiple ones
12104
12105         * bus/*.[hc]: adapt to mainloop change
12106
12107 2003-04-03  Havoc Pennington  <hp@redhat.com>
12108
12109         * bus/activation.c (load_directory): fix up memleaks
12110         (bus_activation_entry_free): free the entry
12111
12112         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12113         we get one from the message bus; fix memleaks.
12114
12115         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12116
12117 2003-04-03  Havoc Pennington  <hp@pobox.com>
12118
12119         * bus/config-parser.c (bus_config_parser_unref): free
12120         list of mechanisms, bug discovered by test suite enhancements
12121         (putting system.conf and session.conf into suite)
12122
12123         * test/Makefile.am, test/test-service.c: add placeholder for a
12124         test service that we'll activate as part of test suite. Doesn't
12125         do anything yet.
12126
12127         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12128         setting NULL value, and use system malloc not dbus_malloc()
12129         when we have unavoidable memleakage.
12130
12131         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12132         didn't work, and support DBUS_BUS_ACTIVATION.
12133
12134         * bus/activation.c (child_setup): pass our well-known bus type to
12135         the child
12136
12137         * bus/config-parser.c: support <type> to specify well-known type
12138
12139         * doc/dbus-specification.sgml: document the env variables to
12140         locate well-known buses and find service activator
12141
12142 2003-04-02  Havoc Pennington  <hp@redhat.com>
12143
12144         * test/Makefile.am (all-local): add a rule to copy tests to
12145         builddir, so we can have generated tests. Use this to remove the
12146         silly hack for testing system.conf and session.conf. Will use this
12147         shortly to generate .service files pointing to test binaries.
12148
12149 2003-04-02  Havoc Pennington  <hp@redhat.com>
12150
12151         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12152         current alloc and needed new length, not max of the doubled
12153         allocation and needed new length. Also, when building tests,
12154         don't do the double-allocation stuff, just realloc every time.
12155
12156 2003-04-02  Havoc Pennington  <hp@redhat.com>
12157
12158         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12159         in error messages
12160         (_dbus_string_get_dirname): new
12161         (_dbus_sysdeps_test): new
12162         (_dbus_directory_open): include dirnames in error messages
12163
12164         * bus/config-parser.c: interpret <include> and <includedir> and
12165         <servicedir> relative to config file location if the given
12166         filename is not absolute.
12167
12168         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12169
12170 2003-04-02  Havoc Pennington  <hp@redhat.com>
12171
12172         * bus/connection.c (bus_transaction_send_error_reply): set sender
12173         service for the error, and unref the reply on success
12174
12175         * bus/activation.c: convert to use BusTransaction so OOM can be
12176         handled correctly
12177         (bus_activation_service_created): set sender of the message
12178
12179 2003-04-01  Havoc Pennington  <hp@redhat.com>
12180
12181         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12182         <includedir> (at least mostly)
12183
12184         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12185         first, then the user ID
12186
12187 2003-04-01  Havoc Pennington  <hp@pobox.com>
12188
12189         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12190         function
12191
12192         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12193
12194         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12195
12196         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12197         socket 0777, and unlink any existing socket.
12198
12199         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12200         the configuration file so specifies; set up auth mechanism
12201         restrictions
12202
12203         * bus/config-parser.c (bus_config_parser_content): add support
12204         for <fork> option and fill in code for <auth>
12205
12206         * bus/system.conf.in: add <fork/> to default configuration,
12207         and limit auth mechanisms to EXTERNAL
12208
12209         * doc/config-file.txt (Elements): add <fork>
12210
12211         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12212         (_dbus_change_identity): new function
12213
12214 2003-03-31  Havoc Pennington  <hp@redhat.com>
12215
12216         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12217         (_dbus_listen_unix_socket): fix off-by-one error in null
12218         termination spotted by Nalin
12219
12220 2003-03-31  Havoc Pennington  <hp@redhat.com>
12221
12222         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12223         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12224         having a real home directory available.
12225
12226 2003-03-31  Havoc Pennington  <hp@redhat.com>
12227
12228         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12229
12230         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12231
12232         * configure.in: add support for specifying a style of init script
12233         to install
12234
12235 2003-03-31  Havoc Pennington  <hp@redhat.com>
12236
12237         Fix some annoying DBusString API and fix all affected code.
12238
12239         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12240         max_length argument
12241         (_dbus_string_get_data): change to return string instead of using
12242         an out param
12243         (_dbus_string_get_const_data): ditto
12244         (_dbus_string_get_data_len): ditto
12245         (_dbus_string_get_const_data_len): ditto
12246
12247 2003-03-31  Havoc Pennington  <hp@redhat.com>
12248
12249         * bus/main.c (main): fix up the command line arguments to be nicer
12250
12251 2003-03-31  Havoc Pennington  <hp@redhat.com>
12252
12253         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12254         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12255         final location that lands in the config file
12256
12257         * bus/config-loader-expat.c (bus_config_load): fix type of
12258         XML_Parser variable
12259
12260         * doc/TODO: remove TODO item for dbus_bus_get()
12261
12262         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12263
12264 2003-03-31  Havoc Pennington  <hp@pobox.com>
12265
12266         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12267         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12268         argument since they are always client side
12269
12270         * dbus/dbus-server.c (dbus_server_get_address): new function
12271
12272         * bus/main.c (main): take the configuration file as an argument.
12273
12274         * test/data/valid-config-files/debug-allow-all.conf: new file to
12275         use with dispatch.c tests for example
12276
12277         * bus/test-main.c (main): require test data dir
12278
12279         * bus/bus.c (bus_context_new): change this to take a
12280         configuration file name as argument
12281
12282         * doc/config-file.txt (Elements): add <servicedir>
12283
12284         * bus/system.conf, bus/session.conf: new files
12285
12286         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12287         well-known socket if none set
12288
12289         * configure.in: create system.conf and session.conf
12290
12291 2003-03-30  Havoc Pennington  <hp@pobox.com>
12292
12293         * bus/config-parser.c: hacking
12294
12295         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12296         to shut down, since it could cause weirdness with the DBusList
12297         lock
12298
12299         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12300         link-oriented stack routines
12301         (alloc_link): free the mempool if the first alloc from it fails
12302
12303         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12304
12305         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12306         from GLib
12307         (_dbus_string_skip_white): new
12308
12309         * doc/config-file.txt (Elements): add <includedir>
12310
12311 2003-03-28  Havoc Pennington  <hp@pobox.com>
12312
12313         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12314         (_dbus_string_copy_data): new functions
12315
12316 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12317
12318         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12319         * dbus/dbus-bus.h:
12320         Add dbus_bus_get.
12321
12322         * dbus/dbus-memory.c:
12323         Fix a doc comment.
12324
12325 2003-03-28  Havoc Pennington  <hp@pobox.com>
12326
12327         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12328         I think it may have just been superstition. Not sure.
12329
12330         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12331         failures that were not being handled.
12332
12333         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12334
12335         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12336         row that will fail on out-of-memory.
12337
12338         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12339         function for testing out-of-memory handling.
12340
12341         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12342         allocation functions, they do map exactly to the expat ones.
12343
12344 2003-03-27  Havoc Pennington  <hp@redhat.com>
12345
12346         * bus/config-loader-libxml.c (bus_config_load): add another error
12347         check
12348
12349 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12350
12351         * doc/TODO:
12352         Add note about automatic service activation.
12353
12354         * doc/dbus-specification.sgml:
12355         Rename the specification and clarify a few things.
12356
12357 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12358
12359         * Doxyfile.in:
12360         * dbus/dbus-address.c:
12361         * dbus/dbus-dict.c:
12362         * dbus/dbus-marshal.c:
12363         * dbus/dbus-server-debug-pipe.c:
12364         * dbus/dbus-transport-unix.c:
12365         Fix documentation warnings.
12366
12367 2003-03-26  Havoc Pennington  <hp@pobox.com>
12368
12369         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12370         after every test so it's quick and easy to see which leaked, and
12371         so we test multiple dbus_shutdown() calls
12372
12373         * configure.in: change configure.in XML stuff to also support
12374         expat
12375
12376         * config-loader-libxml.c: some hacking
12377
12378         * config-loader-expat.c: some hacking
12379
12380         * config-parser.c: some hacking, plus tests
12381
12382 2003-03-25  Havoc Pennington  <hp@redhat.com>
12383
12384         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12385
12386         * configure.in: add --with-xml option to specify XML library,
12387         right now only libxml is supported.
12388
12389         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12390         nonworking code between home and work, still just stubs
12391
12392 2003-03-24  Havoc Pennington  <hp@redhat.com>
12393
12394         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12395         file
12396
12397         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12398         NULL argument for "message" if the error is a well-known one,
12399         fill in a generic message in this case.
12400
12401         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12402         favor of DBusError
12403
12404         * bus/test.c (bus_test_flush_bus): add
12405
12406         * bus/policy.c (bus_policy_test): test code stub
12407
12408 2003-03-24  Havoc Pennington  <hp@pobox.com>
12409
12410         * bus/connection.c (bus_connections_setup_connection): set up
12411         the "can this user connect" function, but it always returns
12412         TRUE until we have a config file parser so we can have a config
12413         file that allows connections.
12414
12415 2003-03-23  Havoc Pennington  <hp@pobox.com>
12416
12417         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12418         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12419         the mutex, so we can check for proper memory management
12420         and OOM handling.
12421
12422         * dbus/dbus-dataslot.c: remove the mutex from
12423         DBusDataSlotAllocator and lock it manually when using it,
12424         to simplify fitting it into the global slots framework.
12425
12426         * dbus/dbus-threads.c (init_static_locks): rework how we're
12427         handling global locks so they are easily shut down.
12428
12429         * bus/policy.c (bus_policy_append_rule): fix
12430
12431         * bus/test-main.c (main): check for memleaks
12432
12433         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12434         test suite check for memleaks
12435
12436         * dbus/dbus-memory.c: add support in test mode for tracking
12437         number of outstanding blocks
12438
12439 2003-03-23  Havoc Pennington  <hp@pobox.com>
12440
12441         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12442         policies code
12443
12444         * dbus/dbus-hash.h: add ULONG hash keys
12445
12446         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12447         (_dbus_get_group_id): new function
12448
12449 2003-03-20  Havoc Pennington  <hp@redhat.com>
12450
12451         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12452         new function
12453         (dbus_connection_get_unix_user): new function
12454
12455 2003-03-20  Havoc Pennington  <hp@pobox.com>
12456
12457         * bus/connection.c (bus_connection_send_oom_error): assert that
12458         message has a sender
12459         (connection_execute_transaction): ditto
12460         (bus_connection_preallocate_oom_error): fix to set the sender, and
12461         set recipient to the destination service, not the bus driver
12462
12463         * bus/policy.c: hacking
12464
12465         * dbus/dbus-message.c (dbus_message_service_is): new function
12466         (dbus_message_sender_is): new
12467
12468 2003-03-19  Havoc Pennington  <hp@redhat.com>
12469
12470         * bus/policy.c: start sketching code for policy restrictions on
12471         what connections can do.
12472
12473 2003-03-18  Havoc Pennington  <hp@redhat.com>
12474
12475         * doc/TODO: some notes on high-level todo items. Little nitpick
12476         stuff is all in @todo, so no need to add it here.
12477
12478         * doc/config-file.txt: some notes on how config file might look
12479
12480 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12481
12482         * configure.in: 0.6
12483
12484         * NEWS: Update.
12485
12486 2003-03-17  Havoc Pennington  <hp@redhat.com>
12487
12488         * dbus/dbus-internals.h: add gcc attributes so that
12489         our printf-style functions warn on bad arguments to
12490         format
12491
12492         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12493         format bug
12494
12495         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12496         printf format bug
12497
12498 2003-03-17  Havoc Pennington  <hp@redhat.com>
12499
12500         * bus/test-main.c (main): make it print something as it runs
12501         so make check doesn't look stuck
12502
12503         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12504         from CVS, now obsolete
12505
12506 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12507
12508         * bus/dispatch.c: (bus_dispatch):
12509         Refetch the service name since it may have been reallocated
12510         when dbus_message_set_sender was called.
12511
12512         * dbus/dbus-sysdeps.c: (_dbus_accept):
12513         Add address and address length variables and use them to stop
12514         valgrind from complaining.
12515
12516 2003-03-17  Havoc Pennington  <hp@pobox.com>
12517
12518         All tests pass, no memleaks, no valgrind complaints.
12519
12520         * bus/test.c: refcount handler_slot
12521
12522         * bus/connection.c (bus_connections_new): refcount
12523         connection_data_slot
12524
12525         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12526         bytes so that auth scripts pass.
12527
12528         * bus/dispatch.c: init message_handler_slot so it gets allocated
12529         properly
12530
12531         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12532
12533         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12534         dealloc server_pipe_hash when no longer used for benefit of
12535         leak checking
12536
12537         * dbus/dbus-auth.c (process_command): memleak fix
12538
12539         * bus/dispatch.c (check_hello_message): memleak fix
12540
12541 2003-03-16  Havoc Pennington  <hp@pobox.com>
12542
12543         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12544
12545 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12546
12547         * bus/activation.c (bus_activation_activate_service): Append
12548         the pending activation entry to the list of pending activations.
12549
12550 2003-03-16  Havoc Pennington  <hp@pobox.com>
12551
12552         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12553         connections
12554
12555         * dbus/dbus-address.c (create_entry): fix OOM handling when
12556         failing to alloc entry->method
12557
12558 2003-03-16  Havoc Pennington  <hp@pobox.com>
12559
12560         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12561         the watch
12562
12563         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12564         add some missing dbus_set_result
12565
12566         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12567         alloc the DBusMessageHandler
12568
12569         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12570         the transport here, since we call this from the finalizer; it
12571         resulted in a double-finalize.
12572
12573         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12574         where we tried to use transport->connection that was NULL,
12575         happened when transport was disconnected early on due to OOM
12576
12577         * bus/*.c: adapt to handle OOM for watches/timeouts
12578
12579         * dbus/dbus-transport-unix.c: port to handle OOM during
12580         watch handling
12581
12582         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12583         reference to unused bytes instead of a copy
12584
12585         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12586         out of memory
12587
12588         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12589         FALSE on OOM
12590
12591         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12592         of memory
12593
12594 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12595
12596         * doc/dbus-specification.sgml:
12597         Document reply message for ActivateService.
12598
12599 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12600
12601         * bus/activation.c: (bus_pending_activation_entry_free),
12602         (bus_pending_activation_free), (bus_activation_new),
12603         (bus_activation_unref), (bus_activation_service_created),
12604         (bus_activation_activate_service):
12605         * bus/activation.h:
12606         * bus/bus.c: (bus_context_new):
12607         * bus/desktop-file.c: (new_section):
12608         * bus/driver.c: (bus_driver_send_service_deleted),
12609         (bus_driver_handle_activate_service):
12610         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12611         * bus/services.h:
12612         * dbus/dbus-connection.c:
12613         (dbus_connection_send_with_reply_and_block):
12614         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12615         * dbus/dbus-protocol.h:
12616         Make activation work better. Now pending activations will be queued
12617         and the daemon won't try to activate services that are already registered.
12618
12619 2003-03-16  Havoc Pennington  <hp@pobox.com>
12620
12621         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12622         connection data
12623
12624         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12625         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12626
12627 2003-03-16  Havoc Pennington  <hp@pobox.com>
12628
12629         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12630         this. always run the test suite before commit...
12631
12632         * bus/*: adapt to DBusConnection API changes
12633
12634         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12635         requires renaming stuff to avoid dbus_connection_dispatch name
12636         conflict.
12637
12638         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12639         function
12640
12641         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12642         separate from _dbus_message_loader_return_buffer()
12643
12644         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12645         this, because it's now always broken to use; the number of
12646         messages in queue vs. the number still buffered by the message
12647         loader is undefined/meaningless. Should use
12648         dbus_connection_get_dispatch_state().
12649         (dbus_connection_dispatch): rename from
12650         dbus_connection_dispatch_message
12651
12652 2003-03-16  Havoc Pennington  <hp@pobox.com>
12653
12654         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12655         implementation
12656
12657 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12658
12659         * dbus/dbus-connection.c:
12660         (dbus_connection_send_with_reply_and_block):
12661         Decrease connection->n_incoming when removing an entry
12662         from the list.
12663         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12664         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12665         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12666         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12667         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12668         (dbus_dict_get_byte_array):
12669         Handle NULL arrays and strings. Also add support for byte arrays.
12670
12671         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12672         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12673         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12674         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12675         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12676         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12677         * dbus/dbus-marshal.h:
12678         Add support for marshalling and demarshalling empty arrays and strings.
12679
12680         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12681         (dbus_message_append_string_array),
12682         (dbus_message_iter_get_boolean),
12683         (dbus_message_iter_get_boolean_array),
12684         (dbus_message_iter_get_int32_array),
12685         (dbus_message_iter_get_uint32_array),
12686         (dbus_message_iter_get_double_array),
12687         (dbus_message_iter_get_byte_array),
12688         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12689         (check_message_handling):
12690         Add support for getting empty arrays and dicts.
12691
12692         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12693         Don't do any validation at all for now, that's better than just checking
12694         for ASCII.
12695
12696         * test/data/valid-messages/emptiness.message:
12697         New test message with lots of empty arrays.
12698
12699 2003-03-16  Havoc Pennington  <hp@pobox.com>
12700
12701         * dbus/dbus-connection.c
12702         (_dbus_connection_queue_received_message_link): new function that
12703         can't fail due to OOM
12704
12705         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12706         new function pops a message together with a list link
12707         containing it.
12708
12709         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12710         message queuing functions to avoid needing to alloc memory
12711
12712 2003-03-16  Havoc Pennington  <hp@pobox.com>
12713
12714         Oops - test code was only testing failure of around 30 of the
12715         mallocs in the test path, but it turns out there are 500+
12716         mallocs. I believe this was due to misguided linking setup such
12717         that there was one copy of dbus_malloc etc. in the daemon and one
12718         in the shared lib, and only daemon mallocs were tested. In any
12719         case, the test case now tests all 500+ mallocs, and doesn't pass
12720         yet, though there are lots of fixes in this patch.
12721
12722         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12723         this so that it doesn't need to allocate memory, since it
12724         has no way of indicating failure due to OOM (and would be
12725         annoying if it did).
12726
12727         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12728
12729         * bus/Makefile.am: rearrange to create two self-contained
12730         libraries, to avoid having libraries with overlapping symbols.
12731         that was resulting in weirdness, e.g. I'm pretty sure there
12732         were two copies of global static variables.
12733
12734         * dbus/dbus-internals.c: move the malloc debug stuff to
12735         dbus-memory.c
12736
12737         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12738         empty.
12739
12740         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12741
12742         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12743         on failure.
12744
12745         * bus/dispatch.c (bus_dispatch_add_connection): free
12746         message_handler_slot when no longer using it, so
12747         memory leak checkers are happy for the test suite.
12748
12749         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12750
12751         * bus/bus.c (new_connection_callback): disconnect in here if
12752         bus_connections_setup_connection fails.
12753
12754         * bus/connection.c (bus_connections_unref): fix to free the
12755         connections
12756         (bus_connections_setup_connection): if this fails, don't
12757         disconnect the connection, just be sure there are no side
12758         effects.
12759
12760         * dbus/dbus-string.c (undo_alignment): unbreak this
12761
12762         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12763         leaking
12764         (_dbus_auth_new): fix the order in which we free strings
12765         on OOM failure
12766
12767         * bus/connection.c (bus_connection_disconnected): fix to
12768         not send ServiceDeleted multiple times in case of memory
12769         allocation failure
12770
12771         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12772         get the base service name
12773         (dbus_bus_register_client): don't return base service name,
12774         instead store it on the DBusConnection and have an accessor
12775         function for it.
12776         (dbus_bus_register_client): rename dbus_bus_register()
12777
12778         * bus/dispatch.c (check_hello_message): verify that other
12779         connections on the bus also got the correct results, not
12780         just the one sending hello
12781
12782 2003-03-15  Havoc Pennington  <hp@pobox.com>
12783
12784         Make it pass the Hello handling test including all OOM codepaths.
12785         Now to do other messages...
12786
12787         * bus/services.c (bus_service_remove_owner): fix crash when
12788         removing owner from an empty list of owners
12789         (bus_registry_ensure): don't leave service in the list of
12790         a connection's owned services if we fail to put the service
12791         in the hash table.
12792
12793         * bus/connection.c (bus_connection_preallocate_oom_error): set
12794         error flag on the OOM error.
12795
12796         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12797         handle _dbus_transport_set_connection failure
12798
12799         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12800         to create watches up front and simply enable/disable them as
12801         needed.
12802         (unix_connection_set): this can now fail on OOM
12803
12804         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12805         of enabling/disabling a watch or timeout.
12806
12807         * bus/loop.c (bus_loop_iterate): don't touch disabled
12808         watches/timeouts
12809
12810         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12811
12812 2003-03-15  Havoc Pennington  <hp@pobox.com>
12813
12814         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12815         write useful test code, after all that futzing around ;-)
12816
12817         Test does not yet pass because we can't handle OOM in
12818         _dbus_transport_messages_pending (basically,
12819         dbus_connection_preallocate_send() does not prealloc the write
12820         watch). To fix this, I think we need to add new stuff to
12821         set_watch_functions, namely a SetEnabled function so we can alloc
12822         the watch earlier, then enable it later.
12823
12824         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12825         dbus-memory.c to the convenience lib
12826
12827         * bus/test.c: rename some static functions to keep them clearly
12828         distinct from stuff in connection.c. Handle client disconnection.
12829
12830 2003-03-14  Havoc Pennington  <hp@pobox.com>
12831
12832         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12833         transport, tests more of the real codepath. Set up clients
12834         with bus_setup_debug_client.
12835
12836         * bus/test.c (bus_setup_debug_client): function to set up debug
12837         "clients" on the main loop
12838
12839         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12840         support
12841
12842         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12843         server type
12844
12845         * dbus/dbus-server-debug.c: support a debug server based on pipes
12846
12847         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12848         (_dbus_close): new function
12849
12850         * configure.in: check for socketpair
12851
12852 2003-03-14  Havoc Pennington  <hp@redhat.com>
12853
12854         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12855         cheesy hack
12856
12857         * dbus/dbus-transport-debug.c: rework this a good bit to be
12858         less complicated. hopefully still works.
12859
12860         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12861         manually
12862
12863         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12864         after running it
12865
12866         * dbus/dbus-message.c (dbus_message_copy): rename from
12867         dbus_message_new_from_message, fix it up to copy
12868         all the message fields, add test case
12869
12870         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12871         not quite passing yet
12872
12873 2003-03-14  Havoc Pennington  <hp@pobox.com>
12874
12875         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12876         until no work remains" in test code. (the large diff here
12877         is just code movement, no actual changes)
12878
12879         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12880         1, no point waiting around for test code.
12881         (_dbus_server_debug_accept_transport): unref the timeout
12882         after adding it (right?)
12883
12884         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12885
12886 2003-03-13  Havoc Pennington  <hp@redhat.com>
12887
12888         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12889         out of memory
12890
12891         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12892         of memory
12893
12894         * dbus/dbus-connection.h: Make AddWatchFunction and
12895         AddTimeoutFunction return a bool so they can fail on out-of-memory
12896
12897         * bus/bus.c (bus_context_new): set up timeout handlers
12898
12899         * bus/connection.c (bus_connections_setup_connection): set up
12900         timeout handlers
12901
12902         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12903         can fail
12904
12905         * bus/bus.c (bus_context_new): adapt to changes
12906
12907         * bus/connection.c: adapt to changes
12908
12909         * test/watch.c: adapt to DBusWatch changes
12910
12911         * bus/dispatch.c (bus_dispatch_test): started adding this but
12912         didn't finish
12913
12914 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12915
12916         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12917
12918 2003-03-13  Havoc Pennington  <hp@pobox.com>
12919
12920         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12921         set up a test framework as for the library
12922
12923 2003-03-12  Havoc Pennington  <hp@pobox.com>
12924
12925         Throughout: purge global variables, introduce BusActivation,
12926         BusConnections, BusRegistry, etc. objects instead.
12927
12928         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12929         message bus object
12930
12931         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12932         going to redo this a bit differently I think
12933
12934 2003-03-12  Havoc Pennington  <hp@redhat.com>
12935
12936         Mega-patch that gets the message bus daemon initially handling
12937         out-of-memory. Work still needed. Also lots of random
12938         moving stuff to DBusError instead of ResultCode.
12939
12940         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12941
12942         * dbus/dbus-connection.c
12943         (dbus_connection_send_with_reply_and_block): use DBusError
12944
12945         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12946         DBusResultCode
12947
12948         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12949         code here, as the only failure possible is OOM.
12950
12951         * bus/connection.c (bus_connection_disconnect):
12952         rename bus_connection_disconnected as it's a notification only
12953
12954         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12955         "name" on get_args failure, should be done by get_args;
12956         don't disconnect client for bad args, just return an error.
12957         (bus_driver_handle_service_exists): ditto
12958
12959         * bus/services.c (bus_services_list): NULL-terminate returned array
12960
12961         * bus/driver.c (bus_driver_send_service_lost)
12962         (bus_driver_send_service_acquired): send messages from driver to a
12963         specific client to the client's unique name, not to the broadcast
12964         service.
12965
12966         * dbus/dbus-message.c (decode_header_data): reject messages that
12967         contain no name field
12968         (_dbus_message_get_client_serial): rename to
12969         dbus_message_get_serial and make public
12970         (_dbus_message_set_serial): rename from set_client_serial
12971         (_dbus_message_set_reply_serial): make public
12972         (_dbus_message_get_reply_serial): make public
12973
12974         * bus/connection.c (bus_connection_foreach): allow stopping
12975         iteration by returning FALSE from foreach function.
12976
12977         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12978         (dbus_connection_free_preallocated_send)
12979         (dbus_connection_preallocate_send): new API for sending a message
12980         without possibility of malloc failure.
12981         (dbus_connection_send_message): rename to just
12982         dbus_connection_send (and same for whole function family)
12983
12984         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12985
12986         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12987
12988         * bus/activation.c: handle/return errors
12989
12990         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12991
12992         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12993         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12994         (_dbus_result_from_errno): move to this file
12995
12996 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12997
12998         * dbus/dbus-marshal.c:
12999         (_dbus_marshal_set_string):
13000         Take a length argument so we can marshal the correct string
13001         length.
13002
13003         (_dbus_marshal_dict), (_dbus_demarshal_dict),
13004         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
13005         (_dbus_marshal_test):
13006         * dbus/dbus-marshal.h:
13007         Add support for marshalling and demarshalling dicts.
13008
13009         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13010         Add support for TYPE DICT.
13011
13012         * dbus/dbus-message.c: (set_string_field):
13013         Adjust header padding.
13014
13015         (dbus_message_append_args_valist), (dbus_message_append_dict),
13016         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
13017         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13018         (check_message_handling), (check_have_valid_message):
13019         * dbus/dbus-message.h:
13020         Add functions for setting and getting dicts.
13021
13022         * dbus/dbus-protocol.h:
13023         Add DBUS_TYPE_DICT.
13024
13025         * dbus/dbus.h:
13026         Add dbus-dict.h
13027
13028         * doc/dbus-specification.sgml:
13029         Add information about how dicts are marshalled.
13030
13031         * test/data/invalid-messages/dict-with-nil-value.message:
13032         * test/data/invalid-messages/too-short-dict.message:
13033         * test/data/valid-messages/dict-simple.message:
13034         * test/data/valid-messages/dict.message:
13035         Add sample messages containing dicts.
13036
13037 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13038
13039         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13040
13041 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13042
13043         * dbus/Makefile.am:
13044         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13045         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13046         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13047         (dbus_dict_set_double), (dbus_dict_set_string),
13048         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13049         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13050         (dbus_dict_set_string_array), (_dbus_dict_test):
13051         * dbus/dbus-dict.h:
13052         Fix according to comments from Havoc.
13053
13054 2003-03-06  Michael Meeks  <michael@server.home>
13055
13056         * configure.in: if we don't have kde-config, disable have_qt.
13057
13058 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13059
13060         * dbus/Makefile.am:
13061         Add dbus-dict.[ch]
13062
13063         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13064         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13065         (dbus_dict_remove), (dbus_dict_get_value_type),
13066         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13067         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13068         (dbus_dict_put_double), (dbus_dict_put_string),
13069         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13070         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13071         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13072         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13073         (dbus_dict_get_double), (dbus_dict_get_string),
13074         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13075         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13076         (dbus_dict_get_string_array), (_dbus_dict_test):
13077         * dbus/dbus-dict.h:
13078         Add DBusDict implementation
13079
13080         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13081         * dbus/dbus-test.h:
13082         Add _dbus_dict_test
13083
13084 2003-03-04  Havoc Pennington  <hp@pobox.com>
13085
13086         * test/data/auth/*: adapt to changes
13087
13088         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13089         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13090         userid
13091
13092         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13093         more stuff from being in a context name, to make the protocol
13094         simpler to deal with
13095
13096         * dbus/dbus-errors.c (dbus_error_has_name): new function
13097         (dbus_error_is_set): new function
13098
13099         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13100         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13101
13102         * dbus/dbus-connection.c (dbus_connection_flush): also read
13103         messages during a flush operation
13104
13105         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13106
13107 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13108
13109         * configure.in: Check for gethostbyname on Solaris.
13110
13111         * dbus/dbus-transport.c: (_dbus_transport_open):
13112         Remove duplicate "tcp" entry.
13113
13114         * doc/dbus-specification.sgml:
13115         Clarify some things.
13116
13117 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13118
13119         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13120         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13121         (_dbus_keyring_test):
13122         * dbus/dbus-md5.c: (_dbus_md5_compute):
13123         * dbus/dbus-sha.c: (_dbus_sha_compute):
13124         Plug memory leaks.
13125
13126 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13127
13128         * README: Add some things.
13129
13130 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13131
13132         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13133         after case DBUS_TYPE_BOOELAN.
13134
13135 2003-03-02  Havoc Pennington  <hp@pobox.com>
13136
13137         * test/break-loader.c (randomly_set_extreme_ints): add test that
13138         sets really huge and small integers
13139
13140         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13141         that length of boolean array fits in the string, and that
13142         string has room for boolean value in single-bool case.
13143
13144         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13145         optional value to "ALIGN" command which is what to fill the
13146         alignment with.
13147
13148         * test/data/valid-messages/no-padding.message: add regression
13149         test for the message padding problem
13150
13151 2003-03-02  Havoc Pennington  <hp@pobox.com>
13152
13153         * dbus/dbus-message.c (decode_header_data): fix to always init
13154         message_padding, from Benjamin Dauvergne
13155
13156 2003-03-02  Havoc Pennington  <hp@pobox.com>
13157
13158         * configure.in: 0.5
13159
13160         * NEWS: Update.
13161
13162 2003-03-01  Joe Shaw  <joe@assbarn.com>
13163
13164         * configure.in: Check for "struct cmsgcred" and try to access its
13165         members for BSD-like unices.
13166
13167         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13168         _dbus_read_credentials_unix_socket().
13169         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13170         read() for reading the credential byte off the unix socket.  Use
13171         struct cmsgcred on systems that support it.
13172
13173 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13174
13175         * glib/Makefile.am:
13176         * configure.in:
13177         Make gthreads-2.0 dependency optional. Don't build thread test if
13178         its not found.
13179
13180 2003-02-27  Havoc Pennington  <hp@pobox.com>
13181
13182         * dbus/dbus-connection.c
13183         (dbus_connection_send_message_with_reply_and_block): fix doh!
13184         doh! doh! bug that resulted in never removing a reply from the
13185         queue, no wonder we called get_reply_serial so much ;-)
13186
13187         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13188         and client serial instead of demarshaling them every time
13189
13190 2003-02-27  Havoc Pennington  <hp@pobox.com>
13191
13192         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13193         more inlined, using dbus-string-private.h, speeds things up
13194         substantially
13195
13196         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13197         when freeing the string
13198         (_dbus_string_steal_data): fix for align offset
13199         (undo_alignment): new function
13200
13201 2003-02-26  Havoc Pennington  <hp@redhat.com>
13202
13203         All kinds of audit fixes from Owen, plus initial attempt to
13204         handle unaligned memory returned from malloc.
13205
13206         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13207         leave room for align_offset and nul byte
13208         (fixup_alignment): function to track an align_offset and
13209         ensure real->str is aligned
13210         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13211         to allow a nul byte plus align offset
13212         (_dbus_string_lock): fix overflow issue
13213         (_dbus_string_init_const_len): add assertions on sanity of len,
13214         assign allocated to be ALLOCATION_PADDING larger than len
13215         (set_length): fixup the overflow handling
13216         (_dbus_string_get_data_len): fix overflow in assertion
13217         (open_gap): detect overflow in size of gap to be opened
13218         (_dbus_string_lengthen): add overflow check
13219         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13220         (_dbus_string_append): add overflow check
13221         (_dbus_string_append_unichar): overflow
13222         (_dbus_string_delete): fix overflow in assertion
13223         (_dbus_string_copy_len): overflow in assertion
13224         (_dbus_string_replace_len): overflows in assertions
13225         (_dbus_string_find): change to implement in terms of
13226         _dbus_string_find_to
13227         (_dbus_string_find_to): assorted fixage
13228         (_dbus_string_equal_c_str): assert c_str != NULL,
13229         fix logic so the function works
13230         (_dbus_string_ends_with_c_str): fix overflow thingy
13231         (_dbus_string_base64_encode): overflow fix
13232         (_dbus_string_validate_ascii): overflow
13233         (_dbus_string_validate_nul): overflow
13234
13235 2003-02-26  Havoc Pennington  <hp@redhat.com>
13236
13237         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13238
13239 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13240
13241         * configure.in:
13242         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13243
13244         * dbus/dbus-connection.c:
13245         * dbus/dbus-connection.h:
13246         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13247         Add dbus_connection_set_wakeup_main_function and use it when queueing
13248         incoming and outgoing messages.
13249
13250
13251         * dbus/dbus-dataslot.c:
13252         Threadsafe usage of DBusDataSlotAllocator
13253
13254         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13255         dbus_new can fail.
13256
13257         * dbus/dbus-server-unix.c:
13258         Add todo comment
13259
13260         * glib/dbus-gmain.c:
13261         Implement the new wakeup functions for glib.
13262
13263         * glib/Makefile.am:
13264         * glib/test-thread-client.c:
13265         * glib/test-thread-server.c:
13266         * glib/test-thread.h:
13267         Initial cut at some thread test code. Not really done yet.
13268
13269 2003-02-26  Havoc Pennington  <hp@pobox.com>
13270
13271         * dbus/dbus-connection.c
13272         (dbus_connection_send_message_with_reply_and_block): fix crash
13273         where we ref'd the outgoing message instead of the returned reply
13274
13275         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13276         at the end of this function, so if we didn't need to read for
13277         authentication, we reinstall it for receiving messages
13278
13279         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13280         a NULL sender for peer-to-peer case
13281
13282         * dbus/dbus-transport-unix.c (check_read_watch): handle
13283         !authenticated case correctly
13284
13285         * glib/dbus-gmain.c: add support for DBusServer
13286
13287         * dbus/dbus-server.c: add data slot support
13288
13289         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13290         return values and handle errors
13291
13292         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13293         DBusConnection
13294
13295         * Doxyfile.in (INPUT): add glib subdir
13296
13297         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13298         setup_with_g_main instead of hookup_with_g_main; write docs
13299
13300 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13301
13302         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13303         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13304         * dbus/dbus-message.c: (dbus_message_append_boolean),
13305         (dbus_message_append_boolean_array),
13306         (dbus_message_get_args_valist), (_dbus_message_test):
13307         * dbus/dbus-message.h:
13308         * doc/dbus-specification.sgml:
13309         Various fixes as pointed out by Havoc.
13310
13311         * test/data/invalid-messages/bad-boolean-array.message:
13312         * test/data/invalid-messages/bad-boolean.message:
13313         Add invalid boolean value test cases.
13314
13315 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13316
13317         * dbus/dbus-internals.c: (_dbus_type_to_string):
13318         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13319         (_dbus_marshal_validate_arg):
13320         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13321         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13322         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13323         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13324         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13325         (dbus_message_iter_get_double),
13326         (dbus_message_iter_get_boolean_array), (message_iter_test):
13327         * dbus/dbus-message.h:
13328         * dbus/dbus-protocol.h:
13329         * doc/dbus-specification.sgml:
13330         * test/data/valid-messages/lots-of-arguments.message:
13331         Add support for boolean and boolean array types.
13332
13333 2003-02-23  Havoc Pennington  <hp@pobox.com>
13334
13335         * dbus/dbus-keyring.c: finish most of this implementation and
13336         simple unit test
13337
13338         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13339         these barf if the error isn't cleared to NULL
13340
13341         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13342         (_dbus_create_directory): new function
13343
13344         * dbus/dbus-errors.c (dbus_set_error): fix warning
13345
13346         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13347         (_dbus_string_hex_decode): new function
13348         (test_hex_roundtrip): test code
13349
13350         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13351
13352         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13353
13354         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13355         the save-to-temp/rename trick to atomically write the new file
13356         (_dbus_string_parse_uint): new function
13357
13358 2003-02-22  Havoc Pennington  <hp@pobox.com>
13359
13360         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13361
13362 2003-02-22  Havoc Pennington  <hp@pobox.com>
13363
13364         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13365         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13366
13367         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13368
13369         * dbus/test/data/sha-1: add US government test suite for SHA-1
13370
13371 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13372
13373         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13374         Make string arrays NULL-terminated.
13375
13376         * dbus/dbus-memory.c: (dbus_free_string_array):
13377         * dbus/dbus-memory.h:
13378         New function for freeing NULL-terminated string arrays.
13379
13380         * dbus/dbus-message-builder.c: (append_quoted_string),
13381         (_dbus_message_data_load):
13382         Add support for array types.
13383
13384         * dbus/dbus-message.c: (check_message_handling):
13385         Add more types as test cases.
13386
13387         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13388         (_dbus_string_parse_double):
13389         Add the start offset to the end offset.
13390
13391         * test/data/valid-messages/lots-of-arguments.message:
13392         New test message with lots of arguments.
13393
13394 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13395
13396         * dbus/dbus-message.c: (dbus_message_append_nil),
13397         (dbus_message_append_int32), (dbus_message_append_uint32),
13398         (dbus_message_append_double), (dbus_message_append_string),
13399         (dbus_message_append_int32_array),
13400         (dbus_message_append_uint32_array),
13401         (dbus_message_append_double_array),
13402         (dbus_message_append_byte_array),
13403         (dbus_message_append_string_array):
13404         Fix all out-of-memory handling in these functions.
13405
13406 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13407
13408         * dbus/dbus-message.c: (dbus_message_append_nil):
13409         Fix a silly.
13410
13411 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13412
13413         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13414         (dbus_message_append_nil), (dbus_message_append_int32_array),
13415         (dbus_message_append_uint32_array),
13416         (dbus_message_append_double_array),
13417         (dbus_message_append_byte_array),
13418         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13419         (dbus_message_iter_get_int32_array),
13420         (dbus_message_iter_get_uint32_array),
13421         (dbus_message_iter_get_double_array),
13422         (dbus_message_iter_get_byte_array),
13423         (dbus_message_iter_get_string_array):
13424
13425         * dbus/dbus-message.h:
13426         Add functions for appending and getting arrays.
13427
13428 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13429
13430         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13431         element size at least 8 bytes, fixes mempool tests on
13432         64-bit machines.
13433
13434 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13435
13436         * dbus/dbus-transport-unix.c (unix_do_iteration):
13437         Unlock the connection mutex during a blocking select call.
13438         Add todo about how we need a way to wake up the select.
13439
13440         * dbus/dbus-connection-internal.h:
13441         * dbus/dbus-connection.c:
13442         Add _dbus_connection_lock and _dbus_connection_unlock.
13443
13444 2003-02-19  Havoc Pennington  <hp@pobox.com>
13445
13446         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13447         Doxyfile.in, not Doxyfile
13448
13449         * dbus/dbus-keyring.c: do some hacking on this
13450
13451         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13452
13453         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13454         dbus_error_init
13455         (dbus_set_error): remove dbus_error_init, check for message ==
13456         NULL *before* we sprintf into it, and add @todo about including
13457         system headers in this file
13458
13459         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13460
13461         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13462
13463         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13464         get various bits of user information based on either username
13465         or user ID
13466         (_dbus_homedir_from_username): new function
13467
13468 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13469
13470         * configure.in:
13471         Add check for nonposix getpwnam_r
13472
13473         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13474         Align the pool element size to a sizeof (void *) boundary.
13475
13476         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13477         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13478         General Solaris fixes.
13479
13480         * test/data/valid-messages/simplest-manual.message:
13481         Explicitly state that we want little-endian packing.
13482
13483 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13484
13485         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13486
13487         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13488         Added to create a transport connecting using a tcp/ip socket.
13489
13490         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13491         to a tcp socket at given host and port.
13492         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13493         hostname and port.
13494
13495         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13496
13497         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13498         Added to create a server listening on a TCP/IP socket.
13499
13500 2003-02-19  Havoc Pennington  <hp@pobox.com>
13501
13502         Throughout: mop up all the Doxygen warnings and undocumented
13503         stuff.
13504
13505         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13506         to search any paths.
13507
13508         * dbus/dbus-threads.c: move global mutex initializers to
13509         dbus-internals.h, multiple prototypes was confusing doxygen
13510         besides being kind of ugly
13511
13512         * Doxyfile (PREDEFINED): have Doxygen define
13513         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13514         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13515         (do not abuse the feature! it's for stuff like the autogenerated
13516         macros in dbus-md5.c, not just for things you don't feel like
13517         documenting...)
13518
13519 2003-02-18  Havoc Pennington  <hp@pobox.com>
13520
13521         * dbus/dbus-string.c (_dbus_string_zero): new function
13522
13523         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13524         wrap it in some dbus-friendly API
13525
13526         * dbus/dbus-types.h: add 16-bit types
13527
13528 2003-02-18  Joe Shaw  <joe@assbarn.com>
13529
13530         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13531         credentials from our currently running process.
13532         (get_word): Fix a buglet where we were copying the entire length
13533         instead of relative to our position.
13534
13535         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13536         keys on the stack... it's 640k of data.
13537
13538         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13539         read the credentials byte off the socket, even if we don't have
13540         SO_PEERCRED.
13541         (_dbus_poll): Implement poll() using select() for systems which
13542         don't have it.
13543
13544         * glib/test-dbus-glib.c (main): Print out an error if no
13545         parameters are given.
13546
13547         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13548         can fallback to a secondary auth mechanism if the first fails.
13549
13550 2003-02-18  Havoc Pennington  <hp@pobox.com>
13551
13552         * AUTHORS: add Alex
13553
13554 2003-02-17  Havoc Pennington  <hp@pobox.com>
13555
13556         * doc/dbus-specification.sgml: lots of cosmetic
13557         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13558         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13559         s/server/bus/ (except in authentication section). Add a section
13560         "Message Bus Message Routing"
13561
13562 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13563
13564         Release 0.4
13565
13566         * NEWS: Update
13567
13568 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13569
13570         * doc/dbus-specification.sgml:
13571         Specification updates.
13572
13573 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13574
13575         * bus/activation.c: (bus_activation_init), (child_setup),
13576         (bus_activation_activate_service):
13577         * bus/activation.h:
13578         * bus/main.c: (main):
13579         Set DBUS_ADDRESS environment variable.
13580
13581         * dbus/dbus-errors.c: (dbus_set_error):
13582         Don't use va_copy since that's a C99 feature.
13583
13584         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13585         (_dbus_spawn_async):
13586         * dbus/dbus-sysdeps.h:
13587         Add child_setup_func to _dbus_spawn_async.
13588
13589         * doc/dbus-specification.sgml:
13590         Update specification.
13591
13592         * test/spawn-test.c: (setup_func), (main):
13593         Fix test.
13594
13595 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13596
13597         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13598         Added todo.
13599
13600 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13601
13602         * doc/.cvsignore:
13603         * doc/Makefile.am:
13604         * doc/dbus-test-plan.sgml:
13605         Add test plan document.
13606
13607         * test/Makefile.am:
13608         Fix distcheck.
13609
13610 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13611
13612         * dbus/dbus-message.c: (decode_header_data),
13613         (_dbus_message_loader_return_buffer):
13614         Set the header padding amount when loading a message.
13615
13616 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13617
13618         * bus/dispatch.c: (send_one_message):
13619         Only send broadcast messages to registered connections.
13620
13621         * dbus/dbus-message.c: (dbus_message_name_is):
13622         * dbus/dbus-message.h:
13623         New convenience function.
13624
13625         * dbus/dbus-transport-debug.c: (do_reading):
13626         Only dispatch one message per run.
13627
13628         * test/Makefile.am:
13629         * test/bus-test.c: (new_connection_callback), (die),
13630         (test_hello_client1_handler), (test_hello_client2_handler),
13631         (test_hello_replies), (main):
13632
13633         * test/bus-test-loop.[ch]:
13634         Add these.
13635
13636 2003-02-16  Havoc Pennington  <hp@pobox.com>
13637
13638         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13639         backward conditional
13640
13641 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13642
13643         * dbus/dbus-connection.c:
13644         Implement sent_message_with_reply. (with_reply_and block is still
13645         busted).
13646         Made dispatch_message not lose message if OOM.
13647
13648         * dbus/dbus-errors.h:
13649         Add NoReply error (for reply timeouts).
13650
13651 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13652
13653         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13654         Actually free keys and values when destroying hashtable.
13655
13656 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13657
13658         * dbus/dbus-auth.c: (client_try_next_mechanism):
13659         Plug a leak.
13660
13661         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13662         Return TRUE if there's no thread implementation around.
13663
13664         * glib/dbus-gmain.c: (free_source),
13665         (dbus_connection_hookup_with_g_main):
13666         Make sure to remove the GSource when the connection is finalized.
13667
13668 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13669
13670         * bus/dispatch.c: (bus_dispatch_message_handler):
13671         * dbus/dbus-errors.h:
13672         Return an error if someone tries to send a message to a service
13673         that doesn't exist.
13674
13675 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13676
13677         * bus/activation.c: (load_directory), (bus_activation_init),
13678         (bus_activation_activate_service):
13679         * bus/activation.h:
13680         * bus/driver.c:
13681         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13682         More work on the activation handling.
13683
13684         * dbus/dbus-errors.h:
13685         Add some error messages
13686
13687         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13688         * dbus/dbus-message.h:
13689         New function that creates an error message.
13690
13691         * dbus/dbus-protocol.h:
13692         Add ACTIVATE_SERVER message.
13693
13694         * dbus/dbus-server-unix.c: (unix_handle_watch),
13695         (_dbus_server_new_for_domain_socket):
13696         Call _dbus_fd_set_close_on_exec.
13697
13698         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13699         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13700         (_dbus_fd_set_close_on_exec):
13701         * dbus/dbus-sysdeps.h:
13702         Add _dbus_fd_set_close_on exec function. Also add function that checks
13703         that all open fds are set to close-on-exec and warns otherwise.
13704
13705         * dbus/dbus-transport-unix.c:
13706         (_dbus_transport_new_for_domain_socket):
13707         Call _dbus_fd_set_close_on_exec.
13708
13709 2003-02-16  Havoc Pennington  <hp@pobox.com>
13710
13711         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13712         allow people to avoid setting SIGPIPE to SIG_IGN
13713         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13714         we've been asked not to
13715
13716 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13717
13718         * dbus/dbus-list.c: (_dbus_list_append_link),
13719         (_dbus_list_prepend_link):
13720         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13721         (dbus_realloc):
13722         Warning fixes.
13723
13724 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13725
13726         * bus/Makefile.am:
13727         * bus/activation.c: (bus_activation_entry_free),
13728         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13729         * bus/activation.h:
13730         * bus/main.c: (main):
13731         Add simple activation support, doesn't work yet though.
13732
13733 2003-02-15   Zack Rusin  <zack@kde.org>
13734
13735         * qt/dbus-qthread.cpp:  small casting fix
13736
13737 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13738
13739         * dbus/dbus-errors.c: (dbus_set_error):
13740         * dbus/dbus-errors.h:
13741         Add a few errors and make dbus_set_error void.
13742
13743         * dbus/dbus-sysdeps.c:
13744         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13745         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13746         * dbus/dbus-sysdeps.h:
13747         Add _dbus_spawn_async.
13748
13749         * test/spawn-test.c: (main):
13750         Test for _dbus_spawn_async.
13751
13752 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13753
13754         * dbus/dbus-internals.h:
13755         Fix build without tests.
13756
13757         * dbus/dbus-list.c: (alloc_link):
13758         Fix a segfault when a malloc fails.
13759
13760         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13761         (dbus_malloc0), (dbus_realloc):
13762         Add support for malloc debugging.
13763
13764 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13765
13766         * dbus/dbus-threads.c:
13767         * dbus/dbus-threads.h:
13768         Add condvars. Remove static mutext from API.
13769         Implement static mutexes by initializing them from threads_init.
13770
13771         * glib/dbus-gthread.c:
13772         * qt/dbus-qthread.cpp:
13773         Update with the thread api changes.
13774
13775
13776         * dbus/dbus-list.c:
13777         * dbus/dbus-list.h:
13778         Turn StaticMutex into normal mutex + init function.
13779         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13780         _dbus_list_append_link, _dbus_list_prepend_link
13781
13782
13783         * dbus/dbus-sysdeps.c:
13784         * dbus/dbus-sysdeps.h:
13785         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13786         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13787
13788         * dbus/dbus-protocol.h:
13789         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13790
13791         * dbus/dbus-message.c:
13792         Make ref/unref atomic.
13793         Fix some docs.
13794
13795         * dbus/dbus-connection-internal.h:
13796         * dbus/dbus-connection.c:
13797         * dbus/dbus-connection.h:
13798         Make threadsafe.
13799         Change _peek to _borrow,_return & _steal_borrowed.
13800         Change disconnect callback to event.
13801         Make dbus_connection_dispatch_messages reentrant.
13802
13803         * dbus/dbus-transport.c:
13804         Don't ref the connection on calls to the transport
13805         implementation.
13806
13807         * dbus/dbus-message-handler.c:
13808         Make threadsafe.
13809
13810         * glib/dbus-gmain.c:
13811         Don't use peek_message anymore
13812
13813         * test/Makefile.am:
13814         * test/debug-thread.c:
13815         * test/debug-thread.h:
13816         Simple thread implementation that asserts() on deadlocks in
13817         single-threaded code.
13818
13819         * test/bus-test.c:
13820         (main) Call debug_threads_init.
13821
13822         * test/watch.c:
13823         Use disconnect message instead of disconnect callback.
13824
13825         * bus/connection.c:
13826         * bus/connection.h:
13827         Don't call dbus_connection_set_disconnect_function. Instead export
13828         bus_connection_disconnect.
13829
13830         * bus/dispatch.c:
13831         Call bus_connection_disconnect when we get a disconnected message.
13832
13833 2003-02-15  Havoc Pennington  <hp@pobox.com>
13834
13835         * dbus/dbus-message.c (dbus_message_new): fool around with the
13836         docs
13837
13838 2003-02-14  Havoc Pennington  <hp@pobox.com>
13839
13840         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13841
13842         * dbus/dbus-memory.c: fail if the debug functions indicate we
13843         should
13844
13845         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13846         (_dbus_decrement_fail_alloc_counter): debug functions to
13847         simulate memory allocation failures
13848
13849 2003-02-14  Havoc Pennington  <hp@pobox.com>
13850
13851         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13852         to DBusError
13853
13854 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13855
13856         * bus/driver.c: (bus_driver_handle_hello):
13857         * bus/driver.h:
13858         * bus/services.c: (bus_service_lookup):
13859         Reorder message sending so we get a more sane order.
13860
13861         * test/bus-test.c: (message_handler):
13862         Fix tyop.
13863
13864 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13865
13866         * bus/driver.c: (bus_driver_send_service_deleted),
13867         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13868         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13869         (bus_driver_send_welcome_message),
13870         (bus_driver_handle_list_services),
13871         (bus_driver_handle_acquire_service),
13872         (bus_driver_handle_service_exists):
13873         * dbus/dbus-bus.c: (dbus_bus_register_client),
13874         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13875         * dbus/dbus-errors.c: (dbus_result_to_string):
13876         * dbus/dbus-errors.h:
13877         * dbus/dbus-message.c: (dbus_message_append_args),
13878         (dbus_message_append_args_valist), (dbus_message_get_args),
13879         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13880         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13881         (dbus_message_iter_get_byte_array),
13882         (dbus_message_iter_get_string_array), (message_iter_test),
13883         (check_message_handling), (_dbus_message_test):
13884         * dbus/dbus-message.h:
13885         * test/bus-test.c: (main):
13886         Change fields to arguments in messages, so that they won't be
13887         confused with header fields.
13888
13889         * glib/test-dbus-glib.c: (main):
13890         Remove append_fields from hello message.
13891
13892 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13893
13894         * dbus/dbus-errors.c:
13895         * dbus/dbus-message.c:
13896         * dbus/dbus-string.c:
13897         Documentation fixes.
13898
13899 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13900
13901         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13902         (remove_timeout):
13903         Implement support for timeouts in dbus-glib.
13904
13905 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13906
13907         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13908         * dbus/dbus-message.c: (process_test_subdir):
13909         * test/break-loader.c: (find_breaks_based_on):
13910         Plug some memory leaks.
13911
13912 2003-02-13  Richard Hult  <rhult@codefactory.se>
13913
13914         * bus/main.c: Fix build.
13915
13916         * dbus/dbus-errors.h:
13917         * dbus/dbus-errors.c: Fix copyright for Anders.
13918
13919 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13920
13921         * bus/Makefile.am:
13922         Add utils.[ch]
13923
13924         * bus/connection.c: (bus_connection_foreach):
13925         Fix a warning.
13926
13927         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13928         (unescape_string), (new_section), (parse_section_start),
13929         (parse_key_value), (report_error), (bus_desktop_file_load),
13930         (bus_desktop_file_get_string):
13931         * bus/desktop-file.h:
13932         Use DBusError for error reporting.
13933
13934         * bus/dispatch.c: (send_one_message),
13935         (bus_dispatch_message_handler):
13936         * bus/driver.c: (bus_driver_send_service_deleted),
13937         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13938         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13939         (bus_driver_send_welcome_message),
13940         (bus_driver_handle_list_services),
13941         (bus_driver_handle_acquire_service),
13942         (bus_driver_handle_service_exists):
13943         * bus/loop.c: (bus_loop_run):
13944         * bus/main.c:
13945         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13946
13947         * bus/utils.c: (bus_wait_for_memory):
13948         * bus/utils.h:
13949         New files with general utility functions.
13950
13951         * dbus/dbus-internals.h:
13952         Remove _DBUS_HANDLE_OOM.
13953
13954 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13955
13956         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13957         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13958         * dbus/dbus-errors.h:
13959         Add DBusError structure.
13960
13961 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13962
13963         * test/data/valid-messages/standard-acquire-service.message:
13964         * test/data/valid-messages/standard-hello.message:
13965         * test/data/valid-messages/standard-list-services.message:
13966         * test/data/valid-messages/standard-service-exists.message:
13967         Add some standard messages.
13968
13969 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13970
13971         * bus/driver.c: (bus_driver_send_welcome_message),
13972         (bus_driver_handle_list_services),
13973         (bus_driver_handle_acquire_service),
13974         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13975         Update for API changes in libdbus.
13976
13977         * dbus/dbus-message.c: (dbus_message_new_reply):
13978         * dbus/dbus-message.h:
13979         Remove the name argument. The spec states that replies shouldn't
13980         have a name.
13981
13982 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13983
13984         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13985         (report_error), (bus_desktop_file_load), (lookup_section),
13986         (lookup_line), (bus_desktop_file_get_raw),
13987         (bus_desktop_file_get_string):
13988         * bus/desktop-file.h:
13989         Some fixes, and new functions for getting a key value from a section.
13990
13991 2003-02-13  Havoc Pennington  <hp@pobox.com>
13992
13993         * test/data/auth/fail-after-n-attempts.auth-script: new test
13994
13995         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13996         reject the client.
13997
13998 2003-02-13  Havoc Pennington  <hp@pobox.com>
13999
14000         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
14001         dbus_credentials_match were backward
14002
14003         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
14004         NO_CREDENTIALS and ROOT_CREDENTIALS
14005
14006         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
14007         into here. Never process more commands after we've reached an
14008         end state; store further data as unused bytes.
14009
14010         * test/data/auth/*: add more auth tests
14011
14012         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
14013         command to match exact string and EXPECT_UNUSED to match unused
14014         bytes
14015
14016         * test/Makefile.am (dist-hook): fix to dist all the test stuff
14017
14018 2003-02-12  Havoc Pennington  <hp@pobox.com>
14019
14020         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14021         \r off of popped lines
14022
14023         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14024         scripts
14025
14026         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14027         SEND, append \r\n
14028
14029 2003-02-12  Havoc Pennington  <hp@pobox.com>
14030
14031         * dbus/Makefile.am: remove break-loader from the build, since it
14032         moved.
14033
14034         * configure.in: add --enable-gcov to turn on coverage profiling
14035         flags and disable optimization
14036
14037 2003-02-10  Havoc Pennington  <hp@pobox.com>
14038
14039         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14040         initial cut at test framework for DBusAuth from laptop.
14041         Doesn't quite work yet but it compiles and I need to get
14042         it off the 266mhz laptop. ;-)
14043
14044         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14045         fix a memleak in error case
14046
14047 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14048
14049         * bus/Makefile.am:
14050         * bus/desktop-file.c:
14051         * bus/desktop-file.h:
14052         Add a desktop file parser.
14053
14054 2003-02-11  Zack Rusin  <zack@kde.org>
14055
14056         * qt/message.[h|cpp]: sample implementation
14057         of the KDE wrapper for DBusMessage
14058
14059 2003-02-09  Zack Rusin  <zack@kde.org>
14060
14061         * test/bus-test.c: make_it_compile
14062         * doc/dbus-specification.sgml: minimal semantic fix
14063
14064 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14065
14066         Release 0.3
14067
14068         * NEWS: Update
14069
14070 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14071
14072         * dbus/Makefile.am:
14073         * dbus/dbus-break-loader.c:
14074         * test/Makefile.am:
14075         * test/break-loader.c:
14076         Move dbus-break-loader to test/ and rename it to break-loader.
14077
14078 2003-02-02  Havoc Pennington  <hp@pobox.com>
14079
14080         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14081         for code to manage cookies in your home directory
14082
14083         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14084
14085         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14086         to authenticate, then disconnect the client.
14087
14088 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14089
14090         * dbus/dbus-message.c (dbus_message_append_fields):
14091         Correct docs.
14092
14093 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14094
14095         * doc/dbus-specification.sgml:
14096         Update address format section.
14097
14098 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14099
14100         * test/Makefile.am:
14101         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14102         (message_handler), (new_connection_callback), (loop_quit),
14103         (loop_run), (main):
14104         Add bus test.
14105
14106 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14107
14108         * bus/driver.c: (bus_driver_handle_service_exists):
14109         Simplify the code a bit.
14110
14111         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14112         Fix a silly.
14113
14114 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14115
14116         * bus/Makefile.am:
14117         Add libdbus-daemon.la and link to it.
14118
14119 2003-02-01  James Willcox  <jwillcox@gnome.org>
14120
14121         * bus/driver.c: (bus_driver_handle_own_service):
14122         Actually include the service reply code in the message.
14123
14124 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14125
14126         * bus/driver.c: (bus_driver_handle_service_exists):
14127         Don't unref the incoming message.
14128
14129 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14130
14131         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14132
14133 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14134
14135         * dbus/dbus-server.c: (dbus_server_listen):
14136         * dbus/dbus-transport.c: (_dbus_transport_open):
14137         ifdef out the calls to the debug transport and server.
14138
14139 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14140
14141         * dbus/dbus-watch.c (dbus_watch_get_flags):
14142         Add note in the docs that ERROR or HANGUP won't be returned
14143         and are assumed always on.
14144
14145         * glib/dbus-gmain.c (add_watch):
14146         Always add IO_ERR | IO_HUP
14147
14148         * dbus/dbus-message.h:
14149         Add semicolon after dbus_message_iter_get_string_array().
14150         Makes qt code build again
14151
14152 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14153
14154         * bus/driver.c: (create_unique_client_name),
14155         (bus_driver_handle_hello):
14156         Don't take a name, just use a numeric id to identify
14157         each client.
14158
14159         * dbus/Makefile.am:
14160         * dbus/dbus-bus.c: (dbus_bus_register_client),
14161         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14162         * dbus/dbus-bus.h:
14163         Add new convenience functions for communicating with the bus.
14164
14165         * dbus/dbus-message.h:
14166
14167         * dbus/dbus-protocol.h:
14168         Fix a typo.
14169
14170 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14171
14172         * dbus/dbus-message.c (dbus_message_append_fields):
14173         Add some more doc comments.
14174
14175 2003-02-01  Havoc Pennington  <hp@pobox.com>
14176
14177         * dbus/dbus-break-loader.c (randomly_modify_length): change
14178         a 4-byte value in the message as if it were a length
14179
14180         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14181         execute bit on saved files
14182
14183 2003-02-01  Havoc Pennington  <hp@pobox.com>
14184
14185         * dbus/dbus-break-loader.c (main): new program to find messages
14186         that break the loader.
14187
14188         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14189         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14190
14191         * dbus/dbus-string.c (_dbus_string_set_byte): new
14192
14193 2003-01-31  Havoc Pennington  <hp@pobox.com>
14194
14195         * dbus/dbus-message.c: refactor the test code to be more general,
14196         in preparation for writing a "randomly permute test cases to
14197         try to break the loader" program.
14198
14199 2003-01-31  Havoc Pennington  <hp@pobox.com>
14200
14201         * doc/dbus-specification.sgml: work on the specification
14202
14203         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14204         the protocol version of the message.
14205
14206         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14207         no longer specifies that.
14208         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14209         1/2/3/4)
14210
14211         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14212         "break" for DBUS_TYPE_NIL, remove @todo
14213
14214 2003-01-31  Havoc Pennington  <hp@pobox.com>
14215
14216         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14217         just set_is_error/get_is_error as this is a commonly-used
14218         function, and write docs.
14219
14220 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14221
14222         * dbus/dbus-address.c: (dbus_address_entry_free):
14223         Free key and value lists.
14224
14225         * dbus/dbus-internals.c: (_dbus_type_to_string):
14226         Add the types we didn't have.
14227
14228         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14229         (_dbus_marshal_validate_arg):
14230         Add NIL types.
14231
14232         * dbus/dbus-message.c: (dbus_message_set_sender):
14233         Remove todo about being able to set sender to NULL.
14234
14235         (dbus_message_set_is_error_reply),
14236         (dbus_message_get_is_error_reply):
14237         * dbus/dbus-message.h:
14238         New functions.
14239
14240         * dbus/dbus-protocol.h:
14241         Add error reply flag.
14242
14243         * test/data/valid-messages/opposite-endian.message:
14244         Add NIL type to test.
14245
14246 2003-01-31  Havoc Pennington  <hp@pobox.com>
14247
14248         * doc/dbus-specification.sgml: fully specify the header.  Add
14249         flags and major protocol version, and change header/body len to
14250         unsigned.
14251
14252         * dbus/dbus-message-builder.c (append_saved_length): append length
14253         as uint32
14254
14255         * dbus/dbus-message.c (dbus_message_create_header): change header
14256         length and body length to unsigned. Add the new fields from the
14257         spec
14258         (_dbus_message_loader_return_buffer): unsigned header/body len
14259
14260 2003-01-30  Havoc Pennington  <hp@pobox.com>
14261
14262         * dbus/dbus-auth.c: rework to use only REJECTED, no
14263         MECHANISMS
14264
14265         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14266         use REJECTED, suggested by Mark McLoughlin
14267
14268 2003-01-30  Havoc Pennington  <hp@pobox.com>
14269
14270         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14271         a better way to report errors here. e.g.  "unix address lacks
14272         path" or something. also "no such file" when the path doesn't
14273         exist, etc.
14274
14275         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14276         leaking list nodes
14277         (dbus_parse_address): add @todo about documenting address format,
14278         and allowing , and ; to be escaped
14279
14280 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14281
14282         * dbus/Makefile.am:
14283         Add dbus-address.[ch]
14284
14285         * dbus/dbus-address.c: (dbus_address_entry_free),
14286         (dbus_address_entries_free), (create_entry),
14287         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14288         (dbus_parse_address), (_dbus_address_test):
14289         * dbus/dbus-address.h:
14290         New files for dealing with address parsing.
14291
14292         * dbus/dbus-connection.c:
14293         Document timeout functions.
14294
14295         * dbus/dbus-message.c:
14296         Document dbus_message_new_from_message.
14297
14298         * dbus/dbus-server-debug.c:
14299         Document.
14300
14301         * dbus/dbus-server.c: (dbus_server_listen):
14302         Parse address and use correct server implementation.
14303
14304         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14305         * dbus/dbus-string.h:
14306         New function with test.
14307
14308         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14309         * dbus/dbus-test.h:
14310         Add address tests.
14311
14312         * dbus/dbus-transport-debug.c:
14313         Document.
14314
14315         * dbus/dbus-transport.c: (_dbus_transport_open):
14316         Parse address and use correct transport implementation.
14317
14318 2003-01-30  Havoc Pennington  <hp@pobox.com>
14319
14320         * dbus/dbus-message.c: use message->byte_order instead of
14321         DBUS_COMPILER_BYTE_ORDER throughout.
14322         (dbus_message_create_header): pad header to align the
14323         start of the body of the message to 8-byte boundary
14324
14325         * dbus/dbus-marshal.h: make all the demarshalers take const
14326         DBusString arguments.
14327
14328         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14329         validate message args here, so we don't have to do slow validation
14330         later, and so we catch bad messages as they are incoming. Also add
14331         better checks on header_len and body_len. Also fill in
14332         message->byte_order
14333
14334         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14335         implemented properly)
14336         (_dbus_string_validate_nul): new function to check all-nul
14337
14338         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14339         get_arg_end_pos and remove all validation
14340         (_dbus_marshal_validate_arg): actually do validation here.
14341
14342 2003-01-29  Havoc Pennington  <hp@pobox.com>
14343
14344         * dbus/dbus-message.c (check_message_handling): fix assertion
14345         failure on set_client_serial
14346
14347 2003-01-28  Havoc Pennington  <hp@pobox.com>
14348
14349         * dbus/dbus-server-debug.c: Add doc section comments
14350
14351         * dbus/dbus-transport-debug.c: add doc section comments
14352
14353 2003-01-28  Havoc Pennington  <hp@redhat.com>
14354
14355         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14356         the reverse order from how I had it
14357         (_dbus_string_base64_encode): reverse encoding order. I was
14358         basically byteswapping everything during encoding.
14359
14360 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14361
14362         * dbus/dbus-connection-internal.h:
14363         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14364         (_dbus_connection_remove_timeout):
14365         Add functions for adding and removing timeouts.
14366
14367         * dbus/dbus-message.c: (dbus_message_new_from_message):
14368         Add new function that takes a message and creates an exact
14369         copy of it, but with the refcount set to 1.
14370         (check_message_handling):
14371         Fix build error.
14372
14373         * dbus/dbus-server-protected.h:
14374         * dbus/dbus-server.c: (_dbus_server_init_base),
14375         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14376         (dbus_server_set_timeout_functions):
14377         (_dbus_server_remove_timeout):
14378         New functions so that a server can add and remove timeouts.
14379
14380         (dbus_server_listen):
14381         Add commented out call to dbus_server_debug_new.
14382
14383         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14384         Actually set the handler, doh.
14385
14386         * dbus/dbus-transport.c: (_dbus_transport_open):
14387         Add commented out call to dbus_transport_debug_client_new.
14388
14389         * dbus/Makefile.am:
14390         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14391
14392 2003-01-28  Havoc Pennington  <hp@pobox.com>
14393
14394         * dbus/dbus-message.c (check_message_handling): function to check
14395         on the loaded message, iterates over it etc.
14396
14397 2003-01-28  Havoc Pennington  <hp@pobox.com>
14398
14399         * test/Makefile.am (dist-hook): fix make distdir
14400
14401         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14402
14403 2003-01-27  Havoc Pennington  <hp@pobox.com>
14404
14405         * dbus/dbus-mempool.c (time_for_size): replace printf with
14406         _dbus_verbose
14407
14408         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14409         empty lines; fix the SAVE_LENGTH stuff to be
14410         START_LENGTH/END_LENGTH so it actually works; couple other
14411         bugfixes
14412
14413         * test/Makefile.am (dist-hook): add dist-hook for .message files
14414
14415         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14416         can be constant or locked.
14417         (_dbus_string_free): allow freeing a const string as
14418         documented/intended
14419
14420         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14421
14422         * dbus/dbus-test-main.c (main): take an argument which is the
14423         directory containing test data
14424
14425         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14426         argument to this and load all the messages in test/data/
14427         checking that they can be loaded or not loaded as appropriate.
14428
14429 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14430
14431         * bus/dispatch.c: (bus_dispatch_message_handler):
14432         Dispatch messages sent to services.
14433
14434         * bus/driver.c: (bus_driver_send_service_deleted),
14435         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14436         (bus_driver_send_service_acquired):
14437         Add helper functions for sending service related messages.
14438
14439         (bus_driver_send_welcome_message):
14440         Send HELLO_REPLY instead of WELCOME.
14441
14442         (bus_driver_handle_list_services):
14443         Send LIST_SERVICES_REPLY instead of SERVICES.
14444
14445         (bus_driver_handle_own_service),
14446         (bus_driver_handle_service_exists):
14447         New message handlers.
14448
14449         (bus_driver_handle_message):
14450         Invoke new message handlers.
14451
14452         (bus_driver_remove_connection):
14453         Don't remove any services here since that's done automatically
14454         by bus_service_remove_owner now.
14455
14456         * bus/driver.h:
14457         New function signatures.
14458
14459         * bus/services.c: (bus_service_add_owner):
14460         Send ServiceAcquired message if we're the only primary owner.
14461
14462         (bus_service_remove_owner):
14463         Send ServiceAcquired/ServiceLost messages.
14464
14465         (bus_service_set_prohibit_replacement),
14466         (bus_service_get_prohibit_replacement):
14467         Functions for setting prohibit replacement.
14468
14469         (bus_service_has_owner):
14470         New function that checks if a connection is in the owner queue of
14471         a certain service.
14472
14473         * bus/services.h:
14474         Add new function signatures.
14475
14476         * dbus/dbus-list.c: (_dbus_list_test):
14477         Add tests for _dbus_list_remove_last and traversing the list backwards.
14478
14479         * dbus/dbus-list.h:
14480         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14481         go any further, so return NULL then.
14482
14483         * dbus/dbus-protocol.h:
14484         Add new messages, service flags and service replies.
14485
14486 2003-01-26  Havoc Pennington  <hp@pobox.com>
14487
14488         * dbus/dbus-message-builder.c: implement, completely untested.
14489
14490         * test/data/*: add data to be used in testing.
14491         ".message" files are our simple loadable text format.
14492         ".message-raw" will be binary dumps of messages.
14493
14494         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14495
14496 2003-01-26  Havoc Pennington  <hp@pobox.com>
14497
14498         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14499
14500         * dbus/dbus-errors.c (dbus_result_to_string): add
14501         file errors
14502
14503         * dbus/dbus-message-builder.c: new file, will contain code to load
14504         up messages from files. Not implemented yet.
14505
14506 2003-01-26  Havoc Pennington  <hp@pobox.com>
14507
14508         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14509         the sender by setting to NULL
14510
14511 2003-01-26  Havoc Pennington  <hp@pobox.com>
14512
14513         The unit tests pass, but otherwise untested.  If it breaks, the
14514         tests should have been better. ;-)
14515
14516         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14517         the connection.
14518
14519         * dbus/dbus-message.c: redo everything so we maintain
14520         message->header as the only copy of the various fields.
14521         This avoids the possibility of out-of-memory in some cases,
14522         for example dbus_message_lock() can't run out of memory anymore,
14523         and avoids extra copying. Figured I may as well go ahead and do
14524         this since it was busted for dbus_message_lock to not return
14525         failure on OOM, and dbus_message_write_header was totally
14526         unchecked for OOM. Also fixed some random other bugs.
14527
14528         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14529         that strings are nul-terminated. Also, end_pos can be equal
14530         to string length just not greater than, I think.
14531         (_dbus_marshal_set_int32): new function
14532         (_dbus_marshal_set_uint32): new function
14533         (_dbus_marshal_set_string): new function
14534
14535         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14536         a warning, init timeout_list to NULL
14537         (dbus_connection_send_message): don't use uninitialized variable
14538         "serial"
14539
14540         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14541
14542 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14543
14544         * bus/driver.c: (bus_driver_handle_hello),
14545         (bus_driver_send_welcome_message):
14546         Plug leaks
14547
14548 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14549
14550         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14551         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14552         (dbus_connection_unref):
14553         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14554         * dbus/dbus-message.c: (dbus_message_unref),
14555         Plug memory leaks.
14556
14557         (dbus_message_get_fields):
14558         Remove debugging printout.
14559
14560         (_dbus_message_loader_return_buffer):
14561         Don't store the header string.
14562
14563         (_dbus_message_test):
14564         Plug leaks.
14565
14566 2003-01-26  Richard Hult  <rhult@codefactory.se>
14567
14568         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14569         the file descriptor list, since it can change under us.
14570
14571 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14572
14573         * glib/dbus-gmain.c: (dbus_connection_prepare),
14574         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14575         (remove_watch), (dbus_connection_hookup_with_g_main):
14576         Rewrite the glib handling to use its own GSource instead of a
14577         GIOChannel so we can catch messages put in the queue while waiting
14578         for a reply.
14579
14580 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14581
14582         * bus/Makefile.am:
14583         * bus/connection.c: (connection_disconnect_handler),
14584         (connection_watch_callback), (bus_connection_setup):
14585         * bus/dispatch.c: (send_one_message),
14586         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14587         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14588         * bus/dispatch.h:
14589         * bus/driver.c: (bus_driver_send_service_deleted),
14590         (bus_driver_send_service_created), (bus_driver_handle_hello),
14591         (bus_driver_send_welcome_message),
14592         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14593         (bus_driver_handle_message):
14594         * bus/driver.h:
14595         Refactor code, put the message dispatching in its own file. Use
14596         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14597         is disconnected.
14598
14599 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14600
14601         * dbus/dbus-internals.h:
14602         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14603
14604         * dbus/dbus-message.c: (dbus_message_get_sender):
14605         * dbus/dbus-message.h:
14606         Implement dbus_message_get_sender.
14607
14608         * dbus/dbus-protocol.h:
14609         Add message and service defines.
14610
14611 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14612
14613         * dbus/dbus-connection.c: (dbus_connection_send_message):
14614         * dbus/dbus-message-internal.h:
14615         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14616         (dbus_message_write_header):
14617         Remove _dbus_messag_unlock and don't set the client serial on a
14618         message if one already exists.
14619
14620 2003-01-24  Havoc Pennington  <hp@pobox.com>
14621
14622         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14623         list_pool
14624
14625         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14626         on OOM
14627
14628 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14629
14630         * dbus/dbus-list.c: (alloc_link), (free_link):
14631         Use a memory pool for the links.
14632
14633 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14634
14635         * bus/connection.c: (bus_connection_foreach):
14636         * bus/connection.h:
14637         Add new bus_connection_foreach function.
14638
14639         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14640         Add function that broadcasts a message to all clients.
14641
14642         (bus_driver_send_service_created), (bus_driver_handle_hello),
14643         (bus_driver_send_welcome_message),
14644         (bus_driver_handle_list_services), (bus_driver_message_handler):
14645         Implement functions that take care of listing services, and notifying
14646         clients when new services are created.
14647
14648         * bus/services.c: (bus_services_list):
14649         * bus/services.h:
14650         Add new function that returns an array of strings with the currently
14651         registered services.
14652
14653         * glib/dbus-glib.h:
14654         * glib/dbus-gmain.c:
14655         Update copyright year.
14656
14657 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14658
14659         * dbus/dbus-connection.c: (dbus_connection_send_message):
14660         Unlock the message in case it was sent earlier.
14661
14662         (dbus_connection_send_message_with_reply_and_block):
14663         Remove the reply message from the list.
14664
14665         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14666         Set array_len and new_pos correctly.
14667
14668         (_dbus_marshal_test):
14669         Remove debug output.
14670
14671         * dbus/dbus-message-internal.h:
14672         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14673         New function that returns the reply serial.
14674
14675         (_dbus_message_unlock):
14676         New function that unlocks a message and resets its header.
14677
14678         (dbus_message_append_string_array),
14679         (dbus_message_get_fields_valist),
14680         (dbus_message_iter_get_field_type),
14681         (dbus_message_iter_get_string_array),
14682         (dbus_message_get_fields),
14683         (dbus_message_append_fields_valist):
14684         Handle string arrays.
14685
14686         (dbus_message_set_sender):
14687         Make this function public since the bus daemon needs it.
14688
14689         (decode_header_data):
14690         Set the reply serial to -1 initially.
14691
14692         * dbus/dbus-message.h:
14693         Add dbus_message_set_sender.
14694
14695 2003-01-24  Havoc Pennington  <hp@pobox.com>
14696
14697         * doc/dbus-specification.sgml: add some stuff
14698
14699 2003-01-22  Havoc Pennington  <hp@pobox.com>
14700
14701         * doc/dbus-specification.sgml: Start to document the protocol.
14702
14703 2003-01-22  Havoc Pennington  <hp@pobox.com>
14704
14705         * dbus/dbus-connection.c
14706         (dbus_connection_send_message_with_reply_and_block): add some @todo
14707
14708         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14709
14710 2003-01-21  Havoc Pennington  <hp@pobox.com>
14711
14712         (patch untested because can't compile)
14713
14714         * bus/driver.c (create_unique_client_name): make this function
14715         never recycle client names. Also, caller should initialize
14716         the DBusString.
14717
14718         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14719
14720 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14721
14722         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14723         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14724         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14725         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14726         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14727         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14728         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14729         * dbus/dbus-marshal.h:
14730         * dbus/dbus-protocol.h:
14731         Add support for marshalling and demarshalling integer, double
14732         and string arrays.
14733
14734 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14735
14736         * bus/Makefile.am:
14737         Add driver.[ch]
14738
14739         * bus/connection.c: (connection_disconnect_handler):
14740         Remove the connection from the bus driver's list.
14741
14742         (connection_watch_callback): Dispatch messages.
14743
14744         (free_connection_data): Free connection name.
14745
14746         (bus_connection_setup): Add connection to the bus driver's list.
14747         (bus_connection_remove_owned_service):
14748         (bus_connection_set_name), (bus_connection_get_name):
14749         Add functions for setting and getting the connection's name.
14750
14751         * bus/connection.h:
14752         Add function headers.
14753
14754         * bus/driver.c: (create_unique_client_name),
14755         (bus_driver_handle_hello_message),
14756         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14757         (bus_driver_add_connection), (bus_driver_remove_connection):
14758         * bus/driver.h:
14759         * bus/main.c:
14760         * bus/services.c: (bus_service_free):
14761         * bus/services.h:
14762         New file that handles communication and registreation with the bus
14763         itself.
14764
14765 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14766
14767         * dbus/dbus-connection.c: (dbus_connection_send_message):
14768         Add a new client_serial parameter.
14769
14770         (dbus_connection_send_message_with_reply):
14771         Remove a @todo since we've implemented the blocking function.
14772
14773         (dbus_connection_send_message_with_reply_and_block):
14774         New function that sends a message and waits for a reply and
14775         then returns the reply.
14776
14777         * dbus/dbus-connection.h:
14778         Add new functions.
14779
14780         * dbus/dbus-errors.c: (dbus_result_to_string):
14781         * dbus/dbus-errors.h:
14782         Add new DBUS_RESULT.
14783
14784         * dbus/dbus-message-internal.h:
14785         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14786         (_dbus_message_set_sender), (dbus_message_write_header),
14787         (dbus_message_new_reply), (decode_header_data),
14788         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14789         * dbus/dbus-message.h:
14790         Add new functions that set the reply serial and sender.
14791         Also marshal and demarshal them correctly and add test.
14792
14793         * dbus/dbus-protocol.h:
14794         Add new DBUS_MESSAGE_TYPE_SENDER.
14795
14796         * glib/dbus-glib.h:
14797         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14798         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14799         (dbus_connection_hookup_with_g_main):
14800         * glib/test-dbus-glib.c: (main):
14801         Rewrite to use GIOChannel and remove the GSource crack.
14802
14803         * test/echo-client.c: (main):
14804         * test/watch.c: (check_messages):
14805         Update for changed APIs
14806
14807 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14808
14809         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14810
14811         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14812         Create a DBusTimeoutList.
14813         (dbus_connection_set_timeout_functions): Add new function to
14814         set timeout callbacks
14815
14816         * dbus/dbus-connection.h: Add public DBusTimeout API.
14817
14818         * dbus/dbus-message.c: (dbus_message_get_service):
14819         * dbus/dbus-message.h:  New function.
14820
14821         * dbus/dbus-server.c: Fix small doc typo.
14822
14823         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14824
14825 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14826
14827         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14828         of the string, just as long as specified.
14829
14830 2003-01-19  Havoc Pennington  <hp@pobox.com>
14831
14832         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14833         new function
14834
14835         * dbus/dbus-server.c (dbus_server_set_max_connections)
14836         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14837         keep track of current number of connections, and add API for
14838         setting a max (but haven't implemented enforcing the max yet)
14839
14840 2003-01-18  Havoc Pennington  <hp@pobox.com>
14841
14842         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14843         reading/writing if read_watch != NULL or write_watch != NULL.
14844
14845         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14846         the message loader code to actually load message->header and
14847         message->body into the newly-created message.
14848
14849         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14850         in OOM case
14851
14852         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14853         (dbus_connection_get_max_message_size)
14854         (dbus_connection_set_max_live_messages_size)
14855         (dbus_connection_get_max_live_messages_size): implement some
14856         resource limitation functions
14857
14858         * dbus/dbus-resources.c: new file implementing some of the
14859         resource limits stuff
14860
14861         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14862         missing docs, add @todo to handle OOM etc.
14863
14864         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14865         docs
14866
14867 2003-01-18  Havoc Pennington  <hp@pobox.com>
14868
14869         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14870         connection if it hasn't been already.
14871
14872         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14873         replace with DisconnectFunction.
14874
14875 2003-01-18  Havoc Pennington  <hp@pobox.com>
14876
14877         Building --disable-verbose-mode --disable-asserts --disable-tests
14878         cuts the library from 112K to 45K or so
14879
14880         * configure.in: check for varargs macro support,
14881         add --enable-verbose-mode, --enable-asserts.
14882
14883         * dbus/dbus-internals.h (_dbus_assert): support
14884         DBUS_DISABLE_ASSERT
14885         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14886
14887 2003-01-18  Havoc Pennington  <hp@pobox.com>
14888
14889         * dbus/dbus-test.c: include config.h so that tests actually run
14890
14891         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14892         so the failure mode when that assumption fails will be plenty
14893         obvious.
14894
14895 2003-01-18  Havoc Pennington  <hp@pobox.com>
14896
14897         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14898
14899         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14900         the distribution
14901
14902         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14903         since we don't want to use those in make check
14904
14905 2003-01-15  Havoc Pennington  <hp@redhat.com>
14906
14907         Release 0.2
14908
14909         * NEWS: update
14910
14911 2003-01-15  Havoc Pennington  <hp@redhat.com>
14912
14913         * test/Makefile.am: fix so that test source code ends up in the
14914         distribution on make distcheck
14915
14916 2003-01-15  Havoc Pennington  <hp@redhat.com>
14917
14918         Release 0.1.
14919
14920         * NEWS: update
14921
14922 2003-01-15  Havoc Pennington  <hp@redhat.com>
14923
14924         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14925         fix build when --disable-tests
14926
14927         * Makefile.am (EXTRA_DIST): put HACKING in here
14928
14929         * HACKING: document procedure for making a tarball release.
14930
14931 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14932
14933         * bus/connection.c: (connection_error_handler),
14934         (bus_connection_setup):
14935         * bus/main.c: (main):
14936         Make sure that the DBusConnectionData struct is NULLed
14937         out to prevent a segfault.
14938
14939         * dbus/dbus-errors.c: (dbus_result_to_string):
14940         * dbus/dbus-errors.h:
14941         * dbus/dbus-message.c: (dbus_message_get_fields),
14942         (dbus_message_get_fields_valist), (_dbus_message_test):
14943         * dbus/dbus-message.h:
14944         Make dbus_message_get_fields return a result code so we can
14945         track invalid fields as well as oom.
14946
14947 2003-01-11  Havoc Pennington  <hp@pobox.com>
14948
14949         * configure.in: change --enable-test/--enable-ansi action-if-given
14950         to enable_foo=$enableval instead of enable_foo=yes
14951
14952 2003-01-08  Havoc Pennington  <hp@pobox.com>
14953
14954         * dbus/dbus-string.c (_dbus_string_align_length): new function
14955
14956         * dbus/dbus-test-main.c: move main() for test app here
14957         * dbus/dbus-test.c
14958         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14959         symbol to run tests, because dbus-test isn't in the main
14960         library
14961
14962         Code review nitpicks.
14963
14964         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14965         for people with narrow emacs ;-). Assert client_serial was filled
14966         in. Assert message->name != NULL.
14967         (dbus_message_append_fields): have "first_field_type" arg separate
14968         from va list, needed for C++ binding that also uses varargs IIRC
14969         and helps with type safety
14970         (dbus_message_new): add @todo about using DBusString to store
14971         service/name internally
14972         (dbus_message_new): don't leak ->service and ->name on OOM later
14973         in the function
14974         (dbus_message_unref): free the service name
14975         (dbus_message_get_fields): same change to varargs
14976         i.e. first_field_type
14977         (_dbus_message_loader_return_buffer): assert that the message data
14978         is aligned (if not it's a bug in our code). Put in verbose griping
14979         about why we set corrupted = TRUE.
14980         (decode_header_data): add FIXME that char* is evil.  Was going to
14981         add FIXME about evil locale-specific string.h strncmp, but just
14982         switched to wacky string-as-uint32 optimization. Move check for
14983         "no room for field name" above get_const_data_len() to avoid
14984         assertion failure in get_const_data_len if we have trailing 2
14985         bytes or the like. Check for service and name fields being
14986         provided twice. Don't leak service/name on error. Require field
14987         names to be aligned to 4 bytes.
14988
14989         * dbus/dbus-marshal.c: move byte swap stuff to header
14990         (_dbus_pack_int32): uscore-prefix
14991         (_dbus_unpack_int32): uscore-prefix
14992         (_dbus_unpack_uint32): export
14993         (_dbus_demarshal_string): add @todo complaining about use of
14994         memcpy()
14995         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14996         handling allowing corrupt data to go unchecked
14997
14998 2003-01-08  Havoc Pennington  <hp@redhat.com>
14999
15000         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
15001         to the select() as needed for authentication. (should be using
15002         _dbus_poll() not select, but for another day)
15003
15004         * dbus/dbus.h: include dbus/dbus-protocol.h
15005
15006 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15007
15008         * dbus/Makefile.am (dbusinclude_HEADERS): Install
15009         dbus-connection.h
15010
15011 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15012
15013         * dbus/dbus-internals.c: (_dbus_type_to_string):
15014         New function that returns a string describing a type.
15015
15016         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
15017         * dbus/dbus-marshal.h:
15018         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15019         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15020         (dbus_message_iter_get_byte_array):
15021         * dbus/dbus-message.h:
15022         Add new convenience functions for appending and getting message fields.
15023         Also add demarshalling routines for byte arrays.
15024
15025 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15026
15027         * dbus/dbus-connection-internal.h:
15028         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15029         (_dbus_connection_get_next_client_serial),
15030         (dbus_connection_send_message):
15031         * dbus/dbus-internals.h:
15032         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15033         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15034         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15035         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15036         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15037         (_dbus_verbose_bytes), (_dbus_marshal_test):
15038         * dbus/dbus-marshal.h:
15039         * dbus/dbus-message-internal.h:
15040         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15041         (dbus_message_write_header), (_dbus_message_lock),
15042         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15043         (dbus_message_get_name), (dbus_message_append_int32),
15044         (dbus_message_append_uint32), (dbus_message_append_double),
15045         (dbus_message_append_string), (dbus_message_append_byte_array),
15046         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15047         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15048         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15049         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15050         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15051         (decode_header_data), (_dbus_message_loader_return_buffer),
15052         (message_iter_test), (_dbus_message_test):
15053         * dbus/dbus-message.h:
15054         * dbus/dbus-protocol.h:
15055         * dbus/dbus-test.c: (main):
15056         * dbus/dbus-test.h:
15057         * glib/test-dbus-glib.c: (message_handler), (main):
15058         * test/echo-client.c: (main):
15059         * test/watch.c: (check_messages):
15060         Make messages sendable and receivable for real.
15061
15062 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15063
15064         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15065         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15066         * dbus/dbus-message.c: (dbus_message_append_int32),
15067         (dbus_message_append_uint32), (dbus_message_append_double),
15068         (dbus_message_append_string), (dbus_message_append_byte_array):
15069         Handle OOM restoration.
15070
15071 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15072
15073         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15074         (_dbus_demarshal_string), (_dbus_marshal_test):
15075         * dbus/dbus-marshal.h:
15076         * dbus/dbus-message.c: (dbus_message_get_name),
15077         Document these functions.
15078
15079         (dbus_message_append_int32), (dbus_message_append_uint32),
15080         (dbus_message_append_double), (dbus_message_append_string),
15081         (dbus_message_append_byte_array):
15082         * dbus/dbus-message.h:
15083         Add functions for adding message fields of different types.
15084
15085         * dbus/dbus-protocol.h:
15086         Add the different types.
15087
15088 2003-01-05  Havoc Pennington  <hp@pobox.com>
15089
15090         * bus/connection.c: implement routines for handling connections,
15091         first thing is keeping a list of owned services on each connection
15092         and setting up watches etc.
15093
15094         * bus/services.c: implement a mapping from service names to lists
15095         of connections
15096
15097         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15098
15099         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15100         to use static mutexes for global data
15101
15102         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15103         collection of functions to set/get application-specific data
15104         on the DBusConnection.
15105
15106 2003-01-04  Havoc Pennington  <hp@pobox.com>
15107
15108         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15109         (_dbus_poll): new function
15110
15111         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15112         copied from GLib
15113
15114         * bus/loop.c: initial code for the daemon main loop
15115
15116 2003-01-04  Havoc Pennington  <hp@pobox.com>
15117
15118         * test/watch.c (error_handler): make it safe if the error handler
15119         is called multiple times (if we s/error handler/disconnect
15120         handler/ we should just guarantee it's called only once)
15121
15122         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15123         error handler on disconnect (it's quite possible we should
15124         just change the error handler to a "disconnect handler," I'm
15125         not sure we have any other meaningful errors)
15126
15127         * configure.in: check for getpwnam_r
15128
15129         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15130         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15131         mechanism as in SASL spec, using socket credentials
15132
15133         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15134         (_dbus_send_credentials_unix_socket): new function
15135
15136         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15137         dbus_accept()
15138         (_dbus_write): only check errno if <0 returned
15139         (_dbus_write_two): ditto
15140
15141 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15142
15143         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15144         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15145         (_dbus_marshal_test):
15146         * dbus/dbus-marshal.h:
15147         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15148         to _dbus_marshal_utf8_string. Also fix some tests.
15149
15150 2002-12-28  Harri Porten  <porten@kde.org>
15151
15152         * configure.in: added check for C++ compiler and a very cheesy
15153         check for the Qt integration
15154
15155         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15156
15157         * qt/Makefile.am: added
15158
15159         * qt/.cvsignore: added
15160
15161         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15162         latter, added #ifdef QT_THREAD_SUPPORT guard.
15163
15164         * dbus/Makefile.am: added missing headers for make dist
15165
15166 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15167
15168         * dbus/Makefile.am: fixup export-symbols-regex.
15169
15170 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15171
15172         * acinclude.m4: Add this file and put the
15173         PKG_CHECK_MODULE macro in it.
15174
15175 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15176
15177         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15178         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15179         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15180         (_dbus_marshal_test):
15181         Make the demarshalling routines align the pos argument.
15182         Add string marshalling tests and fix the obvious bugs
15183         discovered.
15184
15185 2002-12-26  Havoc Pennington  <hp@pobox.com>
15186
15187         * dbus/dbus-auth.c: fixes fixes fixes
15188
15189         * dbus/dbus-transport-unix.c: wire up support for
15190         encoding/decoding data on the wire
15191
15192         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15193         (_dbus_auth_decode_data): append to target string
15194         instead of nuking it.
15195
15196 2002-12-26  Havoc Pennington  <hp@pobox.com>
15197
15198         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15199         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15200         doh
15201
15202         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15203         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15204         now). Main point is because I wanted unpack_uint32 to implement
15205         _dbus_verbose_bytes
15206         (_dbus_verbose_bytes): new function
15207
15208         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15209
15210         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15211         mechanism to handle a corrupt message stream
15212         (_dbus_message_loader_new): fix preallocation to only prealloc,
15213         not prelengthen
15214
15215         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15216         (_dbus_string_test): enhance tests for copy/move and fix the
15217         functions
15218
15219         * dbus/dbus-transport-unix.c: Hold references in more places to
15220         avoid reentrancy problems
15221
15222         * dbus/dbus-transport.c: ditto
15223
15224         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15225         leak reference count in no-message case
15226
15227         * test/watch.c (do_mainloop): handle adding/removing watches
15228         during iteration over the watches. Also, ref the connection/server
15229         stored on a watch, so we don't try to mangle a destroyed one.
15230
15231         * dbus/dbus-transport-unix.c (do_authentication): perform
15232         authentication
15233
15234         * dbus/dbus-auth.c (get_state): add a state
15235         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15236         (_dbus_auth_get_unused_bytes): append the unused bytes
15237         to the passed in string, rather than prepend
15238
15239         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15240         the auth conversation DBusAuth
15241
15242         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15243         (_dbus_transport_new_for_domain_socket): when creating a
15244         transport, pass in whether it's a client-side or server-side
15245         transport so we know which DBusAuth to create
15246
15247 2002-12-03  Havoc Pennington  <hp@pobox.com>
15248
15249         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15250         _after_ finalizing the derived members
15251         (unix_connection_set): unref watch if we fail to add it
15252
15253         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15254         transport first, so that the connection owned by the
15255         transport will be valid as the transport finalizes.
15256
15257         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15258         if necessary, and remove watches from the connection.
15259
15260         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15261
15262 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15263
15264         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15265         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15266         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15267         (_dbus_marshal_test):
15268         * dbus/dbus-marshal.h:
15269         Add string marshal functions and have the demarshal functions
15270         return the new position.
15271
15272 2002-12-25  Havoc Pennington  <hp@pobox.com>
15273
15274         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15275         it is a simple protocol that just maps directly to SASL.
15276
15277         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15278         initial implementation, not actually used yet.
15279
15280         * dbus/dbus-string.c (_dbus_string_find): new function
15281         (_dbus_string_equal): new function
15282         (_dbus_string_base64_encode): new function
15283         (_dbus_string_base64_decode): new function
15284
15285 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15286
15287         * dbus/Makefile.am:
15288         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15289         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15290         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15291         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15292         * dbus/dbus-marshal.h:
15293         * dbus/dbus-protocol.h:
15294         * dbus/dbus-test.c: (main):
15295         * dbus/dbus-test.h:
15296         Add un-optimized marshalling/demarshalling routines.
15297
15298 2002-12-25  Harri Porten  <porten@kde.org>
15299
15300         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15301
15302 2002-12-24  Zack Rusin  <zack@kde.org>
15303
15304         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15305         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15306         main loop stuff
15307
15308 2002-12-24  Havoc Pennington  <hp@pobox.com>
15309
15310         * glib/dbus-gthread.c: fix include
15311
15312         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15313         I think glib API needs to change, though, as you don't
15314         want to use DBusMessageFunction, you want to use the
15315         DBusMessageHandler object. Probably
15316         dbus_connection_open_with_g_main_loop()
15317         and dbus_connection_setup_g_main_loop() or something like that
15318         (but think of better names...) that just create a connection
15319         that has watch/timeout functions etc. already set up.
15320
15321         * dbus/dbus-connection.c
15322         (dbus_connection_send_message_with_reply): new function just to
15323         show how the message handler helps us deal with replies.
15324
15325         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15326
15327         * dbus/dbus-string.c (_dbus_string_test): free a string that
15328         wasn't
15329
15330         * dbus/dbus-hash.c: use memory pools for the hash entries
15331         (rebuild_table): be more paranoid about overflow, and
15332         shrink table when we can
15333         (_dbus_hash_test): reduce number of sprintfs and write
15334         valid C89. Add tests for case where we grow and then
15335         shrink the hash table.
15336
15337         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15338
15339         * dbus/dbus-connection.c (dbus_connection_register_handler)
15340         (dbus_connection_unregister_handler): new functions
15341
15342         * dbus/dbus-message.c (dbus_message_get_name): new
15343
15344         * dbus/dbus-list.c: fix docs typo
15345
15346         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15347         an object representing a handler for messages.
15348
15349 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15350
15351         * glib/dbus-glib.h:
15352         * glib/dbus-gthread.c: (dbus_gthread_init):
15353         Don't use the gdbus prefix for public functions.
15354
15355 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15356
15357         * Makefile.am:
15358         * configure.in:
15359         Add GLib checks and fixup .pc files
15360
15361         * glib/Makefile.am:
15362         * glib/dbus-glib.h:
15363         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15364         (gdbus_connection_check), (gdbus_connection_dispatch),
15365         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15366         (dbus_connection_gsource_new):
15367         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15368         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15369         * glib/test-dbus-glib.c: (message_handler), (main):
15370         Add GLib support.
15371
15372 2002-12-15  Harri Porten  <porten@kde.org>
15373
15374         * autogen.sh: check for libtoolize before attempting to use it
15375
15376         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15377         struct.
15378
15379         * .cvsignore: ignore more stamp files
15380
15381         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15382
15383         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15384         without make install.
15385
15386 2002-12-15  Havoc Pennington  <hp@pobox.com>
15387
15388         * dbus/dbus-threads.c: add thread stubs that a higher library
15389         layer can fill in. e.g. the GLib wrapper might fill them in with
15390         GThread stuff. We still need to use this thread API to
15391         thread-safe-ize the library.
15392
15393 2002-12-12  Havoc Pennington  <hp@pobox.com>
15394
15395         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15396         below new interfaces and include fewer system headers.
15397
15398         * dbus/dbus-sysdeps.c (_dbus_read): new function
15399         (_dbus_write): new function
15400         (_dbus_write_two): new function
15401         (_dbus_connect_unix_socket): new function
15402         (_dbus_listen_unix_socket): new function
15403
15404         * dbus/dbus-message-internal.h: change interfaces to use
15405         DBusString
15406
15407 2002-12-11  Havoc Pennington  <hp@pobox.com>
15408
15409         * dbus/dbus-types.h: add dbus_unichar
15410
15411         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15412
15413         * dbus/dbus-connection.c (dbus_connection_send_message): return
15414         TRUE on success
15415
15416         * dbus/dbus-transport.c: include dbus-watch.h
15417
15418         * dbus/dbus-connection.c: include dbus-message-internal.h
15419
15420         * HACKING: add file with coding guidelines stuff.
15421
15422         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15423         handling here, for security purposes (as in vsftpd). Not actually
15424         using this class yet.
15425
15426         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15427         system/libc usage here, as in vsftpd, for ease of auditing (and
15428         should also simplify portability). Haven't actually moved all the
15429         system/libc usage into here yet.
15430
15431 2002-11-25  Havoc Pennington  <hp@pobox.com>
15432
15433         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15434         always print the first verbose message.
15435
15436 2002-11-24  Havoc Pennington  <hp@pobox.com>
15437
15438         * test/echo-client.c, test/echo-server.c: cheesy test
15439         clients.
15440
15441         * configure.in (AC_CHECK_FUNCS): check for writev
15442
15443         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15444         function
15445
15446         * dbus/dbus-list.c (_dbus_list_foreach): new function
15447
15448         * dbus/dbus-internals.c (_dbus_verbose): new function
15449
15450         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15451         representing a server that listens for connections.
15452
15453         * dbus/.cvsignore: create
15454
15455         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15456         public API for reporting errors
15457
15458         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15459         public object representing a connection that
15460         sends/receives messages. (Same object used for
15461         both client and server.)
15462
15463         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15464         Basic abstraction for different kinds of stream
15465         that we might read/write messages from.
15466
15467 2002-11-23  Havoc Pennington  <hp@pobox.com>
15468
15469         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15470         _DBUS_INT_MAX
15471
15472         * dbus/dbus-test.c (main): add list test, and include
15473         dbus-test.h as intended
15474
15475         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15476         (_dbus_hash_table_remove_int): return value indicates
15477         whether the entry existed to remove
15478
15479         * dbus/dbus-list.c: add linked list utility class,
15480         with docs and tests
15481
15482         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15483         array sometimes.
15484
15485 2002-11-23  Havoc Pennington  <hp@pobox.com>
15486
15487         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15488         DBUS_END_DECLS to nothing, that should fix this once and for all
15489
15490         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15491
15492         * dbus/dbus-message.c, dbus/dbus-hash.c:
15493         add some missing @brief
15494
15495 2002-11-23  Havoc Pennington  <hp@pobox.com>
15496
15497         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15498         to avoid confusing Doxygen
15499
15500         * dbus/dbus-hash.c: @} not }@
15501
15502         * dbus/dbus-message.c (struct DBusMessage): split out
15503         internals docs
15504
15505 2002-11-23  Havoc Pennington  <hp@pobox.com>
15506
15507         * configure.in: pile on more warning flags if using gcc
15508
15509         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15510         to document static functions
15511
15512         * configure.in: add summary to end of configure so it
15513         looks nice and attractive
15514
15515         * dbus/dbus-hash.c: finish implementation and write unit
15516         tests and docs
15517
15518         * configure.in: add --enable-tests to enable unit tests
15519
15520         * dbus/dbus-test.c: test program to run unit tests
15521         for all files in dbus/*, initially runs a test for
15522         dbus-hash.c
15523
15524         * dbus/dbus-internals.h: file to hold some internal utility stuff
15525
15526 2002-11-22  Havoc Pennington  <hp@redhat.com>
15527
15528         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15529         "ported" away from Tcl
15530
15531         * dbus/dbus-types.h: header for types such as dbus_bool_t
15532
15533 2002-11-22  Havoc Pennington  <hp@redhat.com>
15534
15535         * dbus/dbus.h: fixups for doc warnings
15536
15537         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15538         macros
15539         (QUIET): make it quiet so we can see warnings
15540
15541         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15542
15543 2002-11-22  Havoc Pennington  <hp@redhat.com>
15544
15545         * Makefile.am: include "Doxyfile" target in all-local
15546
15547         * configure.in: generate the Doxyfile
15548
15549         * Doxyfile.in: move Doxyfile here, so we can use
15550         configure to generate a Doxyfile with the right
15551         version number etc.
15552
15553 2002-11-22  Havoc Pennington  <hp@redhat.com>
15554
15555         * dbus/dbus-message.c: move inline docs into .c file
15556
15557         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15558         so all docs are under doc/
15559         (MAN_EXTENSION): generate man pages. Use extension
15560         ".3dbus" which matches ".3qt" on my system,
15561         I guess this is OK, I don't know really.
15562         (FILE_PATTERNS): look for .c files not .h, makes sense
15563         for plain C I think
15564
15565 2002-11-22  Havoc Pennington  <hp@pobox.com>
15566
15567         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15568         because any app can be a server, and any app can be a client,
15569         the bus is a special kind of server.
15570
15571 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15572
15573         * Doxyfile : adding. Still needs Makefile rules to be generated
15574         automatically (just run "doxygen" in the toplevel dir for now to
15575         generate docs)
15576
15577         * dbus/dbus-message.h : Adding sample docs (javadoc since
15578         resembles gtk-doc a little more)
15579
15580         * dbus/dbus.h : Adding sample docs
15581
15582 2002-11-21  Havoc Pennington  <hp@redhat.com>
15583
15584         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15585         so we can allow ourselves to include files directly,
15586         instead of having to use dbus.h
15587
15588         * dbus/dbus.h: fill in
15589
15590         * dbus/dbus-message.h: sketch out a sample header file.
15591         Include griping if you include it directly instead of
15592         via dbus.h
15593
15594         * dbus/dbus-macros.h: new file with macros for extern "C",
15595         TRUE/FALSE, NULL, etc.
15596
15597         * doc/file-boilerplate.c: put include guards in here
15598
15599 2002-11-21  Havoc Pennington  <hp@redhat.com>
15600
15601         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15602
15603         * COPYING: include the GPL as well, and license code
15604         under both AFL and GPL.
15605
15606 2002-11-21  Havoc Pennington  <hp@redhat.com>
15607
15608         * acconfig.h: get rid of this
15609
15610         * autogen.sh (run_configure): add --no-configure option
15611
15612         * configure.in: remove AC_ARG_PROGRAM to make
15613         autoconf complain less. add AC_PREREQ.
15614         add AC_DEFINE third arg.
15615
15616 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15617
15618         * doc/Makefile.am:
15619         Fix references so we can distcheck.
15620
15621 2002-11-21  Havoc Pennington  <hp@redhat.com>
15622
15623         * Initial module creation
15624