* cmake: added doxygen support
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
2
3         * cmake: add doxygen support
4
5 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
6
7         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
8         win32 compile fix. 
9
10 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
11
12         * dbus-win.patch: removed obsolate patches. 
13
14 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
15
16         * dbus/dbus-sysdeps-win.c: added zero byte sending 
17         and receiving after connection start up
18
19 2007-03-11  Havoc Pennington  <hp@redhat.com>
20
21         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
22         formatting problem
23
24         * Mostly fix the DBusPipe mess.
25         - put line break after function return types
26         - put space before parens
27         - do not pass structs around by value
28         - don't use dbus_strerror after calling supposedly cross-platform
29         api
30         - don't name pipe variables "fd"
31         - abstract special fd numbers like -1 and 1
32
33 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
34
35         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
36         dbus/dbus-sysdeps-util-win.c: renamed functions 
37         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
38         struct name DBusFile. 
39
40 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
41
42         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
43         fix _dbus_pid_fd check. 
44
45 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
46
47         * tools/dbus-print-message.c (print_message):
48         added printing of the reply serial to method returns and 
49         errors, so you can actually figure out the message/reply 
50         pairs - patch by olli.salli at collabora.co.uk.
51
52 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
53
54         * dbus-win.patch: removed committed patches. 
55
56 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
57
58         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
59         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
60         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
61         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
62         completed _dbus_pipe support. 
63
64 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
65
66         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
67         changed type or port to pointer, because the port is given back.
68
69         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
70         implemented returning tcp port. Skipping port parameter
71         and non integer port values in config <listen> statement
72         needs more effort.
73
74         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
75         (_dbus_listen_tcp_socket): return the real used tcp port.
76
77         * bus/dbus-daemon.1.in: added <listen> tcp examples
78
79 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
80
81         * cmake/config.h.cmake: win32 msvc bug fix
82
83 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
84
85         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
86         using _WINCE does not work.
87
88 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
89
90         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
91         committed.
92
93 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
94
95         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
96         rename pipe related write() function calls to _dbus_write_pipe().
97
98 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
99
100         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
101         uses DBUS_WIN for alls win32 related #ifdefs, 
102         some minor cleanups
103
104 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
105
106         * dbus-win.patch: updated patch for bus/dispatch.c.
107
108 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
109
110         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
111         dbus_connection_get_unix_process_id): Let return them valid user id's, 
112         otherwise bus-test fails. How to replace on win32 ?.
113         
114         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
115         fix memory leak.
116
117 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
118
119         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
120         use dbus friendly error name.
121         (fill_win_user_info_homedir): print user name in error case too.
122
123 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
124
125         * cmake/ConfigureChecks.cmake: fixed socketpair check
126
127 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
128
129         * bus/dispatch.c: disabled segfault test on win32 for now
130
131 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
132
133         * configure.in, cmake/ConfigureChecks.cmake: added check 
134         for setrlimit. 
135         * test/test-segfault.c: only include setrlimit stuff only 
136         when available.  
137
138 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
139
140         * test/test-segfault.c: unix compile fix.
141         * dbus-win.patch: removed obsolate patches.
142
143 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
144
145         * bus/activation.c: removed obsolate include header.
146         * test/test-segfault.c: win32 compile fix, rlimit 
147         isn't available on win32.
148         * dbus-win.patch: removed some more patches, they
149         are applied or obsolate 
150
151 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
152
153         * bus-win.patch: fixes unix listen problems, dbus-test 
154         now runs.
155
156 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
157
158         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
159         cmake/CMakeLists.txt: win32 compile fix
160
161 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
162
163         * dbus-win.patch, README.win: added available win32 
164         patches from windbus project (http://sf.net/projects/windbus)
165
166 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
167
168         * bus/activation.c: (bus_activation_activate_service):
169         fixed call to _dbus_spawn_async_with_babysitter().
170
171 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
172
173         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
174         added environment pointer as function parameter, used on win32.
175
176         * test/spawn-test.c: fixed call to above mentioned function.
177
178 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
179
180         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
181         added configure check for unistd.h.
182
183 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
184
185         * test/Makefile.am: fixed test data copy problem in 
186         out of source build, when sources came from svn or cvs. 
187
188 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
189
190         * dbus/*-win.*,bus/*-win.*: added win32 platform related
191         files. These files are only added to the cmake build system.  
192         The missing dbus-win.patch file will be added later. 
193
194 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
195
196         * cmake: new directory, contains cmake build support.
197         See http://www.cmake.org for more informations.
198         Currently only unix will be buildable because some 
199         win32 required files are still missing. 
200
201 2007-03-03  Thiago Macieira  <thiago@kde.org>
202
203         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
204         output and add it to the DBusError message we return.
205
206         * tools/dbus-launch.1:
207         * tools/dbus-launch.c: Add option --close-stderr to, well,
208         close stderr before starting dbus-daemon.
209
210 2007-01-31  Havoc Pennington  <hp@redhat.com>
211
212         * bus/dbus-daemon.1.in: write a section in the man page on running
213         a test daemon for debugging purposes
214
215 2007-01-26  Havoc Pennington  <hp@redhat.com>
216
217         * bus/session.conf.in: override all the default limits with much
218         higher limits on the session bus, there is no reason the session
219         bus should have low limits
220
221         * bus/config-parser.c (bus_config_parser_new): increase default
222         limits so they are less likely to be hit; in particular the max
223         replies per connection was way too low
224
225 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
226
227         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
228         a pointer to the tutorial maintained as part of dbus-python
229
230 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
231
232         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
233         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
234         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
235
236 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
237
238         * tools/dbus-monitor.c: gettimeofday() is not available 
239         on windows so we have to provide our own. It's taken from 
240         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
241
242 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
243
244         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
245         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
246         is in dbus-sysdeps-win.c (not in this patch).
247
248         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
249         with InterlockedInc/Decrement. 
250         - Patches from Christian Ehrlicher
251         
252 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
253
254         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
255
256 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
257
258         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
259         fix mispaced const statement. - Patch from Peter Kümmel
260
261 2006-12-19  Ray Strode  <rstrode@redhat.com>
262
263         * bus/bus.c (process_config_every_time):
264         don't overwrite existing bus context activation object
265         until after we've checked that the new activation is
266         valid.
267
268         * bus/main.c 
269         (signal_handler), (handle_reload_watch):
270         don't call exit() on failure, instead make do and keep
271         going.
272         (close_reload_pipe): new function to turn off
273         hangup-causes-config-reload behavior if an unexpected
274         error occurs
275
276 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
277
278         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
279         correctness fix. - Patch from Christian Ehrlicher
280
281 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
282
283         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
284         we should also use it. - Patch from Christian Ehrlicher
285
286 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
287   
288         * dbus-sysdeps-util.c: added win32 related tests
289
290 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
291
292         * dbus/dbus-string.c (_dbus_string_pop_line),
293         bus/desktop-file.c (parse_section_start,
294         parse_comment_or_blank,parse_key_value,): uses
295         _dbus_string_find_eol() to support platform independent eol style.
296
297 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
298
299         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
300         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
301               _dbus_string_find_eol().
302         Approved by: Havoc Pennington.
303
304 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
305
306         * configure.in: Added switch to disable user_database caching.
307
308         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
309         be able disable user_dabase caching.
310
311 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
312
313         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
314         struct. It is unnecessary we have a global one already. Also remove 
315         bus_context_get_user_database function, it is no longer needed.
316         Flush the global database on reload.
317
318         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
319         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
320
321         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
322         Add _dbus_user_database_flush_system. 
323         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
324         Small unrelated change in _dbus_is_a_number: change 
325         _dbus_string_parse_int to _dbus_string_parse_uint. 
326
327         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
328         _dbus_groups_from_uid.
329
330         * bus/policy.c, bus/policy.h: Change call to 
331         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
332         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
333         needs it.
334
335 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
336
337         * bus/signal.c: Fix match_rule_equal errata
338         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
339         <kimmo.hamalainen@nokia.com>)
340
341 2006-11-19  Thiago Macieira  <thiago@kde.org>
342
343         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
344         _dbus_pthread_condvar_wait,
345         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
346         pthread_self() after coming back from a conditional variable
347         wait as well as in one codepath where it was forgotten.
348         Approved by: Havoc Pennington.
349
350 2006-11-17  Havoc Pennington  <hp@redhat.com>
351
352         * update-dbus-docs.sh: allow setting fd.org username via env
353         variable. Make it run autogen with --enable-xml-docs=yes
354         --enable-doxygen-docs=yes so configure will fail if the required
355         tools are missing.
356
357 2006-11-17  Havoc Pennington  <hp@redhat.com>
358
359         * doc/dbus-faq.xml: minor FAQ tweaks
360
361 2006-11-14  Havoc Pennington  <hp@redhat.com>
362         
363         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
364         dbus_get_local_machine_id() to its own file, no substantive
365         changes. There are a couple other things we might want to add that
366         are "misc" so moving out of dbus-connection.[hc] which is big
367         enough already.
368         
369 2006-11-14  Havoc Pennington  <hp@redhat.com>
370
371         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
372         UUID had the timestamp last, but the implementation had it first;
373         move it to last since I think it's a tiny bit nicer (easier to
374         compare at a glance, faster to sort, less code), and will not
375         cause any practical compatibility problems. Also, always convert
376         the timestamp to big endian.
377
378         * doc/dbus-specification.xml: Clean up the docs on the UUID.
379
380         * tools/dbus-uuidgen.1: more prominently say it is not suitable
381         as a replacement for regular uuidgen/RFC4122.
382
383 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
384
385         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
386         the correct value so we don't assert when initalizing recursive threads
387
388         * test/name-test/test-thread-init.c: call dbus_threads_init_default
389         instead of _dbus_threads_init_debug since it is more of a real world
390         test
391
392 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
393
394         * Released 1.0.0
395
396 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
397
398         * AUTHORS: added Peter and Tor of windows porting fame
399
400 2006-11-08  Havoc Pennington  <hp@redhat.com>
401
402         * doc/dbus-specification.xml: add a note about protocol stability
403
404         * doc/TODO: Remove "important for 1.0" section, replace with
405         "important for 1.2" section
406         
407 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
408
409         * README: remove some of the out of date flags
410
411         * doc/TODO: Remove todo items which are done
412
413 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
414
415         * tools/dbus-monitor.c: Handle sigint so we flush stdout
416         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
417
418 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
419
420         * tools/dbus-monitor.1: update the manpage for dbus-monitor
421         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
422
423 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
424
425         * AUTHORS: Update with all people listed in the ChangeLog
426
427 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
428
429         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
430         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
431
432 2006-11-07  Havoc Pennington  <hp@redhat.com>
433
434         * HACKING: Update release instructions to include stuff about
435         stable releases, branching, etc. May not be totally correct,
436         please fix if needed, but keep instructions up-to-date so we do
437         each stable release consistently in the future.
438
439 2006-11-07  Havoc Pennington  <hp@redhat.com>
440
441         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
442         documentation updates. Bump faq/spec versions (not to 1.0; I don't
443         think the spec will be "finished"/1.0 when we ship the 1.0 library).
444
445 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
446
447         * bus/bus.c: Missed patch - pass in the context to the directory watch
448
449 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
450
451         * Released D-Bus 1.0 RC 3(0.95)
452
453 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
454
455         * bus/activation.c (bus_activation_new): don't fail if we can not read
456         the directory as it may not exist
457
458 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
459
460         * bus/config-parser.c (service_dirs_find_dir): use 
461         _dbus_list_get_next_link so we don't get stuck in an infinite loop
462         (start_busconfig_child): move processing of standard_session_servicedirs
463         tags here because they have no content
464         (bus_config_parser_content): check we don't have content in 
465         standard_session_servicedirs tag
466
467 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
468
469         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
470         Packagers need to own this directory
471
472 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
473
474         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
475         <standard_session_servicedirs> tag with a <sevicedir> tag that
476         points to the test service directory
477
478 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
479
480         * configure.in: Add a check for DIR *dirp->dd_fd
481
482         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
483         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
484         of both Solaris and Irix
485
486 2006-11-01  Havoc Pennington  <hp@redhat.com>
487
488         * bus/dbus-daemon.1.in: document standard_session_servicedirs
489
490 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
491
492         * configure.in: expose DBUS_DATADIR
493         
494         * bus/config-parser.c: add the standard_session_servicedirs element
495         to the parser
496         (bus_config_parser_content): process the standard_session_servicedirs
497         element by getting the standard directories from sysdeps and merging
498         them into the service directory list
499         (test_default_session_servicedirs): make sure we get what we expect
500
501         * bus/session.conf.in: replace the servicedir tag with the 
502         standard_session_servicedirs tag
503
504         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
505         dbus-sysdeps.h to avoid circular header dependencies
506
507         * dbus/dbus-sysdeps.h: add the typedef of DBusList
508
509         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
510         which takes a string of directories delimited by colons, parses them 
511         out, appends a suffix and puts them in a list ignoring empty elements
512         (_dbus_get_standard_session_servicedirs): returns the standard 
513         directories for a session bus to look for service activation files
514         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
515         DBUS_DATADIR directories
516
517         * test/data/valid-config-files/many-rules.conf: add the 
518         standard_session_servicedirs tag to the valid config file tests
519
520 2006-10-30  Havoc Pennington  <hp@redhat.com>
521
522         * tools/dbus-launch.1, doc/TODO: capture intent to change the
523         command line options of dbus-launch a bit post 1.0
524
525 2006-10-27  Havoc Pennington  <hp@redhat.com>
526         
527         * dbus/dbus-connection.c (dbus_connection_open_private): document
528         how to choose shared vs. private connections
529
530 2006-10-27  Havoc Pennington  <hp@redhat.com>
531
532         * dbus/dbus-test.c: enclose more of the file in the
533         DBUS_BUILD_TESTS check.
534
535         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
536         DBUS_DISABLE_ASSERT case.
537
538         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
539         that it only works on the server side
540
541         * dbus/dbus-bus.c: add a global lock covering the BusData we
542         attach to each connection
543         (internal_bus_get): lock our access to the BusData
544         (dbus_bus_register): lock the entire registration process
545         with _DBUS_LOCK(bus_datas). If we get the lock and 
546         registration is already complete, silently return (vs. previous
547         behavior of aborting).
548         (dbus_bus_set_unique_name): lock the BusData
549         (dbus_bus_get_unique_name): lock the BusData
550
551 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
552
553         * bus/config-parser.c (service_dirs_find_dir, 
554         service_dirs_append_unique_or_free, 
555         service_dirs_append_link_unique_or_free): New static methods
556         for only appending unique service directory names into
557         the service directory list
558         (merge_included, bus_config_parser_content): Only add unique
559         service directory names into the list
560
561 2006-10-27  Havoc Pennington  <hp@redhat.com>
562
563         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
564         variables volatile, suggested by Thiago. Document struct fields.
565         (PTHREAD_CHECK): remove pthread error checking if assertions are
566         disabled, should reduce the no-assertions case to the bare
567         minimum code.
568
569 2006-10-26  Havoc Pennington  <hp@redhat.com>
570         
571         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
572         to be recursive
573         (_dbus_pthread_mutex_unlock): make it recursive
574         (_dbus_pthread_condvar_wait): save/restore the recursion count
575         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
576
577 2006-10-26  Havoc Pennington  <hp@redhat.com>
578
579         * doc/dbus-specification.xml: clarify the UUID text slightly
580
581         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
582         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
583         in preparation for being able to extend them for e.g. recursive
584         mutexes.
585
586 2006-10-26  Havoc Pennington  <hp@redhat.com>
587
588         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
589         condition variables relate to recursive mutexes.
590         
591         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
592         dbus/dbus-threads.c: Split the platforms-specific thread 
593         implementations into their own files.
594         
595         * dbus/dbus-sysdeps-pthread.c
596         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
597         was backward. Not that anything uses it.
598
599 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
600
601         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
602         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
603         needs to be cleaned up more.
604
605         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
606         up the CREDS issue.
607
608 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
609
610         * configure.in, dbus-1.pc.in: Check to see if thread methods 
611         are in glibc or libpthread and add -lpthread to the link stage 
612         if it is the latter
613
614 2006-10-26  Thiago Macieira  <thiago@kde.org>
615
616         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
617         bug 8780: the connection lock is only required while recording
618         the shared connection, so protect only that code
619         section. Don't require connection_lookup_shared to return a
620         locked connection.
621
622 2006-10-26  Thiago Macieira  <thiago@kde.org>
623
624         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
625         check if get_machine_uuid() returns NULL before proceeding any
626         further: we can't init the X atoms or create a session file
627         name if there is no machine ID.
628         This solves a crash reported by some users if
629         --exit-with-session was used without --autolaunch=<machine-id>
630
631 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
632
633         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
634         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
635
636         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
637         before we run dbus-launch
638
639         * configure.in: define TEST_BUS_BINARY to be the full path to 
640         dbus-daemon in the build root 
641
642 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
643
644         * dbus/Makefile.am:
645         * tools/Makefile.am:
646         * toos/dbus-uuidgen.1:
647                 Move the machine-id file to /var/lib/dbus 
648
649 2006-10-24  David Zeuthen  <davidz@redhat.com>
650
651         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
652         _dbus_assert (thread_init_generation != _dbus_current_generation)
653         not _dbus_assert (thread_init_generation == _dbus_current_generation)
654
655 2006-10-24  Thiago Macieira  <thiago@kde.org>
656
657         * dbus/dbus-sysdeps.h:
658         * dbus/dbus-sysdeps-unix.c: Add function
659         _dbus_make_file_world_readable that chmods a file to 0644.
660
661         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
662         Avoid writing to the static "argv" array, thereby avoiding a
663         COW on the child process.
664
665         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
666         call _dbus_make_file_world_readable on the created file.
667
668 2006-10-23  David Zeuthen  <davidz@redhat.com>
669
670         * dbus/dbus-memory.c: Use atomic variable to protect
671         n_blocks_outstanding otherwise OOM will be reported using SMP on
672         some arches
673         
674         * bus/dispatch.c: Add missing end of line characters
675
676         * bus/desktop-file.c (parse_section_start, parse_key_value) 
677         (bus_desktop_file_load): Propertly handle OOM
678
679         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
680         thread_init_generation equals _dbus_current_generation, not 0
681
682 2006-10-22  Havoc Pennington  <hp@redhat.com>
683
684         * dbus/dbus-connection-internal.h: move prototype of
685         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
686         it isn't in a public header and doesn't end up in the DBusBus
687         group in Doxygen
688
689 2006-10-21  Havoc Pennington  <hp@redhat.com>
690
691         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
692         the tarball if packagers want to run it
693
694         * cleanup-man-pages.sh: Add a script which munges all the internal
695         API man pages out of the Doxygen output. This reduces the size of
696         the installed man pages from 7 to 2 megs, and avoids
697         namespace-polluting pages. Right now (like Doxygen) this script
698         isn't in the build, it's something packagers can do manually.
699
700 2006-10-21  Havoc Pennington  <hp@redhat.com>
701
702         * dbus/dbus-connection.h: don't include the watch/timeout
703         functions in connection section
704
705 2006-10-21  Havoc Pennington  <hp@redhat.com>
706
707         * Documentation! Whee! Doxygen now 100% silent. If you make it
708         angry again, you will be punished.
709         
710 2006-10-21  Havoc Pennington  <hp@redhat.com>
711
712         * More documentation - all public API now documented according to
713         Doxygen
714
715 2006-10-21  Havoc Pennington  <hp@redhat.com>
716
717         * Document a bunch of undocumented stuff
718         
719 2006-10-21  Havoc Pennington  <hp@redhat.com>
720
721         * Clean up Doxygen group markers for public API so Doxygen finds
722         everything (not comprehensively fixed for private API).
723         Means all remaining Doxygen warnings are just about missing docs
724         and thus pretty simple to resolve.
725         
726 2006-10-21  Havoc Pennington  <hp@redhat.com>
727         
728         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
729
730         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
731         as DBUS_GNUC_DEPRECATED
732
733 2006-10-21  Havoc Pennington  <hp@redhat.com>
734
735         * Move all private API into the private Doxygen group sections of
736         the files, so they don't show up in the public API docs
737         
738 2006-10-21  Havoc Pennington  <hp@redhat.com>
739
740         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
741         dbus_message_iter_get_array_len().
742
743         * throughout: documentation improvements.
744
745 2006-10-20  Havoc Pennington  <hp@redhat.com>
746
747         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
748         matter, and the message-loader-breaker thing since nobody is going
749         to do it.  Add an item to 1.0 about supporting recursive locks
750         in dbus_threads_init_default() though, since it should be easy.
751
752         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
753         Fix this in the !dispatch case to avoid busy-looping after
754         disconnection
755
756         * More misc docs improvements
757
758 2006-10-19  Havoc Pennington  <hp@redhat.com>
759
760         * more Doxygen-related fixes (lots of moving things from the
761         public to internal section in dbus-connection.c)
762
763 2006-10-19  Havoc Pennington  <hp@redhat.com>
764
765         * Fix a pile of Doxygen warnings and missing docs
766
767 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
768
769         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
770         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
771         instead of a void *.  kqueue uses this to get the context's loop
772         while the other modules ignore the parameter.  This allows us to
773         avoid platform conditionals
774
775         * bus/bus.c (process_config_postinit): Pass in the context to the 
776         watch
777
778 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
779
780         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
781         when starting the system bus
782
783 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
784
785         * configure.in: More fixups for cross compile (Patch from 
786         Marco Pracucci <development at pracucci dot com>)
787
788 2006-10-17  Havoc Pennington  <hp@redhat.com>
789
790         * tools/dbus-send.c (main): don't close shared connection, fix
791         from Timo Hoenig
792
793 2006-10-17  Havoc Pennington  <hp@redhat.com>
794
795         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
796
797         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
798         since realistically it doesn't look like we'll be changing it
799         anymore.
800
801 2006-10-17  Havoc Pennington  <hp@redhat.com>
802
803         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
804         be used for return_if_fail type warnings; prefixes the pid, and
805         fatal by default.
806
807 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
808
809         * configure.in: Released 1.0 RC 2(0.94)
810         Add check for -fPIC and enable it if available
811
812 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
813
814         * doc/TODO: Remove the check TODO item
815
816 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
817
818         * dbus-transport-socket.c (exchange_credentials):
819         Print out more detailed errors if reading or sending
820         credentials fail (Patch from Julio M. Merino Vidal 
821         <jmmv at NetBSD dot org>)
822
823 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
824
825         * configure.in: when checking for posix getpwnam_r assume true
826         for cross compiles
827
828 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
829
830         * configure.in: Check for gethostbyname first before we check for it
831         in libnsl.  On gnu systems it is implemeneted 
832
833 2006-10-13  Havoc Pennington  <hp@redhat.com>
834
835         * dbus/dbus-connection.c
836         (dbus_connection_send_with_reply_and_block): fix to handle closed
837         connections, from Tambet Ingo bug #8631
838
839 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
840
841         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
842
843 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
844
845         * test/name-test/Makefile.am: don't link against both libdbus and
846         libdbus-convenience
847
848 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
849
850         * configure.in: check for dirfd even if it is a macro
851         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
852
853 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
854
855         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
856         avoid using dirfd on systems that don't have dirfd 
857         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
858
859 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
860
861         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
862         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
863
864         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
865         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
866         macro because _dbus_abort calls it
867
868         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
869         works
870
871 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
872
873         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
874         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
875
876 2006-10-02  Thiago Macieira  <thiago@kde.org>
877
878         * tools/dbus-launch.c (main): make it complain and abort
879         execution in case an unknown option is given. Also, process
880         the '--' argument as the end of arguments.
881
882 2006-10-01  Havoc Pennington  <hp@redhat.com>
883
884         * tools/dbus-launch.c (print_variables): if no syntax is given,
885         don't print something that's sort-of-half-sh-syntax, just print
886         a plain key-value pairs thing.
887
888         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
889         the local machine representation (but still have the hostname in
890         the display). Remove the hostname from the display if it is
891         localhost. Change session files to be named
892         ~/.dbus/session-bus/machine-display. Change X atoms to be
893         underscore-prefixed so nobody whines about ICCCM compliance.
894         Otherwise name them the same as the env variables.
895         Change session file format to include key-value pairs and an
896         explanatory comment. Keys are the same as the env variables.
897         (set_address_in_x11): X property format can't depend on
898         sizeof(pid_t) on a particular machine, fix to always be 32 bits
899
900         * tools/dbus-launch.c: make --autolaunch take a machine id
901         argument. If --autolaunch is used with a program to run, complain
902         for now (but add a FIXME). Also, don't look for existing bus if 
903         there's a program to run (but add a FIXME).
904
905         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
906         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
907         just to get this, and avoids duplicating uuid-reading code).
908
909         * tools/dbus-launch.1: clarify various things
910         
911 2006-10-01  Havoc Pennington  <hp@redhat.com>
912
913         * test/test-service.c (path_message_func): remove broken extra
914         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
915
916         * test/test-shell-service.c (path_message_func): same fix
917         
918         * dbus/dbus-connection.c
919         (_dbus_connection_get_dispatch_status_unlocked): break up the
920         function a little for clarity and fix the notification of
921         dbus-bus.c to not require dispatch to be complete
922
923         * dbus/dbus-connection.c (dbus_connection_unref): improve the
924         warning when you try to finalize an open connection.
925         
926 2006-10-01  Havoc Pennington  <hp@redhat.com>
927
928         * dbus/dbus-bus.c
929         (internal_bus_get): only weak ref the connection; this means 
930         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
931         called safely in any context
932         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
933         unref
934
935         * dbus/dbus-connection.c
936         (_dbus_connection_get_dispatch_status_unlocked): move
937         _dbus_bus_notify_shared_connection_disconnected_unlocked here
938         when queuing Disconnected instead of when the Disconnected message
939         arrives, so dbus_bus_get() won't return closed connections.
940         
941 2006-10-01  Havoc Pennington  <hp@redhat.com>
942
943         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
944         Add a hack to make DBusNewConnectionFunction work right.
945
946         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
947         the hack here. Also, fix the todo about refcount leak.
948         
949         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
950         and use the hack here
951         
952         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
953         "shareable" flag; this was completely broken, since it meant 
954         dbus_connection_open() returned a connection of unknown
955         shared-ness. Now, we always hold a ref on anything opened 
956         as shareable.
957
958         Move the call to notify dbus-bus.c into
959         connection_forget_shared_unlocked, so libdbus consistently forgets
960         all its knowledge of a connection at once. This exposed numerous
961         places where things were totally broken if we dropped a ref inside
962         get_dispatch_status_unlocked where
963         connection_forget_shared_unlocked was previously, so move
964         connection_forget_shared_unlocked into
965         _dbus_connection_update_dispatch_status_and_unlock. Also move the
966         exit_on_disconnect here.
967
968         (shared_connections_shutdown): this assumed weak refs to the
969         shared connections; since we have strong refs now, the assertion 
970         was failing and stuff was left in the hash. Fix it to close
971         still-open shared connections.
972         
973         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
974         debug pipe connections
975         
976         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
977         dbus-bus.c if the closed connection is in fact shared
978         (_dbus_connection_close_possibly_shared): rename from 
979         _dbus_connection_close_internal
980         (dbus_connection_close, dbus_connection_open,
981         dbus_connection_open_private): Improve docs to explain the deal
982         with when you should close or unref or both
983
984         * dbus/dbus-bus.c
985         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
986         from _dbus_bus_check_connection_and_unref_unlocked and modify to
987         loop over all connections
988
989         * test/test-utils.c (test_connection_shutdown): don't try to close
990         shared connections.
991
992         * test/name-test/test-threads-init.c (main): fix warnings in here
993
994         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
995         env variable to cause blocking waiting for gdb; drop
996         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
997         unconditionally.
998
999         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1000         so _dbus_print_backtrace works.
1001
1002         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1003         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1004         of -rdynamic/-export-dynamic
1005         
1006 2006-09-30  Havoc Pennington  <hp@redhat.com>
1007
1008         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1009         (internal_bus_get): fix screwy code formatting. whoever committed
1010         that was not paying attention!
1011
1012 2006-09-30  Havoc Pennington  <hp@redhat.com>
1013
1014         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1015         reflect addition of interfaces.
1016
1017         * doc/dbus-specification.xml: describe a new
1018         org.freedesktop.DBus.Peer.GetMachineId method
1019
1020         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1021         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1022         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1023         at end of skip_white
1024         (_dbus_string_chop_white): new function
1025
1026         * bus/connection.c (bus_connections_setup_connection): call
1027         dbus_connection_set_route_peer_messages.
1028
1029         * dbus/dbus-connection.c
1030         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1031         support a GetMachineId method.
1032
1033         Also, support a new flag to let the bus pass peer methods through
1034         to apps on the bus, which can be set with
1035         dbus_connection_set_route_peer_messages.
1036
1037         Finally, handle and return an error for anything unknown on the
1038         Peer interface, which will allow us to extend the Peer interface
1039         in the future without fear that we're now intercepting something
1040         apps were wanting to see.
1041         
1042         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1043         dbus/dbus-uuidgen.c
1044
1045         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1046         binary here, since most of the code is already in libdbus
1047
1048         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1049         uuid from the system config file
1050
1051         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1052         (_dbus_read_uuid_file_without_creating) 
1053         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1054         uuid-related functions, partly factored out from dbus-server.c
1055
1056         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1057         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1058
1059         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1060
1061         * tools/dbus-cleanup-sockets.1: explain what the point of this
1062         thing is a bit more
1063
1064         * autogen.sh (run_configure): add --config-cache to default
1065         configure args
1066
1067         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1068         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1069
1070         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1071         don't try to save address, fixes crash in make check
1072         
1073 2006-09-30  Thiago Macieira  <thiago@kde.org>
1074
1075         * configure.in: add DBUS_BINDIR as a #define to C source code.
1076
1077         * tools/dbus-launch.c
1078         * tools/dbus-launch.h
1079         * tools/dbus-launch-x11.c:
1080         * tools/dbus-launch.1: Add the --autolaunch option to
1081         dbus-launch, which makes it scan for an existing session
1082         started with --autolaunch. With that option, it also creates
1083         an X11 window and saves the bus address and PID to it.
1084
1085         * dbus/dbus-sysdeps.h:
1086         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1087         a function that runs "dbus-launch --autolaunch" to retrieve
1088         the running D-Bus session address (or start one if none was running)
1089
1090         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1091         address protocol, which tries to get the running session from
1092         dbus-launch.
1093
1094         * dbus/dbus-bus.c:
1095         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1096         D-Bus session bus address.
1097
1098         * dbus/dbus-connection.c: Fix horrible typo in error message.
1099
1100 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1101
1102         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1103
1104 2006-09-17  Havoc Pennington  <hp@redhat.com>
1105
1106         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1107         fix so that if unix_user_function is set on windows, we still
1108         do the default check that the auth identity matches the bus identity
1109
1110 2006-09-16  Havoc Pennington  <hp@redhat.com>
1111
1112         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1113         to _dbus_transport_open_platform_specific,
1114         _dbus_transport_open_socket,
1115         and _dbus_transport_open_debug_pipe
1116
1117         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1118
1119 2006-09-16  Havoc Pennington  <hp@redhat.com>
1120
1121         Attempt auditing public API to remove all cases where a Unix
1122         function returns weird emulated goo to Windows. This probably 
1123         breaks the bus daemon on Windows, to fix it again we may 
1124         need to stop processing unix-specific config options on Windows,
1125         and may need to add Windows-specific public API or config options.
1126         
1127         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1128         to reflect added interfaces; should not break soname.
1129         
1130         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1131         not invoke unix user function on Windows. Kind of a hacky fix, but 
1132         we don't want a "unix uid" leaking out on Windows.
1133
1134         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1135         to get the socket fd on Windows or UNIX
1136         (dbus_connection_get_unix_fd): make this always fail on Windows
1137
1138 2006-09-16  Havoc Pennington  <hp@redhat.com>
1139
1140         * dbus/dbus-server.c (dbus_server_listen): change how this works
1141         to be able to delegate to a set of handlers that can succeed,
1142         fail, or choose not to handle. Allows us to have 
1143         dbus_server_listen_platform_specific.
1144
1145         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1146         factor out the tcp socket stuff to be used on windows, leaving
1147         unix domain socket only in dbus-socket-unix.c
1148
1149         * dbus/dbus-transport-socket.c
1150         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1151         stuff to be used on windows, leaving unix domain socket only 
1152         in dbus-transport-unix.c
1153
1154         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1155         temporary hack to be sure this fails on windows
1156         (dbus_connection_get_unix_process_id): ditto
1157
1158 2006-09-16  Havoc Pennington  <hp@redhat.com>
1159
1160         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1161         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1162         _dbus_open_socket so the domain/type/protocol from system headers
1163         are not required. This is kind of pointless though unless we move
1164         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1165         sysdeps-unix.c, which would mean adding a wrapper around
1166         bind/listen/etc.
1167         Also, add DBusError to the socket-opening functions so they 
1168         don't require use of errno.
1169
1170 2006-09-16  Havoc Pennington  <hp@redhat.com>
1171
1172         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1173         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1174
1175         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1176         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1177         functions specifically for sockets only, and move generic 
1178         read/write/open/close into unix-specific code.
1179
1180 2006-09-14  Havoc Pennington  <hp@redhat.com>
1181
1182         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1183         complaint about accessing revents when poll returns 0, from Julian Seward.
1184
1185 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1186
1187         * Released 1.0 RC 1 (0.93) 
1188
1189 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1190
1191         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1192         use _dbus_close instead of close
1193
1194 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1195
1196         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1197         credentials.  Fixes "external" authentication under e.g. NetBSD
1198         which does not support any other socket credentials mechanism.
1199         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1200
1201 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1202
1203         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1204         dbus_threads_init and be used by the dbus mutex functions to
1205         avoid deadlocks.
1206
1207         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1208
1209 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1210
1211         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1212         use threadsafe readdir_r instead of readdir
1213
1214 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1215
1216         * dbus-threads.c (dbus_threads_init_default): New method for
1217         initializing the internal thread implementation (Patch from
1218         Alexander Larsson <alexl at redhat dot com>)
1219
1220 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1221
1222         * remove a bunch of todo items from the 1.0 list
1223
1224 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1225
1226         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1227         key not found
1228
1229 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1230
1231         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1232         complex debugging code
1233
1234         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1235         between the test suite ifdefs
1236         (_dbus_verbose_bytes): return if verbosity is not enabled 
1237
1238 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1239
1240         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1241         remove DBusMark
1242
1243 2006-09-10  Havoc Pennington  <hp@redhat.com>
1244
1245        patch mostly by Peter Kümmel, bug #8211
1246         
1247         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1248         unix-specific stuff in dbus-sysdeps.c
1249
1250         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1251         and move unix-specific stuff to dbus-sysdeps-unix.c
1252
1253         * configure.in: check HAVE_ERRNO_H
1254         
1255 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1256
1257         * bus/test-main.c (main): Initialize threading during tests
1258
1259         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1260         Unlock connection on error
1261         (generate_local_error_message): static method for generating
1262         an error message when we don't have a message to reply to
1263         (_dbus_connection_block_pending_call): Send a disconnect error
1264         instead of just a timeout (NULL) when the bus gets disconnected
1265         while blocking for a reply.
1266         
1267 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1268
1269         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1270         filters (Patch from Kimmo Hämäläinen 
1271         <kimmo dot hamalainen at nokia dot com>)
1272
1273 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1274
1275         * dbus/dbus-connection-internal.h: Add prototype for 
1276         _dbus_connection_test_get_locks to remove warning
1277
1278 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1279
1280         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1281         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1282         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1283
1284 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1285
1286         * Clean up close calls to use _dbus_close (Patch from 
1287         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1288
1289 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1290
1291         * doc/TODO:
1292         - Remove pending call locking todo item
1293         - dbus_connection_open now holds hard ref.  Remove todo item
1294         - do proper locking on _dbus_bus_check_connection_and_unref
1295           and handle DBUS_BUS_STARTER. Remove todo item
1296         - Warn on closing of a shared connection.  Remove todo item
1297
1298         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1299         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1300         so we don't get the warning when closing shared connections
1301
1302         * test/test-service.c, test/test-shell-service.c: Applications
1303         don't close shared connections themselves so we unref instead of
1304         close
1305
1306         * test/test-utils.c (test_connection_shutdown): Close the connection
1307
1308         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1309         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1310         method on a locked connection.  
1311         Make sure we call _dbus_connection_unref_unlocked instead of 
1312         dbus_connection_unref also.
1313         Handle DBUS_BUS_STARTER correctly
1314
1315         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1316         Mark as shared and hard ref the connection
1317         (connection_forget_shared_unlocked): Remove the hard ref from the 
1318         connection
1319         (_dbus_connection_close_internal_and_unlock):  New internal function
1320         which takes a locked connection and unlocks it after closing it
1321         (_dbus_connection_close_internal): New internal function which acts
1322         like the origonal dbus_connection_close method by grabbing a connection
1323         lock and calling _dbus_connection_close_internal_and_unlock
1324         (dbus_connection_close): Public close method, warns when the app
1325         trys to close a shared connection
1326
1327 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1328
1329         * bus/driver.c:
1330         (bus_driver_generate_introspect_string): New method for populating
1331         a DBusString with the introspect data
1332         (bus_driver_handle_introspect): Move introspect generation code to 
1333         bus_driver_generate_introspect_string
1334
1335         * bus/main.c:
1336         (introspect): New function which prints out the intropect data and
1337         exits
1338         (main): Add a --introspect switch
1339
1340 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1341
1342         * doc/TODO: Removed dtd publishing item.  
1343         It seems the dtd has already been added at
1344         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1345
1346 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1347
1348         * doc/TODO, various source files: Audited todo's and FIXME's and
1349         prepended the ones we should be looking at with 1.0.  Those
1350         prepended with 1.0? need clerification or might not be needed
1351         for 1.0
1352
1353 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1354
1355         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1356         NULL in the public API (Patch from Kimmo Hämäläinen 
1357         <kimmo dot hamalainen at nokia dot com>)
1358
1359 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1360
1361         * configure.in: Fix for OS-X compile time endian issues (patch from
1362         Benjamin Reed <ranger at befunk dot com>)
1363
1364 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1365
1366         * configure.in: Check for no-common compiler flag (OS-X fix from
1367         Benjamin Reed <ranger at befunk dot com>)
1368
1369 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1370
1371         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1372         <fcrozat at mandriva dot com>)
1373
1374 2006-08-29  Havoc Pennington  <hp@redhat.com>
1375
1376         * test/test-service.c (path_message_func): fix lack of return value
1377
1378         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1379         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1380         any more sense than on anything else in this file.
1381         (_dbus_get_tmpdir): add const to return value, and keep the
1382         results of the various getenv around in a static variable.
1383
1384 2006-08-29  Havoc Pennington  <hp@redhat.com>
1385
1386         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1387         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1388
1389 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1390
1391         * test/Makefile.am: change find to use syntax that works with non
1392         gnu versions of find
1393
1394 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1395
1396         * dbus/dbus-transport.c: fix invalid deref when checking if
1397         a vtable method exists (Patch from Christian Ehrlicher 
1398         <ch dot ehrlicher at gmx dot de>)
1399
1400 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1401
1402         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1403         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1404         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1405         <bernard at brenda-arkle dot demon dot co dot uk>)
1406
1407 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1408
1409         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1410         default case
1411
1412 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1413
1414         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1415         it works on any system providing this interface, not only FreeBSD.
1416         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1417
1418 2006-08-20  Havoc Pennington  <hp@redhat.com>
1419
1420         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1421         the docs
1422
1423 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1424
1425         * Released 0.92 
1426
1427 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1428
1429         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1430         to reflect the init late change
1431
1432         * bus/bus.c (bus_context_new): Check user before we fork so we can
1433         print out an error message a user will be able to see
1434
1435 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1436
1437         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1438
1439         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1440         Add two more global locks for use on windows platforms.  These are
1441         unused on non-windows platforms but are not ifdefed out to avoid
1442         potential bugs (i.e. the few bytes lost does not warrent the extra
1443         maintanence and complexity that having seperate sets of locks would
1444         cause)
1445
1446 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1447
1448         * bus/services.c (bus_registry_acquire_service): Return an error
1449         when an application tries to register the org.freedesktop.DBus Bus Name
1450
1451         * bus/services.c (bus_registry_release_service): Return an error
1452         when an application tries to release the org.freedesktop.DBus Bus Name
1453
1454 2006-08-17  Alp Toker  <alp@atoker.com>
1455
1456         * doc/dbus-specification.xml: Fix some minor typos.
1457
1458 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1459
1460         * configure.in: use $with_init_scripts instead of $operating_system
1461         to determine where to store the pid since the init scripts manipulate 
1462         the pid file (patch from Marcelo Ricardo Leitner 
1463         <marcelo dot leitner at terra dot com dot br>.  
1464
1465 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1466
1467         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1468         static DBusList *uninitialized_condvar_list to support new late 
1469         initialization threading model.  In this model threads can be initialized
1470         even after the D-Bus API has been used but still needs to be initialized 
1471         before the second thread has been started.  Mutexes and condvar addresses
1472         are stored in the two static lists and are replaced with actuall locks
1473         when threads are initalized.
1474         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1475         the location into the static list
1476         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1477         from the static list and freeing the mutex
1478         (_dbus_condvar_new_at_location): New method for creating a conditional 
1479         variable and placing the location into the static list
1480         (_dbus_condvar_free_at_location): New method for removing a conditional
1481         variable location from the static list and freeing the conditional variable 
1482         (init_uninitialized_locks): Atomic method which goes through the static 
1483         lists of mutex and condvar location and updates them with actuall locks
1484         (init_global_locks): changed to init_locks
1485         
1486         * dbus/dbus-connection.c:
1487         (_dbus_connection_test_get_locks): New method for tests to check connections
1488         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1489         condvar API
1490         (dbus_connection_allocate_data_slot): Pass in the global lock address
1491         to _dbus_data_slot_allocator_alloc
1492
1493         * dbus/dbus-dataslot.c:
1494         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1495         instead of the mutex itself
1496
1497         * dbus/dbus-message.c:
1498         (dbus_message_allocate_data_slot): Pass in the global lock address
1499         to _dbus_data_slot_allocator_alloc
1500
1501         * dbus/dbus-pending-call.c:
1502         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1503         to _dbus_data_slot_allocator_alloc
1504
1505         * dbus/dbus-server.c:
1506         (_dbus_server_init_base): Use the new at_location mutex API
1507         (dbus_server_allocate_data_slot): Pass in the global lock address
1508         to _dbus_data_slot_allocator_alloc
1509
1510         * test/name-test/test-threads-init.c: New test case for late thread
1511         initialization
1512
1513 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1514
1515         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1516         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1517         causes compile problems when asserts are turned off
1518         Keeping _dbus_warn for printing out the message so even if
1519         asserts are turned off the user gets the messages that something is 
1520         wrong 
1521
1522 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1523
1524         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1525
1526         * bus/services.c (bus_service_list_queued_owners):
1527         Add a pointer cast to fix compiler warning
1528
1529         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1530         return a NULL instead of FALSE since the return type
1531         is not expecting a boolean
1532
1533         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1534         Remove unused variable
1535
1536         * dbus/dbus-marshal-recursive-util.c (node_new):
1537         return a NULL instead of FALSE since the return type
1538         is not expecting a boolean
1539
1540         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1541         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1542         because we are expecting a pointer not a boolean
1543
1544         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1545         add void as the parameter so some compilers
1546         don't complain
1547
1548         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1549           _dbus_transport_new_for_tcp_socket):
1550         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1551         because we are expecting a pointer not a boolean
1552
1553         * test/shell-test.c (test_command_line):
1554         cast the second argument to _dbus_list_append to avoid compiler
1555         warnings
1556
1557         * test/test-names.c (main): remove unused variable
1558
1559         * test/test-service.c (check_hello_from_self_reply):
1560         Initialize echo_message and echo_reply to NULL
1561         
1562         * test/test-shell-service.c (handle_echo):
1563         Remove unused variable and cast the third parameter passed to
1564         dbus_connection_get_object_path_data to avoid compiler warrnings
1565
1566         * test/name-test/test-names.c (clear_message_queue):
1567         Remove unused function
1568
1569         * test/name-test/test-pending-call-dispatch.c:
1570         Fix format string in printf
1571
1572
1573 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1574
1575         * dbus/dbus-bus.c:
1576         * test/name-test/test-names.c:
1577         Remove test method dbus_bus_connection_get_unique_name because 
1578         we already have public method dbus_bus_get_unique_name that 
1579         does the exact same thing
1580
1581 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1582
1583         * dbus/dbus-signature.c:
1584         fix typos in Julio's previous patch which cause make check to fail
1585
1586 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1587
1588         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1589         In any case it was wrong since this is a test checking to see if
1590         address parsing is correct.  There was no need to get the true
1591         tmp directory.  
1592
1593 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1594
1595         * dbus/dbus-macros.h: Revert the addition of stddef.h
1596         as we should not be adding it to library headers 
1597
1598 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1599
1600         * dbus/dbus-signature.c:
1601         Fix the unit tests so that they work if assertions are not enabled.
1602         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1603
1604 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1605
1606         * tools/run-with-tmp-session-bus.sh:
1607         * test/name-test/run-test.sh:
1608         Remove bashisms (patch from Julio M. Merino Vidal
1609         <jmmv at NetBSD dot org>)
1610
1611 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1612
1613         * configure.in: add a version (>= 2.6.0) check for libxml2
1614
1615 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1616
1617         * configure.in: make sure the compiler supports -Wfloat-equal
1618         
1619         * bus/dir-watch-dnotify.c: move functional code after 
1620         variable declerations (C99 fix)  (patches from Jens Granseuer
1621         <jensgr at gmx dot net>
1622
1623 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1624
1625         * dbus/dbus-macros.h:
1626         add #include <stddef.h> so that Sun compilers don't complain about
1627         the defining NULL
1628
1629 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1630
1631         * dbus/dbus-sysdeps.c:
1632         * dbus/dbus-address.c:
1633         * bus/activation.c:
1634         * test/shell-test.c:
1635         don't hardcode tmp directory (patch from Dave Meikle 
1636         <dmk at davemeikle dot co dot uk>)
1637
1638 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1639
1640         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1641         Change an assert to a detailed warning and abort.  
1642         When allocator->lock != mutex it indicates that the user has failed
1643         to initalize threads before using the D-Bus library.  This warning
1644         helps the user identify the issue and fix their app.
1645
1646 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1647
1648         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1649         with cleanups of bugs found from Coverity reports:
1650
1651         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1652         close the file on error to avoid a leak
1653
1654         * bus/expirelist.c (bus_expire_list_test):
1655         Check for NULL on dbus_new0
1656
1657         * bus/activation.c (update_directory):
1658         remove dead code
1659
1660         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1661         Fix some leaks
1662
1663         * bus/bus.c (process_config_every_time):
1664         Fixed a leak
1665
1666         * bus/desktop-file.c (parse_key_value):
1667         Fixed leak
1668
1669         * bus/selinux.c (bus_selinux_id_table_insert):
1670         Fixed leak
1671
1672 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1673
1674         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1675         remove dead code
1676
1677 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1678
1679         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1680         #!/bin/bash
1681
1682 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1683
1684         * Doxyfile.in: fix the INPUT line so we can generate docs 
1685         when sourcedir != builddir (patch from Cygwin Ports maintainer
1686         <yselkowitz at users dot sourceforge dot net>
1687
1688 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1689
1690         * dbus/dbus-sysdeps.h:
1691         * dbus/dbus-sysdeps.c: 
1692         * dbus/dbus-string.c: 
1693         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1694         GLib's function which does the same thing
1695
1696         * configure.in:
1697         * bus/Makefile.am:
1698         * bus/dir-watch-default.c:
1699         * bus/dir-watch-dnotify.c:
1700         * bus/dir-watch-kqueue.c:
1701         Add kqueue directory watching for freebsd and split the directory
1702         watching code into seperate files per method/arch
1703         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1704
1705 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1706
1707         * configure.in:
1708         * tools/Makefile.am:
1709         * tools/dbus-launch.c:
1710         * bus/Makefile.am:
1711         allow --with-dbus-daemondir switch to be used to make the
1712         daemon install to a seperate bindir like /usr/libexec
1713         (patch from Brian Cameron <brian dot cameron at sun dot com)
1714
1715 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1716
1717         * bus/Makefile.am (install-data-hook): removed the slash after 
1718         $(DESTDIR) so we don't get the double slash which does not work
1719         in windows (patch from Andras Porjesz 
1720         <andras dot porjesz at siemens dot com>)
1721
1722 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1723
1724         * dbus/dbus-sysdeps.h:
1725         * dbus/dbus-sysdeps.c: 
1726           add _dbus_printf_length (patch from Peter Kümmel 
1727           <syntheticpp at gmx dot net>)
1728
1729 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1730
1731         * dbus/dbus-internals.c: unistd.h is not used 
1732         (_dbus_verbose_real): only enable verbose printing 
1733         if DBUS_VERBOSE environment var is set to '1'
1734         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1735
1736 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1737
1738         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1739         so we still compile on older gcc (patch from Frederic Peters 
1740         <fpeters at 0d dot be>
1741
1742 2006-08-04  Havoc Pennington  <hp@redhat.com>
1743
1744         * configure.in: add -Wdeclaration-after-statement
1745
1746         * dbus/dbus-connection.c: change all the pending call stuff to
1747         reflect the fact that pending call operations use the connection
1748         lock
1749
1750         * dbus/dbus-pending-call.c: add locking here
1751
1752         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1753         field const consistent with how message field is done
1754
1755 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1756
1757         * s/D-BUS/D-Bus/g
1758
1759 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1760
1761         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1762         <in7y118 at public.uni-hamburg dot de> - fix invalid
1763         read/write reported by valgrind
1764
1765 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1766
1767         * Released 0.91
1768
1769 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1770
1771         * dbus/dbus-connection.c:
1772         (_dbus_connection_attach_pending_call_unlocked):
1773         (connection_timeout_and_complete_all_pending_calls_unlocked):
1774         Make sure we set timeout_added on pending calls to FALSE when
1775         we remove the timeout from the connection
1776
1777 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1778
1779         * Removed some extra bindings stuff lingering around (thanks timo)
1780         * dbus-pendingcall.c (_dbus_pending_call_new): 
1781         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1782         when we tried to take a lock on an already locked connection
1783
1784 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1785
1786         * Released 0.90
1787
1788 2006-07-17  Havoc Pennington  <hp@redhat.com>
1789
1790         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1791         ints, reported by Owen Taylor
1792
1793 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1794
1795         * doc/TODO:
1796         * dbus/dbus-bus.c:
1797         * dbus-errors.c:
1798         * dbus/dbus-marshal-validate.c:
1799           Removed TODO items which were fixed or are no longer relevent
1800
1801 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1802
1803         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1804         Remove stray files from the stripped bindings
1805
1806 2006-07-16  Havoc Pennington  <hp@redhat.com>
1807
1808         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1809         Improve the error message on reply timeout
1810
1811 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1812
1813         * Remove all bindings
1814
1815 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1816
1817         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1818         and set pending_reply out arg to NULL is connection is disconnected
1819         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1820         static method for cleaning up pending calls on disconnect
1821         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1822         calls queued timeouts on disconnect 
1823
1824          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1825         Remove 
1826
1827 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1828
1829         * bus/activation.[ch] (bus_activation_list_services): new function to 
1830         get the list of services that can be activated
1831
1832         * bus/dispatch.c: test coverage for the new bus method
1833         ListActivatableNames
1834
1835         * bus/driver.c: new bus method ListActivatableNames to get the list of
1836         services that can be activated
1837
1838         * doc/dbus-specification.xml: ListActivatableNames method documentation
1839
1840 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1841         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1842         source files
1843
1844 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1845         * dbus/dbus-message-factory.c:
1846         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1847
1848 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1849         * dbus/dbus-connection-internal.h:
1850         * dbus/dbus-connection.c:
1851         * file dbus/dbus-pending-call.c:
1852         * dbus/dbus-pending-call.h:
1853         Make DBusPendingCall an opaque type even to D-Bus internals
1854
1855 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1856
1857         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1858         connection_close
1859
1860         * dbus/dbus-connection.c: include dbus-bus.h
1861         (_dbus_connection_read_write_dispatch): make static
1862
1863 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1864
1865         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1866         function
1867         (dbus_connection_dispatch): On disconnect unref any shared connections
1868
1869         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1870         for cleaning up shared connections on disconnect
1871         (internal_bus_get): get a hard refrence to shared connections when
1872         they are created
1873         
1874         * doc/TODO: Remove items which are no longer relevent or have been fixed
1875         Split 1.0 todo items with a 0.90 freeze todo list
1876  
1877 2006-06-14  Ross Burton  <ross@openedhand.com>
1878
1879         * glib/dbus-gobject.c:
1880         Free a leaking GArray (surely not!) in dbus_g_method_return.
1881
1882 2006-06-14  Ross Burton  <ross@openedhand.com>
1883
1884         * tools/Makefile.am:
1885         * tools/dbus-monitor.c:
1886         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1887         Habacker).
1888         
1889 2006-06-14  Ross Burton  <ross@openedhand.com>
1890
1891         * tools/dbus-print-message.c:
1892         Also print the object path when outputting signals or method calls.
1893
1894 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1895
1896         * qt/src/Makefile.am: install the qdbus.h header.
1897         This allows people to actually use the installed code.
1898
1899 2006-06-12  Ross Burton  <ross@openedhand.com>
1900
1901         * glib/dbus-gproxy.c:
1902         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1903
1904 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1905
1906         * Released 0.62
1907
1908 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1909
1910         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1911         break pedantic builds. Closes bug 6043 (patch approved by
1912         Havoc back in February).
1913
1914 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1915
1916         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1917         that took a QDBusMessage parameter.
1918         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1919         * qt/tools/dbus.cpp: Don't use automatic call because we might
1920         be calling an async method: request a reply.
1921
1922 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1923
1924         * test/qt/*: Update the testcases, including testing the new
1925         functionality of sending null QByteArray and QString over the
1926         bus. Add new headertest test and restore the old
1927         qdbusxmlparser test.
1928
1929 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1930
1931         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1932         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1933
1934         * qt/examples/Makefile.am:
1935         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1936         form.
1937
1938         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1939         QByteArray() (nulls) over the bus.
1940         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1941         the one that has the signature suffix stripped.
1942         * qt/src/qdbusreply.h: Make some methods const.
1943
1944 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1945
1946         Patch from Timo Hoenig <thoenig@suse.de>.
1947
1948         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1949         required during build to EXTRA_DIST.
1950         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1951         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1952         * configure.in: Fix "make dist", take care that the Makefile for
1953         qt/dbus is being generated.
1954
1955 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1956
1957         * bus/bus.c: Fix eavesdropping on method calls
1958
1959 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1960
1961         * configure.in:
1962         * dbus/dbus-userdb-util.c:
1963         Add Solaris console owner patch from Artem Kachitchkine
1964
1965 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1966
1967         * qt/Makfile.am:
1968         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1969         reorganisation. Thanks to Timo Hoenig for pointing this out.
1970
1971 2006-06-06  Robert McQueen  <robot101@debian.org>
1972
1973         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1974           call to dbus_g_type_get_struct.
1975
1976 2006-06-06  Robert McQueen  <robot101@debian.org>
1977
1978         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1979           pointers were put into a GPtrArray-based specialised collection, and
1980           then freed along with the array. GValues which you add into
1981           collections or maps which have the NOCOPY flag set are assumed to not
1982           belong to the caller, so rather than the existing pointer-stealing
1983           semantics, they are copied instead. Given that the main consumers of
1984           this abstraction are the bindings themselves, I don't think this is
1985           too bad, but others should watch their choice of take vs set_static.
1986
1987 2006-06-06  Robert McQueen  <robot101@debian.org>
1988
1989         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1990           of g_slist_prepend not being used. Fixed copying of slist-based
1991           specialised collections, then wrote a test case and found that it was
1992           all broken. Went on to fix iterating and appending too. Good thing
1993           nobody uses this code yet.
1994
1995 2006-06-06  Robert McQueen  <robot101@debian.org>
1996
1997         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1998           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1999           are discarded without unsetting, so it makes no difference whether
2000           we take or set_static). Remove cases for G_TYPE_POINTER because
2001           there really is nothing useful we can do with them in our
2002           specialised types - we *need* boxed copy/free functions at the very
2003           least.
2004
2005 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2006
2007         * qt/dbus: Add directory. I had forgotten to add this
2008         yesterday after the move...
2009
2010         * qt/examples/Makefile.am:
2011         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2012
2013         * qt/tools/Makefile.am:
2014         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2015         Added feature to get and set properties.
2016         Added validation of service, object path and interface names.
2017
2018         * qt/tools/dbusidl2cpp.cpp: Two new features:
2019         1) Allow specifying both the header and the source file names,
2020         by separating them with a colon.
2021         2) Don't write an interface output if the -p switch wasn't
2022         given, but the -a was.
2023
2024         * qt/src/*: Fix usage of Iterators and ConstIterators.
2025         Fix shadowing of variables by other variables (-Wshadow).
2026         Fix keyword-cleanliness in headers.
2027         Fix ASCII-cast (QLatin1String, QLatin1Char).
2028         Fix validation of member names.
2029         Add extra checking of introspection data during XML parsing.
2030         Various bug fixes.
2031
2032 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2033
2034         * dbus/Makefile.am:
2035         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2036         qt/dbus/qdbus.h now.
2037
2038 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2039
2040         * configure.in: Make --disable-qt actually do
2041           something. Patch inspired by Zack Rusin.
2042
2043 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2044
2045         * qt/: Update to Subversion r548032.
2046         This includes a big reorganisation of the files inside the
2047         subdir.
2048
2049 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2050
2051         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2052         clear:  
2053         "Failed to connect to socket <host>:<port> <error>" instead of
2054         "Failed to connect to socket <host>: <error>:<port>"
2055
2056         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2057         for a tcp transport. 
2058
2059 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2060
2061         * qt/*: Update the QtDBus bindings up to revision 546310 in
2062         Subversion.
2063         This adds the dbuscpp2xml tool, that parses a C++ header and
2064         outputs a D-BUS Introspection XML.
2065
2066 2006-05-21  Havoc Pennington  <hp@redhat.com>
2067
2068         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2069         is not NULL when it shouldn't be. Also a couple of possible fixes
2070         for #4637 though I don't understand why the bug happens, to be
2071         honest... also the object constructor has an assert name != NULL
2072         and the name is only currently NULL for peer-to-peer proxies that 
2073         I don't think anyone uses? So it should be asserting.
2074         Anyway, for now at least see if we get an earlier assertion failure.
2075
2076         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2077         apparently broken code to be sure the tests fail and someone 
2078         will fix them...
2079
2080 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2081
2082         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2083         and arrays when they had a single element: has_next returns
2084         false, even before you read the element. So, instead, check
2085         the array length.
2086
2087 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2088
2089         * qt/qdbusmessage.cpp:
2090         * qt/qdbustypehelper_p.h:
2091         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2092         the list is a const-reference
2093
2094 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2095
2096         * Adding old doc patch that never got applied
2097         
2098         * dbus/bus.c (dbus_bus_add_match): Add documentation
2099
2100         * doc/dbus-specification.xml: Add documentation for the match rules
2101           and the AddMatch and RemoveMatch methods
2102
2103 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2104
2105         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2106         call (r535506)
2107
2108         * qt/dbusidl2cpp.cpp:
2109         * qt/qdbusabstractadaptor.cpp:
2110         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2111         sibling of the QDBusAbstractAdaptor objects instead of the
2112         parent. (r535848)
2113
2114         * qt/dbusidl2cpp.cpp:
2115         * qt/qdbusabstractinterface.cpp:
2116         * qt/qdbusabstractinterface.h:
2117         * qt/qdbusabstractinterface_p.h:
2118         * qt/qdbusinterface.cpp: Make properties in interfaces
2119         actually work. The code that was generated would not compile,
2120         due to moc calls to functions that did not exist. They now
2121         shall. (r536571)
2122
2123 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2124
2125         * Makefile.am:
2126         * configure.in:
2127         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2128         Thanks to Brad Hards for providing the patch
2129
2130 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2131
2132         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2133         call. (r535506)
2134
2135 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2136
2137         * qt/examples/dbus.cpp: Enhance error messages and use
2138         QDBusInterfacePtr.
2139
2140 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2141
2142         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2143         and disable the copy operators. (r533772, r534746)
2144
2145         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2146
2147         * qt/qdbusabstractinterface.cpp:
2148         * qt/qdbusabstractinterface.h: Change the default call mode to
2149         not use the event loop. Add convenience call() methods that
2150         take a CallMode parameter. (r534042)
2151
2152         * qt/qdbusconnection.h: Change the default call mode to not
2153         use the event loop. (r534042)
2154
2155         * qt/qdbusinterface.cpp:
2156         * qt/qdbusinterface.h: Add a method to tell us if the
2157         interface is valid (since we don't return a null pointer
2158         anymore) (r534099)
2159
2160         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2161         (r534101)
2162
2163         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2164         function in two so taht we get the chance to introspect
2165         without having a QDBusMessage (r534102)
2166
2167         * qt/qdbusbus.h:
2168         * qt/qdbusconnection.cpp:
2169         * qt/qdbusconnection_p.h:
2170         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2171         avoid a round-trip to the server when attempting to introspect
2172         one of our own objects. Also make sure the filter functions
2173         match the empty interface as well. (r534108)
2174         Don't keep the connection names. Instead, trust the unique
2175         connection name (r534111)
2176         Remove event loop usage (r534112)
2177
2178 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2179
2180         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2181         Brad Hards.
2182
2183 2006-04-28  Robert McQueen  <robot101@debian.org>
2184
2185         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2186         any order, making it easier for people who inherit from this
2187         object.
2188
2189 2006-04-28  Robert McQueen  <robot101@debian.org>
2190
2191         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2192         of memory from within pointer arrays and lists. Fixes bug #6300.
2193
2194 2006-04-28  Robert McQueen  <robot101@debian.org>
2195
2196         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2197         generating struct signatures. Fixes bug #6083.
2198
2199 2006-04-28  Robert McQueen  <robot101@debian.org>
2200
2201         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2202         to qdbusconnection_p.moc.
2203
2204 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2205
2206         * README, INSTALL: Doc fixes
2207         Patch from Brad Hards <bradh at frogmouth.net>
2208
2209 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2210
2211         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2212         the dynamic meta object. No need to guess which interface to
2213         call.
2214
2215 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2216
2217         * qt/qdbusconnection_p.h:
2218         * qt/qdbusmetaobject.cpp:
2219         * qt/qdbusmetaobject_p.h:
2220         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2221         for the dynamic meta object. No need to guess which
2222         interface to call.
2223         * qt/qdbusabstractinterface_p.h:
2224         * qt/qdbusconnection.cpp:
2225         * qt/qdbusintegrator.cpp:
2226         * qt/qdbusinterface.cpp:
2227         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2228         Add a QDBusRef that looks and behaves like DCOPRef.
2229
2230 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2231
2232         * dbus/dbus-connection.c: Interfaces are optional in method
2233         calls, so don't give up if the interface parameter is NULL.
2234         Patch reviewed by Havoc Pennington.
2235
2236 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2237
2238         * qt/qdbusreply.h: Add default constructor and operator=
2239           (r532625)
2240         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2241           in public headers (r532952)
2242         * qt/qdbusabstractinterface.cpp:
2243         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2244           make it the default (r532951)
2245
2246 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2247
2248         * dbus/dbus-connection.c: Fix asserts
2249         Patch from Tim Moloney <t.moloney at verizon.net>
2250
2251 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2252
2253         * mono/Connection.cs, mono/Message.cs: Check Target type
2254         Patch from Aaron Bockover (abockover at novell.com)
2255
2256 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2257
2258         * INSTALL: fine-tune the requirements for the Qt4 binding.
2259
2260 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2261
2262         * tools/dbus-print-message.c: Added support for printing of all 
2263           remaining data types. Fixed logic for indentation of compound
2264           data types.
2265         
2266 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2267
2268         * INSTALL: fill out content of file providing DBus specific
2269           build installations, followed by generic Auto* INSTALL file
2270           content
2271         
2272 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2273
2274         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2275           Patch by Stefan Eilers. (r529537)
2276
2277 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2278
2279         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2280           contents (r528208)
2281
2282 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2283
2284         * qt/Makefile.am: fix the dependency for
2285           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2286           not in qdbusconnection.cpp.
2287           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2288           spotting this.
2289
2290 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2291
2292         * qt/examples/listnames.cpp:
2293         * qt/examples/Makefile.am: Three ways to list the names on the
2294           bus.
2295
2296 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2297
2298         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2299           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2300
2301 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2302
2303         Merge from Subversion:
2304         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2305           something that exists (r526315)
2306         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2307           slots/signals (r526316)
2308         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2309           also return an unknown-method error if the parameters don't
2310           match for org.freedesktop.DBus.Properties. (r526842)
2311         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2312         * qt/qdbusintegrator.cpp: Restore the proper order of
2313           delivery: don't make method returns be delivered on priority
2314           (r528150)
2315
2316 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2317
2318         * configure.in qt/Makefile.am: add qt/examples
2319         * qt/examples: Add QtDBus example programs:
2320           - hello: Hello, World
2321           - ping: Simple method-calling program
2322           - pong: Simple object-exporting program (not using adaptors)
2323           - complexping: Interactive method-calling program 
2324                 (also gets and sets properties).
2325           - complexpong: Sample program exporting methods, signals and
2326                 properties, using adaptors.
2327           - dbus: Simple implementation of a generic method-calling
2328                 program, similar to 'dbus-send', but with semantics
2329                 similar to 'dcop'.
2330           - chat: Simplistic chat program, implemented using signals
2331                 and the system bus. Looks like IRC.
2332
2333 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2334
2335         * configure.in: Detect QtGui (necessary for one of the
2336           example programs). Note: this increases the minimum required
2337           version of Qt to 4.1.3.
2338
2339 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2340
2341         * test/qt/*: Sync with KDE Subversion revision 523647.
2342         Update the testcases to the new API. Remove testcases for
2343         classes that are no longer public or have been removed.
2344
2345 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2346
2347         * qt/*: 
2348         * dbus/qdbus.h: Sync with KDE Subversion revision
2349         523647. Hopefully, this will be the last of the
2350         source-incompatible changes. Documentation has been improved;
2351         support for QList<basic-types> has been added; QDBusObject is
2352         gone; QDBus(Abstract)Interface is now a QObject with
2353         auto-generated meta-object; QDBusIntrospection is marked
2354         private, since QMetaObject can be used now; lots of bugfixes.
2355
2356 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2357
2358         Patch from Milosz Derezynski <internalerror at gmail.com>
2359         
2360         * configure.in:
2361         Output the service directory in the configure summary
2362
2363         * dbus-1.pc.in:
2364         Add session_bus_services_dir
2365
2366 2006-03-10  Ross Burton  <ross@openedhand.com>
2367
2368         * tools/dbus-print-message.c:
2369         Add support for object paths and signatures.
2370
2371 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2372
2373         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2374         config reload.
2375         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2376         information caches
2377         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2378         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2379         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2380         * dbus/dbus-userdb.h: Add function to flush all user/group information
2381         caches.
2382
2383 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2384
2385         * qt/dbusidl2cpp.cpp:
2386         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2387         for dcopidl2cpp, found in the KDE installations (or the more
2388         modern kalyptus): generate Qt4 C++ code for the input XML
2389         introspection. Currently no IDL parsing.
2390
2391 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2392
2393         * test/qt/*: Update the self-tests.
2394
2395 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2396
2397         * qt/*: 
2398         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2399         represents the first feature-complete version of the Qt4
2400         bindings since I took ove maintainership.
2401
2402 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2403
2404         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2405         dir. This is C++, so we can't use the DBus ones.
2406
2407 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2408
2409         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2410         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2411
2412 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2413
2414         * dbus/dbus-connection.c: 
2415         (_dbus_connection_block_pending_call):
2416         Check to see if our data has already been read off the connection
2417         by another blocking pending call before we block in poll.
2418         (check_for_reply_and_update_dispatch_unlocked):
2419         Code taken from _dbus_connection_block_pending_call - checks for
2420         an already read reply and updates the dispatch if there is one.
2421
2422         * test/name-test/test-pending-call-dispatch.c:
2423         New test for making sure we don't get stuck polling a 
2424         dbus connection which has no data on the socket when
2425         blocking out of order on two or more pending calls.
2426
2427 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2428
2429         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2430         make/automake don't detect that we're talking about the same
2431         .lo file if I specify the full path to the source files.
2432
2433 2006-02-26  Havoc Pennington  <hp@redhat.com>
2434
2435         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2436
2437         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2438         session bus variable is unset, suggest "man dbus-launch" and "man
2439         dbus-daemon" to figure out how to fix the problem
2440
2441 2006-02-25  Havoc Pennington  <hp@redhat.com>
2442
2443         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2444         should make this thing use the new glib options parser
2445
2446 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2447
2448         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2449         .lo files taking moc sources.
2450
2451 2006-02-25  Havoc Pennington  <hp@redhat.com>
2452
2453         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2454         and install it as a public header
2455
2456 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2457
2458         * Released 0.61
2459
2460 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2461         
2462         * proxies.py: Fix the callchain
2463
2464 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2465         
2466         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2467
2468         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2469         dbus/dbus-sysdeps.c
2470
2471         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2472         call _dbus_group_info_free_allocated which causes infinite loop,
2473         correctly call _dbus_group_info_free
2474
2475 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2476
2477         * qt/qdbusinterface_p.h:
2478         * qt/qdbusinterface.cpp: Use the standard
2479         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2480         calls instead of creating one for us.
2481
2482         * qt/qdbusconnection_p.h:
2483         * qt/qdbusintegrator.cpp: Remove debugging code.
2484
2485         * qt/qdbusintegrator.cpp:
2486         * qt/qdbusmessage.cpp:
2487         * qt/qdbusmessage_p.h:
2488         * qt/qdbusmessage.h: Change the behaviour of automatic
2489         reply-sending: now a reply is always sent, unless the caller
2490         didn't request one or if the user slot has already sent one.
2491
2492 2006-02-16  Robert McQueen  <robot101@debian.org>
2493
2494         * configure.in: Patch from Debian packages by Sjoerd Simons
2495         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2496         arguments so it's possible to build both bindings in the
2497         same tree.
2498
2499         * qt/Makefile.am: Fix truncated value so that make dist works.
2500
2501 2006-02-16  Robert McQueen  <robot101@debian.org>
2502
2503         * acinclude.m4, configure.in: Patch from Brad Hards
2504         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2505         improving quoting, re-ordering a few checks, and a few other
2506         aesthetic tidy-ups.
2507
2508 2006-02-16  Robert McQueen  <robot101@debian.org>
2509
2510         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2511         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2512         assertion that the next element to read from the iter is fixed in
2513         size. This is not the case when you are at the end of the iter,
2514         because the next element type is INVALID.
2515
2516         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2517         a bogus assert which means that you may not initialise a 0-length
2518         string unless you provide a non-NULL pointer. This prevented
2519         you from marshalling messages containing zero-length arrays in
2520         some cases.
2521
2522         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2523         from Rob to correct bogus asserts when trying to demarshal an
2524         array and get_fixed_array got you 0 elements. Append nothing to
2525         the GArray in this case.
2526
2527         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2528         an empty array via the glib bindings. Without all of the above
2529         patches, this new test fails.
2530
2531 2006-02-16  Robert McQueen  <robot101@debian.org>
2532
2533         * glib/dbus-gmain.c: Make the previous commit compile.
2534
2535         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2536         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2537         specify sender_keyword="foo", path_keyword="bar" when adding
2538         a signal listener, so that you can bind to signals generically
2539         but still do something useful in your callback.
2540
2541         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2542         chars so that they're not cast to chars and made negative. Thanks
2543         to Jakub Stachowski for reporting this and testing the fix.
2544
2545 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2546
2547         * dbus/dbus-glib.h:
2548         * glib/dbus-gmain.h:
2549         (dbus_g_connection_open): new method for openning
2550         a connection to an arbitrary address in the glib bindings
2551
2552         * ChangeLog: checkin last entry which doesn't seem to be commited
2553
2554 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2555
2556         * tools/dbus-launch.c: Fixed sh syntax output
2557
2558 2006-02-13  Robert McQueen  <robot101@debian.org>
2559
2560         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2561         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2562         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2563         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2564         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2565         missing piece of the glib bindings jigsaw puzzle. This modifies
2566         the existing specialised types to have N type parameters (rather
2567         than the current 1 or 2 for arrays and dictionaries respectively).
2568         You can then use this to get a glib type to represent any arbitrary
2569         D-Bus struct type using dbus_g_type_get_struct. The only
2570         implementation of these types is with GValueArrays as before,
2571         but it's now possible to store these in arrays, emit them in
2572         signals, etc.
2573
2574 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2575
2576         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2577         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2578         <thiago.macieira at trolltech.com>
2579
2580 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2581
2582         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2583         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2584
2585 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2586
2587         * bus/connection.c (bus_connections_expect_reply): Make
2588         pending reply limit not common to all connections (Bug #5416)
2589         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2590
2591 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2592
2593         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2594
2595 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2596
2597         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2598         patch from Doug Goldstein <cardoe at gentoo.org>
2599
2600 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2601
2602         * mono/Arguments.cs: Fix a magic number in the mono bindings
2603         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2604
2605 2006-01-27  Robert McQueen  <robot101@debian.org>
2606
2607         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2608         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2609         when generating the client-side methods, instead of overloading
2610         CSymbol which broke everything horribly. My apologies.
2611
2612 2006-01-27  Robert McQueen  <robot101@debian.org>
2613
2614         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2615         by me and Rob Taylor to add a simple_free function to D-Bus map
2616         and collection types, which allows those types which can be freed
2617         with a GDestroyNotify (such as GHashTables and GArrays, but not
2618         GPtrArrays) to be stored as the values in hashtables.
2619
2620         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2621         Patch by Rob Taylor to add nested dicts to the glib tests to check
2622         the above code works, and appears not to leak when called repeatedly.
2623
2624 2006-01-27  Robert McQueen  <robot101@debian.org>
2625
2626         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2627         to free a D-Bus allocated string with dbus_free () instead of
2628         g_free ().
2629
2630 2006-01-27  Iain Holmes  <iain@openedhand.com>
2631
2632         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2633         method from being called multiple times.
2634
2635 2006-01-19  Robert McQueen  <robot101@debian.org>
2636
2637         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2638         <rob.taylor@collabora.co.uk> to add support for generating bindings
2639         to arrays that are represented as GPtrArrays rather than GArrays (ie
2640         size-variable things, such as strings, objects, structs, etc).
2641
2642 2006-01-05  Robert McQueen  <robot101@debian.org>
2643
2644         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2645         <ricardo.kekki@movial.fi> to make it possible to inherit from
2646         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2647         a private part, and moving the setting of the DBusGProxyManager into a
2648         connection property, allowing proper GObject construction.
2649
2650 2006-01-05  Robert McQueen  <robot101@debian.org>
2651
2652         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2653         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2654         annotations when generating glib client bindings.
2655
2656 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2657
2658         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2659
2660         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2661
2662 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2663
2664         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2665
2666 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2667
2668         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2669
2670 2005-12-19  Ross Burton  <ross@openedhand.com>
2671
2672         * doc/dbus-tutorial.xml:
2673         Document the Glib client-side bindings, and list all possible annotations.
2674
2675 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2676
2677         * dbus/bus.c (dbus_bus_release_name): Add documentation
2678
2679 2005-12-06  Robert McQueen  <robot101@debian.org>
2680
2681         * python/service.py: s/sucessful/successful/ so we're allocating to
2682         and reading from the same variable. Oops.
2683
2684 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2685
2686         * Released 0.60
2687
2688 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2689
2690         * test/qt/Makefile.am: build from srcdir
2691
2692         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2693         Note - this code is wrong and needs to be fixed by the Qt binding
2694         developers.  The flags should be treated as bitfields and not enums.
2695
2696         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2697
2698 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2699
2700         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2701           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2702           in production code
2703
2704 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2705
2706         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2707         method for getting messages off the bus in the absence of a
2708         mainloop.  This method is much like 
2709         dbus_connection_read_write_dispatch except it does not dispatch
2710         the messages to a registered filter function.  Instead it
2711         allows a developer to process messages by directly popping
2712         them off the bus.
2713
2714 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2715
2716         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2717         the parser to continue instead of returning error
2718         (bus_desktop_file_load): Do not free parser data when
2719         parse_section_start or parse_key_value fails because it was 
2720         already freed by parser_free (patch from Carlos Garcia Campos  
2721         <carlosgc at gnome.org>)
2722
2723 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2724
2725         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2726         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2727         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2728         test/test-segfault.c, test/test-utils.c,
2729         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2730         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2731         Various cleanup of dead code and compiler warnings (patch from
2732         Kjartan Maraas <kmaraas at gnome.org>) 
2733
2734 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2735
2736         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2737         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2738
2739 2005-11-27  Robert McQueen  <robot101@debian.org>
2740
2741         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2742         part of the preceding one. Oops. Merge patch by Johan Hedberg
2743         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2744         on big-endian platforms.
2745
2746         * test/python/test-client.py: Add some 16-bit integers to the test
2747         values.
2748
2749 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2750
2751         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2752         method return message for property getters
2753
2754 2005-11-27  Robert McQueen  <robot101@debian.org>
2755
2756         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2757         with type v of an instance of dbus.Variant(foo, type='x') caused
2758         it to be boxed twice before sending over the bus.
2759
2760         * python/dbus_bindings.pyx, python/service.py,
2761         test/python/test-client.py: Update the constants for the new
2762         request_name flags, and update comments/test cases now that queueing
2763         is the default action.
2764
2765 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2766
2767         * configure.in:
2768         - Change version to 0.60 for impending release
2769         - upped the sonames because of ABI and API breakage
2770
2771 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2772
2773         * configure.in: Add test/name-test/Makefile to the generated
2774         Makefile list
2775
2776         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2777         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2778         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2779         not to queue an ower if it can't be the primary owner
2780
2781         * bus/bus.h: Add new internal BusOwner struct
2782
2783         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2784         to bus_registry_ensure and don't set the prohibit_replacement flag
2785         since they are now set per BusOwner and not per name.
2786         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2787         that returns the list of connections in a name's connection queue
2788         
2789         * bus/services.c (struct BusService): remove prohibit_replacement field
2790         (struct BusOwner): new struct for keeping track of queued connections
2791         and their associated flags for the queue
2792         (struct BusRegistry): add a BusOwner memory pool
2793         (bus_registry_new): initialize the BusOwner memory pool
2794         (bus_registry_unref): free the BusOwner memory pool
2795         (_bus_service_find_owner_link): new internal method for
2796         searching the queue for a specific connection
2797         (bus_owner_set_flags): new method for adding setting the flags on a
2798         bus owner
2799         (bus_owner_new): new method that creates a BusOwner object from the
2800         pool and sets its flags
2801         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2802         (bus_registry_ensure): Add the flags parameter
2803         (bus_registry_acquire_service): Switch from using raw connections to
2804         using the BusOwner struct
2805         Add new state machine for dealing with the new set of flags
2806         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2807         cancel_ownership, free_ownership_cancel_data, 
2808         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2809         restore_ownership, free_ownership_restore_data, 
2810         add_restore_ownership_to_transaction): Switch to using BusOwner 
2811         instead of raw connections
2812         (bus_service_add_owner): Add flags parameter
2813         Switch to using BusOwner instead of raw connections
2814         Add state machine for dealing with the new set of flags
2815         (bus_service_swap_owner): Swaps the first and second owners in the
2816         queue.  Used to make sure proper signals are sent when a service looses 
2817         or gains primary ownership.  We never insert an owner at the top of the
2818         queue.  Instead we insert it in the second position and then swap.
2819         (bus_service_remove_owner): Remove the owner from the queue sending
2820         out the NameLost and NameOwnerChanged signals if the we were the 
2821         primary owner
2822         (bus_service_get_primary_owners_connection): New method that extracts
2823         the connection from the primary owner
2824         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2825         connection
2826         (bus_service_get_allow_replacement): Changed from the old 
2827         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2828         primary owner and returns if it can be replaced or not
2829         (bus_service_set_prohibit_replacement): removed
2830         (bus_service_has_owner): returns TRUE if and owner with
2831         the specified connection exists in the queue
2832         
2833         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2834         method that only compiles if tests are enabled.  Allows us to get the 
2835         unique name of a connection so we can check it against the queue when
2836         doing regression tests
2837
2838         * bus/activation.c (bus_activation_send_pending_auto_activate),
2839         bus/dispatch.c (bus_dispatch),  
2840         bus/driver.c (bus_driver_handle_get_service_owner, 
2841         bus_driver_handle_get_connection_unix_user, 
2842         bus_driver_handle_get_connection_unix_process_id,
2843         bus_driver_handle_get_connection_selinux_security_context),
2844         bus/signals.c (connection_is_primary_owner): 
2845         use bus_service_get_primary_owners_connection instead of
2846         bus_service_get_primary_owner
2847
2848         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2849         _dbus_listen_unix_socket): Calculate the length of the socket
2850         path and use that instead of using a fixed length which was
2851         causing socket names to contain many trailing Nul bytes.
2852
2853         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2854         (dbus_g_method_get_sender): New method for extracting the sender 
2855         from a DBusGMethodInvocation
2856         (dbus_g_method_return_get_reply): changed name to 
2857         dbus_g_method_get_reply
2858         (dbus_g_method_return_send_reply): changed name to
2859         dbus_g_method_send reply
2860
2861         * doc/dbus-specification.xml: New docs that describe how the new
2862         queueing system works and talks about the changes to the how
2863         we specify socket names
2864
2865         * glib/examples/example-service.c, 
2866         glib/examples/example-signal-emitter.c,
2867         glib/examples/statemachine/statemachine-server.c:
2868         Changed the RequestName flags to the new system
2869
2870         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2871         regression test suite for testing various states of the new
2872         queueing system
2873         
2874 2005-11-15  Robert McQueen  <robot101@debian.org>
2875
2876         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2877         Taylor to add two methods, dbus_g_method_return_get_reply and
2878         dbus_g_method_return_send_reply, to allow you to get the reply
2879         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2880         and send it. The GLib bindings can't marshal a return value of
2881         something like a(s) if the array is empty - ultimately they should be
2882         made to heed the signature of the out arguments as the Python bindings
2883         now can, but this is a workable interim solution which might have
2884         other applications.
2885
2886 2005-11-15  Robert McQueen  <robot101@debian.org>
2887
2888         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2889         method to org.freedesktop.DBus to release a bus name or give up
2890         waiting in the queue for it.
2891
2892         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2893         dbus_bus_release_name method to send the ReleaseName method calls.
2894         Add constants for the return values to dbus/dbus-shared.h.
2895
2896         * doc/dbus-specification.xml: Document the new ReleaseName method
2897         in the specification.
2898
2899         * python/dbus_bindings.pyx: Add a low-level python binding for the
2900         release name method.
2901
2902         * python/exceptions.py, python/service.py: Make freeing BusName
2903         objects release the name. Add a NameExistsException, and fix a
2904         bug with creating UnknownMethodException.
2905
2906         * test/python/test-client.py: Add tests for freeing BusName
2907         objects causing names to be released.
2908
2909 2005-11-14  Robert McQueen  <robot101@debian.org>
2910
2911         * python/service.py: Include the traceback in the error reply when we
2912         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2913
2914 2005-11-14  David Zeuthen  <davidz@redhat.com>
2915
2916         Patch from Timo Hoenig <thoenig@suse.de>.
2917
2918         * bus/bus.c: I've recently investigated why the automatic reload
2919         of configuration files does not work as expected.
2920
2921         Currently, reloading configuration files does only work when
2922         running dbus-daemon with --nodaemon.  If we are running as daemon
2923         we're hitting a dnotify bug once we fork the process.
2924
2925         We're initializing the dnotify fds before calling fork().  Once
2926         the child process forked it does still have the fds (and they
2927         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2928         getting SIGIO as changes are made to the configuration files.
2929
2930         The attached patch moves the initialization of the dnotify fds to
2931         process_config_postinit().  This is safe for all current code
2932         paths and solves the dnotify disfunction.  If we're running
2933         dbus-daemon as daemon the fds for dnotify are now being
2934         initialized after fork() for the child process.
2935
2936         * configure.in: The current configure.in check for dnotify probes
2937         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2938         match for 'xlinux', too. Additionally I have adapted the configure
2939         option's style to match with the others.
2940
2941 2005-11-14  Robert McQueen  <robot101@debian.org>
2942
2943         * python/decorators.py, python/service.py: Add a new argument to the
2944         dbus.service.method decorator called sender_keyword, which if set,
2945         specifies the name of an argument which will be provided the bus
2946         name of the method caller.
2947
2948         * test/python/test-client.py, test/python/test-service.py: Add a
2949         method and test to check the sender_keyword functionality.
2950
2951 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2952
2953         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2954         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2955         Simons <sjoerd at luon.net>)
2956
2957         * AUTHORS: Add Robert McQueen for his work on the Python
2958         Bindings and other parts of D-Bus
2959
2960 2005-11-07  Robert McQueen  <robot101@debian.org>
2961
2962         * python/decorators.py: Change emit_signal function to use the
2963         signature annotation of the signal when marhsalling the arguments from
2964         the service. Fix a bug where the code checking signature length
2965         against argument length referenced the wrong variable.
2966
2967         * python/introspect_parser.py: Avoid adding the type signature of
2968         signal arguments to any methods which occur after them in the
2969         introspection data (!) by making the parser a little more careful
2970         about its current state.
2971
2972         * python/service.py: Remove debug prints from last commit (again :D).
2973
2974         * test/python/test-client.py, test/python/test-service.py: Add test
2975         signals with signature decorators to test the strict marshalling code
2976         gives errors at the right time. Could do with checking the signals
2977         actually get emitted too, given that the test does nothing with
2978         signals at the moment...
2979
2980 2005-11-07  Robert McQueen  <robot101@debian.org>
2981
2982         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2983         instances to stop madness of creating new instances representing
2984         the same bus connection all the time, rendering any tracking of
2985         match rules and bus names quite meaningless. Caught a bug where
2986         the private argument to SessionBus() and friends was being passed
2987         in as use_default_mainloop by mistake. Still some problems with
2988         multiple dbus_binding.Connection instances representing the same
2989         low-level connection (eg when you use both SessionBus() and
2990         StarterBus() in same process), but it's a lot better now than it
2991         was.
2992
2993         * python/dbus_bindings.pyx: Add constants with the return values
2994         for bus_request_name().
2995
2996         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2997         and retrieve the same instances for the same name, so deletion can be
2998         done with refcounting. Also now throws some kind of error if you
2999         don't actually get the name you requested, unlike previously...
3000
3001         * test/python/test-client.py: Add tests for instance caching of buses
3002         and bus name objects.
3003
3004 2005-11-04  Robert McQueen  <robot101@debian.org>
3005
3006         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3007         marshalling of boolean values. Add some booleans to the values in
3008         the test client.
3009
3010         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3011         argument to the dbus.service.method decorator, which allows you to
3012         name arguments to take two callback functions for replying with
3013         return values or an exception.
3014
3015         * test/python/test-client.py, test/python/test-service.py: Add test
3016         case using asynchronous method reply functions, both return values and
3017         errors, and from within both the function itself and from a mainloop
3018         callback.
3019
3020         * python/decorators.py, python/service.py: Perform checking that the
3021         number of method/signal arguments matches the number of types in the
3022         signature at class loading time, not when you first introspect the
3023         class.
3024
3025         * python/service.py: Remove debug print left by the last commit.
3026
3027 2005-11-03  Robert McQueen  <robot101@debian.org>
3028
3029         * python/service.py: Heavy refactoring of method invocation, with
3030         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3031         in favour of a new _message_cb that uses seperate functions for
3032         looking up the method to call, marshalling the return values, and
3033         sending exceptions as errors, and is easier to follow as a
3034         consequence.  Fixes some corner cases about returning things that
3035         don't match your declared out_signature, allows exceptions to define
3036         _dbus_error_name and have it be sent over the bus as the error name,
3037         and paves the way for cool stuff like heeding the message no reply
3038         flag, asynchronous method implementations, informing the method of the
3039         sender, and including backtraces in the error messages.
3040
3041         * test/python/test-client.py: Catch and print exceptions thrown in the
3042         async callback tests, rather than passing them to the low-level
3043         bindings to be ignored in a noisy and frustrating manner.
3044
3045 2005-11-03  Robert McQueen  <robot101@debian.org>
3046
3047         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3048         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3049         tweak others to be consistent.
3050
3051         * test/python/test-client.py: Tweak output of testInheritance.
3052
3053 2005-10-29  Robert McQueen  <robot101@debian.org>
3054
3055         * python/service.py: Major changes to allow multiple inheritance
3056         from classes that define D-Bus interfaces:
3057         
3058          1. Create a new Interface class which is the parent class of
3059             Object, and make the ObjectType metaclass into InterfaceType.
3060         
3061          2. Patch written with Rob Taylor to replace use of method_vtable
3062             with code that walks the class's __MRO__ (method resolution order)
3063             to behave like Python does when invoking methods and allow
3064             overriding as you'd expect. Code is quite tricky because
3065             we have to find two methods, the one to invoke which has the
3066             right name and isn't decorated with the /wrong/ interface,
3067             and the one to pick up the signatures from which is decorated
3068             with the right interface.
3069         
3070             The same caveats apply as to normal multiple inheritance -
3071             this has undefined behaviour if you try and inherit from two
3072             classes that define a method with the same name but are
3073             decorated with different interfaces. You should decorate
3074             your overriding method with the interface you want.
3075         
3076          3. Replace grungy introspection XML generation code in the metaclass
3077             with dictionaries that cope correctly with multiple inheritance
3078             and the overriding of methods. This also uses the signature
3079             decorations to provide correct introspection data, including
3080             the debut appearance of the types of your return values. :D
3081
3082         * test/python/test-client.py, test/python/test-service.py: Add a test
3083         case to try invoking an method that overrides one inherited from a
3084         D-Bus interface class.
3085
3086 2005-10-29  Robert McQueen  <robot101@debian.org>
3087
3088         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3089         Add checking for the end of struct character when marshalling a
3090         struct in MessageIter.append_strict.
3091
3092         * python/examples/example-service.py,
3093         python/examples/gconf-proxy-service.py,
3094         python/examples/gconf-proxy-service2.py: Update to use gobject
3095         mainloop directly rather than appearing to depend on gtk.
3096
3097         * python/test/test-client.py, python/test/test-server.py: Remove
3098         obsolete and broken test scripts for old bindings. We have up to date
3099         and working tests in test/python/.
3100
3101 2005-10-29  Robert McQueen  <robot101@debian.org>
3102
3103         * python/decorators.py: Add optional arguments to the method and
3104         signal decorators to allow you to specify the signature of arguments
3105         and return values. Preserve the doc strings of signal functions in the
3106         decorated version, for pydoc and friends.
3107
3108         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3109         parse_signature_block function with an iterable dbus.Signature()
3110         type. Fix a bug in MessageIter.append_strict where you could append
3111         anything by claiming it was a string.
3112
3113         * python/service.py: Use the out_signature decoration on methods to
3114         marshal return values, meaning you no longer require dbus.Array()
3115         or dbus.Dictionary() to indicate the type when returning empty
3116         arrays or dictionaries. Fix a bug where exceptions which are defined
3117         in __main__ are not turned into error replies.
3118
3119         * test/python/test-client.py, test/python/test-service.py: Add test
3120         for correct marshalling of return values according to out_signature.
3121         Fix a bug in the async call test where the error_handler is missing a
3122         self argument.
3123
3124 2005-10-29  Robert McQueen  <robot101@debian.org>
3125
3126         * glib/Makefile.am, glib/examples/Makefile.am,
3127         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3128         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3129
3130         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3131
3132         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3133         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3134         the command line.
3135
3136 2005-10-27  Ross Burton  <ross@openedhand.com>
3137
3138         * dbus/dbus-marshal-header.c:
3139         Remove dead code.
3140
3141         * glib/dbus-gobject.c:
3142         Stop compiler warning.
3143
3144 2005-10-25  Ross Burton  <ross@openedhand.com>
3145
3146         * dbus/dbus-auth.c:
3147         * dbus/dbus-server-unix.c:
3148         * dbus/dbus-transport-unix.c:
3149         * glib/dbus-gmain.c:
3150         * glib/dbus-gobject.c:
3151         Add some const keywords.
3152
3153 2005-10-25  Ross Burton  <ross@openedhand.com>
3154
3155         * doc/dbus-specification.xml:
3156         Document the NoReply annotation.
3157
3158         * glib/dbus-binding-tool-glib.h:
3159         * glib/dbus-binding-tool-glib.c:
3160         Respect the NoReply annotation.
3161
3162 2005-10-24  Robert McQueen <robot101@debian.org>
3163
3164         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3165         derive from unicode instead of str, and encode/decode UTF-8 when
3166         marshalling/unmarshalling bus messages
3167
3168         * python/introspect_parser.py: encode introspection data as UTF-8
3169         before passing the buffer into libxml2
3170
3171         * test/python/test-client.py: add unicode test strings
3172
3173         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3174         ignore generated python test files
3175
3176 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3177
3178         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3179         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3180         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3181
3182         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3183         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3184         when constructing struct signatures
3185
3186         * python/_dbus.py (Bus): handle private connections using the
3187         private keyword in the constructor. defaults to private=False
3188         (Bus::close): new method to close a connection to the bus
3189
3190         * python/dbus_bindings.pyx (Connection::close): renamed method
3191         was previously called disconnect
3192         (bus_get): now supports getting a private connection
3193
3194         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3195         keyword is set to True.  if it is, execute the method without waiting
3196         for a reply
3197         (ProxyObject::_introspect_execute_queue): new method for executing
3198         all the pending methods that were waiting for the introspect to
3199         finish.  this is called when introspect either succeeds or fails
3200         (ProxyObject::_introspect_error_handler): call queued methods
3201
3202 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3203
3204         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3205         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3206
3207         * python/service.py (Object::_message_cb): handle exceptions correctly
3208         by sending them over the wire to the calling app.  This makes sure
3209         the client returns immediately instead of waiting the 15 seconds to
3210         timeout.
3211
3212         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3213         Add a test to benchmark how long it takes to introspect a service and 
3214         call a method which returns a large element (pretty fast)
3215
3216         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3217         method which pushes a lot of data
3218
3219 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3220
3221         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3222         reclaim memory outside of the loop and use del istead of just setting
3223         the key to None
3224
3225 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3226
3227         * python/service.py (ObjectType::_reflect_on_signal): Always close
3228         signal tag even when there are no arguments
3229
3230 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3231
3232         * configure.in: Set mono, mono-docs and Qt3 to default
3233         to no instead of auto when building.  These bindings do not
3234         have full time maintainers and will not be supported for the
3235         1.0 release.
3236
3237 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3238
3239         patches from Michael Krivoruchko <misha at sun.com>: 
3240         
3241         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3242         _dbus_connection_message_sent, 
3243         _dbus_connection_send_preallocated_unlocked_no_update, 
3244         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3245         is NULL when calling _dbus_verbose
3246
3247         * configure.in: check for functions getpeerucred and getpeereid
3248
3249         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3250         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3251         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3252         Patch was only tested on Solaris 10 x86 so it might be issues
3253         with other platforms (i.e. BSDs and MacOSX)
3254         
3255
3256 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3257
3258         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3259         instead of marshal basic so we can handle recursive types in a variant
3260
3261         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3262         in variants
3263
3264         * test/glib/test-service-glib.c, test-service-glib.xml
3265         (my_object_echo_variant [EchoVariant], 
3266         my_object_process_variant_of_array_of_ints123
3267         [ProcessVariantOfArrayOfInts123]): 
3268         Add two test methods
3269
3270         * python/introspect_parser.py: New module for parsing introspect
3271         data.
3272
3273         * python/dbus_bindings.pyx:
3274         (various places): when throwing errors fix to use errormsg instead 
3275         of message local variable because Pyrex can get confused with other 
3276         message variables (initial patch by Robert McQueen 
3277         <robert.mcqueen at collabora.co.uk>)
3278         (MessageIter::parse_signature_block): new method for getting the next
3279         block in a signiture.
3280         (MessageIter::append_strict): new method for appending values strictly
3281         using the passed in signature instead of guessing at the type
3282         (MessageItter:: append_dict, append_struct, append_array): use 
3283         signatures to marshal children if the signature is available
3284         
3285         * python/exceptions.py (IntrospectionParserException): new exception
3286
3287         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3288         introspected signatures if available, else we fall back to the
3289         old way of doing things.
3290         (ProxyObject::_introspect_reply_handler ): parse introspection data
3291         
3292         * python/service.py (ObjectType::_reflect_on_method): Properly
3293         terminate <method> if there are no args in the reflection data
3294
3295         * test/python/test-client.py: add tests for talking with the GLib
3296         test server.  This gives us better coverage for introspection since
3297         python to python will always generate arguments as variants.  It also
3298         allows us to test the robustness of the GLib bindings and interlanguage
3299         communications.
3300
3301         
3302 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3303
3304         * bus/driver.c (bus_driver_handle_introspect): Add signals
3305         to the introspect data. (patch from Daniel P. Berrange 
3306         <dan at berrange.com>)
3307
3308         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3309         
3310         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3311         _dbus_connection_run_builtin_filters): Changed these to
3312         be unlock_no_update functions and call 
3313         _dbus_connection_send_unlocked_no_update instead of
3314         dbus_connection_send to avoid locking errors.
3315         
3316         * doc/TODO: Removed the make Ping test TODO
3317         
3318 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3319
3320         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3321         We now copy the message from a DBusError and then free 
3322         the error object befor throwing the error
3323
3324         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3325         DBusBindingOutputMode enum which was causing a warning.
3326         #include <time.h> so using time_t is explicitly defined
3327
3328 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3329
3330         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3331         - dbus/dbus-bus.c
3332         (internal_bus_get): new method that take over the heavy lifting
3333         of dbus_bus_get and adds the ability to get a private connection
3334         to the bus
3335         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3336         interface as in previous versions
3337         (dbus_bus_get_private): new method that is a wrapper to 
3338         internal_bus_get to get a private connection to the bus
3339
3340         - dbus/dbus-bus.h
3341         (dbus_bus_get_private): add as a public libdbus interface
3342
3343         - dbus-1.pc.in: output system_bus_default_address and 
3344         sysconfdir variables so apps can use them when compiling
3345
3346 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3347         * dbus/qt: New Qt bindings
3348
3349 2005-09-12  Waldo Bastian  <bastian@kde.org>
3350
3351         * dbus/dbus-marshal-validate.c,
3352         doc/dbus-specification.xml, test/Makefile.am,
3353         test/test-names.c: allow hyphens in bus names.
3354
3355 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3356
3357         * test/data/auth/fallback.auth-script: we don't
3358         retry the EXTERNAL method when we know its going
3359         to fail anymore.
3360
3361 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3362
3363         * dbus/dbus-connection-internal.h: rename
3364         (add|remove|toggle)_(watch|timeout) to unlocked()
3365         
3366         * dbus/dbus-connection.c: ditto.
3367         
3368         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3369         Update some callers for the renaming.
3370
3371 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3372
3373         * dbus/dbus-auth.c: (record_mechanisms): don't
3374         retry the first auth mechanism because we know
3375         we're just going to get rejected again.
3376         
3377         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3378         Fix thinko ... and what a nasty little bugger to
3379         track down you were ...
3380
3381         * dbus/dbus-connection.c:
3382         (_dbus_connection_add_watch),
3383         (_dbus_connection_remove_watch): add note about
3384         these needing the connection to be locked.
3385         (_dbus_connection_get_dispatch_status_unlocked):
3386         set status to DATA_REMAINS when we queue the
3387         disconnected message.
3388         
3389         * bus/dispatch.c:
3390         (bus_dispatch): fix warning.
3391         (check_existent_service_no_auto_start):
3392         Expect ChildSignaled error too.
3393         (check_existent_hello_from_self): fix another
3394         couple of warnings.
3395         
3396 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3397
3398         Patches from James Willcox <snorp@snorp.net>
3399
3400         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3401
3402         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3403         support array "out" parameters.
3404
3405         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3406         for 16-bit int support.
3407
3408 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3409
3410         * Released 0.50
3411
3412         * Patch from Steve Grubb:
3413         - bus/activation.c (bus_activation_service_reload_test): clean up
3414         some indentation
3415         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3416         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3417         buffer overflows in the test suite.  This is non critical because
3418         it can not be exploited and this code is only run when doing a 
3419         make check.
3420
3421         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3422         - configure.in: Don't check and link against kdecore, only qt headers
3423         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3424         - gcj/org/freedesktop/dbus/Makefile.am:
3425         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3426         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3427         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3428         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3429         - tools/Makefile.am: Add platform extentions to binaries 
3430         (i.e. .exe on windows)
3431
3432         * configure.in: 
3433         - Make it so if no suitable version of python is found we only 
3434         disable building python instead of exiting the configure script
3435         - Require version 2.4 of glib for glib bindings
3436         - Up version to 0.50
3437
3438         * python/__init__.py: Sync version with libdbus to (0,50,0)
3439         
3440 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3441
3442         * dbus/dbus-object-tree.c (find_subtree_recurse):
3443         a couple of optimizations (bug #710):
3444         - do a binary search in the tree
3445         - insert a new child at the right place directly, no need for
3446           qsort anymore
3447         - do the "double alloc" thing when allocating children
3448
3449 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3450
3451         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3452
3453         * python/dbus_bindings.pyx: Memory management foo
3454         (global): remove hacky _user_data_references global list
3455         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3456         tuples. Unref user_data
3457         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3458         (Connection::__del__): Remove and replace with __dealloc__ method
3459         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3460         to keep tuple from being deallocated instead of the global var hack
3461         (Connection::register_object_path): Stuff user_data into a tuple.
3462         Use Py_INCREF to keep tuple from being deallocated instead of the 
3463         global var hack
3464         (Connection::register_fallback): Stuff user_data into a tuple.
3465         Use Py_INCREF to keep tuple from being deallocated instead of the 
3466         global var hack
3467         (GIL_safe_pending_call_notification): Don't unref the message
3468         because it gets unreffed when going out of scope.  Py_XDECREF
3469         the user_data
3470         (PendingCall::__del__): Remove and replace with __dealloc__ method
3471         (PendingCall::set_notify): ref the pending call because we will
3472         need it to stick around for when the notify callback gets called
3473         (Message::__del__): Remove and replace with __dealloc__ method
3474
3475         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3476         gthreads_init to match up with the dbus call
3477
3478         * python/glib.py (init_threads): Changed to threads_init to match
3479         up with gobject.threads_init().  init_threads is kept for backwards
3480         compat but will most likely be deprecated in the future
3481
3482         * test/python/test-client.py: 
3483         - revamp to use Python's unittest functionality
3484         - add async call tests
3485         - setup threads in glib and dbus so we make sure locks are working
3486         
3487 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3488
3489         * python/dbus_bindings.pyx 
3490         (_pending_call_notification, cunregister_function_handler, 
3491         cmessage_function_handler): All callback functions have been rearranged 
3492         to workaround a bug in Pyrex when working with the GIL which is Python's 
3493         global lock when dealing with threads.  They have been split into
3494         a wrapper function (which assumes the name of the old function) and
3495         a _GIL_safe_<function name> function which contains the functionality
3496         of the old function.  This ensures that Pyrex does not write code
3497         the lock is released.
3498         
3499
3500 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3501
3502         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3503         GIL global lock when calling back into Python
3504
3505 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3506
3507         * Release 0.36.2
3508
3509         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3510
3511         * bus/policy.c (bus_policy_allow_user): change default "user is
3512         allowed" to be "user has same uid as the bus itself"; any
3513         allow/deny rules will override.
3514
3515         * bus/session.conf.in: don't allow all users, since now by default
3516         the user that ran the bus can connect.
3517
3518 2005-08-26  Colin Walters  <walters@verbum.org>
3519
3520         * tools/dbus-print-message.c (print_message): Flush stdout
3521         after printing a message, so that redirecting to a file, then
3522         hitting Ctrl-C works.
3523
3524 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3525
3526         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3527         (EmptyMessage): new class that subclasses Message.  This is a workaround
3528         to a Pyrex bug that fails to call __del__ when the Message object goes out
3529         of scope.  For some reason subclassing Message fixes this bug
3530         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3531         - s/Message(_create=0)/EmptyMessage everywhere else
3532         
3533         * test/python/test-{server|client}.py: add the python/.libs directory
3534         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3535         get picked up from the system
3536
3537 2005-08-25  Colin Walters  <walters@verbum.org>
3538
3539         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3540         to Ryan Lortie for the suggestion.
3541
3542 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3543
3544         * test/python: Add python regression test
3545
3546         * configure.in: Add test/python/Makefile
3547
3548         * test/Makefile.am: Add the python directory to SUBDIRS
3549
3550 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3551
3552         * Release 0.36.1
3553
3554         * python/_dbus.py: 
3555         (Interface::connect_to_signal): propigate keywords for match on args
3556         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3557
3558         * python/proxies.py (ProxyObject::connect_to_signal):
3559         propigate keywords for match on args
3560
3561         * Makefile.am: point everything to pyexecdir since python borks
3562         on multilib
3563
3564 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3565
3566         * Release 0.36
3567
3568 2005-08-23  Colin Walters  <walters@verbum.org>
3569
3570         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3571
3572 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3573
3574         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3575         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3576         of defining DBusConnection ourselves.
3577
3578 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3579
3580         * python/dbus.pth: New path file to fix up problems when installing
3581         c libraries to lib64 and python files to lib.
3582
3583         * python/Makefile.am: install dbus.pth in the correct spot
3584
3585 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3586         * ChangeLog: clean up my last entry a bit
3587
3588         * doc/introspect.xsl: New stylesheet for converting introspection data
3589         into browser renderable xhtml. Contributed by Lennart Poettering.
3590
3591         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3592         Poettering.
3593
3594         * doc/dbus-tutorial.xml: 
3595         - Add Colin Walter to the Authors section for authoring the GLib
3596         section
3597         - Add descriptions of the new signature and type functionality
3598         in the Python complex type mapping section
3599         - Add a sidenote on the new args matching functionality in 
3600         the Python bindings
3601         - Fixed up some of the examples to use the gobject.MainLoop
3602         instead of gtk.main
3603         
3604         * python/_dbus.py:
3605         (Bus::_create_args_dict): New. Converts a hash of arg matches
3606         to a more useable format
3607         (Bus::add_signal_receiver): add a **keywords parameter for catching
3608         arg match parameters
3609         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3610         arg match parameters
3611         
3612         * python/matchrules.py:
3613         (MatchTree::exec_matches): Check for arg matches
3614         (SignalMatchRule::add_args_match): New method
3615         (SignalMatchRule::execute): Added args_list parameter as an optimization
3616         so we don't have to marshal the args more than once
3617         (SignalMatchRule::match_args_from_list): New method that checks to see
3618         if the rule's arg matches match an argument list.  Only arguments
3619         set in the rule are checked.
3620         (SignalMatchRule::match_args_from_rule): New method that checks to see
3621         if the rule's arg matches match another rule's.  All args have to match
3622         in order for this method to return true.  If either rule has more args
3623         then it is not a match.
3624         (SignalMatchRule::is_match): Add args match
3625         (SignalMatchRule::repr): Add args to the final output if they exist
3626
3627 2005-08-17  Ross Burton  <ross@burtonini.com>
3628
3629         * glib/dbus-gproxy.c:
3630         (dbus_g_proxy_call_no_reply): unref the message once sent.
3631         (dbus_g_proxy_call): protect against NULL proxy.
3632
3633 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3634
3635         * python/__init__.py: Version updated (0, 43, 0)
3636         
3637         * python/dbus_bindings.pyx: 
3638         - Fixed type objects to have self passed into __init__
3639         - Added the Variant type
3640         - Add the ability to specify types or signatures for Array, Variant 
3641         and Dictionary
3642         (Connection::send_with_reply_handlers): return a PendingCall object
3643         (_pending_call_notification): handle the case when an error is returned 
3644         without an error message in the body
3645         (MessageIter::get_boolean): return True or False instead of an integer
3646         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3647         and add checks for objects with embeded signatures or types (Array, 
3648         Variant and Dictionary)
3649         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3650         (MessageIter::append_dict): handle embeded types or signatures
3651         (MessageIter::append_array): handle embeded types or signatures
3652         (MessageIter::append_variant): new method
3653         
3654         * python/proxies.py:
3655         (DeferedMethod): New. Dummy executable object used when queuing calls 
3656         blocking on introspection data
3657         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3658         or shorter timeouts for method calls
3659         (ProxyObject): Add first pass at an introspection state machine
3660         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3661         introspection. 
3662         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3663         the usual mechanisms for sending messages.  This is to avoid a deadlock
3664         where the Intospect call would be queued waiting for the Introspect 
3665         call to finish ;-)
3666         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3667         when introspection returns with no error
3668         (ProxyObject::_introspect_error_handler): New.  This method is called 
3669         when introspection encounters an error
3670         (ProxyObject::__getattr__): Code to handle different introspection 
3671         states.  Queue async calls or block blocking calls if we are 
3672         introspecting.  Pass through as normal if we are not or are done with 
3673         introspecting.
3674         
3675         * python/service.py: Import signal and method from decorators.py
3676
3677         * python/types.py: Add Variant type
3678
3679 2005-08-16  Colin Walters  <walters@verbum.org>
3680
3681         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3682         DBusError message is NULL.
3683
3684 2005-08-09  Havoc Pennington  <hp@redhat.com>
3685
3686         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3687         malloc'd copy of the name parameter
3688
3689 2005-08-09  Havoc Pennington  <hp@redhat.com>
3690
3691         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3692         warning if the reply serial is set to 0
3693
3694 2005-08-04  Colin Walters  <walters@verbum.org>
3695
3696         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3697         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3698         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3699         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3700         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3701         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3702         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3703         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3704         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3705         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3706         
3707         Prefix name with _ to ensure they're not exported.  All callers
3708         updated.
3709
3710         * glib/dbus-gvalue.c (typecode_to_gtype)
3711         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3712         (signature_iter_to_g_type_dict)
3713         (signature_iter_to_g_type_array)
3714         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3715         (dbus_gtypes_from_arg_signature):
3716         Move to dbus-gsignature.c.
3717
3718         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3719         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3720         (dbus_binding_tool_output_glib_client): Ditto.
3721
3722         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3723         and dbus-gsignature.h
3724
3725         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3726         unused variable.
3727
3728 2005-08-03  Colin Walters  <walters@verbum.org>
3729
3730         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3731         catch any incompatible changes accidentally made.
3732
3733 2005-08-03  Havoc Pennington  <hp@redhat.com>
3734
3735         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3736         typo, from Julien Puydt
3737
3738         * bus/connection.c (bus_connection_disconnected): we were always
3739         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3740
3741 2005-08-01  Colin Walters  <walters@verbum.org>
3742
3743         Patch from Joe Markus Clarke:   
3744         
3745         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3746         use-after-free.
3747
3748 2005-08-01  Colin Walters  <walters@verbum.org>
3749         
3750         Patch from Joe Markus Clarke:   
3751         
3752         * tools/dbus-send.c (main): 
3753         
3754         Don't use C99 style initializers (bug #3933).
3755         
3756 2005-08-01  Colin Walters  <walters@verbum.org>
3757
3758         Patch from Joe Markus Clarke:   
3759
3760         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3761         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3762         * glib/dbus-gobject.c (write_interface):
3763
3764         Don't use C99 style initializers (bug #3933).
3765
3766 2005-07-31  Havoc Pennington  <hp@redhat.com>
3767
3768         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3769         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3770
3771 2005-07-30  Havoc Pennington  <hp@redhat.com>
3772
3773         * fix a bunch of Doxygen warnings and mistakes
3774
3775 2005-07-30  Havoc Pennington  <hp@redhat.com>
3776
3777         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3778         DBUS_BUILD_TESTS since it's now used in production code
3779
3780 2005-07-29  Havoc Pennington  <hp@redhat.com>
3781
3782         * test/glib/test-profile.c (write_junk): initialize the junk
3783         buffer so valgrind doesn't have a breakdown
3784
3785 2005-07-29  Havoc Pennington  <hp@redhat.com>
3786
3787         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3788         (match_rule_matches): remove unused arg
3789         (test_matching): add tests for match_rule_matches()
3790
3791         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3792         do arg0='foo' arg5='bar' in the match rules
3793         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3794
3795         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3796
3797 2005-07-29  Ross Burton  <ross@openedhand.com>
3798
3799         * dbus/dbus-connection.c:
3800         Don't create a DBusCondVar which is never used.
3801
3802 2005-07-27  Ross Burton  <ross@openedhand.com>
3803
3804         * dbus/dbus-message.c:
3805         Reduce the size of the maximum cached message to 10K.
3806
3807 2005-07-25  Ross Burton  <ross@openedhand.com>
3808
3809         * glib/dbus-gproxy.c:
3810         Remove matches when all proxies are unregistered.
3811
3812 2005-07-24  Colin Walters  <walters@verbum.org>
3813
3814         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3815         typedata; recursive arrays won't have it.
3816
3817         * test/glib/test-dbus-glib.c:
3818         * test/glib/test-service-glib.c:
3819         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3820         
3821 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3822
3823         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3824         proxies.py, service.py: Cleanup of code after running it through the
3825         pyflakes code checker mostly dealing with undefined names.  
3826         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3827
3828 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3829
3830         * NEWS: Update to 0.35.2
3831
3832 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3833
3834         * python/_dbus.py: Remove import of the dbus.services
3835         module as it no longer exists (patch from Dimitur Kirov)
3836
3837         * python/service.py (Object::__init__): Fixed typo
3838         s/name/bus_name (patch from Dimitur Kirov)
3839
3840         * python/examples/example-signal-emitter.py: import dbus.glib
3841         to get the main loop and use glib mainloop instead of gtk so
3842         X doesn't have to be running.
3843
3844         * python/examples/example-signal-recipient.py: import dbus.glib
3845         to get the main loop and use glib mainloop instead of gtk so
3846         X doesn't have to be running. Import the decorators module
3847         directly.
3848
3849         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3850         didn't pick up on but are needed to build
3851
3852         * configure.in: upped version to 0.35.2
3853
3854         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3855         added Colin Walters' SELinux API rename patch from head 
3856         s/unix sercurity context/selinux security context/
3857
3858 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3859
3860         * python/Makefile.am: dbus_binding.pxd.in should be included 
3861         in EXTRA_DIST not dbus_binding.pxd
3862         fix up $(srcdir) hopefully for the last time
3863
3864         * NEWS: Update to 0.35.1
3865
3866 2005-07-16  Colin Walters  <walters@verbum.org>
3867
3868         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3869         from bus_driver_handle_get_connection_unix_security_context.  Update for
3870         error usage.
3871         (message_handlers): Update for renames.
3872
3873         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3874         _dbus_string_init failure correctly.
3875         (bus_selinux_append_context): Convert SID to context.  Append it
3876         as a byte array.
3877         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3878         hasn't been called.
3879
3880         * bus/selinux.h: Update prototype.
3881
3882         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3883         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3884
3885 2005-07-15  Colin Walters  <walters@verbum.org>
3886
3887         * doc/TODO: Add note about convenience wrappers.
3888
3889 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3890
3891         * NEWS: Update to 0.35
3892
3893 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3894
3895         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3896         so distcheck doesn't fail
3897
3898         * glib/examples/Makefile.am: Add example-service.xml and 
3899         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3900
3901         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3902         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3903
3904         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3905         compiler looks in the right places during distcheck
3906
3907 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3908
3909         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3910         to fail
3911
3912 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3913
3914         * python/examples/example-service.py,
3915         python/examples/example-signal-emitter.py: Fixed up examples
3916         for API changes
3917
3918 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3919
3920         * python/__init__.py: Upped to version (0,42,0) because of
3921         the API change
3922
3923 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3924
3925         * ChangeLog: fix date in last entry
3926
3927         * configure.in, bus/system.conf.in: add the ability to configure 
3928         the system bus user at compiletime with the --with-dbus-user flag
3929         (patch from Kristof Vansant)
3930
3931 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3932
3933         * bus/dispatch.c, test/test-service.c: Add testcase
3934         for sending messages to oneself (TODO item).
3935
3936         * python/service.py (class Object): Swap ordering of bus_name 
3937         and object_path parameters to better support inheritance.
3938
3939         * doc/dbus-tutorial.xml: change Python docs to reflect change
3940         in parameter ordering and fix the inheritance section.
3941
3942         * doc/TODO: remove sending message to oneself TODO item
3943
3944 2005-07-15  Ross Burton  <ross@openedhand.com>
3945
3946         * glib/dbus-gproxy.c:
3947         Fix a leak when calling methods via the proxy.
3948
3949 2005-07-15  Colin Walters  <walters@verbum.org>
3950
3951         * bus/selinux.c (bus_selinux_append_context): Wrap in
3952         HAVE_SELINUX.
3953
3954 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3955
3956         * python/_dbus.py (Bus::remove_signal_receiver):
3957         don't add a callback to the match if none has been passed in
3958         
3959         * python/matchrules.py (SignalMatchTree::remove): if the rule
3960         being matched does not have a callback treat it as a wildcard
3961         fix matching logic
3962
3963         * doc/dbus-tutorial.xml: Add Python tutorial
3964
3965 2005-07-14  Colin Walters  <walters@verbum.org>
3966
3967         * bus/driver.c
3968         (bus_driver_handle_get_connection_unix_security_context): New function.
3969         (message_handlers): Add.
3970
3971         * bus/selinux.c (bus_selinux_append_context): New function; appends
3972         security context to message.
3973
3974         * bus/selinux.h: Prototype.
3975
3976         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3977
3978 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3979
3980         * bus/activation.c: clean up all tabs to be 8 spaces 
3981         (bus_activation_activate_service): make sure we clean up
3982         if activation fails
3983
3984         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3985         (check_shell_fail_service_auto_start): New function
3986         tests to make sure we get fail properly when trying to auto start a service
3987         with a faulty command line
3988         (check_shell_service_success_auto_start): New function tests to make sure
3989         auto started services get the arguments on the command line
3990
3991         * test/test-shell-service.c: Added service for testing auto-starting with 
3992         command line arguments
3993
3994         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3995         test/data/valid-service-files/debug-shell-echo-success.service.in:
3996         Added service files for testing auto-starting with command line arguments
3997
3998         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3999
4000 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4001
4002         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4003         
4004         * dbus/Makefile.am: added new files to build.
4005
4006         * bus/activation.c (bus_activation_activate_service): support
4007         activation commands with parameters.
4008
4009         * test/shell-test.c: added test program for the shell parsing
4010         code.
4011
4012 2005-07-13  David Zeuthen  <davidz@redhat.com>
4013
4014         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4015         64 bit signed and unsigned parameters
4016
4017 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4018
4019         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4020
4021         * python/service.py (class Name): renamed BusName to make it clearer
4022         what the object is for (a name on the bus)
4023
4024         * python/examples/example-service.py,
4025         python/examples/example-signal-emitter.py: change the Name object to
4026         BusName
4027
4028 2005-07-12  Colin Walters  <walters@verbum.org>
4029
4030         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4031
4032         * tools/dbus-launch.c: Include sys/select.h.
4033
4034 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4035         * python/dbus_bindings.pyx.in: removed
4036
4037         * python/dbus_bindings.pyx: Added.
4038         - Fixed some memleaks (patch from 
4039         Sean Meiners <sean.meiners@linspireinc.com>)
4040         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4041         own pxd file (Pyrex definition)
4042         - Broke out glib dependancies into its own pyx module
4043         
4044         * python/dbus_bindings.pdx: Added.
4045         - Defines C class Connection for exporting to other modules
4046
4047         * python/dbus_glib_bindings.pyx: Added.
4048         - New module to handle lowlevel dbus-glib mainloop integration
4049
4050         * python/glib.py: Added.
4051         - Registers the glib mainloop when you import this module
4052
4053         * python/services.py: Removed (renamed to service.py)
4054         
4055         * python/service.py: Added.
4056         - (class Server): renamed Name
4057
4058         * python/__init__.py: Bump ro version (0,41,0)
4059         -don't import the decorators or service module
4060         by default.  These now reside in the dbus.service namespace
4061
4062         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4063         setup function on creation 
4064
4065         * python/examples/example-service.py,
4066         python/examples/example-signal-emitter.py: update examples
4067
4068         * python/examples/gconf-proxy-service.py,
4069         python/examples/gconf-proxy-service2.py: TODO fix these up
4070
4071         * doc/TODO: Addition
4072         - Added a Python Bindings 1.0 section
4073         - added "Add match on args or match on details to match rules"
4074
4075
4076 2005-07-12  Colin Walters  <walters@verbum.org>
4077
4078         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4079         (statemachine-glue.h): 
4080         * glib/examples/Makefile.am (example-service-glue.h) 
4081         (example-signal-emitter-glue.h): 
4082         * glib/Makefile.am (dbus-glib-error-switch.h): 
4083         Add libtool --mode=execute so we use the built library instead
4084         of any installed one.
4085
4086 2005-07-11  Colin Walters  <walters@verbum.org>
4087
4088         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4089         (dbus_g_value_types_init): Remove assertion.
4090         (dbus_g_value_get_g_type, dbus_g_value_open)
4091         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4092         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4093         functions related to DBusGValue.  Now we marshal/demarshal
4094         structures as GValueArray.
4095         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4096         structures.
4097         (signature_iter_to_g_type_array): Don't call
4098         signature_iter_to_g_type_struct.
4099         (signature_iter_to_g_type_struct): Delete.
4100         (dbus_gvalue_to_signature): Delete.
4101         (dbus_gvalue_to_signature): New function with same name as other
4102         one; we can convert structures to signatures.
4103         (demarshal_valuearray): New function.
4104         (get_type_demarshaller): Use it.
4105         (demarshal_recurse): Delete.
4106         (marshal_proxy): New function.
4107         (marshal_map): Warn if we can't determine signature from type.
4108         (marshal_collection_ptrarray): Ditto.
4109         (marshal_collection_array): Ditto.
4110         (get_type_marshaller): Use marshal_valuearray.
4111         (marshal_recurse): Delete.
4112         (_dbus_gvalue_test): Add some tests.
4113
4114         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4115         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4116         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4117         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4118         (dbus_g_value_free): Remove prototypes.
4119
4120         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4121         G_TYPE_VALUE_ARRAY.
4122
4123         * glib/examples/example-service.c:
4124         * glib/examples/example-client.c: Implement GetTuple.
4125
4126         * test/glib/test-dbus-glib.c:
4127         * test/glib/test-service-glib.c:
4128         * test/glib/test-service-glib.xml: Add structure tests.
4129
4130 2005-07-10  Colin Walters  <walters@verbum.org>
4131
4132         * doc/TODO: Knock off some GLib items with this patch.
4133
4134         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4135         (_dbus_gvalue_signals_error): New functions.
4136
4137         * glib/dbus-gvalue-utils.h: Prototype them.
4138
4139         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4140         and change to not output const/retval flags for input args.  All
4141         callers updated.
4142         (invoke_object_method): Refactor to handle return values.  Add
4143         some more comments in various places.  Remove debug g_print.
4144
4145         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4146
4147         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4148         Handle G_TYPE_NONE.
4149         (compute_gsignature): New function; refactored from code from
4150         compute_marshaller and compute_marshaller_name.  Enhance to
4151         handle return values and async ops more cleanly.  Update for
4152         async ops returning NONE instead of BOOLEAN.
4153         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4154         and output appropriate string.
4155         (generate_glue): Handle return value annotation.  Also don't dump
4156         constness flag for input arguments.
4157
4158         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4159         files shared between installed library and utilities.
4160         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4161         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4162         binding tool can access gtype utility functions.
4163
4164         * test/glib/test-service-glib.c: 
4165         * test/glib/test-service-glib.xml: 
4166         * test/glib/test-dbus-glib.c: Add some tests for return values.
4167
4168 2005-07-09  Colin Walters  <walters@verbum.org>
4169
4170         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4171         argument if available, not method.
4172
4173         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4174         (invoke_object_method): First, remove some redundant
4175         GValues (object_value, error_value) in favor of working on
4176         array directly.  Second, rework constness to be less buggy.
4177         Now we iterate directly over the argument metadata instead
4178         of parallel iterating over output signature and metadata.
4179
4180         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4181
4182         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4183         annotation on input args.
4184         
4185 2005-07-09  Colin Walters  <walters@verbum.org>
4186
4187         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4188         Define.
4189
4190         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4191         annotation.
4192
4193         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4194         (method_dir_signature_from_object_info): Handle arg_iterate change.
4195         (write_interface): Ditto.
4196         (lookup_object_info): Don't barf if format_version is > 0.
4197         (invoke_object_method): Handle arg constness.
4198
4199         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4200         (arg_info_new): Create.
4201         (arg_info_unref): Destroy.
4202         (arg_info_get_annotations, arg_info_get_annotation) 
4203         (arg_info_add_annotation): New functions.
4204
4205         * glib/dbus-gidl.h: Prototype them.
4206
4207         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4208         args, disallow them in properties.
4209         (parse_annotation): Handle arg annotations.
4210
4211         * test/glib/test-service-glib.xml: 
4212         * test/glib/test-service-glib.c: Update to make some methods
4213         const.
4214
4215 2005-07-08  Colin Walters  <walters@verbum.org>
4216
4217         * test/glib/test-service-glib.xml: 
4218         * test/glib/test-service-glib.c:
4219         * test/glib/test-dbus-glib.c: Test a{sv}.
4220
4221         * glib/examples/statemachine/statemachine.c:
4222         * glib/examples/statemachine/statemachine-server.c:
4223         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4224         add progress bar, etc.
4225
4226         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4227         needed anymore due to generic array/map marshalling.
4228         (dbus_g_value_types_init): Don't register basic arrays or the
4229         string/string hash.
4230         (dbus_gtype_from_signature_iter): Don't try to recurse into
4231         variants.
4232         (dbus_gtype_to_signature): Check collection/map before type
4233         metadata.
4234         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4235         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4236         generic map creation/append functions instead of hash table
4237         specifically.
4238         (get_type_demarshaller): Handle maps.
4239         (demarshal_collection): Dispatch on collection type to either
4240         demarshal_collection_ptrarray or demarshal_collection_array.
4241         (get_type_marshaller): Handle maps.
4242         (marshal_collection): Dispatch collection type to either
4243         marshal_collection_ptrarray or marshal_collection_array.
4244         (_dbus_gvalue_test): New test.
4245
4246         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4247         (hash_free_from_gtype): Use it to free GValues.
4248         (hashtable_append): New function.
4249         (ptrarray_append): Fix prototype.
4250         (slist_append): Ditto.
4251         (_dbus_gvalue_utils_test): Extend tests.
4252
4253         * glib/dbus-gtype-specialized.c
4254         (dbus_g_type_specialized_init_append): Renamed from
4255         dbus_g_type_specialized_collection_init_append.  Remove const from
4256         value, since we steal it.
4257         (dbus_g_type_specialized_map_append): New function.
4258
4259         * glib/dbus-gtype-specialized.h: Update prototypes.
4260         Add DBusGTypeSpecializedMapAppendFunc.
4261
4262         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4263         _dbus_gvalue_test.
4264         
4265         * glib/dbus-gtest.h: Prototype it.
4266
4267 2005-07-08  Ross Burton  <ross@openedhand.com>
4268
4269         * dbus/dbus-glib.h:
4270         Add DBysGAsyncData for the async bindings.
4271
4272         * glib/dbus-binding-tool-glib.c:
4273         Re-enable the async bindings.
4274
4275         * test/glib/test-dbus-glib.c:
4276         Add a test for the generated async bindings.
4277
4278 2005-07-08  Colin Walters  <walters@verbum.org>
4279
4280         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4281         connection concept.
4282         
4283 2005-07-08  Colin Walters  <walters@verbum.org>
4284         
4285         * tools/Makefile.am: Kill of print-introspect in favor of using
4286         dbus-send --print-reply=literal.
4287
4288         * test/glib/test-service-glib.xml: 
4289         * test/glib/test-service-glib.c (my_object_get_objs): New test
4290         for "ao".
4291
4292         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4293         (main): Test GetObjs.
4294
4295         * glib/examples/statemachine/Makefile.am:
4296         * glib/examples/statemachine/sm-marshal.list:
4297         * glib/examples/statemachine/statemachine-client.c:
4298         * glib/examples/statemachine/statemachine-server.c:
4299         * glib/examples/statemachine/statemachine-server.xml:
4300         * glib/examples/statemachine/statemachine.c:
4301         * glib/examples/statemachine/statemachine.h:
4302         * glib/examples/statemachine/statemachine.xml:
4303
4304         New example.
4305
4306         * glib/examples/example-service.c (main): Move invocation
4307         of dbus_g_object_type_install_info earlier, to emphasize it
4308         should only be done once.
4309
4310         * glib/examples/example-signal-emitter.c (main): Ditto.
4311
4312         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4313
4314         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4315         (dbus_gvalue_marshal): Update prototypes.
4316
4317         * glib/dbus-gvalue.c: Update all marshalling functions to take
4318         const GValue instead of GValue.
4319         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4320         types.
4321         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4322         change.
4323         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4324         Return a newly-allocated string.
4325         (demarshal_proxy, demarshal_object_path, demarshal_object)
4326         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4327         we get the wrong types from message.
4328         (get_type_demarshaller): New function, extracted from
4329         dbus_gvalue_demarshal.
4330         (demarshal_collection): New function, demarshals generic
4331         collection.
4332         (dbus_gvalue_demarshal): Just invoke result of
4333         get_type_demarshaller.  Throw error if we don't have one.
4334         (marshal_garray_basic): Abort on OOM.
4335         (get_type_marshaller): New function, extracted from
4336         dbus_gvalue_marshal.
4337         (collection_marshal_iterator, marshal_collection): New functions;
4338         implements generic marshalling for an iteratable specialized
4339         collection.
4340         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4341
4342         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4343         G_TYPE_STRING.
4344         (ptrarray_value_from_gvalue): Ditto.
4345         (ptrarray_append, ptrarray_free): New functions.
4346         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4347         (slist_append, slist_end_append, slist_free): New functions.
4348         (dbus_g_type_specialized_builtins_init): Add append fuctions
4349         for GPtrArray and GSList.  Register GSList.
4350         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4351
4352         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4353         New.
4354         (dbus_g_type_specialized_collection_init_append)
4355         (dbus_g_type_specialized_collection_append)
4356         (dbus_g_type_specialized_collection_end_append): Prototype.
4357         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4358         end_append_func.
4359
4360         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4361         (dbus_g_type_specialized_collection_append) 
4362         (dbus_g_type_specialized_collection_end_append): New functions.
4363         (dbus_g_type_map_value_iterate): Take const GValue.
4364         (dbus_g_type_collection_value_iterate): Ditto.
4365
4366         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4367         _dbus_gvalue_utils_test.
4368         
4369         * glib/dbus-gtest.h: Prototype it.
4370
4371         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4372         using uninitialized owner_list.
4373         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4374         public API.
4375         (dbus_g_proxy_end_call_internal): Update to use error set
4376         from dbus_gvalue_demarshal instead of setting it here.
4377         (dbus_g_proxy_begin_call): Move return_if_fail here.
4378
4379         * glib/dbus-gobject.c (write_interface): Update for
4380         dbus_gtype_to_signature returning new string.
4381
4382         * configure.in: Add glib/examples/statemachine.
4383
4384 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4385
4386         * configure.in: Add a configure option, --with-console-auth-dir
4387         
4388         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4389         new setting.  Patch from Kay Sievers.
4390
4391 2005-07-06  Colin Walters  <walters@verbum.org>
4392
4393         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4394         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4395         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4396         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4397         Delete in favor of dbus_g_proxy_begin_call and
4398         dbus_g_proxy_cancel_call.
4399         (DBusGProxyCall, DBusGProxyCallNotify): New.
4400         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4401         data, and destroy function.  This replaces
4402         dbus_g_pending_call_set_notify.
4403         (dbus_g_proxy_cancel_call): Prototype.
4404         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4405
4406         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4407         pending_calls map.
4408         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4409         internal proxy for calls to the bus. Remove
4410         pending_nameowner_calls, now the internal proxy keeps track.
4411         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4412         pending_nameowner_calls.
4413         (got_name_owner_cb): Update prototype, and use
4414         dbus_g_proxy_end_call.
4415         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4416         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4417         favor of using internal proxy.
4418         (dbus_g_proxy_manager_unregister): Update to use
4419         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4420         (dbus_g_proxy_init): Initialize pending calls map.
4421         (dbus_g_proxy_constructor): New.
4422         (dbus_g_proxy_class_init): Add get/set property functions,
4423         constructor, and add NAME, PATH, and INTERFACE properties.
4424         (cancel_pending_call): New function.
4425         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4426         cancel them.
4427         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4428         (GPendingNotifyClosure): New structure.
4429         (d_pending_call_notify, d_pending_call_free): Moved here from
4430         dbus-glib.c.
4431         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4432         ordering.
4433         (manager_begin_bus_call): New internal function for talking to
4434         internal bus proxy.
4435         (dbus_g_proxy_new): Construct object using GObjet properties.
4436         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4437         Create closure of same, and insert call into map of pending calls.
4438         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4439         call.  Look up pending call in current set.  Remove it when we've
4440         completed.
4441         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4442         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4443         and destroy function directly.
4444         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4445         (dbus_g_proxy_call): Invoke with NULL callback.
4446         (dbus_g_proxy_cancel_call): New function, replaces
4447         dbus_g_pending_call_cancel.
4448
4449         * glib/dbus-gparser.c (validate_signature): Fix call to
4450         dbus_set_g_error.
4451
4452         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4453         New quark for attaching metadata to GType.
4454         (info_hash): Delete.
4455         (lookup_object_info): Look up using quark.
4456         (dbus_g_object_type_install_info): Check that a type is classed,
4457         not that it's an object.  Also just install type data using quark
4458         instead of using global hash.
4459
4460         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4461         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4462         (GPendingNotifyClosure): Delete.
4463         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4464         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4465
4466         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4467         client method generation until we can fix it...
4468         
4469         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4470         (load_from_service_thread_func): Ditto.
4471
4472         * tools/dbus-names-model.c (struct NamesModel): Hold
4473         DBusGProxyCall.
4474         (have_names_notify): Update prototype, use
4475         dbus_g_proxy_cancel_call.
4476         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4477
4478         * tools/dbus-monitor.c (filter_func): Update for print_message
4479         API change.
4480
4481         * test/glib/test-dbus-glib.c: Add more tests for async
4482         invocations.  Update many begin_call/end_call pairs to just use
4483         dbus_g_proxy_call.
4484
4485         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4486         allows us to dump print-introspect.c.
4487
4488         * tools/dbus-print-message.h (print_message): Add literal argument
4489         to print_message which is intended to allow printing arguments without
4490         metadata like "string=".
4491
4492         * tools/dbus-print-message.c (print_iter): Add literal argument.
4493         (print_message): Allow printing string messages literally.
4494
4495 2005-07-05  Colin Walters  <walters@verbum.org>
4496
4497         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4498         Remove value refcount leak, original patch from Jorn Baayen
4499         <jorn@openedhand.com>.  Also remove useless extra value in favor
4500         of prepending to value array directly.
4501
4502 2005-07-02  Colin Walters  <walters@verbum.org>
4503
4504         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4505
4506 2005-07-01  Colin Walters  <walters@verbum.org>
4507
4508         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4509         
4510         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4511         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4512         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4513         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4514
4515 2005-06-30  Colin Walters  <walters@verbum.org>
4516
4517         * test/glib/test-dbus-glib.c:
4518         * test/glib/test-service-glib.c:
4519         * test/glib/test-service-glib.xml: Update tests for new error
4520         setting bits, also add async tests (patch from Ross Burton).
4521
4522         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4523         DBUS_GLIB_THREADS_LIBS.
4524
4525         * glib/dbus-gproxy.c (get_name_owner)
4526         (dbus_g_pending_call_end_valist): Ditto.
4527
4528         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4529         domain (GQuark) to DBusGErrorInfo.  
4530         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4531         quark in error_metadata.  Take message interface as default
4532         error message interface.
4533         (gerror_to_dbus_error_message): Pass message interface.
4534         (dbus_set_g_error): Resurrected.
4535         (dbus_g_error_info_free): New function.
4536         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4537         of _peek to actually create the object class if it hasn't been
4538         created yet.
4539         (dbus_g_error_domain_register): New function.
4540
4541         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4542
4543         * glib/dbus-gparser.c (validate_signature): Ditto.
4544
4545         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4546         (dbus_g_error_domain_register): Prototype.
4547
4548         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4549         Update tests.
4550
4551 2005-06-29  Colin Walters  <walters@verbum.org>
4552
4553         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4554         DBUS_TYPE_G_OBJECT_PATH.
4555
4556         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4557         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4558         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4559         (dbus_g_object_path_get_g_type): New function.
4560         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4561         to DBUS_TYPE_G_OBJECT_PATH by default.
4562         (demarshal_proxy): Remove unused name variable.
4563         (demarshal_object_path, marshal_object_path): New functions.
4564         (demarshal_proxy_array, marshal_proxy_array): Delete.
4565         
4566         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4567         DBUS_TYPE_G_OBJECT_PATH to char *.
4568         (dbus_g_type_get_lookup_function): Map builtin
4569         DBUS_TYPE_G_OBJECT_PATH.
4570
4571         * test/glib/test-dbus-glib.c
4572         * test/glib/test-service-glib.c (my_object_objpath): 
4573         Adapt tests to new object path marshalling.
4574
4575 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4576
4577         * configure.in: force check for Python >= 2.4
4578
4579 2005-06-29  Colin Walters  <walters@verbum.org>
4580         
4581         Patch from Ross Burton <ross@openedhand.com>
4582         
4583         * glib/dbus-gobject.c (invoke_object_method): Unset object
4584         value in all cases, not only in async case.
4585
4586 2005-06-29  Colin Walters  <walters@verbum.org>
4587
4588         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4589         name_call for keeping track of any outgoing GetNameOwner call.
4590         Also add for_owner and associated.
4591         (struct _DBusGProxyManager): Add owner_names, which is hash table
4592         that maps a base name to a list of names it owns (that we're
4593         interested in).  Add pending_nameowner_calls which is a list of
4594         all outstanding GetNameOwner; avoids us having to iterate over
4595         every proxy.  Add unassociated_proxies which keeps track of name
4596         proxies with no associated name owner.
4597         (dbus_g_proxy_manager_unref): Destroy owner_names.
4598         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4599         name refcounts.
4600         (find_name_in_info, name_owner_foreach)
4601         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4602         (dbus_g_proxy_manager_monitor_name_owner)
4603         (dbus_g_proxy_manager_unmonitor_name_owner)
4604         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4605         New functions; they manipulate the owner_names mapping.
4606         (got_name_owner_cb): New function.
4607         (get_name_owner): New function, extracted from
4608         dbus_g_proxy_new_for_name_owner.
4609         (dbus_g_proxy_manager_register): For now we need to keep track of
4610         all NameOwnerChanged.  Also if the proxy is for a name, if we
4611         don't already know the name owner, queue a new GetNameOwner
4612         request and add it to our list of unassociated proxies.  Otherwise
4613         inc the refcount.
4614         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4615         cancel any pending GetNameOwner call, etc.
4616         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4617         the owner_names mapping to look up the current names for the
4618         signal source, and dispatch to any proxies for that name.
4619         (dbus_g_proxy_new): Initialize new members.
4620         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4621         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4622         (dbus_g_pending_call_end_valist): New function, extracted from
4623         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4624         but want to use the GLib infrastructure.  Also note how many
4625         arguments in reply were over.
4626         (dbus_g_pending_call_end): New function, just call
4627         dbus_g_pending_call_end_valist.
4628         (dbus_g_proxy_end_call_internal): Just call
4629         dbus_g_pending_call_end_valist.
4630
4631         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4632         of builtin marshaller for STRING_STRING_STRING.
4633
4634         * test/glib/test-dbus-glib.c: 
4635         * test/glib/test-service-glib.c:
4636         * test/glib/test-service-glib.xml:
4637         Extend tests to cover name proxies, destruction of owner proxies,
4638         etc.
4639         
4640         * glib/examples/example-signal-recipient.c
4641         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4642         
4643         * tools/dbus-send.c (main): Print D-BUS error name in addition
4644         to message.
4645
4646 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4647
4648         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4649         cmessage_function_handler): Patch from 
4650         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4651         by using the Py_GILState_Ensure/Release to synchronize with the
4652         python runtime.
4653         
4654 2005-06-28  Ray Strode  <rstrode@redhat.com>
4655
4656         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4657         babysitter helper process on last unref, bug #2813.
4658
4659 2005-06-27  Colin Walters  <walters@verbum.org>
4660
4661         * test/glib/test-dbus-glib.c: 
4662         * test/glib/test-service-glib.c:
4663         * test/glib/test-service-glib.xml:
4664         Test hash table signal emitting.
4665
4666         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4667         types to their fundamental basis types, since this is what
4668         marshallers operate on.  Also add an entry for VOID__BOXED.
4669         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4670
4671 2005-06-26  Havoc Pennington  <hp@redhat.com>
4672
4673         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4674         from Don Park
4675
4676 2005-06-26  Colin Walters  <walters@verbum.org>
4677
4678         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4679         (dbus_g_error_set): New public function from its ashes; used by
4680         both service-side method implementation and GLib bindings
4681         internals.
4682         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4683         (_dbus_glib_test): Add some tests.
4684
4685         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4686
4687         * test/glib/test-service-glib.c (my_object_throw_error): Use
4688         dbus_g_error_set.
4689
4690         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4691         errors thrown by dbus_g_error_set.
4692
4693         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4694
4695         * glib/dbus-gparser.c (validate_signature): Ditto.
4696
4697         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4698         (dbus_g_proxy_end_call_internal): Ditto.
4699
4700         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4701         converts DBUS_ERROR_x to DBUS_GERROR_x.
4702         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4703
4704         * doc/TODO: Remove error TODO.
4705
4706         * doc/dbus-tutorial.xml: Update with documentation about error
4707         handling.
4708
4709         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4710         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4711         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4712
4713 2005-06-22  Colin Walters  <walters@verbum.org>
4714         
4715         Patch from Ross Burton <ross@openedhand.com>
4716
4717         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4718
4719 2005-06-20  Colin Walters  <walters@verbum.org>
4720
4721         * configure.in: Add glib/examples.
4722
4723         * glib/Makefile.am: Add examples/
4724
4725         * glib/examples/.cvsignore
4726         * glib/examples/Makefile.am
4727         * glib/examples/example-client.c
4728         * glib/examples/example-service.c
4729         * glib/examples/example-service.xml
4730         * glib/examples/example-signal-emitter.c
4731         * glib/examples/example-signal-emitter.xml
4732         * glib/examples/example-signal-recipient.c:
4733         New files; GLib binding examples, ported from
4734         python/examples.
4735
4736 2005-06-20  Colin Walters  <walters@verbum.org>
4737
4738         * dbus/dbus-glib.h: 
4739         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4740         dbus_g_proxy_call.
4741
4742         * glib/dbus-binding-tool-glib.c: 
4743         * doc/dbus-tutorial.xml: 
4744         * test/glib/test-dbus-glib.c: Update for rename.
4745         
4746 2005-06-20  Colin Walters  <walters@verbum.org>
4747
4748         Patch suggested by Ross Burton <ross@openedhand.com>
4749
4750         * glib/dbus-gobject.c (export_signals): Free signal name.
4751         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4752         memory leak.  Add a bit of documentation.
4753         (dbus_g_method_return_error): Free context, and note we do
4754         so.
4755
4756 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4757
4758         * dbus/dbus-glib.h:
4759         * glib/dbus-gobject.c:
4760         * glib/dbus-gproxy.c:
4761         * glib/dbus-gvalue.c: Predeclare structs as 
4762         typedef struct _Something Something instead of 
4763         typedef struct Something Something, so we can 
4764         redeclare the prototypes. Other GNOME libraries 
4765         do this already.
4766
4767 2005-06-17  Colin Walters  <walters@verbum.org>
4768
4769         * tools/dbus-names-model.c (have_names_notify): Fix call
4770         to dbus_g_proxy_end_call.
4771         
4772 2005-06-17  Colin Walters  <walters@verbum.org>
4773
4774         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4775         spew warnings if we get malformed remote signals.
4776
4777         * glib/dbus-gobject.c (propsig_iterate): New function.
4778         (lookup_object_info): New function, extracted from
4779         lookup_object_and_method.
4780         (introspect_properties, introspect_signals): Delete; these
4781         are merged into write_interface.
4782         (write_interface): Write out signals and properties here;
4783         dump the org.gtk.object stuff and use the interface given
4784         in the introspection data blob.  Also fix up property XML.
4785         (lookup_values): New function.
4786         (introspect_interfaces): Gather a mapping from interface to a
4787         list of its methods, signals, and properties, then write out
4788         each interface.
4789         (lookup_object_and_method): Use lookup_object_info.
4790         (struct DBusGSignalClosure): Add interface.
4791         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4792         we can just use the constant data.
4793         (dbus_g_signal_closure_finalize): Don't free signal name.
4794         (signal_emitter_marshaller): Use interface from signal closure.
4795         (export_signals): Only export signals mentioned in introspection
4796         blob.
4797         (dbus_g_connection_register_g_object): Warn if we have no
4798         introspection data for an object.
4799         (funcsig_equal): Remove unused variable.
4800         (dbus_g_object_register_marshaller): Take varargs instead of
4801         list.
4802         (dbus_g_object_register_marshaller_array): New function,
4803         extracted from old dbus_g_object_register_marshaller.
4804
4805         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4806         signals and property data.
4807         (write_quoted_string): New function, extracted from generate_glue.
4808         (generate_glue): Write signals and properties to introspection
4809         blob.
4810
4811         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4812         exported_signals and exported_properties.
4813         (dbus_g_object_register_marshaller): Update prototype.
4814         (dbus_g_object_register_marshaller_array): Prototype.
4815         
4816         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4817
4818         * test/glib/test-service-glib.c: Add new test signals and method
4819         to emit them.
4820
4821         * test/glib/test-service-glib.xml: Add some test signals.
4822
4823         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4824         and my-object-marshal.h
4825         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4826         my-object-marshal.c.
4827         (my-object-marshal.c, my-object-marshal.h): Implement.
4828
4829         * test/glib/.cvsignore: Update.
4830
4831         * doc/TODO: Remove two GLib TODO items fixed by this
4832         patch.
4833
4834 2005-06-16  Colin Walters  <walters@verbum.org>
4835
4836         * doc/TODO: Update for GLib bindings.
4837         
4838 2005-06-16  Colin Walters  <walters@verbum.org>
4839
4840         * glib/dbus-binding-tool-glib.c:
4841         * glib/dbus-gobject.c:
4842         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4843         from Ross Burton, for his GLib bindings work.
4844
4845 2005-06-16  Colin Walters  <walters@verbum.org>
4846
4847         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4848         to iterate instead of walking to G_TYPE_INVALID.
4849
4850         Patch based on a patch from Ryan Gammon.
4851
4852 2005-06-16  Colin Walters  <walters@verbum.org>
4853
4854         * bus/bus.c (bus_context_new): Set parser to NULL
4855         after we unref it (Patch from Chris Boscolo, #2174).
4856         
4857 2005-06-16  Colin Walters  <walters@verbum.org>
4858
4859         * python/dbus_bindings.pyx.in: Import size_t,
4860         __int64_t, __uint64_t, and __signed.
4861
4862         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4863         Define cmsg struct, output it.
4864         (_dbus_read_credentials_unix_socket):
4865         Use cmsg struct.
4866         
4867         Patch from Joe Markus Clarke for FreeBSD support.
4868         
4869 2005-06-16  Colin Walters  <walters@verbum.org>
4870
4871         * tools/dbus-send.c (append_array): Use strtok.
4872         (append_dict): New function.
4873         (type_from_name): New function, extracted from main.
4874         (main): Handle sending dicts.
4875
4876         * tools/dbus-print-message.c (print_iter): Print dict
4877         entries.
4878         
4879 2005-06-16  Colin Walters  <walters@verbum.org>
4880
4881         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4882         values as the empty string (#2948).
4883         
4884 2005-06-16  Colin Walters  <walters@verbum.org>
4885
4886         * dbus/Makefile.am:
4887         * mono/doc/Makefile.am:
4888         * test/glib/Makefile.am:
4889
4890         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4891
4892 2005-06-16  Colin Walters  <walters@verbum.org>
4893
4894         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4895         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4896
4897         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4898         Increment pointer after swapping fixed array.  Add assertion
4899         for array length.
4900                 
4901 2005-06-15  Colin Walters  <walters@verbum.org>
4902
4903         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4904         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4905         
4906 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4907
4908         * NEWS: Update to 0.34
4909
4910 2005-06-15  David Zeuthen  <davidz@redhat.com>
4911
4912         * configure.in (LT_CURRENT): Revert back to 1 as the library
4913         hasn't changed and we've certainly not committed to protocol
4914         stability yet.  All this does is to break ABI. See commit note
4915         from hp@redhat.com 2005-05-05 for details.
4916         
4917 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4918
4919         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4920         (_dbus_connection_run_builtin_filters): New method
4921         (dbus_connection_dispatch): Run the builtin filters which in turn
4922         runs the peer filter which handles Ping messages.
4923
4924         * doc/TODO: 
4925          - Ping isn't handled: This patch fixes it
4926          
4927          - Add a test case for the Ping message: added TODO item
4928
4929 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4930
4931         * dbus/dbus-message.c:
4932         (dbus_message_has_path): New method
4933         (dbus_message_has_interface): New method
4934         (dbus_message_has_member): New method
4935
4936         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4937         New method
4938
4939         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4940         the keyring directory is private to the user
4941
4942         * doc/TODO:
4943          - The convenience functions in dbus-bus.h should perhaps have
4944          the signatures that they would have if they were autogenerated
4945          stubs. e.g. the acquire service function. We should also evaluate
4946          which of these functions to include, in light of the fact that
4947          GLib/Qt native stubs will probably also exist.: Punted
4948
4949          - add dbus_message_has_path(), maybe has_member/interface:
4950          fixed in this patch
4951
4952          - in dbus-keyring.c, enforce that the keyring dir is not
4953          world readable/writable: Fixed in this patch
4954
4955 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4956
4957         * dbus/dbus-marshal-validate.h: Added a new validation
4958         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4959         out of memory errors when validating signitures
4960
4961         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4962         in places where we previously used DBUS_VALID and a FALSE return 
4963         value to indicate OOM
4964         
4965         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4966         Use a stack to track the number of elements inside containers.  The 
4967         stack values are then used to validate that dict entries have only two
4968         elements within them.
4969         (validate_body_helper): check the reason for failure when validating
4970         varients
4971         
4972         * dbus/dbus-message.c (load_message): use 
4973         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4974         DBUS_VALID and a FALSE return value to indicate OOM
4975
4976         * doc/TODO: remove "- validate dict entry number of fields" as this
4977         patch fixes it
4978
4979 2005-06-14  David Zeuthen  <davidz@redhat.com>
4980
4981         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4982         watches (if applicable) and add new watches
4983
4984         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4985         (main): Setup SIGIO signal handler if using D_NOTIFY
4986
4987         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4988
4989         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4990         (merge_included): Also merge conf_dirs list
4991         (bus_config_parser_unref): Clear conf_dirs list
4992         (include_dir): Add directory to conf_dirs list
4993         (bus_config_parser_get_conf_dirs): New function
4994
4995         * bus/dir-watch.[ch]: New files
4996
4997         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4998
4999         * configure.in: Add checks for D_NOTIFY on Linux
5000
5001 2005-06-14  Colin Walters  <walters@verbum.org>
5002
5003         * glib/dbus-binding-tool-glib.c:
5004         * glib/dbus-gobject.c:
5005         * glib/dbus-gvalue.c: Fix indentation and brace style.
5006         
5007 2005-06-14  Ross Burton <ross@openedhand.com>.
5008
5009         * glib/dbus-glib.h: Make DBusGMethodInvocation
5010         a private structure.  Rearrange prototypes a bit.
5011         
5012         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5013         documentation for first_arg_type.
5014         
5015         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5016         here, add documentation.  Move dbus_g_method_return
5017         and dbus_g_method_return_error into public API
5018         section.
5019
5020 2005-06-14  Colin Walters  <walters@verbum.org>
5021
5022         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5023         Add missing return statements, noticed by Ross Burton.
5024         
5025 2005-06-13  Ross Burton <ross@openedhand.com>.
5026
5027         * glib/dbus-gobject.c: Handle errors on message
5028         demarshalling by sending error message back.
5029         * glib/dbus-gvalue.c: Initialize return variables.
5030
5031 2005-06-13  Colin Walters  <walters@verbum.org>
5032
5033         * glib/Makefile.am: Fix thinko in last patch.
5034
5035 2005-06-13  Colin Walters  <walters@verbum.org>
5036
5037         * glib/Makefile.am: Move dbus-gtype-specialized.c
5038         and dbus-gtype-specialized.h into a _HEADERS variable,
5039         install them.
5040
5041 2005-06-12  Colin Walters  <walters@verbum.org>
5042
5043         Async signals and various bugfixes and testing by
5044         Ross Burton <ross@openedhand.com>.
5045
5046         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5047         (dbus_gvalue_genmarshal_name_from_type)
5048         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5049         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5050         (dbus_g_value_types_init, dbus_gtype_from_signature)
5051         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5052         (dbus_gtypes_from_arg_signature): New function prototypes.
5053         (dbus_gvalue_demarshal): Take context and error arguments.
5054         (dbus_gvalue_demarshal_variant): New function.
5055         (dbus_gvalue_demarshal_message): New function.
5056         (dbus_gvalue_store): Delete.
5057
5058         * glib/dbus-gvalue.c:
5059
5060         File has been almost entirely rewritten; now we special-case
5061         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5062         hash tables correctly, etc.  Full support for recursive values
5063         is not yet complete.
5064
5065         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5066         argument of signal to G_TYPE_POINTER since we now pass a
5067         structure.
5068         (lookup_g_marshaller): Delete in favor of
5069         _dbus_gobject_lookup_marshaller.
5070         (marshal_dbus_message_to_g_marshaller): Use
5071         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5072         to handle remote signal callbacks.
5073         (dbus_g_proxy_new_from_proxy): New function; creates a new
5074         DBusGProxy by copying an existing one.
5075         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5076         (dbus_g_proxy_get_path): New functions.
5077         (dbus_g_proxy_marshal_args_to_message): New function;
5078         factored out of existing code.
5079         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5080         from a varargs array.
5081         (dbus_g_proxy_begin_call_internal): New function.
5082         (dbus_g_proxy_end_call_internal): New function.
5083         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5084         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5085         after collecting args into value array.
5086         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5087         invoke dbus_g_proxy_end_call_internal.
5088         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5089         end_call_internal.
5090         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5091         types.
5092         (array_free_all): New function.
5093         (dbus_g_proxy_add_signal): Take GTypes.
5094
5095         * glib/dbus-gobject.h:
5096         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5097         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5098         Prototype.
5099
5100         * glib/dbus-gobject.c: Add a global marshal_table hash which
5101         stores mappings from type signatures to marshallers.  Change lots
5102         of invocations of dbus_gtype_to_dbus_type to
5103         dbus_gtype_to_signature.
5104         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5105         (introspect_signals): Fix test for query.return_type.
5106         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5107         (invoke_object_method): Many changes.  Handle asynchronous
5108         invocations.  Convert arguments with
5109         dbus_gvalue_demarshal_message.  Handle errors.  Use
5110         DBusSignatureIter instead of strlen on args. Handle all arguments
5111         generically.  Special-case variants.
5112         (dbus_g_method_return, dbus_g_method_return_error): New function.
5113         (DBusGSignalClosure): New structure, closes over signal
5114         information.
5115         (dbus_g_signal_closure_new): New function.
5116         (dbus_g_signal_closure_finalize): New function.
5117         (signal_emitter_marshaller): New function; is special marshaller
5118         which emits signals on bus.
5119         (export_signals): New function; introspects object signals and
5120         connects to them.
5121         (dbus_g_object_type_install_info): Take GType instead of
5122         GObjectClass.
5123         (dbus_g_connection_register_g_object): Invoke export_signals.
5124         (dbus_g_connection_lookup_g_object): New function.
5125         (DBusGFuncSignature) New structure; used for mapping type
5126         signatures to marshallers.
5127         (funcsig_hash): New function; hashes DBusGFuncSignature.
5128         (funcsig_equal): New function; compares DBusGFuncSignature.
5129         (_dbus_gobject_lookup_marshaller): New function.
5130         (dbus_g_object_register_marshaller): New function; used to
5131         register a marshaller at runtime for a particular signature.
5132
5133         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5134
5135         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5136         which notes a server method implementation should be
5137         asynchronous.
5138
5139         * glib/dbus-binding-tool-glib.c
5140         (dbus_binding_tool_output_glib_server): Call
5141         dbus_g_value_types_init.
5142         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5143         variants specially.
5144         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5145         of a lookup function.
5146         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5147         (write_untyped_out_args): New method; write output arguments.
5148         (write_formal_declarations_for_direction): Function for
5149         writing prototypes.
5150         (write_formal_parameters_for_direction): Function for
5151         writing implementations.
5152         (write_typed_args_for_direction): Function for writing
5153         arguments prefixed with GTypes.
5154         (write_async_method_client): Write out async version
5155         of method.
5156
5157         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5158         (dbus_g_type_get_marshal_name): Move mapping from GType
5159         to marshal name into here.
5160         (dbus_g_type_get_c_name): Move into here.
5161         (compute_marshaller): Convert signature to type with
5162         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5163         (compute_marshaller_name): Ditto.
5164         (compute_marshaller): Handle async signal annotations.
5165         (gather_marshallers): Return if we don't have a known
5166         prefix.
5167         (generate_glue): Collect introspection blob here, and
5168         write all of the blob at the end.  This allows an object
5169         with multiple interfaces to work.
5170         Mark async methods in introspection blob.
5171
5172         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5173         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5174         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5175
5176         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5177         avoids people accidentally using DBUS_TYPE_* which should
5178         not be necessary anymore.
5179         Do include dbus-gtype-specialized.h, which are utilities
5180         for GLib container types.
5181         Add various #defines for types such as
5182         DBUS_TYPE_G_BOOLEAN_ARRAY.
5183         (DBusGValueIterator, DBusGValue): Define, not fully used
5184         yet.
5185         (dbus_g_value_get_g_type): Type for recursive value.
5186         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5187         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5188         (dbus_g_value_free): Prototypes.
5189         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5190         (dbus_g_proxy_set_interface): Prototype.
5191         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5192         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5193         types.
5194         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5195         Accessors.
5196         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5197         doing async invocations.
5198         (dbus_g_method_return, dbus_g_method_return_error):
5199         Prototypes.
5200         * doc/dbus-tutorial.xml: Update GLib section.
5201         
5202         * tools/dbus-viewer.c (load_child_nodes): Update
5203         for new invocation type of dbus_g_proxy_end_call.
5204         (load_from_service_thread_func): Ditto.
5205
5206         * tools/print-introspect.c (main): Ditto.
5207
5208         * tools/dbus-names-model.c (have_names_notify)
5209         (names_model_reload, names_model_set_connection)
5210         Use GTypes.
5211
5212         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5213         needed since Python bindings use GLib bindings.
5214
5215         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5216         Add --prefix argument.
5217
5218         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5219         unneeded --ignore-unsupported arg.
5220         
5221         * test/glib/test-service-glib.c: 
5222         * test/glib/test-service-glib.xml:
5223         * test/glib/test-dbus-glib.c: Add many more tests.
5224
5225 2005-06-06  David Zeuthen  <davidz@redhat.com>
5226
5227         * doc/TODO: Add item about need to remove deprecated functions.
5228
5229         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5230
5231         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5232         to repair the ABI which was broken with the last commit.
5233
5234 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5235
5236         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5237         (dbus_connection_disconnect): renamed to dbus_connection_close 
5238         for API symmetry with dbus_connection_open
5239         (_dbus_connection_open_internal): 
5240         s/dbus_connection_disconnect/dbus_connection_close
5241
5242         * dbus/dbus-bus.c (dbus_bus_get):
5243         s/dbus_connection_disconnect/dbus_connection_close
5244
5245         * bus/connection.c (bus_connections_unref, 
5246         bus_connections_setup_connection, bus_connections_expire_incomplete):
5247         s/dbus_connection_disconnect/dbus_connection_close
5248
5249         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5250         kill_client_connection_unchecked, check_hello_connection):
5251         s/dbus_connection_disconnect/dbus_connection_close
5252
5253         * bus/bus.c (new_connection_callback):
5254         s/dbus_connection_disconnect/dbus_connection_close
5255
5256         * tools/dbus-send.c (main):
5257         s/dbus_connection_disconnect/dbus_connection_close
5258
5259         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5260         s/dbus_connection_disconnect/dbus_connection_close
5261         
5262         * test/test-service.c (path_message_func, filter_func):
5263         s/dbus_connection_disconnect/dbus_connection_close
5264         
5265         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5266         
5267 2005-05-25  Colin Walters  <walters@verbum.org>
5268
5269         * dbus/dbus-protocol.h: Move various bus service #defines such
5270           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5271           dbus/dbus-shared.h.
5272         * dbus/dbus-shared.h: Various defines moved here.
5273         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5274
5275 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5276
5277         * python/__init__.py: Python bindings deserve a minor version
5278         update.  Upped to (0, 40, 2)
5279
5280 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5281
5282         * python/decorators.py: add explicitly_pass_message decorator
5283         for passing in the dbus message as keyword for edge case signal
5284         handling
5285
5286         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5287         to conform with what dbus expects for match rules
5288         (SignalMatchRule.execute): add the dbus message as a keyword
5289         if the signal handler has requested it
5290
5291         * python/examples/example/signal-recipient.py: added some more
5292         examples on how to hook up to signals
5293
5294 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5295
5296         * python/decorators.py: import dbus_bindings
5297
5298         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5299         SignalMatchNode): new classes that implement wildcard signal
5300         callback matching using a tree lookup. Heavily modified from a
5301         patch sent by Celso Pinto (fd.o bug #3241)
5302
5303         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5304         use new match classes to handle signals.
5305
5306 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5307         
5308         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5309
5310 2005-05-18  Havoc Pennington  <hp@redhat.com>
5311
5312         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5313         gettext. Not really worth requiring yet perhaps, but any
5314         production quality 1.0 would require it so we should go ahead and
5315         get things set up. We do have a couple token calls to
5316         bindtextdomain in the code already.
5317
5318 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5319
5320         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5321         when using recursive g_main_loops
5322
5323         * python/_dbus.py (class Bus): add the ProxyObjectClass
5324         alias for ProxyObject to make it easier for the Twisted 
5325         networking framework to integrate dbus.
5326
5327         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5328         alias for ProxyMethod to make it easier for the Twisted 
5329         networking framework to integrate dbus. 
5330
5331 2005-05-11  Ross Burton  <ross@openedhand.com>
5332
5333         * glib/dbus-glib-tool.c: Add --prefix argument.
5334         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5335         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5336         Add prefix argument.
5337         (generate_glue): Pass prefix argument down.
5338         (dbus_binding_tool_output_glib_server): Pass prefix to
5339         glib-genmarshal.
5340         
5341 2005-05-11  Colin Walters  <walters@verbum.org>
5342
5343         * tools/dbus-send.c (append_array): New function.
5344         (append_arg): Broken out from main.
5345         (main): Add cheesy hack to send arrays and variants.
5346         (usage): Update.
5347         * tools/dbus-print-message.c (print_iter): Broken out
5348         from main.
5349
5350 2005-05-11  Colin Walters  <walters@verbum.org>
5351
5352         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5353         New function, returns signature string for signature iter.
5354         * dbus/dbus-signature.h: Prototype it.
5355         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5356         New function, returns signature string for message iter.
5357         (dbus_message_iter_get_array_len): New function, returns
5358         length of array.
5359         (dbus_message_iter_get_fixed_array): Fix assertion; this
5360         function should be used when the iter is pointing to the
5361         contents of an array
5362         * dbus/dbus-message.h: Prototypes.
5363         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5364         New function; returns length of an array.
5365         * dbus/dbus-marshal-recursive.h: Prototype it.
5366         
5367 2005-05-11  Colin Walters  <walters@verbum.org>
5368
5369         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5370         compilation error.
5371         
5372 2005-05-08  Havoc Pennington  <hp@redhat.com>
5373
5374         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5375         daemon's pid, not the parent's pid, to the file descriptor.
5376         Reported by Taj Morton.
5377
5378 2005-05-05  Havoc Pennington  <hp@redhat.com>
5379
5380         * configure.in (LT_*): add notes on how the libtool versioning
5381         works to save thinking. Increment soname to indicate protocol
5382         breakage (though really the library interface hasn't changed I
5383         guess)
5384
5385         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5386         verify the GUID received from server matches what we were
5387         expecting, if we had an expectation
5388
5389         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5390         (_dbus_auth_get_guid_from_server): new function
5391         (send_begin): parse the OK args
5392
5393         * doc/dbus-specification.xml: add GUID to the auth protocol
5394
5395 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5396
5397         * Fix my name in previous changelog ;)
5398
5399         * python/proxies.py (ProxyObject.__getattr__): add further patch
5400         from Anthony Baxter to throw an AttributeError when python 
5401         __special__ functions are called instead of marshling them over 
5402         the bus (Bug#1685 comment 3).
5403
5404 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5405
5406         * python/Makefile.am: changed to use pyexecdir for the binding
5407         shared libraries (Bug#2494)
5408
5409         * python/exceptions.py: bring exceptions over from the bindings
5410         so they can be used in applications (Bug#2036)
5411         Make all exceptions derive from DBusException
5412
5413         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5414         of classes so that print obj doesn't throw an exception (Bug #1685)
5415
5416 2005-05-03  Ross Burton  <ross@openedhand.com>
5417
5418         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5419         Return if we get an error during registration.  Set up a
5420         weak reference on object to unregister if object is destroyed.
5421         (unregister_gobject): New function.
5422         
5423 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5424
5425         * python/dbus_bindings.pyx.in: 
5426         - added new type classes for hinting to the marashaler what type 
5427         to send over the wire
5428         - added int16 and uint16 marshalers
5429         - Fixed a bug in the type constants that caused int32 to go out
5430         as uint16 over the wire
5431         * python/dbus.py: split up into different files and renamed _dbus.py
5432         * python/__init__.py, python/_util.py, python/decorators.py, 
5433         python/exceptions.py, python/proxies.py, python/services.py,
5434         python/types.py: new files split off from dbus.py
5435         * python/Makefile.am: Add new files, remove dbus.py and 
5436         install all python files to <python module dir>/dbus
5437         * python/examples/*: Added #!/usr/bin/env python to the top of
5438         every example.  Patch provided by Tatavarty Kalyan
5439
5440 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5441
5442         * NEWS: Update to 0.33
5443
5444 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5445
5446         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5447         method for doing async calls
5448         (_pending_call_notification): New C function for handling pendning call
5449         callbacks
5450         (set_notify): New method for setting pending call notification
5451         
5452         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5453         Async capabilities added to remote method calls
5454         (Sender): class removed
5455         (RemoteService): class removed
5456         (ObjectTree): class removed for now
5457         (RemoteObject): Renamed to ProxyObject
5458         (RemoteMethod): Renamed to ProxyMethod
5459         (method): Decorator added for decorating python methods as dbus methods
5460         (signal): Decorator added for decorating python methods as signal emitters
5461         (ObjectType): Metaclass added for generating introspection data and the
5462         method callback vtable
5463         (Interface): Wrapper class added to wrap objects in a dbus interface
5464         (Object): Uses ObjectType as its metaclass and exports Introspect
5465         of the org.freedesktop.DBus.Introspectable interface
5466         (ValidationException, UnknownMethodException): new exceptions
5467
5468         * python/examples/*: Modified to fit with the new bindings
5469
5470 2005-04-23  Havoc Pennington  <hp@redhat.com>
5471
5472         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5473         reported by Tony Houghton
5474
5475         * test/test-service.c (main): test
5476         dbus_connection_get_object_path_data()
5477
5478         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5479         the exact_match
5480         (_dbus_object_tree_get_user_data_unlocked): new function used by
5481         dbus_connection_get_object_path_data()
5482         (do_register): add assertion test for get_user_data_unlocked
5483         (object_tree_test_iteration): more tests
5484
5485         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5486         new function from Dan Reed to let you get the user data from 
5487         dbus_connection_register_object_path()
5488
5489 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5490
5491         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5492         in numerous places that did not account for the NULL terminator
5493         (signature_from_seed): changed the manual string copy loop to 
5494         just use strcpy instead
5495         make check should now pass
5496
5497 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5498
5499         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5500         so that it allows messages that are not signals to pass in 
5501         NULL as the interface.
5502
5503 2005-04-18  David Zeuthen  <davidz@redhat.com>
5504
5505         * glib/dbus-gmain.c (io_handler_destroy_source): 
5506         (timeout_handler_destroy_source, connection_setup_free): 
5507         Also unref the source to avoid memory leaks.
5508
5509 2005-04-13  David Zeuthen  <davidz@redhat.com>
5510
5511         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5512         more reasonable, yet still totally arbitrary, value :-). 
5513
5514 2005-04-13  David Zeuthen  <davidz@redhat.com>
5515
5516         * doc/TODO: Added an "important for 1.0" item about selinux
5517         allow/deny messages
5518
5519 2005-04-13  David Zeuthen  <davidz@redhat.com>
5520
5521         * bus/selinux.c: Add c-file-style to top of file
5522         (log_audit_callback): Don't free the data here anymore
5523         (bus_selinux_check): Don't take spid and tpid since appending
5524         that to auxdata may OOM.
5525         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5526         to the caller if we are OOM by taking an error object.
5527         (bus_selinux_allows_send): -do-
5528
5529         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5530         and bus_selinux_allows_send
5531
5532         * bus/bus.c (bus_context_check_security_policy): Pass error and
5533         pass on OOM thrown by bus_selinux_allows_send()
5534
5535         * bus/services.c (bus_registry_acquire_service): Pass error and
5536         pass on OOM thrown by bus_selinux_allows_acquire_service()
5537
5538 2005-04-13  Havoc Pennington  <hp@redhat.com>
5539
5540         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5541         message at a time to avoid monopolizing the main loop, bug 
5542         #2953 from Benjamin Otte
5543
5544 2005-04-09  Havoc Pennington  <hp@redhat.com>
5545
5546         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5547         possible overlap, fix from Daniel Reed
5548         (fixup_alignment): fix signedness warnings
5549         (_dbus_string_append_unichar): ditto
5550
5551 2005-04-09  Havoc Pennington  <hp@redhat.com>
5552
5553         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5554
5555         * glib/dbus-glib-tool.c (main): fix warning
5556
5557         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5558
5559         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5560         add a new function that can be used in simple applications that
5561         don't have a main loop and are willing to block
5562
5563 2005-04-05  David Zeuthen  <davidz@redhat.com>
5564
5565         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5566
5567         * glib/dbus-gmain.c:
5568         (io_handler_destroy_source): Remove from list of IO handlers
5569         of the ConnectionSetup object
5570         (timeout_handler_destroy_source): -do- for timeout handlers
5571         (io_handler_source_finalized): Don't remove from list since
5572         we now do that in io_handler_destroy_source(). Renamed from
5573         io_handler_source_destroyed
5574         (timeout_handler_source_destroyed): -do- for timeout handlers
5575         (connection_setup_free): It is now safe to iterate over all
5576         IO and timeout handlers as the _destroy_source removes them
5577         from the list synchronously
5578
5579 2005-03-30  Havoc Pennington  <hp@redhat.com>
5580
5581         * configure.in: change check to gtk 2.4
5582
5583         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5584         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5585         to 2.4
5586
5587 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5588
5589         * News: Update 0.32
5590
5591         * HACKING: Fixed realease instructions.  configure.in should be updated to
5592           the next release by the person who made the last release.
5593
5594 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5595
5596         * python/lvalue_cast_post_process.py - removed.  Patch has been
5597           submitted to Pyrex maintainers that fixes gcc4.0 errors
5598
5599         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5600
5601 2005-03-24  Daniel Reed  <n@ml.org>
5602
5603         * tools/Makefile.am: Make print-introspect and
5604         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5605
5606 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5607
5608         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5609
5610         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5611           had in Red Hat packages for a while but for some reason never 
5612           got merged upstream
5613           (_dbus_is_a_number): New checks if a string
5614           can be converted to a number and does the conversion if it can
5615           (_dbus_user_database_lookup): Add check to see if the given username
5616           is a udi.  This allows udi's to be used instead of usernames in the
5617           config file.
5618           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5619           is a gdi.  This allows gdi's to be used instead of groupnames in the
5620           config file.
5621
5622 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5623
5624         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5625           code so that it compiles with gcc4.0
5626
5627         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5628           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5629           results back to dbus_binding.c
5630
5631 2005-03-20  Colin Walters  <walters@verbum.org>
5632
5633         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5634
5635         * configure.in: Require GTK+ 2.6.
5636         
5637 2005-03-20  Colin Walters  <walters@verbum.org>
5638
5639         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5640
5641 2005-03-17  Tom Parker  <palfrey@tevp.net>
5642
5643         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5644         print DBUS_UID_UNSET; instead print passed username.  Also
5645         be sure to actually use gid looked up in cache.
5646         
5647         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5648         for DBUS_GID_UNSET and groupname.
5649
5650 2005-03-17  Colin Walters  <walters@verbum.org>
5651
5652         * bus/print-introspect.c: Move to tools/.
5653         * bus/run-with-tmp-session-bus.sh: Ditto.
5654         
5655         * glib/Makefile.am (dbus-glib-bindings.h): Move
5656         generation to tools/Makefile.am.
5657
5658         * test/glib/run-test.sh: Update to handle move
5659         of run-with-tmp-session-bus.sh.
5660
5661         * test/glib/test-service-glib.c: Update to handle
5662         move of dbus-glib-bindings.h.
5663
5664         * tools/print-introspect.c: Moved here
5665         from bus/, and ported to GLib bindings.
5666
5667         * tools/run-with-tmp-session-bus.sh: Moved here
5668         from bus/.
5669
5670         * tools/Makefile.am: Generate dbus-glib-bindings.h
5671         and dbus-bus-introspect.xml here.
5672
5673         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5674         Update.
5675
5676 2005-03-17  Colin Walters  <walters@verbum.org>
5677
5678         * bus/driver.c (write_args_for_direction): Use
5679         _dbus_string_get_const_data to retrieve string;
5680         _dbus_string_get_const_data_len doesn't actually return
5681         a NULL-terminated substring.
5682
5683         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5684         (main): Change to use org_freedesktop_DBus_request_name
5685         instead of using g_proxy_begin_call/end_call.
5686
5687 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5688
5689         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5690         generating the finalizer.  Fixes from Ben Maurer.
5691
5692 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5693
5694         * mono/BusDriver.cs: Update method names: ListServices
5695         becomes ListNames; GetOwner becomes GetNameOwner.
5696
5697         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5698         onto the eval stack when removing the delegate.
5699
5700 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5701
5702         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5703         LT_CURRENT.  Set it to the autoconf variable.
5704                                                                                 
5705         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5706         classes that disconnects the signal handler delegate from the
5707         service object.  Fixes a big leak of proxy objects on the
5708         client side of things.  Patch from Ben Maurer
5709         <bmaurer@ximian.com>
5710
5711 2005-03-12  Colin Walters  <walters@verbum.org>
5712
5713         * bus/driver.c (write_args_for_direction): New function,
5714         parses a type signature into arguments and outputs to
5715         XML.
5716         (bus_driver_handle_introspect): Use it instead of
5717         hardcoding XML for certain signatures.
5718         
5719         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5720         dependency on dbus-daemon.
5721
5722         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5723         argument, pass it to dbus_binding_tool_output_glib_client.
5724
5725         * glib/dbus-binding-tool-glib.c
5726         (generate_client_glue): Protect against multiple inclusion.
5727         (dbus_binding_tool_output_glib_client): Add
5728         G_BEGIN_DECLS/G_END_DECLS.
5729
5730         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5731         Change to just take iface prefix directly.
5732         (write_formal_parameters): Clarify error message.
5733         (check_supported_parameters): New function; checks to see type
5734         signatures of method parameters are supported.
5735         (generate_client_glue): Handle ignore_unsupported flag.
5736         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5737         parameter.
5738
5739         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5740         --ignore-unsupported by default until glib bindings
5741         support arrays.
5742
5743 2005-03-11  Colin Walters  <walters@verbum.org>
5744
5745         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5746         install it.
5747
5748         * bus/print-introspect.c: New file; prints introspection
5749         data for a given name and object path.
5750
5751         * bus/run-with-tmp-session-bus.sh: New file, refactored
5752         from test/glib/run-test.sh.  Creates a temporary session
5753         bus and runs another program.
5754
5755         * test/glib/run-test.sh: Refactor to invoke
5756         run-with-tmp-session-bus.sh.
5757
5758         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5759         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5760         macros instead of hardcoding.
5761
5762         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5763
5764 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5765
5766         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5767         this unref; it doesn't match up evenly in some codepaths.
5768         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5769         this evenly matches with the ref near the top of this function.
5770
5771 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5772
5773         * dbus/dbus-object-tree.c
5774         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5775         and we try to unregister a path that's not registered, still go
5776         through the process of unlocking and don't just return.
5777
5778 2005-03-09  Colin Walters  <walters@verbum.org>
5779
5780         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5781         to this are generated for client-side wrappers.  Invokes a
5782         D-BUS method and returns reply values.  
5783
5784         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5785         function; writes signature string for argument direction.
5786         (write_args_for_direction): Change to pass input values directly
5787         instead of via address, and fix indentation.
5788         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5789         make generated wrappers inlineable.
5790
5791         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5792         note about using dbus_type_is_fixed.
5793
5794         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5795         dbus/dbus-signature.c as dbus_type_is_fixed.
5796
5797         All callers updated.
5798
5799         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5800         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5801
5802         * dbus/dbus-signature.h: Prototype.
5803
5804         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5805         error printf code.
5806
5807         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5808         appropriate instead of just freeing it.
5809         (main): Free returned strings using g_free.
5810
5811         * test/glib/Makefile.am (test-service-glib-glue.h)
5812         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5813
5814         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5815         simply maps a simple D-BUS type to GType.
5816         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5817         GType.
5818         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5819         initialize the value with it.
5820         (dbus_gvalue_binding_type_from_type): Unused, delete.
5821         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5822         various types instead of unmarshalling to value data directly.
5823         Remove can_convert boolean.
5824         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5825         returning directly instead of using can_convert boolean.
5826         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5827         Stores a GValue in a pointer to a value of its corresponding C
5828         type.
5829
5830         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5831         add dbus_gvalue_store.
5832
5833 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5834
5835         Fix a bunch of lifecycle and memory management problems
5836         in the mono bindings.
5837
5838         * mono/Arguments.cs (Arguments): Implement IDisposable
5839
5840         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5841         strictly a static class.
5842
5843         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5844         delegates into this file.
5845         (Connection): Implement IDisposable.
5846         (Dispose): Disconnect the connection and set the raw connection
5847         pointer to IntPtr.Zero.
5848         (~Connection): Call Dispose().
5849         (RegisterObjectPath): Added.  Manages the registration of object
5850         paths so we can cleanly disconnect them at dispose/finalize time.
5851         (UnregisterObjectPath): Ditto.
5852         (set_RawConnection): Unregister all of the object paths when
5853         changing the underlying DBusConnection.  Add them back onto the
5854         new connection, if any.
5855
5856         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5857         more unmanaged resources anymore, so it's not necessary.  Move all
5858         the DBusObjectPathVTable stuff out of here.
5859         (Handler): Save references to our delegates so that they don't get
5860         finalized.  Call Connection.RegisterObjectPath() instead of
5861         dbus_connection_register_object_path() directly.
5862         (Message_Called): Dispose the message after we're finished with
5863         it.
5864
5865         * mono/Message.cs (Message): Implement IDisposable.
5866         (Dispose): Dispose the Arguments, and set the RawMessage to
5867         IntPtr.Zero.
5868         (SendWithReplyAndBlock): We own the ref to the reply that comes
5869         back from dbus_connection_send_with_reply_and_block() so add a
5870         comment about that and unref it after we've constructed a managed
5871         MethodReturn class around it.  Fixes a big, big leak.
5872
5873         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5874         method.
5875         (BuildSignalHandler): After we've sent the Signal message, dispose
5876         of it.
5877         (BuildMethod): Dispose of the method call and reply messages after
5878         we've sent the message and extracted the data we want from the
5879         reply.
5880
5881         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5882         anymore.
5883         (Service_FilterCalled): Dispose of the message after we're
5884         finished with it.
5885
5886 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5887
5888         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5889         After we attach our pending call to the connection, unref
5890         it.  Fixes a leak.
5891  
5892         * mono/Connection.cs (set_RawConnection): Disconnect our
5893         filter and match callbacks from the old connection and
5894         reconnect them to the new connection, if any.
5895
5896         * mono/DBusType/Array.cs: "Code" is a static member, so
5897         don't use "this" to refer to it.  Fix for stricter checking
5898         in Mono 1.1.4.
5899  
5900         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5901         object path that we pass into unmanaged code.
5902  
5903         * mono/DBusType/String.cs (Append): Don't leak the string
5904         that we pass into unmanged code.
5905
5906 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5907         * NEWS: Update for 0.31
5908
5909         * configure.in: Release 0.31
5910         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5911
5912         * qt/Makefile.am: fixed build
5913
5914         * dbus/Makefile.am: soname bump for libdbus
5915
5916         * glib/Makefile.am: soname bump for libdbus-glib
5917
5918 2005-03-05  Havoc Pennington  <hp@redhat.com>
5919
5920         * dbus/dbus-sysdeps.c:
5921         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5922         value
5923         (_dbus_generate_random_bytes_buffer): fix return value
5924
5925         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5926         checks actually work, from Tom Parker <fdo@tevp.net>
5927
5928 2005-03-01  Colin Walters  <walters@verbum.org>
5929
5930         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5931         functions copied from dbus-glib-tool.c.
5932         (main): Convert lots of error code to use them.
5933         Also add some testing for introspection bits.
5934
5935 2005-03-01  Colin Walters  <walters@verbum.org>
5936         
5937         * doc/TODO: Remove introspection signature TODO.
5938
5939 2005-02-27  Colin Walters  <walters@verbum.org>
5940
5941         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5942         Change return value to const char * instead of int so we can do
5943         full signatures.
5944         (struct PropertyInfo, struct ArgInfo): Store char *.
5945         (property_info_new, arg_info_new): Update parameters, strdup.
5946         (property_info_unref, arg_info_unref): Free.
5947
5948         * glib/dbus-gidl.h: Update prototypes.
5949
5950         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5951         (validate_signature): New function, just validates signature and
5952         sets GError.
5953         (parse_property, parse_arg): Invoke validate_signature.  Store
5954         signature instead of just type code.
5955
5956         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5957         function to return a primary type for a signature, dropping
5958         information about types in container types.
5959         (dbus_gvalue_genmarshal_name_from_type)
5960         (dbus_gvalue_binding_type_from_type)
5961         (dbus_gvalue_ctype_from_type): Update to take full signature
5962          instead of type code.
5963         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5964
5965         * glib/dbus-gvalue.h: Update prototypes for above.
5966
5967         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5968         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5969         (introspect_properties, introspect_signals, write_interface):
5970         Update to handle signatures, and remove usage of
5971         _dbus_gutils_type_to_string.
5972         (handle_introspect): Print out type codes instead of e.g. "string"
5973         in hardcoded introspection XML; also use x_AS_STRING constants
5974         instead of hardcoding in string.
5975
5976         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5977         to string.  Remove usage of _dbus_gutils_type_to_string.
5978
5979         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5980
5981         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5982         deletion.
5983         
5984         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5985         (compute_marshaller_name, generate_glue): Handle signature change
5986         to string.
5987         (write_formal_parameters, write_args_for_direction): Ditto, and
5988         remove FIXME.
5989
5990         * tools/dbus-tree-view.c (type_to_string): Delete.
5991         (info_set_func_text): Update to print full signatures.
5992
5993         * test/glib/test-service-glib.xml: Change types to new
5994         introspection format.
5995
5996 2005-02-26  Havoc Pennington  <hp@redhat.com>
5997
5998         * doc/TODO: remove the "guid" item
5999
6000         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6001         (with_bus_thread_func): use open_private
6002
6003         * dbus/dbus-connection.c (dbus_connection_open_private): new
6004         function that works like the old dbus_connection_open()
6005         (dbus_connection_open): now returns an existing connection if
6006         possible
6007
6008         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6009         through the GUID to the transport
6010
6011         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6012         GUID in hex-encoded form.
6013
6014         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6015         pass GUID argument in to the transport
6016
6017         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6018         guid argument
6019
6020         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6021
6022         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6023
6024 2005-02-25  Havoc Pennington  <hp@redhat.com>
6025
6026         * doc/dbus-specification.xml: document the GUID thing
6027
6028         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6029         globally unique ID for the server, and put a "guid=hexencoded"
6030         field in the address
6031
6032         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6033
6034         * dbus/dbus-message.c: ditto
6035
6036         * dbus/dbus-dataslot.c: ditto
6037
6038         * dbus/dbus-list.c: ditto
6039
6040         * dbus/dbus-internals.h: wait, just include
6041         dbus-threads-internal.h here
6042         
6043         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6044         use in main library
6045
6046         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6047
6048 2005-02-24  Colin Walters  <walters@verbum.org>
6049
6050         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6051
6052 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6053
6054         * glib/Makefile.am: added dbus-gobject.h to sources list
6055         so distcheck doesn't fail
6056         
6057 2005-02-24  Havoc Pennington  <hp@redhat.com>
6058
6059         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6060         you must disconnect before unref, since locking and other things
6061         are screwed up otherwise. Fix assorted other locking stuff.
6062
6063         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6064         fix compilation
6065
6066         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6067         into a private header and don't export from the library
6068
6069         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6070
6071 2005-02-24  Colin Walters  <walters@verbum.org>
6072         
6073         * dbus/dbus-signature.c: New file; implements various functions
6074         related to type signatures.  Includes an interator for parsing,
6075         validation functions.
6076         (dbus_type_is_basic): Moved here from
6077         dbus-marshal-basic.c:_dbus_type_is_basic.
6078         (dbus_type_is_container): Moved here from
6079         dbus-marshal-basic.c:_dbus_type_is_container.
6080
6081         All callers of _dbus_type_is_container and _dbus_type_is_basic
6082         updated, and include dbus-signature.h.
6083
6084         * dbus/dbus-signature.h: New file; prototypes for the above.
6085
6086         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6087         dbus-signature.h.
6088
6089         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6090         function factored out of _dbus_first_type_in_signature.
6091         (_dbus_first_type_in_signature_c_str): New function; returns first
6092         type code for a type signature character.
6093
6094         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6095         handle function moves.
6096
6097         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6098
6099         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6100         function; skips to next complete type in type signature.
6101         Implemented using previous skip_one_complete_type.  Now
6102         skip_one_complete_type just delegates to
6103         _dbus_type_signature_next.
6104
6105         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6106         to dbus-signature.c
6107         (_dbus_type_is_container): Ditto.
6108
6109         * doc/dbus-specification.xml: Update introspection sample to
6110         use real type signatures.
6111
6112         * dbus/dbus-test.h: Prototype signature test.
6113
6114         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6115         signature tests.
6116
6117         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6118
6119 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6120
6121         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6122         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6123
6124 2005-02-21  Colin Walters  <walters@verbum.org>
6125
6126         * dbus/dbus-test-main.c (main): Take optional specific test
6127         argument.
6128
6129         * dbus/dbus-test.c (run_test): New function, runs a test function
6130         with no data directory.
6131         (run_data_test): Like above, but takes data directory.
6132         (dbus_internal_do_not_use_run_tests): Take
6133         specific test argument.  Replace lots of cut n' paste code
6134         with run_test and run_data_test.
6135
6136         * dbus/dbus-test.h: Update prototype for
6137         dbus_internal_do_not_use_run_tests.
6138
6139 2005-02-20  Havoc Pennington  <hp@redhat.com>
6140
6141         Fix bugs reported by Daniel P. Berrange
6142         
6143         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6144         (protected_change_watch): new function
6145         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6146         (_dbus_server_add_watch): change to work like the
6147         dbus-connection.c equivalents; like those, probably kind of
6148         busted, but should at least mostly work for now
6149         (dbus_server_disconnect): drop the lock if we were already
6150         disconnected, patch from Daniel P. Berrange
6151
6152         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6153         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6154         same stuff
6155
6156         * doc/TODO: todo about unscrewing this mess
6157
6158 2005-02-19  Colin Walters  <walters@verbum.org>
6159
6160         * glib/dbus-binding-tool-glib.c
6161         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6162
6163         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6164         as errno.h and sys/stat.h.
6165         (lose): New function, prints error with
6166         newline and exits.
6167         (lose_gerror): Similar, but takes GError for message.
6168         (main): Add --output argument to specify output file to write to,
6169         instead of always printing to stdout.  In this mode, determine
6170         timestamps on source files to see whether any are newer than the
6171         target file.  If not, exit.  Also convert a number of error
6172         messages to use lose (since it's shorter), and switch to using
6173         g_io_channel_shutdown.
6174
6175 2005-02-19  Havoc Pennington  <hp@redhat.com>
6176
6177         * glib/dbus-gobject.c
6178         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6179
6180         * glib/dbus-glib.c: fix doxygen warnings
6181
6182         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6183         is found on an <arg>
6184
6185 2005-02-17  Colin Walters  <walters@verbum.org>
6186
6187         * glib/dbus-gobject.h: Don't export
6188         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6189         
6190         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6191         (invoke_object_method): Handle it.
6192
6193         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6194         Handle rename.
6195         
6196 2005-02-17  Colin Walters  <walters@verbum.org>
6197
6198         * bus/.cvsignore, doc/.cvsignore
6199         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6200         Update.
6201
6202 2005-02-17  Colin Walters  <walters@verbum.org>
6203         
6204         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6205         Rename to DBUS_SERVICE_DBUS.
6206         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6207         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6208         Change the value from "org.freedesktop.Local"
6209         to "org.freedesktop.DBus.Local".
6210         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6211         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6212         DBUS_INTERFACE_INTROSPECTABLE.
6213         Change the value from "org.freedesktop.Introspectable"
6214         to "org.freedesktop.DBus.Introspectable".
6215         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6216         DBUS_INTERFACE_PROPERTIES.
6217         Change the value from "org.freedesktop.Properties"
6218         to "org.freedesktop.DBus.Properties".
6219         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6220         DBUS_INTERFACE_PEER.
6221         Change the value from "org.freedesktop.Peer"
6222         to "org.freedesktop.DBus.Peer".
6223         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6224         DBUS_INTERFACE_LOCAL.
6225         Change the value from "org.freedesktop.Local"
6226         to "org.freedesktop.DBus.Local".
6227
6228         All other users of those constants have been changed.
6229
6230         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6231
6232         * glib/dbus-gobject.c (handle_introspect): Use constants.
6233
6234         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6235
6236 2005-02-17  Colin Walters  <walters@verbum.org>
6237
6238         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6239         (parse_node, parse_interface, parse_method, parse_signal)
6240         (parse_property, parse_annotation): Lose if we're currently in an
6241         annotation.
6242         (parse_annotation): New function.
6243         (parser_start_element, parser_end_element): Handle annotation.
6244         (parse_method, parse_interface): Remove support for c_name attribute,
6245         switch to annotations.
6246
6247         * glib/dbus-gidl.h (interface_info_get_binding_names)
6248         (method_info_get_binding_names)
6249         (interface_info_get_binding_name, method_info_get_binding_name)
6250         (interface_info_set_binding_name, method_info_set_binding_name):
6251         Remove.
6252         (interface_info_get_annotations, method_info_get_annotations)
6253         (interface_info_get_annotation, method_info_get_annotation)
6254         (interface_info_add_annotation, method_info_add_annotation):
6255         Prototype.
6256
6257         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6258         for "bindings".
6259         (struct MethodInfo): Ditto.
6260         Straightfoward conversion of binding methods into annotation methods
6261         as prototyped.
6262
6263         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6264
6265         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6266
6267         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6268         Use new annotation API.
6269
6270         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6271         annotation element.
6272         
6273         * doc/dbus-specification.xml: Discuss introspection annotations,
6274         include list of well-known annotations.
6275
6276         * test/glib/test-service-glib.xml: Make validate against new DTD.
6277
6278 2005-02-17  Colin Walters  <walters@verbum.org>
6279
6280         This patch is based on initial work from
6281         Paul Kuliniewicz <kuliniew@purdue.edu>.
6282
6283         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6284         initialization of GValue from dbus type to here.
6285         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6286         for the "glib-genmarshal" program from a DBus type.
6287         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6288         into the C name for it we use in the glib bindings.
6289         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6290         glib C type (not GValue).
6291         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6292
6293         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6294         from dbus-gobject.c.
6295
6296         * glib/dbus-gutils.h: Prototype it.
6297
6298         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6299         (marshal_dbus_message_to_g_marshaller): Use new shared function
6300         dbus_glib_marshal_dbus_message_to_gvalue_array.
6301
6302         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6303         Will be changed once we have annotations.
6304
6305         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6306         GStaticRWLock.  Callers updated.
6307         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6308         (string_table_next): New function for iterating over zero-terminated
6309         string value array.
6310         (string_table_lookup): New function; retrieves specific entry in
6311         array.
6312         (get_method_data): New function; look up method data in object data chunk.
6313         (object_error_domain_prefix_from_object_info)
6314         (object_error_code_from_object_info): New functions, but not implemented yet.
6315         (method_interface_from_object_info): New function; retrieve interface name.
6316         (method_name_from_object_info): New function; retrieve method name.
6317         (method_arg_info_from_object_info): New function; retrieve argument data.
6318         (arg_iterate): New function; iterates over serialized argument data.
6319         (method_dir_signature_from_object_info): New function; returns a
6320         GString holding type signature for arguments for just one
6321         direction (input or output).
6322         (method_input_signature_from_object_info)
6323         (method_output_signature_from_object_info): New functions.
6324         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6325         converts dbus message arguments into a GValue array.  Used for both
6326         signal handling and method invocation.
6327         (struct DBusGlibWriteIterfaceData): New utility structure.
6328         (write_interface): New function; generate introspection XML for
6329         an interface.
6330         (introspect_interfaces): New function; gathers all interface->methods,
6331         generates introspection XML for them.
6332         (handle_introspect): Invoke introspect_interfaces.
6333         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6334         (lookup_object_and_method): New function; examines an incoming message
6335         and attempts to match it up (via interface, method name, and argument
6336         signature) with a known object and method.
6337         (gerror_domaincode_to_dbus_error_name): New function; converts a
6338         GError domain and code into a DBus error name.  Needs GError data
6339         added to object introspection to work well.
6340         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6341         GError.
6342         (invoke_object_method): New function to invoke an object method
6343         looked up via lookup_object_and_method.  Parses the incoming
6344         message, turns it into a GValue array, then invokes the marshaller
6345         specified in the DBusGMethodInfo.  Creates a new message with
6346         either return values or error message as appropriate.
6347         (gobject_message_function): Invoke lookup_object_and_method and
6348         invoke_object_method.
6349
6350         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6351         (enum DBusBindingOutputMode): New enum for binding output modes.
6352         (pretty_print): Print binding names.
6353         (dbus_binding_tool_error_quark): GError bits.
6354         (version): Fix typo.
6355         (main): Create GIOChannel for output.  Parse new --mode argument,
6356         possible values are "pretty-print", "glib-server", "glib-client".
6357         Use mode to invoke appropriate function.
6358         
6359         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6360
6361         * glib/dbus-glib-tool.h: New header, just includes GError bits
6362         for now.
6363
6364         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6365         maps binding style to name.
6366         (struct MethodInfo): Ditto.
6367         (get_hash_keys, get_hash_key): Utility function, returns keys for
6368         a GHashTable.
6369         (interface_info_new, method_info_new): Initialize bindings.
6370         (interface_info_unref, method_info_unref): Destroy bindings.
6371         (method_info_get_binding_names, method_info_get_binding_name)
6372         (interface_info_get_binding_names, interface_info_get_binding_name):
6373         Functions for retrieving binding names.
6374         (method_info_set_binding_name, interface_info_set_binding_name):
6375         Functions for setting binding names.
6376
6377         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6378         for glib binding generation.
6379
6380         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6381         and client-side glib glue generation.
6382
6383         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6384         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6385         dbus-glib-tool.h.
6386
6387         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6388         of using GClosureMarshal directly.
6389         (struct DBusGObjectInfo): Add n_infos member.
6390
6391         * test/glib/test-service-glib.xml: New file; contains introspection data
6392         for MyTestObject used in test-service-glib.c.
6393
6394         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6395         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6396         (my_object_uppercase, my_object_many_args): New test methods.
6397         (main): Use dbus_g_object_class_install_info to include generated object
6398         info.
6399
6400         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6401         as well as client-side bindings.
6402
6403         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6404         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6405         using both the dbus_gproxy stuff directly as well as the generated bindings.
6406
6407 2005-02-15  Havoc Pennington  <hp@redhat.com>
6408
6409         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6410         complete a pending call, don't run filters first.
6411
6412         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6413         dbus_pending_call_steal_reply
6414
6415         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6416         _dbus_connection_block_pending_call
6417         (dbus_pending_call_get_reply): change to steal_reply and return a
6418         ref
6419
6420         * dbus/dbus-connection.c
6421         (dbus_connection_send_with_reply_and_block): port to work in terms
6422         of DBusPendingCall
6423         (_dbus_connection_block_pending_call): replace block_for_reply
6424         with this
6425
6426 2005-02-14  Havoc Pennington  <hp@redhat.com>
6427
6428         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6429         properly handle looking up group information by name; fix 
6430         from j@bootlab.org
6431
6432 2005-02-13  Havoc Pennington  <hp@redhat.com>
6433
6434         * dbus/dbus-connection.c (dbus_connection_return_message) 
6435         (dbus_connection_borrow_message): hold dispatch lock while message
6436         is outstanding
6437         (_dbus_connection_block_for_reply): hold dispatch lock while we
6438         block for the reply, so nobody steals our reply
6439         (dbus_connection_pop_message): hold the dispatch lock while we
6440         pluck the message
6441
6442 2005-02-13  Havoc Pennington  <hp@redhat.com>
6443
6444         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6445         (_dbus_connection_release_dispatch)
6446         (_dbus_connection_acquire_io_path)
6447         (_dbus_connection_release_io_path): make the mutex and condvar
6448         control access to the "acquired" flag. Drop the connection lock
6449         while waiting on the condvar. Hopefully these are baby steps in
6450         roughly the right direction.
6451
6452 2005-02-13  Havoc Pennington  <hp@redhat.com>
6453
6454         * dbus/dbus-connection.c: use separate mutexes for the condition
6455         variables; this is some kind of baseline for sanity, but the
6456         condition variables still aren't used correctly afaict
6457
6458 2005-02-13  Havoc Pennington  <hp@redhat.com>
6459
6460         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6461         fix a double-unlock
6462
6463         * dbus/dbus-connection.c
6464         (_dbus_connection_detach_pending_call_unlocked): add this
6465
6466         Initial semi-correct pass through to fix thread locking; there are
6467         still some issues with the condition variable paths I'm pretty
6468         sure
6469         
6470         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6471         lock/unlock calls
6472
6473         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6474         rename to add _unlocked
6475         (struct DBusConnection): move "dispatch_acquired" and
6476         "io_path_acquired" to use only one bit each.
6477         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6478         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6479         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6480         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6481         (_dbus_connection_remove_timeout) 
6482         (_dbus_connection_toggle_timeout): drop lock when calling out to
6483         user functions; done in a hacky/bad way.
6484         (_dbus_connection_send_and_unlock): add a missing unlock
6485         (_dbus_connection_block_for_reply): add a missing unlock
6486
6487         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6488         drop lock in a hacky probably unsafe way to call out to user
6489         function
6490
6491 2005-02-12  Havoc Pennington  <hp@redhat.com>
6492
6493         * tools/dbus-tree-view.c (info_set_func_text): display more
6494         details on args
6495
6496         * bus/driver.c (bus_driver_handle_list_services): list the bus
6497         driver
6498
6499         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6500
6501         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6502         (method_info_get_n_args): new function
6503
6504 2005-02-12  Havoc Pennington  <hp@redhat.com>
6505
6506         * bus/driver.c (bus_driver_handle_introspect): add introspection
6507         for bus driver
6508
6509 2005-02-12  Havoc Pennington  <hp@redhat.com>
6510
6511         * bus/driver.c: put the signature of each bus driver method in the
6512         table of handlers and check it on incoming calls; this isn't
6513         really useful, but going to add introspect support in a minute.
6514
6515 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6516
6517         * mono/Connection.cs: The unpredictability of finalizers in mono
6518         prevents us from deterministically disconnecting the filters from
6519         the Service class's finalizer, so move tracking of filters and
6520         matches here.  Add API for that.
6521
6522         * mono/Service.cs: Remove the code, add code which calls the
6523         methods now on the Connection class.
6524
6525 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6526
6527         * python/dbus.py (class Sender): added to support dbus signals better
6528         (Bus::add_signal_receiver): added expand_args parameter which defaults
6529         to True.  When expand args is True the signal handler will pass the 
6530         message arguments as parameters to the signal handler.  If False
6531         revert to previous behavior where the signal handler must get the
6532         argument list from the message.  This is to help port applications
6533         like HAL that have a tendancy to send variable length argument lists.
6534         self._match_rule_to_receivers is now a dict of dicts.
6535         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6536         removing it from a list
6537         (Bus::_signal_func): change signal handlers so that interface,
6538         signal_name, service, path and message are packed into a Sender
6539         object and that is passed to the handler.  If expand_args is True
6540         extract the args list from the message and append it to the parameter
6541         list
6542         
6543         * python/dbus_bindings.pyx.in (class Signature): added to support 
6544         signiature types
6545         (MessageIter::__init__): changed iteration limit to match D-BUS
6546         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6547         STRUCT and VARIENT type support
6548         (MessageIter::python_value_to_dbus_sig): made recursive to support
6549         recursive types
6550         (MessageIter::append*): added Signature, dict, tuple 
6551         support
6552
6553         * python/examples/example-client.py: added examples of getting tuples
6554         and dicts
6555
6556         * python/examples/example-service.py: added examples of sending tuples
6557         and dicts
6558
6559         * python/examples/example-signal-recipient.py: Fixed to handle new
6560         signal callback format
6561
6562 2005-02-10  Havoc Pennington  <hp@redhat.com>
6563
6564         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6565         (call dbus_g_proxy_add_signal)
6566
6567         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6568         escape the hostname
6569         (_dbus_server_new_for_domain_socket): escape the path
6570
6571         * dbus/dbus-address.c (dbus_address_escape_value): new
6572         (dbus_address_unescape_value): new
6573         (dbus_parse_address): unescape values
6574
6575         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6576
6577         * doc/dbus-specification.xml: explain how to escape values in
6578         addresses
6579
6580 2005-02-10  Havoc Pennington  <hp@redhat.com>
6581
6582         * dbus/dbus-message-factory.c (generate_special): modify test to
6583         avoid using a non-basic dict key
6584
6585         * dbus/dbus-marshal-validate-util.c: add test for the below
6586
6587         * doc/dbus-specification.xml: require that dict keys are a basic
6588         type
6589
6590         * dbus/dbus-marshal-validate.c
6591         (_dbus_validate_signature_with_reason): require that dict key is a
6592         basic type
6593
6594 2005-02-10  Havoc Pennington  <hp@redhat.com>
6595
6596         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6597         change to be _and_unlock instead of _unlocked
6598
6599         * dbus/dbus-connection.c
6600         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6601         have no_update so we can find this bug quickly in future
6602
6603 2005-02-10  Havoc Pennington  <hp@redhat.com>
6604
6605         * dbus/dbus-message-util.c (verify_test_message): tests for string
6606         array
6607
6608         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6609         support for arrays of string/signature/path
6610
6611 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6612
6613         * dbus/dbus-connection.c
6614         (_dbus_connection_queue_received_message_link,
6615         _dbus_connection_message_sent): Add the path to
6616         the verbose output.
6617         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6618         _dbus_connection_send_preallocated_unlocked(), updated the
6619         dispatch status, and unlocks.  Fixes a bug where certain
6620         situations (like a broken pipe) could cause a Disconnect message
6621         to not be sent, tricking the bus into thinking a service was still
6622         there when the process had quit.
6623         (_dbus_connection_send_preallocated): Call
6624         _dbus_connection_send_preallocated_and_unlock().
6625         (_dbus_connection_send_and_unlock): Added.  Calls
6626         _dbus_connection_send_preallocated_and_unlock().
6627         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6628         (dbus_connection_send_with_reply): Update the dispatch status and
6629         unlock.
6630
6631         * mono/Service.cs (~Service): Added.  Removes the filter so that
6632         we don't get unmanaged code calling back into a GCed delegate.
6633         (RemoveFilter); Added.
6634
6635 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6636
6637         * dbus/dbus-message.c (dbus_message_iter_open_container):
6638         - Removed check for iterator type being an array because
6639         get_arg_type does not work with writer iterators
6640         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6641
6642 2005-02-07  Havoc Pennington  <hp@redhat.com>
6643
6644         * doc/dbus-specification.xml: some more language cleanups; add
6645         stuff about how to deal with invalid protocol and extension
6646         points; add _ to allowed chars in auth commands; add EXTENSION_
6647         auth command prefix
6648
6649 2005-02-06  Havoc Pennington  <hp@redhat.com>
6650
6651         * s/expected/required/ in a couple places for clarity
6652
6653 2005-02-07  Colin Walters  <walters@verbum.org>
6654
6655         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6656         sender or proposed_recipient.
6657
6658 2005-02-06  Havoc Pennington  <hp@redhat.com>
6659
6660         * dbus/dbus-message-factory.c (generate_special): more tests
6661
6662         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6663         array length that exceeds the maximum
6664
6665 2005-02-05  Havoc Pennington  <hp@redhat.com>
6666
6667         * dbus/dbus-message-factory.c (generate_special): more test cases,
6668         increasing coverage
6669
6670         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6671         reason why a signature was invalid
6672
6673         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6674         skip the length of the string before we look at it in validation
6675
6676         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6677         equal_substring
6678
6679         * dbus/dbus-message.c (_dbus_message_loader_new): default
6680         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6681
6682 2005-02-05  Havoc Pennington  <hp@redhat.com>
6683
6684         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6685         if the signature of a variant was empty
6686         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6687         struct with no element type)
6688
6689         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6690         mangled messages to break things
6691
6692 2005-02-04  Havoc Pennington  <hp@redhat.com>
6693
6694         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6695         g_quark_try_string() so it actually can return 0
6696         (dbus_g_proxy_connect_signal): ditto
6697
6698 2005-02-04  Havoc Pennington  <hp@redhat.com>
6699
6700         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6701         bogus warning
6702         (tristring_from_message): assert cleanly on null path/interface
6703         (should not be possible though I decided later)
6704         (dbus_g_proxy_dispose): move proxy manager unregistration here
6705         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6706         g_return_if_fail() checks
6707
6708 2005-02-04  Havoc Pennington  <hp@redhat.com>
6709
6710         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6711
6712         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6713         (with some minor changes)
6714
6715         * doc/dbus-specification.xml: add deprecated attribute to
6716         introspection format
6717
6718 2005-01-31  Havoc Pennington  <hp@redhat.com>
6719
6720         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6721         think it's sort of right
6722
6723 2005-01-30  Havoc Pennington  <hp@redhat.com>
6724
6725         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6726
6727 2005-01-30  Havoc Pennington  <hp@redhat.com>
6728
6729         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6730
6731         * autogen.sh: change to autotools 1.9
6732
6733         * glib/dbus-gproxy.c: completely change how signals work
6734         (dbus_g_proxy_add_signal): new function to specify signature of a
6735         signal
6736         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6737         and g_warning if the incoming message has the wrong signature.
6738
6739 2005-01-30  Havoc Pennington  <hp@redhat.com>
6740
6741         * tools/dbus-names-model.c (have_names_notify): fix this
6742
6743         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6744         up the string array handling a bit 
6745
6746 2005-01-30  Havoc Pennington  <hp@redhat.com>
6747
6748         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6749         (dbus_g_pending_call_cancel): new function
6750
6751         * dbus/dbus-glib.h: move GType decls for connection/message here;
6752         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6753         here, just kind of rationalizing how we handle all that
6754
6755         * tools/dbus-names-model.c: new file for a tree model listing the
6756         services on a bus
6757
6758         * tools/dbus-tree-view.c (model_new): use proper typing on the
6759         model rows
6760
6761 2005-01-30  Havoc Pennington  <hp@redhat.com>
6762
6763         * glib/dbus-gmain.c: add a custom GSource back that just checks
6764         whether the message queue has anything in it; otherwise, there are 
6765         cases where we won't see messages in the queue since there was no 
6766         IO visible to the glib main loop
6767
6768         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6769         increase default message timeout to 25 seconds
6770
6771 2005-01-30  Havoc Pennington  <hp@redhat.com>
6772
6773         * test/glib/test-profile.c (no_bus_stop_server): remove the
6774         warning about the g_warning that I just fixed
6775
6776         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6777         custom source, seems to be a lot easier to understand and work
6778         better.
6779
6780 2005-01-30  Havoc Pennington  <hp@redhat.com>
6781
6782         I think this main loop thing is conceptually broken, but here are 
6783         some band aids. I'll maybe rewrite it in a minute.
6784         
6785         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6786         custom GSource, so don't pass it in; confusing
6787         (gsource_server_finalize, gsource_connection_finalize): add
6788         finalize handlers that remove all the watches.  
6789
6790 2005-01-30  Havoc Pennington  <hp@redhat.com>
6791
6792         * glib/dbus-gobject.c (introspect_properties): fix the XML
6793         generated
6794
6795         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6796         which effectively detects the use of freed messages
6797
6798         * glib/dbus-gobject.c (handle_introspect): modify and return the
6799         reply message instead of the incoming message
6800
6801         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6802         gee, maybe it should SEND THE XML instead of just making a string
6803         and freeing it again ;-)
6804
6805         * tools/dbus-print-message.c (print_message): improve printing of
6806         messages
6807
6808         * configure.in: add debug-glib.service to the output
6809
6810 2005-01-30  Havoc Pennington  <hp@redhat.com>
6811
6812         dbus-viewer introspected and displayed the bus driver
6813         
6814         * dbus/dbus-object-tree.c 
6815         (object_tree_test_iteration): add tests for a handler registered on "/"
6816
6817         * dbus/dbus-object-tree.c
6818         (_dbus_decompose_path): fix to handle path "/" properly
6819         (run_decompose_tests): add tests for path decomposition
6820         
6821         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6822         properly
6823
6824         * glib/dbus-gobject.c (handle_introspect): fix quotes
6825
6826         * test/glib/run-test.sh: support launching the bus, then running
6827         dbus-viewer
6828
6829         * test/glib/test-service-glib.c (main): put in a trivial gobject
6830         subclass and register it on the connection
6831
6832         * bus/driver.c (bus_driver_handle_introspect): implement
6833         introspection of the bus driver service
6834
6835         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6836         identifiers, doctype decl
6837
6838         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6839         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6840         returning the service unchanged.
6841         (bus_driver_handle_message): remove old check for reply_serial in
6842         method calls, now the message type deals with that
6843         (bus_driver_handle_message): handle NULL interface
6844
6845         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6846
6847         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6848         -1 for len
6849
6850         * tools/dbus-viewer.c: add support for introspecting a service on
6851         a bus
6852
6853         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6854         (dbus_g_pending_call_unref): add
6855
6856 2005-01-29  Havoc Pennington  <hp@redhat.com>
6857
6858         * tools/dbus-tree-view.c: add support for displaying properties.
6859         (run dbus-viewer with an introspect xml file as arg, then resize
6860         the window so the tree elements show up, not sure what that is)
6861
6862         * glib/dbus-gobject.c (handle_introspect): return
6863         org.freedesktop.Properties and org.freedesktop.Introspectable
6864         interfaces when we are introspected.
6865
6866         * doc/dbus-specification.xml: allow empty interface name when 
6867         Get/Set a property
6868
6869 2005-01-29  Havoc Pennington  <hp@redhat.com>
6870
6871         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6872         though it uses glib, it could be extended for any binding in
6873         principle
6874
6875         * glib/dbus-gobject.c (gobject_message_function): change to the
6876         new way properties work
6877
6878         * dbus/dbus-protocol.h: add the new interfaces
6879
6880         * doc/dbus-specification.xml: document the introspection format,
6881         Introspectable interface, and add an org.freedesktop.Properties
6882         interface.
6883
6884         * glib/dbus-gparser.c: add support for a <property> element
6885
6886         * glib/dbus-gidl.c: add PropertyInfo
6887
6888         * glib/dbus-gobject.c (handle_introspect): put the outermost
6889         <node> outside the signal and property descriptions.
6890         (introspect_properties): export properties as <property> rather
6891         than as method calls
6892
6893 2005-01-28  Havoc Pennington  <hp@redhat.com>
6894
6895         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6896         related to authentication protocol
6897
6898 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6899
6900         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6901                 - BUS_ACTIVATION -> BUS_STARTER
6902                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6903                 - class MessageIter (__init__): Added recursion checking 
6904                 so we throw a nice error instead of just disconnecting from the
6905                 bus.
6906                 (get): Added arg_type parameter for recursion.
6907                 Removed the nil type
6908                 Added signiture type placeholder (not implemented)
6909                 Added struct type placeholder (not implemented)
6910                 Added varient type placeholder (not implemented)
6911                 Commented out dict type for now     
6912                 (get_element_type): renamed from get_array_type
6913                 (get_*): changed to use the dbus_message_iter_get_basic API
6914                 (get_*_array): removed in favor of recursive get_array method
6915                 (get_array): new recursive method which calls get to marshal
6916                 the elements of the array
6917                 (value_to_dbus_sig): New method returns the corrasponding
6918                 dbus signiture to a python value
6919                 (append): Comment out dict handling for now
6920                 Handle lists with the new recursive API
6921                 Comment out None handling for now
6922                 (append_nil): removed
6923                 (append_*): changed to use dbus_message_iter_append_basic API
6924                 (append_*_array): removed in favor of recursive append_array 
6925                 method
6926                 (__str__): Make it easier to print out recursive iterators
6927                 for debugging
6928                 - class Message (__str__): moved type inspection to the
6929                 MessageIter class' __str__ method
6930                 (get_iter): Added an append parameter wich defaults to False
6931                 If True use the new API's to create an append iterator
6932
6933         * python/dbus.py: Update to use new bindings API
6934                 - TYPE_ACTIVATION -> TYPE_STARTER
6935                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6936                 - class ActivationBus -> class StarterBus
6937                 - class RemoteObject (__call__): get an append iterator
6938                 - (_dispatch_dbus_method_call): get an append iterator
6939                 - class Object (emit_signal): get an append iterator
6940
6941         * python/examples/: Fixed up the examples to work with the new API
6942                 
6943 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6944
6945         * configure.in: Bump version up to 0.30.
6946
6947         * HACKING: Add a release item to bump the version number up after 
6948         a release.
6949
6950 2005-01-28  Havoc Pennington  <hp@redhat.com>
6951
6952         * doc/dbus-specification.xml: update to describe 16-bit types and
6953         dict entries
6954
6955         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6956         assertion
6957
6958         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6959         type
6960
6961         * dbus/dbus-marshal-recursive.c: implement
6962
6963 2005-01-27  Havoc Pennington  <hp@redhat.com>
6964
6965         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6966
6967         * configure.in: find the right type for 16 and 32 bit ints as well
6968         as 64
6969
6970         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6971         the 16-bit types so people don't have to stuff them in 32-bit or
6972         byte arrays.
6973
6974 2005-01-27  Havoc Pennington  <hp@redhat.com>
6975
6976         * dbus/dbus-message.c: byteswap the message if you init an
6977         iterator to read/write from it
6978         
6979         * dbus/dbus-marshal-byteswap.c: new file implementing 
6980         _dbus_marshal_byteswap()
6981
6982         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6983
6984 2005-01-26  Havoc Pennington  <hp@redhat.com>
6985         
6986         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6987         build, apparently - nobody noticed?)
6988         
6989 2005-01-26  Havoc Pennington  <hp@redhat.com>
6990
6991         * dbus/dbus-marshal-recursive.h: remove todo comment
6992
6993 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6994
6995         * Land the mono binding changes to conform to the new APIs.
6996
6997         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6998         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6999
7000         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7001         type code as a string.
7002         (InitAppending): Rename dbus_message_append_iter_init() to
7003         dbus_message_iter_init_append().
7004
7005         * mono/BusDriver.cs: Rename ServiceEventHandler to
7006         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7007         Rename ServiceOwnerChanged to NameOwnerChanged.
7008
7009         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7010         underlying C call.
7011
7012         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7013
7014         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7015         dbus_bus_acquire_service() to dbus_bus_request_name().
7016
7017         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7018         of Type.UnderlyingSystemType to get the correct element type for
7019         the array.
7020         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7021         dbus_message_get_{element|arg}_type() instead of
7022         dbus_message_iter_init_array_iterator().
7023         (Append): Replace dbus_message_iter_append_array() with
7024         dbus_message_iter_open_container() and
7025         dbus_message_iter_close_container().
7026
7027         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7028         types have been removed.
7029         
7030         * mono/DBusType/*.cs: Replace calls of
7031         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7032         but specify the type in the DllImport extern declaration.  Ditto
7033         for dbus_message_iter_append_[type]() ->
7034         dbus_message_iter_append_basic().
7035
7036         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7037         NameOwnerChangedHandler.
7038
7039 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7040
7041         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7042                 - get_base_service -> get_unique_name
7043                 - bus_get_base_service -> bus_get_unique_name
7044                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7045                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7046                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7047                 - bus_activate_service -> bus_start_service_by_name
7048                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7049                 - bus_acquire_service -> bus_request_name
7050                 - dbus_bus_acquire_service -> dbus_bus_request_name
7051                 - bus_service_exists -> bus_name_has_owner
7052                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7053
7054         * python/dbus.py: Rename of methods
7055                 - activate_service -> start_service_by_name
7056                 - bus_acquire_service -> bus_request_name
7057                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7058                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7059
7060         
7061 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7062
7063         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7064         signature for the method that can't be found.
7065
7066         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7067         the message has any arguments, we need to call
7068         _dbus_type_reader_get_current_type(), not
7069         _dbus_type_reader_has_next().
7070
7071 2005-01-24  Havoc Pennington  <hp@redhat.com>
7072
7073         * dbus/dbus-message-factory.c: more testing of message validation
7074
7075         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7076         header
7077
7078 2005-01-23  Havoc Pennington  <hp@redhat.com>
7079
7080         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7081         get this all working, not many tests in the framework yet though
7082
7083 2005-01-22  Havoc Pennington  <hp@redhat.com>
7084
7085         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7086         tutorial, based on work from David Wheeler.
7087
7088 2005-01-21  Havoc Pennington  <hp@redhat.com>
7089
7090         * dbus/dbus-bus.c: add more return_if_fail checks
7091
7092         * dbus/dbus-message.c (load_message): have the "no validation"
7093         mode (have to edit the code to toggle the mode for now though)
7094
7095         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7096         skips all validation; I want to use this at least for benchmark
7097         baseline, I'm not sure if it should be a publicly-available switch.
7098
7099 2005-01-21  Havoc Pennington  <hp@redhat.com>
7100
7101         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7102         toplevel doxygen group as the low-level API stuff
7103
7104         * dbus/dbus.h: note that libdbus is the low-level API
7105
7106 2005-01-20  Havoc Pennington  <hp@redhat.com>
7107
7108         * update-dbus-docs.sh: script to update docs on the web site, only
7109         works for me though. neener.
7110
7111 2005-01-20  Havoc Pennington  <hp@redhat.com>
7112
7113         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7114         code can reveal bugs in it
7115
7116 2005-01-20  Havoc Pennington  <hp@redhat.com>
7117
7118         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7119         select() version, patches from Tor Lillqvist
7120
7121 2005-01-20  Havoc Pennington  <hp@redhat.com>
7122
7123         * doc/dbus-tutorial.xml: replace > with &gt;
7124
7125         * bus/services.c (bus_registry_acquire_service): validate the name
7126         and return a better error if it's no good.
7127
7128         * doc/dbus-specification.xml: note NO_AUTO_START change
7129
7130         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7131         from AUTO_START, we're toggling the default
7132
7133         * bus/dispatch.c: adapt the tests to change of auto-start default
7134
7135 2005-01-18  Havoc Pennington  <hp@redhat.com>
7136
7137         * rename dbus-daemon-1 to dbus-daemon throughout
7138
7139 2005-01-18  Havoc Pennington  <hp@redhat.com>
7140
7141         * Throughout, grand renaming to strip out the use of "service",
7142         just say "name" instead (or "bus name" when ambiguous).  Did not
7143         change the internal code of the message bus itself, only the
7144         programmer-facing API and messages.
7145         
7146         * doc/dbus-specification.xml: further update the message bus section
7147         
7148         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7149         in error case
7150
7151 2005-01-17  Havoc Pennington  <hp@redhat.com>
7152
7153         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7154         ever
7155
7156         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7157         "invalid name character" not only non-ASCII
7158
7159         * doc/dbus-specification.xml: further update spec, message bus 
7160         parts are still out-of-date but the marshaling etc. stuff is now
7161         accurate-ish
7162
7163 2005-01-17  Havoc Pennington  <hp@redhat.com>
7164
7165         * doc/dbus-specification.xml: partially update spec
7166
7167 2005-01-17  Havoc Pennington  <hp@redhat.com>
7168
7169         * Throughout, align variant bodies according to the contained
7170         type, rather than always to 8. Should save a fair bit of space in
7171         message headers.
7172         
7173         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7174         fix handling of case where p == end
7175
7176         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7177
7178 2005-01-17  Havoc Pennington  <hp@redhat.com>
7179
7180         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7181
7182         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7183         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7184         are marshaling/unmarshaling a boolean.
7185
7186 2005-01-16  Havoc Pennington  <hp@redhat.com>
7187
7188         This is about it on what can be disabled/deleted from libdbus
7189         easily, back below 150K anyhow. Deeper cuts are more work than 
7190         just turning the code off as I've done here.
7191         
7192         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7193         signed int convenience funcs
7194
7195         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7196         verbose mode
7197
7198         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7199         things out of libdbus
7200
7201         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7202         
7203         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7204         tests-enabled-only, though it should probably be deleted)
7205
7206         * dbus/dbus-message-util.c: same stuff
7207
7208         * dbus/dbus-auth-util.c: same stuff
7209
7210 2005-01-16  Havoc Pennington  <hp@redhat.com>
7211
7212         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7213
7214         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7215         way for stripping down dbus-userdb.c stuff included in libdbus.
7216         Rename _dbus_parse_uid for consistency.
7217
7218 2005-01-16  Havoc Pennington  <hp@redhat.com>
7219
7220         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7221         name the assertion failed in
7222
7223         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7224         (_dbus_return_val_if_fail): assert that the name of the function
7225         containing the check doesn't start with '_', since we only want to 
7226         use checks on public functions
7227         
7228         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7229         checks to assertions
7230
7231         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7232         change checks to asserts for private function
7233
7234         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7235         to asserts for private function
7236
7237         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7238         broken assertion that was breaking make check
7239         (_dbus_type_reader_array_is_empty): remove this rather than fix
7240         it, was only used in assertions
7241
7242 2005-01-16  Havoc Pennington  <hp@redhat.com>
7243
7244         * test/unused-code-gc.py: hacky script to find code that's used
7245         only by the bus (not libdbus) or used only by tests or not used at
7246         all. It has some false alarms, but looks like we can clean up a
7247         lot of size from libdbus.
7248
7249         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7250         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7251         
7252 2005-01-16  Havoc Pennington  <hp@redhat.com>
7253
7254         * Add and fix docs according to Doxygen warnings throughout
7255         source.
7256         
7257         * dbus/dbus-marshal-recursive.c
7258         (_dbus_type_reader_array_is_empty): change this to just call
7259         array_reader_get_array_len() and make it static
7260
7261         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7262         from get_array_type
7263         (dbus_message_iter_init_append): rename from append_iter_init
7264
7265         * dbus/dbus-marshal-recursive.c
7266         (_dbus_type_reader_get_element_type): rename from
7267         _dbus_type_reader_get_array_type
7268
7269 2005-01-15  Havoc Pennington  <hp@redhat.com>
7270
7271         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7272
7273         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7274         when DBUS_DISABLE_ASSERT
7275         (_dbus_marshal_set_basic): be sure we align for the string length
7276
7277         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7278         this look faster
7279
7280         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7281         inline macro version
7282         (_dbus_string_set_byte): provide inline macro version
7283
7284 2005-01-15  Havoc Pennington  <hp@redhat.com>
7285
7286         * Land the new message args API and type system.
7287
7288         This patch is huge, but the public API change is not 
7289         really large. The set of D-BUS types has changed somewhat, 
7290         and the arg "getters" are more geared toward language bindings;
7291         they don't make a copy, etc.
7292
7293         There are also some known issues. See these emails for details
7294         on this huge patch:
7295         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7296         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7297         
7298         * dbus/dbus-marshal-*: all the new stuff
7299
7300         * dbus/dbus-message.c: basically rewritten
7301
7302         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7303         freed blocks to be all non-nul bytes so using freed memory is less
7304         likely to work right
7305
7306         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7307         DBUS_FAIL_MALLOC=N environment variable, so you can do
7308         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7309         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7310         thorough.
7311
7312         * qt/message.cpp: port to the new message args API
7313         (operator<<): use str.utf8() rather than str.unicode()
7314         (pretty sure this is right from the Qt docs?)
7315
7316         * glib/dbus-gvalue.c: port to the new message args API
7317
7318         * bus/dispatch.c, bus/driver.c: port to the new message args API
7319
7320         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7321         "locked" flag to TRUE and align_offset to 0; I guess we never
7322         looked at these anyhow, but seems cleaner.
7323
7324         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7325         move allocation padding macro to this header; use it to implement
7326         (_DBUS_STRING_STATIC): ability to declare a static string.
7327
7328         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7329         change to return TRUE if the interface is not set.
7330
7331         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7332         to dbus-marshal-validate.[hc]
7333
7334         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7335         dbus-internals.c
7336
7337         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7338         to dbus-marshal-*.[hc]
7339
7340         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7341         function here from dbus-marshal.c
7342
7343 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7344
7345         * NEWS: Update for 0.23.
7346
7347         * configure.in: Release 0.23.
7348
7349 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7350
7351         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7352         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7353         behind.
7354
7355         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7356         uninstall"
7357
7358         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7359         is an enum, get the enum's underlying type.  Another mono
7360         1.1.3 fix.
7361
7362 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7363
7364         Patch from Sjoerd Simons <sjoerd@luon.net>
7365
7366         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7367         DESTDIR.  It breaks stuff.
7368
7369 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7370
7371         Patch from Tambet Ingo <tambet@ximian.com>
7372
7373         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7374         calling type.GetElementType().  The code previously depended on
7375         broken Mono behavior, which was fixed in Mono 1.1.3.
7376
7377         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7378         Activator.CreateInstance() so that the class's constructor is
7379         called with the right parameters.
7380
7381 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7382
7383         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7384
7385         * dbus/dbus-connection.c
7386         (_dbus_connection_queue_received_message_link): Call
7387         _dbus_connection_remove_timeout() instead of the _locked()
7388         variant, since it's always called from
7389         _dbus_connection_handle_watch(), which handles the locking.
7390         Removed the _locked() variant since it's no longer used.
7391
7392 2005-01-03  Havoc Pennington  <hp@redhat.com>
7393
7394         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7395         return
7396         
7397 2004-12-26  Havoc Pennington  <hp@redhat.com>
7398
7399         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7400
7401 2005-01-03  Havoc Pennington  <hp@redhat.com>
7402
7403         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7404         floating point
7405
7406         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7407
7408 2005-01-02  Havoc Pennington  <hp@redhat.com>
7409
7410         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7411
7412 2005-01-01  Havoc Pennington  <hp@redhat.com>
7413
7414         * configure.in: add -Wfloat-equal
7415
7416 2005-01-01  Havoc Pennington  <hp@redhat.com>
7417
7418         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7419         for a variety of reasons '==' doesn't do this.
7420
7421 2004-12-31  Havoc Pennington  <hp@redhat.com>
7422
7423         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7424         I keep wishing I had
7425
7426 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7427
7428         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7429
7430 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7431
7432         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7433         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7434         dbus-protocol.h.  Because they are defines and not enums they are not
7435         autogenerated.
7436
7437 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7438
7439         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7440         dbus_bus_activate_service
7441
7442         * python/dbus.py (Bus.activate_service): activate a service on the
7443         bus.
7444
7445 2004-12-24  Havoc Pennington  <hp@redhat.com>
7446
7447         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7448         file format has also changed and I haven't adapted to that yet
7449         
7450         * Makefile.am: load .gcno files from latest gcc
7451
7452 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7453         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7454
7455         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7456         lowlevel binding
7457
7458         * python/dbus.py (get_unix_user): Added binding to 
7459         call dbus_bindings.bus_get_unix_user
7460
7461         * python/extract.py: Modified the proto_pat regex to
7462         handle unsigned long
7463
7464 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7465
7466         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7467         better POSIX compliance.
7468
7469 2004-12-19  Havoc Pennington  <hp@redhat.com>
7470
7471         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7472         (_dbus_string_insert_8_aligned): new functions
7473
7474         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7475
7476 2004-12-18  Havoc Pennington  <hp@redhat.com>
7477
7478         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7479         macro
7480
7481         * dbus/dbus-message.c: fix a comment, and add a still-unused
7482         not-implemented function
7483
7484         * dbus/dbus-marshal.h: fix comment
7485
7486         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7487
7488 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7489
7490         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7491         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7492         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7493         Type.UnderlyingSystemType to get the actual system type
7494         underneath.  This code previously depended on the broken Mono
7495         behavior, which was fixed in 1.1.3.
7496
7497 2004-11-27  Havoc Pennington  <hp@redhat.com>
7498
7499         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7500         are disabled
7501         (_dbus_string_get_const_data): inline when asserts are disabled
7502
7503         * dbus/dbus-message.c: record the _dbus_current_generation of
7504         creation so we can complain if dbus_shutdown() is used improperly.
7505         Do this only if checks are enabled.
7506
7507         * dbus/dbus-connection.c: ditto
7508         
7509 2004-11-26  Havoc Pennington  <hp@redhat.com>
7510
7511         * test/glib/test-profile.c: add with_bus mode to profile echoes
7512         that go through the bus.
7513
7514         * test/glib/run-test.sh: add ability to run test-profile
7515
7516         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7517         config file reload.
7518
7519 2004-11-26  Havoc Pennington  <hp@redhat.com>
7520
7521         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7522         thing was implemented
7523
7524 2004-11-26  Havoc Pennington  <hp@redhat.com>
7525
7526         * test/glib/test-profile.c: tweak a bit, add support for some
7527         made-up minimal malloc overhead with plain sockets, since in 
7528         real life some sort of buffers are unavoidable thus we could 
7529         count them in the theoretical best case
7530
7531 2004-11-26  Havoc Pennington  <hp@redhat.com>
7532
7533         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7534         where I was trying to cache one too many messages
7535
7536 2004-11-26  Havoc Pennington  <hp@redhat.com>
7537
7538         * dbus/dbus-message.c: reimplement message cache as an array which 
7539         makes the cache about twice as fast and saves maybe 1.5% overall
7540
7541 2004-11-26  Havoc Pennington  <hp@redhat.com>
7542
7543         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7544         message cache lock here
7545
7546 2004-11-26  Havoc Pennington  <hp@redhat.com>
7547
7548         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7549         the "char byte_order" next to each other to save 4 bytes
7550         (dbus_message_new_empty_header): reduce preallocation, since the
7551         message cache should achieve a similar effect
7552         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7553         message cache that keeps a few DBusMessage around in a pool,
7554         another 8% speedup or so.
7555
7556         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7557
7558 2004-11-25  Havoc Pennington  <hp@redhat.com>
7559
7560         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7561         to write, without reading or blocking, try it before the poll()
7562         and skip the poll() if nothing remains to write. This is about a
7563         3% speedup in the echo client/server
7564
7565 2004-11-25  Havoc Pennington  <hp@redhat.com>
7566
7567         The primary change here is to always write() once before adding
7568         the write watch, which gives us about a 10% performance increase.
7569         
7570         * dbus/dbus-transport-unix.c: a number of modifications to cope
7571         with removing messages_pending
7572         (check_write_watch): properly handle
7573         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7574         messages_pending stuff
7575         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7576         AUTHENTICATED cases
7577         (unix_handle_watch): after writing, see if the write watch can be
7578         removed
7579         (unix_do_iteration): assert that write_watch/read_watch are
7580         non-NULL rather than testing that they aren't, since they 
7581         aren't allowed to be NULL. check_write_watch() at the end so 
7582         we add the watch if we did not finish writing (e.g. got EAGAIN)
7583
7584         * dbus/dbus-transport-protected.h: remove messages_pending call,
7585         since it resulted in too much inefficient watch adding/removing; 
7586         instead we now require that the transport user does an iteration 
7587         after queueing outgoing messages, and after trying the first
7588         write() we add a write watch if we got EAGAIN or exceeded our 
7589         max bytes to write per iteration setting
7590
7591         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7592         function
7593
7594         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7595         freed and then accessed, valgrind flagged this bug, fix it
7596
7597         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7598         as the last valid field plus 1, where really it is equal to the
7599         last valid field. Corrects some message corruption issues.
7600
7601         * dbus/dbus-mainloop.c: verbosity changes
7602
7603         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7604         instead of aborting in one of the test codepaths
7605
7606         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7607         caused not printing the pid ever again if a verbose was missing
7608         the newline at the end
7609         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7610
7611         * dbus/dbus-connection.c: verbosity changes; 
7612         (dbus_connection_has_messages_to_send): new function
7613         (_dbus_connection_message_sent): no longer call transport->messages_pending
7614         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7615         try to write() immediately, so we can avoid the write watch. This
7616         is the core purpose of this patchset
7617         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7618         dump the outgoing message queue, so nobody will get confused
7619         trying to send them or thinking stuff is pending to be sent
7620
7621         * bus/test.c: verbosity changes
7622
7623         * bus/driver.c: verbosity/assertion changes
7624
7625         * bus/dispatch.c: a bunch of little tweaks to get it working again
7626         because this patchset changes when/where you need to block.
7627
7628 2004-11-23  Havoc Pennington  <hp@redhat.com>
7629
7630         * test/glib/test-profile.c: modify to accept a plain_sockets
7631         argument in which case it will bench plain sockets instead of
7632         libdbus, for comparison purposes.
7633
7634 2004-11-22  Havoc Pennington  <hp@redhat.com>
7635
7636         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7637         threads for more time, so sysprof can get a grip on it.
7638
7639         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7640         pointless variable
7641
7642 2004-11-13  Havoc Pennington  <hp@redhat.com>
7643
7644         * test/glib/test-profile.c: fix this thing up a bit
7645
7646         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7647         preallocation sizes by a fair bit; not sure if this will be an
7648         overall performance win or not, but it does reduce reallocs.
7649
7650         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7651         the test hack that forced constant realloc if asserts are
7652         disabled, so we can profile sanely. Sprinkle in some
7653         _DBUS_UNLIKELY() which are probably pointless, but before I
7654         noticed the real performance problem I put them in.
7655         (_dbus_string_validate_utf8): micro-optimize this thing a little
7656         bit, though callgrind says it didn't help; then special-case
7657         ascii, which did help a lot; then be sure we detect nul bytes as
7658         invalid, which is a bugfix.
7659         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7660         superstition; use memset to nul the padding instead of a manual
7661         loop.
7662         (_dbus_string_get_length): inline this as a
7663         macro; it showed up in the profile because it's used for loop
7664         tests and so forth
7665
7666 2004-11-10  Colin Walters  <walters@verbum.org>
7667
7668         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7669         for extra paranoia.
7670
7671 2004-11-09  Colin Walters  <walters@verbum.org>
7672
7673         * dbus/dbus-string.c (_dbus_string_get_length): New
7674         function, writes DBusString to C buffer.
7675
7676         * dbus/dbus-string.h: Prototype it.
7677
7678         * dbus/dbus-message.c (dbus_message_type_to_string): New
7679         function, converts message type into C string.
7680
7681         * dbus/dbus-message.h: Prototype it.
7682
7683         * bus/selinux.c (bus_selinux_check): Take source pid,
7684         target pid, and audit data.  Pass audit data to
7685         avc_has_perm.
7686         (log_audit_callback): New function, appends extra
7687         audit information.
7688         (bus_selinux_allows_acquire_service): Also take
7689         service name, add it to audit data.
7690         (bus_selinux_allows_send): Also take message
7691         type, interface, method member, error name,
7692         and destination, and add them to audit data.
7693         (log_cb): Initialize func_audit.
7694         
7695         * bus/selinux.h (bus_selinux_allows_acquire_service)
7696         (bus_selinux_allows_send): Update prototypes 
7697
7698         * bus/services.c (bus_registry_acquire_service): Pass
7699         service name to bus_selinux_allows_acquire_service.
7700
7701         * bus/bus.c (bus_context_check_security_policy): Pass
7702         additional audit data.  Move assignment of dest
7703         to its own line.
7704
7705 2004-11-07  Colin Walters  <walters@verbum.org>
7706
7707         * dbus/dbus-transport-unix.c (do_authentication): Always
7708         initialize auth_completed.
7709         
7710 2004-11-07  Colin Walters  <walters@verbum.org>
7711
7712         * bus/bus.c (load_config): Break into three
7713         separate functions: process_config_first_time_only,
7714         process_config_every_time, and process_config_postinit.
7715         (process_config_every_time): Move call of
7716         bus_registry_set_service_context_table into
7717         process_config_postinit.
7718         (process_config_postinit): New function, does
7719         any processing that needs to happen late
7720         in initialization (and also on reload).
7721         (bus_context_new): Instead of calling load_config,
7722         open config parser here and call process_config_first_time_only
7723         and process_config_every_time directly.  Later, after
7724         we have forked but before changing UID,
7725         invoke bus_selinux_full_init, and then call
7726         process_config_postinit.
7727         (bus_context_reload_config): As in bus_context_new,
7728         load parse file inside here, and call process_config_every_time
7729         and process_config_postinit.
7730
7731         * bus/services.h, bus/services.c
7732         (bus_registry_set_service_context_table): Rename
7733         from bus_registry_set_sid_table.  Take string hash from config
7734         parser, and convert them here into SIDs.
7735
7736         * bus/config-parser.c (struct BusConfigParser): Have
7737         config parser only store a mapping of service->context
7738         string.
7739         (merge_service_context_hash): New function.
7740         (merge_included): Merge context string hashes instead
7741         of using bus_selinux_id_table_union.
7742         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7743         simply create a new string hash.
7744         (bus_config_parser_unref): Unref it.
7745         (start_selinux_child): Simply insert strings into hash,
7746         don't call bus_selinux_id_table_copy_over.
7747
7748         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7749         (bus_selinux_id_table_copy_over): Delete.
7750
7751 2004-11-03  Colin Walters  <walters@verbum.org>
7752
7753         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7754         variables.
7755         
7756 2004-11-03  Colin Walters  <walters@verbum.org>
7757
7758         * bus/test-main.c (test_pre_hook): Fix test logic,
7759         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7760
7761 2004-11-02  Colin Walters  <walters@redhat.com>
7762
7763         * bus/selinux.c (bus_selinux_init): Split into two functions,
7764         bus_selinux_pre_init and bus_selinux_post_init.
7765         (bus_selinux_pre_init): Just determine whether SELinux is
7766         enabled.
7767         (bus_selinux_post_init): Do everything else.
7768
7769         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7770         config file, and bus_selinux_post_init after.  This ensures that
7771         we don't lose the policyreload notification thread that
7772         bus_selinux_init created before forking previously.
7773         
7774         * bus/test-main.c (test_pre_hook): Update for split.
7775
7776 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7777
7778         Patch from Johan Fischer <linux@fischaz.com>
7779         
7780         * mono/doc/Makefile.am (install-data-local): Added directory
7781         install for DESTDIR
7782
7783 2004-10-29  Colin Walters  <walters@redhat.com>
7784
7785         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7786         parameter for fd to write pid to.       
7787
7788         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7789         
7790         * bus/bus.c (bus_context_new): Pass print_pid_fd
7791         to _dbus_become_daemon (bug #1720)
7792
7793 2004-10-29  Colin Walters  <walters@redhat.com>
7794
7795         Patch from Ed Catmur <ed@catmur.co.uk>
7796
7797         * mono/doc/Makefile.am (install-data-local): Handle
7798         DESTDIR.
7799
7800 2004-10-29  Colin Walters  <walters@redhat.com>
7801
7802         * bus/.cvsignore, qt/.cvsignore: Update.
7803
7804 2004-10-29  Colin Walters  <walters@redhat.com>
7805
7806         Patch from Kristof Vansant <de_lupus@pandora.be>
7807
7808         * configure.in: Detect Slackware.
7809         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7810         * bus/rc.messagebus.in: New file.
7811
7812 2004-10-29  Colin Walters  <walters@redhat.com>
7813
7814         * tools/dbus-monitor.c (filter_func): Return
7815         DBUS_HANDLER_RESULT_HANDLED in filter function
7816         for now.  See:
7817         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7818
7819 2004-10-29  Colin Walters  <walters@redhat.com>
7820
7821         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7822
7823         * bus/services.c (bus_registry_acquire_service): 
7824         Correctly retrieve service name from DBusString
7825         for printing.
7826
7827 2004-10-29  Colin Walters  <walters@redhat.com>
7828
7829         * dbus/dbus-glib.h: Update documentation to not
7830         refer to internal APIs.
7831
7832 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7833
7834         * mono/Arguments.cs (GetDBusTypeConstructor):
7835         type.UnderlyingSystemType will return "System.Byte" if you do it
7836         on "byte[]", which is not what we want.  So check the type.IsArray
7837         property and use System.Array instead.
7838
7839 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7840
7841         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7842         the DBusUserInfo structure since this is passed into the function.
7843         This would cause a double free when the function that allocated
7844         the structure would try to free it when an error occured.
7845
7846         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7847         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7848         for service activation to avoid 32bit/64bit parallel install issues
7849
7850 2004-10-21  Colin Walters  <walters@verbum.org>
7851
7852         * AUTHORS: Fix my email address, the @gnu.org one
7853         has been bouncing for some time.  Also add J5.
7854         
7855 2004-10-21  Colin Walters  <walters@verbum.org>
7856
7857         * dbus/dbus-transport-unix.c (do_authentication): Return
7858         authentication status to callers.
7859         (unix_handle_watch): If we completed authentication this round,
7860         don't do another read.  Instead wait until the next iteration,
7861         after we've read any pending data in the auth buffer.
7862         (unix_do_iteration): Ditto.
7863         (unix_handle_watch): Updated for new do_authentication prototype.
7864
7865 2004-10-18  Colin Walters  <walters@verbum.org>
7866
7867         * bus/selinux.c (bus_selinux_enabled): Handle
7868         --disable-selinux case.
7869         
7870 2004-10-18  Colin Walters  <walters@verbum.org>
7871
7872         * bus/selinux.h: Add bus_selinux_enabled.
7873         
7874         * bus/selinux.c (bus_selinux_enabled): Implement it.
7875         
7876         * bus/config-parser.c (struct include): Add
7877         if_selinux_enabled member.
7878         (start_busconfig_child): Parse if_selinux_enabled
7879         attribute for include.
7880         (bus_config_parser_content): Handle it.
7881
7882         * bus/session.conf.in, bus/system.conf.in: Add
7883         inclusion of context mapping to default config files;
7884         conditional on SELinux being enabled.
7885         
7886         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7887         
7888         * test/data/invalid-config-files/badselinux-1.conf, 
7889         test/data/invalid-config-files/badselinux-2.conf:
7890         Test files for bad syntax.
7891         
7892 2004-10-17  Colin Walters  <walters@verbum.org>
7893
7894         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7895         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7896         format specifier mismatches.
7897
7898 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7899
7900         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7901         format string.
7902
7903         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7904         pointer (bug #1540, Leonardo Boiko).
7905
7906 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7907
7908         * mono/BusDriver.cs: Changed BusDriver struct to remove
7909         the ServiceCreated and ServiceDeleted events and replace them
7910         with the new ServiceOwnerChanged event.
7911
7912         * mono/example/BusListener.cs: Added a new example program,
7913         which listens for and reports any ServiceOwnerChanged events
7914         on the bus driver.
7915
7916         * mono/example/Makefile.am (DESTDIR): Build changes for the
7917         new BusListener.cs example.
7918
7919 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7920
7921         * bus/signals.c (bus_match_rule_parse): validate the components of
7922         match rules (bug #1439).
7923
7924         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7925
7926 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7927
7928         * doc/dbus-specification.xml: document ServiceOwnerChanged
7929         signal.
7930         
7931         * bus/driver.c, bus/driver.h, bus/services.c: Use
7932         ServiceOwnerChanged signal instead of ServiceCreated and
7933         ServiceDeleted.
7934         
7935         * bus/dispatch.c: update testcase for the new signal.
7936
7937 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7938
7939         Patch from Nat Friedman <nat@novell.com>
7940
7941         * mono/Makefile.am: A number of small build fixes to allow "make
7942         distcheck" to succeed.
7943
7944         * mono/example/Makefile.am: "make distcheck" fixes.
7945
7946         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7947         key in @srcdir@.
7948
7949         * test/Makefile.am: "make distcheck" fixes.
7950
7951 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7952
7953         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7954
7955         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7956
7957         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7958         messages after the first one (bug #1389).
7959         
7960         * bus/dispatch.c (check_double_hello_message): add a test case for
7961         the double hello message bug.
7962         (check_existent_service_activation): fix check of spawning error.
7963         
7964 2004-09-16  David Zeuthen  <david@fubar.dk>
7965
7966         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7967
7968 2004-09-12  David Zeuthen  <david@fubar.dk>
7969
7970         Patch from Kay Sievers <kay.sievers@vrfy.org>
7971
7972         * bus/bus.c (bus_context_new):
7973         * bus/bus.h:
7974         * bus/main.c (usage)
7975         (main):
7976         Add commandline option --nofork to override configuration file
7977         setting.
7978
7979 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7980
7981         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7982         compilers don't like it (bug #974).
7983
7984 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7985
7986         * qt/connection.*: Applied patch by Jérôme Lodewyck
7987         <lodewyck@clipper.ens.fr> to integrate an existing
7988         connection into the Qt eventloop
7989
7990 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7991
7992         * mono/BusDriver.cs: Added.  This is a class for interacting with
7993         the org.freedesktop.DBus service.
7994
7995         * mono/Message.cs: Added a mechanism to expose the message that is
7996         currently being dispatched via the static Message.Current
7997         property.  Added Message.Sender and Message.Destination
7998         properties.
7999
8000         * mono/Handler.cs: Expose the dispatched message via
8001         Message.Current when handling method calls.
8002
8003         * mono/Service.cs: Expose the dispatched message via
8004         Message.Current when handling signal emissions.
8005         
8006         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8007         Connection.BaseService property.
8008
8009 2004-08-28  Havoc Pennington  <hp@redhat.com>
8010
8011         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8012
8013         More fixes from Steve Grubb
8014         
8015         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8016         (_dbus_listen_tcp_socket): fix fd leak
8017
8018         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8019         EINTR to a bit lower in the code
8020
8021 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8022
8023         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8024         TRUE if we are inquiring about the existence of the built-in
8025         org.freedesktop.DBus service.
8026
8027 2004-08-25  John Palmieri  <johnp@redhat.com>
8028         * bus/config-parser.c:
8029         (struct PolicyType): Add POLICY_CONSOLE
8030         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8031         (start_busconfig_child): Sets up console element when
8032         <policy at_console=""> is encountered in a policy file
8033         (append_rule_from_element): Convert console elements to console
8034         rules.
8035
8036         * bus/policy.c: 
8037         (bus_policy_create_client_policy): Add console rules to the client
8038         policy based on if the client is at the console
8039         (bus_policy_append_console_rule): New function for adding a
8040         console rule to a policy
8041         (bus_policy_merge): Handle console rule merging
8042
8043         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8044         where we check for console user files
8045         
8046         * dbus/dbus-sysdeps.c:
8047         (_dbus_file_exists): New function which checks if the given
8048         file exists
8049         (_dbus_user_at_console): New function which does the system
8050         specific process of checking if the user is at the console
8051
8052         * dbus/dbus-userdb.c:
8053         (_dbus_is_console_user): New function converts a UID to user name
8054         and then calls the system specific _dbus_user_at_console to 
8055         see if the user is at the console and therefor a console user
8056
8057 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8058
8059         * bus/config-parser.c (set_limit):
8060         * bus/dbus-daemon-1.1.in:
8061         * test/data/valid-config-files/many-rules.conf: set the
8062         max_match_rules_per_connection limt from the config file. 
8063
8064         * doc/busconfig.dtd: update the DTD.
8065
8066         * bus/driver.c: remove some unused variables.
8067
8068 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8069
8070         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8071         it's been replaced by dbus_g_bus_get
8072
8073 2004-08-23  Colin Walters  <walters@redhat.com>
8074
8075         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8076
8077         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8078
8079         * bus/selinux.c: Create a thread for policy reload notification.
8080         (bus_selinux_get_policy_root): Implement.
8081
8082         * bus/config-parser.c (start_busconfig_child)
8083         (bus_config_parser_content): Support SELinux-root relative
8084         inclusion.
8085
8086         * configure.in <HAVE_SELINUX>: Add -lpthread.
8087         
8088         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8089         (test_post_hook): Move memory checking into here.
8090         (test_pre_hook, test_post_hook): Move SELinux checks in
8091         here, but conditional on a DBUS_TEST_SELINUX environment
8092         variable.  Unfortunately we can't run the SELinux checks
8093         as a normal user, since they won't have any permissions
8094         for /selinux.  So this will have to be tested manually
8095         for now, until we have virtualization for most of
8096         libselinux.
8097         
8098 2004-08-23  Havoc Pennington  <hp@redhat.com>
8099
8100         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8101         drop supplementary groups, suggested by Steve Grubb
8102
8103 2004-08-20  Colin Walters  <walters@redhat.com>
8104
8105         * bus/config-parser.c (start_busconfig_child): Remove some unused
8106         variables.
8107         
8108         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8109         warning.
8110
8111 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8112
8113         * configure.in: If --enable-mono is passed in, if we can't find
8114         mono error out.
8115
8116         * mono/Makefile.am: Use /gacutil to install assemblies into the
8117         GAC and not /root.
8118
8119 2004-08-12  Havoc Pennington  <hp@redhat.com>
8120
8121         * NEWS: update for 0.22
8122
8123         * configure.in: release 0.22
8124
8125 2004-08-11  Colin Walters  <walters@redhat.com>
8126
8127         * tools/dbus-send.c (main, usage): Add --reply-timeout
8128         argument.
8129
8130 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8131
8132         * bus/bus.c (process_config_first_time_only): get rid of an unused
8133         DBusError that was causing a memoy leak (bug #989).
8134
8135         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8136         fix compilation on Solaris/Forte C (bug #974)
8137
8138         * bus/main.c (main): plug two minuscule memleaks.
8139
8140 2004-08-10  Havoc Pennington  <hp@redhat.com>
8141
8142         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8143
8144 2004-08-09  Havoc Pennington  <hp@redhat.com>
8145
8146         * COPYING: switch to Academic Free License version 2.1 instead of
8147         2.0, to resolve complaints about patent termination clause.
8148
8149 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8150
8151         * README: added documentation for the --enable-python 
8152         configure switch.
8153
8154 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8155
8156         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8157         _unref in the SELinux support.
8158
8159         * doc/busconfig.dtd: update DTD for SELinux support.
8160
8161         * bus/config-loader-libxml.c: fix error handler and parser
8162         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8163
8164         * configure.in: remove the warning about libxml2.
8165
8166         * dbus/dbus-bus.c: silence doxygen warning.
8167
8168 2004-07-31  Colin Walters  <walters@redhat.com>
8169
8170         * configure.in: Move #error in SELinux check to its own line.
8171
8172 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8173
8174         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8175         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8176         dbus_error_set.
8177
8178         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8179         broken by the change in the _SET_OOM macros.
8180
8181 2004-07-31  Colin Walters  <walters@redhat.com>
8182
8183         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8184         BUS_SET_OOM.
8185
8186 2004-07-31  Colin Walters  <walters@redhat.com>
8187
8188         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8189         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8190         AC_MSG_CHECKING.
8191
8192 2004-07-24  Havoc Pennington  <hp@redhat.com>
8193
8194         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8195
8196         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8197         functionality
8198
8199         * configure.in: add --enable-selinux
8200         
8201         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8202
8203         * bus/main.c (main): initialize and shut down selinux
8204
8205         * bus/connection.c: store SELinux ID on each connection, to avoid 
8206         repeated getting of the string context and converting it into 
8207         an ID
8208
8209         * bus/bus.c (bus_context_get_policy): new accessor, though it
8210         isn't used
8211         (bus_context_check_security_policy): check whether the security
8212         context of sender connection can send to the security context of
8213         recipient connection
8214
8215         * bus/config-parser.c: add parsing for <selinux> and <associate>
8216         
8217         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8218         implement dbus_connection_get_unix_fd()
8219
8220         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8221         function, used by the selinux stuff
8222         
8223 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8224
8225         * bus/config-loader-libxml.c: complete the implementation of
8226         libxml backend for config file loader. Doesn't work with full OOM
8227         test yet. 
8228         
8229         * configure.in: change error when selecting libxml into a warning.
8230         
8231         * test/data/invalid-config-files: add two non-well-formed XML
8232         files. 
8233         
8234         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8235         
8236         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8237         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8238         be necessary to read all the buffer. (bug #894)
8239
8240         * bus/activation.c (bus_activation_activate_service): fix a
8241         potential assertion failure (bug #896). Small optimization in the
8242         case of auto-activation messages.
8243
8244         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8245         add test case for byte-through-vararg bug (#901). patch by Kimmo
8246         Hämäläinen. 
8247
8248 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8249
8250         * python/dbus.py:
8251         * python/dbus_bindings.pyx.in:
8252         Add dbus.init_gthreads (), allow emit_signal to pass
8253         arguments to the signal.
8254         
8255 2004-07-24  Havoc Pennington  <hp@redhat.com>
8256
8257         * AUTHORS: add some people, not really comprehensively, let me
8258         know if I missed you
8259
8260 2004-07-24  Havoc Pennington  <hp@redhat.com>
8261
8262         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8263         Owen
8264
8265         * test/Makefile.am (DIST_SUBDIRS): here also
8266
8267 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8268
8269         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8270         breaking build on Solaris, reported by Farhad Saberi on the ML.
8271
8272         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8273         va_arg invocation to account for integer promotion in the case of
8274         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8275
8276         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8277         _dbus_list_get_first_link, not _dbus_list_get_first.
8278
8279         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8280
8281         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8282         handler functions so that the asserts in _dbus_object_subtree_unref
8283         do not fail.
8284
8285         * dbus/dbus-transport-unix.c (do_reading):
8286         _dbus_transport_queue_messages return value is of type
8287         dbus_bool_t, not DBusDispatchStatus.
8288         
8289 2004-07-19  David Zeuthen  <david@fubar.dk>
8290
8291         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8292
8293         * bus/dispatch.c:
8294         (check_get_connection_unix_user): Debug says GetProperty; but the
8295         method is called GetConnectionUnixUser
8296         (check_get_connection_unix_process_id): New function
8297         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8298         also call check_get_connection_unix_process_id()
8299         
8300         * bus/driver.c:
8301         (bus_driver_handle_get_connection_unix_process_id): New function,
8302         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8303         interface
8304         
8305         * dbus/dbus-auth.c:
8306         (handle_server_data_external_mech): Set pid from the credentials
8307         obtained from the socket
8308         
8309         * dbus/dbus-connection.c:
8310         (dbus_connection_get_unix_process_id): New function
8311         
8312         * dbus/dbus-connection.h: 
8313         Add prototype for dbus_connection_get_unix_process_id
8314         
8315         * dbus/dbus-transport.c:
8316         (_dbus_transport_get_unix_process_id): New function
8317         
8318         * dbus/dbus-transport.h:
8319         Add prototype for _dbus_transport_get_unix_process_id
8320         
8321 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8322
8323         * dbus/dbus-message.c: Message counter fix, patch by Christian
8324         Hammond <chipx86@gnupdate.org>
8325
8326 2004-07-18  Seth Nickell  <seth@gnome.org>
8327
8328         * python/dbus.py:
8329         * python/dbus_bindings.pyx.in:
8330         * python/tests/test-client.py:
8331
8332         Add dbus.ByteArray and dbus_bindings.ByteArray
8333         types so that byte streams can be passed back.
8334
8335         Give jdahlin the heaps of credit that are so
8336         rightfully his.
8337         
8338 2004-07-12  Seth Nickell  <seth@gnome.org>
8339
8340         * python/dbus.py:
8341
8342         Add message argument to the default object_method_handler
8343         function.
8344         
8345         * python/dbus_bindings.pyx.in:
8346
8347         Automatically return NIL when passed an empty list
8348         (we can't pass back a list since lists are typed
8349         and we don't have any idea what type the the client
8350         intended the list to be... :-( )
8351         
8352 2004-07-10  Seth Nickell  <seth@gnome.org>
8353
8354         * python/examples/Makefile.am:
8355
8356         Fix distcheck breakage caused by new examples.
8357
8358 2004-07-10  Seth Nickell  <seth@gnome.org>
8359
8360         * python/dbus.py:
8361
8362         Add "message" argument to service-side dbus.Object
8363         methods. This will break existing services written
8364         using the python bindings, but will allow extraction
8365         of all the message information (e.g. who its from).
8366
8367         Add improved "object oriented" signal handling/emission.
8368         
8369         * python/examples/example-service.py:
8370
8371         Nix this example.
8372         
8373         * python/examples/example-signal-emitter.py:
8374         * python/examples/example-signal-recipient.py:
8375
8376         Two new examples that show how to emit and receive
8377         signals using the new APIs.
8378         
8379         * python/examples/example-signals.py:
8380         * python/examples/gconf-proxy-service.py:
8381         * python/examples/gconf-proxy-service2.py:
8382
8383         Add "message" argument to service methods.
8384
8385 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8386
8387         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8388         * dbus/bus.c (dbus_bus_get_unix_user)
8389         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8390         method of org.freedesktop.DBus interface.
8391
8392         * bus/dispatch.c: test case
8393
8394 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8395
8396         * python/Makefile.am: switched include directory from glib/ to dbus/
8397         since dbus-glib.h moved
8398  
8399 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8400
8401         * configure.in: prevent building the gcj stuff and libxml loader
8402         since they are broken.
8403
8404 2004-06-20  Havoc Pennington  <hp@redhat.com>
8405
8406         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8407         codes from the dbus error names
8408         
8409         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8410         as dbus/dbus-glib.h and that breakage is now visible due to 
8411         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8412         
8413         * glib/dbus-glib.h: s/gproxy/g_proxy/
8414
8415         * dbus/dbus-shared.h: new header to hold stuff shared with
8416         binding APIs
8417         
8418         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8419         than dbus-errors.h
8420
8421         * glib/dbus-glib.h (dbus_set_g_error): move to
8422         dbus-glib-lowlevel.h
8423
8424         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8425         of stuff to enable this
8426
8427         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8428
8429         * a bunch of other changes with the same basic "separate glib 
8430         bindings from dbus.h" theme
8431         
8432 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8433
8434         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8435
8436         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8437
8438 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8439
8440         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8441         the reply value of the ServiceExists message.
8442
8443 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8444
8445         * python/dbus_bindings.pyx.in: No longer need to parse path
8446         elements and pass them as arrays of strings.  The C API now
8447         accepts plain path strings.
8448         (_build_parsed_path): removed 
8449
8450 2004-06-07  Havoc Pennington  <hp@redhat.com>
8451
8452         * doc/TODO: remove auto-activation item since it's done; sort
8453         items by importance/milestone
8454
8455 2004-06-07  Havoc Pennington  <hp@redhat.com>
8456
8457         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8458         random signature when using REQUIRED_FIELDS (this hack won't work
8459         in the long term)
8460
8461         * dbus/dbus-message.c: change the signature to be a header field,
8462         instead of message->signature special-case string. Incremental
8463         step forward. Then we can fix up code to send the signature in the
8464         message, then fix up code to validate said signature, then fix up
8465         code to not put the typecodes inline, etc.
8466         (load_one_message): don't make up the signature after the fact
8467         (decode_header_data): require signature field for the known
8468         message types
8469
8470         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8471
8472         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8473
8474 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8475
8476         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8477
8478         * mono/Handler.cs: Updated to follow new path argument for
8479         (un-)registering objects.
8480
8481         * mono/example/Makefile.am:
8482         * mono/Makefile.am:
8483         * configure.in: Bumped required version for mono and use new -pkg
8484         syntax for deps
8485
8486 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8487
8488         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8489         registration functions take the path argument as char* instead of
8490         char**.
8491
8492         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8493         split off the path decompostion part of
8494         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8495         warnings. 
8496
8497         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8498         
8499 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8500  
8501         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8502         machine approach.  A state is implemented as a function that
8503         handles incoming events as specified for that state.
8504         
8505         * doc/dbus-specification.xml: Update auth protocol state machine
8506         specification to match implementation.  Remove some leftover
8507         base64 examples.
8508
8509 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8510
8511         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8512         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8513         quiet doxygen.
8514
8515         * Doxyfile.in: remove deprecated options.
8516
8517         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8518         glib/test-thread.h, glib/test-thread-client.c,
8519         glib/test-thread-server.c, glib/test-profile.c,
8520         glib/test-dbus-glib.c: remove these unused files.
8521
8522 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8523
8524         * dbus/dbus-object-tree.c
8525         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8526         non-fallback handlers (bug #684).
8527         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8528         (find_subtree_recurse): report wether the returned subtree is an
8529         exact match or a "fallback" match higher up in the tree.
8530         (object_tree_test_iteration): update test case.
8531
8532 2004-06-01  Seth Nickell  <seth@gnome.org>
8533
8534         * python/dbus_bindings.pyx.in:
8535         * python/tests/test-client.py:
8536
8537         Round off basic type support. Add dicts (yay!), and 
8538         remaining array types.
8539
8540         Make MessageIter more general so it works for dicts too.
8541
8542         Mark all loop variables as C integers.
8543         
8544 2004-05-31  Havoc Pennington  <hp@redhat.com>
8545
8546         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8547         "in" before "out"
8548
8549         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8550
8551         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8552         option that runs the tests, and start filling in some code
8553         including for starters just dumping the interfaces to stdout
8554
8555         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8556
8557         * test/data/valid-introspection-files/lots-of-types.xml: test of
8558         an example introspection file
8559
8560         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8561         "node" (I think...)
8562
8563 2004-05-31  Seth Nickell  <seth@gnome.org>
8564
8565         * python/dbus_bindings.pyx.in:
8566         * python/tests/test-client.py:
8567
8568         Test Suite: 1
8569         Python Bindings: 0
8570
8571         Fix string array memory trashing bug... oops...
8572
8573 2004-05-30  Seth Nickell  <seth@gnome.org>
8574
8575         * python/dbus.py:
8576
8577         Add a nicer-but-less-flexible alternate API for handling 
8578         calls to virtual objects in dbus.ObjectTree.
8579
8580         Screw up the argument order to the dbus.Object constructor
8581         for consistency with dbus.ObjectTree (and to make dbus_methods
8582         optional for future extension)
8583         
8584         * python/examples/Makefile.am:
8585         * python/examples/gconf-proxy-service.py:
8586         * python/examples/gconf-proxy-service2.py:
8587
8588         Alternate implementation of gconf-proxy-service using the
8589         nicer dbus.ObjectTree API.
8590         
8591         * python/examples/example-service.py:
8592         * python/tests/test-server.py
8593
8594         Reverse the argument order to deal with dbus.Object constructor
8595         changes.
8596         
8597 2004-05-30  Seth Nickell  <seth@gnome.org>
8598
8599         * python/examples/example-client.py:
8600         * python/examples/example-service.py:
8601
8602         Take it back. Lists seem to work but they're broken
8603         in the test suite. Make the base examples use
8604         lists (works fine).
8605
8606 2004-05-30  Seth Nickell  <seth@gnome.org>
8607
8608         * python/dbus_bindings.pyx.in:
8609         * python/tests/test-client.py:
8610
8611         Add some more tests and fix errors that crop up.
8612         Unfortunately, currently it seems like marshalling
8613         and unmarshalling of lists is completely broken :-(
8614
8615 2004-05-30  Seth Nickell  <seth@gnome.org>
8616
8617         * python/dbus_bindings.pyx.in:
8618
8619         Add support for ObjectPath type.
8620
8621         * python/dbus.py:
8622
8623         Refactor message handling code to a common function.
8624         
8625         * python/tests/test-client.py:
8626         * python/tests/test-server.py:
8627
8628         Add tests that check to make sure values of all types
8629         can be echoed from a service w/o mangling.
8630         
8631 2004-05-29  Seth Nickell  <seth@gnome.org>
8632
8633         * python/dbus.py:
8634
8635         Add ObjectTree class which allows implementation
8636         of trees of "virtual" objects. Basically the python
8637         wrapper for "register_fallback".
8638         
8639         * python/examples/Makefile.am
8640         * python/examples/gconf-proxy-client.py:
8641         * python/examples/gconf-proxy-service.py:
8642
8643         Implement a simple GConf proxy service that supports
8644         get/set on string and int GConf keys using the ObjectTree.
8645         
8646 2004-05-29  Seth Nickell  <seth@gnome.org>
8647
8648         * python/dbus.py:
8649         * python/examples/example-client.py:
8650         * python/examples/example-service.py:
8651         * python/examples/list-system-services.py:
8652
8653         Add SessionBus, SystemBus and ActivationBus classes
8654         so you don't need to know the special little BUS_TYPE
8655         flag.
8656         
8657 2004-05-29  Havoc Pennington  <hp@redhat.com>
8658
8659         * bus/config-parser.c (process_test_valid_subdir): temporarily
8660         stop testing config parser OOM handling, since expat has issues
8661         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8662
8663         * bus/dbus-daemon-1.1.in: change requested_reply to
8664         send_requested_reply/receive_requested_reply so we can send the
8665         replies, not just receive them.
8666
8667         * bus/config-parser.c: parse the new
8668         send_requested_reply/receive_requested_reply
8669
8670         * bus/policy.c (bus_client_policy_check_can_send): add
8671         requested_reply argument and use it
8672
8673         * bus/bus.c (bus_context_check_security_policy): pass through
8674         requested_reply status to message send check
8675
8676         * bus/system.conf.in: adapt to requested_reply change
8677         
8678 2004-05-28  Havoc Pennington  <hp@redhat.com>
8679
8680         * test/glib/test-service-glib.c (main): remove unused variable
8681
8682         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8683
8684         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8685         from the enum, no longer in use.
8686
8687         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8688         works right.
8689
8690         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8691         whether error_name passed in is a valid error name.
8692
8693 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8694
8695         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8696         OBJECT_PATH and OBJECT_PATH_ARRAY
8697
8698 2004-05-28  Seth Nickell  <seth@gnome.org>
8699
8700         * python/examples/Makefile.am:
8701
8702         Forget to add Makefile.am. Do not pass go.
8703
8704 2004-05-28  Michael Meeks  <michael@ximian.com>
8705
8706         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8707         fix no int64 case.
8708
8709         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8710
8711         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8712         (_dbus_message_iter_get_basic_type_array): impl.
8713         drastically simplify ~all relevant _get methods to use these.
8714         (_dbus_message_iter_append_basic_array),
8715         (dbus_message_iter_append_basic): impl
8716         drastically simplify ~all relevant _append methods to use these.
8717
8718         * dbus/dbus-message-builder.c (parse_basic_type) 
8719         (parse_basic_array, lookup_basic_type): impl.
8720         (_dbus_message_data_load): prune scads of duplicate /
8721         cut & paste coding.
8722
8723         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8724         (_dbus_demarshal_basic_type): implement,
8725         (demarshal_and_validate_len/arg): beef up debug.
8726         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8727
8728 2004-05-27  Seth Nickell  <seth@gnome.org>
8729
8730         * configure.in:
8731         * python/Makefile.am:
8732
8733         Include the example python apps in the tarball.
8734         
8735         * python/examples/list-system-services.py
8736
8737         Add a python new example that fetches the list of services
8738         from the system bus.
8739         
8740 2004-05-27  Seth Nickell  <seth@gnome.org>
8741
8742         * python/dbus.py:
8743         * python/dbus_bindings.pyx.in:
8744
8745         Fix failure to notify that a signal was not handled,
8746         resulted in hung functions.
8747         
8748 2004-05-25  Colin Walters  <walters@redhat.com>
8749
8750         * tools/dbus-monitor.c (main): Monitor all types of messages.
8751
8752 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8753
8754         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8755         which unregisters the object path and disposes the handler.
8756
8757 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8758  
8759         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8760          
8761         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8762         operands to && so we call dbus_message_iter_next () for the last
8763         argument also.
8764
8765 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8766
8767         * dbus/dbus-object-tree.c
8768         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8769         children even if the requested path isn't registered.
8770         (object_tree_test_iteration): test object_tree_list_registered.
8771
8772         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8773         it to 0.
8774         
8775 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8776
8777         * doc/TODO: Remove resolved items.
8778
8779         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8780         field.
8781         
8782         * bus/connection.c (bus_connections_expect_reply): Enforce the
8783         per-connection limit on pending replies.
8784         
8785         Patch from Jon Trowbridge <trow@ximian.com>:
8786  
8787         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8788         up a watch that triggers a config reload when one end of the pipe
8789         becomes readable.
8790         (signal_handler): Instead of doing the config reload in our SIGHUP
8791         handler, just write to the reload pipe and let the associated
8792         watch handle the reload when control returns to the main loop.
8793  
8794         * bus/driver.c (bus_driver_handle_reload_config): Added.
8795         Implements a ReloadConfig method for requesting a configuration
8796         file reload via the bus driver.
8797  
8798 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8799
8800         * HACKING: Updated release instructions concerning the wiki page.
8801
8802 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8803
8804         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8805         filter against auth->allowed_mechs; we only add allowed mechs in
8806         record_mechanisms().
8807  
8808         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8809         ALLOWED_MECHS to auth-script format so we can set the list of
8810         allowed mechanisms.
8811  
8812         * data/auth/client-out-of-mechanisms.auth-script: New test to
8813         check client disconnects when it is out of mechanisms to try.
8814  
8815         * dbus/dbus-auth.c (process_command): Remove check for lines
8816         longer that 1 MB; we only buffer up maximum 16 kB.
8817  
8818         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8819         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8820         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8821         assume there might be unused bytes.
8822  
8823         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8824         client-out-of-mechs, it is handled in process_reject(). Move check
8825         for max failures to send_rejected(), as it's a server-only thing.
8826
8827         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8828         send_auth(), send_data(), send_rejected(), send_error(),
8829         send_ok(), send_begin() and send_cancel().
8830
8831 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8832
8833         Remove base64 encoding, replace with hex encoding. Original patch
8834         from trow@ximian.com, added error handling.
8835
8836         * dbus/dbus-string.c (_dbus_string_base64_encode)
8837         (_dbus_string_base64_decode): Remove.
8838         (_dbus_string_hex_decode): Add end_return argument so we can
8839         distinguish between OOM and invalid hex encoding.
8840         (_dbus_string_test): Remove base64 tests and add test case for
8841         invalid hex.
8842
8843         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8844         Replace base64 with hex.
8845
8846         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8847         for invalid hex encoded data in auth protocol.
8848
8849 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8850
8851         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8852         leak.
8853
8854 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8855
8856         * mono/dbus-sharp.dll.config.in: Added for GAC
8857         * mono/dbus-sharp.snk: Added for GAC
8858         * mono/Assembly.cs.in: Added for GAC
8859         * mono/Makefile.am: Changes for GAC installation        
8860         * configure.in: Added refs for dbus-sharp.dll.config.in and
8861         Assembly.cs.in. More fixes for mono testing
8862         * mono/example/Makefile.am: Changed var to CSC
8863         * Makefile.am: Changed flag name to DBUS_USE_CSC
8864
8865 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8866
8867         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8868         * mono/doc/*: Added documentation framework
8869         * configure.in: Added monodoc check
8870         * README: Added description of mono configure flags
8871
8872 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8873
8874         * doc/dbus-specification.xml: Added a "Required" column to the 
8875         header fields table and changed the "zero or more" verbage in
8876         the above paragraph to read "The header must contain the required 
8877         named header fields and zero or more of the optional named header 
8878         fields".
8879         * test/data/invalid-messages/*.message: Added the required PATH 
8880         named header field to the tests so that they don't fail on 
8881         'Missing path field'
8882
8883 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8884
8885         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8886         the stack by implicitly defining variable and parameter types and
8887         removing the hack of defining C pointers as python objects and later
8888         casting them.
8889
8890 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8891
8892         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8893
8894 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8895
8896         * mono/DBusType/Dict.cs: Handle empty dicts
8897         * mono/DBusType/Array.cs: Handle empty arrays
8898         * mono/Arguments.cs: Handle empty arguments
8899
8900 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8901
8902         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8903         field
8904
8905 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8906
8907         * test/data/valid-messages/standard-*.message: Update message
8908         test scripts to new header field names.
8909
8910 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8911
8912         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8913         overflow to times_we_did_each_thing array which would chop off the
8914         first character of the failure_dir string. Increased the size of
8915         the array to 7 to reflect the number of random mutation functions
8916         we have.
8917
8918 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8919
8920         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8921         unix_server->watch here, it is unreffed in disconnect.
8922         (_dbus_server_new_for_tcp_socket): convert NULL host to
8923         "localhost" here so we don't append NULL to address.
8924         
8925         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8926         various addresses, including tcp with no explicit host.
8927
8928 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8929
8930         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8931         fix incorrect setting of .name_offset in the HeaderField (it was
8932         off by two bytes, positioned right after the name and typecode)
8933
8934         * bus/bus.c (bus_context_new, bus_context_unref): test before
8935         calling dbus_server_free_data_slot and _dbus_user_database_unref
8936         in case of an error.
8937
8938         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8939         by libdbus-gtool.
8940
8941 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8942
8943         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8944         _dbus_poll() instead of select().
8945
8946 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8947
8948         * bus/main.c (signal_handler): Reload the configuration files
8949         on SIGHUP.
8950         (main): Set up our SIGHUP handler.
8951
8952         * bus/bus.c (struct BusContext): Store the config file, user and
8953         fork flag in the BusContext.
8954         (process_config_first_time_only): Added.  Contains the code
8955         (previously in bus_context_new) for setting up the BusContext from
8956         the BusConfigParser that should only be run the first time the
8957         config files are read.
8958         (process_config_every_time): Added.  Contains the code (previously
8959         in bus_context_new) for setting up the BusContext from the
8960         BusConfigParser that should be run every time the config files are
8961         read.
8962         (load_config): Added.  Builds a BusConfigParser from the config
8963         files and passes the resulting structure off to
8964         process_config_first_time_only (assuming this is the first time)
8965         and process_config_every_time.
8966         (bus_context_new): All of the config-related code has been moved
8967         to process_config_first_time_only and process_config_every_time.
8968         Now this function just does the non-config-related initializations
8969         and calls load_config.
8970         (bus_context_reload_config): Added.
8971
8972 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8973
8974         * bus/driver.c (bus_driver_handle_get_service_owner):
8975         implement a GetServiceOwner method.
8976         * doc/dbus-specification.xml: document it.
8977         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8978         
8979         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8980         implement, using the bus GetServiceOwner method.
8981
8982         * test/glib/test-dbus-glib.c:
8983         use dbus_gproxy_new_for_service_owner so that we can receive the
8984         signal. 
8985
8986 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8987
8988         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8989         dbus/dbus-message.c, dbus/dbus-protocol.h
8990         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8991
8992         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8993         dbus/dbus-message.c, dbus/dbus-protocol.h
8994         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8995
8996         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8997         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8998         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8999
9000         * doc/dbus-specification.xml (Header Fields Table):
9001         s/SERVICE/DESTINATION
9002         s/SENDER_SERVICE/SENDER
9003
9004
9005 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9006
9007         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9008         a few seconds.
9009
9010 2004-04-13  Michael Meeks  <michael@ximian.com>
9011
9012         * glib/dbus-gobject.c (handle_introspect): split out
9013         (introspect_properties): this.
9014         (handle_introspect): implement this.
9015
9016         * test/glib/Makefile.am: use the absolute path so the bus
9017         daemon's chdir ("/") doesn't kill us dead.
9018
9019         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9020
9021 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9022
9023         * bus/config-parser.c (struct BusConfigParser): Added
9024         included_files field.
9025         (seen_include): Added.  Checks whether or not a file has already
9026         been included by any parent BusConfigParser.
9027         (bus_config_parser_new): Copy the parent's included_files.
9028         (include_file): Track which files have been included, and fail on
9029         circular inclusions.
9030         (process_test_valid_subdir): Changed printf to report if we are
9031         testing valid or invalid conf files.
9032         (all_are_equiv): Changed printf to be a bit clearer about
9033         what we are actually doing.
9034         (bus_config_parser_test): Test invalid configuration files.
9035
9036 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9037
9038         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9039         argument.  If non-null, the newly-constructed BusConfigParser will
9040         be initialized with the parent's BusLimits instead of the default
9041         values.
9042         (include_file): When including a config file, pass in
9043         the current parser as the parent and then copy the BusLimits
9044         from the included BusConfigParser pack to the current parser.
9045         (process_test_valid_subdir): Renamed from process_test_subdir.
9046         (process_test_equiv_subdir): Added.  Walks through a directory,
9047         descending into each subdirectory and loading the config files
9048         it finds there.  If any subdirectory contains two config files
9049         that don't produce identical BusConfigParser structs, fail.
9050         For now, the BusConfigParser's BusPolicies are not compared.
9051         (bus_config_parser_test): Call both process_test_valid_subdir and
9052         process_test_equiv_subdir.
9053
9054         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9055         argument and pass it along to the call to bus_config_parser_new.
9056         Also made a few small changes to allow this code to compile.
9057
9058         * bus/config-loader-expat.c (bus_config_load): Take a parent
9059         argument and pass it along to the call to bus_config_parser_new.
9060
9061         * bus/bus.c (bus_context_new): Load the config file
9062         with a NULL parent argument.
9063
9064 2004-03-29  Michael Meeks  <michael@ximian.com>
9065
9066         * glib/dbus-gobject.c (introspect_properties): split
9067         out, fix mangled 'while' flow control.
9068         (introspect_signals): implement.
9069         (handle_introspect): update.
9070
9071 2004-03-29  Michael Meeks  <michael@ximian.com>
9072
9073         * glib/dbus-gobject.c (set_object_property): split out / 
9074         re-work, use the property type, and not the message type(!)
9075         (get_object_property): ditto.
9076
9077         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9078         (dbus_gvalue_marshal): make this code re-usable, needed
9079         for signals too, also on both proxy and server side.
9080         Re-write for more efficiency / readability.
9081
9082 2004-03-29  Michael Meeks  <michael@ximian.com>
9083
9084         * dbus/dbus-message.c
9085         (dbus_message_new_error_printf): impl.
9086
9087         * dbus/dbus-connection.c
9088         (dbus_connection_unregister_object_path): fix warning.
9089
9090         * configure.in: fix no-mono-installed situation.
9091
9092 2004-03-27  Havoc Pennington  <hp@redhat.com>
9093
9094         Patch from Timo Teräs:
9095         
9096         * tools/dbus-send.c (main): if --print-reply, assume type is
9097         method call; support boolean type args
9098         
9099         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9100         bunch of memleak and logic bugs
9101         
9102 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9103
9104         * mono/Arguments.cs:
9105         * mono/Introspector.cs:
9106         * mono/Handler.cs:
9107         * mono/InterfaceProxy.cs:
9108         * mono/Message.cs
9109         * mono/ProxyBuilder.cs:
9110         * mono/Service.cs:
9111         Added InterfaceProxy class to avoid building proxies for every
9112         object.
9113
9114         * dbus-message.h:
9115         * dbus-message.c (dbus_message_append_args_valist)
9116         (dbus_message_iter_get_object_path)
9117         (dbus_message_iter_get_object_path_array)
9118         (dbus_message_iter_append_object_path)
9119         (dbus_message_iter_append_object_path_array):
9120         Added object_path iter functions to handle OBJECT_PATH arguments
9121         
9122 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9123
9124         First checkin of mono bindings.
9125         * configure.in:
9126         * Makefile.am:
9127         Build stuff for the bindings
9128         * dbus-sharp.pc.in: Added for pkgconfig
9129         
9130 2004-03-21  Havoc Pennington  <hp@redhat.com>
9131
9132         * test/test-service.c (main): remove debug spew
9133
9134 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9135
9136         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9137         arrays
9138
9139         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9140         (dbus_message_iter_init_array_iterator)
9141         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9142         indicate whether the iterator is empty
9143
9144         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9145         warnings
9146
9147 2004-03-19  Havoc Pennington  <hp@redhat.com>
9148
9149         * NEWS: 0.21 updates
9150
9151         * configure.in: 0.21
9152
9153         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9154         
9155         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9156         you don't need pyrex to make dist
9157
9158         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9159         sources; run moc
9160         
9161 2004-03-18  Richard Hult  <richard@imendio.com>
9162
9163         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9164         (dbus_message_set_auto_activation): Add doxygen docs.
9165
9166 2004-03-16  Richard Hult  <richard@imendio.com>
9167
9168         * bus/activation.c: (bus_activation_service_created),
9169         (bus_activation_send_pending_auto_activation_messages),
9170         (bus_activation_activate_service):
9171         * bus/activation.h:
9172         * bus/dispatch.c: (bus_dispatch),
9173         (check_nonexistent_service_auto_activation),
9174         (check_service_auto_activated),
9175         (check_segfault_service_auto_activation),
9176         (check_existent_service_auto_activation), (bus_dispatch_test):
9177         * bus/driver.c: (bus_driver_handle_activate_service):
9178         * bus/services.c: (bus_registry_acquire_service):
9179         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9180         (dbus_message_get_auto_activation):
9181         * dbus/dbus-message.h:
9182         * dbus/dbus-protocol.h: Implement auto-activation.
9183         
9184         * doc/dbus-specification.xml: Add auto-activation to the spec.
9185
9186 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9187
9188         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9189         fix a bug with CUSTOM types.
9190
9191         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9192         a unit test for this bug (used to fail).
9193
9194 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9195
9196         * bus/activation.c:
9197         (babysitter_watch_callback): notify all pending activations waiting for
9198           the same exec that the activation failed.
9199         (bus_activation_activate_service): shortcut the activation if we 
9200           already waiting for the same executable to start up.
9201
9202 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9203
9204         * bus/activation.c: 
9205         - Added service file reloading. 
9206           Each service files directory is kept in an hash table in 
9207           BusActivation and each BusActivationEntry knows what .service-file it
9208           was read from. So when you try to activate a service the bus will 
9209           check if it's been updated, removed or if new .service-files has 
9210           been installed.
9211         - Test code at the bottom for the service file reloading.
9212         * bus/test-main.c: (main):
9213         * bus/test.h:
9214         - added service reloading test.
9215         * dbus/dbus-sysdeps.c: 
9216         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9217
9218 2004-03-08  Michael Meeks  <michael@ximian.com>
9219
9220         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9221         bail immediately if disconnected, to avoid busy loop.
9222
9223         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9224         cleanup cut/paste/inefficiency.
9225
9226 2004-03-01  David Zeuthen  <david@fubar.dk>
9227
9228         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9229         bug where args were used twice. This bug resulted in a segfault
9230         on a Debian/PPC system when starting the messagebus daemon. Include
9231         dbus-sysdeps.h for DBUS_VA_COPY
9232
9233         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9234
9235         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9236         appropriate va_copy implementation. From GLib
9237         
9238 2004-02-24  Joe Shaw  <joe@ximian.com>
9239
9240         * bus/services.c (bus_registry_acquire_service): We need to pass
9241         in the service name to dbus_set_error() to prevent a crash.
9242
9243 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9244
9245         * AUTHORS: Reveal my True identity.
9246
9247 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9248
9249         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9250         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9251
9252 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9253
9254         * doc/TODO: Added not about better error check of configuration files.
9255
9256 2003-12-02  Richard Hult  <richard@imendio.com>
9257
9258         * Update AFL version to 2.0 throughout the source files to reflect
9259         the update that was done a while ago.
9260
9261 2003-12-02  Richard Hult  <richard@imendio.com>
9262
9263         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9264         wrote_dict_key to FALSE on the iter that the dict is appended to,
9265         just like when appending other types. Fixes a bug where a dict
9266         couldn't be put inside a dict.
9267         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9268         (message_iter_test, _dbus_message_test): Add test case for dict
9269         inside dict.
9270
9271 2003-12-01  David Zeuthen  <david@fubar.dk>
9272
9273         * python/dbus.py: Add the actual message when calling the reciever
9274         of a signal such that parameters can be inspected. Add the method
9275         remove_signal_receiver
9276         
9277 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9278
9279         * bus/*.[ch]:
9280         * dbus/*.[ch]:
9281         * glib/*.[ch]: Made ref functions return the pointer
9282
9283 2003-11-25  Zack Rusin  <zack@kde.org>
9284
9285         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9286
9287         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9288         wrappers,
9289
9290         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9291         the Integrator and to better fit with the server,
9292
9293 2003-11-24  Zack Rusin  <zack@kde.org>
9294
9295         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9296         the integrator handles it now
9297
9298         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9299         since QTimer wasn't really meant to be used the way DBusTimeout is
9300
9301 2003-11-24  Zack Rusin  <zack@kde.org>
9302
9303         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9304         Integrator class which integrates D-BUS with the Qt event loop,
9305
9306         * qt/connection.h, qt/connection.cpp: Move all the code which
9307         was dealing with D-BUS integration to the Integrator class,
9308         and start using Integrator,
9309
9310 2003-11-23  Zack Rusin  <zack@kde.org>
9311
9312         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9313         wrapper
9314
9315         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9316         switching namespaces to DBusQt, reworking the class,
9317
9318         * Makefile.cvs: switching dependencies so that it matches KDE 
9319         schematics,
9320         
9321         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9322         the library
9323
9324 2003-11-19  Havoc Pennington  <hp@redhat.com>
9325
9326         * NEWS: update
9327
9328         * configure.in: bump version to 0.20
9329
9330         * configure.in (have_qt): add yet another place to look for qt
9331         (someone hand trolltech a .pc file...)
9332
9333 2003-11-01  Havoc Pennington  <hp@redhat.com>
9334
9335         * doc/dbus-specification.xml: add state machine docs on the auth
9336         protocol; just a first draft, I'm sure it's wrong.      
9337
9338 2003-10-28  David Zeuthen  <david@fubar.dk>
9339
9340         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9341         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9342         
9343 2003-10-28  Havoc Pennington  <hp@redhat.com>
9344
9345         * dbus/dbus-message.c (get_next_field): delete unused function
9346
9347 2003-10-28  Havoc Pennington  <hp@redhat.com>
9348
9349         * bus/expirelist.c (do_expiration_with_current_time): detect
9350         failure of the expire_func due to OOM
9351
9352         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9353
9354         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9355         NoReply error that's now created by the bus when the service exits
9356
9357 2003-10-28  Havoc Pennington  <hp@redhat.com>
9358
9359         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9360         tests for set_path, set_interface, set_member, etc.
9361
9362         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9363
9364         * dbus/dbus-message.c (set_string_field): always just delete and
9365         re-append the field; accept NULL for deletion
9366         (re_align_fields_recurse): reimplement
9367         
9368 2003-10-26  Havoc Pennington  <hp@redhat.com>
9369
9370         * dbus/dbus-connection.c: fix docs to properly describe the
9371         disconnected message
9372         (_dbus_connection_notify_disconnected): remove this function; 
9373         we can't synchronously add the disconnected message, we have to 
9374         do it after we've queued any remaining real messages
9375         (_dbus_connection_get_dispatch_status_unlocked): queue the
9376         disconnect message only if the transport has finished queueing all
9377         its real messages and is disconnected.
9378         (dbus_connection_disconnect): update the dispatch status here
9379
9380 2003-10-22  Havoc Pennington  <hp@redhat.com>
9381
9382         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9383
9384         * bus/connection.c (bus_transaction_send_from_driver): set the
9385         destination to the connection's base service
9386
9387 2003-10-20  Havoc Pennington  <hp@redhat.com>
9388
9389         hmm, make check is currently not passing.
9390         
9391         * doc/dbus-specification.xml: add requirement that custom type
9392         names follow the same rules as interface names.
9393
9394         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9395         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9396         'map'
9397
9398         * doc/dbus-specification.xml: update type codes to match
9399         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9400         CUSTOM. Add type OBJECT_PATH to the spec.
9401
9402 2003-10-17  Havoc Pennington  <hp@redhat.com>
9403
9404         * bus/driver.c (create_unique_client_name): use "." as separator
9405         in base service names instead of '-'
9406
9407         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9408         byte at the end of the string
9409
9410         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9411         optimization macros since string validation seems to be a slow
9412         point.
9413         
9414         * doc/dbus-specification.xml: restrict valid
9415         service/interface/member/error names. Add test suite code for the
9416         name validation.
9417
9418         * dbus/dbus-string.c: limit service/interface/member/error names 
9419         to [0-9][A-Z][a-z]_
9420
9421         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9422         format arg to verbose spew
9423
9424         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9425         memory, return instead of g_error
9426
9427         * test/test-service.c (path_message_func): support emitting a
9428         signal on request
9429
9430         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9431         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9432         assuming the activation bus was the session bus so that services
9433         started manually will still register.
9434         (init_connections_unlocked): fix so that in OOM situation we get
9435         the same semantics when retrying the function
9436         
9437         * test/test-service.c (main): change to use path registration, to
9438         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9439         than DBUS_BUS_SESSION
9440
9441 2003-10-16  Havoc Pennington  <hp@redhat.com>
9442
9443         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9444
9445         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9446         coverage of the tests
9447         (coverage-report.txt): don't move the .da and .bbg files around
9448
9449 2003-10-16  Havoc Pennington  <hp@redhat.com>
9450
9451         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9452         to put there
9453
9454 2003-10-16  Havoc Pennington  <hp@redhat.com>
9455
9456         * bus/connection.c (bus_pending_reply_expired): either cancel or
9457         execute, not both
9458         (bus_connections_check_reply): use unlink, not remove_link, as we
9459         don't want to free the link; fixes double free mess
9460
9461         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9462         where no reply was received
9463
9464         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9465         fix a refcount leak
9466
9467         * bus/signals.c (match_rule_matches): add special cases for the
9468         bus driver, so you can match on sender/destination for it.
9469
9470         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9471         DBUS_PRINT_BACKTRACE is set
9472
9473         * dbus/dbus-internals.c: add pid to assertion failure messages
9474
9475         * dbus/dbus-connection.c: add message type code to the debug spew
9476
9477         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9478         sender=foo not service=foo
9479
9480         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9481         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9482         DBUS_ACTIVATION_ADDRESS instead
9483
9484         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9485         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9486
9487         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9488         context struct
9489
9490         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9491         (dbus_message_iter_get_object_path_array): new function (half
9492         finished, disabled for the moment)
9493         
9494         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9495         DBUS_MESSAGE_TYPE_ERROR
9496
9497         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9498         avoid redirecting stderr to /dev/null
9499         (babysit): close stdin if not doing the "exit_with_session" thing
9500
9501         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9502         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9503         stdout/stdin, so things don't get confused
9504         
9505         * bus/system.conf.in: fix to allow replies, I modified .conf
9506         instead of .conf.in again.
9507
9508 2003-10-14  David Zeuthen  <david@fubar.dk>
9509
9510         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9511         argtype to arg_type when raising unknown arg type exception.
9512         Changed type list to reflect the changes in dbus-protocol.h so 
9513         the bindings actually work.
9514
9515 2003-10-14  Havoc Pennington  <hp@redhat.com>
9516
9517         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9518         to have a bug keeping it from outputting the .da files sometimes
9519         (string_get_string): don't append garbage nul bytes to the string.
9520
9521 2003-10-15  Seth Nickell  <seth@gnome.org>
9522
9523         * python/Makefile.am:
9524
9525         Include dbus_h_wrapper.h in the dist tarball.
9526
9527 2003-10-14  Havoc Pennington  <hp@redhat.com>
9528
9529         * bus/bus.c (bus_context_check_security_policy): revamp this to
9530         work more sanely with new policy-based requested reply setup
9531
9532         * bus/connection.c (bus_transaction_send_from_driver): set bus
9533         driver messages as no reply
9534
9535         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9536         requested_reply attribute on allow/deny rules
9537
9538         * bus/system.conf: add <allow requested_reply="true"/>
9539
9540         * bus/driver.c (bus_driver_handle_message): fix check for replies
9541         sent to the bus driver, which was backward. How did this ever work
9542         at all though? I think I'm missing something.
9543
9544         * dbus/dbus-message.c (decode_header_data): require error and
9545         method return messages to have a reply serial field to be valid
9546         (_dbus_message_loader_queue_messages): break up this function;
9547         validate that reply serial and plain serial are nonzero; 
9548         clean up the OOM/error handling.
9549         (get_uint_field): don't return -1 from this
9550         (dbus_message_create_header): fix signed/unsigned bug
9551
9552         * bus/connection.c (bus_connections_expect_reply): save serial of
9553         the incoming message, not reply serial
9554
9555 2003-10-14  Havoc Pennington  <hp@redhat.com>
9556
9557         * bus/connection.c: implement pending reply tracking using
9558         BusExpireList
9559
9560         * bus/bus.c (bus_context_check_security_policy): verify that a
9561         reply is pending in order to allow a reply to be sent. Deny 
9562         messages of unknown type.
9563
9564         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9565
9566         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9567         (bus_context_get_reply_timeout): new
9568
9569 2003-10-13  Seth Nickell  <seth@gnome.org>
9570
9571         * python/Makefile.am:
9572
9573         Pass "make distcheck": remove a couple files from DIST_FILES
9574         that weren't included in the final version.
9575
9576 2003-10-12  Havoc Pennington  <hp@pobox.com>
9577
9578         Added test code that 1) starts an actual bus daemon and 2) uses
9579         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9580         more testing possible, but this is the basic framework.
9581         
9582         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9583         empty proxy lists from the proxy list hash
9584
9585         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9586         couple of return_if_fail checks
9587
9588         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9589         to allocate, so everything is cleared to NULL as it should be.
9590
9591         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9592         source as data to dbus_connection_set_timeout_functions() as the 
9593         timeout functions expected
9594
9595         * test/glib/run-test.sh: add a little script to start up a message
9596         bus and run tests using it
9597
9598         * tools/dbus-launch.1: updates
9599
9600         * tools/dbus-launch.c (main): add --config-file option
9601
9602         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9603         that could never be reached.
9604
9605         * dbus/dbus-message.c (dbus_message_new_method_return) 
9606         (dbus_message_new_error, dbus_message_new_signal): set the
9607         no-reply-expected flag on all these. Redundant, but may
9608         as well be consistent.
9609
9610 2003-10-11  Havoc Pennington  <hp@pobox.com>
9611
9612         * test/decode-gcov.c (function_solve_graph): make broken block
9613         graph a nonfatal error since it seems to be broken. Need to debug
9614         this.
9615
9616         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9617         can't just check type > INVALID < LAST anymore
9618
9619         * dbus/dbus-message.c (dbus_message_get_signature): new function
9620         (dbus_message_has_signature): new function
9621         (struct DBusMessage): add signature field (right now it isn't sent
9622         over the wire, just generated on the fly)
9623         (dbus_message_copy): copy the signature, and init strings to
9624         proper length to avoid some reallocs
9625         (dbus_message_iter_init_array_iterator): return void, since it
9626         can't fail
9627         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9628         (_dbus_message_loader_queue_messages): add silly temporary hack to
9629         fill in message->signature on load
9630
9631         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9632         characters, so they are relatively human-readable.
9633
9634 2003-10-11  Havoc Pennington  <hp@pobox.com>
9635
9636         * dbus/dbus-message.c (_dbus_message_test): add more test
9637         coverage, but #if 0 for now since they uncover a bug 
9638         not fixed yet; I think in re_align_field_recurse()
9639         (re_align_field_recurse): add FIXME about broken assertion
9640
9641         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9642
9643         * bus/connection.c: share a couple code bits with expirelist.c
9644
9645         * bus/expirelist.h, bus/expirelist.c: implement a generic
9646         expire-items-after-N-seconds facility, was going to share between
9647         expiring connections and replies, decided not to use for expiring
9648         connections for now.
9649
9650         * COPYING: include AFL 2.0 (still need to change all the file headers)
9651
9652 2003-10-09  Havoc Pennington  <hp@redhat.com>
9653
9654         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9655         gcc 3.3. Not that we do anything about it yet.
9656
9657         * bus/signals.c (bus_match_rule_parse): impose max length on the
9658         match rule text
9659
9660         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9661
9662 2003-10-09  Havoc Pennington  <hp@redhat.com>
9663
9664         Make matching rules theoretically work (add parser).
9665         
9666         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9667         the case where destination is explicitly specified as bus driver
9668         and someone else is eavesdropping.
9669         
9670         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9671         definition of eavesdropping and assertion
9672
9673         * tools/dbus-send.c (main): use dbus_message_type_from_string
9674
9675         * bus/signals.c (bus_match_rule_parse): implement
9676
9677         * dbus/dbus-message.c (dbus_message_type_from_string): new
9678
9679         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9680
9681 2003-10-02  Havoc Pennington  <hp@pobox.com>
9682
9683         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9684         dbus_gproxy_oneway_call
9685
9686         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9687         (dbus_server_setup_with_g_main): fix to allow calling them more
9688         than once on the same args
9689         (dbus_bus_get_with_g_main): new function
9690
9691 2003-10-02  Havoc Pennington  <hp@redhat.com>
9692
9693         * doc/dbus-tutorial.xml: write some stuff
9694
9695 2003-09-29  Havoc Pennington  <hp@pobox.com>
9696
9697         * configure.in: split checks for Doxygen from XML docs, check for
9698         xmlto
9699
9700         * doc/Makefile.am: XML-ify all the docs, and add a blank
9701         dbus-tutorial.xml
9702
9703 2003-09-29  Havoc Pennington  <hp@pobox.com>
9704
9705         * Merge dbus-object-names branch. To see the entire patch 
9706         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9707         it's huuuuge though.
9708         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9709         
9710 2003-09-28  Havoc Pennington  <hp@pobox.com>
9711
9712         * HACKING: update to reflect new server
9713
9714 2003-09-26  Seth Nickell  <seth@gnome.org>
9715
9716         * python/dbus.py:
9717         * python/examples/example-signals.py:
9718
9719         Start implementing some notions of signals. The API
9720         is really terrible, but they sort of work (with the
9721         exception of being able to filter by service, and to
9722         transmit signals *as* a particular service). Need to
9723         figure out how to make messages come from the service
9724         we registered :-(
9725         
9726         * python/dbus_bindings.pyx.in:
9727
9728         Removed duplicate message_handler callbacks.
9729         
9730 2003-09-25  Havoc Pennington  <hp@redhat.com>
9731
9732         * bus/session.conf.in: fix my mess
9733
9734 2003-09-25  Havoc Pennington  <hp@pobox.com>
9735
9736         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9737
9738 2003-09-25  Seth Nickell  <seth@gnome.org>
9739
9740         * python/examples/example-service.py:
9741
9742         Johan notices complete wrong code in example-service, but
9743         completely wrong in a way that works exactly the same (!).
9744         Johan is confused, how could this possibly work? Example
9745         code fails to serve purpose of making things clear.
9746         Seth fixes.
9747
9748 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9749
9750         * doc/dbus-specification.sgml: don't require header fields
9751         to be 4-byte aligned and specify that fields should be
9752         distinguished from padding by the fact that zero is not
9753         a valid field name.
9754         
9755         * doc/TODO: remove re-alignment item and add item to doc
9756         the OBJECT_PATH type.
9757         
9758         * dbus/dbus-message.c:
9759         (HeaderField): rename the original member to value_offset
9760         and introduce a name_offset member to keep track of where
9761         the field actually begins.
9762         (adjust_field_offsets): remove.
9763         (append_int_field), (append_uint_field),
9764         (append_string_field): don't align the start of the header
9765         field to a 4-byte boundary.
9766         (get_next_field): impl finding the next marhsalled field
9767         after a given field.
9768         (re_align_field_recurse): impl re-aligning a number of
9769         already marshalled fields.
9770         (delete_field): impl deleting a field of any type and
9771         re-aligning any following fields.
9772         (delete_int_or_uint_field), (delete_string_field): remove.
9773         (set_int_field), (set_uint_field): no need to re-check
9774         that we have the correct type for the field.
9775         (set_string_field): ditto and impl re-aligning any
9776         following fields.
9777         (decode_header_data): update to take into account that
9778         the fields aren't 4-byte aligned any more and the new
9779         way to distinguish padding from header fields. Also,
9780         don't exit when there is too much header padding.
9781         (process_test_subdir): print the directory.
9782         (_dbus_message_test): add test to make sure a following
9783         field is re-aligned correctly after field deletion.
9784         
9785         * dbus/dbus-string.[ch]:
9786         (_dbus_string_insert_bytes): rename from insert_byte and
9787         allow the insert of multiple bytes.
9788         (_dbus_string_test): test inserting multiple bytes.
9789
9790         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9791         warning note to docs about having to re-align any
9792         marshalled values following the string.
9793         
9794         * dbus/dbus-message-builder.c:
9795         (append_string_field), (_dbus_message_data_load):
9796         don't align the header field.
9797         
9798         * dbus/dbus-auth.c: (process_test_subdir): print the
9799         directory.
9800         
9801         * test/break-loader.c: (randomly_add_one_byte): upd. for
9802         insert_byte change.
9803         
9804         * test/data/invalid-messages/bad-header-field-alignment.message:
9805         new test case.
9806         
9807         * test/data/valid-messages/unknown-header-field.message: shove
9808         a dict in the unknown field.
9809
9810 2003-09-25  Seth Nickell  <seth@gnome.org>
9811
9812         * python/dbus.py:
9813         * python/dbus_bindings.pyx.in:
9814
9815         Handle return values.
9816         
9817         * python/examples/example-client.py:
9818         * python/examples/example-service.py:
9819
9820         Pass back return values from the service to the client.
9821         
9822 2003-09-24  Seth Nickell  <seth@gnome.org>
9823
9824         * python/dbus.py:
9825
9826         Connect Object methods (when you are sharing an object) up... pass
9827         in a list of methods to be shared. Sharing all the methods just
9828         worked out too weird. You can now create nice Services over the
9829         DBus in Python. :-)
9830         
9831         * python/dbus_bindings.pyx.in:
9832
9833         Keep references to user_data tuples passed into C functions so 
9834         Python doesn't garbage collect on us.
9835
9836         Implement MethodReturn and Error subclasses of Message for creating
9837         DBusMessage's of those types.
9838         
9839         * python/examples/example-client.py:
9840         * python/examples/example-service.py:
9841
9842         Simple example code showing both how create DBus services and objects,
9843         and how to use them.
9844
9845 2003-09-23  Havoc Pennington  <hp@pobox.com>
9846
9847         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9848
9849 2003-09-23  Havoc Pennington  <hp@redhat.com>
9850
9851         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9852         (dbus_gproxy_disconnect_signal): implement
9853         (dbus_gproxy_manager_remove_signal_match): implement
9854         (dbus_gproxy_manager_add_signal_match): implement
9855         (dbus_gproxy_oneway_call): implement
9856
9857 2003-09-23  Havoc Pennington  <hp@pobox.com>
9858
9859         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9860         subclass. This means dropping the transparent thread safety of the
9861         proxy; you now need a separate proxy per-thread, or your own
9862         locking on the proxy. Probably right anyway.
9863         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9864
9865 2003-09-22  Havoc Pennington  <hp@redhat.com>
9866
9867         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9868
9869 2003-09-21  Seth Nickell  <seth@gnome.org>
9870
9871         First checkin of the Python bindings.
9872         
9873         * python/.cvsignore:
9874         * python/Makefile.am:
9875         * python/dbus_bindings.pyx.in:
9876         * python/dbus_h_wrapper.h:
9877
9878         Pieces for Pyrex to operate on, building a dbus_bindings.so
9879         python module for low-level access to the DBus APIs.
9880         
9881         * python/dbus.py:
9882
9883         High-level Python module for accessing DBus objects.
9884
9885         * configure.in:
9886         * Makefile.am:
9887
9888         Build stuff for the python bindings.
9889
9890         * acinclude.m4:
9891
9892         Extra macro needed for finding the Python C header files.
9893
9894 2003-09-21  Havoc Pennington  <hp@pobox.com>
9895
9896         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9897         implementing the proxy manager, didn't get very far.
9898
9899         * dbus/dbus-bus.c (dbus_bus_add_match): new
9900         (dbus_bus_remove_match): new
9901
9902         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9903         path_name argument; adjust the other not-yet-implemented 
9904         gproxy constructors to be what I think they should be.
9905
9906 2003-09-21  Havoc Pennington  <hp@pobox.com>
9907
9908         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9909         by default for message bus connections.
9910
9911         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9912         exit_on_disconnect flag is set and we process the disconnected
9913         signal.
9914         (dbus_connection_set_exit_on_disconnect): new function
9915
9916 2003-09-21  Havoc Pennington  <hp@pobox.com>
9917
9918         Get matching rules mostly working in the bus; only actually
9919         parsing the rule text remains. However, the client side of
9920         "signal connections" hasn't been started, this patch is only the
9921         bus side.
9922         
9923         * dbus/dispatch.c: fix for the matching rules changes
9924         
9925         * bus/driver.c (bus_driver_handle_remove_match)
9926         (bus_driver_handle_add_match): send an ack reply from these
9927         method calls
9928
9929         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9930         arguments, reported by Seth Nickell
9931
9932         * bus/config-parser.c (append_rule_from_element): support
9933         eavesdrop=true|false attribute on policies so match rules 
9934         can be prevented from snooping on the system bus.
9935
9936         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9937         and "destination" in attribute names; fix some docs bugs; 
9938         add eavesdrop=true|false attribute
9939
9940         * bus/driver.c (bus_driver_handle_add_match)
9941         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9942         messages
9943
9944         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9945         rid of broadcast service concept, signals are just always broadcast
9946
9947         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9948         mostly implement matching rules stuff (currently only exposed as signal
9949         connections)
9950
9951 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9952
9953         * doc/dbus-specification.sgml: Change the header field name
9954         to be an enum and update the rest of the spec to reference
9955         the fields using the conventinal name.
9956
9957         * dbus/dbus-protocol.h: update to reflect the spec.
9958
9959         * doc/TODO: add item to remove the 4 byte alignment requirement.
9960         
9961         * dbus/dbus-message.c: Remove the code to generalise the
9962         header/body length and serial number header fields as named
9963         header fields so we can reference field names using the 
9964         protocol values.
9965         (append_int_field), (append_uint_field), (append_string_field):
9966         Append the field name as a byte rather than four chars.
9967         (delete_int_or_uint_field), (delete_string_field): reflect the
9968         fact that the field name and typecode now occupy 4 bytes instead
9969         of 8.
9970         (decode_string_field), (decode_header_data): update to reflect
9971         protocol changes and move the field specific encoding from
9972         decode_string_field() back into decode_header_data().
9973         
9974         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9975         Add utility to aid debugging.
9976         
9977         * dbus/dbus-message-builder.c:
9978         (append_string_field), (_dbus_message_data_load): Update to
9979         reflect protocol changes; Change the FIELD_NAME directive
9980         to HEADER_FIELD and allow it to take the field's conventional
9981         name rather than the actual value.
9982         
9983         * test/data/*/*.message: Update to use HEADER_FIELD instead
9984         of FIELD_NAME; Always align the header on an 8 byte boundary
9985         *before* updating the header length.
9986
9987 2003-09-15  Havoc Pennington  <hp@pobox.com>
9988
9989         * dbus/dbus-pending-call.c: add the get/set object data
9990         boilerplate as for DBusConnection, etc. Use generic object data
9991         for the notify callback.
9992
9993         * glib/dbus-gparser.c (parse_node): parse child nodes
9994
9995         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9996         
9997         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9998         contain functions shared between the convenience lib and the
9999         installed lib
10000
10001         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10002         -export-symbols-regex to the GLib library
10003
10004         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10005         fix the locking in here, and add a default handler for
10006         Introspect() that just returns sub-nodes.
10007
10008 2003-09-14  Havoc Pennington  <hp@pobox.com>
10009
10010         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10011         rather than gfoo consistent
10012
10013         * glib/dbus-gproxy.h: delete for now, move contents to
10014         dbus-glib.h, because the include files don't work right since we
10015         aren't in the dbus/ subdir.
10016         
10017         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10018         (dbus_gproxy_end_call): finish
10019         (dbus_gproxy_begin_call): finish
10020
10021         * glib/dbus-gmain.c (dbus_set_g_error): new
10022
10023         * glib/dbus-gobject.c (handle_introspect): include information
10024         about child nodes in the introspection
10025
10026         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10027         function to help in implementation of introspection
10028
10029         * dbus/dbus-object-tree.c
10030         (_dbus_object_tree_list_registered_and_unlock): new function
10031
10032 2003-09-12  Havoc Pennington  <hp@pobox.com>
10033
10034         * glib/dbus-gidl.h: add common base class for all the foo_info
10035         types
10036
10037         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10038         similar to kdcop
10039
10040         * test/Makefile.am: try test srcdir -ef . in addition to test
10041         srcdir = ., one of them should work (yeah lame)
10042         
10043         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10044         library
10045         
10046         * glib/dbus-gparser.h: make description_load routines return
10047         NodeInfo* not Parser*
10048
10049         * Makefile.am (SUBDIRS): build test dir after all library dirs
10050
10051         * configure.in: add GTK+ detection
10052
10053 2003-09-07  Havoc Pennington  <hp@pobox.com>
10054
10055         * Make Doxygen contented.
10056
10057 2003-09-07  Havoc Pennington  <hp@pobox.com>
10058
10059         * doc/dbus-specification.sgml: more updates
10060
10061 2003-09-06  Havoc Pennington  <hp@pobox.com>
10062
10063         * doc/dbus-specification.sgml: partial updates
10064
10065         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10066         zillionth time; hopefully I edited the right file this time.
10067
10068         * bus/config-parser.c (append_rule_from_element): support
10069         send_type, send_path, receive_type, receive_path
10070
10071         * bus/policy.c: add message type and path to the list of things
10072         that can be "firewalled"
10073
10074 2003-09-06  Havoc Pennington  <hp@pobox.com>
10075
10076         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10077         (dbus_connection_register_object_path): make this not handle
10078         messages to paths below the given path
10079
10080 2003-09-03  Havoc Pennington  <hp@pobox.com>
10081
10082         * test/glib/Makefile.am: add this with random glib-linked test
10083         programs
10084
10085         * glib/Makefile.am: remove the random test programs from here,
10086         leave only the unit tests
10087
10088         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10089         uscore/javacaps conversion, and fix     
10090         (get_object_property, set_object_property): change to .NET
10091         convention for mapping props to methods, set_FooBar/get_FooBar, 
10092         since one language has such a convention we may as well copy it. 
10093         Plus real methods in either getFooBar or get_foo_bar style won't 
10094         collide with this convention.
10095
10096 2003-09-01  Havoc Pennington  <hp@pobox.com>
10097
10098         * glib/dbus-gparser.c: implement
10099
10100         * glib/dbus-gobject.c: start implementing skeletons support
10101
10102         * configure.in: when disabling checks/assert, also define
10103         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10104
10105 2003-09-01  Havoc Pennington  <hp@pobox.com>
10106
10107         * glib/Makefile.am: rearrange a bunch of files and get "make
10108         check" framework set up
10109
10110 2003-08-31  Havoc Pennington  <hp@pobox.com>
10111
10112         * fix build with --disable-tests
10113
10114 2003-08-30  Havoc Pennington  <hp@pobox.com>
10115
10116         * dbus/dbus-connection.c: purge DBusMessageHandler
10117
10118         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10119         use callbacks everywhere
10120
10121 2003-08-30  Havoc Pennington  <hp@pobox.com>
10122
10123         * test/data/valid-config-files/system.d/test.conf: change to 
10124         root for the user so warnings don't get printed
10125
10126         * dbus/dbus-message.c: add dbus_message_get_path,
10127         dbus_message_set_path
10128         
10129         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10130         dispatching to a path
10131
10132         * dbus/dbus-string.c (_dbus_string_validate_path): add
10133
10134         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10135         (_dbus_marshal_object_path): implement
10136
10137         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10138         to contain the path to the target object
10139         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10140         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10141
10142 2003-08-30  Havoc Pennington  <hp@pobox.com>
10143
10144         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10145
10146 2003-08-29  Havoc Pennington  <hp@pobox.com>
10147
10148         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10149         registered
10150         (struct DBusObjectSubtree): shrink this
10151         a lot, since we may have a lot of them
10152         (_dbus_object_tree_free_all_unlocked): implement
10153         (_dbus_object_tree_dispatch_and_unlock): implement
10154
10155 2003-08-29  Havoc Pennington  <hp@pobox.com>
10156
10157         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10158
10159 2003-08-28  Havoc Pennington  <hp@pobox.com>
10160
10161         purge DBusObjectID
10162         
10163         * dbus/dbus-connection.c: port to no ObjectID, create a
10164         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10165
10166         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10167         everything except UnregisterFunction and MessageFunction
10168         
10169         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10170         add DBUS_TYPE_OBJECT_PATH
10171         
10172         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10173         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10174         path-based object IDs
10175
10176 2003-08-25  Havoc Pennington  <hp@pobox.com>
10177
10178         Just noticed that dbus_message_test is hosed, I wonder when I
10179         broke that. I thought make check was passing earlier...
10180         
10181         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10182         container tree, will replace most of dbus-object-registry
10183
10184         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10185         screwup
10186
10187 2003-08-19  Havoc Pennington  <hp@pobox.com>
10188
10189         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10190         (dbus_message_is_error): fix this function
10191
10192         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10193         match
10194
10195         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10196         reflect clarified man page
10197         (bus_client_policy_check_can_send): ditto
10198         
10199         * bus/session.conf.in: fixup
10200
10201         * bus/system.conf.in: fixup
10202
10203 2003-08-18  Havoc Pennington  <hp@redhat.com>
10204
10205         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10206
10207         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10208         dumb bug created earlier (wrong order of args to
10209         decode_header_data())
10210         
10211         * tools/dbus-send.c: port
10212
10213         * tools/dbus-print-message.c (print_message): port
10214
10215         * test/data/*messages: port all messages over
10216         
10217         * dbus/dbus-message-builder.c: support including 
10218         message type
10219         
10220         * bus/driver.c: port over
10221         
10222         * bus/dispatch.c: port over to new stuff
10223
10224         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10225         rename disconnect signal to "Disconnected"
10226
10227 2003-08-17  Havoc Pennington  <hp@pobox.com>
10228
10229         This doesn't compile yet, but syncing up so I can hack on it from
10230         work. What are branches for if not broken code? ;-)
10231         
10232         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10233         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10234         DBUS_HEADER_FIELD_ERROR_NAME
10235         
10236         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10237         for the interface+member pairs
10238         (string_hash): change to use g_str_hash algorithm
10239         (find_direct_function, find_string_function): refactor these to
10240         share most code.
10241         
10242         * dbus/dbus-message.c: port all of this over to support 
10243         interface/member fields instead of name field
10244
10245         * dbus/dbus-object-registry.c: port over
10246         
10247         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10248         from _dbus_string_validate_name
10249
10250         * bus/dbus-daemon-1.1: change file format for the 
10251         <deny>/<allow> stuff to match new message naming scheme
10252
10253         * bus/policy.c: port over
10254
10255         * bus/config-parser.c: parse new format
10256         
10257 2003-08-16  Havoc Pennington  <hp@pobox.com>
10258
10259         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10260         broken assertion
10261
10262         * glib/dbus-gproxy.c: some hacking
10263
10264 2003-08-15  Havoc Pennington  <hp@redhat.com>
10265
10266         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10267
10268         * dbus/dbus-connection.c
10269         (dbus_connection_send_with_reply_and_block): factor out internals;
10270         change to convert any error replies to DBusError instead of 
10271         returning them as a message
10272
10273 2003-08-15  Havoc Pennington  <hp@pobox.com>
10274
10275         * dbus/dbus-connection.c, 
10276         dbus/dbus-pending-call.c: Finish the pending call stuff
10277
10278 2003-08-14  Havoc Pennington  <hp@redhat.com>
10279
10280         * dbus/dbus-pending-call.c: start on new object that will replace
10281         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10282         replies
10283
10284         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10285         with remote interfaces
10286
10287         * dbus/dbus-gidl.c: do the boring boilerplate in here
10288         
10289 2003-08-12  Havoc Pennington  <hp@pobox.com>
10290
10291         * bus/dispatch.c (bus_dispatch): make this return proper 
10292         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10293
10294         * dbus/dbus-errors.c (dbus_set_error): use
10295         _dbus_string_append_printf_valist
10296
10297         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10298         (_dbus_string_append_printf): new
10299
10300         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10301         UNKNOWN_METHOD
10302
10303         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10304         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10305         message is unhandled.
10306
10307 2003-08-11  Havoc Pennington  <hp@pobox.com>
10308
10309         * bus/test.c (client_disconnect_handler): change to return
10310         HANDLED (would have been REMOVE_MESSAGE)
10311
10312         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10313         HANDLED/NOT_YET_HANDLED instead of
10314         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10315         should be used.
10316
10317 2003-08-10  Havoc Pennington  <hp@pobox.com>
10318
10319         * tools/dbus-send.c (main): add --type argument, for now
10320         supporting only method_call and signal types.
10321
10322         * tools/dbus-print-message.c: print message type
10323
10324         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10325         init connection->objects
10326
10327         * doc/dbus-specification.sgml: fix sgml
10328
10329         * bus/*.c: port over to object-instance API changes
10330
10331         * test/test-service.c: ditto
10332         
10333         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10334         name, we will have to fix up the rest of the code to also handle
10335         this
10336         (dbus_message_new): generic message-creation call
10337         (set_string_field): allow appending name field
10338
10339 2003-08-06  Havoc Pennington  <hp@pobox.com>
10340
10341         * dbus/dbus-object-registry.c: implement signal connection 
10342         and dispatch
10343
10344         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10345
10346         * dbus/dbus-internals.c (_dbus_memdup): new function
10347
10348 2003-08-02  Havoc Pennington  <hp@pobox.com>
10349
10350         * dbus/dbus-message.c (dbus_message_get_no_reply)
10351         (dbus_message_set_no_reply): add these and remove
10352         set_is_error/get_is_error
10353
10354         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10355         remove the ERROR flag, since there's now an ERROR type
10356
10357 2003-08-01  Havoc Pennington  <hp@pobox.com>
10358
10359         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10360         implement
10361
10362         * dbus/dbus-message.c (dbus_message_get_type): new function
10363
10364         * doc/dbus-specification.sgml: add "type" byte to messages
10365
10366 2003-08-01  Havoc Pennington  <hp@pobox.com>
10367
10368         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10369         a message type enum to distinguish kinds of message
10370         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10371         that need not be replied to
10372
10373 2003-08-01  Havoc Pennington  <hp@pobox.com>
10374
10375         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10376         (unpack_8_octets): fix no-64-bit-int bug
10377
10378         * dbus/dbus-object-registry.c (validate_id): validate the 
10379         connection ID bits, not just the instance ID.
10380
10381         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10382         the connection-global 33 bits of the object ID
10383
10384         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10385         object ID in the new way
10386
10387         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10388         define server/client/instance bits.
10389
10390 2003-07-30  Havoc Pennington  <hp@pobox.com>
10391
10392         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10393         build
10394
10395 2003-07-13  Havoc Pennington  <hp@pobox.com>
10396
10397         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10398         fields to DBusObjectVTable and DBusObjectInfo
10399
10400 2003-07-12  Havoc Pennington  <hp@pobox.com>
10401
10402         * dbus/dbus-object-registry.c: implement unit test,
10403         fix bugs discovered in process
10404
10405         * dbus/dbus-connection.c: remove handler_table and
10406         register_handler(), add DBusObjectRegistry usage
10407
10408         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10409         (dbus_object_id_set_null): new functions
10410
10411 2003-07-08  Havoc Pennington  <hp@pobox.com>
10412
10413         * dbus/dbus-object.c: implement some of this
10414
10415         * dbus/dbus-object-registry.c
10416         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10417         param
10418         (_dbus_object_registry_new): handle OOM
10419
10420 2003-07-08  Havoc Pennington  <hp@pobox.com>
10421
10422         * dbus/dbus-object.h: sketch out an API for registering objects
10423         with a connection, that allows us to use as little as 24 bytes
10424         per object and lets application code represent an object in 
10425         any conceivable way.
10426
10427         * dbus/dbus-object-registry.c: implement the hard bits of the
10428         DBusConnection aspect of object API. Not yet wired up.
10429         
10430 2003-07-06  Havoc Pennington  <hp@pobox.com>
10431
10432         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10433         (_dbus_marshal_object_id): new
10434         (_dbus_demarshal_object_id): new
10435         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10436         consolidate identical switch cases. Don't conditionalize handling
10437         of DBUS_TYPE_UINT64, need to handle the type always.
10438         (_dbus_marshal_validate_arg): consolidate identical cases, and
10439         handle DBUS_TYPE_OBJECT_ID
10440
10441         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10442
10443         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10444
10445 2003-09-28  Havoc Pennington  <hp@pobox.com>
10446
10447         * real 0.13 release
10448
10449 2003-09-28  Havoc Pennington  <hp@pobox.com>
10450
10451         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10452         to work with Debian db2html
10453
10454 2003-09-28  Havoc Pennington  <hp@pobox.com>
10455
10456         * configure.in: 0.13
10457
10458         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10459         stylesheet-images for benefit of Debian
10460         
10461         Change back to using filesystem-linked sockets for the system
10462         bus, so only root can create the default system bus address.
10463         
10464         * bus/system.conf.in: change to use
10465         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10466
10467         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10468         from here.
10469
10470         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10471         here, and AC_DEFINE DBUS_SYSTEM_PATH
10472
10473 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10474
10475         * doc/TODO:
10476         * doc/busconfig.dtd:
10477         Add busconfig DTD.
10478         
10479 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10480
10481         * doc/dbus-specification.sgml:
10482         Add activation reply values.
10483         
10484 2003-08-05  Havoc Pennington  <hp@redhat.com>
10485
10486         * configure.in: 0.12
10487
10488 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10489
10490         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10491         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10492         (add_watch), (remove_watch), (create_source):
10493         Refcount fds, fixes some reentrancy issues.
10494         
10495 2003-07-30  Havoc Pennington  <hp@redhat.com>
10496
10497         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10498         bus address to be abstract if we have abstract sockets
10499
10500         * NEWS: update
10501
10502 2003-07-28  Havoc Pennington  <hp@redhat.com>
10503
10504         * bus/messagebus.in: fix to avoid processname/servicename 
10505         confusion, from Michael Kearey
10506         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10507         
10508 2003-07-23  Havoc Pennington  <hp@pobox.com>
10509
10510         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10511         fix from Andy Hanton to remove broken "+1"
10512
10513 2003-07-16  Havoc Pennington  <hp@pobox.com>
10514
10515         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10516         babysitter process, as suggested by Thomas Leonard, so 
10517         an "eval `dbus-launch --exit-with-session`" will actually 
10518         return
10519
10520 2003-07-16  Havoc Pennington  <hp@pobox.com>
10521
10522         * configure.in: print out EXPANDED_* variables in the summary at
10523         the end; clean up the code that computes EXPANDED_ variables and
10524         get the ones using exec_prefix right. Should make things work
10525         when you build without --prefix
10526
10527 2003-06-29  Havoc Pennington  <hp@pobox.com>
10528
10529         * mono/Test.cs (class Test): fire up a main loop and run it
10530
10531         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10532         done once, the app has to do it
10533
10534 2003-06-26  Havoc Pennington  <hp@pobox.com>
10535
10536         * mono/Connection.cs: set up connection with the glib main loop
10537
10538 2003-07-01  Havoc Pennington  <hp@redhat.com>
10539
10540         * doc/dbus-specification.sgml: clarify the format of a type code,
10541         change suggested by Jim Blandy
10542
10543 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10544
10545         * doc/Makefile.am:
10546         * tools/Makefile.am: Don't assume srcdir == builddir.
10547
10548         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10549         the allocated block.
10550         (_dbus_memory_test): New function.
10551         * dbus/dbus-test.h: Add _dbus_memory_test ().
10552         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10553
10554         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10555         of %c%c%c%c.
10556         (dbus_message_new): Remove obsolete @todo.
10557
10558         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10559         (_dbus_marshal_set_uint64): Fix comment.
10560
10561         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10562         hardcode FIELD_REPLY_SERIAL.
10563
10564         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10565         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10566
10567         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10568         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10569
10570 2003-06-24  Havoc Pennington  <hp@pobox.com>
10571
10572         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10573
10574 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10575
10576         * configure.in:
10577         * gcj/.cvsignore:
10578         * gcj/Hello.java:
10579         * gcj/Makefile.am:
10580         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10581         * gcj/org/.cvsignore:
10582         * gcj/org/Makefile.am:
10583         * gcj/org/freedesktop/.cvsignore:
10584         * gcj/org/freedesktop/Makefile.am:
10585         * gcj/org/freedesktop/dbus/.cvsignore:
10586         * gcj/org/freedesktop/dbus/Makefile.am:
10587         * gcj/org/freedesktop/dbus/Message.java: (Message),
10588         (Message.Message):
10589         * gcj/org/freedesktop/dbus/natMessage.cc:
10590         Fix the build system.
10591
10592 2003-06-22  Havoc Pennington  <hp@pobox.com>
10593
10594         * mono/Connection.cs: add more bindings
10595
10596         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10597         more than once.
10598
10599 2003-06-22  Havoc Pennington  <hp@pobox.com>
10600
10601         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10602         Start wrapping more stuff.
10603
10604 2003-06-22  Havoc Pennington  <hp@pobox.com>
10605
10606         * mono/Message.cs: implement Message.Wrap() that ensures we only
10607         have a single C# wrapper per DBusMessage, assuming it works which
10608         it probably doesn't.
10609
10610         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10611         (dbus_message_free_data_slot): new
10612         (dbus_message_set_data): new
10613         (dbus_message_get_data): new
10614
10615 2003-06-22  Havoc Pennington  <hp@pobox.com>
10616
10617         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10618         (_dbus_data_slot_allocator_alloc): rework these to keep a
10619         reference count on each slot and automatically manage a global
10620         slot ID variable passed in by address
10621
10622         * bus/bus.c: convert to new dataslot API
10623
10624         * dbus/dbus-bus.c: convert to new dataslot API
10625
10626         * dbus/dbus-connection.c: convert to new dataslot API
10627
10628         * dbus/dbus-server.c: convert to new dataslot API
10629
10630         * glib/dbus-gmain.c: ditto
10631
10632         * bus/test.c: ditto
10633
10634         * bus/connection.c: ditto
10635
10636 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10637
10638         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10639         after the gcj checks so that the correct configuration tags
10640         will be added to libtool.
10641
10642         * dbus-glib-1.pc.in: No need to specify any includes since
10643         dbus-1.pc.in has those.
10644
10645 2003-06-22  Havoc Pennington  <hp@pobox.com>
10646
10647         * mono/*, gcj/*, configure.in, Makefile.am:
10648         Check in makefiles and subdirs for mono and gcj bindings.
10649         Neither binding actually exists, just trying to get through
10650         all the build and other boring bits.
10651
10652 2003-06-21  Philip Blundell  <philb@gnu.org>
10653
10654         * tools/dbus-monitor.1: Updated.
10655
10656         * tools/dbus-send.1: Likewise.
10657
10658 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10659
10660         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10661         for hangup and error after checking read so we won't discard
10662         pending data if both hangup and read are set.
10663
10664 2003-06-19  Philip Blundell  <philb@gnu.org>
10665
10666         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10667
10668         * tools/dbus-send.c: Accept both --system and --session.
10669
10670         * tools/dbus-monitor.c: Same here.
10671
10672 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10673
10674         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10675         from C++ (Patch by Miloslav Trmac).
10676
10677 2003-06-15  Joe Shaw  <joe@assbarn.com>
10678
10679         * configure.in: Check for socklen_t.
10680
10681         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10682
10683         * test/test-segfault.c: Add #include <sys/time.h>
10684
10685         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10686         dbus-launch needs it.
10687
10688 2003-06-09  Havoc Pennington  <hp@redhat.com>
10689
10690         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10691         SUN_LEN, it breaks abstract socket usage
10692
10693         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10694         starts of lines.
10695
10696 2003-06-04  Havoc Pennington  <hp@pobox.com>
10697
10698         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10699         using unix:abstract=/foo, and when listening in a tmpdir
10700         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10701
10702         * dbus/dbus-transport.c (_dbus_transport_open): support
10703         unix:abstract=/foo
10704
10705         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10706         support abstract sockets
10707
10708         * dbus/dbus-transport-unix.c
10709         (_dbus_transport_new_for_domain_socket): support abstract sockets
10710
10711         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10712         toggle as an argument, implement abstract namespace support
10713         (_dbus_listen_unix_socket): ditto
10714
10715         * configure.in: add --enable-abstract-sockets and implement
10716         a configure check for autodetection of the right value.
10717
10718 2003-06-01  Havoc Pennington  <hp@pobox.com>
10719
10720         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10721         in /tmp (though on Linux this will end up being useless,
10722         when we add abstract namespace support)
10723
10724         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10725         subst'ing it
10726
10727 2003-05-28  Colin Walters  <walters@verbum.org>
10728
10729         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10730
10731 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10732
10733         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10734
10735 2003-05-17  Colin Walters  <walters@gnu.org>
10736
10737         * tools/dbus-send.c: Don't exit with an error code if --help was
10738         passed.  Default to using the session bus instead of the system
10739         one.
10740
10741         * tools/dbus-launch.c: Ditto.
10742
10743         * tools/dbus-monitor.c: Ditto.
10744
10745         * tools/dbus-send.1: Update with new arguments.
10746
10747         * tools/dbus-launch.c: Emit code to export variables.  New
10748         arguments -s and -c to specify shell syntax, and a bit of code to
10749         autodetect syntax.  Also, allow specifying a program to run.
10750
10751         * tools/dbus-launch.1: Update with new arguments.
10752
10753         * tools/dbus-send.1: Ditto.
10754
10755         * tools/dbus-monitor.1: Ditto.
10756
10757 2003-05-17  Havoc Pennington  <hp@pobox.com>
10758
10759         * bus/config-parser.c (merge_included): merge in policies from
10760         child configuration file.
10761
10762         * bus/policy.c (bus_policy_merge): function to merge two policies
10763         together
10764
10765 2003-05-16  Havoc Pennington  <hp@redhat.com>
10766
10767         * dbus/dbus-connection.c: disable verbose lock spew
10768
10769         * tools/dbus-send.c: add --print-reply command line option
10770
10771         * tools/dbus-print-message.h (print_message): new util function
10772         shared by dbus-send and dbus-monitor
10773
10774         * tools/dbus-monitor.c (handler_func): exit on disconnect
10775
10776         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10777         disconnected, don't try to use the read_watch
10778
10779         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10780         so we can find this bug more easily
10781
10782 2003-05-16  Havoc Pennington  <hp@redhat.com>
10783
10784         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10785         NULL as DBusHashTable is annoyingly likely to do.
10786
10787 2003-05-16  Colin Walters  <walters@verbum.org>
10788
10789         * tools/dbus-monitor.c: Add --session argument and usage()
10790         function.
10791
10792         * tools/dbus-monitor.1: Update with new --session arg.
10793
10794         * bus/Makefile.am (install-data-hook): Create
10795         $(libdir)/dbus-1.0/services so that the session bus is happy.
10796
10797 2003-05-15  Havoc Pennington  <hp@redhat.com>
10798
10799         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10800         on non-x86. ifdef's are evil.
10801
10802 2003-05-15  Havoc Pennington  <hp@redhat.com>
10803
10804         * configure.in: 0.11
10805
10806         * NEWS: update
10807
10808         * bus/Makefile.am (initddir): apparently we are supposed to put
10809         init scripts in /etc/rc.d/init.d not /etc/init.d
10810
10811         * bus/Makefile.am: remove the "you must --enable-tests to make
10812         check" as it broke distcheck
10813
10814         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10815
10816 2003-05-13  James Willcox  <jwillcox@gnome.org>
10817
10818         * configure.in:
10819         * bus/activation.c: (bus_activation_service_created),
10820         (bus_activation_activate_service):
10821         * bus/driver.c: (bus_driver_send_service_deleted),
10822         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10823         (bus_driver_send_service_acquired),
10824         (bus_driver_send_welcome_message),
10825         (bus_driver_handle_list_services):
10826         * bus/session.conf.in:
10827         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10828         (dbus_bus_service_exists), (dbus_bus_activate_service):
10829         * dbus/dbus-bus.h:
10830
10831         Add some convenience API which lets you activate a service, and did a
10832         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10833         and dbus_message_get_args()
10834
10835 2003-05-11  Havoc Pennington  <hp@pobox.com>
10836
10837         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10838         calling _dbus_marshal_validate_arg() for every byte in a byte
10839         array, etc.
10840
10841         * dbus/dbus-message-handler.c: use atomic reference counting to
10842         reduce number of locks slightly; the global lock in here sucks
10843
10844         * dbus/dbus-connection.c
10845         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10846         update_dispatch_status that can be called with lock held; then use
10847         in a couple places to reduce locking/unlocking
10848         (dbus_connection_send): hold the lock over the whole function
10849         instead of acquiring it twice.
10850
10851         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10852
10853         * bus/connection.c (bus_connections_setup_connection): fix access
10854         to already-freed memory.
10855
10856         * dbus/dbus-connection.c: keep a little cache of linked list
10857         nodes, to avoid using the global linked list alloc lock in the
10858         normal send-message case. Instead we just use the connection lock
10859         that we already have to take.
10860
10861         * dbus/dbus-list.c (_dbus_list_find_last): new function
10862
10863         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10864         change to use a struct for the atomic type; fix docs,
10865         they return value before increment, not after increment.
10866
10867         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10868         (_dbus_string_append_8_aligned): new functions to try to
10869         microoptimize this operation.
10870         (reallocate_for_length): break this out of set_length(), to
10871         improve profile info, and also so we can consider inlining the
10872         set_length() part.
10873
10874         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10875         strings with some preallocation, cuts down on our calls to realloc
10876         a fair bit. Though if we can get the "move entire string to empty
10877         string" optimization below to kick in here, it would be better.
10878
10879         * dbus/dbus-string.c (_dbus_string_move): just call
10880         _dbus_string_move_len
10881         (_dbus_string_move_len): add a special case for moving
10882         an entire string into an empty string; we can just
10883         swap the string data instead of doing any reallocs.
10884         (_dbus_string_init_preallocated): new function
10885
10886 2003-05-11  Havoc Pennington  <hp@pobox.com>
10887
10888         Write a "test-profile" that does echo client-server with threads;
10889         profile reveals lock contention, memcpy/realloc of buffers, and
10890         UTF-8 validation as hot spots. 20% of lock contention eliminated
10891         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10892         contention is global mempool locks for GList and DBusList.
10893
10894         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10895         x86 implementation
10896
10897         * dbus/dbus-connection.c (struct DBusConnection): use
10898         dbus_atomic_t for the reference count
10899
10900         * dbus/dbus-message.c (struct DBusMessage): declare
10901         dbus_atomic_t values as volatile
10902
10903         * configure.in: code to detect ability to use atomic integer
10904         operations in assembly, from GLib patch
10905
10906         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10907         time, tired of it being wrong in threads and forked processes
10908
10909         * glib/test-profile.c: a little program to bounce messages back
10910         and forth between threads and eat CPU
10911
10912         * dbus/dbus-connection.c: add debug spew macros for debugging
10913         thread locks; include config.h at top; fix deadlock in
10914         dbus_connection_flush()
10915
10916 2003-05-08  Havoc Pennington  <hp@pobox.com>
10917
10918         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10919         data from getting written, and there wasn't a good reason to
10920         use _exit really.
10921
10922         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10923         dbus_verbose lines in test coverage
10924         (main): add list of functions sorted by # of untested blocks
10925         to the coverage report
10926
10927         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10928
10929         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10930
10931         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10932         extend test coverage
10933
10934         * test/data/auth/cancel.auth-script: test canceling an
10935         authentication
10936
10937         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10938         aren't used. in CVS history if we end up needing them.
10939
10940 2003-05-04  Havoc Pennington  <hp@pobox.com>
10941
10942         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10943         unit test
10944
10945         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10946         function, which assumed length was in # of strings, not bytes
10947
10948         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10949         missing coverage
10950
10951         * dbus/dbus-connection.c
10952         (_dbus_connection_queue_received_message): disable function for
10953         now, we are only using it in test mode
10954
10955         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10956         remove a mistaken FIXME
10957
10958 2003-05-04  Havoc Pennington  <hp@pobox.com>
10959
10960         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10961         unlock mutex on successful return, patch from Anders Gustafsson
10962
10963 2003-05-04  Havoc Pennington  <hp@pobox.com>
10964
10965         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10966         Anders Gustafsson
10967
10968 2003-05-04  Havoc Pennington  <hp@pobox.com>
10969
10970         * tools/dbus-launch.c: implement
10971
10972         * bus/main.c (main), bus/bus.c (bus_context_new):
10973         implement --print-pid and --fork
10974
10975 2003-05-03  Havoc Pennington  <hp@redhat.com>
10976
10977         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10978         the address had no value, and add to test suite. Fix and
10979         regression test from Miloslav Trmac
10980
10981 2003-05-03  Havoc Pennington  <hp@pobox.com>
10982
10983         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10984         watch is invalid when handled
10985
10986         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10987         dbus-launch utility to launch the bus from a shell script.  Didn't
10988         actually implement dbus-launch yet, it's just a placeholder still.
10989
10990 2003-05-03  Havoc Pennington  <hp@pobox.com>
10991
10992         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10993         daemon; also documents daemon config file, so replaces
10994         doc/config-file.txt. Corrected some stuff from config-file.txt in
10995         the process of moving it.
10996
10997 2003-05-03  Havoc Pennington  <hp@pobox.com>
10998
10999         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11000         add some man pages
11001
11002 2003-05-03  Colin Walters  <walters@verbum.org>
11003
11004         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11005         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11006
11007         * Makefile.am: Update to use new .pc versioning scheme.
11008
11009 2003-05-02  Havoc Pennington  <hp@redhat.com>
11010
11011         * bus/system.conf.in: allow send/receive to/from message bus
11012         service
11013
11014 2003-04-30  Havoc Pennington  <hp@redhat.com>
11015
11016         * configure.in: print a note when building with unit tests and
11017         without assertions
11018
11019 2003-04-30  Havoc Pennington  <hp@redhat.com>
11020
11021         * Makefile.am: add a check-local that complains if you didn't
11022         configure with --enable-tests
11023
11024 2003-04-29  Havoc Pennington  <hp@redhat.com>
11025
11026         * glib/dbus-gmain.c: docs cleanups
11027
11028         * dbus/dbus-types.h: add docs on int64 types
11029
11030         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11031         public API docs section
11032
11033 2003-04-29  Havoc Pennington  <hp@redhat.com>
11034
11035         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11036         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11037         parallel install API version, not with the D-BUS package version.
11038
11039         * HACKING: move some of README over here
11040
11041         * README: updates, and document API/ABI policy
11042
11043         * configure.in: reindentation
11044
11045 2003-04-29  Havoc Pennington  <hp@redhat.com>
11046
11047         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11048         to use this library" to be sure people have the right
11049         expectations.
11050
11051 2003-04-28  Havoc Pennington  <hp@redhat.com>
11052
11053         * configure.in: add --enable-docs which by default is auto yes if
11054         doxygen and db2html found, no otherwise; but can be forced on/off
11055
11056         * doc/Makefile.am: conditionalize whether to build docs on
11057         --enable-docs
11058
11059 2003-04-28  Havoc Pennington  <hp@redhat.com>
11060
11061         * configure.in: 0.10
11062
11063         * NEWS: update
11064
11065         * bus/system.conf.in: add <includedir>system.d</includedir>
11066
11067         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11068         username was provided but not uid
11069
11070         * bus/config-parser.c (struct BusConfigParser): keep track of
11071         whether the parser is toplevel or was included; change some
11072         of the error handling if it's included.
11073
11074 2003-04-27  Havoc Pennington  <hp@pobox.com>
11075
11076         Unbreak my code...
11077
11078         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11079         report correct status if we finish processing authentication
11080         inside this function.
11081
11082         * bus/activation.c (try_send_activation_failure): use
11083         bus_transaction_send_error_reply
11084
11085         * bus/connection.c (bus_connection_get_groups): return an error
11086         explaining the problem
11087
11088         * bus/bus.c (bus_context_check_security_policy): implement
11089         restriction here that inactive connections can only send the
11090         hello message. Also, allow bus driver to send anything to
11091         any recipient.
11092
11093         * bus/connection.c (bus_connection_complete): create the
11094         BusClientPolicy here instead of on-demand.
11095         (bus_connection_get_policy): don't return an error
11096
11097         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11098         sender field in message being replied to
11099
11100         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11101         causing it to return FALSE always
11102
11103         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11104         we checked sender rather than destination
11105
11106 2003-04-25  Havoc Pennington  <hp@redhat.com>
11107
11108         test suite is slightly hosed at the moment, will fix soon
11109
11110         * bus/connection.c (bus_connections_expire_incomplete): fix to
11111         properly disable the timeout when required
11112         (bus_connection_set_name): check whether we can remove incomplete
11113         connections timeout after we complete each connection.
11114
11115         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11116         probably still broken.
11117
11118         * bus/services.c (bus_registry_acquire_service): implement max
11119         number of services owned, and honor allow/deny rules on which
11120         services a connection can own.
11121
11122         * bus/connection.c (bus_connection_get_policy): report errors here
11123
11124         * bus/activation.c: implement limit on number of pending
11125         activations
11126
11127 2003-04-25  Havoc Pennington  <hp@redhat.com>
11128
11129         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11130         where we used >= 0 instead of != DBUS_UID_UNSET.
11131
11132 2003-04-25  Havoc Pennington  <hp@redhat.com>
11133
11134         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11135         were toggled without add/remove, fix from Anders Gustafsson
11136
11137 2003-04-24  Havoc Pennington  <hp@redhat.com>
11138
11139         * test/data/valid-config-files/basic.conf: add <limit> tags to
11140         this test
11141
11142         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11143         <limit> tag in configuration file.
11144
11145 2003-04-24  Havoc Pennington  <hp@redhat.com>
11146
11147         * bus/dispatch.c: somehow missed some name_is
11148
11149         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11150         (_dbus_timeout_set_interval): new
11151
11152         * bus/connection.c (bus_connections_setup_connection): record time
11153         when each connection is first set up, and expire them after the
11154         auth timeout passes.
11155
11156 2003-04-24  Havoc Pennington  <hp@redhat.com>
11157
11158         * dbus/dbus-message.c (dbus_message_name_is): rename
11159         (dbus_message_service_is): rename
11160         (dbus_message_sender_is): rename
11161         (dbus_message_get_service): rename
11162
11163 2003-04-24  Havoc Pennington  <hp@redhat.com>
11164
11165         * configure.in: add --enable-checks
11166
11167         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11168
11169         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11170         to use thread locks.
11171         (_dbus_connection_handler_destroyed_locked): move some private
11172         functions into proper docs group
11173
11174         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11175         _dbus_return_val_if_fail
11176
11177         Throughout: use dbus_return_if_fail
11178
11179 2003-04-23  James Willcox  <jwillcox@gnome.org>
11180
11181         * glib/dbus-glib.h:
11182         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11183         (dbus_connection_setup_with_g_main),
11184         (dbus_server_setup_with_g_main):
11185         * glib/test-dbus-glib.c: (main):
11186         * glib/test-thread-client.c: (main):
11187         * glib/test-thread-server.c: (new_connection_callback), (main):
11188         * tools/dbus-monitor.c: (main):
11189
11190         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11191         and dbus_server_setup_with_g_main().
11192
11193 2003-04-20  Havoc Pennington  <hp@pobox.com>
11194
11195         * doc/dbus-specification.sgml: document the restrictions on
11196         message and service names
11197
11198 2003-04-22  Havoc Pennington  <hp@redhat.com>
11199
11200         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11201         support, and do some code cleanups to share more code and
11202         speed up array marshal/demarshal.
11203
11204         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11205
11206         * configure.in: generate dbus-arch-deps.h
11207
11208         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11209         64-bit typecodes
11210
11211 2003-04-22  Havoc Pennington  <hp@redhat.com>
11212
11213         * test/data/valid-messages/opposite-endian.message: fix test
11214         to use proper type for rply field
11215
11216         * test/data/invalid-messages: add tests for below validation
11217
11218         * dbus/dbus-message.c (decode_header_data): validate field types,
11219         and validate that named fields are valid names
11220         (decode_name_field): consider messages in the
11221         org.freedesktop.Local. namespace to be invalid.
11222
11223         * dbus/dbus-string.c (_dbus_string_validate_name): new
11224
11225 2003-04-19  Havoc Pennington  <hp@pobox.com>
11226
11227         * bus/driver.c (bus_driver_handle_hello): check limits and
11228         return an error if they are exceeded.
11229
11230         * bus/connection.c: maintain separate lists of active and inactive
11231         connections, and a count of each. Maintain count of completed
11232         connections per user. Implement code to check connection limits.
11233
11234         * dbus/dbus-list.c (_dbus_list_unlink): export
11235
11236         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11237         number of bytes in the message queue for a connection
11238
11239 2003-04-18  Havoc Pennington  <hp@pobox.com>
11240
11241         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11242
11243         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11244         memleaks
11245
11246         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11247         on realloc be sure to update the pointer in the keyring
11248
11249         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11250         offset to avoid writing to unallocated memory
11251
11252         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11253         try the next mechanism, so we properly handle OOM
11254
11255         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11256         on OOM.
11257         (_dbus_keyring_new): fix OOM bug
11258         (_dbus_keyring_new_homedir): always set error; impose a maximum
11259         number of keys we'll load from the file, mostly to speed up the
11260         test suite and make its OOM checks more useful, but also for
11261         general sanity.
11262
11263         * dbus/dbus-auth.c (process_error_server): reject authentication
11264         if we get an error from the client
11265         (process_cancel): on cancel, send REJECTED, per the spec
11266         (process_error_client): send CANCEL if we get an error from the
11267         server.
11268
11269 2003-04-18  Havoc Pennington  <hp@pobox.com>
11270
11271         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11272         debug spew
11273
11274         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11275         handling problem
11276
11277         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11278         about DBUS_TEST_HOMEDIR once
11279
11280         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11281         the environment
11282
11283         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11284         config file so we test the right thing
11285
11286         Throughout: assorted docs improvements
11287
11288 2003-04-18  Havoc Pennington  <hp@pobox.com>
11289
11290         * glib/dbus-gmain.c: adapt to watch changes
11291
11292         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11293
11294         * dbus/dbus-server.h: remove dbus_server_handle_watch
11295
11296         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11297
11298         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11299         like DBusTimeout, so we don't need dbus_connection_handle_watch
11300         etc.
11301
11302 2003-04-17  Havoc Pennington  <hp@redhat.com>
11303
11304         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11305         database usage so it all goes via the DBusUserDatabase cache.
11306
11307 2003-04-17  Havoc Pennington  <hp@redhat.com>
11308
11309         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11310         there was an OOM watch we skipped, we always return TRUE so we
11311         iterate again to have a look at it again. Fixes test suite hang.
11312         Code rearrangement also lets us lose some memset and only iterate
11313         over callbacks once.
11314
11315         * bus/driver.c (bus_driver_handle_message): sense of test for
11316         reply was backward
11317
11318 2003-04-16  Havoc Pennington  <hp@pobox.com>
11319
11320         * doc/dbus-specification.sgml: make spec say serials are unsigned
11321
11322         * dbus/dbus-message.h: change message serials to unsigned
11323
11324         * dbus/dbus-connection.c: adapt to message serials being unsigned
11325
11326 2003-04-15  Havoc Pennington  <hp@pobox.com>
11327
11328         * bus/bus.c: create and keep around a shared DBusUserDatabase
11329         object.
11330
11331         * bus/connection.c (bus_connection_get_groups): don't cache
11332         groups for user in the connection object, since user database
11333         object now does that.
11334
11335 2003-04-16  Havoc Pennington  <hp@redhat.com>
11336
11337         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11338         list of size counters
11339         (_dbus_message_loader_putback_message_link): put back a popped link
11340
11341         * dbus/dbus-connection.c
11342         (dbus_connection_set_max_live_messages_size): rename
11343         max_received_size
11344         (dbus_connection_get_outgoing_size): get size of outgoing
11345         queue
11346         (_dbus_connection_set_connection_counter): remove this cruft
11347
11348 2003-04-14  Havoc Pennington  <hp@redhat.com>
11349
11350         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11351         caching, but at some point we might want to be able to use a
11352         different database.
11353
11354         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11355         SHA1 conf file to test the sha1 auth mechanism, since the regular
11356         test always uses EXTERNAL when available.
11357
11358         * configure.in,
11359         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11360         add conf file that requires use of sha1 auth
11361
11362 2003-04-13  Havoc Pennington  <hp@pobox.com>
11363
11364         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11365         from Philip Blundell to send messages and monitor them.
11366
11367 2003-04-13  Havoc Pennington  <hp@pobox.com>
11368
11369         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11370         callbacks
11371
11372         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11373         users
11374
11375         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11376         fix to only recover unused bytes if we're already authenticated
11377         (_dbus_transport_get_is_authenticated): fix to still mark us
11378         authenticated if there are unused bytes.
11379
11380         * bus/dispatch.c: implement security policy checking
11381
11382         * bus/connection.c (bus_transaction_send_from_driver): new
11383
11384         * bus/bus.c (bus_context_check_security_policy): new
11385
11386         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11387         now we just set the DBusError and it gets converted to an error
11388         reply.
11389
11390         * bus/connection.c (allow_user_function): enable code using actual
11391         data from the config file
11392
11393         * bus/policy.c (list_allows_user): handle wildcard rules for
11394         user/group connection perms
11395
11396 2003-04-13  Havoc Pennington  <hp@pobox.com>
11397
11398         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11399
11400         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11401
11402         * bus/policy.c (bus_policy_append_mandatory_rule)
11403         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11404         (bus_policy_append_group_rule): new functions
11405
11406 2003-04-12  Havoc Pennington  <hp@pobox.com>
11407
11408         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11409
11410         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11411         the pid/gid/uid, just for paranoia.
11412
11413         * test/break-loader.c (randomly_do_n_things): find a byte
11414         containing a type code, and randomly change it to a different
11415         type code.
11416
11417 2003-04-12  Havoc Pennington  <hp@pobox.com>
11418
11419         * bus/policy.h: change BusPolicy to be the thing from the config
11420         file, and rename old BusPolicy to BusClientPolicy
11421
11422         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11423         match change in how policy works
11424
11425         * dbus/dbus-internals.h: mark assert_not_reached as
11426         __attribute((noreturn))__
11427
11428 2003-04-11  Havoc Pennington  <hp@redhat.com>
11429
11430         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11431         the broadcast service. Use boolean return for ServiceExists.
11432
11433 2003-04-11  Havoc Pennington  <hp@redhat.com>
11434
11435         * configure.in: add another directory to look for qt in.
11436
11437 2003-04-11  Havoc Pennington  <hp@redhat.com>
11438
11439         * AUTHORS: add Colin Walters
11440
11441 2003-04-11  Havoc Pennington  <hp@redhat.com>
11442
11443         * NEWS: update
11444
11445         * configure.in: 0.9
11446
11447 2003-04-11  Havoc Pennington  <hp@redhat.com>
11448
11449         * bus/messagebus.in: remove pid file when stopping the
11450         message bus, since the bus won't have privileges to remove it
11451         itself.
11452
11453 2003-04-11  Havoc Pennington  <hp@redhat.com>
11454
11455         * bus/bus.c (bus_context_new): move credentials change after
11456         creating pidfile
11457
11458 2003-04-11  Havoc Pennington  <hp@pobox.com>
11459
11460         * test/decode-gcov.c: add "below average functions" to the
11461         coverage report, and change how some of the code works.
11462
11463         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11464         not in the coverage stats.
11465
11466         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11467         couple places so running the test suite doesn't result in megaspam.
11468
11469 2003-04-11  Havoc Pennington  <hp@pobox.com>
11470
11471         * bus/dispatch.c (check_existent_service_activation): accept a no
11472         memory error in a place we didn't before
11473
11474         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11475         in case the first one failed," since the test suite is less
11476         broken now.
11477
11478 2003-04-10  Havoc Pennington  <hp@pobox.com>
11479
11480         * bus/dispatch.c (check_segfault_service_activation): add test
11481         for launching an executable that just crashes.
11482
11483         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11484         don't leave a million cores. We'll see how portable this is.
11485
11486 2003-04-10  Havoc Pennington  <hp@pobox.com>
11487
11488         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11489         the possible parent failures before we fork, so that we don't
11490         fail to create a babysitter after creating the child.
11491
11492         * bus/activation.c (bus_activation_activate_service): kill child
11493         if we don't successfully complete the activation.
11494
11495 2003-04-10  Havoc Pennington  <hp@redhat.com>
11496
11497         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11498         the connection if it's disconnected
11499
11500         * bus/activation.c (bus_activation_service_created): use new
11501         transaction features to roll back removal of pending activation if
11502         we don't successfully create the service after all. Don't remove
11503         pending activation if the function fails.
11504
11505         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11506         (_dbus_list_insert_after_link): new code to facilitate
11507         services.c fixes
11508
11509         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11510         new functionality, so we can preallocate the ability to insert
11511         into a hash table.
11512
11513         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11514         allowing us to put custom hooks in a transaction to be used for
11515         cancelling said transaction
11516
11517         * doc/dbus-specification.sgml: add some discussion of secondary
11518         service owners, and disallow zero-length service names
11519
11520         * bus/services.c (bus_registry_acquire_service): new function,
11521         splits out part of bus_driver_handle_acquire_service() and fixes
11522         a bug where we didn't remove the service doing the acquiring
11523         from the secondary queue if we failed to remove the current owner
11524         from the front of the queue.
11525
11526 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11527
11528         * doc/dbus-specification.sgml:
11529         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11530
11531 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11532
11533         * bus/.cvsignore:
11534         * glib/.cvsignore:
11535         * test/.cvsignore:
11536         Added files to cvsignore
11537
11538         * dbus/dbus-message.h:
11539         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11540         Make get_named() take two out argument and return a boolean.
11541         (dbus_message_iter_get_args_valist):
11542         Update usage of get_named().
11543         (dbus_message_iter_append_byte):
11544         Fix typo
11545         (dbus_message_iter_append_named)
11546         Fix typo
11547         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11548         More tests.
11549
11550 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11551
11552         * dbus/dbus-marshal.[ch]:
11553         Add array_type_pos argument to _dbus_marshal_validate_arg.
11554         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11555
11556         * dbus/dbus-message.[ch]:
11557         Multi-dimensional arrays have full type specification in the
11558         outermost array. Iter code re-arranged to handle this.
11559         Added some more iter tests.
11560
11561         * doc/dbus-specification.sgml:
11562         Add me to authors.
11563         Remove old FIXME.
11564         Update new array encoding description.
11565         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11566
11567         * test/data/invalid-messages/array-with-mixed-types.message:
11568         * test/data/valid-messages/array-of-array-of-uint32.message:
11569         Change to the new array format.
11570
11571         * test/data/invalid-messages/too-short-dict.message:
11572         Fix bug in test.
11573
11574         * test/data/valid-messages/recursive-types.message:
11575         Fix up and extend test.
11576
11577 2003-04-10  Havoc Pennington  <hp@pobox.com>
11578
11579         * bus/dispatch.c: lots of fixes
11580
11581         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11582         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11583         that was crack, broke the test service.
11584
11585         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11586         handling to avoid piling up errors if we get a failure on the
11587         first address.
11588
11589         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11590         pid in assertion failures.
11591
11592         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11593         to some fixed size of file descriptor array. Don't return TRUE
11594         anytime a timeout exists, that led to lots of busy loop silliness
11595         in the tests.
11596
11597 2003-04-09  Havoc Pennington  <hp@redhat.com>
11598
11599         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11600         I'd checked this in earlier but hadn't.
11601
11602 2003-04-09  Havoc Pennington  <hp@redhat.com>
11603
11604         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11605         the activation test (man this is getting old!)
11606
11607 2003-04-09  Havoc Pennington  <hp@redhat.com>
11608
11609         * test/test-utils.c: use dispatch status function to fix this up
11610
11611         * bus/connection.c (connection_watch_callback): don't dispatch
11612         from here
11613         (connection_timeout_callback): don't dispatch from here
11614         (bus_connections_setup_connection): set the dispatch status function
11615         (bus_connection_disconnected): unset it
11616
11617         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11618         used to add a connection to be dispatched
11619         (_dbus_loop_iterate): do the dispatching at the end of each
11620         iteration
11621
11622         * dbus/dbus-connection.c
11623         (dbus_connection_set_dispatch_status_function): new function
11624         allowing us to fix up main loop usage
11625         (_dbus_connection_last_unref): free all the various function
11626         user data
11627         (dbus_connection_dispatch): call the DispatchStatusFunction
11628         whenever this function returns
11629         (dbus_connection_handle_watch): call DispatchStatusFunction
11630         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11631         (reply_handler_timeout): call DispatchStatusFunction
11632         (dbus_connection_flush): call DispatchStatusFunction
11633
11634 2003-04-09  Havoc Pennington  <hp@redhat.com>
11635
11636         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11637         a memory leak
11638
11639         * bus/dispatch.c (check_service_activated): fix bug in test
11640
11641         * dbus/dbus-mainloop.c (check_timeout): fix this up
11642
11643         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11644         verbose output so we can sort out output from different processes,
11645         e.g. in the activation case.
11646
11647 2003-04-08  Colin Walters  <walters@gnu.org>
11648
11649         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11650         the pid file.
11651         (bus_context_new): Set it.
11652         (bus_context_unref): Use it to delete the pid file.
11653
11654 2003-04-08  Havoc Pennington  <hp@redhat.com>
11655
11656         * test/data/invalid-messages/array-with-mixed-types.message:
11657         regression test that fails for the moment
11658
11659         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11660         tests for convenience
11661
11662         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11663         array of nil, it broke things.
11664
11665         * test/data/invalid-messages/array-of-nil.message: regression test
11666
11667         * test/data/valid-messages/array-of-array-of-uint32.message:
11668         happened to write this so added it to suite
11669
11670 2003-04-08  Havoc Pennington  <hp@redhat.com>
11671
11672         * bus/driver.c (bus_driver_handle_acquire_service): init
11673         retval/reply before checking name
11674
11675         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11676         recursion depth argument
11677
11678         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11679         in the public struct for future extension
11680
11681         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11682         typo
11683
11684         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11685         message
11686
11687         * doc/dbus-specification.sgml: fix typo
11688
11689 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11690
11691         Implemented recursive types, named types and new-style iters
11692
11693         * bus/driver.c:
11694         * glib/test-thread-client.c: (thread_func):
11695         * glib/test-thread-server.c: (handle_test_message):
11696         * test/test-service.c: (handle_echo):
11697         Update to new api
11698
11699         * dbus/Makefile.am:
11700         * dbus/dbus-dict.c:
11701         * dbus/dbus-dict.h:
11702         * dbus/dbus.h
11703         Remove DBusDict
11704
11705         * dbus/dbus-internals.c: (_dbus_type_to_string):
11706         Update for new types.
11707
11708         * dbus/dbus-marshal.[ch]:
11709         Implement recursive types and the new marshalling format.
11710         Remove hardcoded dict marshalling.
11711         Marshal named types.
11712
11713         * dbus/dbus-message-builder.c:
11714         Add BYTE_ARRAY.
11715         Remove references to old types
11716
11717         * dbus/dbus-message.[ch]:
11718         New non-refcounted iter API that supports recursive iters.
11719         Use iters for appending, including support for recursive
11720         iters.
11721         Add byte and named type support.
11722         Update everything to new marshalling formats.
11723         Add tests for new API.
11724
11725         * dbus/dbus-protocol.h:
11726         Remove old array types.
11727         Add types: BYTE, ARRAY, DICT, NAMED
11728
11729         * dbus/dbus-string.c:
11730         * dbus/dbus-sysdeps.c:
11731         Make parse_double locale safe.
11732
11733         * dbus/dbus-test-main.c:
11734         Call setlocale.
11735
11736         * dbus/dbus-test.c:
11737         Kill dict test
11738
11739         * doc/dbus-specification.sgml:
11740         Update spec
11741
11742         * test/data/incomplete-messages/missing-body.message:
11743         * test/data/invalid-messages/bad-boolean.message:
11744         * test/data/invalid-messages/bad-boolean-array.message:
11745         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11746         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11747         * test/data/invalid-messages/too-short-dict.message:
11748         * test/data/valid-messages/dict-simple.message:
11749         * test/data/valid-messages/dict.message:
11750         * test/data/valid-messages/emptiness.message:
11751         * test/data/valid-messages/lots-of-arguments.message:
11752         * test/data/valid-messages/no-padding.message:
11753         * test/data/valid-messages/recursive-types.message:
11754         Add missing NAME fields
11755         Fix up dicts & arrays
11756
11757         * test/data/invalid-messages/dict-with-nil-value.message:
11758         Removed, this is not invalid anymore.
11759
11760         * test/data/valid-messages/recursive-types.message:
11761         Add new test for deeply recursive types.
11762
11763 2003-04-07  Havoc Pennington  <hp@pobox.com>
11764
11765         * bus/driver.c (bus_driver_handle_acquire_service): return an
11766         error if you try to acquire a service that starts with ':'
11767
11768 2003-04-07  Havoc Pennington  <hp@redhat.com>
11769
11770         * doc/dbus-specification.sgml: require that base service names
11771         start with ':' and that the base service is created/deleted
11772         as first and last things a connection does on the bus
11773
11774         * bus/dispatch.c (check_existent_service_activation): lots more
11775         work on the activation test; it doesn't fully pass yet...
11776
11777         * test/test-service.c (main): fix so we don't memleak the
11778         connection to the message bus
11779         (filter_func): accept a message asking us to exit
11780
11781 2003-04-06  Havoc Pennington  <hp@pobox.com>
11782
11783         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11784         from Colin Walters
11785
11786         * configure.in: fixes to Qt detection from Colin Walters
11787
11788         * doc/Makefile.am: Only remove generated docbook dirs if they
11789         exist, from Colin Walters
11790
11791         * dbus/dbus-bus.c: change how we set well-known connections to
11792         NULL, so that it works if a single connection is stored in
11793         two well-known array slots.
11794
11795         * test/Makefile.am: remove a lot of stuff that isn't immediately
11796         useful, it's in CVS history if we want it.
11797
11798         * test/test-service.c: use dbus-mainloop instead of that
11799         watch.[hc] crack
11800
11801 2003-04-06  Havoc Pennington  <hp@pobox.com>
11802
11803         * dbus/Makefile.am: split lists of sources into stuff that goes in
11804         the library, util functions that go in the lib and are also used
11805         elsewhere, and util functions that are used in tests/daemon but
11806         don't go in the lib.
11807
11808         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11809         here so it can be used in test binaries also
11810
11811 2003-04-06  Havoc Pennington  <hp@pobox.com>
11812
11813         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11814         here in the parent process, so we can return an error if it
11815         fails. Also, move some of the code into the child so the parent
11816         is less hosed if we fail midway through.
11817
11818         * bus/bus.c (bus_context_new): move pidfile detection further up
11819         in the function, before we start overwriting sockets and such.
11820
11821         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11822
11823         * configure.in: add --with-system-pid-file and --with-system-socket
11824
11825 2003-04-06  Colin Walters  <walters@verbum.org>
11826
11827         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11828
11829         * bus/system.conf.in: Declare a pidfile.
11830
11831         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11832         create one (if appropriate).
11833
11834         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11835         (struct BusConfigParser) [pidfile]: New.
11836         (element_type_to_name, merge_included, start_busconfig_child)
11837         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11838         (bus_config_parser_unref): Free it.
11839         (bus_config_parser_get_pidfile): New function.
11840
11841         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11842
11843         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11844
11845         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11846
11847         * dbus/dbus-sysdeps.h: Prototype it.
11848
11849 2003-04-06  Havoc Pennington  <hp@pobox.com>
11850
11851         * bus/bus.c (bus_context_new): print the address in here, rather
11852         than in main(), because we need to do it before forking the daemon
11853
11854         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11855         on the service nonexistent error
11856
11857         * bus/driver.c (bus_driver_handle_acquire_service): set the
11858         sender on the AcquireService reply
11859
11860         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11861         server also listen on a UNIX socket so services can connect to it.
11862
11863 2003-04-06  Havoc Pennington  <hp@pobox.com>
11864
11865         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11866         so it detects deadlocks and also we actually init threads when
11867         debugging.
11868
11869 2003-04-06  Havoc Pennington  <hp@pobox.com>
11870
11871         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11872         save the domain socket name, and unlink it when we disconnect the
11873         server. Means that at least when we exit normally, we won't leave
11874         a bunch of junk in /tmp
11875
11876         * dbus/dbus-transport-unix.c
11877         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11878         memory management). (I was making a real change here but then
11879         didn't)
11880
11881 2003-04-06  Havoc Pennington  <hp@pobox.com>
11882
11883         * bus/bus.c (bus_context_new): fix wrong handling of
11884         server_data_slot_unref() in the error case.
11885
11886         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11887         "(condition) != 0" to _dbus_real_assert so that
11888         "_dbus_assert (pointer)" doesn't cause a warning
11889
11890         * bus/main.c (main): accept --print-address option to print out
11891         the message bus address
11892
11893         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11894
11895         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11896         "tmpdir" option to unix: address on client side
11897
11898         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11899         to unix: address
11900
11901         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11902         we can use to create sockets in the test suite.
11903
11904         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11905         cleanly. To be used for testing.
11906
11907         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11908
11909         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11910
11911         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11912         handle trying to call this when there's no servers active
11913
11914 2003-04-05  Havoc Pennington  <hp@pobox.com>
11915
11916         * NEWS: update
11917
11918         * configure.in: 0.8
11919
11920 2003-04-05  Havoc Pennington  <hp@pobox.com>
11921
11922         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11923         crash on startup. Need to get "try starting the daemon"
11924         in the test suite I guess. ;-)
11925
11926         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11927         tracked the number of open connections; it's better done in
11928         application-specific code as you want it to span all servers etc.
11929
11930 2003-04-05  Havoc Pennington  <hp@pobox.com>
11931
11932         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11933         patch from Colin Walters
11934
11935 2003-04-05  Havoc Pennington  <hp@pobox.com>
11936
11937         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11938         reality; in fact multiple mechanisms are allowed.
11939
11940         * dbus/dbus-internals.c (_dbus_real_assert)
11941         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11942         _dbus_assert_not_reached() into functions, so that they don't show
11943         up in basic block counts for test coverage, and don't use up as
11944         much disk space. Does mean slower execution speed though, so
11945         assumes --disable-asserts is the normal production case.
11946
11947 2003-04-05  Havoc Pennington  <hp@pobox.com>
11948
11949         * test/Makefile.am (dist-hook): also dist *.in files
11950
11951         * NEWS: update
11952
11953         * configure.in: 0.7
11954
11955 2003-04-05  Havoc Pennington  <hp@pobox.com>
11956
11957         * dbus/dbus-string.c: docs warning
11958
11959         * dbus/dbus-spawn.c: missing docs
11960
11961         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11962
11963 2003-04-05  Havoc Pennington  <hp@pobox.com>
11964
11965         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11966         magic from GLib
11967
11968         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11969         to -1 once we've reaped the babysitter
11970         (_dbus_babysitter_handle_watch): do as much work as we can, not
11971         just one go of it
11972
11973         * bus/activation.c: add code using DBusBabysitter so that we
11974         handle it when a service fails to start up properly.
11975         (bus_activation_service_created): don't remove the activation
11976         entries as we go, just let them get removed when we free the pending
11977         activation. Unref reply messages after sending them.
11978
11979 2003-04-05  Havoc Pennington  <hp@pobox.com>
11980
11981         * test/decode-gcov.c (main): print per-directory stats in the report
11982
11983         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11984
11985 2003-04-05  Havoc Pennington  <hp@pobox.com>
11986
11987         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11988
11989         * test/decode-gcov.c: hack up a little program to suck data
11990         out of gcov files. Yes this is sort of silly.
11991
11992         * configure.in: define something in config.h and do an
11993         AM_CONDITIONAL when gcov is enabled
11994
11995 2003-04-04  Havoc Pennington  <hp@redhat.com>
11996
11997         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11998         return a "babysitter" object that is used to monitor the status of
11999         the spawned process and reap it when required.
12000
12001         * test/test-segfault.c, test/test-exit.c,
12002         test/test-sleep-forever.c: binaries that do various lame things,
12003         used in the test suite.
12004
12005         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12006
12007 2003-04-03  Havoc Pennington  <hp@pobox.com>
12008
12009         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12010         in preparation for modifying it, dbus-sysdeps is getting
12011         a bit unmanageable.
12012
12013 2003-04-03  Havoc Pennington  <hp@redhat.com>
12014
12015         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12016         have multiple ones
12017
12018         * bus/*.[hc]: adapt to mainloop change
12019
12020 2003-04-03  Havoc Pennington  <hp@redhat.com>
12021
12022         * bus/activation.c (load_directory): fix up memleaks
12023         (bus_activation_entry_free): free the entry
12024
12025         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12026         we get one from the message bus; fix memleaks.
12027
12028         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12029
12030 2003-04-03  Havoc Pennington  <hp@pobox.com>
12031
12032         * bus/config-parser.c (bus_config_parser_unref): free
12033         list of mechanisms, bug discovered by test suite enhancements
12034         (putting system.conf and session.conf into suite)
12035
12036         * test/Makefile.am, test/test-service.c: add placeholder for a
12037         test service that we'll activate as part of test suite. Doesn't
12038         do anything yet.
12039
12040         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12041         setting NULL value, and use system malloc not dbus_malloc()
12042         when we have unavoidable memleakage.
12043
12044         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12045         didn't work, and support DBUS_BUS_ACTIVATION.
12046
12047         * bus/activation.c (child_setup): pass our well-known bus type to
12048         the child
12049
12050         * bus/config-parser.c: support <type> to specify well-known type
12051
12052         * doc/dbus-specification.sgml: document the env variables to
12053         locate well-known buses and find service activator
12054
12055 2003-04-02  Havoc Pennington  <hp@redhat.com>
12056
12057         * test/Makefile.am (all-local): add a rule to copy tests to
12058         builddir, so we can have generated tests. Use this to remove the
12059         silly hack for testing system.conf and session.conf. Will use this
12060         shortly to generate .service files pointing to test binaries.
12061
12062 2003-04-02  Havoc Pennington  <hp@redhat.com>
12063
12064         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12065         current alloc and needed new length, not max of the doubled
12066         allocation and needed new length. Also, when building tests,
12067         don't do the double-allocation stuff, just realloc every time.
12068
12069 2003-04-02  Havoc Pennington  <hp@redhat.com>
12070
12071         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12072         in error messages
12073         (_dbus_string_get_dirname): new
12074         (_dbus_sysdeps_test): new
12075         (_dbus_directory_open): include dirnames in error messages
12076
12077         * bus/config-parser.c: interpret <include> and <includedir> and
12078         <servicedir> relative to config file location if the given
12079         filename is not absolute.
12080
12081         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12082
12083 2003-04-02  Havoc Pennington  <hp@redhat.com>
12084
12085         * bus/connection.c (bus_transaction_send_error_reply): set sender
12086         service for the error, and unref the reply on success
12087
12088         * bus/activation.c: convert to use BusTransaction so OOM can be
12089         handled correctly
12090         (bus_activation_service_created): set sender of the message
12091
12092 2003-04-01  Havoc Pennington  <hp@redhat.com>
12093
12094         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12095         <includedir> (at least mostly)
12096
12097         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12098         first, then the user ID
12099
12100 2003-04-01  Havoc Pennington  <hp@pobox.com>
12101
12102         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12103         function
12104
12105         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12106
12107         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12108
12109         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12110         socket 0777, and unlink any existing socket.
12111
12112         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12113         the configuration file so specifies; set up auth mechanism
12114         restrictions
12115
12116         * bus/config-parser.c (bus_config_parser_content): add support
12117         for <fork> option and fill in code for <auth>
12118
12119         * bus/system.conf.in: add <fork/> to default configuration,
12120         and limit auth mechanisms to EXTERNAL
12121
12122         * doc/config-file.txt (Elements): add <fork>
12123
12124         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12125         (_dbus_change_identity): new function
12126
12127 2003-03-31  Havoc Pennington  <hp@redhat.com>
12128
12129         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12130         (_dbus_listen_unix_socket): fix off-by-one error in null
12131         termination spotted by Nalin
12132
12133 2003-03-31  Havoc Pennington  <hp@redhat.com>
12134
12135         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12136         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12137         having a real home directory available.
12138
12139 2003-03-31  Havoc Pennington  <hp@redhat.com>
12140
12141         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12142
12143         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12144
12145         * configure.in: add support for specifying a style of init script
12146         to install
12147
12148 2003-03-31  Havoc Pennington  <hp@redhat.com>
12149
12150         Fix some annoying DBusString API and fix all affected code.
12151
12152         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12153         max_length argument
12154         (_dbus_string_get_data): change to return string instead of using
12155         an out param
12156         (_dbus_string_get_const_data): ditto
12157         (_dbus_string_get_data_len): ditto
12158         (_dbus_string_get_const_data_len): ditto
12159
12160 2003-03-31  Havoc Pennington  <hp@redhat.com>
12161
12162         * bus/main.c (main): fix up the command line arguments to be nicer
12163
12164 2003-03-31  Havoc Pennington  <hp@redhat.com>
12165
12166         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12167         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12168         final location that lands in the config file
12169
12170         * bus/config-loader-expat.c (bus_config_load): fix type of
12171         XML_Parser variable
12172
12173         * doc/TODO: remove TODO item for dbus_bus_get()
12174
12175         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12176
12177 2003-03-31  Havoc Pennington  <hp@pobox.com>
12178
12179         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12180         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12181         argument since they are always client side
12182
12183         * dbus/dbus-server.c (dbus_server_get_address): new function
12184
12185         * bus/main.c (main): take the configuration file as an argument.
12186
12187         * test/data/valid-config-files/debug-allow-all.conf: new file to
12188         use with dispatch.c tests for example
12189
12190         * bus/test-main.c (main): require test data dir
12191
12192         * bus/bus.c (bus_context_new): change this to take a
12193         configuration file name as argument
12194
12195         * doc/config-file.txt (Elements): add <servicedir>
12196
12197         * bus/system.conf, bus/session.conf: new files
12198
12199         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12200         well-known socket if none set
12201
12202         * configure.in: create system.conf and session.conf
12203
12204 2003-03-30  Havoc Pennington  <hp@pobox.com>
12205
12206         * bus/config-parser.c: hacking
12207
12208         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12209         to shut down, since it could cause weirdness with the DBusList
12210         lock
12211
12212         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12213         link-oriented stack routines
12214         (alloc_link): free the mempool if the first alloc from it fails
12215
12216         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12217
12218         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12219         from GLib
12220         (_dbus_string_skip_white): new
12221
12222         * doc/config-file.txt (Elements): add <includedir>
12223
12224 2003-03-28  Havoc Pennington  <hp@pobox.com>
12225
12226         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12227         (_dbus_string_copy_data): new functions
12228
12229 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12230
12231         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12232         * dbus/dbus-bus.h:
12233         Add dbus_bus_get.
12234
12235         * dbus/dbus-memory.c:
12236         Fix a doc comment.
12237
12238 2003-03-28  Havoc Pennington  <hp@pobox.com>
12239
12240         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12241         I think it may have just been superstition. Not sure.
12242
12243         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12244         failures that were not being handled.
12245
12246         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12247
12248         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12249         row that will fail on out-of-memory.
12250
12251         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12252         function for testing out-of-memory handling.
12253
12254         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12255         allocation functions, they do map exactly to the expat ones.
12256
12257 2003-03-27  Havoc Pennington  <hp@redhat.com>
12258
12259         * bus/config-loader-libxml.c (bus_config_load): add another error
12260         check
12261
12262 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12263
12264         * doc/TODO:
12265         Add note about automatic service activation.
12266
12267         * doc/dbus-specification.sgml:
12268         Rename the specification and clarify a few things.
12269
12270 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12271
12272         * Doxyfile.in:
12273         * dbus/dbus-address.c:
12274         * dbus/dbus-dict.c:
12275         * dbus/dbus-marshal.c:
12276         * dbus/dbus-server-debug-pipe.c:
12277         * dbus/dbus-transport-unix.c:
12278         Fix documentation warnings.
12279
12280 2003-03-26  Havoc Pennington  <hp@pobox.com>
12281
12282         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12283         after every test so it's quick and easy to see which leaked, and
12284         so we test multiple dbus_shutdown() calls
12285
12286         * configure.in: change configure.in XML stuff to also support
12287         expat
12288
12289         * config-loader-libxml.c: some hacking
12290
12291         * config-loader-expat.c: some hacking
12292
12293         * config-parser.c: some hacking, plus tests
12294
12295 2003-03-25  Havoc Pennington  <hp@redhat.com>
12296
12297         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12298
12299         * configure.in: add --with-xml option to specify XML library,
12300         right now only libxml is supported.
12301
12302         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12303         nonworking code between home and work, still just stubs
12304
12305 2003-03-24  Havoc Pennington  <hp@redhat.com>
12306
12307         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12308         file
12309
12310         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12311         NULL argument for "message" if the error is a well-known one,
12312         fill in a generic message in this case.
12313
12314         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12315         favor of DBusError
12316
12317         * bus/test.c (bus_test_flush_bus): add
12318
12319         * bus/policy.c (bus_policy_test): test code stub
12320
12321 2003-03-24  Havoc Pennington  <hp@pobox.com>
12322
12323         * bus/connection.c (bus_connections_setup_connection): set up
12324         the "can this user connect" function, but it always returns
12325         TRUE until we have a config file parser so we can have a config
12326         file that allows connections.
12327
12328 2003-03-23  Havoc Pennington  <hp@pobox.com>
12329
12330         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12331         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12332         the mutex, so we can check for proper memory management
12333         and OOM handling.
12334
12335         * dbus/dbus-dataslot.c: remove the mutex from
12336         DBusDataSlotAllocator and lock it manually when using it,
12337         to simplify fitting it into the global slots framework.
12338
12339         * dbus/dbus-threads.c (init_static_locks): rework how we're
12340         handling global locks so they are easily shut down.
12341
12342         * bus/policy.c (bus_policy_append_rule): fix
12343
12344         * bus/test-main.c (main): check for memleaks
12345
12346         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12347         test suite check for memleaks
12348
12349         * dbus/dbus-memory.c: add support in test mode for tracking
12350         number of outstanding blocks
12351
12352 2003-03-23  Havoc Pennington  <hp@pobox.com>
12353
12354         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12355         policies code
12356
12357         * dbus/dbus-hash.h: add ULONG hash keys
12358
12359         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12360         (_dbus_get_group_id): new function
12361
12362 2003-03-20  Havoc Pennington  <hp@redhat.com>
12363
12364         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12365         new function
12366         (dbus_connection_get_unix_user): new function
12367
12368 2003-03-20  Havoc Pennington  <hp@pobox.com>
12369
12370         * bus/connection.c (bus_connection_send_oom_error): assert that
12371         message has a sender
12372         (connection_execute_transaction): ditto
12373         (bus_connection_preallocate_oom_error): fix to set the sender, and
12374         set recipient to the destination service, not the bus driver
12375
12376         * bus/policy.c: hacking
12377
12378         * dbus/dbus-message.c (dbus_message_service_is): new function
12379         (dbus_message_sender_is): new
12380
12381 2003-03-19  Havoc Pennington  <hp@redhat.com>
12382
12383         * bus/policy.c: start sketching code for policy restrictions on
12384         what connections can do.
12385
12386 2003-03-18  Havoc Pennington  <hp@redhat.com>
12387
12388         * doc/TODO: some notes on high-level todo items. Little nitpick
12389         stuff is all in @todo, so no need to add it here.
12390
12391         * doc/config-file.txt: some notes on how config file might look
12392
12393 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12394
12395         * configure.in: 0.6
12396
12397         * NEWS: Update.
12398
12399 2003-03-17  Havoc Pennington  <hp@redhat.com>
12400
12401         * dbus/dbus-internals.h: add gcc attributes so that
12402         our printf-style functions warn on bad arguments to
12403         format
12404
12405         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12406         format bug
12407
12408         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12409         printf format bug
12410
12411 2003-03-17  Havoc Pennington  <hp@redhat.com>
12412
12413         * bus/test-main.c (main): make it print something as it runs
12414         so make check doesn't look stuck
12415
12416         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12417         from CVS, now obsolete
12418
12419 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12420
12421         * bus/dispatch.c: (bus_dispatch):
12422         Refetch the service name since it may have been reallocated
12423         when dbus_message_set_sender was called.
12424
12425         * dbus/dbus-sysdeps.c: (_dbus_accept):
12426         Add address and address length variables and use them to stop
12427         valgrind from complaining.
12428
12429 2003-03-17  Havoc Pennington  <hp@pobox.com>
12430
12431         All tests pass, no memleaks, no valgrind complaints.
12432
12433         * bus/test.c: refcount handler_slot
12434
12435         * bus/connection.c (bus_connections_new): refcount
12436         connection_data_slot
12437
12438         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12439         bytes so that auth scripts pass.
12440
12441         * bus/dispatch.c: init message_handler_slot so it gets allocated
12442         properly
12443
12444         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12445
12446         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12447         dealloc server_pipe_hash when no longer used for benefit of
12448         leak checking
12449
12450         * dbus/dbus-auth.c (process_command): memleak fix
12451
12452         * bus/dispatch.c (check_hello_message): memleak fix
12453
12454 2003-03-16  Havoc Pennington  <hp@pobox.com>
12455
12456         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12457
12458 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12459
12460         * bus/activation.c (bus_activation_activate_service): Append
12461         the pending activation entry to the list of pending activations.
12462
12463 2003-03-16  Havoc Pennington  <hp@pobox.com>
12464
12465         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12466         connections
12467
12468         * dbus/dbus-address.c (create_entry): fix OOM handling when
12469         failing to alloc entry->method
12470
12471 2003-03-16  Havoc Pennington  <hp@pobox.com>
12472
12473         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12474         the watch
12475
12476         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12477         add some missing dbus_set_result
12478
12479         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12480         alloc the DBusMessageHandler
12481
12482         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12483         the transport here, since we call this from the finalizer; it
12484         resulted in a double-finalize.
12485
12486         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12487         where we tried to use transport->connection that was NULL,
12488         happened when transport was disconnected early on due to OOM
12489
12490         * bus/*.c: adapt to handle OOM for watches/timeouts
12491
12492         * dbus/dbus-transport-unix.c: port to handle OOM during
12493         watch handling
12494
12495         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12496         reference to unused bytes instead of a copy
12497
12498         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12499         out of memory
12500
12501         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12502         FALSE on OOM
12503
12504         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12505         of memory
12506
12507 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12508
12509         * doc/dbus-specification.sgml:
12510         Document reply message for ActivateService.
12511
12512 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12513
12514         * bus/activation.c: (bus_pending_activation_entry_free),
12515         (bus_pending_activation_free), (bus_activation_new),
12516         (bus_activation_unref), (bus_activation_service_created),
12517         (bus_activation_activate_service):
12518         * bus/activation.h:
12519         * bus/bus.c: (bus_context_new):
12520         * bus/desktop-file.c: (new_section):
12521         * bus/driver.c: (bus_driver_send_service_deleted),
12522         (bus_driver_handle_activate_service):
12523         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12524         * bus/services.h:
12525         * dbus/dbus-connection.c:
12526         (dbus_connection_send_with_reply_and_block):
12527         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12528         * dbus/dbus-protocol.h:
12529         Make activation work better. Now pending activations will be queued
12530         and the daemon won't try to activate services that are already registered.
12531
12532 2003-03-16  Havoc Pennington  <hp@pobox.com>
12533
12534         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12535         connection data
12536
12537         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12538         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12539
12540 2003-03-16  Havoc Pennington  <hp@pobox.com>
12541
12542         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12543         this. always run the test suite before commit...
12544
12545         * bus/*: adapt to DBusConnection API changes
12546
12547         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12548         requires renaming stuff to avoid dbus_connection_dispatch name
12549         conflict.
12550
12551         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12552         function
12553
12554         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12555         separate from _dbus_message_loader_return_buffer()
12556
12557         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12558         this, because it's now always broken to use; the number of
12559         messages in queue vs. the number still buffered by the message
12560         loader is undefined/meaningless. Should use
12561         dbus_connection_get_dispatch_state().
12562         (dbus_connection_dispatch): rename from
12563         dbus_connection_dispatch_message
12564
12565 2003-03-16  Havoc Pennington  <hp@pobox.com>
12566
12567         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12568         implementation
12569
12570 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12571
12572         * dbus/dbus-connection.c:
12573         (dbus_connection_send_with_reply_and_block):
12574         Decrease connection->n_incoming when removing an entry
12575         from the list.
12576         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12577         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12578         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12579         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12580         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12581         (dbus_dict_get_byte_array):
12582         Handle NULL arrays and strings. Also add support for byte arrays.
12583
12584         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12585         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12586         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12587         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12588         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12589         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12590         * dbus/dbus-marshal.h:
12591         Add support for marshalling and demarshalling empty arrays and strings.
12592
12593         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12594         (dbus_message_append_string_array),
12595         (dbus_message_iter_get_boolean),
12596         (dbus_message_iter_get_boolean_array),
12597         (dbus_message_iter_get_int32_array),
12598         (dbus_message_iter_get_uint32_array),
12599         (dbus_message_iter_get_double_array),
12600         (dbus_message_iter_get_byte_array),
12601         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12602         (check_message_handling):
12603         Add support for getting empty arrays and dicts.
12604
12605         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12606         Don't do any validation at all for now, that's better than just checking
12607         for ASCII.
12608
12609         * test/data/valid-messages/emptiness.message:
12610         New test message with lots of empty arrays.
12611
12612 2003-03-16  Havoc Pennington  <hp@pobox.com>
12613
12614         * dbus/dbus-connection.c
12615         (_dbus_connection_queue_received_message_link): new function that
12616         can't fail due to OOM
12617
12618         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12619         new function pops a message together with a list link
12620         containing it.
12621
12622         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12623         message queuing functions to avoid needing to alloc memory
12624
12625 2003-03-16  Havoc Pennington  <hp@pobox.com>
12626
12627         Oops - test code was only testing failure of around 30 of the
12628         mallocs in the test path, but it turns out there are 500+
12629         mallocs. I believe this was due to misguided linking setup such
12630         that there was one copy of dbus_malloc etc. in the daemon and one
12631         in the shared lib, and only daemon mallocs were tested. In any
12632         case, the test case now tests all 500+ mallocs, and doesn't pass
12633         yet, though there are lots of fixes in this patch.
12634
12635         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12636         this so that it doesn't need to allocate memory, since it
12637         has no way of indicating failure due to OOM (and would be
12638         annoying if it did).
12639
12640         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12641
12642         * bus/Makefile.am: rearrange to create two self-contained
12643         libraries, to avoid having libraries with overlapping symbols.
12644         that was resulting in weirdness, e.g. I'm pretty sure there
12645         were two copies of global static variables.
12646
12647         * dbus/dbus-internals.c: move the malloc debug stuff to
12648         dbus-memory.c
12649
12650         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12651         empty.
12652
12653         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12654
12655         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12656         on failure.
12657
12658         * bus/dispatch.c (bus_dispatch_add_connection): free
12659         message_handler_slot when no longer using it, so
12660         memory leak checkers are happy for the test suite.
12661
12662         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12663
12664         * bus/bus.c (new_connection_callback): disconnect in here if
12665         bus_connections_setup_connection fails.
12666
12667         * bus/connection.c (bus_connections_unref): fix to free the
12668         connections
12669         (bus_connections_setup_connection): if this fails, don't
12670         disconnect the connection, just be sure there are no side
12671         effects.
12672
12673         * dbus/dbus-string.c (undo_alignment): unbreak this
12674
12675         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12676         leaking
12677         (_dbus_auth_new): fix the order in which we free strings
12678         on OOM failure
12679
12680         * bus/connection.c (bus_connection_disconnected): fix to
12681         not send ServiceDeleted multiple times in case of memory
12682         allocation failure
12683
12684         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12685         get the base service name
12686         (dbus_bus_register_client): don't return base service name,
12687         instead store it on the DBusConnection and have an accessor
12688         function for it.
12689         (dbus_bus_register_client): rename dbus_bus_register()
12690
12691         * bus/dispatch.c (check_hello_message): verify that other
12692         connections on the bus also got the correct results, not
12693         just the one sending hello
12694
12695 2003-03-15  Havoc Pennington  <hp@pobox.com>
12696
12697         Make it pass the Hello handling test including all OOM codepaths.
12698         Now to do other messages...
12699
12700         * bus/services.c (bus_service_remove_owner): fix crash when
12701         removing owner from an empty list of owners
12702         (bus_registry_ensure): don't leave service in the list of
12703         a connection's owned services if we fail to put the service
12704         in the hash table.
12705
12706         * bus/connection.c (bus_connection_preallocate_oom_error): set
12707         error flag on the OOM error.
12708
12709         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12710         handle _dbus_transport_set_connection failure
12711
12712         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12713         to create watches up front and simply enable/disable them as
12714         needed.
12715         (unix_connection_set): this can now fail on OOM
12716
12717         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12718         of enabling/disabling a watch or timeout.
12719
12720         * bus/loop.c (bus_loop_iterate): don't touch disabled
12721         watches/timeouts
12722
12723         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12724
12725 2003-03-15  Havoc Pennington  <hp@pobox.com>
12726
12727         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12728         write useful test code, after all that futzing around ;-)
12729
12730         Test does not yet pass because we can't handle OOM in
12731         _dbus_transport_messages_pending (basically,
12732         dbus_connection_preallocate_send() does not prealloc the write
12733         watch). To fix this, I think we need to add new stuff to
12734         set_watch_functions, namely a SetEnabled function so we can alloc
12735         the watch earlier, then enable it later.
12736
12737         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12738         dbus-memory.c to the convenience lib
12739
12740         * bus/test.c: rename some static functions to keep them clearly
12741         distinct from stuff in connection.c. Handle client disconnection.
12742
12743 2003-03-14  Havoc Pennington  <hp@pobox.com>
12744
12745         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12746         transport, tests more of the real codepath. Set up clients
12747         with bus_setup_debug_client.
12748
12749         * bus/test.c (bus_setup_debug_client): function to set up debug
12750         "clients" on the main loop
12751
12752         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12753         support
12754
12755         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12756         server type
12757
12758         * dbus/dbus-server-debug.c: support a debug server based on pipes
12759
12760         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12761         (_dbus_close): new function
12762
12763         * configure.in: check for socketpair
12764
12765 2003-03-14  Havoc Pennington  <hp@redhat.com>
12766
12767         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12768         cheesy hack
12769
12770         * dbus/dbus-transport-debug.c: rework this a good bit to be
12771         less complicated. hopefully still works.
12772
12773         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12774         manually
12775
12776         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12777         after running it
12778
12779         * dbus/dbus-message.c (dbus_message_copy): rename from
12780         dbus_message_new_from_message, fix it up to copy
12781         all the message fields, add test case
12782
12783         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12784         not quite passing yet
12785
12786 2003-03-14  Havoc Pennington  <hp@pobox.com>
12787
12788         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12789         until no work remains" in test code. (the large diff here
12790         is just code movement, no actual changes)
12791
12792         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12793         1, no point waiting around for test code.
12794         (_dbus_server_debug_accept_transport): unref the timeout
12795         after adding it (right?)
12796
12797         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12798
12799 2003-03-13  Havoc Pennington  <hp@redhat.com>
12800
12801         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12802         out of memory
12803
12804         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12805         of memory
12806
12807         * dbus/dbus-connection.h: Make AddWatchFunction and
12808         AddTimeoutFunction return a bool so they can fail on out-of-memory
12809
12810         * bus/bus.c (bus_context_new): set up timeout handlers
12811
12812         * bus/connection.c (bus_connections_setup_connection): set up
12813         timeout handlers
12814
12815         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12816         can fail
12817
12818         * bus/bus.c (bus_context_new): adapt to changes
12819
12820         * bus/connection.c: adapt to changes
12821
12822         * test/watch.c: adapt to DBusWatch changes
12823
12824         * bus/dispatch.c (bus_dispatch_test): started adding this but
12825         didn't finish
12826
12827 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12828
12829         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12830
12831 2003-03-13  Havoc Pennington  <hp@pobox.com>
12832
12833         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12834         set up a test framework as for the library
12835
12836 2003-03-12  Havoc Pennington  <hp@pobox.com>
12837
12838         Throughout: purge global variables, introduce BusActivation,
12839         BusConnections, BusRegistry, etc. objects instead.
12840
12841         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12842         message bus object
12843
12844         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12845         going to redo this a bit differently I think
12846
12847 2003-03-12  Havoc Pennington  <hp@redhat.com>
12848
12849         Mega-patch that gets the message bus daemon initially handling
12850         out-of-memory. Work still needed. Also lots of random
12851         moving stuff to DBusError instead of ResultCode.
12852
12853         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12854
12855         * dbus/dbus-connection.c
12856         (dbus_connection_send_with_reply_and_block): use DBusError
12857
12858         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12859         DBusResultCode
12860
12861         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12862         code here, as the only failure possible is OOM.
12863
12864         * bus/connection.c (bus_connection_disconnect):
12865         rename bus_connection_disconnected as it's a notification only
12866
12867         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12868         "name" on get_args failure, should be done by get_args;
12869         don't disconnect client for bad args, just return an error.
12870         (bus_driver_handle_service_exists): ditto
12871
12872         * bus/services.c (bus_services_list): NULL-terminate returned array
12873
12874         * bus/driver.c (bus_driver_send_service_lost)
12875         (bus_driver_send_service_acquired): send messages from driver to a
12876         specific client to the client's unique name, not to the broadcast
12877         service.
12878
12879         * dbus/dbus-message.c (decode_header_data): reject messages that
12880         contain no name field
12881         (_dbus_message_get_client_serial): rename to
12882         dbus_message_get_serial and make public
12883         (_dbus_message_set_serial): rename from set_client_serial
12884         (_dbus_message_set_reply_serial): make public
12885         (_dbus_message_get_reply_serial): make public
12886
12887         * bus/connection.c (bus_connection_foreach): allow stopping
12888         iteration by returning FALSE from foreach function.
12889
12890         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12891         (dbus_connection_free_preallocated_send)
12892         (dbus_connection_preallocate_send): new API for sending a message
12893         without possibility of malloc failure.
12894         (dbus_connection_send_message): rename to just
12895         dbus_connection_send (and same for whole function family)
12896
12897         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12898
12899         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12900
12901         * bus/activation.c: handle/return errors
12902
12903         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12904
12905         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12906         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12907         (_dbus_result_from_errno): move to this file
12908
12909 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12910
12911         * dbus/dbus-marshal.c:
12912         (_dbus_marshal_set_string):
12913         Take a length argument so we can marshal the correct string
12914         length.
12915
12916         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12917         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12918         (_dbus_marshal_test):
12919         * dbus/dbus-marshal.h:
12920         Add support for marshalling and demarshalling dicts.
12921
12922         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12923         Add support for TYPE DICT.
12924
12925         * dbus/dbus-message.c: (set_string_field):
12926         Adjust header padding.
12927
12928         (dbus_message_append_args_valist), (dbus_message_append_dict),
12929         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12930         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12931         (check_message_handling), (check_have_valid_message):
12932         * dbus/dbus-message.h:
12933         Add functions for setting and getting dicts.
12934
12935         * dbus/dbus-protocol.h:
12936         Add DBUS_TYPE_DICT.
12937
12938         * dbus/dbus.h:
12939         Add dbus-dict.h
12940
12941         * doc/dbus-specification.sgml:
12942         Add information about how dicts are marshalled.
12943
12944         * test/data/invalid-messages/dict-with-nil-value.message:
12945         * test/data/invalid-messages/too-short-dict.message:
12946         * test/data/valid-messages/dict-simple.message:
12947         * test/data/valid-messages/dict.message:
12948         Add sample messages containing dicts.
12949
12950 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12951
12952         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12953
12954 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12955
12956         * dbus/Makefile.am:
12957         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12958         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12959         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12960         (dbus_dict_set_double), (dbus_dict_set_string),
12961         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12962         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12963         (dbus_dict_set_string_array), (_dbus_dict_test):
12964         * dbus/dbus-dict.h:
12965         Fix according to comments from Havoc.
12966
12967 2003-03-06  Michael Meeks  <michael@server.home>
12968
12969         * configure.in: if we don't have kde-config, disable have_qt.
12970
12971 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12972
12973         * dbus/Makefile.am:
12974         Add dbus-dict.[ch]
12975
12976         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12977         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12978         (dbus_dict_remove), (dbus_dict_get_value_type),
12979         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12980         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12981         (dbus_dict_put_double), (dbus_dict_put_string),
12982         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12983         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12984         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12985         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12986         (dbus_dict_get_double), (dbus_dict_get_string),
12987         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12988         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12989         (dbus_dict_get_string_array), (_dbus_dict_test):
12990         * dbus/dbus-dict.h:
12991         Add DBusDict implementation
12992
12993         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12994         * dbus/dbus-test.h:
12995         Add _dbus_dict_test
12996
12997 2003-03-04  Havoc Pennington  <hp@pobox.com>
12998
12999         * test/data/auth/*: adapt to changes
13000
13001         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13002         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13003         userid
13004
13005         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13006         more stuff from being in a context name, to make the protocol
13007         simpler to deal with
13008
13009         * dbus/dbus-errors.c (dbus_error_has_name): new function
13010         (dbus_error_is_set): new function
13011
13012         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13013         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13014
13015         * dbus/dbus-connection.c (dbus_connection_flush): also read
13016         messages during a flush operation
13017
13018         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13019
13020 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13021
13022         * configure.in: Check for gethostbyname on Solaris.
13023
13024         * dbus/dbus-transport.c: (_dbus_transport_open):
13025         Remove duplicate "tcp" entry.
13026
13027         * doc/dbus-specification.sgml:
13028         Clarify some things.
13029
13030 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13031
13032         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13033         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13034         (_dbus_keyring_test):
13035         * dbus/dbus-md5.c: (_dbus_md5_compute):
13036         * dbus/dbus-sha.c: (_dbus_sha_compute):
13037         Plug memory leaks.
13038
13039 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13040
13041         * README: Add some things.
13042
13043 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13044
13045         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13046         after case DBUS_TYPE_BOOELAN.
13047
13048 2003-03-02  Havoc Pennington  <hp@pobox.com>
13049
13050         * test/break-loader.c (randomly_set_extreme_ints): add test that
13051         sets really huge and small integers
13052
13053         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13054         that length of boolean array fits in the string, and that
13055         string has room for boolean value in single-bool case.
13056
13057         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13058         optional value to "ALIGN" command which is what to fill the
13059         alignment with.
13060
13061         * test/data/valid-messages/no-padding.message: add regression
13062         test for the message padding problem
13063
13064 2003-03-02  Havoc Pennington  <hp@pobox.com>
13065
13066         * dbus/dbus-message.c (decode_header_data): fix to always init
13067         message_padding, from Benjamin Dauvergne
13068
13069 2003-03-02  Havoc Pennington  <hp@pobox.com>
13070
13071         * configure.in: 0.5
13072
13073         * NEWS: Update.
13074
13075 2003-03-01  Joe Shaw  <joe@assbarn.com>
13076
13077         * configure.in: Check for "struct cmsgcred" and try to access its
13078         members for BSD-like unices.
13079
13080         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13081         _dbus_read_credentials_unix_socket().
13082         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13083         read() for reading the credential byte off the unix socket.  Use
13084         struct cmsgcred on systems that support it.
13085
13086 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13087
13088         * glib/Makefile.am:
13089         * configure.in:
13090         Make gthreads-2.0 dependency optional. Don't build thread test if
13091         its not found.
13092
13093 2003-02-27  Havoc Pennington  <hp@pobox.com>
13094
13095         * dbus/dbus-connection.c
13096         (dbus_connection_send_message_with_reply_and_block): fix doh!
13097         doh! doh! bug that resulted in never removing a reply from the
13098         queue, no wonder we called get_reply_serial so much ;-)
13099
13100         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13101         and client serial instead of demarshaling them every time
13102
13103 2003-02-27  Havoc Pennington  <hp@pobox.com>
13104
13105         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13106         more inlined, using dbus-string-private.h, speeds things up
13107         substantially
13108
13109         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13110         when freeing the string
13111         (_dbus_string_steal_data): fix for align offset
13112         (undo_alignment): new function
13113
13114 2003-02-26  Havoc Pennington  <hp@redhat.com>
13115
13116         All kinds of audit fixes from Owen, plus initial attempt to
13117         handle unaligned memory returned from malloc.
13118
13119         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13120         leave room for align_offset and nul byte
13121         (fixup_alignment): function to track an align_offset and
13122         ensure real->str is aligned
13123         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13124         to allow a nul byte plus align offset
13125         (_dbus_string_lock): fix overflow issue
13126         (_dbus_string_init_const_len): add assertions on sanity of len,
13127         assign allocated to be ALLOCATION_PADDING larger than len
13128         (set_length): fixup the overflow handling
13129         (_dbus_string_get_data_len): fix overflow in assertion
13130         (open_gap): detect overflow in size of gap to be opened
13131         (_dbus_string_lengthen): add overflow check
13132         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13133         (_dbus_string_append): add overflow check
13134         (_dbus_string_append_unichar): overflow
13135         (_dbus_string_delete): fix overflow in assertion
13136         (_dbus_string_copy_len): overflow in assertion
13137         (_dbus_string_replace_len): overflows in assertions
13138         (_dbus_string_find): change to implement in terms of
13139         _dbus_string_find_to
13140         (_dbus_string_find_to): assorted fixage
13141         (_dbus_string_equal_c_str): assert c_str != NULL,
13142         fix logic so the function works
13143         (_dbus_string_ends_with_c_str): fix overflow thingy
13144         (_dbus_string_base64_encode): overflow fix
13145         (_dbus_string_validate_ascii): overflow
13146         (_dbus_string_validate_nul): overflow
13147
13148 2003-02-26  Havoc Pennington  <hp@redhat.com>
13149
13150         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13151
13152 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13153
13154         * configure.in:
13155         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13156
13157         * dbus/dbus-connection.c:
13158         * dbus/dbus-connection.h:
13159         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13160         Add dbus_connection_set_wakeup_main_function and use it when queueing
13161         incoming and outgoing messages.
13162
13163
13164         * dbus/dbus-dataslot.c:
13165         Threadsafe usage of DBusDataSlotAllocator
13166
13167         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13168         dbus_new can fail.
13169
13170         * dbus/dbus-server-unix.c:
13171         Add todo comment
13172
13173         * glib/dbus-gmain.c:
13174         Implement the new wakeup functions for glib.
13175
13176         * glib/Makefile.am:
13177         * glib/test-thread-client.c:
13178         * glib/test-thread-server.c:
13179         * glib/test-thread.h:
13180         Initial cut at some thread test code. Not really done yet.
13181
13182 2003-02-26  Havoc Pennington  <hp@pobox.com>
13183
13184         * dbus/dbus-connection.c
13185         (dbus_connection_send_message_with_reply_and_block): fix crash
13186         where we ref'd the outgoing message instead of the returned reply
13187
13188         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13189         at the end of this function, so if we didn't need to read for
13190         authentication, we reinstall it for receiving messages
13191
13192         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13193         a NULL sender for peer-to-peer case
13194
13195         * dbus/dbus-transport-unix.c (check_read_watch): handle
13196         !authenticated case correctly
13197
13198         * glib/dbus-gmain.c: add support for DBusServer
13199
13200         * dbus/dbus-server.c: add data slot support
13201
13202         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13203         return values and handle errors
13204
13205         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13206         DBusConnection
13207
13208         * Doxyfile.in (INPUT): add glib subdir
13209
13210         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13211         setup_with_g_main instead of hookup_with_g_main; write docs
13212
13213 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13214
13215         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13216         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13217         * dbus/dbus-message.c: (dbus_message_append_boolean),
13218         (dbus_message_append_boolean_array),
13219         (dbus_message_get_args_valist), (_dbus_message_test):
13220         * dbus/dbus-message.h:
13221         * doc/dbus-specification.sgml:
13222         Various fixes as pointed out by Havoc.
13223
13224         * test/data/invalid-messages/bad-boolean-array.message:
13225         * test/data/invalid-messages/bad-boolean.message:
13226         Add invalid boolean value test cases.
13227
13228 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13229
13230         * dbus/dbus-internals.c: (_dbus_type_to_string):
13231         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13232         (_dbus_marshal_validate_arg):
13233         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13234         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13235         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13236         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13237         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13238         (dbus_message_iter_get_double),
13239         (dbus_message_iter_get_boolean_array), (message_iter_test):
13240         * dbus/dbus-message.h:
13241         * dbus/dbus-protocol.h:
13242         * doc/dbus-specification.sgml:
13243         * test/data/valid-messages/lots-of-arguments.message:
13244         Add support for boolean and boolean array types.
13245
13246 2003-02-23  Havoc Pennington  <hp@pobox.com>
13247
13248         * dbus/dbus-keyring.c: finish most of this implementation and
13249         simple unit test
13250
13251         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13252         these barf if the error isn't cleared to NULL
13253
13254         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13255         (_dbus_create_directory): new function
13256
13257         * dbus/dbus-errors.c (dbus_set_error): fix warning
13258
13259         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13260         (_dbus_string_hex_decode): new function
13261         (test_hex_roundtrip): test code
13262
13263         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13264
13265         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13266
13267         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13268         the save-to-temp/rename trick to atomically write the new file
13269         (_dbus_string_parse_uint): new function
13270
13271 2003-02-22  Havoc Pennington  <hp@pobox.com>
13272
13273         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13274
13275 2003-02-22  Havoc Pennington  <hp@pobox.com>
13276
13277         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13278         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13279
13280         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13281
13282         * dbus/test/data/sha-1: add US government test suite for SHA-1
13283
13284 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13285
13286         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13287         Make string arrays NULL-terminated.
13288
13289         * dbus/dbus-memory.c: (dbus_free_string_array):
13290         * dbus/dbus-memory.h:
13291         New function for freeing NULL-terminated string arrays.
13292
13293         * dbus/dbus-message-builder.c: (append_quoted_string),
13294         (_dbus_message_data_load):
13295         Add support for array types.
13296
13297         * dbus/dbus-message.c: (check_message_handling):
13298         Add more types as test cases.
13299
13300         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13301         (_dbus_string_parse_double):
13302         Add the start offset to the end offset.
13303
13304         * test/data/valid-messages/lots-of-arguments.message:
13305         New test message with lots of arguments.
13306
13307 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13308
13309         * dbus/dbus-message.c: (dbus_message_append_nil),
13310         (dbus_message_append_int32), (dbus_message_append_uint32),
13311         (dbus_message_append_double), (dbus_message_append_string),
13312         (dbus_message_append_int32_array),
13313         (dbus_message_append_uint32_array),
13314         (dbus_message_append_double_array),
13315         (dbus_message_append_byte_array),
13316         (dbus_message_append_string_array):
13317         Fix all out-of-memory handling in these functions.
13318
13319 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13320
13321         * dbus/dbus-message.c: (dbus_message_append_nil):
13322         Fix a silly.
13323
13324 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13325
13326         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13327         (dbus_message_append_nil), (dbus_message_append_int32_array),
13328         (dbus_message_append_uint32_array),
13329         (dbus_message_append_double_array),
13330         (dbus_message_append_byte_array),
13331         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13332         (dbus_message_iter_get_int32_array),
13333         (dbus_message_iter_get_uint32_array),
13334         (dbus_message_iter_get_double_array),
13335         (dbus_message_iter_get_byte_array),
13336         (dbus_message_iter_get_string_array):
13337
13338         * dbus/dbus-message.h:
13339         Add functions for appending and getting arrays.
13340
13341 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13342
13343         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13344         element size at least 8 bytes, fixes mempool tests on
13345         64-bit machines.
13346
13347 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13348
13349         * dbus/dbus-transport-unix.c (unix_do_iteration):
13350         Unlock the connection mutex during a blocking select call.
13351         Add todo about how we need a way to wake up the select.
13352
13353         * dbus/dbus-connection-internal.h:
13354         * dbus/dbus-connection.c:
13355         Add _dbus_connection_lock and _dbus_connection_unlock.
13356
13357 2003-02-19  Havoc Pennington  <hp@pobox.com>
13358
13359         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13360         Doxyfile.in, not Doxyfile
13361
13362         * dbus/dbus-keyring.c: do some hacking on this
13363
13364         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13365
13366         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13367         dbus_error_init
13368         (dbus_set_error): remove dbus_error_init, check for message ==
13369         NULL *before* we sprintf into it, and add @todo about including
13370         system headers in this file
13371
13372         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13373
13374         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13375
13376         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13377         get various bits of user information based on either username
13378         or user ID
13379         (_dbus_homedir_from_username): new function
13380
13381 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13382
13383         * configure.in:
13384         Add check for nonposix getpwnam_r
13385
13386         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13387         Align the pool element size to a sizeof (void *) boundary.
13388
13389         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13390         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13391         General Solaris fixes.
13392
13393         * test/data/valid-messages/simplest-manual.message:
13394         Explicitly state that we want little-endian packing.
13395
13396 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13397
13398         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13399
13400         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13401         Added to create a transport connecting using a tcp/ip socket.
13402
13403         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13404         to a tcp socket at given host and port.
13405         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13406         hostname and port.
13407
13408         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13409
13410         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13411         Added to create a server listening on a TCP/IP socket.
13412
13413 2003-02-19  Havoc Pennington  <hp@pobox.com>
13414
13415         Throughout: mop up all the Doxygen warnings and undocumented
13416         stuff.
13417
13418         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13419         to search any paths.
13420
13421         * dbus/dbus-threads.c: move global mutex initializers to
13422         dbus-internals.h, multiple prototypes was confusing doxygen
13423         besides being kind of ugly
13424
13425         * Doxyfile (PREDEFINED): have Doxygen define
13426         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13427         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13428         (do not abuse the feature! it's for stuff like the autogenerated
13429         macros in dbus-md5.c, not just for things you don't feel like
13430         documenting...)
13431
13432 2003-02-18  Havoc Pennington  <hp@pobox.com>
13433
13434         * dbus/dbus-string.c (_dbus_string_zero): new function
13435
13436         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13437         wrap it in some dbus-friendly API
13438
13439         * dbus/dbus-types.h: add 16-bit types
13440
13441 2003-02-18  Joe Shaw  <joe@assbarn.com>
13442
13443         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13444         credentials from our currently running process.
13445         (get_word): Fix a buglet where we were copying the entire length
13446         instead of relative to our position.
13447
13448         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13449         keys on the stack... it's 640k of data.
13450
13451         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13452         read the credentials byte off the socket, even if we don't have
13453         SO_PEERCRED.
13454         (_dbus_poll): Implement poll() using select() for systems which
13455         don't have it.
13456
13457         * glib/test-dbus-glib.c (main): Print out an error if no
13458         parameters are given.
13459
13460         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13461         can fallback to a secondary auth mechanism if the first fails.
13462
13463 2003-02-18  Havoc Pennington  <hp@pobox.com>
13464
13465         * AUTHORS: add Alex
13466
13467 2003-02-17  Havoc Pennington  <hp@pobox.com>
13468
13469         * doc/dbus-specification.sgml: lots of cosmetic
13470         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13471         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13472         s/server/bus/ (except in authentication section). Add a section
13473         "Message Bus Message Routing"
13474
13475 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13476
13477         Release 0.4
13478
13479         * NEWS: Update
13480
13481 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13482
13483         * doc/dbus-specification.sgml:
13484         Specification updates.
13485
13486 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13487
13488         * bus/activation.c: (bus_activation_init), (child_setup),
13489         (bus_activation_activate_service):
13490         * bus/activation.h:
13491         * bus/main.c: (main):
13492         Set DBUS_ADDRESS environment variable.
13493
13494         * dbus/dbus-errors.c: (dbus_set_error):
13495         Don't use va_copy since that's a C99 feature.
13496
13497         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13498         (_dbus_spawn_async):
13499         * dbus/dbus-sysdeps.h:
13500         Add child_setup_func to _dbus_spawn_async.
13501
13502         * doc/dbus-specification.sgml:
13503         Update specification.
13504
13505         * test/spawn-test.c: (setup_func), (main):
13506         Fix test.
13507
13508 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13509
13510         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13511         Added todo.
13512
13513 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13514
13515         * doc/.cvsignore:
13516         * doc/Makefile.am:
13517         * doc/dbus-test-plan.sgml:
13518         Add test plan document.
13519
13520         * test/Makefile.am:
13521         Fix distcheck.
13522
13523 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13524
13525         * dbus/dbus-message.c: (decode_header_data),
13526         (_dbus_message_loader_return_buffer):
13527         Set the header padding amount when loading a message.
13528
13529 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13530
13531         * bus/dispatch.c: (send_one_message):
13532         Only send broadcast messages to registered connections.
13533
13534         * dbus/dbus-message.c: (dbus_message_name_is):
13535         * dbus/dbus-message.h:
13536         New convenience function.
13537
13538         * dbus/dbus-transport-debug.c: (do_reading):
13539         Only dispatch one message per run.
13540
13541         * test/Makefile.am:
13542         * test/bus-test.c: (new_connection_callback), (die),
13543         (test_hello_client1_handler), (test_hello_client2_handler),
13544         (test_hello_replies), (main):
13545
13546         * test/bus-test-loop.[ch]:
13547         Add these.
13548
13549 2003-02-16  Havoc Pennington  <hp@pobox.com>
13550
13551         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13552         backward conditional
13553
13554 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13555
13556         * dbus/dbus-connection.c:
13557         Implement sent_message_with_reply. (with_reply_and block is still
13558         busted).
13559         Made dispatch_message not lose message if OOM.
13560
13561         * dbus/dbus-errors.h:
13562         Add NoReply error (for reply timeouts).
13563
13564 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13565
13566         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13567         Actually free keys and values when destroying hashtable.
13568
13569 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13570
13571         * dbus/dbus-auth.c: (client_try_next_mechanism):
13572         Plug a leak.
13573
13574         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13575         Return TRUE if there's no thread implementation around.
13576
13577         * glib/dbus-gmain.c: (free_source),
13578         (dbus_connection_hookup_with_g_main):
13579         Make sure to remove the GSource when the connection is finalized.
13580
13581 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13582
13583         * bus/dispatch.c: (bus_dispatch_message_handler):
13584         * dbus/dbus-errors.h:
13585         Return an error if someone tries to send a message to a service
13586         that doesn't exist.
13587
13588 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13589
13590         * bus/activation.c: (load_directory), (bus_activation_init),
13591         (bus_activation_activate_service):
13592         * bus/activation.h:
13593         * bus/driver.c:
13594         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13595         More work on the activation handling.
13596
13597         * dbus/dbus-errors.h:
13598         Add some error messages
13599
13600         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13601         * dbus/dbus-message.h:
13602         New function that creates an error message.
13603
13604         * dbus/dbus-protocol.h:
13605         Add ACTIVATE_SERVER message.
13606
13607         * dbus/dbus-server-unix.c: (unix_handle_watch),
13608         (_dbus_server_new_for_domain_socket):
13609         Call _dbus_fd_set_close_on_exec.
13610
13611         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13612         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13613         (_dbus_fd_set_close_on_exec):
13614         * dbus/dbus-sysdeps.h:
13615         Add _dbus_fd_set_close_on exec function. Also add function that checks
13616         that all open fds are set to close-on-exec and warns otherwise.
13617
13618         * dbus/dbus-transport-unix.c:
13619         (_dbus_transport_new_for_domain_socket):
13620         Call _dbus_fd_set_close_on_exec.
13621
13622 2003-02-16  Havoc Pennington  <hp@pobox.com>
13623
13624         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13625         allow people to avoid setting SIGPIPE to SIG_IGN
13626         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13627         we've been asked not to
13628
13629 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13630
13631         * dbus/dbus-list.c: (_dbus_list_append_link),
13632         (_dbus_list_prepend_link):
13633         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13634         (dbus_realloc):
13635         Warning fixes.
13636
13637 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13638
13639         * bus/Makefile.am:
13640         * bus/activation.c: (bus_activation_entry_free),
13641         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13642         * bus/activation.h:
13643         * bus/main.c: (main):
13644         Add simple activation support, doesn't work yet though.
13645
13646 2003-02-15   Zack Rusin  <zack@kde.org>
13647
13648         * qt/dbus-qthread.cpp:  small casting fix
13649
13650 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13651
13652         * dbus/dbus-errors.c: (dbus_set_error):
13653         * dbus/dbus-errors.h:
13654         Add a few errors and make dbus_set_error void.
13655
13656         * dbus/dbus-sysdeps.c:
13657         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13658         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13659         * dbus/dbus-sysdeps.h:
13660         Add _dbus_spawn_async.
13661
13662         * test/spawn-test.c: (main):
13663         Test for _dbus_spawn_async.
13664
13665 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13666
13667         * dbus/dbus-internals.h:
13668         Fix build without tests.
13669
13670         * dbus/dbus-list.c: (alloc_link):
13671         Fix a segfault when a malloc fails.
13672
13673         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13674         (dbus_malloc0), (dbus_realloc):
13675         Add support for malloc debugging.
13676
13677 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13678
13679         * dbus/dbus-threads.c:
13680         * dbus/dbus-threads.h:
13681         Add condvars. Remove static mutext from API.
13682         Implement static mutexes by initializing them from threads_init.
13683
13684         * glib/dbus-gthread.c:
13685         * qt/dbus-qthread.cpp:
13686         Update with the thread api changes.
13687
13688
13689         * dbus/dbus-list.c:
13690         * dbus/dbus-list.h:
13691         Turn StaticMutex into normal mutex + init function.
13692         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13693         _dbus_list_append_link, _dbus_list_prepend_link
13694
13695
13696         * dbus/dbus-sysdeps.c:
13697         * dbus/dbus-sysdeps.h:
13698         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13699         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13700
13701         * dbus/dbus-protocol.h:
13702         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13703
13704         * dbus/dbus-message.c:
13705         Make ref/unref atomic.
13706         Fix some docs.
13707
13708         * dbus/dbus-connection-internal.h:
13709         * dbus/dbus-connection.c:
13710         * dbus/dbus-connection.h:
13711         Make threadsafe.
13712         Change _peek to _borrow,_return & _steal_borrowed.
13713         Change disconnect callback to event.
13714         Make dbus_connection_dispatch_messages reentrant.
13715
13716         * dbus/dbus-transport.c:
13717         Don't ref the connection on calls to the transport
13718         implementation.
13719
13720         * dbus/dbus-message-handler.c:
13721         Make threadsafe.
13722
13723         * glib/dbus-gmain.c:
13724         Don't use peek_message anymore
13725
13726         * test/Makefile.am:
13727         * test/debug-thread.c:
13728         * test/debug-thread.h:
13729         Simple thread implementation that asserts() on deadlocks in
13730         single-threaded code.
13731
13732         * test/bus-test.c:
13733         (main) Call debug_threads_init.
13734
13735         * test/watch.c:
13736         Use disconnect message instead of disconnect callback.
13737
13738         * bus/connection.c:
13739         * bus/connection.h:
13740         Don't call dbus_connection_set_disconnect_function. Instead export
13741         bus_connection_disconnect.
13742
13743         * bus/dispatch.c:
13744         Call bus_connection_disconnect when we get a disconnected message.
13745
13746 2003-02-15  Havoc Pennington  <hp@pobox.com>
13747
13748         * dbus/dbus-message.c (dbus_message_new): fool around with the
13749         docs
13750
13751 2003-02-14  Havoc Pennington  <hp@pobox.com>
13752
13753         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13754
13755         * dbus/dbus-memory.c: fail if the debug functions indicate we
13756         should
13757
13758         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13759         (_dbus_decrement_fail_alloc_counter): debug functions to
13760         simulate memory allocation failures
13761
13762 2003-02-14  Havoc Pennington  <hp@pobox.com>
13763
13764         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13765         to DBusError
13766
13767 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13768
13769         * bus/driver.c: (bus_driver_handle_hello):
13770         * bus/driver.h:
13771         * bus/services.c: (bus_service_lookup):
13772         Reorder message sending so we get a more sane order.
13773
13774         * test/bus-test.c: (message_handler):
13775         Fix tyop.
13776
13777 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13778
13779         * bus/driver.c: (bus_driver_send_service_deleted),
13780         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13781         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13782         (bus_driver_send_welcome_message),
13783         (bus_driver_handle_list_services),
13784         (bus_driver_handle_acquire_service),
13785         (bus_driver_handle_service_exists):
13786         * dbus/dbus-bus.c: (dbus_bus_register_client),
13787         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13788         * dbus/dbus-errors.c: (dbus_result_to_string):
13789         * dbus/dbus-errors.h:
13790         * dbus/dbus-message.c: (dbus_message_append_args),
13791         (dbus_message_append_args_valist), (dbus_message_get_args),
13792         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13793         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13794         (dbus_message_iter_get_byte_array),
13795         (dbus_message_iter_get_string_array), (message_iter_test),
13796         (check_message_handling), (_dbus_message_test):
13797         * dbus/dbus-message.h:
13798         * test/bus-test.c: (main):
13799         Change fields to arguments in messages, so that they won't be
13800         confused with header fields.
13801
13802         * glib/test-dbus-glib.c: (main):
13803         Remove append_fields from hello message.
13804
13805 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13806
13807         * dbus/dbus-errors.c:
13808         * dbus/dbus-message.c:
13809         * dbus/dbus-string.c:
13810         Documentation fixes.
13811
13812 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13813
13814         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13815         (remove_timeout):
13816         Implement support for timeouts in dbus-glib.
13817
13818 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13819
13820         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13821         * dbus/dbus-message.c: (process_test_subdir):
13822         * test/break-loader.c: (find_breaks_based_on):
13823         Plug some memory leaks.
13824
13825 2003-02-13  Richard Hult  <rhult@codefactory.se>
13826
13827         * bus/main.c: Fix build.
13828
13829         * dbus/dbus-errors.h:
13830         * dbus/dbus-errors.c: Fix copyright for Anders.
13831
13832 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13833
13834         * bus/Makefile.am:
13835         Add utils.[ch]
13836
13837         * bus/connection.c: (bus_connection_foreach):
13838         Fix a warning.
13839
13840         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13841         (unescape_string), (new_section), (parse_section_start),
13842         (parse_key_value), (report_error), (bus_desktop_file_load),
13843         (bus_desktop_file_get_string):
13844         * bus/desktop-file.h:
13845         Use DBusError for error reporting.
13846
13847         * bus/dispatch.c: (send_one_message),
13848         (bus_dispatch_message_handler):
13849         * bus/driver.c: (bus_driver_send_service_deleted),
13850         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13851         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13852         (bus_driver_send_welcome_message),
13853         (bus_driver_handle_list_services),
13854         (bus_driver_handle_acquire_service),
13855         (bus_driver_handle_service_exists):
13856         * bus/loop.c: (bus_loop_run):
13857         * bus/main.c:
13858         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13859
13860         * bus/utils.c: (bus_wait_for_memory):
13861         * bus/utils.h:
13862         New files with general utility functions.
13863
13864         * dbus/dbus-internals.h:
13865         Remove _DBUS_HANDLE_OOM.
13866
13867 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13868
13869         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13870         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13871         * dbus/dbus-errors.h:
13872         Add DBusError structure.
13873
13874 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13875
13876         * test/data/valid-messages/standard-acquire-service.message:
13877         * test/data/valid-messages/standard-hello.message:
13878         * test/data/valid-messages/standard-list-services.message:
13879         * test/data/valid-messages/standard-service-exists.message:
13880         Add some standard messages.
13881
13882 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13883
13884         * bus/driver.c: (bus_driver_send_welcome_message),
13885         (bus_driver_handle_list_services),
13886         (bus_driver_handle_acquire_service),
13887         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13888         Update for API changes in libdbus.
13889
13890         * dbus/dbus-message.c: (dbus_message_new_reply):
13891         * dbus/dbus-message.h:
13892         Remove the name argument. The spec states that replies shouldn't
13893         have a name.
13894
13895 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13896
13897         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13898         (report_error), (bus_desktop_file_load), (lookup_section),
13899         (lookup_line), (bus_desktop_file_get_raw),
13900         (bus_desktop_file_get_string):
13901         * bus/desktop-file.h:
13902         Some fixes, and new functions for getting a key value from a section.
13903
13904 2003-02-13  Havoc Pennington  <hp@pobox.com>
13905
13906         * test/data/auth/fail-after-n-attempts.auth-script: new test
13907
13908         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13909         reject the client.
13910
13911 2003-02-13  Havoc Pennington  <hp@pobox.com>
13912
13913         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13914         dbus_credentials_match were backward
13915
13916         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13917         NO_CREDENTIALS and ROOT_CREDENTIALS
13918
13919         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13920         into here. Never process more commands after we've reached an
13921         end state; store further data as unused bytes.
13922
13923         * test/data/auth/*: add more auth tests
13924
13925         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13926         command to match exact string and EXPECT_UNUSED to match unused
13927         bytes
13928
13929         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13930
13931 2003-02-12  Havoc Pennington  <hp@pobox.com>
13932
13933         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13934         \r off of popped lines
13935
13936         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13937         scripts
13938
13939         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13940         SEND, append \r\n
13941
13942 2003-02-12  Havoc Pennington  <hp@pobox.com>
13943
13944         * dbus/Makefile.am: remove break-loader from the build, since it
13945         moved.
13946
13947         * configure.in: add --enable-gcov to turn on coverage profiling
13948         flags and disable optimization
13949
13950 2003-02-10  Havoc Pennington  <hp@pobox.com>
13951
13952         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13953         initial cut at test framework for DBusAuth from laptop.
13954         Doesn't quite work yet but it compiles and I need to get
13955         it off the 266mhz laptop. ;-)
13956
13957         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13958         fix a memleak in error case
13959
13960 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13961
13962         * bus/Makefile.am:
13963         * bus/desktop-file.c:
13964         * bus/desktop-file.h:
13965         Add a desktop file parser.
13966
13967 2003-02-11  Zack Rusin  <zack@kde.org>
13968
13969         * qt/message.[h|cpp]: sample implementation
13970         of the KDE wrapper for DBusMessage
13971
13972 2003-02-09  Zack Rusin  <zack@kde.org>
13973
13974         * test/bus-test.c: make_it_compile
13975         * doc/dbus-specification.sgml: minimal semantic fix
13976
13977 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13978
13979         Release 0.3
13980
13981         * NEWS: Update
13982
13983 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13984
13985         * dbus/Makefile.am:
13986         * dbus/dbus-break-loader.c:
13987         * test/Makefile.am:
13988         * test/break-loader.c:
13989         Move dbus-break-loader to test/ and rename it to break-loader.
13990
13991 2003-02-02  Havoc Pennington  <hp@pobox.com>
13992
13993         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13994         for code to manage cookies in your home directory
13995
13996         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13997
13998         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13999         to authenticate, then disconnect the client.
14000
14001 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14002
14003         * dbus/dbus-message.c (dbus_message_append_fields):
14004         Correct docs.
14005
14006 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14007
14008         * doc/dbus-specification.sgml:
14009         Update address format section.
14010
14011 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14012
14013         * test/Makefile.am:
14014         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14015         (message_handler), (new_connection_callback), (loop_quit),
14016         (loop_run), (main):
14017         Add bus test.
14018
14019 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14020
14021         * bus/driver.c: (bus_driver_handle_service_exists):
14022         Simplify the code a bit.
14023
14024         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14025         Fix a silly.
14026
14027 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14028
14029         * bus/Makefile.am:
14030         Add libdbus-daemon.la and link to it.
14031
14032 2003-02-01  James Willcox  <jwillcox@gnome.org>
14033
14034         * bus/driver.c: (bus_driver_handle_own_service):
14035         Actually include the service reply code in the message.
14036
14037 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14038
14039         * bus/driver.c: (bus_driver_handle_service_exists):
14040         Don't unref the incoming message.
14041
14042 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14043
14044         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14045
14046 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14047
14048         * dbus/dbus-server.c: (dbus_server_listen):
14049         * dbus/dbus-transport.c: (_dbus_transport_open):
14050         ifdef out the calls to the debug transport and server.
14051
14052 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14053
14054         * dbus/dbus-watch.c (dbus_watch_get_flags):
14055         Add note in the docs that ERROR or HANGUP won't be returned
14056         and are assumed always on.
14057
14058         * glib/dbus-gmain.c (add_watch):
14059         Always add IO_ERR | IO_HUP
14060
14061         * dbus/dbus-message.h:
14062         Add semicolon after dbus_message_iter_get_string_array().
14063         Makes qt code build again
14064
14065 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14066
14067         * bus/driver.c: (create_unique_client_name),
14068         (bus_driver_handle_hello):
14069         Don't take a name, just use a numeric id to identify
14070         each client.
14071
14072         * dbus/Makefile.am:
14073         * dbus/dbus-bus.c: (dbus_bus_register_client),
14074         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14075         * dbus/dbus-bus.h:
14076         Add new convenience functions for communicating with the bus.
14077
14078         * dbus/dbus-message.h:
14079
14080         * dbus/dbus-protocol.h:
14081         Fix a typo.
14082
14083 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14084
14085         * dbus/dbus-message.c (dbus_message_append_fields):
14086         Add some more doc comments.
14087
14088 2003-02-01  Havoc Pennington  <hp@pobox.com>
14089
14090         * dbus/dbus-break-loader.c (randomly_modify_length): change
14091         a 4-byte value in the message as if it were a length
14092
14093         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14094         execute bit on saved files
14095
14096 2003-02-01  Havoc Pennington  <hp@pobox.com>
14097
14098         * dbus/dbus-break-loader.c (main): new program to find messages
14099         that break the loader.
14100
14101         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14102         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14103
14104         * dbus/dbus-string.c (_dbus_string_set_byte): new
14105
14106 2003-01-31  Havoc Pennington  <hp@pobox.com>
14107
14108         * dbus/dbus-message.c: refactor the test code to be more general,
14109         in preparation for writing a "randomly permute test cases to
14110         try to break the loader" program.
14111
14112 2003-01-31  Havoc Pennington  <hp@pobox.com>
14113
14114         * doc/dbus-specification.sgml: work on the specification
14115
14116         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14117         the protocol version of the message.
14118
14119         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14120         no longer specifies that.
14121         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14122         1/2/3/4)
14123
14124         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14125         "break" for DBUS_TYPE_NIL, remove @todo
14126
14127 2003-01-31  Havoc Pennington  <hp@pobox.com>
14128
14129         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14130         just set_is_error/get_is_error as this is a commonly-used
14131         function, and write docs.
14132
14133 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14134
14135         * dbus/dbus-address.c: (dbus_address_entry_free):
14136         Free key and value lists.
14137
14138         * dbus/dbus-internals.c: (_dbus_type_to_string):
14139         Add the types we didn't have.
14140
14141         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14142         (_dbus_marshal_validate_arg):
14143         Add NIL types.
14144
14145         * dbus/dbus-message.c: (dbus_message_set_sender):
14146         Remove todo about being able to set sender to NULL.
14147
14148         (dbus_message_set_is_error_reply),
14149         (dbus_message_get_is_error_reply):
14150         * dbus/dbus-message.h:
14151         New functions.
14152
14153         * dbus/dbus-protocol.h:
14154         Add error reply flag.
14155
14156         * test/data/valid-messages/opposite-endian.message:
14157         Add NIL type to test.
14158
14159 2003-01-31  Havoc Pennington  <hp@pobox.com>
14160
14161         * doc/dbus-specification.sgml: fully specify the header.  Add
14162         flags and major protocol version, and change header/body len to
14163         unsigned.
14164
14165         * dbus/dbus-message-builder.c (append_saved_length): append length
14166         as uint32
14167
14168         * dbus/dbus-message.c (dbus_message_create_header): change header
14169         length and body length to unsigned. Add the new fields from the
14170         spec
14171         (_dbus_message_loader_return_buffer): unsigned header/body len
14172
14173 2003-01-30  Havoc Pennington  <hp@pobox.com>
14174
14175         * dbus/dbus-auth.c: rework to use only REJECTED, no
14176         MECHANISMS
14177
14178         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14179         use REJECTED, suggested by Mark McLoughlin
14180
14181 2003-01-30  Havoc Pennington  <hp@pobox.com>
14182
14183         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14184         a better way to report errors here. e.g.  "unix address lacks
14185         path" or something. also "no such file" when the path doesn't
14186         exist, etc.
14187
14188         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14189         leaking list nodes
14190         (dbus_parse_address): add @todo about documenting address format,
14191         and allowing , and ; to be escaped
14192
14193 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14194
14195         * dbus/Makefile.am:
14196         Add dbus-address.[ch]
14197
14198         * dbus/dbus-address.c: (dbus_address_entry_free),
14199         (dbus_address_entries_free), (create_entry),
14200         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14201         (dbus_parse_address), (_dbus_address_test):
14202         * dbus/dbus-address.h:
14203         New files for dealing with address parsing.
14204
14205         * dbus/dbus-connection.c:
14206         Document timeout functions.
14207
14208         * dbus/dbus-message.c:
14209         Document dbus_message_new_from_message.
14210
14211         * dbus/dbus-server-debug.c:
14212         Document.
14213
14214         * dbus/dbus-server.c: (dbus_server_listen):
14215         Parse address and use correct server implementation.
14216
14217         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14218         * dbus/dbus-string.h:
14219         New function with test.
14220
14221         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14222         * dbus/dbus-test.h:
14223         Add address tests.
14224
14225         * dbus/dbus-transport-debug.c:
14226         Document.
14227
14228         * dbus/dbus-transport.c: (_dbus_transport_open):
14229         Parse address and use correct transport implementation.
14230
14231 2003-01-30  Havoc Pennington  <hp@pobox.com>
14232
14233         * dbus/dbus-message.c: use message->byte_order instead of
14234         DBUS_COMPILER_BYTE_ORDER throughout.
14235         (dbus_message_create_header): pad header to align the
14236         start of the body of the message to 8-byte boundary
14237
14238         * dbus/dbus-marshal.h: make all the demarshalers take const
14239         DBusString arguments.
14240
14241         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14242         validate message args here, so we don't have to do slow validation
14243         later, and so we catch bad messages as they are incoming. Also add
14244         better checks on header_len and body_len. Also fill in
14245         message->byte_order
14246
14247         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14248         implemented properly)
14249         (_dbus_string_validate_nul): new function to check all-nul
14250
14251         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14252         get_arg_end_pos and remove all validation
14253         (_dbus_marshal_validate_arg): actually do validation here.
14254
14255 2003-01-29  Havoc Pennington  <hp@pobox.com>
14256
14257         * dbus/dbus-message.c (check_message_handling): fix assertion
14258         failure on set_client_serial
14259
14260 2003-01-28  Havoc Pennington  <hp@pobox.com>
14261
14262         * dbus/dbus-server-debug.c: Add doc section comments
14263
14264         * dbus/dbus-transport-debug.c: add doc section comments
14265
14266 2003-01-28  Havoc Pennington  <hp@redhat.com>
14267
14268         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14269         the reverse order from how I had it
14270         (_dbus_string_base64_encode): reverse encoding order. I was
14271         basically byteswapping everything during encoding.
14272
14273 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14274
14275         * dbus/dbus-connection-internal.h:
14276         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14277         (_dbus_connection_remove_timeout):
14278         Add functions for adding and removing timeouts.
14279
14280         * dbus/dbus-message.c: (dbus_message_new_from_message):
14281         Add new function that takes a message and creates an exact
14282         copy of it, but with the refcount set to 1.
14283         (check_message_handling):
14284         Fix build error.
14285
14286         * dbus/dbus-server-protected.h:
14287         * dbus/dbus-server.c: (_dbus_server_init_base),
14288         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14289         (dbus_server_set_timeout_functions):
14290         (_dbus_server_remove_timeout):
14291         New functions so that a server can add and remove timeouts.
14292
14293         (dbus_server_listen):
14294         Add commented out call to dbus_server_debug_new.
14295
14296         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14297         Actually set the handler, doh.
14298
14299         * dbus/dbus-transport.c: (_dbus_transport_open):
14300         Add commented out call to dbus_transport_debug_client_new.
14301
14302         * dbus/Makefile.am:
14303         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14304
14305 2003-01-28  Havoc Pennington  <hp@pobox.com>
14306
14307         * dbus/dbus-message.c (check_message_handling): function to check
14308         on the loaded message, iterates over it etc.
14309
14310 2003-01-28  Havoc Pennington  <hp@pobox.com>
14311
14312         * test/Makefile.am (dist-hook): fix make distdir
14313
14314         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14315
14316 2003-01-27  Havoc Pennington  <hp@pobox.com>
14317
14318         * dbus/dbus-mempool.c (time_for_size): replace printf with
14319         _dbus_verbose
14320
14321         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14322         empty lines; fix the SAVE_LENGTH stuff to be
14323         START_LENGTH/END_LENGTH so it actually works; couple other
14324         bugfixes
14325
14326         * test/Makefile.am (dist-hook): add dist-hook for .message files
14327
14328         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14329         can be constant or locked.
14330         (_dbus_string_free): allow freeing a const string as
14331         documented/intended
14332
14333         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14334
14335         * dbus/dbus-test-main.c (main): take an argument which is the
14336         directory containing test data
14337
14338         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14339         argument to this and load all the messages in test/data/
14340         checking that they can be loaded or not loaded as appropriate.
14341
14342 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14343
14344         * bus/dispatch.c: (bus_dispatch_message_handler):
14345         Dispatch messages sent to services.
14346
14347         * bus/driver.c: (bus_driver_send_service_deleted),
14348         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14349         (bus_driver_send_service_acquired):
14350         Add helper functions for sending service related messages.
14351
14352         (bus_driver_send_welcome_message):
14353         Send HELLO_REPLY instead of WELCOME.
14354
14355         (bus_driver_handle_list_services):
14356         Send LIST_SERVICES_REPLY instead of SERVICES.
14357
14358         (bus_driver_handle_own_service),
14359         (bus_driver_handle_service_exists):
14360         New message handlers.
14361
14362         (bus_driver_handle_message):
14363         Invoke new message handlers.
14364
14365         (bus_driver_remove_connection):
14366         Don't remove any services here since that's done automatically
14367         by bus_service_remove_owner now.
14368
14369         * bus/driver.h:
14370         New function signatures.
14371
14372         * bus/services.c: (bus_service_add_owner):
14373         Send ServiceAcquired message if we're the only primary owner.
14374
14375         (bus_service_remove_owner):
14376         Send ServiceAcquired/ServiceLost messages.
14377
14378         (bus_service_set_prohibit_replacement),
14379         (bus_service_get_prohibit_replacement):
14380         Functions for setting prohibit replacement.
14381
14382         (bus_service_has_owner):
14383         New function that checks if a connection is in the owner queue of
14384         a certain service.
14385
14386         * bus/services.h:
14387         Add new function signatures.
14388
14389         * dbus/dbus-list.c: (_dbus_list_test):
14390         Add tests for _dbus_list_remove_last and traversing the list backwards.
14391
14392         * dbus/dbus-list.h:
14393         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14394         go any further, so return NULL then.
14395
14396         * dbus/dbus-protocol.h:
14397         Add new messages, service flags and service replies.
14398
14399 2003-01-26  Havoc Pennington  <hp@pobox.com>
14400
14401         * dbus/dbus-message-builder.c: implement, completely untested.
14402
14403         * test/data/*: add data to be used in testing.
14404         ".message" files are our simple loadable text format.
14405         ".message-raw" will be binary dumps of messages.
14406
14407         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14408
14409 2003-01-26  Havoc Pennington  <hp@pobox.com>
14410
14411         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14412
14413         * dbus/dbus-errors.c (dbus_result_to_string): add
14414         file errors
14415
14416         * dbus/dbus-message-builder.c: new file, will contain code to load
14417         up messages from files. Not implemented yet.
14418
14419 2003-01-26  Havoc Pennington  <hp@pobox.com>
14420
14421         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14422         the sender by setting to NULL
14423
14424 2003-01-26  Havoc Pennington  <hp@pobox.com>
14425
14426         The unit tests pass, but otherwise untested.  If it breaks, the
14427         tests should have been better. ;-)
14428
14429         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14430         the connection.
14431
14432         * dbus/dbus-message.c: redo everything so we maintain
14433         message->header as the only copy of the various fields.
14434         This avoids the possibility of out-of-memory in some cases,
14435         for example dbus_message_lock() can't run out of memory anymore,
14436         and avoids extra copying. Figured I may as well go ahead and do
14437         this since it was busted for dbus_message_lock to not return
14438         failure on OOM, and dbus_message_write_header was totally
14439         unchecked for OOM. Also fixed some random other bugs.
14440
14441         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14442         that strings are nul-terminated. Also, end_pos can be equal
14443         to string length just not greater than, I think.
14444         (_dbus_marshal_set_int32): new function
14445         (_dbus_marshal_set_uint32): new function
14446         (_dbus_marshal_set_string): new function
14447
14448         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14449         a warning, init timeout_list to NULL
14450         (dbus_connection_send_message): don't use uninitialized variable
14451         "serial"
14452
14453         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14454
14455 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14456
14457         * bus/driver.c: (bus_driver_handle_hello),
14458         (bus_driver_send_welcome_message):
14459         Plug leaks
14460
14461 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14462
14463         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14464         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14465         (dbus_connection_unref):
14466         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14467         * dbus/dbus-message.c: (dbus_message_unref),
14468         Plug memory leaks.
14469
14470         (dbus_message_get_fields):
14471         Remove debugging printout.
14472
14473         (_dbus_message_loader_return_buffer):
14474         Don't store the header string.
14475
14476         (_dbus_message_test):
14477         Plug leaks.
14478
14479 2003-01-26  Richard Hult  <rhult@codefactory.se>
14480
14481         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14482         the file descriptor list, since it can change under us.
14483
14484 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14485
14486         * glib/dbus-gmain.c: (dbus_connection_prepare),
14487         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14488         (remove_watch), (dbus_connection_hookup_with_g_main):
14489         Rewrite the glib handling to use its own GSource instead of a
14490         GIOChannel so we can catch messages put in the queue while waiting
14491         for a reply.
14492
14493 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14494
14495         * bus/Makefile.am:
14496         * bus/connection.c: (connection_disconnect_handler),
14497         (connection_watch_callback), (bus_connection_setup):
14498         * bus/dispatch.c: (send_one_message),
14499         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14500         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14501         * bus/dispatch.h:
14502         * bus/driver.c: (bus_driver_send_service_deleted),
14503         (bus_driver_send_service_created), (bus_driver_handle_hello),
14504         (bus_driver_send_welcome_message),
14505         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14506         (bus_driver_handle_message):
14507         * bus/driver.h:
14508         Refactor code, put the message dispatching in its own file. Use
14509         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14510         is disconnected.
14511
14512 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14513
14514         * dbus/dbus-internals.h:
14515         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14516
14517         * dbus/dbus-message.c: (dbus_message_get_sender):
14518         * dbus/dbus-message.h:
14519         Implement dbus_message_get_sender.
14520
14521         * dbus/dbus-protocol.h:
14522         Add message and service defines.
14523
14524 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14525
14526         * dbus/dbus-connection.c: (dbus_connection_send_message):
14527         * dbus/dbus-message-internal.h:
14528         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14529         (dbus_message_write_header):
14530         Remove _dbus_messag_unlock and don't set the client serial on a
14531         message if one already exists.
14532
14533 2003-01-24  Havoc Pennington  <hp@pobox.com>
14534
14535         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14536         list_pool
14537
14538         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14539         on OOM
14540
14541 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14542
14543         * dbus/dbus-list.c: (alloc_link), (free_link):
14544         Use a memory pool for the links.
14545
14546 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14547
14548         * bus/connection.c: (bus_connection_foreach):
14549         * bus/connection.h:
14550         Add new bus_connection_foreach function.
14551
14552         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14553         Add function that broadcasts a message to all clients.
14554
14555         (bus_driver_send_service_created), (bus_driver_handle_hello),
14556         (bus_driver_send_welcome_message),
14557         (bus_driver_handle_list_services), (bus_driver_message_handler):
14558         Implement functions that take care of listing services, and notifying
14559         clients when new services are created.
14560
14561         * bus/services.c: (bus_services_list):
14562         * bus/services.h:
14563         Add new function that returns an array of strings with the currently
14564         registered services.
14565
14566         * glib/dbus-glib.h:
14567         * glib/dbus-gmain.c:
14568         Update copyright year.
14569
14570 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14571
14572         * dbus/dbus-connection.c: (dbus_connection_send_message):
14573         Unlock the message in case it was sent earlier.
14574
14575         (dbus_connection_send_message_with_reply_and_block):
14576         Remove the reply message from the list.
14577
14578         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14579         Set array_len and new_pos correctly.
14580
14581         (_dbus_marshal_test):
14582         Remove debug output.
14583
14584         * dbus/dbus-message-internal.h:
14585         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14586         New function that returns the reply serial.
14587
14588         (_dbus_message_unlock):
14589         New function that unlocks a message and resets its header.
14590
14591         (dbus_message_append_string_array),
14592         (dbus_message_get_fields_valist),
14593         (dbus_message_iter_get_field_type),
14594         (dbus_message_iter_get_string_array),
14595         (dbus_message_get_fields),
14596         (dbus_message_append_fields_valist):
14597         Handle string arrays.
14598
14599         (dbus_message_set_sender):
14600         Make this function public since the bus daemon needs it.
14601
14602         (decode_header_data):
14603         Set the reply serial to -1 initially.
14604
14605         * dbus/dbus-message.h:
14606         Add dbus_message_set_sender.
14607
14608 2003-01-24  Havoc Pennington  <hp@pobox.com>
14609
14610         * doc/dbus-specification.sgml: add some stuff
14611
14612 2003-01-22  Havoc Pennington  <hp@pobox.com>
14613
14614         * doc/dbus-specification.sgml: Start to document the protocol.
14615
14616 2003-01-22  Havoc Pennington  <hp@pobox.com>
14617
14618         * dbus/dbus-connection.c
14619         (dbus_connection_send_message_with_reply_and_block): add some @todo
14620
14621         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14622
14623 2003-01-21  Havoc Pennington  <hp@pobox.com>
14624
14625         (patch untested because can't compile)
14626
14627         * bus/driver.c (create_unique_client_name): make this function
14628         never recycle client names. Also, caller should initialize
14629         the DBusString.
14630
14631         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14632
14633 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14634
14635         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14636         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14637         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14638         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14639         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14640         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14641         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14642         * dbus/dbus-marshal.h:
14643         * dbus/dbus-protocol.h:
14644         Add support for marshalling and demarshalling integer, double
14645         and string arrays.
14646
14647 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14648
14649         * bus/Makefile.am:
14650         Add driver.[ch]
14651
14652         * bus/connection.c: (connection_disconnect_handler):
14653         Remove the connection from the bus driver's list.
14654
14655         (connection_watch_callback): Dispatch messages.
14656
14657         (free_connection_data): Free connection name.
14658
14659         (bus_connection_setup): Add connection to the bus driver's list.
14660         (bus_connection_remove_owned_service):
14661         (bus_connection_set_name), (bus_connection_get_name):
14662         Add functions for setting and getting the connection's name.
14663
14664         * bus/connection.h:
14665         Add function headers.
14666
14667         * bus/driver.c: (create_unique_client_name),
14668         (bus_driver_handle_hello_message),
14669         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14670         (bus_driver_add_connection), (bus_driver_remove_connection):
14671         * bus/driver.h:
14672         * bus/main.c:
14673         * bus/services.c: (bus_service_free):
14674         * bus/services.h:
14675         New file that handles communication and registreation with the bus
14676         itself.
14677
14678 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14679
14680         * dbus/dbus-connection.c: (dbus_connection_send_message):
14681         Add a new client_serial parameter.
14682
14683         (dbus_connection_send_message_with_reply):
14684         Remove a @todo since we've implemented the blocking function.
14685
14686         (dbus_connection_send_message_with_reply_and_block):
14687         New function that sends a message and waits for a reply and
14688         then returns the reply.
14689
14690         * dbus/dbus-connection.h:
14691         Add new functions.
14692
14693         * dbus/dbus-errors.c: (dbus_result_to_string):
14694         * dbus/dbus-errors.h:
14695         Add new DBUS_RESULT.
14696
14697         * dbus/dbus-message-internal.h:
14698         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14699         (_dbus_message_set_sender), (dbus_message_write_header),
14700         (dbus_message_new_reply), (decode_header_data),
14701         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14702         * dbus/dbus-message.h:
14703         Add new functions that set the reply serial and sender.
14704         Also marshal and demarshal them correctly and add test.
14705
14706         * dbus/dbus-protocol.h:
14707         Add new DBUS_MESSAGE_TYPE_SENDER.
14708
14709         * glib/dbus-glib.h:
14710         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14711         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14712         (dbus_connection_hookup_with_g_main):
14713         * glib/test-dbus-glib.c: (main):
14714         Rewrite to use GIOChannel and remove the GSource crack.
14715
14716         * test/echo-client.c: (main):
14717         * test/watch.c: (check_messages):
14718         Update for changed APIs
14719
14720 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14721
14722         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14723
14724         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14725         Create a DBusTimeoutList.
14726         (dbus_connection_set_timeout_functions): Add new function to
14727         set timeout callbacks
14728
14729         * dbus/dbus-connection.h: Add public DBusTimeout API.
14730
14731         * dbus/dbus-message.c: (dbus_message_get_service):
14732         * dbus/dbus-message.h:  New function.
14733
14734         * dbus/dbus-server.c: Fix small doc typo.
14735
14736         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14737
14738 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14739
14740         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14741         of the string, just as long as specified.
14742
14743 2003-01-19  Havoc Pennington  <hp@pobox.com>
14744
14745         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14746         new function
14747
14748         * dbus/dbus-server.c (dbus_server_set_max_connections)
14749         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14750         keep track of current number of connections, and add API for
14751         setting a max (but haven't implemented enforcing the max yet)
14752
14753 2003-01-18  Havoc Pennington  <hp@pobox.com>
14754
14755         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14756         reading/writing if read_watch != NULL or write_watch != NULL.
14757
14758         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14759         the message loader code to actually load message->header and
14760         message->body into the newly-created message.
14761
14762         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14763         in OOM case
14764
14765         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14766         (dbus_connection_get_max_message_size)
14767         (dbus_connection_set_max_live_messages_size)
14768         (dbus_connection_get_max_live_messages_size): implement some
14769         resource limitation functions
14770
14771         * dbus/dbus-resources.c: new file implementing some of the
14772         resource limits stuff
14773
14774         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14775         missing docs, add @todo to handle OOM etc.
14776
14777         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14778         docs
14779
14780 2003-01-18  Havoc Pennington  <hp@pobox.com>
14781
14782         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14783         connection if it hasn't been already.
14784
14785         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14786         replace with DisconnectFunction.
14787
14788 2003-01-18  Havoc Pennington  <hp@pobox.com>
14789
14790         Building --disable-verbose-mode --disable-asserts --disable-tests
14791         cuts the library from 112K to 45K or so
14792
14793         * configure.in: check for varargs macro support,
14794         add --enable-verbose-mode, --enable-asserts.
14795
14796         * dbus/dbus-internals.h (_dbus_assert): support
14797         DBUS_DISABLE_ASSERT
14798         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14799
14800 2003-01-18  Havoc Pennington  <hp@pobox.com>
14801
14802         * dbus/dbus-test.c: include config.h so that tests actually run
14803
14804         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14805         so the failure mode when that assumption fails will be plenty
14806         obvious.
14807
14808 2003-01-18  Havoc Pennington  <hp@pobox.com>
14809
14810         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14811
14812         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14813         the distribution
14814
14815         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14816         since we don't want to use those in make check
14817
14818 2003-01-15  Havoc Pennington  <hp@redhat.com>
14819
14820         Release 0.2
14821
14822         * NEWS: update
14823
14824 2003-01-15  Havoc Pennington  <hp@redhat.com>
14825
14826         * test/Makefile.am: fix so that test source code ends up in the
14827         distribution on make distcheck
14828
14829 2003-01-15  Havoc Pennington  <hp@redhat.com>
14830
14831         Release 0.1.
14832
14833         * NEWS: update
14834
14835 2003-01-15  Havoc Pennington  <hp@redhat.com>
14836
14837         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14838         fix build when --disable-tests
14839
14840         * Makefile.am (EXTRA_DIST): put HACKING in here
14841
14842         * HACKING: document procedure for making a tarball release.
14843
14844 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14845
14846         * bus/connection.c: (connection_error_handler),
14847         (bus_connection_setup):
14848         * bus/main.c: (main):
14849         Make sure that the DBusConnectionData struct is NULLed
14850         out to prevent a segfault.
14851
14852         * dbus/dbus-errors.c: (dbus_result_to_string):
14853         * dbus/dbus-errors.h:
14854         * dbus/dbus-message.c: (dbus_message_get_fields),
14855         (dbus_message_get_fields_valist), (_dbus_message_test):
14856         * dbus/dbus-message.h:
14857         Make dbus_message_get_fields return a result code so we can
14858         track invalid fields as well as oom.
14859
14860 2003-01-11  Havoc Pennington  <hp@pobox.com>
14861
14862         * configure.in: change --enable-test/--enable-ansi action-if-given
14863         to enable_foo=$enableval instead of enable_foo=yes
14864
14865 2003-01-08  Havoc Pennington  <hp@pobox.com>
14866
14867         * dbus/dbus-string.c (_dbus_string_align_length): new function
14868
14869         * dbus/dbus-test-main.c: move main() for test app here
14870         * dbus/dbus-test.c
14871         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14872         symbol to run tests, because dbus-test isn't in the main
14873         library
14874
14875         Code review nitpicks.
14876
14877         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14878         for people with narrow emacs ;-). Assert client_serial was filled
14879         in. Assert message->name != NULL.
14880         (dbus_message_append_fields): have "first_field_type" arg separate
14881         from va list, needed for C++ binding that also uses varargs IIRC
14882         and helps with type safety
14883         (dbus_message_new): add @todo about using DBusString to store
14884         service/name internally
14885         (dbus_message_new): don't leak ->service and ->name on OOM later
14886         in the function
14887         (dbus_message_unref): free the service name
14888         (dbus_message_get_fields): same change to varargs
14889         i.e. first_field_type
14890         (_dbus_message_loader_return_buffer): assert that the message data
14891         is aligned (if not it's a bug in our code). Put in verbose griping
14892         about why we set corrupted = TRUE.
14893         (decode_header_data): add FIXME that char* is evil.  Was going to
14894         add FIXME about evil locale-specific string.h strncmp, but just
14895         switched to wacky string-as-uint32 optimization. Move check for
14896         "no room for field name" above get_const_data_len() to avoid
14897         assertion failure in get_const_data_len if we have trailing 2
14898         bytes or the like. Check for service and name fields being
14899         provided twice. Don't leak service/name on error. Require field
14900         names to be aligned to 4 bytes.
14901
14902         * dbus/dbus-marshal.c: move byte swap stuff to header
14903         (_dbus_pack_int32): uscore-prefix
14904         (_dbus_unpack_int32): uscore-prefix
14905         (_dbus_unpack_uint32): export
14906         (_dbus_demarshal_string): add @todo complaining about use of
14907         memcpy()
14908         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14909         handling allowing corrupt data to go unchecked
14910
14911 2003-01-08  Havoc Pennington  <hp@redhat.com>
14912
14913         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14914         to the select() as needed for authentication. (should be using
14915         _dbus_poll() not select, but for another day)
14916
14917         * dbus/dbus.h: include dbus/dbus-protocol.h
14918
14919 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14920
14921         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14922         dbus-connection.h
14923
14924 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14925
14926         * dbus/dbus-internals.c: (_dbus_type_to_string):
14927         New function that returns a string describing a type.
14928
14929         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14930         * dbus/dbus-marshal.h:
14931         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14932         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14933         (dbus_message_iter_get_byte_array):
14934         * dbus/dbus-message.h:
14935         Add new convenience functions for appending and getting message fields.
14936         Also add demarshalling routines for byte arrays.
14937
14938 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14939
14940         * dbus/dbus-connection-internal.h:
14941         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14942         (_dbus_connection_get_next_client_serial),
14943         (dbus_connection_send_message):
14944         * dbus/dbus-internals.h:
14945         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14946         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14947         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14948         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14949         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14950         (_dbus_verbose_bytes), (_dbus_marshal_test):
14951         * dbus/dbus-marshal.h:
14952         * dbus/dbus-message-internal.h:
14953         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14954         (dbus_message_write_header), (_dbus_message_lock),
14955         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14956         (dbus_message_get_name), (dbus_message_append_int32),
14957         (dbus_message_append_uint32), (dbus_message_append_double),
14958         (dbus_message_append_string), (dbus_message_append_byte_array),
14959         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14960         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14961         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14962         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14963         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14964         (decode_header_data), (_dbus_message_loader_return_buffer),
14965         (message_iter_test), (_dbus_message_test):
14966         * dbus/dbus-message.h:
14967         * dbus/dbus-protocol.h:
14968         * dbus/dbus-test.c: (main):
14969         * dbus/dbus-test.h:
14970         * glib/test-dbus-glib.c: (message_handler), (main):
14971         * test/echo-client.c: (main):
14972         * test/watch.c: (check_messages):
14973         Make messages sendable and receivable for real.
14974
14975 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14976
14977         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14978         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14979         * dbus/dbus-message.c: (dbus_message_append_int32),
14980         (dbus_message_append_uint32), (dbus_message_append_double),
14981         (dbus_message_append_string), (dbus_message_append_byte_array):
14982         Handle OOM restoration.
14983
14984 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14985
14986         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14987         (_dbus_demarshal_string), (_dbus_marshal_test):
14988         * dbus/dbus-marshal.h:
14989         * dbus/dbus-message.c: (dbus_message_get_name),
14990         Document these functions.
14991
14992         (dbus_message_append_int32), (dbus_message_append_uint32),
14993         (dbus_message_append_double), (dbus_message_append_string),
14994         (dbus_message_append_byte_array):
14995         * dbus/dbus-message.h:
14996         Add functions for adding message fields of different types.
14997
14998         * dbus/dbus-protocol.h:
14999         Add the different types.
15000
15001 2003-01-05  Havoc Pennington  <hp@pobox.com>
15002
15003         * bus/connection.c: implement routines for handling connections,
15004         first thing is keeping a list of owned services on each connection
15005         and setting up watches etc.
15006
15007         * bus/services.c: implement a mapping from service names to lists
15008         of connections
15009
15010         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15011
15012         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15013         to use static mutexes for global data
15014
15015         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15016         collection of functions to set/get application-specific data
15017         on the DBusConnection.
15018
15019 2003-01-04  Havoc Pennington  <hp@pobox.com>
15020
15021         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15022         (_dbus_poll): new function
15023
15024         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15025         copied from GLib
15026
15027         * bus/loop.c: initial code for the daemon main loop
15028
15029 2003-01-04  Havoc Pennington  <hp@pobox.com>
15030
15031         * test/watch.c (error_handler): make it safe if the error handler
15032         is called multiple times (if we s/error handler/disconnect
15033         handler/ we should just guarantee it's called only once)
15034
15035         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15036         error handler on disconnect (it's quite possible we should
15037         just change the error handler to a "disconnect handler," I'm
15038         not sure we have any other meaningful errors)
15039
15040         * configure.in: check for getpwnam_r
15041
15042         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15043         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15044         mechanism as in SASL spec, using socket credentials
15045
15046         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15047         (_dbus_send_credentials_unix_socket): new function
15048
15049         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15050         dbus_accept()
15051         (_dbus_write): only check errno if <0 returned
15052         (_dbus_write_two): ditto
15053
15054 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15055
15056         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15057         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15058         (_dbus_marshal_test):
15059         * dbus/dbus-marshal.h:
15060         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15061         to _dbus_marshal_utf8_string. Also fix some tests.
15062
15063 2002-12-28  Harri Porten  <porten@kde.org>
15064
15065         * configure.in: added check for C++ compiler and a very cheesy
15066         check for the Qt integration
15067
15068         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15069
15070         * qt/Makefile.am: added
15071
15072         * qt/.cvsignore: added
15073
15074         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15075         latter, added #ifdef QT_THREAD_SUPPORT guard.
15076
15077         * dbus/Makefile.am: added missing headers for make dist
15078
15079 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15080
15081         * dbus/Makefile.am: fixup export-symbols-regex.
15082
15083 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15084
15085         * acinclude.m4: Add this file and put the
15086         PKG_CHECK_MODULE macro in it.
15087
15088 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15089
15090         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15091         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15092         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15093         (_dbus_marshal_test):
15094         Make the demarshalling routines align the pos argument.
15095         Add string marshalling tests and fix the obvious bugs
15096         discovered.
15097
15098 2002-12-26  Havoc Pennington  <hp@pobox.com>
15099
15100         * dbus/dbus-auth.c: fixes fixes fixes
15101
15102         * dbus/dbus-transport-unix.c: wire up support for
15103         encoding/decoding data on the wire
15104
15105         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15106         (_dbus_auth_decode_data): append to target string
15107         instead of nuking it.
15108
15109 2002-12-26  Havoc Pennington  <hp@pobox.com>
15110
15111         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15112         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15113         doh
15114
15115         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15116         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15117         now). Main point is because I wanted unpack_uint32 to implement
15118         _dbus_verbose_bytes
15119         (_dbus_verbose_bytes): new function
15120
15121         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15122
15123         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15124         mechanism to handle a corrupt message stream
15125         (_dbus_message_loader_new): fix preallocation to only prealloc,
15126         not prelengthen
15127
15128         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15129         (_dbus_string_test): enhance tests for copy/move and fix the
15130         functions
15131
15132         * dbus/dbus-transport-unix.c: Hold references in more places to
15133         avoid reentrancy problems
15134
15135         * dbus/dbus-transport.c: ditto
15136
15137         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15138         leak reference count in no-message case
15139
15140         * test/watch.c (do_mainloop): handle adding/removing watches
15141         during iteration over the watches. Also, ref the connection/server
15142         stored on a watch, so we don't try to mangle a destroyed one.
15143
15144         * dbus/dbus-transport-unix.c (do_authentication): perform
15145         authentication
15146
15147         * dbus/dbus-auth.c (get_state): add a state
15148         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15149         (_dbus_auth_get_unused_bytes): append the unused bytes
15150         to the passed in string, rather than prepend
15151
15152         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15153         the auth conversation DBusAuth
15154
15155         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15156         (_dbus_transport_new_for_domain_socket): when creating a
15157         transport, pass in whether it's a client-side or server-side
15158         transport so we know which DBusAuth to create
15159
15160 2002-12-03  Havoc Pennington  <hp@pobox.com>
15161
15162         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15163         _after_ finalizing the derived members
15164         (unix_connection_set): unref watch if we fail to add it
15165
15166         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15167         transport first, so that the connection owned by the
15168         transport will be valid as the transport finalizes.
15169
15170         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15171         if necessary, and remove watches from the connection.
15172
15173         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15174
15175 2002-12-26  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         * dbus/dbus-marshal.h:
15182         Add string marshal functions and have the demarshal functions
15183         return the new position.
15184
15185 2002-12-25  Havoc Pennington  <hp@pobox.com>
15186
15187         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15188         it is a simple protocol that just maps directly to SASL.
15189
15190         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15191         initial implementation, not actually used yet.
15192
15193         * dbus/dbus-string.c (_dbus_string_find): new function
15194         (_dbus_string_equal): new function
15195         (_dbus_string_base64_encode): new function
15196         (_dbus_string_base64_decode): new function
15197
15198 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15199
15200         * dbus/Makefile.am:
15201         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15202         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15203         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15204         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15205         * dbus/dbus-marshal.h:
15206         * dbus/dbus-protocol.h:
15207         * dbus/dbus-test.c: (main):
15208         * dbus/dbus-test.h:
15209         Add un-optimized marshalling/demarshalling routines.
15210
15211 2002-12-25  Harri Porten  <porten@kde.org>
15212
15213         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15214
15215 2002-12-24  Zack Rusin  <zack@kde.org>
15216
15217         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15218         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15219         main loop stuff
15220
15221 2002-12-24  Havoc Pennington  <hp@pobox.com>
15222
15223         * glib/dbus-gthread.c: fix include
15224
15225         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15226         I think glib API needs to change, though, as you don't
15227         want to use DBusMessageFunction, you want to use the
15228         DBusMessageHandler object. Probably
15229         dbus_connection_open_with_g_main_loop()
15230         and dbus_connection_setup_g_main_loop() or something like that
15231         (but think of better names...) that just create a connection
15232         that has watch/timeout functions etc. already set up.
15233
15234         * dbus/dbus-connection.c
15235         (dbus_connection_send_message_with_reply): new function just to
15236         show how the message handler helps us deal with replies.
15237
15238         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15239
15240         * dbus/dbus-string.c (_dbus_string_test): free a string that
15241         wasn't
15242
15243         * dbus/dbus-hash.c: use memory pools for the hash entries
15244         (rebuild_table): be more paranoid about overflow, and
15245         shrink table when we can
15246         (_dbus_hash_test): reduce number of sprintfs and write
15247         valid C89. Add tests for case where we grow and then
15248         shrink the hash table.
15249
15250         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15251
15252         * dbus/dbus-connection.c (dbus_connection_register_handler)
15253         (dbus_connection_unregister_handler): new functions
15254
15255         * dbus/dbus-message.c (dbus_message_get_name): new
15256
15257         * dbus/dbus-list.c: fix docs typo
15258
15259         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15260         an object representing a handler for messages.
15261
15262 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15263
15264         * glib/dbus-glib.h:
15265         * glib/dbus-gthread.c: (dbus_gthread_init):
15266         Don't use the gdbus prefix for public functions.
15267
15268 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15269
15270         * Makefile.am:
15271         * configure.in:
15272         Add GLib checks and fixup .pc files
15273
15274         * glib/Makefile.am:
15275         * glib/dbus-glib.h:
15276         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15277         (gdbus_connection_check), (gdbus_connection_dispatch),
15278         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15279         (dbus_connection_gsource_new):
15280         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15281         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15282         * glib/test-dbus-glib.c: (message_handler), (main):
15283         Add GLib support.
15284
15285 2002-12-15  Harri Porten  <porten@kde.org>
15286
15287         * autogen.sh: check for libtoolize before attempting to use it
15288
15289         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15290         struct.
15291
15292         * .cvsignore: ignore more stamp files
15293
15294         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15295
15296         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15297         without make install.
15298
15299 2002-12-15  Havoc Pennington  <hp@pobox.com>
15300
15301         * dbus/dbus-threads.c: add thread stubs that a higher library
15302         layer can fill in. e.g. the GLib wrapper might fill them in with
15303         GThread stuff. We still need to use this thread API to
15304         thread-safe-ize the library.
15305
15306 2002-12-12  Havoc Pennington  <hp@pobox.com>
15307
15308         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15309         below new interfaces and include fewer system headers.
15310
15311         * dbus/dbus-sysdeps.c (_dbus_read): new function
15312         (_dbus_write): new function
15313         (_dbus_write_two): new function
15314         (_dbus_connect_unix_socket): new function
15315         (_dbus_listen_unix_socket): new function
15316
15317         * dbus/dbus-message-internal.h: change interfaces to use
15318         DBusString
15319
15320 2002-12-11  Havoc Pennington  <hp@pobox.com>
15321
15322         * dbus/dbus-types.h: add dbus_unichar
15323
15324         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15325
15326         * dbus/dbus-connection.c (dbus_connection_send_message): return
15327         TRUE on success
15328
15329         * dbus/dbus-transport.c: include dbus-watch.h
15330
15331         * dbus/dbus-connection.c: include dbus-message-internal.h
15332
15333         * HACKING: add file with coding guidelines stuff.
15334
15335         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15336         handling here, for security purposes (as in vsftpd). Not actually
15337         using this class yet.
15338
15339         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15340         system/libc usage here, as in vsftpd, for ease of auditing (and
15341         should also simplify portability). Haven't actually moved all the
15342         system/libc usage into here yet.
15343
15344 2002-11-25  Havoc Pennington  <hp@pobox.com>
15345
15346         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15347         always print the first verbose message.
15348
15349 2002-11-24  Havoc Pennington  <hp@pobox.com>
15350
15351         * test/echo-client.c, test/echo-server.c: cheesy test
15352         clients.
15353
15354         * configure.in (AC_CHECK_FUNCS): check for writev
15355
15356         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15357         function
15358
15359         * dbus/dbus-list.c (_dbus_list_foreach): new function
15360
15361         * dbus/dbus-internals.c (_dbus_verbose): new function
15362
15363         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15364         representing a server that listens for connections.
15365
15366         * dbus/.cvsignore: create
15367
15368         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15369         public API for reporting errors
15370
15371         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15372         public object representing a connection that
15373         sends/receives messages. (Same object used for
15374         both client and server.)
15375
15376         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15377         Basic abstraction for different kinds of stream
15378         that we might read/write messages from.
15379
15380 2002-11-23  Havoc Pennington  <hp@pobox.com>
15381
15382         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15383         _DBUS_INT_MAX
15384
15385         * dbus/dbus-test.c (main): add list test, and include
15386         dbus-test.h as intended
15387
15388         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15389         (_dbus_hash_table_remove_int): return value indicates
15390         whether the entry existed to remove
15391
15392         * dbus/dbus-list.c: add linked list utility class,
15393         with docs and tests
15394
15395         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15396         array sometimes.
15397
15398 2002-11-23  Havoc Pennington  <hp@pobox.com>
15399
15400         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15401         DBUS_END_DECLS to nothing, that should fix this once and for all
15402
15403         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15404
15405         * dbus/dbus-message.c, dbus/dbus-hash.c:
15406         add some missing @brief
15407
15408 2002-11-23  Havoc Pennington  <hp@pobox.com>
15409
15410         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15411         to avoid confusing Doxygen
15412
15413         * dbus/dbus-hash.c: @} not }@
15414
15415         * dbus/dbus-message.c (struct DBusMessage): split out
15416         internals docs
15417
15418 2002-11-23  Havoc Pennington  <hp@pobox.com>
15419
15420         * configure.in: pile on more warning flags if using gcc
15421
15422         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15423         to document static functions
15424
15425         * configure.in: add summary to end of configure so it
15426         looks nice and attractive
15427
15428         * dbus/dbus-hash.c: finish implementation and write unit
15429         tests and docs
15430
15431         * configure.in: add --enable-tests to enable unit tests
15432
15433         * dbus/dbus-test.c: test program to run unit tests
15434         for all files in dbus/*, initially runs a test for
15435         dbus-hash.c
15436
15437         * dbus/dbus-internals.h: file to hold some internal utility stuff
15438
15439 2002-11-22  Havoc Pennington  <hp@redhat.com>
15440
15441         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15442         "ported" away from Tcl
15443
15444         * dbus/dbus-types.h: header for types such as dbus_bool_t
15445
15446 2002-11-22  Havoc Pennington  <hp@redhat.com>
15447
15448         * dbus/dbus.h: fixups for doc warnings
15449
15450         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15451         macros
15452         (QUIET): make it quiet so we can see warnings
15453
15454         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15455
15456 2002-11-22  Havoc Pennington  <hp@redhat.com>
15457
15458         * Makefile.am: include "Doxyfile" target in all-local
15459
15460         * configure.in: generate the Doxyfile
15461
15462         * Doxyfile.in: move Doxyfile here, so we can use
15463         configure to generate a Doxyfile with the right
15464         version number etc.
15465
15466 2002-11-22  Havoc Pennington  <hp@redhat.com>
15467
15468         * dbus/dbus-message.c: move inline docs into .c file
15469
15470         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15471         so all docs are under doc/
15472         (MAN_EXTENSION): generate man pages. Use extension
15473         ".3dbus" which matches ".3qt" on my system,
15474         I guess this is OK, I don't know really.
15475         (FILE_PATTERNS): look for .c files not .h, makes sense
15476         for plain C I think
15477
15478 2002-11-22  Havoc Pennington  <hp@pobox.com>
15479
15480         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15481         because any app can be a server, and any app can be a client,
15482         the bus is a special kind of server.
15483
15484 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15485
15486         * Doxyfile : adding. Still needs Makefile rules to be generated
15487         automatically (just run "doxygen" in the toplevel dir for now to
15488         generate docs)
15489
15490         * dbus/dbus-message.h : Adding sample docs (javadoc since
15491         resembles gtk-doc a little more)
15492
15493         * dbus/dbus.h : Adding sample docs
15494
15495 2002-11-21  Havoc Pennington  <hp@redhat.com>
15496
15497         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15498         so we can allow ourselves to include files directly,
15499         instead of having to use dbus.h
15500
15501         * dbus/dbus.h: fill in
15502
15503         * dbus/dbus-message.h: sketch out a sample header file.
15504         Include griping if you include it directly instead of
15505         via dbus.h
15506
15507         * dbus/dbus-macros.h: new file with macros for extern "C",
15508         TRUE/FALSE, NULL, etc.
15509
15510         * doc/file-boilerplate.c: put include guards in here
15511
15512 2002-11-21  Havoc Pennington  <hp@redhat.com>
15513
15514         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15515
15516         * COPYING: include the GPL as well, and license code
15517         under both AFL and GPL.
15518
15519 2002-11-21  Havoc Pennington  <hp@redhat.com>
15520
15521         * acconfig.h: get rid of this
15522
15523         * autogen.sh (run_configure): add --no-configure option
15524
15525         * configure.in: remove AC_ARG_PROGRAM to make
15526         autoconf complain less. add AC_PREREQ.
15527         add AC_DEFINE third arg.
15528
15529 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15530
15531         * doc/Makefile.am:
15532         Fix references so we can distcheck.
15533
15534 2002-11-21  Havoc Pennington  <hp@redhat.com>
15535
15536         * Initial module creation
15537