1c7c29ad18e2e5194bc886f3cd53080bb4d3fa16
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * tools/dbus-print-message.c (print_message):
4         added printing of the reply serial to method returns and 
5         errors, so you can actually figure out the message/reply 
6         pairs - patch by olli.salli at collabora.co.uk.
7
8 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
9
10         * dbus-win.patch: removed committed patches. 
11
12 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
13
14         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
15         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
16         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
17         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
18         completed _dbus_pipe support. 
19
20 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
21
22         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
23         changed type or port to pointer, because the port is given back.
24
25         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
26         implemented returning tcp port. Skipping port parameter
27         and non integer port values in config <listen> statement
28         needs more effort.
29
30         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
31         (_dbus_listen_tcp_socket): return the real used tcp port.
32
33         * bus/dbus-daemon.1.in: added <listen> tcp examples
34
35 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
36
37         * cmake/config.h.cmake: win32 msvc bug fix
38
39 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
40
41         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
42         using _WINCE does not work.
43
44 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
45
46         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
47         committed.
48
49 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
50
51         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
52         rename pipe related write() function calls to _dbus_write_pipe().
53
54 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
55
56         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
57         uses DBUS_WIN for alls win32 related #ifdefs, 
58         some minor cleanups
59
60 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
61
62         * dbus-win.patch: updated patch for bus/dispatch.c.
63
64 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
65
66         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
67         dbus_connection_get_unix_process_id): Let return them valid user id's, 
68         otherwise bus-test fails. How to replace on win32 ?.
69         
70         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
71         fix memory leak.
72
73 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
74
75         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
76         use dbus friendly error name.
77         (fill_win_user_info_homedir): print user name in error case too.
78
79 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
80
81         * cmake/ConfigureChecks.cmake: fixed socketpair check
82
83 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
84
85         * bus/dispatch.c: disabled segfault test on win32 for now
86
87 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
88
89         * configure.in, cmake/ConfigureChecks.cmake: added check 
90         for setrlimit. 
91         * test/test-segfault.c: only include setrlimit stuff only 
92         when available.  
93
94 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
95
96         * test/test-segfault.c: unix compile fix.
97         * dbus-win.patch: removed obsolate patches.
98
99 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
100
101         * bus/activation.c: removed obsolate include header.
102         * test/test-segfault.c: win32 compile fix, rlimit 
103         isn't available on win32.
104         * dbus-win.patch: removed some more patches, they
105         are applied or obsolate 
106
107 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
108
109         * bus-win.patch: fixes unix listen problems, dbus-test 
110         now runs.
111
112 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
113
114         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
115         cmake/CMakeLists.txt: win32 compile fix
116
117 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
118
119         * dbus-win.patch, README.win: added available win32 
120         patches from windbus project (http://sf.net/projects/windbus)
121
122 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
123
124         * bus/activation.c: (bus_activation_activate_service):
125         fixed call to _dbus_spawn_async_with_babysitter().
126
127 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
128
129         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
130         added environment pointer as function parameter, used on win32.
131
132         * test/spawn-test.c: fixed call to above mentioned function.
133
134 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
135
136         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
137         added configure check for unistd.h.
138
139 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
140
141         * test/Makefile.am: fixed test data copy problem in 
142         out of source build, when sources came from svn or cvs. 
143
144 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
145
146         * dbus/*-win.*,bus/*-win.*: added win32 platform related
147         files. These files are only added to the cmake build system.  
148         The missing dbus-win.patch file will be added later. 
149
150 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
151
152         * cmake: new directory, contains cmake build support.
153         See http://www.cmake.org for more informations.
154         Currently only unix will be buildable because some 
155         win32 required files are still missing. 
156
157 2007-03-03  Thiago Macieira  <thiago@kde.org>
158
159         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
160         output and add it to the DBusError message we return.
161
162         * tools/dbus-launch.1:
163         * tools/dbus-launch.c: Add option --close-stderr to, well,
164         close stderr before starting dbus-daemon.
165
166 2007-01-31  Havoc Pennington  <hp@redhat.com>
167
168         * bus/dbus-daemon.1.in: write a section in the man page on running
169         a test daemon for debugging purposes
170
171 2007-01-26  Havoc Pennington  <hp@redhat.com>
172
173         * bus/session.conf.in: override all the default limits with much
174         higher limits on the session bus, there is no reason the session
175         bus should have low limits
176
177         * bus/config-parser.c (bus_config_parser_new): increase default
178         limits so they are less likely to be hit; in particular the max
179         replies per connection was way too low
180
181 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
182
183         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
184         a pointer to the tutorial maintained as part of dbus-python
185
186 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
187
188         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
189         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
190         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
191
192 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
193
194         * tools/dbus-monitor.c: gettimeofday() is not available 
195         on windows so we have to provide our own. It's taken from 
196         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
197
198 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
199
200         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
201         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
202         is in dbus-sysdeps-win.c (not in this patch).
203
204         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
205         with InterlockedInc/Decrement. 
206         - Patches from Christian Ehrlicher
207         
208 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
209
210         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
211
212 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
213
214         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
215         fix mispaced const statement. - Patch from Peter Kümmel
216
217 2006-12-19  Ray Strode  <rstrode@redhat.com>
218
219         * bus/bus.c (process_config_every_time):
220         don't overwrite existing bus context activation object
221         until after we've checked that the new activation is
222         valid.
223
224         * bus/main.c 
225         (signal_handler), (handle_reload_watch):
226         don't call exit() on failure, instead make do and keep
227         going.
228         (close_reload_pipe): new function to turn off
229         hangup-causes-config-reload behavior if an unexpected
230         error occurs
231
232 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
233
234         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
235         correctness fix. - Patch from Christian Ehrlicher
236
237 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
238
239         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
240         we should also use it. - Patch from Christian Ehrlicher
241
242 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
243   
244         * dbus-sysdeps-util.c: added win32 related tests
245
246 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
247
248         * dbus/dbus-string.c (_dbus_string_pop_line),
249         bus/desktop-file.c (parse_section_start,
250         parse_comment_or_blank,parse_key_value,): uses
251         _dbus_string_find_eol() to support platform independent eol style.
252
253 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
254
255         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
256         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
257               _dbus_string_find_eol().
258         Approved by: Havoc Pennington.
259
260 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
261
262         * configure.in: Added switch to disable user_database caching.
263
264         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
265         be able disable user_dabase caching.
266
267 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
268
269         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
270         struct. It is unnecessary we have a global one already. Also remove 
271         bus_context_get_user_database function, it is no longer needed.
272         Flush the global database on reload.
273
274         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
275         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
276
277         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
278         Add _dbus_user_database_flush_system. 
279         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
280         Small unrelated change in _dbus_is_a_number: change 
281         _dbus_string_parse_int to _dbus_string_parse_uint. 
282
283         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
284         _dbus_groups_from_uid.
285
286         * bus/policy.c, bus/policy.h: Change call to 
287         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
288         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
289         needs it.
290
291 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
292
293         * bus/signal.c: Fix match_rule_equal errata
294         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
295         <kimmo.hamalainen@nokia.com>)
296
297 2006-11-19  Thiago Macieira  <thiago@kde.org>
298
299         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
300         _dbus_pthread_condvar_wait,
301         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
302         pthread_self() after coming back from a conditional variable
303         wait as well as in one codepath where it was forgotten.
304         Approved by: Havoc Pennington.
305
306 2006-11-17  Havoc Pennington  <hp@redhat.com>
307
308         * update-dbus-docs.sh: allow setting fd.org username via env
309         variable. Make it run autogen with --enable-xml-docs=yes
310         --enable-doxygen-docs=yes so configure will fail if the required
311         tools are missing.
312
313 2006-11-17  Havoc Pennington  <hp@redhat.com>
314
315         * doc/dbus-faq.xml: minor FAQ tweaks
316
317 2006-11-14  Havoc Pennington  <hp@redhat.com>
318         
319         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
320         dbus_get_local_machine_id() to its own file, no substantive
321         changes. There are a couple other things we might want to add that
322         are "misc" so moving out of dbus-connection.[hc] which is big
323         enough already.
324         
325 2006-11-14  Havoc Pennington  <hp@redhat.com>
326
327         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
328         UUID had the timestamp last, but the implementation had it first;
329         move it to last since I think it's a tiny bit nicer (easier to
330         compare at a glance, faster to sort, less code), and will not
331         cause any practical compatibility problems. Also, always convert
332         the timestamp to big endian.
333
334         * doc/dbus-specification.xml: Clean up the docs on the UUID.
335
336         * tools/dbus-uuidgen.1: more prominently say it is not suitable
337         as a replacement for regular uuidgen/RFC4122.
338
339 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
340
341         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
342         the correct value so we don't assert when initalizing recursive threads
343
344         * test/name-test/test-thread-init.c: call dbus_threads_init_default
345         instead of _dbus_threads_init_debug since it is more of a real world
346         test
347
348 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
349
350         * Released 1.0.0
351
352 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
353
354         * AUTHORS: added Peter and Tor of windows porting fame
355
356 2006-11-08  Havoc Pennington  <hp@redhat.com>
357
358         * doc/dbus-specification.xml: add a note about protocol stability
359
360         * doc/TODO: Remove "important for 1.0" section, replace with
361         "important for 1.2" section
362         
363 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
364
365         * README: remove some of the out of date flags
366
367         * doc/TODO: Remove todo items which are done
368
369 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
370
371         * tools/dbus-monitor.c: Handle sigint so we flush stdout
372         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
373
374 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
375
376         * tools/dbus-monitor.1: update the manpage for dbus-monitor
377         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
378
379 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
380
381         * AUTHORS: Update with all people listed in the ChangeLog
382
383 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
384
385         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
386         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
387
388 2006-11-07  Havoc Pennington  <hp@redhat.com>
389
390         * HACKING: Update release instructions to include stuff about
391         stable releases, branching, etc. May not be totally correct,
392         please fix if needed, but keep instructions up-to-date so we do
393         each stable release consistently in the future.
394
395 2006-11-07  Havoc Pennington  <hp@redhat.com>
396
397         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
398         documentation updates. Bump faq/spec versions (not to 1.0; I don't
399         think the spec will be "finished"/1.0 when we ship the 1.0 library).
400
401 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
402
403         * bus/bus.c: Missed patch - pass in the context to the directory watch
404
405 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
406
407         * Released D-Bus 1.0 RC 3(0.95)
408
409 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
410
411         * bus/activation.c (bus_activation_new): don't fail if we can not read
412         the directory as it may not exist
413
414 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
415
416         * bus/config-parser.c (service_dirs_find_dir): use 
417         _dbus_list_get_next_link so we don't get stuck in an infinite loop
418         (start_busconfig_child): move processing of standard_session_servicedirs
419         tags here because they have no content
420         (bus_config_parser_content): check we don't have content in 
421         standard_session_servicedirs tag
422
423 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
424
425         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
426         Packagers need to own this directory
427
428 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
429
430         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
431         <standard_session_servicedirs> tag with a <sevicedir> tag that
432         points to the test service directory
433
434 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
435
436         * configure.in: Add a check for DIR *dirp->dd_fd
437
438         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
439         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
440         of both Solaris and Irix
441
442 2006-11-01  Havoc Pennington  <hp@redhat.com>
443
444         * bus/dbus-daemon.1.in: document standard_session_servicedirs
445
446 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
447
448         * configure.in: expose DBUS_DATADIR
449         
450         * bus/config-parser.c: add the standard_session_servicedirs element
451         to the parser
452         (bus_config_parser_content): process the standard_session_servicedirs
453         element by getting the standard directories from sysdeps and merging
454         them into the service directory list
455         (test_default_session_servicedirs): make sure we get what we expect
456
457         * bus/session.conf.in: replace the servicedir tag with the 
458         standard_session_servicedirs tag
459
460         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
461         dbus-sysdeps.h to avoid circular header dependencies
462
463         * dbus/dbus-sysdeps.h: add the typedef of DBusList
464
465         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
466         which takes a string of directories delimited by colons, parses them 
467         out, appends a suffix and puts them in a list ignoring empty elements
468         (_dbus_get_standard_session_servicedirs): returns the standard 
469         directories for a session bus to look for service activation files
470         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
471         DBUS_DATADIR directories
472
473         * test/data/valid-config-files/many-rules.conf: add the 
474         standard_session_servicedirs tag to the valid config file tests
475
476 2006-10-30  Havoc Pennington  <hp@redhat.com>
477
478         * tools/dbus-launch.1, doc/TODO: capture intent to change the
479         command line options of dbus-launch a bit post 1.0
480
481 2006-10-27  Havoc Pennington  <hp@redhat.com>
482         
483         * dbus/dbus-connection.c (dbus_connection_open_private): document
484         how to choose shared vs. private connections
485
486 2006-10-27  Havoc Pennington  <hp@redhat.com>
487
488         * dbus/dbus-test.c: enclose more of the file in the
489         DBUS_BUILD_TESTS check.
490
491         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
492         DBUS_DISABLE_ASSERT case.
493
494         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
495         that it only works on the server side
496
497         * dbus/dbus-bus.c: add a global lock covering the BusData we
498         attach to each connection
499         (internal_bus_get): lock our access to the BusData
500         (dbus_bus_register): lock the entire registration process
501         with _DBUS_LOCK(bus_datas). If we get the lock and 
502         registration is already complete, silently return (vs. previous
503         behavior of aborting).
504         (dbus_bus_set_unique_name): lock the BusData
505         (dbus_bus_get_unique_name): lock the BusData
506
507 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
508
509         * bus/config-parser.c (service_dirs_find_dir, 
510         service_dirs_append_unique_or_free, 
511         service_dirs_append_link_unique_or_free): New static methods
512         for only appending unique service directory names into
513         the service directory list
514         (merge_included, bus_config_parser_content): Only add unique
515         service directory names into the list
516
517 2006-10-27  Havoc Pennington  <hp@redhat.com>
518
519         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
520         variables volatile, suggested by Thiago. Document struct fields.
521         (PTHREAD_CHECK): remove pthread error checking if assertions are
522         disabled, should reduce the no-assertions case to the bare
523         minimum code.
524
525 2006-10-26  Havoc Pennington  <hp@redhat.com>
526         
527         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
528         to be recursive
529         (_dbus_pthread_mutex_unlock): make it recursive
530         (_dbus_pthread_condvar_wait): save/restore the recursion count
531         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
532
533 2006-10-26  Havoc Pennington  <hp@redhat.com>
534
535         * doc/dbus-specification.xml: clarify the UUID text slightly
536
537         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
538         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
539         in preparation for being able to extend them for e.g. recursive
540         mutexes.
541
542 2006-10-26  Havoc Pennington  <hp@redhat.com>
543
544         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
545         condition variables relate to recursive mutexes.
546         
547         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
548         dbus/dbus-threads.c: Split the platforms-specific thread 
549         implementations into their own files.
550         
551         * dbus/dbus-sysdeps-pthread.c
552         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
553         was backward. Not that anything uses it.
554
555 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
556
557         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
558         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
559         needs to be cleaned up more.
560
561         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
562         up the CREDS issue.
563
564 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
565
566         * configure.in, dbus-1.pc.in: Check to see if thread methods 
567         are in glibc or libpthread and add -lpthread to the link stage 
568         if it is the latter
569
570 2006-10-26  Thiago Macieira  <thiago@kde.org>
571
572         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
573         bug 8780: the connection lock is only required while recording
574         the shared connection, so protect only that code
575         section. Don't require connection_lookup_shared to return a
576         locked connection.
577
578 2006-10-26  Thiago Macieira  <thiago@kde.org>
579
580         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
581         check if get_machine_uuid() returns NULL before proceeding any
582         further: we can't init the X atoms or create a session file
583         name if there is no machine ID.
584         This solves a crash reported by some users if
585         --exit-with-session was used without --autolaunch=<machine-id>
586
587 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
588
589         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
590         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
591
592         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
593         before we run dbus-launch
594
595         * configure.in: define TEST_BUS_BINARY to be the full path to 
596         dbus-daemon in the build root 
597
598 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
599
600         * dbus/Makefile.am:
601         * tools/Makefile.am:
602         * toos/dbus-uuidgen.1:
603                 Move the machine-id file to /var/lib/dbus 
604
605 2006-10-24  David Zeuthen  <davidz@redhat.com>
606
607         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
608         _dbus_assert (thread_init_generation != _dbus_current_generation)
609         not _dbus_assert (thread_init_generation == _dbus_current_generation)
610
611 2006-10-24  Thiago Macieira  <thiago@kde.org>
612
613         * dbus/dbus-sysdeps.h:
614         * dbus/dbus-sysdeps-unix.c: Add function
615         _dbus_make_file_world_readable that chmods a file to 0644.
616
617         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
618         Avoid writing to the static "argv" array, thereby avoiding a
619         COW on the child process.
620
621         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
622         call _dbus_make_file_world_readable on the created file.
623
624 2006-10-23  David Zeuthen  <davidz@redhat.com>
625
626         * dbus/dbus-memory.c: Use atomic variable to protect
627         n_blocks_outstanding otherwise OOM will be reported using SMP on
628         some arches
629         
630         * bus/dispatch.c: Add missing end of line characters
631
632         * bus/desktop-file.c (parse_section_start, parse_key_value) 
633         (bus_desktop_file_load): Propertly handle OOM
634
635         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
636         thread_init_generation equals _dbus_current_generation, not 0
637
638 2006-10-22  Havoc Pennington  <hp@redhat.com>
639
640         * dbus/dbus-connection-internal.h: move prototype of
641         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
642         it isn't in a public header and doesn't end up in the DBusBus
643         group in Doxygen
644
645 2006-10-21  Havoc Pennington  <hp@redhat.com>
646
647         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
648         the tarball if packagers want to run it
649
650         * cleanup-man-pages.sh: Add a script which munges all the internal
651         API man pages out of the Doxygen output. This reduces the size of
652         the installed man pages from 7 to 2 megs, and avoids
653         namespace-polluting pages. Right now (like Doxygen) this script
654         isn't in the build, it's something packagers can do manually.
655
656 2006-10-21  Havoc Pennington  <hp@redhat.com>
657
658         * dbus/dbus-connection.h: don't include the watch/timeout
659         functions in connection section
660
661 2006-10-21  Havoc Pennington  <hp@redhat.com>
662
663         * Documentation! Whee! Doxygen now 100% silent. If you make it
664         angry again, you will be punished.
665         
666 2006-10-21  Havoc Pennington  <hp@redhat.com>
667
668         * More documentation - all public API now documented according to
669         Doxygen
670
671 2006-10-21  Havoc Pennington  <hp@redhat.com>
672
673         * Document a bunch of undocumented stuff
674         
675 2006-10-21  Havoc Pennington  <hp@redhat.com>
676
677         * Clean up Doxygen group markers for public API so Doxygen finds
678         everything (not comprehensively fixed for private API).
679         Means all remaining Doxygen warnings are just about missing docs
680         and thus pretty simple to resolve.
681         
682 2006-10-21  Havoc Pennington  <hp@redhat.com>
683         
684         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
685
686         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
687         as DBUS_GNUC_DEPRECATED
688
689 2006-10-21  Havoc Pennington  <hp@redhat.com>
690
691         * Move all private API into the private Doxygen group sections of
692         the files, so they don't show up in the public API docs
693         
694 2006-10-21  Havoc Pennington  <hp@redhat.com>
695
696         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
697         dbus_message_iter_get_array_len().
698
699         * throughout: documentation improvements.
700
701 2006-10-20  Havoc Pennington  <hp@redhat.com>
702
703         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
704         matter, and the message-loader-breaker thing since nobody is going
705         to do it.  Add an item to 1.0 about supporting recursive locks
706         in dbus_threads_init_default() though, since it should be easy.
707
708         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
709         Fix this in the !dispatch case to avoid busy-looping after
710         disconnection
711
712         * More misc docs improvements
713
714 2006-10-19  Havoc Pennington  <hp@redhat.com>
715
716         * more Doxygen-related fixes (lots of moving things from the
717         public to internal section in dbus-connection.c)
718
719 2006-10-19  Havoc Pennington  <hp@redhat.com>
720
721         * Fix a pile of Doxygen warnings and missing docs
722
723 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
724
725         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
726         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
727         instead of a void *.  kqueue uses this to get the context's loop
728         while the other modules ignore the parameter.  This allows us to
729         avoid platform conditionals
730
731         * bus/bus.c (process_config_postinit): Pass in the context to the 
732         watch
733
734 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
735
736         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
737         when starting the system bus
738
739 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
740
741         * configure.in: More fixups for cross compile (Patch from 
742         Marco Pracucci <development at pracucci dot com>)
743
744 2006-10-17  Havoc Pennington  <hp@redhat.com>
745
746         * tools/dbus-send.c (main): don't close shared connection, fix
747         from Timo Hoenig
748
749 2006-10-17  Havoc Pennington  <hp@redhat.com>
750
751         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
752
753         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
754         since realistically it doesn't look like we'll be changing it
755         anymore.
756
757 2006-10-17  Havoc Pennington  <hp@redhat.com>
758
759         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
760         be used for return_if_fail type warnings; prefixes the pid, and
761         fatal by default.
762
763 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
764
765         * configure.in: Released 1.0 RC 2(0.94)
766         Add check for -fPIC and enable it if available
767
768 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
769
770         * doc/TODO: Remove the check TODO item
771
772 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
773
774         * dbus-transport-socket.c (exchange_credentials):
775         Print out more detailed errors if reading or sending
776         credentials fail (Patch from Julio M. Merino Vidal 
777         <jmmv at NetBSD dot org>)
778
779 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
780
781         * configure.in: when checking for posix getpwnam_r assume true
782         for cross compiles
783
784 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
785
786         * configure.in: Check for gethostbyname first before we check for it
787         in libnsl.  On gnu systems it is implemeneted 
788
789 2006-10-13  Havoc Pennington  <hp@redhat.com>
790
791         * dbus/dbus-connection.c
792         (dbus_connection_send_with_reply_and_block): fix to handle closed
793         connections, from Tambet Ingo bug #8631
794
795 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
796
797         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
798
799 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
800
801         * test/name-test/Makefile.am: don't link against both libdbus and
802         libdbus-convenience
803
804 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
805
806         * configure.in: check for dirfd even if it is a macro
807         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
808
809 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
810
811         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
812         avoid using dirfd on systems that don't have dirfd 
813         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
814
815 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
816
817         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
818         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
819
820         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
821         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
822         macro because _dbus_abort calls it
823
824         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
825         works
826
827 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
828
829         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
830         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
831
832 2006-10-02  Thiago Macieira  <thiago@kde.org>
833
834         * tools/dbus-launch.c (main): make it complain and abort
835         execution in case an unknown option is given. Also, process
836         the '--' argument as the end of arguments.
837
838 2006-10-01  Havoc Pennington  <hp@redhat.com>
839
840         * tools/dbus-launch.c (print_variables): if no syntax is given,
841         don't print something that's sort-of-half-sh-syntax, just print
842         a plain key-value pairs thing.
843
844         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
845         the local machine representation (but still have the hostname in
846         the display). Remove the hostname from the display if it is
847         localhost. Change session files to be named
848         ~/.dbus/session-bus/machine-display. Change X atoms to be
849         underscore-prefixed so nobody whines about ICCCM compliance.
850         Otherwise name them the same as the env variables.
851         Change session file format to include key-value pairs and an
852         explanatory comment. Keys are the same as the env variables.
853         (set_address_in_x11): X property format can't depend on
854         sizeof(pid_t) on a particular machine, fix to always be 32 bits
855
856         * tools/dbus-launch.c: make --autolaunch take a machine id
857         argument. If --autolaunch is used with a program to run, complain
858         for now (but add a FIXME). Also, don't look for existing bus if 
859         there's a program to run (but add a FIXME).
860
861         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
862         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
863         just to get this, and avoids duplicating uuid-reading code).
864
865         * tools/dbus-launch.1: clarify various things
866         
867 2006-10-01  Havoc Pennington  <hp@redhat.com>
868
869         * test/test-service.c (path_message_func): remove broken extra
870         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
871
872         * test/test-shell-service.c (path_message_func): same fix
873         
874         * dbus/dbus-connection.c
875         (_dbus_connection_get_dispatch_status_unlocked): break up the
876         function a little for clarity and fix the notification of
877         dbus-bus.c to not require dispatch to be complete
878
879         * dbus/dbus-connection.c (dbus_connection_unref): improve the
880         warning when you try to finalize an open connection.
881         
882 2006-10-01  Havoc Pennington  <hp@redhat.com>
883
884         * dbus/dbus-bus.c
885         (internal_bus_get): only weak ref the connection; this means 
886         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
887         called safely in any context
888         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
889         unref
890
891         * dbus/dbus-connection.c
892         (_dbus_connection_get_dispatch_status_unlocked): move
893         _dbus_bus_notify_shared_connection_disconnected_unlocked here
894         when queuing Disconnected instead of when the Disconnected message
895         arrives, so dbus_bus_get() won't return closed connections.
896         
897 2006-10-01  Havoc Pennington  <hp@redhat.com>
898
899         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
900         Add a hack to make DBusNewConnectionFunction work right.
901
902         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
903         the hack here. Also, fix the todo about refcount leak.
904         
905         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
906         and use the hack here
907         
908         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
909         "shareable" flag; this was completely broken, since it meant 
910         dbus_connection_open() returned a connection of unknown
911         shared-ness. Now, we always hold a ref on anything opened 
912         as shareable.
913
914         Move the call to notify dbus-bus.c into
915         connection_forget_shared_unlocked, so libdbus consistently forgets
916         all its knowledge of a connection at once. This exposed numerous
917         places where things were totally broken if we dropped a ref inside
918         get_dispatch_status_unlocked where
919         connection_forget_shared_unlocked was previously, so move
920         connection_forget_shared_unlocked into
921         _dbus_connection_update_dispatch_status_and_unlock. Also move the
922         exit_on_disconnect here.
923
924         (shared_connections_shutdown): this assumed weak refs to the
925         shared connections; since we have strong refs now, the assertion 
926         was failing and stuff was left in the hash. Fix it to close
927         still-open shared connections.
928         
929         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
930         debug pipe connections
931         
932         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
933         dbus-bus.c if the closed connection is in fact shared
934         (_dbus_connection_close_possibly_shared): rename from 
935         _dbus_connection_close_internal
936         (dbus_connection_close, dbus_connection_open,
937         dbus_connection_open_private): Improve docs to explain the deal
938         with when you should close or unref or both
939
940         * dbus/dbus-bus.c
941         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
942         from _dbus_bus_check_connection_and_unref_unlocked and modify to
943         loop over all connections
944
945         * test/test-utils.c (test_connection_shutdown): don't try to close
946         shared connections.
947
948         * test/name-test/test-threads-init.c (main): fix warnings in here
949
950         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
951         env variable to cause blocking waiting for gdb; drop
952         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
953         unconditionally.
954
955         * configure.in: add -export-dynamic to libtool flags if assertions enabled
956         so _dbus_print_backtrace works.
957
958         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
959         instead of _dbus_verbose to print the backtrace, and diagnose lack 
960         of -rdynamic/-export-dynamic
961         
962 2006-09-30  Havoc Pennington  <hp@redhat.com>
963
964         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
965         (internal_bus_get): fix screwy code formatting. whoever committed
966         that was not paying attention!
967
968 2006-09-30  Havoc Pennington  <hp@redhat.com>
969
970         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
971         reflect addition of interfaces.
972
973         * doc/dbus-specification.xml: describe a new
974         org.freedesktop.DBus.Peer.GetMachineId method
975
976         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
977         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
978         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
979         at end of skip_white
980         (_dbus_string_chop_white): new function
981
982         * bus/connection.c (bus_connections_setup_connection): call
983         dbus_connection_set_route_peer_messages.
984
985         * dbus/dbus-connection.c
986         (_dbus_connection_peer_filter_unlocked_no_update): modify to
987         support a GetMachineId method.
988
989         Also, support a new flag to let the bus pass peer methods through
990         to apps on the bus, which can be set with
991         dbus_connection_set_route_peer_messages.
992
993         Finally, handle and return an error for anything unknown on the
994         Peer interface, which will allow us to extend the Peer interface
995         in the future without fear that we're now intercepting something
996         apps were wanting to see.
997         
998         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
999         dbus/dbus-uuidgen.c
1000
1001         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1002         binary here, since most of the code is already in libdbus
1003
1004         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1005         uuid from the system config file
1006
1007         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1008         (_dbus_read_uuid_file_without_creating) 
1009         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1010         uuid-related functions, partly factored out from dbus-server.c
1011
1012         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1013         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1014
1015         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1016
1017         * tools/dbus-cleanup-sockets.1: explain what the point of this
1018         thing is a bit more
1019
1020         * autogen.sh (run_configure): add --config-cache to default
1021         configure args
1022
1023         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1024         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1025
1026         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1027         don't try to save address, fixes crash in make check
1028         
1029 2006-09-30  Thiago Macieira  <thiago@kde.org>
1030
1031         * configure.in: add DBUS_BINDIR as a #define to C source code.
1032
1033         * tools/dbus-launch.c
1034         * tools/dbus-launch.h
1035         * tools/dbus-launch-x11.c:
1036         * tools/dbus-launch.1: Add the --autolaunch option to
1037         dbus-launch, which makes it scan for an existing session
1038         started with --autolaunch. With that option, it also creates
1039         an X11 window and saves the bus address and PID to it.
1040
1041         * dbus/dbus-sysdeps.h:
1042         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1043         a function that runs "dbus-launch --autolaunch" to retrieve
1044         the running D-Bus session address (or start one if none was running)
1045
1046         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1047         address protocol, which tries to get the running session from
1048         dbus-launch.
1049
1050         * dbus/dbus-bus.c:
1051         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1052         D-Bus session bus address.
1053
1054         * dbus/dbus-connection.c: Fix horrible typo in error message.
1055
1056 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1057
1058         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1059
1060 2006-09-17  Havoc Pennington  <hp@redhat.com>
1061
1062         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1063         fix so that if unix_user_function is set on windows, we still
1064         do the default check that the auth identity matches the bus identity
1065
1066 2006-09-16  Havoc Pennington  <hp@redhat.com>
1067
1068         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1069         to _dbus_transport_open_platform_specific,
1070         _dbus_transport_open_socket,
1071         and _dbus_transport_open_debug_pipe
1072
1073         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1074
1075 2006-09-16  Havoc Pennington  <hp@redhat.com>
1076
1077         Attempt auditing public API to remove all cases where a Unix
1078         function returns weird emulated goo to Windows. This probably 
1079         breaks the bus daemon on Windows, to fix it again we may 
1080         need to stop processing unix-specific config options on Windows,
1081         and may need to add Windows-specific public API or config options.
1082         
1083         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1084         to reflect added interfaces; should not break soname.
1085         
1086         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1087         not invoke unix user function on Windows. Kind of a hacky fix, but 
1088         we don't want a "unix uid" leaking out on Windows.
1089
1090         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1091         to get the socket fd on Windows or UNIX
1092         (dbus_connection_get_unix_fd): make this always fail on Windows
1093
1094 2006-09-16  Havoc Pennington  <hp@redhat.com>
1095
1096         * dbus/dbus-server.c (dbus_server_listen): change how this works
1097         to be able to delegate to a set of handlers that can succeed,
1098         fail, or choose not to handle. Allows us to have 
1099         dbus_server_listen_platform_specific.
1100
1101         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1102         factor out the tcp socket stuff to be used on windows, leaving
1103         unix domain socket only in dbus-socket-unix.c
1104
1105         * dbus/dbus-transport-socket.c
1106         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1107         stuff to be used on windows, leaving unix domain socket only 
1108         in dbus-transport-unix.c
1109
1110         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1111         temporary hack to be sure this fails on windows
1112         (dbus_connection_get_unix_process_id): ditto
1113
1114 2006-09-16  Havoc Pennington  <hp@redhat.com>
1115
1116         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1117         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1118         _dbus_open_socket so the domain/type/protocol from system headers
1119         are not required. This is kind of pointless though unless we move
1120         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1121         sysdeps-unix.c, which would mean adding a wrapper around
1122         bind/listen/etc.
1123         Also, add DBusError to the socket-opening functions so they 
1124         don't require use of errno.
1125
1126 2006-09-16  Havoc Pennington  <hp@redhat.com>
1127
1128         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1129         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1130
1131         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1132         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1133         functions specifically for sockets only, and move generic 
1134         read/write/open/close into unix-specific code.
1135
1136 2006-09-14  Havoc Pennington  <hp@redhat.com>
1137
1138         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1139         complaint about accessing revents when poll returns 0, from Julian Seward.
1140
1141 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1142
1143         * Released 1.0 RC 1 (0.93) 
1144
1145 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1146
1147         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1148         use _dbus_close instead of close
1149
1150 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1151
1152         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1153         credentials.  Fixes "external" authentication under e.g. NetBSD
1154         which does not support any other socket credentials mechanism.
1155         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1156
1157 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1158
1159         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1160         dbus_threads_init and be used by the dbus mutex functions to
1161         avoid deadlocks.
1162
1163         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1164
1165 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1166
1167         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1168         use threadsafe readdir_r instead of readdir
1169
1170 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1171
1172         * dbus-threads.c (dbus_threads_init_default): New method for
1173         initializing the internal thread implementation (Patch from
1174         Alexander Larsson <alexl at redhat dot com>)
1175
1176 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1177
1178         * remove a bunch of todo items from the 1.0 list
1179
1180 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1181
1182         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1183         key not found
1184
1185 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1186
1187         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1188         complex debugging code
1189
1190         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1191         between the test suite ifdefs
1192         (_dbus_verbose_bytes): return if verbosity is not enabled 
1193
1194 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1195
1196         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1197         remove DBusMark
1198
1199 2006-09-10  Havoc Pennington  <hp@redhat.com>
1200
1201        patch mostly by Peter Kümmel, bug #8211
1202         
1203         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1204         unix-specific stuff in dbus-sysdeps.c
1205
1206         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1207         and move unix-specific stuff to dbus-sysdeps-unix.c
1208
1209         * configure.in: check HAVE_ERRNO_H
1210         
1211 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1212
1213         * bus/test-main.c (main): Initialize threading during tests
1214
1215         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1216         Unlock connection on error
1217         (generate_local_error_message): static method for generating
1218         an error message when we don't have a message to reply to
1219         (_dbus_connection_block_pending_call): Send a disconnect error
1220         instead of just a timeout (NULL) when the bus gets disconnected
1221         while blocking for a reply.
1222         
1223 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1224
1225         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1226         filters (Patch from Kimmo Hämäläinen 
1227         <kimmo dot hamalainen at nokia dot com>)
1228
1229 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1230
1231         * dbus/dbus-connection-internal.h: Add prototype for 
1232         _dbus_connection_test_get_locks to remove warning
1233
1234 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1235
1236         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1237         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1238         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1239
1240 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1241
1242         * Clean up close calls to use _dbus_close (Patch from 
1243         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1244
1245 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1246
1247         * doc/TODO:
1248         - Remove pending call locking todo item
1249         - dbus_connection_open now holds hard ref.  Remove todo item
1250         - do proper locking on _dbus_bus_check_connection_and_unref
1251           and handle DBUS_BUS_STARTER. Remove todo item
1252         - Warn on closing of a shared connection.  Remove todo item
1253
1254         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1255         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1256         so we don't get the warning when closing shared connections
1257
1258         * test/test-service.c, test/test-shell-service.c: Applications
1259         don't close shared connections themselves so we unref instead of
1260         close
1261
1262         * test/test-utils.c (test_connection_shutdown): Close the connection
1263
1264         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1265         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1266         method on a locked connection.  
1267         Make sure we call _dbus_connection_unref_unlocked instead of 
1268         dbus_connection_unref also.
1269         Handle DBUS_BUS_STARTER correctly
1270
1271         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1272         Mark as shared and hard ref the connection
1273         (connection_forget_shared_unlocked): Remove the hard ref from the 
1274         connection
1275         (_dbus_connection_close_internal_and_unlock):  New internal function
1276         which takes a locked connection and unlocks it after closing it
1277         (_dbus_connection_close_internal): New internal function which acts
1278         like the origonal dbus_connection_close method by grabbing a connection
1279         lock and calling _dbus_connection_close_internal_and_unlock
1280         (dbus_connection_close): Public close method, warns when the app
1281         trys to close a shared connection
1282
1283 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1284
1285         * bus/driver.c:
1286         (bus_driver_generate_introspect_string): New method for populating
1287         a DBusString with the introspect data
1288         (bus_driver_handle_introspect): Move introspect generation code to 
1289         bus_driver_generate_introspect_string
1290
1291         * bus/main.c:
1292         (introspect): New function which prints out the intropect data and
1293         exits
1294         (main): Add a --introspect switch
1295
1296 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1297
1298         * doc/TODO: Removed dtd publishing item.  
1299         It seems the dtd has already been added at
1300         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1301
1302 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1303
1304         * doc/TODO, various source files: Audited todo's and FIXME's and
1305         prepended the ones we should be looking at with 1.0.  Those
1306         prepended with 1.0? need clerification or might not be needed
1307         for 1.0
1308
1309 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1310
1311         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1312         NULL in the public API (Patch from Kimmo Hämäläinen 
1313         <kimmo dot hamalainen at nokia dot com>)
1314
1315 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1316
1317         * configure.in: Fix for OS-X compile time endian issues (patch from
1318         Benjamin Reed <ranger at befunk dot com>)
1319
1320 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1321
1322         * configure.in: Check for no-common compiler flag (OS-X fix from
1323         Benjamin Reed <ranger at befunk dot com>)
1324
1325 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1326
1327         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1328         <fcrozat at mandriva dot com>)
1329
1330 2006-08-29  Havoc Pennington  <hp@redhat.com>
1331
1332         * test/test-service.c (path_message_func): fix lack of return value
1333
1334         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1335         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1336         any more sense than on anything else in this file.
1337         (_dbus_get_tmpdir): add const to return value, and keep the
1338         results of the various getenv around in a static variable.
1339
1340 2006-08-29  Havoc Pennington  <hp@redhat.com>
1341
1342         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1343         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1344
1345 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1346
1347         * test/Makefile.am: change find to use syntax that works with non
1348         gnu versions of find
1349
1350 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1351
1352         * dbus/dbus-transport.c: fix invalid deref when checking if
1353         a vtable method exists (Patch from Christian Ehrlicher 
1354         <ch dot ehrlicher at gmx dot de>)
1355
1356 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1357
1358         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1359         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1360         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1361         <bernard at brenda-arkle dot demon dot co dot uk>)
1362
1363 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1364
1365         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1366         default case
1367
1368 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1369
1370         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1371         it works on any system providing this interface, not only FreeBSD.
1372         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1373
1374 2006-08-20  Havoc Pennington  <hp@redhat.com>
1375
1376         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1377         the docs
1378
1379 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1380
1381         * Released 0.92 
1382
1383 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1384
1385         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1386         to reflect the init late change
1387
1388         * bus/bus.c (bus_context_new): Check user before we fork so we can
1389         print out an error message a user will be able to see
1390
1391 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1392
1393         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1394
1395         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1396         Add two more global locks for use on windows platforms.  These are
1397         unused on non-windows platforms but are not ifdefed out to avoid
1398         potential bugs (i.e. the few bytes lost does not warrent the extra
1399         maintanence and complexity that having seperate sets of locks would
1400         cause)
1401
1402 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * bus/services.c (bus_registry_acquire_service): Return an error
1405         when an application tries to register the org.freedesktop.DBus Bus Name
1406
1407         * bus/services.c (bus_registry_release_service): Return an error
1408         when an application tries to release the org.freedesktop.DBus Bus Name
1409
1410 2006-08-17  Alp Toker  <alp@atoker.com>
1411
1412         * doc/dbus-specification.xml: Fix some minor typos.
1413
1414 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1415
1416         * configure.in: use $with_init_scripts instead of $operating_system
1417         to determine where to store the pid since the init scripts manipulate 
1418         the pid file (patch from Marcelo Ricardo Leitner 
1419         <marcelo dot leitner at terra dot com dot br>.  
1420
1421 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1422
1423         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1424         static DBusList *uninitialized_condvar_list to support new late 
1425         initialization threading model.  In this model threads can be initialized
1426         even after the D-Bus API has been used but still needs to be initialized 
1427         before the second thread has been started.  Mutexes and condvar addresses
1428         are stored in the two static lists and are replaced with actuall locks
1429         when threads are initalized.
1430         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1431         the location into the static list
1432         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1433         from the static list and freeing the mutex
1434         (_dbus_condvar_new_at_location): New method for creating a conditional 
1435         variable and placing the location into the static list
1436         (_dbus_condvar_free_at_location): New method for removing a conditional
1437         variable location from the static list and freeing the conditional variable 
1438         (init_uninitialized_locks): Atomic method which goes through the static 
1439         lists of mutex and condvar location and updates them with actuall locks
1440         (init_global_locks): changed to init_locks
1441         
1442         * dbus/dbus-connection.c:
1443         (_dbus_connection_test_get_locks): New method for tests to check connections
1444         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1445         condvar API
1446         (dbus_connection_allocate_data_slot): Pass in the global lock address
1447         to _dbus_data_slot_allocator_alloc
1448
1449         * dbus/dbus-dataslot.c:
1450         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1451         instead of the mutex itself
1452
1453         * dbus/dbus-message.c:
1454         (dbus_message_allocate_data_slot): Pass in the global lock address
1455         to _dbus_data_slot_allocator_alloc
1456
1457         * dbus/dbus-pending-call.c:
1458         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1459         to _dbus_data_slot_allocator_alloc
1460
1461         * dbus/dbus-server.c:
1462         (_dbus_server_init_base): Use the new at_location mutex API
1463         (dbus_server_allocate_data_slot): Pass in the global lock address
1464         to _dbus_data_slot_allocator_alloc
1465
1466         * test/name-test/test-threads-init.c: New test case for late thread
1467         initialization
1468
1469 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1470
1471         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1472         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1473         causes compile problems when asserts are turned off
1474         Keeping _dbus_warn for printing out the message so even if
1475         asserts are turned off the user gets the messages that something is 
1476         wrong 
1477
1478 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1479
1480         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1481
1482         * bus/services.c (bus_service_list_queued_owners):
1483         Add a pointer cast to fix compiler warning
1484
1485         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1486         return a NULL instead of FALSE since the return type
1487         is not expecting a boolean
1488
1489         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1490         Remove unused variable
1491
1492         * dbus/dbus-marshal-recursive-util.c (node_new):
1493         return a NULL instead of FALSE since the return type
1494         is not expecting a boolean
1495
1496         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1497         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1498         because we are expecting a pointer not a boolean
1499
1500         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1501         add void as the parameter so some compilers
1502         don't complain
1503
1504         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1505           _dbus_transport_new_for_tcp_socket):
1506         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1507         because we are expecting a pointer not a boolean
1508
1509         * test/shell-test.c (test_command_line):
1510         cast the second argument to _dbus_list_append to avoid compiler
1511         warnings
1512
1513         * test/test-names.c (main): remove unused variable
1514
1515         * test/test-service.c (check_hello_from_self_reply):
1516         Initialize echo_message and echo_reply to NULL
1517         
1518         * test/test-shell-service.c (handle_echo):
1519         Remove unused variable and cast the third parameter passed to
1520         dbus_connection_get_object_path_data to avoid compiler warrnings
1521
1522         * test/name-test/test-names.c (clear_message_queue):
1523         Remove unused function
1524
1525         * test/name-test/test-pending-call-dispatch.c:
1526         Fix format string in printf
1527
1528
1529 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1530
1531         * dbus/dbus-bus.c:
1532         * test/name-test/test-names.c:
1533         Remove test method dbus_bus_connection_get_unique_name because 
1534         we already have public method dbus_bus_get_unique_name that 
1535         does the exact same thing
1536
1537 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1538
1539         * dbus/dbus-signature.c:
1540         fix typos in Julio's previous patch which cause make check to fail
1541
1542 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1543
1544         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1545         In any case it was wrong since this is a test checking to see if
1546         address parsing is correct.  There was no need to get the true
1547         tmp directory.  
1548
1549 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1550
1551         * dbus/dbus-macros.h: Revert the addition of stddef.h
1552         as we should not be adding it to library headers 
1553
1554 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1555
1556         * dbus/dbus-signature.c:
1557         Fix the unit tests so that they work if assertions are not enabled.
1558         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1559
1560 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1561
1562         * tools/run-with-tmp-session-bus.sh:
1563         * test/name-test/run-test.sh:
1564         Remove bashisms (patch from Julio M. Merino Vidal
1565         <jmmv at NetBSD dot org>)
1566
1567 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1568
1569         * configure.in: add a version (>= 2.6.0) check for libxml2
1570
1571 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1572
1573         * configure.in: make sure the compiler supports -Wfloat-equal
1574         
1575         * bus/dir-watch-dnotify.c: move functional code after 
1576         variable declerations (C99 fix)  (patches from Jens Granseuer
1577         <jensgr at gmx dot net>
1578
1579 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1580
1581         * dbus/dbus-macros.h:
1582         add #include <stddef.h> so that Sun compilers don't complain about
1583         the defining NULL
1584
1585 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1586
1587         * dbus/dbus-sysdeps.c:
1588         * dbus/dbus-address.c:
1589         * bus/activation.c:
1590         * test/shell-test.c:
1591         don't hardcode tmp directory (patch from Dave Meikle 
1592         <dmk at davemeikle dot co dot uk>)
1593
1594 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1595
1596         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1597         Change an assert to a detailed warning and abort.  
1598         When allocator->lock != mutex it indicates that the user has failed
1599         to initalize threads before using the D-Bus library.  This warning
1600         helps the user identify the issue and fix their app.
1601
1602 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1603
1604         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1605         with cleanups of bugs found from Coverity reports:
1606
1607         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1608         close the file on error to avoid a leak
1609
1610         * bus/expirelist.c (bus_expire_list_test):
1611         Check for NULL on dbus_new0
1612
1613         * bus/activation.c (update_directory):
1614         remove dead code
1615
1616         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1617         Fix some leaks
1618
1619         * bus/bus.c (process_config_every_time):
1620         Fixed a leak
1621
1622         * bus/desktop-file.c (parse_key_value):
1623         Fixed leak
1624
1625         * bus/selinux.c (bus_selinux_id_table_insert):
1626         Fixed leak
1627
1628 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1629
1630         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1631         remove dead code
1632
1633 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1634
1635         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1636         #!/bin/bash
1637
1638 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1639
1640         * Doxyfile.in: fix the INPUT line so we can generate docs 
1641         when sourcedir != builddir (patch from Cygwin Ports maintainer
1642         <yselkowitz at users dot sourceforge dot net>
1643
1644 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1645
1646         * dbus/dbus-sysdeps.h:
1647         * dbus/dbus-sysdeps.c: 
1648         * dbus/dbus-string.c: 
1649         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1650         GLib's function which does the same thing
1651
1652         * configure.in:
1653         * bus/Makefile.am:
1654         * bus/dir-watch-default.c:
1655         * bus/dir-watch-dnotify.c:
1656         * bus/dir-watch-kqueue.c:
1657         Add kqueue directory watching for freebsd and split the directory
1658         watching code into seperate files per method/arch
1659         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1660
1661 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1662
1663         * configure.in:
1664         * tools/Makefile.am:
1665         * tools/dbus-launch.c:
1666         * bus/Makefile.am:
1667         allow --with-dbus-daemondir switch to be used to make the
1668         daemon install to a seperate bindir like /usr/libexec
1669         (patch from Brian Cameron <brian dot cameron at sun dot com)
1670
1671 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1672
1673         * bus/Makefile.am (install-data-hook): removed the slash after 
1674         $(DESTDIR) so we don't get the double slash which does not work
1675         in windows (patch from Andras Porjesz 
1676         <andras dot porjesz at siemens dot com>)
1677
1678 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1679
1680         * dbus/dbus-sysdeps.h:
1681         * dbus/dbus-sysdeps.c: 
1682           add _dbus_printf_length (patch from Peter Kümmel 
1683           <syntheticpp at gmx dot net>)
1684
1685 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1686
1687         * dbus/dbus-internals.c: unistd.h is not used 
1688         (_dbus_verbose_real): only enable verbose printing 
1689         if DBUS_VERBOSE environment var is set to '1'
1690         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1691
1692 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1693
1694         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1695         so we still compile on older gcc (patch from Frederic Peters 
1696         <fpeters at 0d dot be>
1697
1698 2006-08-04  Havoc Pennington  <hp@redhat.com>
1699
1700         * configure.in: add -Wdeclaration-after-statement
1701
1702         * dbus/dbus-connection.c: change all the pending call stuff to
1703         reflect the fact that pending call operations use the connection
1704         lock
1705
1706         * dbus/dbus-pending-call.c: add locking here
1707
1708         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1709         field const consistent with how message field is done
1710
1711 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1712
1713         * s/D-BUS/D-Bus/g
1714
1715 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1716
1717         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1718         <in7y118 at public.uni-hamburg dot de> - fix invalid
1719         read/write reported by valgrind
1720
1721 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1722
1723         * Released 0.91
1724
1725 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1726
1727         * dbus/dbus-connection.c:
1728         (_dbus_connection_attach_pending_call_unlocked):
1729         (connection_timeout_and_complete_all_pending_calls_unlocked):
1730         Make sure we set timeout_added on pending calls to FALSE when
1731         we remove the timeout from the connection
1732
1733 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1734
1735         * Removed some extra bindings stuff lingering around (thanks timo)
1736         * dbus-pendingcall.c (_dbus_pending_call_new): 
1737         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1738         when we tried to take a lock on an already locked connection
1739
1740 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1741
1742         * Released 0.90
1743
1744 2006-07-17  Havoc Pennington  <hp@redhat.com>
1745
1746         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1747         ints, reported by Owen Taylor
1748
1749 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1750
1751         * doc/TODO:
1752         * dbus/dbus-bus.c:
1753         * dbus-errors.c:
1754         * dbus/dbus-marshal-validate.c:
1755           Removed TODO items which were fixed or are no longer relevent
1756
1757 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1758
1759         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1760         Remove stray files from the stripped bindings
1761
1762 2006-07-16  Havoc Pennington  <hp@redhat.com>
1763
1764         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1765         Improve the error message on reply timeout
1766
1767 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1768
1769         * Remove all bindings
1770
1771 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1772
1773         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1774         and set pending_reply out arg to NULL is connection is disconnected
1775         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1776         static method for cleaning up pending calls on disconnect
1777         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1778         calls queued timeouts on disconnect 
1779
1780          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1781         Remove 
1782
1783 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1784
1785         * bus/activation.[ch] (bus_activation_list_services): new function to 
1786         get the list of services that can be activated
1787
1788         * bus/dispatch.c: test coverage for the new bus method
1789         ListActivatableNames
1790
1791         * bus/driver.c: new bus method ListActivatableNames to get the list of
1792         services that can be activated
1793
1794         * doc/dbus-specification.xml: ListActivatableNames method documentation
1795
1796 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1797         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1798         source files
1799
1800 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1801         * dbus/dbus-message-factory.c:
1802         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1803
1804 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1805         * dbus/dbus-connection-internal.h:
1806         * dbus/dbus-connection.c:
1807         * file dbus/dbus-pending-call.c:
1808         * dbus/dbus-pending-call.h:
1809         Make DBusPendingCall an opaque type even to D-Bus internals
1810
1811 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1812
1813         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1814         connection_close
1815
1816         * dbus/dbus-connection.c: include dbus-bus.h
1817         (_dbus_connection_read_write_dispatch): make static
1818
1819 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1820
1821         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1822         function
1823         (dbus_connection_dispatch): On disconnect unref any shared connections
1824
1825         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1826         for cleaning up shared connections on disconnect
1827         (internal_bus_get): get a hard refrence to shared connections when
1828         they are created
1829         
1830         * doc/TODO: Remove items which are no longer relevent or have been fixed
1831         Split 1.0 todo items with a 0.90 freeze todo list
1832  
1833 2006-06-14  Ross Burton  <ross@openedhand.com>
1834
1835         * glib/dbus-gobject.c:
1836         Free a leaking GArray (surely not!) in dbus_g_method_return.
1837
1838 2006-06-14  Ross Burton  <ross@openedhand.com>
1839
1840         * tools/Makefile.am:
1841         * tools/dbus-monitor.c:
1842         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1843         Habacker).
1844         
1845 2006-06-14  Ross Burton  <ross@openedhand.com>
1846
1847         * tools/dbus-print-message.c:
1848         Also print the object path when outputting signals or method calls.
1849
1850 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1851
1852         * qt/src/Makefile.am: install the qdbus.h header.
1853         This allows people to actually use the installed code.
1854
1855 2006-06-12  Ross Burton  <ross@openedhand.com>
1856
1857         * glib/dbus-gproxy.c:
1858         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1859
1860 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1861
1862         * Released 0.62
1863
1864 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1865
1866         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1867         break pedantic builds. Closes bug 6043 (patch approved by
1868         Havoc back in February).
1869
1870 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1871
1872         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1873         that took a QDBusMessage parameter.
1874         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1875         * qt/tools/dbus.cpp: Don't use automatic call because we might
1876         be calling an async method: request a reply.
1877
1878 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1879
1880         * test/qt/*: Update the testcases, including testing the new
1881         functionality of sending null QByteArray and QString over the
1882         bus. Add new headertest test and restore the old
1883         qdbusxmlparser test.
1884
1885 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1886
1887         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1888         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1889
1890         * qt/examples/Makefile.am:
1891         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1892         form.
1893
1894         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1895         QByteArray() (nulls) over the bus.
1896         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1897         the one that has the signature suffix stripped.
1898         * qt/src/qdbusreply.h: Make some methods const.
1899
1900 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1901
1902         Patch from Timo Hoenig <thoenig@suse.de>.
1903
1904         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1905         required during build to EXTRA_DIST.
1906         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1907         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1908         * configure.in: Fix "make dist", take care that the Makefile for
1909         qt/dbus is being generated.
1910
1911 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1912
1913         * bus/bus.c: Fix eavesdropping on method calls
1914
1915 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1916
1917         * configure.in:
1918         * dbus/dbus-userdb-util.c:
1919         Add Solaris console owner patch from Artem Kachitchkine
1920
1921 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1922
1923         * qt/Makfile.am:
1924         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1925         reorganisation. Thanks to Timo Hoenig for pointing this out.
1926
1927 2006-06-06  Robert McQueen  <robot101@debian.org>
1928
1929         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1930           call to dbus_g_type_get_struct.
1931
1932 2006-06-06  Robert McQueen  <robot101@debian.org>
1933
1934         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1935           pointers were put into a GPtrArray-based specialised collection, and
1936           then freed along with the array. GValues which you add into
1937           collections or maps which have the NOCOPY flag set are assumed to not
1938           belong to the caller, so rather than the existing pointer-stealing
1939           semantics, they are copied instead. Given that the main consumers of
1940           this abstraction are the bindings themselves, I don't think this is
1941           too bad, but others should watch their choice of take vs set_static.
1942
1943 2006-06-06  Robert McQueen  <robot101@debian.org>
1944
1945         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1946           of g_slist_prepend not being used. Fixed copying of slist-based
1947           specialised collections, then wrote a test case and found that it was
1948           all broken. Went on to fix iterating and appending too. Good thing
1949           nobody uses this code yet.
1950
1951 2006-06-06  Robert McQueen  <robot101@debian.org>
1952
1953         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1954           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1955           are discarded without unsetting, so it makes no difference whether
1956           we take or set_static). Remove cases for G_TYPE_POINTER because
1957           there really is nothing useful we can do with them in our
1958           specialised types - we *need* boxed copy/free functions at the very
1959           least.
1960
1961 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1962
1963         * qt/dbus: Add directory. I had forgotten to add this
1964         yesterday after the move...
1965
1966         * qt/examples/Makefile.am:
1967         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1968
1969         * qt/tools/Makefile.am:
1970         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1971         Added feature to get and set properties.
1972         Added validation of service, object path and interface names.
1973
1974         * qt/tools/dbusidl2cpp.cpp: Two new features:
1975         1) Allow specifying both the header and the source file names,
1976         by separating them with a colon.
1977         2) Don't write an interface output if the -p switch wasn't
1978         given, but the -a was.
1979
1980         * qt/src/*: Fix usage of Iterators and ConstIterators.
1981         Fix shadowing of variables by other variables (-Wshadow).
1982         Fix keyword-cleanliness in headers.
1983         Fix ASCII-cast (QLatin1String, QLatin1Char).
1984         Fix validation of member names.
1985         Add extra checking of introspection data during XML parsing.
1986         Various bug fixes.
1987
1988 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1989
1990         * dbus/Makefile.am:
1991         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1992         qt/dbus/qdbus.h now.
1993
1994 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1995
1996         * configure.in: Make --disable-qt actually do
1997           something. Patch inspired by Zack Rusin.
1998
1999 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2000
2001         * qt/: Update to Subversion r548032.
2002         This includes a big reorganisation of the files inside the
2003         subdir.
2004
2005 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2006
2007         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2008         clear:  
2009         "Failed to connect to socket <host>:<port> <error>" instead of
2010         "Failed to connect to socket <host>: <error>:<port>"
2011
2012         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2013         for a tcp transport. 
2014
2015 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2016
2017         * qt/*: Update the QtDBus bindings up to revision 546310 in
2018         Subversion.
2019         This adds the dbuscpp2xml tool, that parses a C++ header and
2020         outputs a D-BUS Introspection XML.
2021
2022 2006-05-21  Havoc Pennington  <hp@redhat.com>
2023
2024         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2025         is not NULL when it shouldn't be. Also a couple of possible fixes
2026         for #4637 though I don't understand why the bug happens, to be
2027         honest... also the object constructor has an assert name != NULL
2028         and the name is only currently NULL for peer-to-peer proxies that 
2029         I don't think anyone uses? So it should be asserting.
2030         Anyway, for now at least see if we get an earlier assertion failure.
2031
2032         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2033         apparently broken code to be sure the tests fail and someone 
2034         will fix them...
2035
2036 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2037
2038         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2039         and arrays when they had a single element: has_next returns
2040         false, even before you read the element. So, instead, check
2041         the array length.
2042
2043 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2044
2045         * qt/qdbusmessage.cpp:
2046         * qt/qdbustypehelper_p.h:
2047         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2048         the list is a const-reference
2049
2050 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2051
2052         * Adding old doc patch that never got applied
2053         
2054         * dbus/bus.c (dbus_bus_add_match): Add documentation
2055
2056         * doc/dbus-specification.xml: Add documentation for the match rules
2057           and the AddMatch and RemoveMatch methods
2058
2059 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2060
2061         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2062         call (r535506)
2063
2064         * qt/dbusidl2cpp.cpp:
2065         * qt/qdbusabstractadaptor.cpp:
2066         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2067         sibling of the QDBusAbstractAdaptor objects instead of the
2068         parent. (r535848)
2069
2070         * qt/dbusidl2cpp.cpp:
2071         * qt/qdbusabstractinterface.cpp:
2072         * qt/qdbusabstractinterface.h:
2073         * qt/qdbusabstractinterface_p.h:
2074         * qt/qdbusinterface.cpp: Make properties in interfaces
2075         actually work. The code that was generated would not compile,
2076         due to moc calls to functions that did not exist. They now
2077         shall. (r536571)
2078
2079 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2080
2081         * Makefile.am:
2082         * configure.in:
2083         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2084         Thanks to Brad Hards for providing the patch
2085
2086 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2087
2088         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2089         call. (r535506)
2090
2091 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2092
2093         * qt/examples/dbus.cpp: Enhance error messages and use
2094         QDBusInterfacePtr.
2095
2096 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2097
2098         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2099         and disable the copy operators. (r533772, r534746)
2100
2101         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2102
2103         * qt/qdbusabstractinterface.cpp:
2104         * qt/qdbusabstractinterface.h: Change the default call mode to
2105         not use the event loop. Add convenience call() methods that
2106         take a CallMode parameter. (r534042)
2107
2108         * qt/qdbusconnection.h: Change the default call mode to not
2109         use the event loop. (r534042)
2110
2111         * qt/qdbusinterface.cpp:
2112         * qt/qdbusinterface.h: Add a method to tell us if the
2113         interface is valid (since we don't return a null pointer
2114         anymore) (r534099)
2115
2116         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2117         (r534101)
2118
2119         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2120         function in two so taht we get the chance to introspect
2121         without having a QDBusMessage (r534102)
2122
2123         * qt/qdbusbus.h:
2124         * qt/qdbusconnection.cpp:
2125         * qt/qdbusconnection_p.h:
2126         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2127         avoid a round-trip to the server when attempting to introspect
2128         one of our own objects. Also make sure the filter functions
2129         match the empty interface as well. (r534108)
2130         Don't keep the connection names. Instead, trust the unique
2131         connection name (r534111)
2132         Remove event loop usage (r534112)
2133
2134 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2135
2136         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2137         Brad Hards.
2138
2139 2006-04-28  Robert McQueen  <robot101@debian.org>
2140
2141         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2142         any order, making it easier for people who inherit from this
2143         object.
2144
2145 2006-04-28  Robert McQueen  <robot101@debian.org>
2146
2147         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2148         of memory from within pointer arrays and lists. Fixes bug #6300.
2149
2150 2006-04-28  Robert McQueen  <robot101@debian.org>
2151
2152         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2153         generating struct signatures. Fixes bug #6083.
2154
2155 2006-04-28  Robert McQueen  <robot101@debian.org>
2156
2157         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2158         to qdbusconnection_p.moc.
2159
2160 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2161
2162         * README, INSTALL: Doc fixes
2163         Patch from Brad Hards <bradh at frogmouth.net>
2164
2165 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2166
2167         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2168         the dynamic meta object. No need to guess which interface to
2169         call.
2170
2171 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2172
2173         * qt/qdbusconnection_p.h:
2174         * qt/qdbusmetaobject.cpp:
2175         * qt/qdbusmetaobject_p.h:
2176         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2177         for the dynamic meta object. No need to guess which
2178         interface to call.
2179         * qt/qdbusabstractinterface_p.h:
2180         * qt/qdbusconnection.cpp:
2181         * qt/qdbusintegrator.cpp:
2182         * qt/qdbusinterface.cpp:
2183         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2184         Add a QDBusRef that looks and behaves like DCOPRef.
2185
2186 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2187
2188         * dbus/dbus-connection.c: Interfaces are optional in method
2189         calls, so don't give up if the interface parameter is NULL.
2190         Patch reviewed by Havoc Pennington.
2191
2192 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2193
2194         * qt/qdbusreply.h: Add default constructor and operator=
2195           (r532625)
2196         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2197           in public headers (r532952)
2198         * qt/qdbusabstractinterface.cpp:
2199         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2200           make it the default (r532951)
2201
2202 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2203
2204         * dbus/dbus-connection.c: Fix asserts
2205         Patch from Tim Moloney <t.moloney at verizon.net>
2206
2207 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2208
2209         * mono/Connection.cs, mono/Message.cs: Check Target type
2210         Patch from Aaron Bockover (abockover at novell.com)
2211
2212 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2213
2214         * INSTALL: fine-tune the requirements for the Qt4 binding.
2215
2216 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2217
2218         * tools/dbus-print-message.c: Added support for printing of all 
2219           remaining data types. Fixed logic for indentation of compound
2220           data types.
2221         
2222 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2223
2224         * INSTALL: fill out content of file providing DBus specific
2225           build installations, followed by generic Auto* INSTALL file
2226           content
2227         
2228 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2229
2230         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2231           Patch by Stefan Eilers. (r529537)
2232
2233 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2234
2235         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2236           contents (r528208)
2237
2238 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2239
2240         * qt/Makefile.am: fix the dependency for
2241           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2242           not in qdbusconnection.cpp.
2243           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2244           spotting this.
2245
2246 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2247
2248         * qt/examples/listnames.cpp:
2249         * qt/examples/Makefile.am: Three ways to list the names on the
2250           bus.
2251
2252 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2253
2254         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2255           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2256
2257 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2258
2259         Merge from Subversion:
2260         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2261           something that exists (r526315)
2262         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2263           slots/signals (r526316)
2264         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2265           also return an unknown-method error if the parameters don't
2266           match for org.freedesktop.DBus.Properties. (r526842)
2267         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2268         * qt/qdbusintegrator.cpp: Restore the proper order of
2269           delivery: don't make method returns be delivered on priority
2270           (r528150)
2271
2272 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2273
2274         * configure.in qt/Makefile.am: add qt/examples
2275         * qt/examples: Add QtDBus example programs:
2276           - hello: Hello, World
2277           - ping: Simple method-calling program
2278           - pong: Simple object-exporting program (not using adaptors)
2279           - complexping: Interactive method-calling program 
2280                 (also gets and sets properties).
2281           - complexpong: Sample program exporting methods, signals and
2282                 properties, using adaptors.
2283           - dbus: Simple implementation of a generic method-calling
2284                 program, similar to 'dbus-send', but with semantics
2285                 similar to 'dcop'.
2286           - chat: Simplistic chat program, implemented using signals
2287                 and the system bus. Looks like IRC.
2288
2289 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2290
2291         * configure.in: Detect QtGui (necessary for one of the
2292           example programs). Note: this increases the minimum required
2293           version of Qt to 4.1.3.
2294
2295 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2296
2297         * test/qt/*: Sync with KDE Subversion revision 523647.
2298         Update the testcases to the new API. Remove testcases for
2299         classes that are no longer public or have been removed.
2300
2301 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2302
2303         * qt/*: 
2304         * dbus/qdbus.h: Sync with KDE Subversion revision
2305         523647. Hopefully, this will be the last of the
2306         source-incompatible changes. Documentation has been improved;
2307         support for QList<basic-types> has been added; QDBusObject is
2308         gone; QDBus(Abstract)Interface is now a QObject with
2309         auto-generated meta-object; QDBusIntrospection is marked
2310         private, since QMetaObject can be used now; lots of bugfixes.
2311
2312 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2313
2314         Patch from Milosz Derezynski <internalerror at gmail.com>
2315         
2316         * configure.in:
2317         Output the service directory in the configure summary
2318
2319         * dbus-1.pc.in:
2320         Add session_bus_services_dir
2321
2322 2006-03-10  Ross Burton  <ross@openedhand.com>
2323
2324         * tools/dbus-print-message.c:
2325         Add support for object paths and signatures.
2326
2327 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2328
2329         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2330         config reload.
2331         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2332         information caches
2333         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2334         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2335         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2336         * dbus/dbus-userdb.h: Add function to flush all user/group information
2337         caches.
2338
2339 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2340
2341         * qt/dbusidl2cpp.cpp:
2342         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2343         for dcopidl2cpp, found in the KDE installations (or the more
2344         modern kalyptus): generate Qt4 C++ code for the input XML
2345         introspection. Currently no IDL parsing.
2346
2347 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2348
2349         * test/qt/*: Update the self-tests.
2350
2351 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2352
2353         * qt/*: 
2354         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2355         represents the first feature-complete version of the Qt4
2356         bindings since I took ove maintainership.
2357
2358 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2359
2360         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2361         dir. This is C++, so we can't use the DBus ones.
2362
2363 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2364
2365         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2366         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2367
2368 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2369
2370         * dbus/dbus-connection.c: 
2371         (_dbus_connection_block_pending_call):
2372         Check to see if our data has already been read off the connection
2373         by another blocking pending call before we block in poll.
2374         (check_for_reply_and_update_dispatch_unlocked):
2375         Code taken from _dbus_connection_block_pending_call - checks for
2376         an already read reply and updates the dispatch if there is one.
2377
2378         * test/name-test/test-pending-call-dispatch.c:
2379         New test for making sure we don't get stuck polling a 
2380         dbus connection which has no data on the socket when
2381         blocking out of order on two or more pending calls.
2382
2383 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2384
2385         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2386         make/automake don't detect that we're talking about the same
2387         .lo file if I specify the full path to the source files.
2388
2389 2006-02-26  Havoc Pennington  <hp@redhat.com>
2390
2391         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2392
2393         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2394         session bus variable is unset, suggest "man dbus-launch" and "man
2395         dbus-daemon" to figure out how to fix the problem
2396
2397 2006-02-25  Havoc Pennington  <hp@redhat.com>
2398
2399         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2400         should make this thing use the new glib options parser
2401
2402 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2403
2404         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2405         .lo files taking moc sources.
2406
2407 2006-02-25  Havoc Pennington  <hp@redhat.com>
2408
2409         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2410         and install it as a public header
2411
2412 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2413
2414         * Released 0.61
2415
2416 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2417         
2418         * proxies.py: Fix the callchain
2419
2420 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2421         
2422         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2423
2424         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2425         dbus/dbus-sysdeps.c
2426
2427         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2428         call _dbus_group_info_free_allocated which causes infinite loop,
2429         correctly call _dbus_group_info_free
2430
2431 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2432
2433         * qt/qdbusinterface_p.h:
2434         * qt/qdbusinterface.cpp: Use the standard
2435         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2436         calls instead of creating one for us.
2437
2438         * qt/qdbusconnection_p.h:
2439         * qt/qdbusintegrator.cpp: Remove debugging code.
2440
2441         * qt/qdbusintegrator.cpp:
2442         * qt/qdbusmessage.cpp:
2443         * qt/qdbusmessage_p.h:
2444         * qt/qdbusmessage.h: Change the behaviour of automatic
2445         reply-sending: now a reply is always sent, unless the caller
2446         didn't request one or if the user slot has already sent one.
2447
2448 2006-02-16  Robert McQueen  <robot101@debian.org>
2449
2450         * configure.in: Patch from Debian packages by Sjoerd Simons
2451         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2452         arguments so it's possible to build both bindings in the
2453         same tree.
2454
2455         * qt/Makefile.am: Fix truncated value so that make dist works.
2456
2457 2006-02-16  Robert McQueen  <robot101@debian.org>
2458
2459         * acinclude.m4, configure.in: Patch from Brad Hards
2460         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2461         improving quoting, re-ordering a few checks, and a few other
2462         aesthetic tidy-ups.
2463
2464 2006-02-16  Robert McQueen  <robot101@debian.org>
2465
2466         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2467         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2468         assertion that the next element to read from the iter is fixed in
2469         size. This is not the case when you are at the end of the iter,
2470         because the next element type is INVALID.
2471
2472         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2473         a bogus assert which means that you may not initialise a 0-length
2474         string unless you provide a non-NULL pointer. This prevented
2475         you from marshalling messages containing zero-length arrays in
2476         some cases.
2477
2478         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2479         from Rob to correct bogus asserts when trying to demarshal an
2480         array and get_fixed_array got you 0 elements. Append nothing to
2481         the GArray in this case.
2482
2483         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2484         an empty array via the glib bindings. Without all of the above
2485         patches, this new test fails.
2486
2487 2006-02-16  Robert McQueen  <robot101@debian.org>
2488
2489         * glib/dbus-gmain.c: Make the previous commit compile.
2490
2491         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2492         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2493         specify sender_keyword="foo", path_keyword="bar" when adding
2494         a signal listener, so that you can bind to signals generically
2495         but still do something useful in your callback.
2496
2497         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2498         chars so that they're not cast to chars and made negative. Thanks
2499         to Jakub Stachowski for reporting this and testing the fix.
2500
2501 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2502
2503         * dbus/dbus-glib.h:
2504         * glib/dbus-gmain.h:
2505         (dbus_g_connection_open): new method for openning
2506         a connection to an arbitrary address in the glib bindings
2507
2508         * ChangeLog: checkin last entry which doesn't seem to be commited
2509
2510 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2511
2512         * tools/dbus-launch.c: Fixed sh syntax output
2513
2514 2006-02-13  Robert McQueen  <robot101@debian.org>
2515
2516         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2517         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2518         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2519         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2520         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2521         missing piece of the glib bindings jigsaw puzzle. This modifies
2522         the existing specialised types to have N type parameters (rather
2523         than the current 1 or 2 for arrays and dictionaries respectively).
2524         You can then use this to get a glib type to represent any arbitrary
2525         D-Bus struct type using dbus_g_type_get_struct. The only
2526         implementation of these types is with GValueArrays as before,
2527         but it's now possible to store these in arrays, emit them in
2528         signals, etc.
2529
2530 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2531
2532         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2533         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2534         <thiago.macieira at trolltech.com>
2535
2536 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2537
2538         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2539         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2540
2541 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2542
2543         * bus/connection.c (bus_connections_expect_reply): Make
2544         pending reply limit not common to all connections (Bug #5416)
2545         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2546
2547 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2548
2549         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2550
2551 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2552
2553         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2554         patch from Doug Goldstein <cardoe at gentoo.org>
2555
2556 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2557
2558         * mono/Arguments.cs: Fix a magic number in the mono bindings
2559         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2560
2561 2006-01-27  Robert McQueen  <robot101@debian.org>
2562
2563         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2564         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2565         when generating the client-side methods, instead of overloading
2566         CSymbol which broke everything horribly. My apologies.
2567
2568 2006-01-27  Robert McQueen  <robot101@debian.org>
2569
2570         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2571         by me and Rob Taylor to add a simple_free function to D-Bus map
2572         and collection types, which allows those types which can be freed
2573         with a GDestroyNotify (such as GHashTables and GArrays, but not
2574         GPtrArrays) to be stored as the values in hashtables.
2575
2576         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2577         Patch by Rob Taylor to add nested dicts to the glib tests to check
2578         the above code works, and appears not to leak when called repeatedly.
2579
2580 2006-01-27  Robert McQueen  <robot101@debian.org>
2581
2582         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2583         to free a D-Bus allocated string with dbus_free () instead of
2584         g_free ().
2585
2586 2006-01-27  Iain Holmes  <iain@openedhand.com>
2587
2588         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2589         method from being called multiple times.
2590
2591 2006-01-19  Robert McQueen  <robot101@debian.org>
2592
2593         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2594         <rob.taylor@collabora.co.uk> to add support for generating bindings
2595         to arrays that are represented as GPtrArrays rather than GArrays (ie
2596         size-variable things, such as strings, objects, structs, etc).
2597
2598 2006-01-05  Robert McQueen  <robot101@debian.org>
2599
2600         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2601         <ricardo.kekki@movial.fi> to make it possible to inherit from
2602         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2603         a private part, and moving the setting of the DBusGProxyManager into a
2604         connection property, allowing proper GObject construction.
2605
2606 2006-01-05  Robert McQueen  <robot101@debian.org>
2607
2608         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2609         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2610         annotations when generating glib client bindings.
2611
2612 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2613
2614         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2615
2616         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2617
2618 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2619
2620         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2621
2622 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2623
2624         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2625
2626 2005-12-19  Ross Burton  <ross@openedhand.com>
2627
2628         * doc/dbus-tutorial.xml:
2629         Document the Glib client-side bindings, and list all possible annotations.
2630
2631 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2632
2633         * dbus/bus.c (dbus_bus_release_name): Add documentation
2634
2635 2005-12-06  Robert McQueen  <robot101@debian.org>
2636
2637         * python/service.py: s/sucessful/successful/ so we're allocating to
2638         and reading from the same variable. Oops.
2639
2640 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2641
2642         * Released 0.60
2643
2644 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2645
2646         * test/qt/Makefile.am: build from srcdir
2647
2648         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2649         Note - this code is wrong and needs to be fixed by the Qt binding
2650         developers.  The flags should be treated as bitfields and not enums.
2651
2652         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2653
2654 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2655
2656         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2657           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2658           in production code
2659
2660 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2661
2662         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2663         method for getting messages off the bus in the absence of a
2664         mainloop.  This method is much like 
2665         dbus_connection_read_write_dispatch except it does not dispatch
2666         the messages to a registered filter function.  Instead it
2667         allows a developer to process messages by directly popping
2668         them off the bus.
2669
2670 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2671
2672         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2673         the parser to continue instead of returning error
2674         (bus_desktop_file_load): Do not free parser data when
2675         parse_section_start or parse_key_value fails because it was 
2676         already freed by parser_free (patch from Carlos Garcia Campos  
2677         <carlosgc at gnome.org>)
2678
2679 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2680
2681         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2682         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2683         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2684         test/test-segfault.c, test/test-utils.c,
2685         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2686         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2687         Various cleanup of dead code and compiler warnings (patch from
2688         Kjartan Maraas <kmaraas at gnome.org>) 
2689
2690 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2691
2692         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2693         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2694
2695 2005-11-27  Robert McQueen  <robot101@debian.org>
2696
2697         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2698         part of the preceding one. Oops. Merge patch by Johan Hedberg
2699         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2700         on big-endian platforms.
2701
2702         * test/python/test-client.py: Add some 16-bit integers to the test
2703         values.
2704
2705 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2706
2707         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2708         method return message for property getters
2709
2710 2005-11-27  Robert McQueen  <robot101@debian.org>
2711
2712         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2713         with type v of an instance of dbus.Variant(foo, type='x') caused
2714         it to be boxed twice before sending over the bus.
2715
2716         * python/dbus_bindings.pyx, python/service.py,
2717         test/python/test-client.py: Update the constants for the new
2718         request_name flags, and update comments/test cases now that queueing
2719         is the default action.
2720
2721 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2722
2723         * configure.in:
2724         - Change version to 0.60 for impending release
2725         - upped the sonames because of ABI and API breakage
2726
2727 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2728
2729         * configure.in: Add test/name-test/Makefile to the generated
2730         Makefile list
2731
2732         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2733         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2734         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2735         not to queue an ower if it can't be the primary owner
2736
2737         * bus/bus.h: Add new internal BusOwner struct
2738
2739         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2740         to bus_registry_ensure and don't set the prohibit_replacement flag
2741         since they are now set per BusOwner and not per name.
2742         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2743         that returns the list of connections in a name's connection queue
2744         
2745         * bus/services.c (struct BusService): remove prohibit_replacement field
2746         (struct BusOwner): new struct for keeping track of queued connections
2747         and their associated flags for the queue
2748         (struct BusRegistry): add a BusOwner memory pool
2749         (bus_registry_new): initialize the BusOwner memory pool
2750         (bus_registry_unref): free the BusOwner memory pool
2751         (_bus_service_find_owner_link): new internal method for
2752         searching the queue for a specific connection
2753         (bus_owner_set_flags): new method for adding setting the flags on a
2754         bus owner
2755         (bus_owner_new): new method that creates a BusOwner object from the
2756         pool and sets its flags
2757         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2758         (bus_registry_ensure): Add the flags parameter
2759         (bus_registry_acquire_service): Switch from using raw connections to
2760         using the BusOwner struct
2761         Add new state machine for dealing with the new set of flags
2762         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2763         cancel_ownership, free_ownership_cancel_data, 
2764         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2765         restore_ownership, free_ownership_restore_data, 
2766         add_restore_ownership_to_transaction): Switch to using BusOwner 
2767         instead of raw connections
2768         (bus_service_add_owner): Add flags parameter
2769         Switch to using BusOwner instead of raw connections
2770         Add state machine for dealing with the new set of flags
2771         (bus_service_swap_owner): Swaps the first and second owners in the
2772         queue.  Used to make sure proper signals are sent when a service looses 
2773         or gains primary ownership.  We never insert an owner at the top of the
2774         queue.  Instead we insert it in the second position and then swap.
2775         (bus_service_remove_owner): Remove the owner from the queue sending
2776         out the NameLost and NameOwnerChanged signals if the we were the 
2777         primary owner
2778         (bus_service_get_primary_owners_connection): New method that extracts
2779         the connection from the primary owner
2780         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2781         connection
2782         (bus_service_get_allow_replacement): Changed from the old 
2783         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2784         primary owner and returns if it can be replaced or not
2785         (bus_service_set_prohibit_replacement): removed
2786         (bus_service_has_owner): returns TRUE if and owner with
2787         the specified connection exists in the queue
2788         
2789         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2790         method that only compiles if tests are enabled.  Allows us to get the 
2791         unique name of a connection so we can check it against the queue when
2792         doing regression tests
2793
2794         * bus/activation.c (bus_activation_send_pending_auto_activate),
2795         bus/dispatch.c (bus_dispatch),  
2796         bus/driver.c (bus_driver_handle_get_service_owner, 
2797         bus_driver_handle_get_connection_unix_user, 
2798         bus_driver_handle_get_connection_unix_process_id,
2799         bus_driver_handle_get_connection_selinux_security_context),
2800         bus/signals.c (connection_is_primary_owner): 
2801         use bus_service_get_primary_owners_connection instead of
2802         bus_service_get_primary_owner
2803
2804         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2805         _dbus_listen_unix_socket): Calculate the length of the socket
2806         path and use that instead of using a fixed length which was
2807         causing socket names to contain many trailing Nul bytes.
2808
2809         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2810         (dbus_g_method_get_sender): New method for extracting the sender 
2811         from a DBusGMethodInvocation
2812         (dbus_g_method_return_get_reply): changed name to 
2813         dbus_g_method_get_reply
2814         (dbus_g_method_return_send_reply): changed name to
2815         dbus_g_method_send reply
2816
2817         * doc/dbus-specification.xml: New docs that describe how the new
2818         queueing system works and talks about the changes to the how
2819         we specify socket names
2820
2821         * glib/examples/example-service.c, 
2822         glib/examples/example-signal-emitter.c,
2823         glib/examples/statemachine/statemachine-server.c:
2824         Changed the RequestName flags to the new system
2825
2826         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2827         regression test suite for testing various states of the new
2828         queueing system
2829         
2830 2005-11-15  Robert McQueen  <robot101@debian.org>
2831
2832         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2833         Taylor to add two methods, dbus_g_method_return_get_reply and
2834         dbus_g_method_return_send_reply, to allow you to get the reply
2835         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2836         and send it. The GLib bindings can't marshal a return value of
2837         something like a(s) if the array is empty - ultimately they should be
2838         made to heed the signature of the out arguments as the Python bindings
2839         now can, but this is a workable interim solution which might have
2840         other applications.
2841
2842 2005-11-15  Robert McQueen  <robot101@debian.org>
2843
2844         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2845         method to org.freedesktop.DBus to release a bus name or give up
2846         waiting in the queue for it.
2847
2848         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2849         dbus_bus_release_name method to send the ReleaseName method calls.
2850         Add constants for the return values to dbus/dbus-shared.h.
2851
2852         * doc/dbus-specification.xml: Document the new ReleaseName method
2853         in the specification.
2854
2855         * python/dbus_bindings.pyx: Add a low-level python binding for the
2856         release name method.
2857
2858         * python/exceptions.py, python/service.py: Make freeing BusName
2859         objects release the name. Add a NameExistsException, and fix a
2860         bug with creating UnknownMethodException.
2861
2862         * test/python/test-client.py: Add tests for freeing BusName
2863         objects causing names to be released.
2864
2865 2005-11-14  Robert McQueen  <robot101@debian.org>
2866
2867         * python/service.py: Include the traceback in the error reply when we
2868         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2869
2870 2005-11-14  David Zeuthen  <davidz@redhat.com>
2871
2872         Patch from Timo Hoenig <thoenig@suse.de>.
2873
2874         * bus/bus.c: I've recently investigated why the automatic reload
2875         of configuration files does not work as expected.
2876
2877         Currently, reloading configuration files does only work when
2878         running dbus-daemon with --nodaemon.  If we are running as daemon
2879         we're hitting a dnotify bug once we fork the process.
2880
2881         We're initializing the dnotify fds before calling fork().  Once
2882         the child process forked it does still have the fds (and they
2883         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2884         getting SIGIO as changes are made to the configuration files.
2885
2886         The attached patch moves the initialization of the dnotify fds to
2887         process_config_postinit().  This is safe for all current code
2888         paths and solves the dnotify disfunction.  If we're running
2889         dbus-daemon as daemon the fds for dnotify are now being
2890         initialized after fork() for the child process.
2891
2892         * configure.in: The current configure.in check for dnotify probes
2893         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2894         match for 'xlinux', too. Additionally I have adapted the configure
2895         option's style to match with the others.
2896
2897 2005-11-14  Robert McQueen  <robot101@debian.org>
2898
2899         * python/decorators.py, python/service.py: Add a new argument to the
2900         dbus.service.method decorator called sender_keyword, which if set,
2901         specifies the name of an argument which will be provided the bus
2902         name of the method caller.
2903
2904         * test/python/test-client.py, test/python/test-service.py: Add a
2905         method and test to check the sender_keyword functionality.
2906
2907 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2908
2909         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2910         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2911         Simons <sjoerd at luon.net>)
2912
2913         * AUTHORS: Add Robert McQueen for his work on the Python
2914         Bindings and other parts of D-Bus
2915
2916 2005-11-07  Robert McQueen  <robot101@debian.org>
2917
2918         * python/decorators.py: Change emit_signal function to use the
2919         signature annotation of the signal when marhsalling the arguments from
2920         the service. Fix a bug where the code checking signature length
2921         against argument length referenced the wrong variable.
2922
2923         * python/introspect_parser.py: Avoid adding the type signature of
2924         signal arguments to any methods which occur after them in the
2925         introspection data (!) by making the parser a little more careful
2926         about its current state.
2927
2928         * python/service.py: Remove debug prints from last commit (again :D).
2929
2930         * test/python/test-client.py, test/python/test-service.py: Add test
2931         signals with signature decorators to test the strict marshalling code
2932         gives errors at the right time. Could do with checking the signals
2933         actually get emitted too, given that the test does nothing with
2934         signals at the moment...
2935
2936 2005-11-07  Robert McQueen  <robot101@debian.org>
2937
2938         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2939         instances to stop madness of creating new instances representing
2940         the same bus connection all the time, rendering any tracking of
2941         match rules and bus names quite meaningless. Caught a bug where
2942         the private argument to SessionBus() and friends was being passed
2943         in as use_default_mainloop by mistake. Still some problems with
2944         multiple dbus_binding.Connection instances representing the same
2945         low-level connection (eg when you use both SessionBus() and
2946         StarterBus() in same process), but it's a lot better now than it
2947         was.
2948
2949         * python/dbus_bindings.pyx: Add constants with the return values
2950         for bus_request_name().
2951
2952         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2953         and retrieve the same instances for the same name, so deletion can be
2954         done with refcounting. Also now throws some kind of error if you
2955         don't actually get the name you requested, unlike previously...
2956
2957         * test/python/test-client.py: Add tests for instance caching of buses
2958         and bus name objects.
2959
2960 2005-11-04  Robert McQueen  <robot101@debian.org>
2961
2962         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2963         marshalling of boolean values. Add some booleans to the values in
2964         the test client.
2965
2966         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2967         argument to the dbus.service.method decorator, which allows you to
2968         name arguments to take two callback functions for replying with
2969         return values or an exception.
2970
2971         * test/python/test-client.py, test/python/test-service.py: Add test
2972         case using asynchronous method reply functions, both return values and
2973         errors, and from within both the function itself and from a mainloop
2974         callback.
2975
2976         * python/decorators.py, python/service.py: Perform checking that the
2977         number of method/signal arguments matches the number of types in the
2978         signature at class loading time, not when you first introspect the
2979         class.
2980
2981         * python/service.py: Remove debug print left by the last commit.
2982
2983 2005-11-03  Robert McQueen  <robot101@debian.org>
2984
2985         * python/service.py: Heavy refactoring of method invocation, with
2986         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2987         in favour of a new _message_cb that uses seperate functions for
2988         looking up the method to call, marshalling the return values, and
2989         sending exceptions as errors, and is easier to follow as a
2990         consequence.  Fixes some corner cases about returning things that
2991         don't match your declared out_signature, allows exceptions to define
2992         _dbus_error_name and have it be sent over the bus as the error name,
2993         and paves the way for cool stuff like heeding the message no reply
2994         flag, asynchronous method implementations, informing the method of the
2995         sender, and including backtraces in the error messages.
2996
2997         * test/python/test-client.py: Catch and print exceptions thrown in the
2998         async callback tests, rather than passing them to the low-level
2999         bindings to be ignored in a noisy and frustrating manner.
3000
3001 2005-11-03  Robert McQueen  <robot101@debian.org>
3002
3003         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3004         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3005         tweak others to be consistent.
3006
3007         * test/python/test-client.py: Tweak output of testInheritance.
3008
3009 2005-10-29  Robert McQueen  <robot101@debian.org>
3010
3011         * python/service.py: Major changes to allow multiple inheritance
3012         from classes that define D-Bus interfaces:
3013         
3014          1. Create a new Interface class which is the parent class of
3015             Object, and make the ObjectType metaclass into InterfaceType.
3016         
3017          2. Patch written with Rob Taylor to replace use of method_vtable
3018             with code that walks the class's __MRO__ (method resolution order)
3019             to behave like Python does when invoking methods and allow
3020             overriding as you'd expect. Code is quite tricky because
3021             we have to find two methods, the one to invoke which has the
3022             right name and isn't decorated with the /wrong/ interface,
3023             and the one to pick up the signatures from which is decorated
3024             with the right interface.
3025         
3026             The same caveats apply as to normal multiple inheritance -
3027             this has undefined behaviour if you try and inherit from two
3028             classes that define a method with the same name but are
3029             decorated with different interfaces. You should decorate
3030             your overriding method with the interface you want.
3031         
3032          3. Replace grungy introspection XML generation code in the metaclass
3033             with dictionaries that cope correctly with multiple inheritance
3034             and the overriding of methods. This also uses the signature
3035             decorations to provide correct introspection data, including
3036             the debut appearance of the types of your return values. :D
3037
3038         * test/python/test-client.py, test/python/test-service.py: Add a test
3039         case to try invoking an method that overrides one inherited from a
3040         D-Bus interface class.
3041
3042 2005-10-29  Robert McQueen  <robot101@debian.org>
3043
3044         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3045         Add checking for the end of struct character when marshalling a
3046         struct in MessageIter.append_strict.
3047
3048         * python/examples/example-service.py,
3049         python/examples/gconf-proxy-service.py,
3050         python/examples/gconf-proxy-service2.py: Update to use gobject
3051         mainloop directly rather than appearing to depend on gtk.
3052
3053         * python/test/test-client.py, python/test/test-server.py: Remove
3054         obsolete and broken test scripts for old bindings. We have up to date
3055         and working tests in test/python/.
3056
3057 2005-10-29  Robert McQueen  <robot101@debian.org>
3058
3059         * python/decorators.py: Add optional arguments to the method and
3060         signal decorators to allow you to specify the signature of arguments
3061         and return values. Preserve the doc strings of signal functions in the
3062         decorated version, for pydoc and friends.
3063
3064         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3065         parse_signature_block function with an iterable dbus.Signature()
3066         type. Fix a bug in MessageIter.append_strict where you could append
3067         anything by claiming it was a string.
3068
3069         * python/service.py: Use the out_signature decoration on methods to
3070         marshal return values, meaning you no longer require dbus.Array()
3071         or dbus.Dictionary() to indicate the type when returning empty
3072         arrays or dictionaries. Fix a bug where exceptions which are defined
3073         in __main__ are not turned into error replies.
3074
3075         * test/python/test-client.py, test/python/test-service.py: Add test
3076         for correct marshalling of return values according to out_signature.
3077         Fix a bug in the async call test where the error_handler is missing a
3078         self argument.
3079
3080 2005-10-29  Robert McQueen  <robot101@debian.org>
3081
3082         * glib/Makefile.am, glib/examples/Makefile.am,
3083         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3084         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3085
3086         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3087
3088         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3089         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3090         the command line.
3091
3092 2005-10-27  Ross Burton  <ross@openedhand.com>
3093
3094         * dbus/dbus-marshal-header.c:
3095         Remove dead code.
3096
3097         * glib/dbus-gobject.c:
3098         Stop compiler warning.
3099
3100 2005-10-25  Ross Burton  <ross@openedhand.com>
3101
3102         * dbus/dbus-auth.c:
3103         * dbus/dbus-server-unix.c:
3104         * dbus/dbus-transport-unix.c:
3105         * glib/dbus-gmain.c:
3106         * glib/dbus-gobject.c:
3107         Add some const keywords.
3108
3109 2005-10-25  Ross Burton  <ross@openedhand.com>
3110
3111         * doc/dbus-specification.xml:
3112         Document the NoReply annotation.
3113
3114         * glib/dbus-binding-tool-glib.h:
3115         * glib/dbus-binding-tool-glib.c:
3116         Respect the NoReply annotation.
3117
3118 2005-10-24  Robert McQueen <robot101@debian.org>
3119
3120         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3121         derive from unicode instead of str, and encode/decode UTF-8 when
3122         marshalling/unmarshalling bus messages
3123
3124         * python/introspect_parser.py: encode introspection data as UTF-8
3125         before passing the buffer into libxml2
3126
3127         * test/python/test-client.py: add unicode test strings
3128
3129         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3130         ignore generated python test files
3131
3132 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3133
3134         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3135         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3136         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3137
3138         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3139         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3140         when constructing struct signatures
3141
3142         * python/_dbus.py (Bus): handle private connections using the
3143         private keyword in the constructor. defaults to private=False
3144         (Bus::close): new method to close a connection to the bus
3145
3146         * python/dbus_bindings.pyx (Connection::close): renamed method
3147         was previously called disconnect
3148         (bus_get): now supports getting a private connection
3149
3150         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3151         keyword is set to True.  if it is, execute the method without waiting
3152         for a reply
3153         (ProxyObject::_introspect_execute_queue): new method for executing
3154         all the pending methods that were waiting for the introspect to
3155         finish.  this is called when introspect either succeeds or fails
3156         (ProxyObject::_introspect_error_handler): call queued methods
3157
3158 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3159
3160         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3161         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3162
3163         * python/service.py (Object::_message_cb): handle exceptions correctly
3164         by sending them over the wire to the calling app.  This makes sure
3165         the client returns immediately instead of waiting the 15 seconds to
3166         timeout.
3167
3168         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3169         Add a test to benchmark how long it takes to introspect a service and 
3170         call a method which returns a large element (pretty fast)
3171
3172         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3173         method which pushes a lot of data
3174
3175 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3176
3177         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3178         reclaim memory outside of the loop and use del istead of just setting
3179         the key to None
3180
3181 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3182
3183         * python/service.py (ObjectType::_reflect_on_signal): Always close
3184         signal tag even when there are no arguments
3185
3186 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3187
3188         * configure.in: Set mono, mono-docs and Qt3 to default
3189         to no instead of auto when building.  These bindings do not
3190         have full time maintainers and will not be supported for the
3191         1.0 release.
3192
3193 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3194
3195         patches from Michael Krivoruchko <misha at sun.com>: 
3196         
3197         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3198         _dbus_connection_message_sent, 
3199         _dbus_connection_send_preallocated_unlocked_no_update, 
3200         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3201         is NULL when calling _dbus_verbose
3202
3203         * configure.in: check for functions getpeerucred and getpeereid
3204
3205         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3206         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3207         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3208         Patch was only tested on Solaris 10 x86 so it might be issues
3209         with other platforms (i.e. BSDs and MacOSX)
3210         
3211
3212 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3213
3214         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3215         instead of marshal basic so we can handle recursive types in a variant
3216
3217         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3218         in variants
3219
3220         * test/glib/test-service-glib.c, test-service-glib.xml
3221         (my_object_echo_variant [EchoVariant], 
3222         my_object_process_variant_of_array_of_ints123
3223         [ProcessVariantOfArrayOfInts123]): 
3224         Add two test methods
3225
3226         * python/introspect_parser.py: New module for parsing introspect
3227         data.
3228
3229         * python/dbus_bindings.pyx:
3230         (various places): when throwing errors fix to use errormsg instead 
3231         of message local variable because Pyrex can get confused with other 
3232         message variables (initial patch by Robert McQueen 
3233         <robert.mcqueen at collabora.co.uk>)
3234         (MessageIter::parse_signature_block): new method for getting the next
3235         block in a signiture.
3236         (MessageIter::append_strict): new method for appending values strictly
3237         using the passed in signature instead of guessing at the type
3238         (MessageItter:: append_dict, append_struct, append_array): use 
3239         signatures to marshal children if the signature is available
3240         
3241         * python/exceptions.py (IntrospectionParserException): new exception
3242
3243         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3244         introspected signatures if available, else we fall back to the
3245         old way of doing things.
3246         (ProxyObject::_introspect_reply_handler ): parse introspection data
3247         
3248         * python/service.py (ObjectType::_reflect_on_method): Properly
3249         terminate <method> if there are no args in the reflection data
3250
3251         * test/python/test-client.py: add tests for talking with the GLib
3252         test server.  This gives us better coverage for introspection since
3253         python to python will always generate arguments as variants.  It also
3254         allows us to test the robustness of the GLib bindings and interlanguage
3255         communications.
3256
3257         
3258 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3259
3260         * bus/driver.c (bus_driver_handle_introspect): Add signals
3261         to the introspect data. (patch from Daniel P. Berrange 
3262         <dan at berrange.com>)
3263
3264         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3265         
3266         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3267         _dbus_connection_run_builtin_filters): Changed these to
3268         be unlock_no_update functions and call 
3269         _dbus_connection_send_unlocked_no_update instead of
3270         dbus_connection_send to avoid locking errors.
3271         
3272         * doc/TODO: Removed the make Ping test TODO
3273         
3274 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3275
3276         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3277         We now copy the message from a DBusError and then free 
3278         the error object befor throwing the error
3279
3280         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3281         DBusBindingOutputMode enum which was causing a warning.
3282         #include <time.h> so using time_t is explicitly defined
3283
3284 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3285
3286         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3287         - dbus/dbus-bus.c
3288         (internal_bus_get): new method that take over the heavy lifting
3289         of dbus_bus_get and adds the ability to get a private connection
3290         to the bus
3291         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3292         interface as in previous versions
3293         (dbus_bus_get_private): new method that is a wrapper to 
3294         internal_bus_get to get a private connection to the bus
3295
3296         - dbus/dbus-bus.h
3297         (dbus_bus_get_private): add as a public libdbus interface
3298
3299         - dbus-1.pc.in: output system_bus_default_address and 
3300         sysconfdir variables so apps can use them when compiling
3301
3302 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3303         * dbus/qt: New Qt bindings
3304
3305 2005-09-12  Waldo Bastian  <bastian@kde.org>
3306
3307         * dbus/dbus-marshal-validate.c,
3308         doc/dbus-specification.xml, test/Makefile.am,
3309         test/test-names.c: allow hyphens in bus names.
3310
3311 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3312
3313         * test/data/auth/fallback.auth-script: we don't
3314         retry the EXTERNAL method when we know its going
3315         to fail anymore.
3316
3317 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3318
3319         * dbus/dbus-connection-internal.h: rename
3320         (add|remove|toggle)_(watch|timeout) to unlocked()
3321         
3322         * dbus/dbus-connection.c: ditto.
3323         
3324         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3325         Update some callers for the renaming.
3326
3327 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3328
3329         * dbus/dbus-auth.c: (record_mechanisms): don't
3330         retry the first auth mechanism because we know
3331         we're just going to get rejected again.
3332         
3333         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3334         Fix thinko ... and what a nasty little bugger to
3335         track down you were ...
3336
3337         * dbus/dbus-connection.c:
3338         (_dbus_connection_add_watch),
3339         (_dbus_connection_remove_watch): add note about
3340         these needing the connection to be locked.
3341         (_dbus_connection_get_dispatch_status_unlocked):
3342         set status to DATA_REMAINS when we queue the
3343         disconnected message.
3344         
3345         * bus/dispatch.c:
3346         (bus_dispatch): fix warning.
3347         (check_existent_service_no_auto_start):
3348         Expect ChildSignaled error too.
3349         (check_existent_hello_from_self): fix another
3350         couple of warnings.
3351         
3352 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3353
3354         Patches from James Willcox <snorp@snorp.net>
3355
3356         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3357
3358         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3359         support array "out" parameters.
3360
3361         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3362         for 16-bit int support.
3363
3364 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3365
3366         * Released 0.50
3367
3368         * Patch from Steve Grubb:
3369         - bus/activation.c (bus_activation_service_reload_test): clean up
3370         some indentation
3371         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3372         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3373         buffer overflows in the test suite.  This is non critical because
3374         it can not be exploited and this code is only run when doing a 
3375         make check.
3376
3377         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3378         - configure.in: Don't check and link against kdecore, only qt headers
3379         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3380         - gcj/org/freedesktop/dbus/Makefile.am:
3381         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3382         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3383         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3384         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3385         - tools/Makefile.am: Add platform extentions to binaries 
3386         (i.e. .exe on windows)
3387
3388         * configure.in: 
3389         - Make it so if no suitable version of python is found we only 
3390         disable building python instead of exiting the configure script
3391         - Require version 2.4 of glib for glib bindings
3392         - Up version to 0.50
3393
3394         * python/__init__.py: Sync version with libdbus to (0,50,0)
3395         
3396 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3397
3398         * dbus/dbus-object-tree.c (find_subtree_recurse):
3399         a couple of optimizations (bug #710):
3400         - do a binary search in the tree
3401         - insert a new child at the right place directly, no need for
3402           qsort anymore
3403         - do the "double alloc" thing when allocating children
3404
3405 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3406
3407         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3408
3409         * python/dbus_bindings.pyx: Memory management foo
3410         (global): remove hacky _user_data_references global list
3411         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3412         tuples. Unref user_data
3413         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3414         (Connection::__del__): Remove and replace with __dealloc__ method
3415         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3416         to keep tuple from being deallocated instead of the global var hack
3417         (Connection::register_object_path): Stuff user_data into a tuple.
3418         Use Py_INCREF to keep tuple from being deallocated instead of the 
3419         global var hack
3420         (Connection::register_fallback): Stuff user_data into a tuple.
3421         Use Py_INCREF to keep tuple from being deallocated instead of the 
3422         global var hack
3423         (GIL_safe_pending_call_notification): Don't unref the message
3424         because it gets unreffed when going out of scope.  Py_XDECREF
3425         the user_data
3426         (PendingCall::__del__): Remove and replace with __dealloc__ method
3427         (PendingCall::set_notify): ref the pending call because we will
3428         need it to stick around for when the notify callback gets called
3429         (Message::__del__): Remove and replace with __dealloc__ method
3430
3431         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3432         gthreads_init to match up with the dbus call
3433
3434         * python/glib.py (init_threads): Changed to threads_init to match
3435         up with gobject.threads_init().  init_threads is kept for backwards
3436         compat but will most likely be deprecated in the future
3437
3438         * test/python/test-client.py: 
3439         - revamp to use Python's unittest functionality
3440         - add async call tests
3441         - setup threads in glib and dbus so we make sure locks are working
3442         
3443 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3444
3445         * python/dbus_bindings.pyx 
3446         (_pending_call_notification, cunregister_function_handler, 
3447         cmessage_function_handler): All callback functions have been rearranged 
3448         to workaround a bug in Pyrex when working with the GIL which is Python's 
3449         global lock when dealing with threads.  They have been split into
3450         a wrapper function (which assumes the name of the old function) and
3451         a _GIL_safe_<function name> function which contains the functionality
3452         of the old function.  This ensures that Pyrex does not write code
3453         the lock is released.
3454         
3455
3456 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3457
3458         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3459         GIL global lock when calling back into Python
3460
3461 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3462
3463         * Release 0.36.2
3464
3465         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3466
3467         * bus/policy.c (bus_policy_allow_user): change default "user is
3468         allowed" to be "user has same uid as the bus itself"; any
3469         allow/deny rules will override.
3470
3471         * bus/session.conf.in: don't allow all users, since now by default
3472         the user that ran the bus can connect.
3473
3474 2005-08-26  Colin Walters  <walters@verbum.org>
3475
3476         * tools/dbus-print-message.c (print_message): Flush stdout
3477         after printing a message, so that redirecting to a file, then
3478         hitting Ctrl-C works.
3479
3480 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3481
3482         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3483         (EmptyMessage): new class that subclasses Message.  This is a workaround
3484         to a Pyrex bug that fails to call __del__ when the Message object goes out
3485         of scope.  For some reason subclassing Message fixes this bug
3486         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3487         - s/Message(_create=0)/EmptyMessage everywhere else
3488         
3489         * test/python/test-{server|client}.py: add the python/.libs directory
3490         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3491         get picked up from the system
3492
3493 2005-08-25  Colin Walters  <walters@verbum.org>
3494
3495         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3496         to Ryan Lortie for the suggestion.
3497
3498 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3499
3500         * test/python: Add python regression test
3501
3502         * configure.in: Add test/python/Makefile
3503
3504         * test/Makefile.am: Add the python directory to SUBDIRS
3505
3506 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3507
3508         * Release 0.36.1
3509
3510         * python/_dbus.py: 
3511         (Interface::connect_to_signal): propigate keywords for match on args
3512         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3513
3514         * python/proxies.py (ProxyObject::connect_to_signal):
3515         propigate keywords for match on args
3516
3517         * Makefile.am: point everything to pyexecdir since python borks
3518         on multilib
3519
3520 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3521
3522         * Release 0.36
3523
3524 2005-08-23  Colin Walters  <walters@verbum.org>
3525
3526         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3527
3528 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3529
3530         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3531         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3532         of defining DBusConnection ourselves.
3533
3534 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3535
3536         * python/dbus.pth: New path file to fix up problems when installing
3537         c libraries to lib64 and python files to lib.
3538
3539         * python/Makefile.am: install dbus.pth in the correct spot
3540
3541 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3542         * ChangeLog: clean up my last entry a bit
3543
3544         * doc/introspect.xsl: New stylesheet for converting introspection data
3545         into browser renderable xhtml. Contributed by Lennart Poettering.
3546
3547         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3548         Poettering.
3549
3550         * doc/dbus-tutorial.xml: 
3551         - Add Colin Walter to the Authors section for authoring the GLib
3552         section
3553         - Add descriptions of the new signature and type functionality
3554         in the Python complex type mapping section
3555         - Add a sidenote on the new args matching functionality in 
3556         the Python bindings
3557         - Fixed up some of the examples to use the gobject.MainLoop
3558         instead of gtk.main
3559         
3560         * python/_dbus.py:
3561         (Bus::_create_args_dict): New. Converts a hash of arg matches
3562         to a more useable format
3563         (Bus::add_signal_receiver): add a **keywords parameter for catching
3564         arg match parameters
3565         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3566         arg match parameters
3567         
3568         * python/matchrules.py:
3569         (MatchTree::exec_matches): Check for arg matches
3570         (SignalMatchRule::add_args_match): New method
3571         (SignalMatchRule::execute): Added args_list parameter as an optimization
3572         so we don't have to marshal the args more than once
3573         (SignalMatchRule::match_args_from_list): New method that checks to see
3574         if the rule's arg matches match an argument list.  Only arguments
3575         set in the rule are checked.
3576         (SignalMatchRule::match_args_from_rule): New method that checks to see
3577         if the rule's arg matches match another rule's.  All args have to match
3578         in order for this method to return true.  If either rule has more args
3579         then it is not a match.
3580         (SignalMatchRule::is_match): Add args match
3581         (SignalMatchRule::repr): Add args to the final output if they exist
3582
3583 2005-08-17  Ross Burton  <ross@burtonini.com>
3584
3585         * glib/dbus-gproxy.c:
3586         (dbus_g_proxy_call_no_reply): unref the message once sent.
3587         (dbus_g_proxy_call): protect against NULL proxy.
3588
3589 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3590
3591         * python/__init__.py: Version updated (0, 43, 0)
3592         
3593         * python/dbus_bindings.pyx: 
3594         - Fixed type objects to have self passed into __init__
3595         - Added the Variant type
3596         - Add the ability to specify types or signatures for Array, Variant 
3597         and Dictionary
3598         (Connection::send_with_reply_handlers): return a PendingCall object
3599         (_pending_call_notification): handle the case when an error is returned 
3600         without an error message in the body
3601         (MessageIter::get_boolean): return True or False instead of an integer
3602         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3603         and add checks for objects with embeded signatures or types (Array, 
3604         Variant and Dictionary)
3605         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3606         (MessageIter::append_dict): handle embeded types or signatures
3607         (MessageIter::append_array): handle embeded types or signatures
3608         (MessageIter::append_variant): new method
3609         
3610         * python/proxies.py:
3611         (DeferedMethod): New. Dummy executable object used when queuing calls 
3612         blocking on introspection data
3613         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3614         or shorter timeouts for method calls
3615         (ProxyObject): Add first pass at an introspection state machine
3616         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3617         introspection. 
3618         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3619         the usual mechanisms for sending messages.  This is to avoid a deadlock
3620         where the Intospect call would be queued waiting for the Introspect 
3621         call to finish ;-)
3622         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3623         when introspection returns with no error
3624         (ProxyObject::_introspect_error_handler): New.  This method is called 
3625         when introspection encounters an error
3626         (ProxyObject::__getattr__): Code to handle different introspection 
3627         states.  Queue async calls or block blocking calls if we are 
3628         introspecting.  Pass through as normal if we are not or are done with 
3629         introspecting.
3630         
3631         * python/service.py: Import signal and method from decorators.py
3632
3633         * python/types.py: Add Variant type
3634
3635 2005-08-16  Colin Walters  <walters@verbum.org>
3636
3637         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3638         DBusError message is NULL.
3639
3640 2005-08-09  Havoc Pennington  <hp@redhat.com>
3641
3642         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3643         malloc'd copy of the name parameter
3644
3645 2005-08-09  Havoc Pennington  <hp@redhat.com>
3646
3647         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3648         warning if the reply serial is set to 0
3649
3650 2005-08-04  Colin Walters  <walters@verbum.org>
3651
3652         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3653         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3654         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3655         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3656         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3657         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3658         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3659         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3660         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3661         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3662         
3663         Prefix name with _ to ensure they're not exported.  All callers
3664         updated.
3665
3666         * glib/dbus-gvalue.c (typecode_to_gtype)
3667         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3668         (signature_iter_to_g_type_dict)
3669         (signature_iter_to_g_type_array)
3670         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3671         (dbus_gtypes_from_arg_signature):
3672         Move to dbus-gsignature.c.
3673
3674         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3675         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3676         (dbus_binding_tool_output_glib_client): Ditto.
3677
3678         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3679         and dbus-gsignature.h
3680
3681         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3682         unused variable.
3683
3684 2005-08-03  Colin Walters  <walters@verbum.org>
3685
3686         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3687         catch any incompatible changes accidentally made.
3688
3689 2005-08-03  Havoc Pennington  <hp@redhat.com>
3690
3691         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3692         typo, from Julien Puydt
3693
3694         * bus/connection.c (bus_connection_disconnected): we were always
3695         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3696
3697 2005-08-01  Colin Walters  <walters@verbum.org>
3698
3699         Patch from Joe Markus Clarke:   
3700         
3701         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3702         use-after-free.
3703
3704 2005-08-01  Colin Walters  <walters@verbum.org>
3705         
3706         Patch from Joe Markus Clarke:   
3707         
3708         * tools/dbus-send.c (main): 
3709         
3710         Don't use C99 style initializers (bug #3933).
3711         
3712 2005-08-01  Colin Walters  <walters@verbum.org>
3713
3714         Patch from Joe Markus Clarke:   
3715
3716         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3717         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3718         * glib/dbus-gobject.c (write_interface):
3719
3720         Don't use C99 style initializers (bug #3933).
3721
3722 2005-07-31  Havoc Pennington  <hp@redhat.com>
3723
3724         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3725         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3726
3727 2005-07-30  Havoc Pennington  <hp@redhat.com>
3728
3729         * fix a bunch of Doxygen warnings and mistakes
3730
3731 2005-07-30  Havoc Pennington  <hp@redhat.com>
3732
3733         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3734         DBUS_BUILD_TESTS since it's now used in production code
3735
3736 2005-07-29  Havoc Pennington  <hp@redhat.com>
3737
3738         * test/glib/test-profile.c (write_junk): initialize the junk
3739         buffer so valgrind doesn't have a breakdown
3740
3741 2005-07-29  Havoc Pennington  <hp@redhat.com>
3742
3743         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3744         (match_rule_matches): remove unused arg
3745         (test_matching): add tests for match_rule_matches()
3746
3747         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3748         do arg0='foo' arg5='bar' in the match rules
3749         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3750
3751         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3752
3753 2005-07-29  Ross Burton  <ross@openedhand.com>
3754
3755         * dbus/dbus-connection.c:
3756         Don't create a DBusCondVar which is never used.
3757
3758 2005-07-27  Ross Burton  <ross@openedhand.com>
3759
3760         * dbus/dbus-message.c:
3761         Reduce the size of the maximum cached message to 10K.
3762
3763 2005-07-25  Ross Burton  <ross@openedhand.com>
3764
3765         * glib/dbus-gproxy.c:
3766         Remove matches when all proxies are unregistered.
3767
3768 2005-07-24  Colin Walters  <walters@verbum.org>
3769
3770         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3771         typedata; recursive arrays won't have it.
3772
3773         * test/glib/test-dbus-glib.c:
3774         * test/glib/test-service-glib.c:
3775         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3776         
3777 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3778
3779         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3780         proxies.py, service.py: Cleanup of code after running it through the
3781         pyflakes code checker mostly dealing with undefined names.  
3782         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3783
3784 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3785
3786         * NEWS: Update to 0.35.2
3787
3788 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3789
3790         * python/_dbus.py: Remove import of the dbus.services
3791         module as it no longer exists (patch from Dimitur Kirov)
3792
3793         * python/service.py (Object::__init__): Fixed typo
3794         s/name/bus_name (patch from Dimitur Kirov)
3795
3796         * python/examples/example-signal-emitter.py: import dbus.glib
3797         to get the main loop and use glib mainloop instead of gtk so
3798         X doesn't have to be running.
3799
3800         * python/examples/example-signal-recipient.py: import dbus.glib
3801         to get the main loop and use glib mainloop instead of gtk so
3802         X doesn't have to be running. Import the decorators module
3803         directly.
3804
3805         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3806         didn't pick up on but are needed to build
3807
3808         * configure.in: upped version to 0.35.2
3809
3810         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3811         added Colin Walters' SELinux API rename patch from head 
3812         s/unix sercurity context/selinux security context/
3813
3814 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3815
3816         * python/Makefile.am: dbus_binding.pxd.in should be included 
3817         in EXTRA_DIST not dbus_binding.pxd
3818         fix up $(srcdir) hopefully for the last time
3819
3820         * NEWS: Update to 0.35.1
3821
3822 2005-07-16  Colin Walters  <walters@verbum.org>
3823
3824         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3825         from bus_driver_handle_get_connection_unix_security_context.  Update for
3826         error usage.
3827         (message_handlers): Update for renames.
3828
3829         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3830         _dbus_string_init failure correctly.
3831         (bus_selinux_append_context): Convert SID to context.  Append it
3832         as a byte array.
3833         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3834         hasn't been called.
3835
3836         * bus/selinux.h: Update prototype.
3837
3838         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3839         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3840
3841 2005-07-15  Colin Walters  <walters@verbum.org>
3842
3843         * doc/TODO: Add note about convenience wrappers.
3844
3845 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3846
3847         * NEWS: Update to 0.35
3848
3849 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3850
3851         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3852         so distcheck doesn't fail
3853
3854         * glib/examples/Makefile.am: Add example-service.xml and 
3855         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3856
3857         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3858         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3859
3860         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3861         compiler looks in the right places during distcheck
3862
3863 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3864
3865         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3866         to fail
3867
3868 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3869
3870         * python/examples/example-service.py,
3871         python/examples/example-signal-emitter.py: Fixed up examples
3872         for API changes
3873
3874 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3875
3876         * python/__init__.py: Upped to version (0,42,0) because of
3877         the API change
3878
3879 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3880
3881         * ChangeLog: fix date in last entry
3882
3883         * configure.in, bus/system.conf.in: add the ability to configure 
3884         the system bus user at compiletime with the --with-dbus-user flag
3885         (patch from Kristof Vansant)
3886
3887 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3888
3889         * bus/dispatch.c, test/test-service.c: Add testcase
3890         for sending messages to oneself (TODO item).
3891
3892         * python/service.py (class Object): Swap ordering of bus_name 
3893         and object_path parameters to better support inheritance.
3894
3895         * doc/dbus-tutorial.xml: change Python docs to reflect change
3896         in parameter ordering and fix the inheritance section.
3897
3898         * doc/TODO: remove sending message to oneself TODO item
3899
3900 2005-07-15  Ross Burton  <ross@openedhand.com>
3901
3902         * glib/dbus-gproxy.c:
3903         Fix a leak when calling methods via the proxy.
3904
3905 2005-07-15  Colin Walters  <walters@verbum.org>
3906
3907         * bus/selinux.c (bus_selinux_append_context): Wrap in
3908         HAVE_SELINUX.
3909
3910 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3911
3912         * python/_dbus.py (Bus::remove_signal_receiver):
3913         don't add a callback to the match if none has been passed in
3914         
3915         * python/matchrules.py (SignalMatchTree::remove): if the rule
3916         being matched does not have a callback treat it as a wildcard
3917         fix matching logic
3918
3919         * doc/dbus-tutorial.xml: Add Python tutorial
3920
3921 2005-07-14  Colin Walters  <walters@verbum.org>
3922
3923         * bus/driver.c
3924         (bus_driver_handle_get_connection_unix_security_context): New function.
3925         (message_handlers): Add.
3926
3927         * bus/selinux.c (bus_selinux_append_context): New function; appends
3928         security context to message.
3929
3930         * bus/selinux.h: Prototype.
3931
3932         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3933
3934 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3935
3936         * bus/activation.c: clean up all tabs to be 8 spaces 
3937         (bus_activation_activate_service): make sure we clean up
3938         if activation fails
3939
3940         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3941         (check_shell_fail_service_auto_start): New function
3942         tests to make sure we get fail properly when trying to auto start a service
3943         with a faulty command line
3944         (check_shell_service_success_auto_start): New function tests to make sure
3945         auto started services get the arguments on the command line
3946
3947         * test/test-shell-service.c: Added service for testing auto-starting with 
3948         command line arguments
3949
3950         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3951         test/data/valid-service-files/debug-shell-echo-success.service.in:
3952         Added service files for testing auto-starting with command line arguments
3953
3954         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3955
3956 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3957
3958         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3959         
3960         * dbus/Makefile.am: added new files to build.
3961
3962         * bus/activation.c (bus_activation_activate_service): support
3963         activation commands with parameters.
3964
3965         * test/shell-test.c: added test program for the shell parsing
3966         code.
3967
3968 2005-07-13  David Zeuthen  <davidz@redhat.com>
3969
3970         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3971         64 bit signed and unsigned parameters
3972
3973 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3974
3975         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3976
3977         * python/service.py (class Name): renamed BusName to make it clearer
3978         what the object is for (a name on the bus)
3979
3980         * python/examples/example-service.py,
3981         python/examples/example-signal-emitter.py: change the Name object to
3982         BusName
3983
3984 2005-07-12  Colin Walters  <walters@verbum.org>
3985
3986         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3987
3988         * tools/dbus-launch.c: Include sys/select.h.
3989
3990 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3991         * python/dbus_bindings.pyx.in: removed
3992
3993         * python/dbus_bindings.pyx: Added.
3994         - Fixed some memleaks (patch from 
3995         Sean Meiners <sean.meiners@linspireinc.com>)
3996         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3997         own pxd file (Pyrex definition)
3998         - Broke out glib dependancies into its own pyx module
3999         
4000         * python/dbus_bindings.pdx: Added.
4001         - Defines C class Connection for exporting to other modules
4002
4003         * python/dbus_glib_bindings.pyx: Added.
4004         - New module to handle lowlevel dbus-glib mainloop integration
4005
4006         * python/glib.py: Added.
4007         - Registers the glib mainloop when you import this module
4008
4009         * python/services.py: Removed (renamed to service.py)
4010         
4011         * python/service.py: Added.
4012         - (class Server): renamed Name
4013
4014         * python/__init__.py: Bump ro version (0,41,0)
4015         -don't import the decorators or service module
4016         by default.  These now reside in the dbus.service namespace
4017
4018         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4019         setup function on creation 
4020
4021         * python/examples/example-service.py,
4022         python/examples/example-signal-emitter.py: update examples
4023
4024         * python/examples/gconf-proxy-service.py,
4025         python/examples/gconf-proxy-service2.py: TODO fix these up
4026
4027         * doc/TODO: Addition
4028         - Added a Python Bindings 1.0 section
4029         - added "Add match on args or match on details to match rules"
4030
4031
4032 2005-07-12  Colin Walters  <walters@verbum.org>
4033
4034         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4035         (statemachine-glue.h): 
4036         * glib/examples/Makefile.am (example-service-glue.h) 
4037         (example-signal-emitter-glue.h): 
4038         * glib/Makefile.am (dbus-glib-error-switch.h): 
4039         Add libtool --mode=execute so we use the built library instead
4040         of any installed one.
4041
4042 2005-07-11  Colin Walters  <walters@verbum.org>
4043
4044         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4045         (dbus_g_value_types_init): Remove assertion.
4046         (dbus_g_value_get_g_type, dbus_g_value_open)
4047         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4048         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4049         functions related to DBusGValue.  Now we marshal/demarshal
4050         structures as GValueArray.
4051         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4052         structures.
4053         (signature_iter_to_g_type_array): Don't call
4054         signature_iter_to_g_type_struct.
4055         (signature_iter_to_g_type_struct): Delete.
4056         (dbus_gvalue_to_signature): Delete.
4057         (dbus_gvalue_to_signature): New function with same name as other
4058         one; we can convert structures to signatures.
4059         (demarshal_valuearray): New function.
4060         (get_type_demarshaller): Use it.
4061         (demarshal_recurse): Delete.
4062         (marshal_proxy): New function.
4063         (marshal_map): Warn if we can't determine signature from type.
4064         (marshal_collection_ptrarray): Ditto.
4065         (marshal_collection_array): Ditto.
4066         (get_type_marshaller): Use marshal_valuearray.
4067         (marshal_recurse): Delete.
4068         (_dbus_gvalue_test): Add some tests.
4069
4070         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4071         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4072         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4073         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4074         (dbus_g_value_free): Remove prototypes.
4075
4076         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4077         G_TYPE_VALUE_ARRAY.
4078
4079         * glib/examples/example-service.c:
4080         * glib/examples/example-client.c: Implement GetTuple.
4081
4082         * test/glib/test-dbus-glib.c:
4083         * test/glib/test-service-glib.c:
4084         * test/glib/test-service-glib.xml: Add structure tests.
4085
4086 2005-07-10  Colin Walters  <walters@verbum.org>
4087
4088         * doc/TODO: Knock off some GLib items with this patch.
4089
4090         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4091         (_dbus_gvalue_signals_error): New functions.
4092
4093         * glib/dbus-gvalue-utils.h: Prototype them.
4094
4095         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4096         and change to not output const/retval flags for input args.  All
4097         callers updated.
4098         (invoke_object_method): Refactor to handle return values.  Add
4099         some more comments in various places.  Remove debug g_print.
4100
4101         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4102
4103         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4104         Handle G_TYPE_NONE.
4105         (compute_gsignature): New function; refactored from code from
4106         compute_marshaller and compute_marshaller_name.  Enhance to
4107         handle return values and async ops more cleanly.  Update for
4108         async ops returning NONE instead of BOOLEAN.
4109         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4110         and output appropriate string.
4111         (generate_glue): Handle return value annotation.  Also don't dump
4112         constness flag for input arguments.
4113
4114         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4115         files shared between installed library and utilities.
4116         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4117         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4118         binding tool can access gtype utility functions.
4119
4120         * test/glib/test-service-glib.c: 
4121         * test/glib/test-service-glib.xml: 
4122         * test/glib/test-dbus-glib.c: Add some tests for return values.
4123
4124 2005-07-09  Colin Walters  <walters@verbum.org>
4125
4126         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4127         argument if available, not method.
4128
4129         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4130         (invoke_object_method): First, remove some redundant
4131         GValues (object_value, error_value) in favor of working on
4132         array directly.  Second, rework constness to be less buggy.
4133         Now we iterate directly over the argument metadata instead
4134         of parallel iterating over output signature and metadata.
4135
4136         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4137
4138         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4139         annotation on input args.
4140         
4141 2005-07-09  Colin Walters  <walters@verbum.org>
4142
4143         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4144         Define.
4145
4146         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4147         annotation.
4148
4149         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4150         (method_dir_signature_from_object_info): Handle arg_iterate change.
4151         (write_interface): Ditto.
4152         (lookup_object_info): Don't barf if format_version is > 0.
4153         (invoke_object_method): Handle arg constness.
4154
4155         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4156         (arg_info_new): Create.
4157         (arg_info_unref): Destroy.
4158         (arg_info_get_annotations, arg_info_get_annotation) 
4159         (arg_info_add_annotation): New functions.
4160
4161         * glib/dbus-gidl.h: Prototype them.
4162
4163         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4164         args, disallow them in properties.
4165         (parse_annotation): Handle arg annotations.
4166
4167         * test/glib/test-service-glib.xml: 
4168         * test/glib/test-service-glib.c: Update to make some methods
4169         const.
4170
4171 2005-07-08  Colin Walters  <walters@verbum.org>
4172
4173         * test/glib/test-service-glib.xml: 
4174         * test/glib/test-service-glib.c:
4175         * test/glib/test-dbus-glib.c: Test a{sv}.
4176
4177         * glib/examples/statemachine/statemachine.c:
4178         * glib/examples/statemachine/statemachine-server.c:
4179         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4180         add progress bar, etc.
4181
4182         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4183         needed anymore due to generic array/map marshalling.
4184         (dbus_g_value_types_init): Don't register basic arrays or the
4185         string/string hash.
4186         (dbus_gtype_from_signature_iter): Don't try to recurse into
4187         variants.
4188         (dbus_gtype_to_signature): Check collection/map before type
4189         metadata.
4190         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4191         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4192         generic map creation/append functions instead of hash table
4193         specifically.
4194         (get_type_demarshaller): Handle maps.
4195         (demarshal_collection): Dispatch on collection type to either
4196         demarshal_collection_ptrarray or demarshal_collection_array.
4197         (get_type_marshaller): Handle maps.
4198         (marshal_collection): Dispatch collection type to either
4199         marshal_collection_ptrarray or marshal_collection_array.
4200         (_dbus_gvalue_test): New test.
4201
4202         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4203         (hash_free_from_gtype): Use it to free GValues.
4204         (hashtable_append): New function.
4205         (ptrarray_append): Fix prototype.
4206         (slist_append): Ditto.
4207         (_dbus_gvalue_utils_test): Extend tests.
4208
4209         * glib/dbus-gtype-specialized.c
4210         (dbus_g_type_specialized_init_append): Renamed from
4211         dbus_g_type_specialized_collection_init_append.  Remove const from
4212         value, since we steal it.
4213         (dbus_g_type_specialized_map_append): New function.
4214
4215         * glib/dbus-gtype-specialized.h: Update prototypes.
4216         Add DBusGTypeSpecializedMapAppendFunc.
4217
4218         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4219         _dbus_gvalue_test.
4220         
4221         * glib/dbus-gtest.h: Prototype it.
4222
4223 2005-07-08  Ross Burton  <ross@openedhand.com>
4224
4225         * dbus/dbus-glib.h:
4226         Add DBysGAsyncData for the async bindings.
4227
4228         * glib/dbus-binding-tool-glib.c:
4229         Re-enable the async bindings.
4230
4231         * test/glib/test-dbus-glib.c:
4232         Add a test for the generated async bindings.
4233
4234 2005-07-08  Colin Walters  <walters@verbum.org>
4235
4236         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4237         connection concept.
4238         
4239 2005-07-08  Colin Walters  <walters@verbum.org>
4240         
4241         * tools/Makefile.am: Kill of print-introspect in favor of using
4242         dbus-send --print-reply=literal.
4243
4244         * test/glib/test-service-glib.xml: 
4245         * test/glib/test-service-glib.c (my_object_get_objs): New test
4246         for "ao".
4247
4248         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4249         (main): Test GetObjs.
4250
4251         * glib/examples/statemachine/Makefile.am:
4252         * glib/examples/statemachine/sm-marshal.list:
4253         * glib/examples/statemachine/statemachine-client.c:
4254         * glib/examples/statemachine/statemachine-server.c:
4255         * glib/examples/statemachine/statemachine-server.xml:
4256         * glib/examples/statemachine/statemachine.c:
4257         * glib/examples/statemachine/statemachine.h:
4258         * glib/examples/statemachine/statemachine.xml:
4259
4260         New example.
4261
4262         * glib/examples/example-service.c (main): Move invocation
4263         of dbus_g_object_type_install_info earlier, to emphasize it
4264         should only be done once.
4265
4266         * glib/examples/example-signal-emitter.c (main): Ditto.
4267
4268         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4269
4270         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4271         (dbus_gvalue_marshal): Update prototypes.
4272
4273         * glib/dbus-gvalue.c: Update all marshalling functions to take
4274         const GValue instead of GValue.
4275         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4276         types.
4277         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4278         change.
4279         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4280         Return a newly-allocated string.
4281         (demarshal_proxy, demarshal_object_path, demarshal_object)
4282         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4283         we get the wrong types from message.
4284         (get_type_demarshaller): New function, extracted from
4285         dbus_gvalue_demarshal.
4286         (demarshal_collection): New function, demarshals generic
4287         collection.
4288         (dbus_gvalue_demarshal): Just invoke result of
4289         get_type_demarshaller.  Throw error if we don't have one.
4290         (marshal_garray_basic): Abort on OOM.
4291         (get_type_marshaller): New function, extracted from
4292         dbus_gvalue_marshal.
4293         (collection_marshal_iterator, marshal_collection): New functions;
4294         implements generic marshalling for an iteratable specialized
4295         collection.
4296         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4297
4298         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4299         G_TYPE_STRING.
4300         (ptrarray_value_from_gvalue): Ditto.
4301         (ptrarray_append, ptrarray_free): New functions.
4302         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4303         (slist_append, slist_end_append, slist_free): New functions.
4304         (dbus_g_type_specialized_builtins_init): Add append fuctions
4305         for GPtrArray and GSList.  Register GSList.
4306         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4307
4308         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4309         New.
4310         (dbus_g_type_specialized_collection_init_append)
4311         (dbus_g_type_specialized_collection_append)
4312         (dbus_g_type_specialized_collection_end_append): Prototype.
4313         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4314         end_append_func.
4315
4316         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4317         (dbus_g_type_specialized_collection_append) 
4318         (dbus_g_type_specialized_collection_end_append): New functions.
4319         (dbus_g_type_map_value_iterate): Take const GValue.
4320         (dbus_g_type_collection_value_iterate): Ditto.
4321
4322         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4323         _dbus_gvalue_utils_test.
4324         
4325         * glib/dbus-gtest.h: Prototype it.
4326
4327         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4328         using uninitialized owner_list.
4329         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4330         public API.
4331         (dbus_g_proxy_end_call_internal): Update to use error set
4332         from dbus_gvalue_demarshal instead of setting it here.
4333         (dbus_g_proxy_begin_call): Move return_if_fail here.
4334
4335         * glib/dbus-gobject.c (write_interface): Update for
4336         dbus_gtype_to_signature returning new string.
4337
4338         * configure.in: Add glib/examples/statemachine.
4339
4340 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4341
4342         * configure.in: Add a configure option, --with-console-auth-dir
4343         
4344         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4345         new setting.  Patch from Kay Sievers.
4346
4347 2005-07-06  Colin Walters  <walters@verbum.org>
4348
4349         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4350         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4351         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4352         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4353         Delete in favor of dbus_g_proxy_begin_call and
4354         dbus_g_proxy_cancel_call.
4355         (DBusGProxyCall, DBusGProxyCallNotify): New.
4356         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4357         data, and destroy function.  This replaces
4358         dbus_g_pending_call_set_notify.
4359         (dbus_g_proxy_cancel_call): Prototype.
4360         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4361
4362         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4363         pending_calls map.
4364         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4365         internal proxy for calls to the bus. Remove
4366         pending_nameowner_calls, now the internal proxy keeps track.
4367         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4368         pending_nameowner_calls.
4369         (got_name_owner_cb): Update prototype, and use
4370         dbus_g_proxy_end_call.
4371         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4372         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4373         favor of using internal proxy.
4374         (dbus_g_proxy_manager_unregister): Update to use
4375         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4376         (dbus_g_proxy_init): Initialize pending calls map.
4377         (dbus_g_proxy_constructor): New.
4378         (dbus_g_proxy_class_init): Add get/set property functions,
4379         constructor, and add NAME, PATH, and INTERFACE properties.
4380         (cancel_pending_call): New function.
4381         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4382         cancel them.
4383         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4384         (GPendingNotifyClosure): New structure.
4385         (d_pending_call_notify, d_pending_call_free): Moved here from
4386         dbus-glib.c.
4387         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4388         ordering.
4389         (manager_begin_bus_call): New internal function for talking to
4390         internal bus proxy.
4391         (dbus_g_proxy_new): Construct object using GObjet properties.
4392         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4393         Create closure of same, and insert call into map of pending calls.
4394         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4395         call.  Look up pending call in current set.  Remove it when we've
4396         completed.
4397         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4398         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4399         and destroy function directly.
4400         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4401         (dbus_g_proxy_call): Invoke with NULL callback.
4402         (dbus_g_proxy_cancel_call): New function, replaces
4403         dbus_g_pending_call_cancel.
4404
4405         * glib/dbus-gparser.c (validate_signature): Fix call to
4406         dbus_set_g_error.
4407
4408         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4409         New quark for attaching metadata to GType.
4410         (info_hash): Delete.
4411         (lookup_object_info): Look up using quark.
4412         (dbus_g_object_type_install_info): Check that a type is classed,
4413         not that it's an object.  Also just install type data using quark
4414         instead of using global hash.
4415
4416         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4417         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4418         (GPendingNotifyClosure): Delete.
4419         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4420         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4421
4422         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4423         client method generation until we can fix it...
4424         
4425         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4426         (load_from_service_thread_func): Ditto.
4427
4428         * tools/dbus-names-model.c (struct NamesModel): Hold
4429         DBusGProxyCall.
4430         (have_names_notify): Update prototype, use
4431         dbus_g_proxy_cancel_call.
4432         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4433
4434         * tools/dbus-monitor.c (filter_func): Update for print_message
4435         API change.
4436
4437         * test/glib/test-dbus-glib.c: Add more tests for async
4438         invocations.  Update many begin_call/end_call pairs to just use
4439         dbus_g_proxy_call.
4440
4441         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4442         allows us to dump print-introspect.c.
4443
4444         * tools/dbus-print-message.h (print_message): Add literal argument
4445         to print_message which is intended to allow printing arguments without
4446         metadata like "string=".
4447
4448         * tools/dbus-print-message.c (print_iter): Add literal argument.
4449         (print_message): Allow printing string messages literally.
4450
4451 2005-07-05  Colin Walters  <walters@verbum.org>
4452
4453         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4454         Remove value refcount leak, original patch from Jorn Baayen
4455         <jorn@openedhand.com>.  Also remove useless extra value in favor
4456         of prepending to value array directly.
4457
4458 2005-07-02  Colin Walters  <walters@verbum.org>
4459
4460         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4461
4462 2005-07-01  Colin Walters  <walters@verbum.org>
4463
4464         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4465         
4466         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4467         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4468         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4469         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4470
4471 2005-06-30  Colin Walters  <walters@verbum.org>
4472
4473         * test/glib/test-dbus-glib.c:
4474         * test/glib/test-service-glib.c:
4475         * test/glib/test-service-glib.xml: Update tests for new error
4476         setting bits, also add async tests (patch from Ross Burton).
4477
4478         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4479         DBUS_GLIB_THREADS_LIBS.
4480
4481         * glib/dbus-gproxy.c (get_name_owner)
4482         (dbus_g_pending_call_end_valist): Ditto.
4483
4484         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4485         domain (GQuark) to DBusGErrorInfo.  
4486         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4487         quark in error_metadata.  Take message interface as default
4488         error message interface.
4489         (gerror_to_dbus_error_message): Pass message interface.
4490         (dbus_set_g_error): Resurrected.
4491         (dbus_g_error_info_free): New function.
4492         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4493         of _peek to actually create the object class if it hasn't been
4494         created yet.
4495         (dbus_g_error_domain_register): New function.
4496
4497         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4498
4499         * glib/dbus-gparser.c (validate_signature): Ditto.
4500
4501         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4502         (dbus_g_error_domain_register): Prototype.
4503
4504         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4505         Update tests.
4506
4507 2005-06-29  Colin Walters  <walters@verbum.org>
4508
4509         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4510         DBUS_TYPE_G_OBJECT_PATH.
4511
4512         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4513         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4514         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4515         (dbus_g_object_path_get_g_type): New function.
4516         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4517         to DBUS_TYPE_G_OBJECT_PATH by default.
4518         (demarshal_proxy): Remove unused name variable.
4519         (demarshal_object_path, marshal_object_path): New functions.
4520         (demarshal_proxy_array, marshal_proxy_array): Delete.
4521         
4522         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4523         DBUS_TYPE_G_OBJECT_PATH to char *.
4524         (dbus_g_type_get_lookup_function): Map builtin
4525         DBUS_TYPE_G_OBJECT_PATH.
4526
4527         * test/glib/test-dbus-glib.c
4528         * test/glib/test-service-glib.c (my_object_objpath): 
4529         Adapt tests to new object path marshalling.
4530
4531 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4532
4533         * configure.in: force check for Python >= 2.4
4534
4535 2005-06-29  Colin Walters  <walters@verbum.org>
4536         
4537         Patch from Ross Burton <ross@openedhand.com>
4538         
4539         * glib/dbus-gobject.c (invoke_object_method): Unset object
4540         value in all cases, not only in async case.
4541
4542 2005-06-29  Colin Walters  <walters@verbum.org>
4543
4544         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4545         name_call for keeping track of any outgoing GetNameOwner call.
4546         Also add for_owner and associated.
4547         (struct _DBusGProxyManager): Add owner_names, which is hash table
4548         that maps a base name to a list of names it owns (that we're
4549         interested in).  Add pending_nameowner_calls which is a list of
4550         all outstanding GetNameOwner; avoids us having to iterate over
4551         every proxy.  Add unassociated_proxies which keeps track of name
4552         proxies with no associated name owner.
4553         (dbus_g_proxy_manager_unref): Destroy owner_names.
4554         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4555         name refcounts.
4556         (find_name_in_info, name_owner_foreach)
4557         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4558         (dbus_g_proxy_manager_monitor_name_owner)
4559         (dbus_g_proxy_manager_unmonitor_name_owner)
4560         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4561         New functions; they manipulate the owner_names mapping.
4562         (got_name_owner_cb): New function.
4563         (get_name_owner): New function, extracted from
4564         dbus_g_proxy_new_for_name_owner.
4565         (dbus_g_proxy_manager_register): For now we need to keep track of
4566         all NameOwnerChanged.  Also if the proxy is for a name, if we
4567         don't already know the name owner, queue a new GetNameOwner
4568         request and add it to our list of unassociated proxies.  Otherwise
4569         inc the refcount.
4570         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4571         cancel any pending GetNameOwner call, etc.
4572         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4573         the owner_names mapping to look up the current names for the
4574         signal source, and dispatch to any proxies for that name.
4575         (dbus_g_proxy_new): Initialize new members.
4576         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4577         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4578         (dbus_g_pending_call_end_valist): New function, extracted from
4579         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4580         but want to use the GLib infrastructure.  Also note how many
4581         arguments in reply were over.
4582         (dbus_g_pending_call_end): New function, just call
4583         dbus_g_pending_call_end_valist.
4584         (dbus_g_proxy_end_call_internal): Just call
4585         dbus_g_pending_call_end_valist.
4586
4587         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4588         of builtin marshaller for STRING_STRING_STRING.
4589
4590         * test/glib/test-dbus-glib.c: 
4591         * test/glib/test-service-glib.c:
4592         * test/glib/test-service-glib.xml:
4593         Extend tests to cover name proxies, destruction of owner proxies,
4594         etc.
4595         
4596         * glib/examples/example-signal-recipient.c
4597         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4598         
4599         * tools/dbus-send.c (main): Print D-BUS error name in addition
4600         to message.
4601
4602 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4603
4604         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4605         cmessage_function_handler): Patch from 
4606         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4607         by using the Py_GILState_Ensure/Release to synchronize with the
4608         python runtime.
4609         
4610 2005-06-28  Ray Strode  <rstrode@redhat.com>
4611
4612         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4613         babysitter helper process on last unref, bug #2813.
4614
4615 2005-06-27  Colin Walters  <walters@verbum.org>
4616
4617         * test/glib/test-dbus-glib.c: 
4618         * test/glib/test-service-glib.c:
4619         * test/glib/test-service-glib.xml:
4620         Test hash table signal emitting.
4621
4622         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4623         types to their fundamental basis types, since this is what
4624         marshallers operate on.  Also add an entry for VOID__BOXED.
4625         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4626
4627 2005-06-26  Havoc Pennington  <hp@redhat.com>
4628
4629         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4630         from Don Park
4631
4632 2005-06-26  Colin Walters  <walters@verbum.org>
4633
4634         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4635         (dbus_g_error_set): New public function from its ashes; used by
4636         both service-side method implementation and GLib bindings
4637         internals.
4638         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4639         (_dbus_glib_test): Add some tests.
4640
4641         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4642
4643         * test/glib/test-service-glib.c (my_object_throw_error): Use
4644         dbus_g_error_set.
4645
4646         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4647         errors thrown by dbus_g_error_set.
4648
4649         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4650
4651         * glib/dbus-gparser.c (validate_signature): Ditto.
4652
4653         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4654         (dbus_g_proxy_end_call_internal): Ditto.
4655
4656         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4657         converts DBUS_ERROR_x to DBUS_GERROR_x.
4658         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4659
4660         * doc/TODO: Remove error TODO.
4661
4662         * doc/dbus-tutorial.xml: Update with documentation about error
4663         handling.
4664
4665         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4666         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4667         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4668
4669 2005-06-22  Colin Walters  <walters@verbum.org>
4670         
4671         Patch from Ross Burton <ross@openedhand.com>
4672
4673         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4674
4675 2005-06-20  Colin Walters  <walters@verbum.org>
4676
4677         * configure.in: Add glib/examples.
4678
4679         * glib/Makefile.am: Add examples/
4680
4681         * glib/examples/.cvsignore
4682         * glib/examples/Makefile.am
4683         * glib/examples/example-client.c
4684         * glib/examples/example-service.c
4685         * glib/examples/example-service.xml
4686         * glib/examples/example-signal-emitter.c
4687         * glib/examples/example-signal-emitter.xml
4688         * glib/examples/example-signal-recipient.c:
4689         New files; GLib binding examples, ported from
4690         python/examples.
4691
4692 2005-06-20  Colin Walters  <walters@verbum.org>
4693
4694         * dbus/dbus-glib.h: 
4695         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4696         dbus_g_proxy_call.
4697
4698         * glib/dbus-binding-tool-glib.c: 
4699         * doc/dbus-tutorial.xml: 
4700         * test/glib/test-dbus-glib.c: Update for rename.
4701         
4702 2005-06-20  Colin Walters  <walters@verbum.org>
4703
4704         Patch suggested by Ross Burton <ross@openedhand.com>
4705
4706         * glib/dbus-gobject.c (export_signals): Free signal name.
4707         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4708         memory leak.  Add a bit of documentation.
4709         (dbus_g_method_return_error): Free context, and note we do
4710         so.
4711
4712 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4713
4714         * dbus/dbus-glib.h:
4715         * glib/dbus-gobject.c:
4716         * glib/dbus-gproxy.c:
4717         * glib/dbus-gvalue.c: Predeclare structs as 
4718         typedef struct _Something Something instead of 
4719         typedef struct Something Something, so we can 
4720         redeclare the prototypes. Other GNOME libraries 
4721         do this already.
4722
4723 2005-06-17  Colin Walters  <walters@verbum.org>
4724
4725         * tools/dbus-names-model.c (have_names_notify): Fix call
4726         to dbus_g_proxy_end_call.
4727         
4728 2005-06-17  Colin Walters  <walters@verbum.org>
4729
4730         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4731         spew warnings if we get malformed remote signals.
4732
4733         * glib/dbus-gobject.c (propsig_iterate): New function.
4734         (lookup_object_info): New function, extracted from
4735         lookup_object_and_method.
4736         (introspect_properties, introspect_signals): Delete; these
4737         are merged into write_interface.
4738         (write_interface): Write out signals and properties here;
4739         dump the org.gtk.object stuff and use the interface given
4740         in the introspection data blob.  Also fix up property XML.
4741         (lookup_values): New function.
4742         (introspect_interfaces): Gather a mapping from interface to a
4743         list of its methods, signals, and properties, then write out
4744         each interface.
4745         (lookup_object_and_method): Use lookup_object_info.
4746         (struct DBusGSignalClosure): Add interface.
4747         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4748         we can just use the constant data.
4749         (dbus_g_signal_closure_finalize): Don't free signal name.
4750         (signal_emitter_marshaller): Use interface from signal closure.
4751         (export_signals): Only export signals mentioned in introspection
4752         blob.
4753         (dbus_g_connection_register_g_object): Warn if we have no
4754         introspection data for an object.
4755         (funcsig_equal): Remove unused variable.
4756         (dbus_g_object_register_marshaller): Take varargs instead of
4757         list.
4758         (dbus_g_object_register_marshaller_array): New function,
4759         extracted from old dbus_g_object_register_marshaller.
4760
4761         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4762         signals and property data.
4763         (write_quoted_string): New function, extracted from generate_glue.
4764         (generate_glue): Write signals and properties to introspection
4765         blob.
4766
4767         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4768         exported_signals and exported_properties.
4769         (dbus_g_object_register_marshaller): Update prototype.
4770         (dbus_g_object_register_marshaller_array): Prototype.
4771         
4772         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4773
4774         * test/glib/test-service-glib.c: Add new test signals and method
4775         to emit them.
4776
4777         * test/glib/test-service-glib.xml: Add some test signals.
4778
4779         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4780         and my-object-marshal.h
4781         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4782         my-object-marshal.c.
4783         (my-object-marshal.c, my-object-marshal.h): Implement.
4784
4785         * test/glib/.cvsignore: Update.
4786
4787         * doc/TODO: Remove two GLib TODO items fixed by this
4788         patch.
4789
4790 2005-06-16  Colin Walters  <walters@verbum.org>
4791
4792         * doc/TODO: Update for GLib bindings.
4793         
4794 2005-06-16  Colin Walters  <walters@verbum.org>
4795
4796         * glib/dbus-binding-tool-glib.c:
4797         * glib/dbus-gobject.c:
4798         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4799         from Ross Burton, for his GLib bindings work.
4800
4801 2005-06-16  Colin Walters  <walters@verbum.org>
4802
4803         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4804         to iterate instead of walking to G_TYPE_INVALID.
4805
4806         Patch based on a patch from Ryan Gammon.
4807
4808 2005-06-16  Colin Walters  <walters@verbum.org>
4809
4810         * bus/bus.c (bus_context_new): Set parser to NULL
4811         after we unref it (Patch from Chris Boscolo, #2174).
4812         
4813 2005-06-16  Colin Walters  <walters@verbum.org>
4814
4815         * python/dbus_bindings.pyx.in: Import size_t,
4816         __int64_t, __uint64_t, and __signed.
4817
4818         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4819         Define cmsg struct, output it.
4820         (_dbus_read_credentials_unix_socket):
4821         Use cmsg struct.
4822         
4823         Patch from Joe Markus Clarke for FreeBSD support.
4824         
4825 2005-06-16  Colin Walters  <walters@verbum.org>
4826
4827         * tools/dbus-send.c (append_array): Use strtok.
4828         (append_dict): New function.
4829         (type_from_name): New function, extracted from main.
4830         (main): Handle sending dicts.
4831
4832         * tools/dbus-print-message.c (print_iter): Print dict
4833         entries.
4834         
4835 2005-06-16  Colin Walters  <walters@verbum.org>
4836
4837         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4838         values as the empty string (#2948).
4839         
4840 2005-06-16  Colin Walters  <walters@verbum.org>
4841
4842         * dbus/Makefile.am:
4843         * mono/doc/Makefile.am:
4844         * test/glib/Makefile.am:
4845
4846         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4847
4848 2005-06-16  Colin Walters  <walters@verbum.org>
4849
4850         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4851         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4852
4853         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4854         Increment pointer after swapping fixed array.  Add assertion
4855         for array length.
4856                 
4857 2005-06-15  Colin Walters  <walters@verbum.org>
4858
4859         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4860         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4861         
4862 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4863
4864         * NEWS: Update to 0.34
4865
4866 2005-06-15  David Zeuthen  <davidz@redhat.com>
4867
4868         * configure.in (LT_CURRENT): Revert back to 1 as the library
4869         hasn't changed and we've certainly not committed to protocol
4870         stability yet.  All this does is to break ABI. See commit note
4871         from hp@redhat.com 2005-05-05 for details.
4872         
4873 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4874
4875         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4876         (_dbus_connection_run_builtin_filters): New method
4877         (dbus_connection_dispatch): Run the builtin filters which in turn
4878         runs the peer filter which handles Ping messages.
4879
4880         * doc/TODO: 
4881          - Ping isn't handled: This patch fixes it
4882          
4883          - Add a test case for the Ping message: added TODO item
4884
4885 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4886
4887         * dbus/dbus-message.c:
4888         (dbus_message_has_path): New method
4889         (dbus_message_has_interface): New method
4890         (dbus_message_has_member): New method
4891
4892         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4893         New method
4894
4895         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4896         the keyring directory is private to the user
4897
4898         * doc/TODO:
4899          - The convenience functions in dbus-bus.h should perhaps have
4900          the signatures that they would have if they were autogenerated
4901          stubs. e.g. the acquire service function. We should also evaluate
4902          which of these functions to include, in light of the fact that
4903          GLib/Qt native stubs will probably also exist.: Punted
4904
4905          - add dbus_message_has_path(), maybe has_member/interface:
4906          fixed in this patch
4907
4908          - in dbus-keyring.c, enforce that the keyring dir is not
4909          world readable/writable: Fixed in this patch
4910
4911 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4912
4913         * dbus/dbus-marshal-validate.h: Added a new validation
4914         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4915         out of memory errors when validating signitures
4916
4917         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4918         in places where we previously used DBUS_VALID and a FALSE return 
4919         value to indicate OOM
4920         
4921         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4922         Use a stack to track the number of elements inside containers.  The 
4923         stack values are then used to validate that dict entries have only two
4924         elements within them.
4925         (validate_body_helper): check the reason for failure when validating
4926         varients
4927         
4928         * dbus/dbus-message.c (load_message): use 
4929         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4930         DBUS_VALID and a FALSE return value to indicate OOM
4931
4932         * doc/TODO: remove "- validate dict entry number of fields" as this
4933         patch fixes it
4934
4935 2005-06-14  David Zeuthen  <davidz@redhat.com>
4936
4937         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4938         watches (if applicable) and add new watches
4939
4940         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4941         (main): Setup SIGIO signal handler if using D_NOTIFY
4942
4943         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4944
4945         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4946         (merge_included): Also merge conf_dirs list
4947         (bus_config_parser_unref): Clear conf_dirs list
4948         (include_dir): Add directory to conf_dirs list
4949         (bus_config_parser_get_conf_dirs): New function
4950
4951         * bus/dir-watch.[ch]: New files
4952
4953         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4954
4955         * configure.in: Add checks for D_NOTIFY on Linux
4956
4957 2005-06-14  Colin Walters  <walters@verbum.org>
4958
4959         * glib/dbus-binding-tool-glib.c:
4960         * glib/dbus-gobject.c:
4961         * glib/dbus-gvalue.c: Fix indentation and brace style.
4962         
4963 2005-06-14  Ross Burton <ross@openedhand.com>.
4964
4965         * glib/dbus-glib.h: Make DBusGMethodInvocation
4966         a private structure.  Rearrange prototypes a bit.
4967         
4968         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4969         documentation for first_arg_type.
4970         
4971         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4972         here, add documentation.  Move dbus_g_method_return
4973         and dbus_g_method_return_error into public API
4974         section.
4975
4976 2005-06-14  Colin Walters  <walters@verbum.org>
4977
4978         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4979         Add missing return statements, noticed by Ross Burton.
4980         
4981 2005-06-13  Ross Burton <ross@openedhand.com>.
4982
4983         * glib/dbus-gobject.c: Handle errors on message
4984         demarshalling by sending error message back.
4985         * glib/dbus-gvalue.c: Initialize return variables.
4986
4987 2005-06-13  Colin Walters  <walters@verbum.org>
4988
4989         * glib/Makefile.am: Fix thinko in last patch.
4990
4991 2005-06-13  Colin Walters  <walters@verbum.org>
4992
4993         * glib/Makefile.am: Move dbus-gtype-specialized.c
4994         and dbus-gtype-specialized.h into a _HEADERS variable,
4995         install them.
4996
4997 2005-06-12  Colin Walters  <walters@verbum.org>
4998
4999         Async signals and various bugfixes and testing by
5000         Ross Burton <ross@openedhand.com>.
5001
5002         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5003         (dbus_gvalue_genmarshal_name_from_type)
5004         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5005         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5006         (dbus_g_value_types_init, dbus_gtype_from_signature)
5007         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5008         (dbus_gtypes_from_arg_signature): New function prototypes.
5009         (dbus_gvalue_demarshal): Take context and error arguments.
5010         (dbus_gvalue_demarshal_variant): New function.
5011         (dbus_gvalue_demarshal_message): New function.
5012         (dbus_gvalue_store): Delete.
5013
5014         * glib/dbus-gvalue.c:
5015
5016         File has been almost entirely rewritten; now we special-case
5017         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5018         hash tables correctly, etc.  Full support for recursive values
5019         is not yet complete.
5020
5021         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5022         argument of signal to G_TYPE_POINTER since we now pass a
5023         structure.
5024         (lookup_g_marshaller): Delete in favor of
5025         _dbus_gobject_lookup_marshaller.
5026         (marshal_dbus_message_to_g_marshaller): Use
5027         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5028         to handle remote signal callbacks.
5029         (dbus_g_proxy_new_from_proxy): New function; creates a new
5030         DBusGProxy by copying an existing one.
5031         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5032         (dbus_g_proxy_get_path): New functions.
5033         (dbus_g_proxy_marshal_args_to_message): New function;
5034         factored out of existing code.
5035         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5036         from a varargs array.
5037         (dbus_g_proxy_begin_call_internal): New function.
5038         (dbus_g_proxy_end_call_internal): New function.
5039         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5040         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5041         after collecting args into value array.
5042         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5043         invoke dbus_g_proxy_end_call_internal.
5044         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5045         end_call_internal.
5046         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5047         types.
5048         (array_free_all): New function.
5049         (dbus_g_proxy_add_signal): Take GTypes.
5050
5051         * glib/dbus-gobject.h:
5052         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5053         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5054         Prototype.
5055
5056         * glib/dbus-gobject.c: Add a global marshal_table hash which
5057         stores mappings from type signatures to marshallers.  Change lots
5058         of invocations of dbus_gtype_to_dbus_type to
5059         dbus_gtype_to_signature.
5060         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5061         (introspect_signals): Fix test for query.return_type.
5062         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5063         (invoke_object_method): Many changes.  Handle asynchronous
5064         invocations.  Convert arguments with
5065         dbus_gvalue_demarshal_message.  Handle errors.  Use
5066         DBusSignatureIter instead of strlen on args. Handle all arguments
5067         generically.  Special-case variants.
5068         (dbus_g_method_return, dbus_g_method_return_error): New function.
5069         (DBusGSignalClosure): New structure, closes over signal
5070         information.
5071         (dbus_g_signal_closure_new): New function.
5072         (dbus_g_signal_closure_finalize): New function.
5073         (signal_emitter_marshaller): New function; is special marshaller
5074         which emits signals on bus.
5075         (export_signals): New function; introspects object signals and
5076         connects to them.
5077         (dbus_g_object_type_install_info): Take GType instead of
5078         GObjectClass.
5079         (dbus_g_connection_register_g_object): Invoke export_signals.
5080         (dbus_g_connection_lookup_g_object): New function.
5081         (DBusGFuncSignature) New structure; used for mapping type
5082         signatures to marshallers.
5083         (funcsig_hash): New function; hashes DBusGFuncSignature.
5084         (funcsig_equal): New function; compares DBusGFuncSignature.
5085         (_dbus_gobject_lookup_marshaller): New function.
5086         (dbus_g_object_register_marshaller): New function; used to
5087         register a marshaller at runtime for a particular signature.
5088
5089         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5090
5091         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5092         which notes a server method implementation should be
5093         asynchronous.
5094
5095         * glib/dbus-binding-tool-glib.c
5096         (dbus_binding_tool_output_glib_server): Call
5097         dbus_g_value_types_init.
5098         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5099         variants specially.
5100         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5101         of a lookup function.
5102         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5103         (write_untyped_out_args): New method; write output arguments.
5104         (write_formal_declarations_for_direction): Function for
5105         writing prototypes.
5106         (write_formal_parameters_for_direction): Function for
5107         writing implementations.
5108         (write_typed_args_for_direction): Function for writing
5109         arguments prefixed with GTypes.
5110         (write_async_method_client): Write out async version
5111         of method.
5112
5113         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5114         (dbus_g_type_get_marshal_name): Move mapping from GType
5115         to marshal name into here.
5116         (dbus_g_type_get_c_name): Move into here.
5117         (compute_marshaller): Convert signature to type with
5118         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5119         (compute_marshaller_name): Ditto.
5120         (compute_marshaller): Handle async signal annotations.
5121         (gather_marshallers): Return if we don't have a known
5122         prefix.
5123         (generate_glue): Collect introspection blob here, and
5124         write all of the blob at the end.  This allows an object
5125         with multiple interfaces to work.
5126         Mark async methods in introspection blob.
5127
5128         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5129         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5130         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5131
5132         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5133         avoids people accidentally using DBUS_TYPE_* which should
5134         not be necessary anymore.
5135         Do include dbus-gtype-specialized.h, which are utilities
5136         for GLib container types.
5137         Add various #defines for types such as
5138         DBUS_TYPE_G_BOOLEAN_ARRAY.
5139         (DBusGValueIterator, DBusGValue): Define, not fully used
5140         yet.
5141         (dbus_g_value_get_g_type): Type for recursive value.
5142         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5143         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5144         (dbus_g_value_free): Prototypes.
5145         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5146         (dbus_g_proxy_set_interface): Prototype.
5147         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5148         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5149         types.
5150         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5151         Accessors.
5152         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5153         doing async invocations.
5154         (dbus_g_method_return, dbus_g_method_return_error):
5155         Prototypes.
5156         * doc/dbus-tutorial.xml: Update GLib section.
5157         
5158         * tools/dbus-viewer.c (load_child_nodes): Update
5159         for new invocation type of dbus_g_proxy_end_call.
5160         (load_from_service_thread_func): Ditto.
5161
5162         * tools/print-introspect.c (main): Ditto.
5163
5164         * tools/dbus-names-model.c (have_names_notify)
5165         (names_model_reload, names_model_set_connection)
5166         Use GTypes.
5167
5168         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5169         needed since Python bindings use GLib bindings.
5170
5171         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5172         Add --prefix argument.
5173
5174         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5175         unneeded --ignore-unsupported arg.
5176         
5177         * test/glib/test-service-glib.c: 
5178         * test/glib/test-service-glib.xml:
5179         * test/glib/test-dbus-glib.c: Add many more tests.
5180
5181 2005-06-06  David Zeuthen  <davidz@redhat.com>
5182
5183         * doc/TODO: Add item about need to remove deprecated functions.
5184
5185         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5186
5187         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5188         to repair the ABI which was broken with the last commit.
5189
5190 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5191
5192         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5193         (dbus_connection_disconnect): renamed to dbus_connection_close 
5194         for API symmetry with dbus_connection_open
5195         (_dbus_connection_open_internal): 
5196         s/dbus_connection_disconnect/dbus_connection_close
5197
5198         * dbus/dbus-bus.c (dbus_bus_get):
5199         s/dbus_connection_disconnect/dbus_connection_close
5200
5201         * bus/connection.c (bus_connections_unref, 
5202         bus_connections_setup_connection, bus_connections_expire_incomplete):
5203         s/dbus_connection_disconnect/dbus_connection_close
5204
5205         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5206         kill_client_connection_unchecked, check_hello_connection):
5207         s/dbus_connection_disconnect/dbus_connection_close
5208
5209         * bus/bus.c (new_connection_callback):
5210         s/dbus_connection_disconnect/dbus_connection_close
5211
5212         * tools/dbus-send.c (main):
5213         s/dbus_connection_disconnect/dbus_connection_close
5214
5215         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5216         s/dbus_connection_disconnect/dbus_connection_close
5217         
5218         * test/test-service.c (path_message_func, filter_func):
5219         s/dbus_connection_disconnect/dbus_connection_close
5220         
5221         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5222         
5223 2005-05-25  Colin Walters  <walters@verbum.org>
5224
5225         * dbus/dbus-protocol.h: Move various bus service #defines such
5226           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5227           dbus/dbus-shared.h.
5228         * dbus/dbus-shared.h: Various defines moved here.
5229         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5230
5231 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5232
5233         * python/__init__.py: Python bindings deserve a minor version
5234         update.  Upped to (0, 40, 2)
5235
5236 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5237
5238         * python/decorators.py: add explicitly_pass_message decorator
5239         for passing in the dbus message as keyword for edge case signal
5240         handling
5241
5242         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5243         to conform with what dbus expects for match rules
5244         (SignalMatchRule.execute): add the dbus message as a keyword
5245         if the signal handler has requested it
5246
5247         * python/examples/example/signal-recipient.py: added some more
5248         examples on how to hook up to signals
5249
5250 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5251
5252         * python/decorators.py: import dbus_bindings
5253
5254         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5255         SignalMatchNode): new classes that implement wildcard signal
5256         callback matching using a tree lookup. Heavily modified from a
5257         patch sent by Celso Pinto (fd.o bug #3241)
5258
5259         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5260         use new match classes to handle signals.
5261
5262 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5263         
5264         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5265
5266 2005-05-18  Havoc Pennington  <hp@redhat.com>
5267
5268         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5269         gettext. Not really worth requiring yet perhaps, but any
5270         production quality 1.0 would require it so we should go ahead and
5271         get things set up. We do have a couple token calls to
5272         bindtextdomain in the code already.
5273
5274 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5275
5276         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5277         when using recursive g_main_loops
5278
5279         * python/_dbus.py (class Bus): add the ProxyObjectClass
5280         alias for ProxyObject to make it easier for the Twisted 
5281         networking framework to integrate dbus.
5282
5283         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5284         alias for ProxyMethod to make it easier for the Twisted 
5285         networking framework to integrate dbus. 
5286
5287 2005-05-11  Ross Burton  <ross@openedhand.com>
5288
5289         * glib/dbus-glib-tool.c: Add --prefix argument.
5290         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5291         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5292         Add prefix argument.
5293         (generate_glue): Pass prefix argument down.
5294         (dbus_binding_tool_output_glib_server): Pass prefix to
5295         glib-genmarshal.
5296         
5297 2005-05-11  Colin Walters  <walters@verbum.org>
5298
5299         * tools/dbus-send.c (append_array): New function.
5300         (append_arg): Broken out from main.
5301         (main): Add cheesy hack to send arrays and variants.
5302         (usage): Update.
5303         * tools/dbus-print-message.c (print_iter): Broken out
5304         from main.
5305
5306 2005-05-11  Colin Walters  <walters@verbum.org>
5307
5308         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5309         New function, returns signature string for signature iter.
5310         * dbus/dbus-signature.h: Prototype it.
5311         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5312         New function, returns signature string for message iter.
5313         (dbus_message_iter_get_array_len): New function, returns
5314         length of array.
5315         (dbus_message_iter_get_fixed_array): Fix assertion; this
5316         function should be used when the iter is pointing to the
5317         contents of an array
5318         * dbus/dbus-message.h: Prototypes.
5319         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5320         New function; returns length of an array.
5321         * dbus/dbus-marshal-recursive.h: Prototype it.
5322         
5323 2005-05-11  Colin Walters  <walters@verbum.org>
5324
5325         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5326         compilation error.
5327         
5328 2005-05-08  Havoc Pennington  <hp@redhat.com>
5329
5330         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5331         daemon's pid, not the parent's pid, to the file descriptor.
5332         Reported by Taj Morton.
5333
5334 2005-05-05  Havoc Pennington  <hp@redhat.com>
5335
5336         * configure.in (LT_*): add notes on how the libtool versioning
5337         works to save thinking. Increment soname to indicate protocol
5338         breakage (though really the library interface hasn't changed I
5339         guess)
5340
5341         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5342         verify the GUID received from server matches what we were
5343         expecting, if we had an expectation
5344
5345         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5346         (_dbus_auth_get_guid_from_server): new function
5347         (send_begin): parse the OK args
5348
5349         * doc/dbus-specification.xml: add GUID to the auth protocol
5350
5351 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5352
5353         * Fix my name in previous changelog ;)
5354
5355         * python/proxies.py (ProxyObject.__getattr__): add further patch
5356         from Anthony Baxter to throw an AttributeError when python 
5357         __special__ functions are called instead of marshling them over 
5358         the bus (Bug#1685 comment 3).
5359
5360 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5361
5362         * python/Makefile.am: changed to use pyexecdir for the binding
5363         shared libraries (Bug#2494)
5364
5365         * python/exceptions.py: bring exceptions over from the bindings
5366         so they can be used in applications (Bug#2036)
5367         Make all exceptions derive from DBusException
5368
5369         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5370         of classes so that print obj doesn't throw an exception (Bug #1685)
5371
5372 2005-05-03  Ross Burton  <ross@openedhand.com>
5373
5374         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5375         Return if we get an error during registration.  Set up a
5376         weak reference on object to unregister if object is destroyed.
5377         (unregister_gobject): New function.
5378         
5379 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5380
5381         * python/dbus_bindings.pyx.in: 
5382         - added new type classes for hinting to the marashaler what type 
5383         to send over the wire
5384         - added int16 and uint16 marshalers
5385         - Fixed a bug in the type constants that caused int32 to go out
5386         as uint16 over the wire
5387         * python/dbus.py: split up into different files and renamed _dbus.py
5388         * python/__init__.py, python/_util.py, python/decorators.py, 
5389         python/exceptions.py, python/proxies.py, python/services.py,
5390         python/types.py: new files split off from dbus.py
5391         * python/Makefile.am: Add new files, remove dbus.py and 
5392         install all python files to <python module dir>/dbus
5393         * python/examples/*: Added #!/usr/bin/env python to the top of
5394         every example.  Patch provided by Tatavarty Kalyan
5395
5396 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5397
5398         * NEWS: Update to 0.33
5399
5400 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5401
5402         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5403         method for doing async calls
5404         (_pending_call_notification): New C function for handling pendning call
5405         callbacks
5406         (set_notify): New method for setting pending call notification
5407         
5408         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5409         Async capabilities added to remote method calls
5410         (Sender): class removed
5411         (RemoteService): class removed
5412         (ObjectTree): class removed for now
5413         (RemoteObject): Renamed to ProxyObject
5414         (RemoteMethod): Renamed to ProxyMethod
5415         (method): Decorator added for decorating python methods as dbus methods
5416         (signal): Decorator added for decorating python methods as signal emitters
5417         (ObjectType): Metaclass added for generating introspection data and the
5418         method callback vtable
5419         (Interface): Wrapper class added to wrap objects in a dbus interface
5420         (Object): Uses ObjectType as its metaclass and exports Introspect
5421         of the org.freedesktop.DBus.Introspectable interface
5422         (ValidationException, UnknownMethodException): new exceptions
5423
5424         * python/examples/*: Modified to fit with the new bindings
5425
5426 2005-04-23  Havoc Pennington  <hp@redhat.com>
5427
5428         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5429         reported by Tony Houghton
5430
5431         * test/test-service.c (main): test
5432         dbus_connection_get_object_path_data()
5433
5434         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5435         the exact_match
5436         (_dbus_object_tree_get_user_data_unlocked): new function used by
5437         dbus_connection_get_object_path_data()
5438         (do_register): add assertion test for get_user_data_unlocked
5439         (object_tree_test_iteration): more tests
5440
5441         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5442         new function from Dan Reed to let you get the user data from 
5443         dbus_connection_register_object_path()
5444
5445 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5446
5447         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5448         in numerous places that did not account for the NULL terminator
5449         (signature_from_seed): changed the manual string copy loop to 
5450         just use strcpy instead
5451         make check should now pass
5452
5453 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5454
5455         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5456         so that it allows messages that are not signals to pass in 
5457         NULL as the interface.
5458
5459 2005-04-18  David Zeuthen  <davidz@redhat.com>
5460
5461         * glib/dbus-gmain.c (io_handler_destroy_source): 
5462         (timeout_handler_destroy_source, connection_setup_free): 
5463         Also unref the source to avoid memory leaks.
5464
5465 2005-04-13  David Zeuthen  <davidz@redhat.com>
5466
5467         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5468         more reasonable, yet still totally arbitrary, value :-). 
5469
5470 2005-04-13  David Zeuthen  <davidz@redhat.com>
5471
5472         * doc/TODO: Added an "important for 1.0" item about selinux
5473         allow/deny messages
5474
5475 2005-04-13  David Zeuthen  <davidz@redhat.com>
5476
5477         * bus/selinux.c: Add c-file-style to top of file
5478         (log_audit_callback): Don't free the data here anymore
5479         (bus_selinux_check): Don't take spid and tpid since appending
5480         that to auxdata may OOM.
5481         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5482         to the caller if we are OOM by taking an error object.
5483         (bus_selinux_allows_send): -do-
5484
5485         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5486         and bus_selinux_allows_send
5487
5488         * bus/bus.c (bus_context_check_security_policy): Pass error and
5489         pass on OOM thrown by bus_selinux_allows_send()
5490
5491         * bus/services.c (bus_registry_acquire_service): Pass error and
5492         pass on OOM thrown by bus_selinux_allows_acquire_service()
5493
5494 2005-04-13  Havoc Pennington  <hp@redhat.com>
5495
5496         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5497         message at a time to avoid monopolizing the main loop, bug 
5498         #2953 from Benjamin Otte
5499
5500 2005-04-09  Havoc Pennington  <hp@redhat.com>
5501
5502         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5503         possible overlap, fix from Daniel Reed
5504         (fixup_alignment): fix signedness warnings
5505         (_dbus_string_append_unichar): ditto
5506
5507 2005-04-09  Havoc Pennington  <hp@redhat.com>
5508
5509         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5510
5511         * glib/dbus-glib-tool.c (main): fix warning
5512
5513         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5514
5515         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5516         add a new function that can be used in simple applications that
5517         don't have a main loop and are willing to block
5518
5519 2005-04-05  David Zeuthen  <davidz@redhat.com>
5520
5521         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5522
5523         * glib/dbus-gmain.c:
5524         (io_handler_destroy_source): Remove from list of IO handlers
5525         of the ConnectionSetup object
5526         (timeout_handler_destroy_source): -do- for timeout handlers
5527         (io_handler_source_finalized): Don't remove from list since
5528         we now do that in io_handler_destroy_source(). Renamed from
5529         io_handler_source_destroyed
5530         (timeout_handler_source_destroyed): -do- for timeout handlers
5531         (connection_setup_free): It is now safe to iterate over all
5532         IO and timeout handlers as the _destroy_source removes them
5533         from the list synchronously
5534
5535 2005-03-30  Havoc Pennington  <hp@redhat.com>
5536
5537         * configure.in: change check to gtk 2.4
5538
5539         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5540         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5541         to 2.4
5542
5543 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5544
5545         * News: Update 0.32
5546
5547         * HACKING: Fixed realease instructions.  configure.in should be updated to
5548           the next release by the person who made the last release.
5549
5550 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5551
5552         * python/lvalue_cast_post_process.py - removed.  Patch has been
5553           submitted to Pyrex maintainers that fixes gcc4.0 errors
5554
5555         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5556
5557 2005-03-24  Daniel Reed  <n@ml.org>
5558
5559         * tools/Makefile.am: Make print-introspect and
5560         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5561
5562 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5563
5564         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5565
5566         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5567           had in Red Hat packages for a while but for some reason never 
5568           got merged upstream
5569           (_dbus_is_a_number): New checks if a string
5570           can be converted to a number and does the conversion if it can
5571           (_dbus_user_database_lookup): Add check to see if the given username
5572           is a udi.  This allows udi's to be used instead of usernames in the
5573           config file.
5574           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5575           is a gdi.  This allows gdi's to be used instead of groupnames in the
5576           config file.
5577
5578 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5579
5580         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5581           code so that it compiles with gcc4.0
5582
5583         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5584           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5585           results back to dbus_binding.c
5586
5587 2005-03-20  Colin Walters  <walters@verbum.org>
5588
5589         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5590
5591         * configure.in: Require GTK+ 2.6.
5592         
5593 2005-03-20  Colin Walters  <walters@verbum.org>
5594
5595         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5596
5597 2005-03-17  Tom Parker  <palfrey@tevp.net>
5598
5599         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5600         print DBUS_UID_UNSET; instead print passed username.  Also
5601         be sure to actually use gid looked up in cache.
5602         
5603         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5604         for DBUS_GID_UNSET and groupname.
5605
5606 2005-03-17  Colin Walters  <walters@verbum.org>
5607
5608         * bus/print-introspect.c: Move to tools/.
5609         * bus/run-with-tmp-session-bus.sh: Ditto.
5610         
5611         * glib/Makefile.am (dbus-glib-bindings.h): Move
5612         generation to tools/Makefile.am.
5613
5614         * test/glib/run-test.sh: Update to handle move
5615         of run-with-tmp-session-bus.sh.
5616
5617         * test/glib/test-service-glib.c: Update to handle
5618         move of dbus-glib-bindings.h.
5619
5620         * tools/print-introspect.c: Moved here
5621         from bus/, and ported to GLib bindings.
5622
5623         * tools/run-with-tmp-session-bus.sh: Moved here
5624         from bus/.
5625
5626         * tools/Makefile.am: Generate dbus-glib-bindings.h
5627         and dbus-bus-introspect.xml here.
5628
5629         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5630         Update.
5631
5632 2005-03-17  Colin Walters  <walters@verbum.org>
5633
5634         * bus/driver.c (write_args_for_direction): Use
5635         _dbus_string_get_const_data to retrieve string;
5636         _dbus_string_get_const_data_len doesn't actually return
5637         a NULL-terminated substring.
5638
5639         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5640         (main): Change to use org_freedesktop_DBus_request_name
5641         instead of using g_proxy_begin_call/end_call.
5642
5643 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5644
5645         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5646         generating the finalizer.  Fixes from Ben Maurer.
5647
5648 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5649
5650         * mono/BusDriver.cs: Update method names: ListServices
5651         becomes ListNames; GetOwner becomes GetNameOwner.
5652
5653         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5654         onto the eval stack when removing the delegate.
5655
5656 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5657
5658         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5659         LT_CURRENT.  Set it to the autoconf variable.
5660                                                                                 
5661         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5662         classes that disconnects the signal handler delegate from the
5663         service object.  Fixes a big leak of proxy objects on the
5664         client side of things.  Patch from Ben Maurer
5665         <bmaurer@ximian.com>
5666
5667 2005-03-12  Colin Walters  <walters@verbum.org>
5668
5669         * bus/driver.c (write_args_for_direction): New function,
5670         parses a type signature into arguments and outputs to
5671         XML.
5672         (bus_driver_handle_introspect): Use it instead of
5673         hardcoding XML for certain signatures.
5674         
5675         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5676         dependency on dbus-daemon.
5677
5678         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5679         argument, pass it to dbus_binding_tool_output_glib_client.
5680
5681         * glib/dbus-binding-tool-glib.c
5682         (generate_client_glue): Protect against multiple inclusion.
5683         (dbus_binding_tool_output_glib_client): Add
5684         G_BEGIN_DECLS/G_END_DECLS.
5685
5686         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5687         Change to just take iface prefix directly.
5688         (write_formal_parameters): Clarify error message.
5689         (check_supported_parameters): New function; checks to see type
5690         signatures of method parameters are supported.
5691         (generate_client_glue): Handle ignore_unsupported flag.
5692         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5693         parameter.
5694
5695         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5696         --ignore-unsupported by default until glib bindings
5697         support arrays.
5698
5699 2005-03-11  Colin Walters  <walters@verbum.org>
5700
5701         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5702         install it.
5703
5704         * bus/print-introspect.c: New file; prints introspection
5705         data for a given name and object path.
5706
5707         * bus/run-with-tmp-session-bus.sh: New file, refactored
5708         from test/glib/run-test.sh.  Creates a temporary session
5709         bus and runs another program.
5710
5711         * test/glib/run-test.sh: Refactor to invoke
5712         run-with-tmp-session-bus.sh.
5713
5714         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5715         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5716         macros instead of hardcoding.
5717
5718         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5719
5720 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5721
5722         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5723         this unref; it doesn't match up evenly in some codepaths.
5724         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5725         this evenly matches with the ref near the top of this function.
5726
5727 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5728
5729         * dbus/dbus-object-tree.c
5730         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5731         and we try to unregister a path that's not registered, still go
5732         through the process of unlocking and don't just return.
5733
5734 2005-03-09  Colin Walters  <walters@verbum.org>
5735
5736         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5737         to this are generated for client-side wrappers.  Invokes a
5738         D-BUS method and returns reply values.  
5739
5740         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5741         function; writes signature string for argument direction.
5742         (write_args_for_direction): Change to pass input values directly
5743         instead of via address, and fix indentation.
5744         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5745         make generated wrappers inlineable.
5746
5747         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5748         note about using dbus_type_is_fixed.
5749
5750         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5751         dbus/dbus-signature.c as dbus_type_is_fixed.
5752
5753         All callers updated.
5754
5755         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5756         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5757
5758         * dbus/dbus-signature.h: Prototype.
5759
5760         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5761         error printf code.
5762
5763         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5764         appropriate instead of just freeing it.
5765         (main): Free returned strings using g_free.
5766
5767         * test/glib/Makefile.am (test-service-glib-glue.h)
5768         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5769
5770         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5771         simply maps a simple D-BUS type to GType.
5772         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5773         GType.
5774         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5775         initialize the value with it.
5776         (dbus_gvalue_binding_type_from_type): Unused, delete.
5777         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5778         various types instead of unmarshalling to value data directly.
5779         Remove can_convert boolean.
5780         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5781         returning directly instead of using can_convert boolean.
5782         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5783         Stores a GValue in a pointer to a value of its corresponding C
5784         type.
5785
5786         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5787         add dbus_gvalue_store.
5788
5789 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5790
5791         Fix a bunch of lifecycle and memory management problems
5792         in the mono bindings.
5793
5794         * mono/Arguments.cs (Arguments): Implement IDisposable
5795
5796         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5797         strictly a static class.
5798
5799         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5800         delegates into this file.
5801         (Connection): Implement IDisposable.
5802         (Dispose): Disconnect the connection and set the raw connection
5803         pointer to IntPtr.Zero.
5804         (~Connection): Call Dispose().
5805         (RegisterObjectPath): Added.  Manages the registration of object
5806         paths so we can cleanly disconnect them at dispose/finalize time.
5807         (UnregisterObjectPath): Ditto.
5808         (set_RawConnection): Unregister all of the object paths when
5809         changing the underlying DBusConnection.  Add them back onto the
5810         new connection, if any.
5811
5812         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5813         more unmanaged resources anymore, so it's not necessary.  Move all
5814         the DBusObjectPathVTable stuff out of here.
5815         (Handler): Save references to our delegates so that they don't get
5816         finalized.  Call Connection.RegisterObjectPath() instead of
5817         dbus_connection_register_object_path() directly.
5818         (Message_Called): Dispose the message after we're finished with
5819         it.
5820
5821         * mono/Message.cs (Message): Implement IDisposable.
5822         (Dispose): Dispose the Arguments, and set the RawMessage to
5823         IntPtr.Zero.
5824         (SendWithReplyAndBlock): We own the ref to the reply that comes
5825         back from dbus_connection_send_with_reply_and_block() so add a
5826         comment about that and unref it after we've constructed a managed
5827         MethodReturn class around it.  Fixes a big, big leak.
5828
5829         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5830         method.
5831         (BuildSignalHandler): After we've sent the Signal message, dispose
5832         of it.
5833         (BuildMethod): Dispose of the method call and reply messages after
5834         we've sent the message and extracted the data we want from the
5835         reply.
5836
5837         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5838         anymore.
5839         (Service_FilterCalled): Dispose of the message after we're
5840         finished with it.
5841
5842 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5843
5844         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5845         After we attach our pending call to the connection, unref
5846         it.  Fixes a leak.
5847  
5848         * mono/Connection.cs (set_RawConnection): Disconnect our
5849         filter and match callbacks from the old connection and
5850         reconnect them to the new connection, if any.
5851
5852         * mono/DBusType/Array.cs: "Code" is a static member, so
5853         don't use "this" to refer to it.  Fix for stricter checking
5854         in Mono 1.1.4.
5855  
5856         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5857         object path that we pass into unmanaged code.
5858  
5859         * mono/DBusType/String.cs (Append): Don't leak the string
5860         that we pass into unmanged code.
5861
5862 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5863         * NEWS: Update for 0.31
5864
5865         * configure.in: Release 0.31
5866         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5867
5868         * qt/Makefile.am: fixed build
5869
5870         * dbus/Makefile.am: soname bump for libdbus
5871
5872         * glib/Makefile.am: soname bump for libdbus-glib
5873
5874 2005-03-05  Havoc Pennington  <hp@redhat.com>
5875
5876         * dbus/dbus-sysdeps.c:
5877         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5878         value
5879         (_dbus_generate_random_bytes_buffer): fix return value
5880
5881         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5882         checks actually work, from Tom Parker <fdo@tevp.net>
5883
5884 2005-03-01  Colin Walters  <walters@verbum.org>
5885
5886         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5887         functions copied from dbus-glib-tool.c.
5888         (main): Convert lots of error code to use them.
5889         Also add some testing for introspection bits.
5890
5891 2005-03-01  Colin Walters  <walters@verbum.org>
5892         
5893         * doc/TODO: Remove introspection signature TODO.
5894
5895 2005-02-27  Colin Walters  <walters@verbum.org>
5896
5897         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5898         Change return value to const char * instead of int so we can do
5899         full signatures.
5900         (struct PropertyInfo, struct ArgInfo): Store char *.
5901         (property_info_new, arg_info_new): Update parameters, strdup.
5902         (property_info_unref, arg_info_unref): Free.
5903
5904         * glib/dbus-gidl.h: Update prototypes.
5905
5906         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5907         (validate_signature): New function, just validates signature and
5908         sets GError.
5909         (parse_property, parse_arg): Invoke validate_signature.  Store
5910         signature instead of just type code.
5911
5912         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5913         function to return a primary type for a signature, dropping
5914         information about types in container types.
5915         (dbus_gvalue_genmarshal_name_from_type)
5916         (dbus_gvalue_binding_type_from_type)
5917         (dbus_gvalue_ctype_from_type): Update to take full signature
5918          instead of type code.
5919         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5920
5921         * glib/dbus-gvalue.h: Update prototypes for above.
5922
5923         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5924         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5925         (introspect_properties, introspect_signals, write_interface):
5926         Update to handle signatures, and remove usage of
5927         _dbus_gutils_type_to_string.
5928         (handle_introspect): Print out type codes instead of e.g. "string"
5929         in hardcoded introspection XML; also use x_AS_STRING constants
5930         instead of hardcoding in string.
5931
5932         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5933         to string.  Remove usage of _dbus_gutils_type_to_string.
5934
5935         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5936
5937         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5938         deletion.
5939         
5940         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5941         (compute_marshaller_name, generate_glue): Handle signature change
5942         to string.
5943         (write_formal_parameters, write_args_for_direction): Ditto, and
5944         remove FIXME.
5945
5946         * tools/dbus-tree-view.c (type_to_string): Delete.
5947         (info_set_func_text): Update to print full signatures.
5948
5949         * test/glib/test-service-glib.xml: Change types to new
5950         introspection format.
5951
5952 2005-02-26  Havoc Pennington  <hp@redhat.com>
5953
5954         * doc/TODO: remove the "guid" item
5955
5956         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5957         (with_bus_thread_func): use open_private
5958
5959         * dbus/dbus-connection.c (dbus_connection_open_private): new
5960         function that works like the old dbus_connection_open()
5961         (dbus_connection_open): now returns an existing connection if
5962         possible
5963
5964         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5965         through the GUID to the transport
5966
5967         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5968         GUID in hex-encoded form.
5969
5970         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5971         pass GUID argument in to the transport
5972
5973         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5974         guid argument
5975
5976         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5977
5978         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5979
5980 2005-02-25  Havoc Pennington  <hp@redhat.com>
5981
5982         * doc/dbus-specification.xml: document the GUID thing
5983
5984         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5985         globally unique ID for the server, and put a "guid=hexencoded"
5986         field in the address
5987
5988         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5989
5990         * dbus/dbus-message.c: ditto
5991
5992         * dbus/dbus-dataslot.c: ditto
5993
5994         * dbus/dbus-list.c: ditto
5995
5996         * dbus/dbus-internals.h: wait, just include
5997         dbus-threads-internal.h here
5998         
5999         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6000         use in main library
6001
6002         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6003
6004 2005-02-24  Colin Walters  <walters@verbum.org>
6005
6006         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6007
6008 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6009
6010         * glib/Makefile.am: added dbus-gobject.h to sources list
6011         so distcheck doesn't fail
6012         
6013 2005-02-24  Havoc Pennington  <hp@redhat.com>
6014
6015         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6016         you must disconnect before unref, since locking and other things
6017         are screwed up otherwise. Fix assorted other locking stuff.
6018
6019         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6020         fix compilation
6021
6022         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6023         into a private header and don't export from the library
6024
6025         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6026
6027 2005-02-24  Colin Walters  <walters@verbum.org>
6028         
6029         * dbus/dbus-signature.c: New file; implements various functions
6030         related to type signatures.  Includes an interator for parsing,
6031         validation functions.
6032         (dbus_type_is_basic): Moved here from
6033         dbus-marshal-basic.c:_dbus_type_is_basic.
6034         (dbus_type_is_container): Moved here from
6035         dbus-marshal-basic.c:_dbus_type_is_container.
6036
6037         All callers of _dbus_type_is_container and _dbus_type_is_basic
6038         updated, and include dbus-signature.h.
6039
6040         * dbus/dbus-signature.h: New file; prototypes for the above.
6041
6042         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6043         dbus-signature.h.
6044
6045         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6046         function factored out of _dbus_first_type_in_signature.
6047         (_dbus_first_type_in_signature_c_str): New function; returns first
6048         type code for a type signature character.
6049
6050         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6051         handle function moves.
6052
6053         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6054
6055         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6056         function; skips to next complete type in type signature.
6057         Implemented using previous skip_one_complete_type.  Now
6058         skip_one_complete_type just delegates to
6059         _dbus_type_signature_next.
6060
6061         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6062         to dbus-signature.c
6063         (_dbus_type_is_container): Ditto.
6064
6065         * doc/dbus-specification.xml: Update introspection sample to
6066         use real type signatures.
6067
6068         * dbus/dbus-test.h: Prototype signature test.
6069
6070         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6071         signature tests.
6072
6073         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6074
6075 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6076
6077         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6078         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6079
6080 2005-02-21  Colin Walters  <walters@verbum.org>
6081
6082         * dbus/dbus-test-main.c (main): Take optional specific test
6083         argument.
6084
6085         * dbus/dbus-test.c (run_test): New function, runs a test function
6086         with no data directory.
6087         (run_data_test): Like above, but takes data directory.
6088         (dbus_internal_do_not_use_run_tests): Take
6089         specific test argument.  Replace lots of cut n' paste code
6090         with run_test and run_data_test.
6091
6092         * dbus/dbus-test.h: Update prototype for
6093         dbus_internal_do_not_use_run_tests.
6094
6095 2005-02-20  Havoc Pennington  <hp@redhat.com>
6096
6097         Fix bugs reported by Daniel P. Berrange
6098         
6099         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6100         (protected_change_watch): new function
6101         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6102         (_dbus_server_add_watch): change to work like the
6103         dbus-connection.c equivalents; like those, probably kind of
6104         busted, but should at least mostly work for now
6105         (dbus_server_disconnect): drop the lock if we were already
6106         disconnected, patch from Daniel P. Berrange
6107
6108         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6109         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6110         same stuff
6111
6112         * doc/TODO: todo about unscrewing this mess
6113
6114 2005-02-19  Colin Walters  <walters@verbum.org>
6115
6116         * glib/dbus-binding-tool-glib.c
6117         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6118
6119         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6120         as errno.h and sys/stat.h.
6121         (lose): New function, prints error with
6122         newline and exits.
6123         (lose_gerror): Similar, but takes GError for message.
6124         (main): Add --output argument to specify output file to write to,
6125         instead of always printing to stdout.  In this mode, determine
6126         timestamps on source files to see whether any are newer than the
6127         target file.  If not, exit.  Also convert a number of error
6128         messages to use lose (since it's shorter), and switch to using
6129         g_io_channel_shutdown.
6130
6131 2005-02-19  Havoc Pennington  <hp@redhat.com>
6132
6133         * glib/dbus-gobject.c
6134         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6135
6136         * glib/dbus-glib.c: fix doxygen warnings
6137
6138         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6139         is found on an <arg>
6140
6141 2005-02-17  Colin Walters  <walters@verbum.org>
6142
6143         * glib/dbus-gobject.h: Don't export
6144         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6145         
6146         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6147         (invoke_object_method): Handle it.
6148
6149         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6150         Handle rename.
6151         
6152 2005-02-17  Colin Walters  <walters@verbum.org>
6153
6154         * bus/.cvsignore, doc/.cvsignore
6155         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6156         Update.
6157
6158 2005-02-17  Colin Walters  <walters@verbum.org>
6159         
6160         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6161         Rename to DBUS_SERVICE_DBUS.
6162         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6163         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6164         Change the value from "org.freedesktop.Local"
6165         to "org.freedesktop.DBus.Local".
6166         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6167         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6168         DBUS_INTERFACE_INTROSPECTABLE.
6169         Change the value from "org.freedesktop.Introspectable"
6170         to "org.freedesktop.DBus.Introspectable".
6171         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6172         DBUS_INTERFACE_PROPERTIES.
6173         Change the value from "org.freedesktop.Properties"
6174         to "org.freedesktop.DBus.Properties".
6175         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6176         DBUS_INTERFACE_PEER.
6177         Change the value from "org.freedesktop.Peer"
6178         to "org.freedesktop.DBus.Peer".
6179         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6180         DBUS_INTERFACE_LOCAL.
6181         Change the value from "org.freedesktop.Local"
6182         to "org.freedesktop.DBus.Local".
6183
6184         All other users of those constants have been changed.
6185
6186         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6187
6188         * glib/dbus-gobject.c (handle_introspect): Use constants.
6189
6190         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6191
6192 2005-02-17  Colin Walters  <walters@verbum.org>
6193
6194         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6195         (parse_node, parse_interface, parse_method, parse_signal)
6196         (parse_property, parse_annotation): Lose if we're currently in an
6197         annotation.
6198         (parse_annotation): New function.
6199         (parser_start_element, parser_end_element): Handle annotation.
6200         (parse_method, parse_interface): Remove support for c_name attribute,
6201         switch to annotations.
6202
6203         * glib/dbus-gidl.h (interface_info_get_binding_names)
6204         (method_info_get_binding_names)
6205         (interface_info_get_binding_name, method_info_get_binding_name)
6206         (interface_info_set_binding_name, method_info_set_binding_name):
6207         Remove.
6208         (interface_info_get_annotations, method_info_get_annotations)
6209         (interface_info_get_annotation, method_info_get_annotation)
6210         (interface_info_add_annotation, method_info_add_annotation):
6211         Prototype.
6212
6213         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6214         for "bindings".
6215         (struct MethodInfo): Ditto.
6216         Straightfoward conversion of binding methods into annotation methods
6217         as prototyped.
6218
6219         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6220
6221         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6222
6223         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6224         Use new annotation API.
6225
6226         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6227         annotation element.
6228         
6229         * doc/dbus-specification.xml: Discuss introspection annotations,
6230         include list of well-known annotations.
6231
6232         * test/glib/test-service-glib.xml: Make validate against new DTD.
6233
6234 2005-02-17  Colin Walters  <walters@verbum.org>
6235
6236         This patch is based on initial work from
6237         Paul Kuliniewicz <kuliniew@purdue.edu>.
6238
6239         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6240         initialization of GValue from dbus type to here.
6241         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6242         for the "glib-genmarshal" program from a DBus type.
6243         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6244         into the C name for it we use in the glib bindings.
6245         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6246         glib C type (not GValue).
6247         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6248
6249         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6250         from dbus-gobject.c.
6251
6252         * glib/dbus-gutils.h: Prototype it.
6253
6254         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6255         (marshal_dbus_message_to_g_marshaller): Use new shared function
6256         dbus_glib_marshal_dbus_message_to_gvalue_array.
6257
6258         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6259         Will be changed once we have annotations.
6260
6261         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6262         GStaticRWLock.  Callers updated.
6263         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6264         (string_table_next): New function for iterating over zero-terminated
6265         string value array.
6266         (string_table_lookup): New function; retrieves specific entry in
6267         array.
6268         (get_method_data): New function; look up method data in object data chunk.
6269         (object_error_domain_prefix_from_object_info)
6270         (object_error_code_from_object_info): New functions, but not implemented yet.
6271         (method_interface_from_object_info): New function; retrieve interface name.
6272         (method_name_from_object_info): New function; retrieve method name.
6273         (method_arg_info_from_object_info): New function; retrieve argument data.
6274         (arg_iterate): New function; iterates over serialized argument data.
6275         (method_dir_signature_from_object_info): New function; returns a
6276         GString holding type signature for arguments for just one
6277         direction (input or output).
6278         (method_input_signature_from_object_info)
6279         (method_output_signature_from_object_info): New functions.
6280         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6281         converts dbus message arguments into a GValue array.  Used for both
6282         signal handling and method invocation.
6283         (struct DBusGlibWriteIterfaceData): New utility structure.
6284         (write_interface): New function; generate introspection XML for
6285         an interface.
6286         (introspect_interfaces): New function; gathers all interface->methods,
6287         generates introspection XML for them.
6288         (handle_introspect): Invoke introspect_interfaces.
6289         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6290         (lookup_object_and_method): New function; examines an incoming message
6291         and attempts to match it up (via interface, method name, and argument
6292         signature) with a known object and method.
6293         (gerror_domaincode_to_dbus_error_name): New function; converts a
6294         GError domain and code into a DBus error name.  Needs GError data
6295         added to object introspection to work well.
6296         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6297         GError.
6298         (invoke_object_method): New function to invoke an object method
6299         looked up via lookup_object_and_method.  Parses the incoming
6300         message, turns it into a GValue array, then invokes the marshaller
6301         specified in the DBusGMethodInfo.  Creates a new message with
6302         either return values or error message as appropriate.
6303         (gobject_message_function): Invoke lookup_object_and_method and
6304         invoke_object_method.
6305
6306         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6307         (enum DBusBindingOutputMode): New enum for binding output modes.
6308         (pretty_print): Print binding names.
6309         (dbus_binding_tool_error_quark): GError bits.
6310         (version): Fix typo.
6311         (main): Create GIOChannel for output.  Parse new --mode argument,
6312         possible values are "pretty-print", "glib-server", "glib-client".
6313         Use mode to invoke appropriate function.
6314         
6315         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6316
6317         * glib/dbus-glib-tool.h: New header, just includes GError bits
6318         for now.
6319
6320         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6321         maps binding style to name.
6322         (struct MethodInfo): Ditto.
6323         (get_hash_keys, get_hash_key): Utility function, returns keys for
6324         a GHashTable.
6325         (interface_info_new, method_info_new): Initialize bindings.
6326         (interface_info_unref, method_info_unref): Destroy bindings.
6327         (method_info_get_binding_names, method_info_get_binding_name)
6328         (interface_info_get_binding_names, interface_info_get_binding_name):
6329         Functions for retrieving binding names.
6330         (method_info_set_binding_name, interface_info_set_binding_name):
6331         Functions for setting binding names.
6332
6333         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6334         for glib binding generation.
6335
6336         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6337         and client-side glib glue generation.
6338
6339         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6340         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6341         dbus-glib-tool.h.
6342
6343         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6344         of using GClosureMarshal directly.
6345         (struct DBusGObjectInfo): Add n_infos member.
6346
6347         * test/glib/test-service-glib.xml: New file; contains introspection data
6348         for MyTestObject used in test-service-glib.c.
6349
6350         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6351         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6352         (my_object_uppercase, my_object_many_args): New test methods.
6353         (main): Use dbus_g_object_class_install_info to include generated object
6354         info.
6355
6356         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6357         as well as client-side bindings.
6358
6359         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6360         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6361         using both the dbus_gproxy stuff directly as well as the generated bindings.
6362
6363 2005-02-15  Havoc Pennington  <hp@redhat.com>
6364
6365         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6366         complete a pending call, don't run filters first.
6367
6368         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6369         dbus_pending_call_steal_reply
6370
6371         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6372         _dbus_connection_block_pending_call
6373         (dbus_pending_call_get_reply): change to steal_reply and return a
6374         ref
6375
6376         * dbus/dbus-connection.c
6377         (dbus_connection_send_with_reply_and_block): port to work in terms
6378         of DBusPendingCall
6379         (_dbus_connection_block_pending_call): replace block_for_reply
6380         with this
6381
6382 2005-02-14  Havoc Pennington  <hp@redhat.com>
6383
6384         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6385         properly handle looking up group information by name; fix 
6386         from j@bootlab.org
6387
6388 2005-02-13  Havoc Pennington  <hp@redhat.com>
6389
6390         * dbus/dbus-connection.c (dbus_connection_return_message) 
6391         (dbus_connection_borrow_message): hold dispatch lock while message
6392         is outstanding
6393         (_dbus_connection_block_for_reply): hold dispatch lock while we
6394         block for the reply, so nobody steals our reply
6395         (dbus_connection_pop_message): hold the dispatch lock while we
6396         pluck the message
6397
6398 2005-02-13  Havoc Pennington  <hp@redhat.com>
6399
6400         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6401         (_dbus_connection_release_dispatch)
6402         (_dbus_connection_acquire_io_path)
6403         (_dbus_connection_release_io_path): make the mutex and condvar
6404         control access to the "acquired" flag. Drop the connection lock
6405         while waiting on the condvar. Hopefully these are baby steps in
6406         roughly the right direction.
6407
6408 2005-02-13  Havoc Pennington  <hp@redhat.com>
6409
6410         * dbus/dbus-connection.c: use separate mutexes for the condition
6411         variables; this is some kind of baseline for sanity, but the
6412         condition variables still aren't used correctly afaict
6413
6414 2005-02-13  Havoc Pennington  <hp@redhat.com>
6415
6416         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6417         fix a double-unlock
6418
6419         * dbus/dbus-connection.c
6420         (_dbus_connection_detach_pending_call_unlocked): add this
6421
6422         Initial semi-correct pass through to fix thread locking; there are
6423         still some issues with the condition variable paths I'm pretty
6424         sure
6425         
6426         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6427         lock/unlock calls
6428
6429         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6430         rename to add _unlocked
6431         (struct DBusConnection): move "dispatch_acquired" and
6432         "io_path_acquired" to use only one bit each.
6433         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6434         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6435         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6436         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6437         (_dbus_connection_remove_timeout) 
6438         (_dbus_connection_toggle_timeout): drop lock when calling out to
6439         user functions; done in a hacky/bad way.
6440         (_dbus_connection_send_and_unlock): add a missing unlock
6441         (_dbus_connection_block_for_reply): add a missing unlock
6442
6443         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6444         drop lock in a hacky probably unsafe way to call out to user
6445         function
6446
6447 2005-02-12  Havoc Pennington  <hp@redhat.com>
6448
6449         * tools/dbus-tree-view.c (info_set_func_text): display more
6450         details on args
6451
6452         * bus/driver.c (bus_driver_handle_list_services): list the bus
6453         driver
6454
6455         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6456
6457         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6458         (method_info_get_n_args): new function
6459
6460 2005-02-12  Havoc Pennington  <hp@redhat.com>
6461
6462         * bus/driver.c (bus_driver_handle_introspect): add introspection
6463         for bus driver
6464
6465 2005-02-12  Havoc Pennington  <hp@redhat.com>
6466
6467         * bus/driver.c: put the signature of each bus driver method in the
6468         table of handlers and check it on incoming calls; this isn't
6469         really useful, but going to add introspect support in a minute.
6470
6471 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6472
6473         * mono/Connection.cs: The unpredictability of finalizers in mono
6474         prevents us from deterministically disconnecting the filters from
6475         the Service class's finalizer, so move tracking of filters and
6476         matches here.  Add API for that.
6477
6478         * mono/Service.cs: Remove the code, add code which calls the
6479         methods now on the Connection class.
6480
6481 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6482
6483         * python/dbus.py (class Sender): added to support dbus signals better
6484         (Bus::add_signal_receiver): added expand_args parameter which defaults
6485         to True.  When expand args is True the signal handler will pass the 
6486         message arguments as parameters to the signal handler.  If False
6487         revert to previous behavior where the signal handler must get the
6488         argument list from the message.  This is to help port applications
6489         like HAL that have a tendancy to send variable length argument lists.
6490         self._match_rule_to_receivers is now a dict of dicts.
6491         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6492         removing it from a list
6493         (Bus::_signal_func): change signal handlers so that interface,
6494         signal_name, service, path and message are packed into a Sender
6495         object and that is passed to the handler.  If expand_args is True
6496         extract the args list from the message and append it to the parameter
6497         list
6498         
6499         * python/dbus_bindings.pyx.in (class Signature): added to support 
6500         signiature types
6501         (MessageIter::__init__): changed iteration limit to match D-BUS
6502         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6503         STRUCT and VARIENT type support
6504         (MessageIter::python_value_to_dbus_sig): made recursive to support
6505         recursive types
6506         (MessageIter::append*): added Signature, dict, tuple 
6507         support
6508
6509         * python/examples/example-client.py: added examples of getting tuples
6510         and dicts
6511
6512         * python/examples/example-service.py: added examples of sending tuples
6513         and dicts
6514
6515         * python/examples/example-signal-recipient.py: Fixed to handle new
6516         signal callback format
6517
6518 2005-02-10  Havoc Pennington  <hp@redhat.com>
6519
6520         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6521         (call dbus_g_proxy_add_signal)
6522
6523         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6524         escape the hostname
6525         (_dbus_server_new_for_domain_socket): escape the path
6526
6527         * dbus/dbus-address.c (dbus_address_escape_value): new
6528         (dbus_address_unescape_value): new
6529         (dbus_parse_address): unescape values
6530
6531         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6532
6533         * doc/dbus-specification.xml: explain how to escape values in
6534         addresses
6535
6536 2005-02-10  Havoc Pennington  <hp@redhat.com>
6537
6538         * dbus/dbus-message-factory.c (generate_special): modify test to
6539         avoid using a non-basic dict key
6540
6541         * dbus/dbus-marshal-validate-util.c: add test for the below
6542
6543         * doc/dbus-specification.xml: require that dict keys are a basic
6544         type
6545
6546         * dbus/dbus-marshal-validate.c
6547         (_dbus_validate_signature_with_reason): require that dict key is a
6548         basic type
6549
6550 2005-02-10  Havoc Pennington  <hp@redhat.com>
6551
6552         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6553         change to be _and_unlock instead of _unlocked
6554
6555         * dbus/dbus-connection.c
6556         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6557         have no_update so we can find this bug quickly in future
6558
6559 2005-02-10  Havoc Pennington  <hp@redhat.com>
6560
6561         * dbus/dbus-message-util.c (verify_test_message): tests for string
6562         array
6563
6564         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6565         support for arrays of string/signature/path
6566
6567 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6568
6569         * dbus/dbus-connection.c
6570         (_dbus_connection_queue_received_message_link,
6571         _dbus_connection_message_sent): Add the path to
6572         the verbose output.
6573         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6574         _dbus_connection_send_preallocated_unlocked(), updated the
6575         dispatch status, and unlocks.  Fixes a bug where certain
6576         situations (like a broken pipe) could cause a Disconnect message
6577         to not be sent, tricking the bus into thinking a service was still
6578         there when the process had quit.
6579         (_dbus_connection_send_preallocated): Call
6580         _dbus_connection_send_preallocated_and_unlock().
6581         (_dbus_connection_send_and_unlock): Added.  Calls
6582         _dbus_connection_send_preallocated_and_unlock().
6583         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6584         (dbus_connection_send_with_reply): Update the dispatch status and
6585         unlock.
6586
6587         * mono/Service.cs (~Service): Added.  Removes the filter so that
6588         we don't get unmanaged code calling back into a GCed delegate.
6589         (RemoveFilter); Added.
6590
6591 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6592
6593         * dbus/dbus-message.c (dbus_message_iter_open_container):
6594         - Removed check for iterator type being an array because
6595         get_arg_type does not work with writer iterators
6596         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6597
6598 2005-02-07  Havoc Pennington  <hp@redhat.com>
6599
6600         * doc/dbus-specification.xml: some more language cleanups; add
6601         stuff about how to deal with invalid protocol and extension
6602         points; add _ to allowed chars in auth commands; add EXTENSION_
6603         auth command prefix
6604
6605 2005-02-06  Havoc Pennington  <hp@redhat.com>
6606
6607         * s/expected/required/ in a couple places for clarity
6608
6609 2005-02-07  Colin Walters  <walters@verbum.org>
6610
6611         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6612         sender or proposed_recipient.
6613
6614 2005-02-06  Havoc Pennington  <hp@redhat.com>
6615
6616         * dbus/dbus-message-factory.c (generate_special): more tests
6617
6618         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6619         array length that exceeds the maximum
6620
6621 2005-02-05  Havoc Pennington  <hp@redhat.com>
6622
6623         * dbus/dbus-message-factory.c (generate_special): more test cases,
6624         increasing coverage
6625
6626         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6627         reason why a signature was invalid
6628
6629         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6630         skip the length of the string before we look at it in validation
6631
6632         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6633         equal_substring
6634
6635         * dbus/dbus-message.c (_dbus_message_loader_new): default
6636         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6637
6638 2005-02-05  Havoc Pennington  <hp@redhat.com>
6639
6640         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6641         if the signature of a variant was empty
6642         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6643         struct with no element type)
6644
6645         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6646         mangled messages to break things
6647
6648 2005-02-04  Havoc Pennington  <hp@redhat.com>
6649
6650         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6651         g_quark_try_string() so it actually can return 0
6652         (dbus_g_proxy_connect_signal): ditto
6653
6654 2005-02-04  Havoc Pennington  <hp@redhat.com>
6655
6656         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6657         bogus warning
6658         (tristring_from_message): assert cleanly on null path/interface
6659         (should not be possible though I decided later)
6660         (dbus_g_proxy_dispose): move proxy manager unregistration here
6661         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6662         g_return_if_fail() checks
6663
6664 2005-02-04  Havoc Pennington  <hp@redhat.com>
6665
6666         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6667
6668         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6669         (with some minor changes)
6670
6671         * doc/dbus-specification.xml: add deprecated attribute to
6672         introspection format
6673
6674 2005-01-31  Havoc Pennington  <hp@redhat.com>
6675
6676         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6677         think it's sort of right
6678
6679 2005-01-30  Havoc Pennington  <hp@redhat.com>
6680
6681         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6682
6683 2005-01-30  Havoc Pennington  <hp@redhat.com>
6684
6685         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6686
6687         * autogen.sh: change to autotools 1.9
6688
6689         * glib/dbus-gproxy.c: completely change how signals work
6690         (dbus_g_proxy_add_signal): new function to specify signature of a
6691         signal
6692         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6693         and g_warning if the incoming message has the wrong signature.
6694
6695 2005-01-30  Havoc Pennington  <hp@redhat.com>
6696
6697         * tools/dbus-names-model.c (have_names_notify): fix this
6698
6699         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6700         up the string array handling a bit 
6701
6702 2005-01-30  Havoc Pennington  <hp@redhat.com>
6703
6704         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6705         (dbus_g_pending_call_cancel): new function
6706
6707         * dbus/dbus-glib.h: move GType decls for connection/message here;
6708         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6709         here, just kind of rationalizing how we handle all that
6710
6711         * tools/dbus-names-model.c: new file for a tree model listing the
6712         services on a bus
6713
6714         * tools/dbus-tree-view.c (model_new): use proper typing on the
6715         model rows
6716
6717 2005-01-30  Havoc Pennington  <hp@redhat.com>
6718
6719         * glib/dbus-gmain.c: add a custom GSource back that just checks
6720         whether the message queue has anything in it; otherwise, there are 
6721         cases where we won't see messages in the queue since there was no 
6722         IO visible to the glib main loop
6723
6724         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6725         increase default message timeout to 25 seconds
6726
6727 2005-01-30  Havoc Pennington  <hp@redhat.com>
6728
6729         * test/glib/test-profile.c (no_bus_stop_server): remove the
6730         warning about the g_warning that I just fixed
6731
6732         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6733         custom source, seems to be a lot easier to understand and work
6734         better.
6735
6736 2005-01-30  Havoc Pennington  <hp@redhat.com>
6737
6738         I think this main loop thing is conceptually broken, but here are 
6739         some band aids. I'll maybe rewrite it in a minute.
6740         
6741         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6742         custom GSource, so don't pass it in; confusing
6743         (gsource_server_finalize, gsource_connection_finalize): add
6744         finalize handlers that remove all the watches.  
6745
6746 2005-01-30  Havoc Pennington  <hp@redhat.com>
6747
6748         * glib/dbus-gobject.c (introspect_properties): fix the XML
6749         generated
6750
6751         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6752         which effectively detects the use of freed messages
6753
6754         * glib/dbus-gobject.c (handle_introspect): modify and return the
6755         reply message instead of the incoming message
6756
6757         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6758         gee, maybe it should SEND THE XML instead of just making a string
6759         and freeing it again ;-)
6760
6761         * tools/dbus-print-message.c (print_message): improve printing of
6762         messages
6763
6764         * configure.in: add debug-glib.service to the output
6765
6766 2005-01-30  Havoc Pennington  <hp@redhat.com>
6767
6768         dbus-viewer introspected and displayed the bus driver
6769         
6770         * dbus/dbus-object-tree.c 
6771         (object_tree_test_iteration): add tests for a handler registered on "/"
6772
6773         * dbus/dbus-object-tree.c
6774         (_dbus_decompose_path): fix to handle path "/" properly
6775         (run_decompose_tests): add tests for path decomposition
6776         
6777         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6778         properly
6779
6780         * glib/dbus-gobject.c (handle_introspect): fix quotes
6781
6782         * test/glib/run-test.sh: support launching the bus, then running
6783         dbus-viewer
6784
6785         * test/glib/test-service-glib.c (main): put in a trivial gobject
6786         subclass and register it on the connection
6787
6788         * bus/driver.c (bus_driver_handle_introspect): implement
6789         introspection of the bus driver service
6790
6791         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6792         identifiers, doctype decl
6793
6794         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6795         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6796         returning the service unchanged.
6797         (bus_driver_handle_message): remove old check for reply_serial in
6798         method calls, now the message type deals with that
6799         (bus_driver_handle_message): handle NULL interface
6800
6801         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6802
6803         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6804         -1 for len
6805
6806         * tools/dbus-viewer.c: add support for introspecting a service on
6807         a bus
6808
6809         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6810         (dbus_g_pending_call_unref): add
6811
6812 2005-01-29  Havoc Pennington  <hp@redhat.com>
6813
6814         * tools/dbus-tree-view.c: add support for displaying properties.
6815         (run dbus-viewer with an introspect xml file as arg, then resize
6816         the window so the tree elements show up, not sure what that is)
6817
6818         * glib/dbus-gobject.c (handle_introspect): return
6819         org.freedesktop.Properties and org.freedesktop.Introspectable
6820         interfaces when we are introspected.
6821
6822         * doc/dbus-specification.xml: allow empty interface name when 
6823         Get/Set a property
6824
6825 2005-01-29  Havoc Pennington  <hp@redhat.com>
6826
6827         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6828         though it uses glib, it could be extended for any binding in
6829         principle
6830
6831         * glib/dbus-gobject.c (gobject_message_function): change to the
6832         new way properties work
6833
6834         * dbus/dbus-protocol.h: add the new interfaces
6835
6836         * doc/dbus-specification.xml: document the introspection format,
6837         Introspectable interface, and add an org.freedesktop.Properties
6838         interface.
6839
6840         * glib/dbus-gparser.c: add support for a <property> element
6841
6842         * glib/dbus-gidl.c: add PropertyInfo
6843
6844         * glib/dbus-gobject.c (handle_introspect): put the outermost
6845         <node> outside the signal and property descriptions.
6846         (introspect_properties): export properties as <property> rather
6847         than as method calls
6848
6849 2005-01-28  Havoc Pennington  <hp@redhat.com>
6850
6851         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6852         related to authentication protocol
6853
6854 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6855
6856         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6857                 - BUS_ACTIVATION -> BUS_STARTER
6858                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6859                 - class MessageIter (__init__): Added recursion checking 
6860                 so we throw a nice error instead of just disconnecting from the
6861                 bus.
6862                 (get): Added arg_type parameter for recursion.
6863                 Removed the nil type
6864                 Added signiture type placeholder (not implemented)
6865                 Added struct type placeholder (not implemented)
6866                 Added varient type placeholder (not implemented)
6867                 Commented out dict type for now     
6868                 (get_element_type): renamed from get_array_type
6869                 (get_*): changed to use the dbus_message_iter_get_basic API
6870                 (get_*_array): removed in favor of recursive get_array method
6871                 (get_array): new recursive method which calls get to marshal
6872                 the elements of the array
6873                 (value_to_dbus_sig): New method returns the corrasponding
6874                 dbus signiture to a python value
6875                 (append): Comment out dict handling for now
6876                 Handle lists with the new recursive API
6877                 Comment out None handling for now
6878                 (append_nil): removed
6879                 (append_*): changed to use dbus_message_iter_append_basic API
6880                 (append_*_array): removed in favor of recursive append_array 
6881                 method
6882                 (__str__): Make it easier to print out recursive iterators
6883                 for debugging
6884                 - class Message (__str__): moved type inspection to the
6885                 MessageIter class' __str__ method
6886                 (get_iter): Added an append parameter wich defaults to False
6887                 If True use the new API's to create an append iterator
6888
6889         * python/dbus.py: Update to use new bindings API
6890                 - TYPE_ACTIVATION -> TYPE_STARTER
6891                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6892                 - class ActivationBus -> class StarterBus
6893                 - class RemoteObject (__call__): get an append iterator
6894                 - (_dispatch_dbus_method_call): get an append iterator
6895                 - class Object (emit_signal): get an append iterator
6896
6897         * python/examples/: Fixed up the examples to work with the new API
6898                 
6899 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6900
6901         * configure.in: Bump version up to 0.30.
6902
6903         * HACKING: Add a release item to bump the version number up after 
6904         a release.
6905
6906 2005-01-28  Havoc Pennington  <hp@redhat.com>
6907
6908         * doc/dbus-specification.xml: update to describe 16-bit types and
6909         dict entries
6910
6911         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6912         assertion
6913
6914         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6915         type
6916
6917         * dbus/dbus-marshal-recursive.c: implement
6918
6919 2005-01-27  Havoc Pennington  <hp@redhat.com>
6920
6921         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6922
6923         * configure.in: find the right type for 16 and 32 bit ints as well
6924         as 64
6925
6926         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6927         the 16-bit types so people don't have to stuff them in 32-bit or
6928         byte arrays.
6929
6930 2005-01-27  Havoc Pennington  <hp@redhat.com>
6931
6932         * dbus/dbus-message.c: byteswap the message if you init an
6933         iterator to read/write from it
6934         
6935         * dbus/dbus-marshal-byteswap.c: new file implementing 
6936         _dbus_marshal_byteswap()
6937
6938         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6939
6940 2005-01-26  Havoc Pennington  <hp@redhat.com>
6941         
6942         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6943         build, apparently - nobody noticed?)
6944         
6945 2005-01-26  Havoc Pennington  <hp@redhat.com>
6946
6947         * dbus/dbus-marshal-recursive.h: remove todo comment
6948
6949 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6950
6951         * Land the mono binding changes to conform to the new APIs.
6952
6953         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6954         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6955
6956         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6957         type code as a string.
6958         (InitAppending): Rename dbus_message_append_iter_init() to
6959         dbus_message_iter_init_append().
6960
6961         * mono/BusDriver.cs: Rename ServiceEventHandler to
6962         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6963         Rename ServiceOwnerChanged to NameOwnerChanged.
6964
6965         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6966         underlying C call.
6967
6968         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6969
6970         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6971         dbus_bus_acquire_service() to dbus_bus_request_name().
6972
6973         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6974         of Type.UnderlyingSystemType to get the correct element type for
6975         the array.
6976         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6977         dbus_message_get_{element|arg}_type() instead of
6978         dbus_message_iter_init_array_iterator().
6979         (Append): Replace dbus_message_iter_append_array() with
6980         dbus_message_iter_open_container() and
6981         dbus_message_iter_close_container().
6982
6983         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6984         types have been removed.
6985         
6986         * mono/DBusType/*.cs: Replace calls of
6987         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6988         but specify the type in the DllImport extern declaration.  Ditto
6989         for dbus_message_iter_append_[type]() ->
6990         dbus_message_iter_append_basic().
6991
6992         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6993         NameOwnerChangedHandler.
6994
6995 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6996
6997         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6998                 - get_base_service -> get_unique_name
6999                 - bus_get_base_service -> bus_get_unique_name
7000                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7001                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7002                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7003                 - bus_activate_service -> bus_start_service_by_name
7004                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7005                 - bus_acquire_service -> bus_request_name
7006                 - dbus_bus_acquire_service -> dbus_bus_request_name
7007                 - bus_service_exists -> bus_name_has_owner
7008                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7009
7010         * python/dbus.py: Rename of methods
7011                 - activate_service -> start_service_by_name
7012                 - bus_acquire_service -> bus_request_name
7013                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7014                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7015
7016         
7017 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7018
7019         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7020         signature for the method that can't be found.
7021
7022         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7023         the message has any arguments, we need to call
7024         _dbus_type_reader_get_current_type(), not
7025         _dbus_type_reader_has_next().
7026
7027 2005-01-24  Havoc Pennington  <hp@redhat.com>
7028
7029         * dbus/dbus-message-factory.c: more testing of message validation
7030
7031         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7032         header
7033
7034 2005-01-23  Havoc Pennington  <hp@redhat.com>
7035
7036         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7037         get this all working, not many tests in the framework yet though
7038
7039 2005-01-22  Havoc Pennington  <hp@redhat.com>
7040
7041         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7042         tutorial, based on work from David Wheeler.
7043
7044 2005-01-21  Havoc Pennington  <hp@redhat.com>
7045
7046         * dbus/dbus-bus.c: add more return_if_fail checks
7047
7048         * dbus/dbus-message.c (load_message): have the "no validation"
7049         mode (have to edit the code to toggle the mode for now though)
7050
7051         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7052         skips all validation; I want to use this at least for benchmark
7053         baseline, I'm not sure if it should be a publicly-available switch.
7054
7055 2005-01-21  Havoc Pennington  <hp@redhat.com>
7056
7057         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7058         toplevel doxygen group as the low-level API stuff
7059
7060         * dbus/dbus.h: note that libdbus is the low-level API
7061
7062 2005-01-20  Havoc Pennington  <hp@redhat.com>
7063
7064         * update-dbus-docs.sh: script to update docs on the web site, only
7065         works for me though. neener.
7066
7067 2005-01-20  Havoc Pennington  <hp@redhat.com>
7068
7069         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7070         code can reveal bugs in it
7071
7072 2005-01-20  Havoc Pennington  <hp@redhat.com>
7073
7074         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7075         select() version, patches from Tor Lillqvist
7076
7077 2005-01-20  Havoc Pennington  <hp@redhat.com>
7078
7079         * doc/dbus-tutorial.xml: replace > with &gt;
7080
7081         * bus/services.c (bus_registry_acquire_service): validate the name
7082         and return a better error if it's no good.
7083
7084         * doc/dbus-specification.xml: note NO_AUTO_START change
7085
7086         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7087         from AUTO_START, we're toggling the default
7088
7089         * bus/dispatch.c: adapt the tests to change of auto-start default
7090
7091 2005-01-18  Havoc Pennington  <hp@redhat.com>
7092
7093         * rename dbus-daemon-1 to dbus-daemon throughout
7094
7095 2005-01-18  Havoc Pennington  <hp@redhat.com>
7096
7097         * Throughout, grand renaming to strip out the use of "service",
7098         just say "name" instead (or "bus name" when ambiguous).  Did not
7099         change the internal code of the message bus itself, only the
7100         programmer-facing API and messages.
7101         
7102         * doc/dbus-specification.xml: further update the message bus section
7103         
7104         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7105         in error case
7106
7107 2005-01-17  Havoc Pennington  <hp@redhat.com>
7108
7109         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7110         ever
7111
7112         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7113         "invalid name character" not only non-ASCII
7114
7115         * doc/dbus-specification.xml: further update spec, message bus 
7116         parts are still out-of-date but the marshaling etc. stuff is now
7117         accurate-ish
7118
7119 2005-01-17  Havoc Pennington  <hp@redhat.com>
7120
7121         * doc/dbus-specification.xml: partially update spec
7122
7123 2005-01-17  Havoc Pennington  <hp@redhat.com>
7124
7125         * Throughout, align variant bodies according to the contained
7126         type, rather than always to 8. Should save a fair bit of space in
7127         message headers.
7128         
7129         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7130         fix handling of case where p == end
7131
7132         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7133
7134 2005-01-17  Havoc Pennington  <hp@redhat.com>
7135
7136         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7137
7138         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7139         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7140         are marshaling/unmarshaling a boolean.
7141
7142 2005-01-16  Havoc Pennington  <hp@redhat.com>
7143
7144         This is about it on what can be disabled/deleted from libdbus
7145         easily, back below 150K anyhow. Deeper cuts are more work than 
7146         just turning the code off as I've done here.
7147         
7148         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7149         signed int convenience funcs
7150
7151         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7152         verbose mode
7153
7154         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7155         things out of libdbus
7156
7157         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7158         
7159         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7160         tests-enabled-only, though it should probably be deleted)
7161
7162         * dbus/dbus-message-util.c: same stuff
7163
7164         * dbus/dbus-auth-util.c: same stuff
7165
7166 2005-01-16  Havoc Pennington  <hp@redhat.com>
7167
7168         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7169
7170         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7171         way for stripping down dbus-userdb.c stuff included in libdbus.
7172         Rename _dbus_parse_uid for consistency.
7173
7174 2005-01-16  Havoc Pennington  <hp@redhat.com>
7175
7176         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7177         name the assertion failed in
7178
7179         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7180         (_dbus_return_val_if_fail): assert that the name of the function
7181         containing the check doesn't start with '_', since we only want to 
7182         use checks on public functions
7183         
7184         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7185         checks to assertions
7186
7187         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7188         change checks to asserts for private function
7189
7190         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7191         to asserts for private function
7192
7193         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7194         broken assertion that was breaking make check
7195         (_dbus_type_reader_array_is_empty): remove this rather than fix
7196         it, was only used in assertions
7197
7198 2005-01-16  Havoc Pennington  <hp@redhat.com>
7199
7200         * test/unused-code-gc.py: hacky script to find code that's used
7201         only by the bus (not libdbus) or used only by tests or not used at
7202         all. It has some false alarms, but looks like we can clean up a
7203         lot of size from libdbus.
7204
7205         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7206         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7207         
7208 2005-01-16  Havoc Pennington  <hp@redhat.com>
7209
7210         * Add and fix docs according to Doxygen warnings throughout
7211         source.
7212         
7213         * dbus/dbus-marshal-recursive.c
7214         (_dbus_type_reader_array_is_empty): change this to just call
7215         array_reader_get_array_len() and make it static
7216
7217         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7218         from get_array_type
7219         (dbus_message_iter_init_append): rename from append_iter_init
7220
7221         * dbus/dbus-marshal-recursive.c
7222         (_dbus_type_reader_get_element_type): rename from
7223         _dbus_type_reader_get_array_type
7224
7225 2005-01-15  Havoc Pennington  <hp@redhat.com>
7226
7227         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7228
7229         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7230         when DBUS_DISABLE_ASSERT
7231         (_dbus_marshal_set_basic): be sure we align for the string length
7232
7233         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7234         this look faster
7235
7236         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7237         inline macro version
7238         (_dbus_string_set_byte): provide inline macro version
7239
7240 2005-01-15  Havoc Pennington  <hp@redhat.com>
7241
7242         * Land the new message args API and type system.
7243
7244         This patch is huge, but the public API change is not 
7245         really large. The set of D-BUS types has changed somewhat, 
7246         and the arg "getters" are more geared toward language bindings;
7247         they don't make a copy, etc.
7248
7249         There are also some known issues. See these emails for details
7250         on this huge patch:
7251         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7252         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7253         
7254         * dbus/dbus-marshal-*: all the new stuff
7255
7256         * dbus/dbus-message.c: basically rewritten
7257
7258         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7259         freed blocks to be all non-nul bytes so using freed memory is less
7260         likely to work right
7261
7262         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7263         DBUS_FAIL_MALLOC=N environment variable, so you can do
7264         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7265         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7266         thorough.
7267
7268         * qt/message.cpp: port to the new message args API
7269         (operator<<): use str.utf8() rather than str.unicode()
7270         (pretty sure this is right from the Qt docs?)
7271
7272         * glib/dbus-gvalue.c: port to the new message args API
7273
7274         * bus/dispatch.c, bus/driver.c: port to the new message args API
7275
7276         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7277         "locked" flag to TRUE and align_offset to 0; I guess we never
7278         looked at these anyhow, but seems cleaner.
7279
7280         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7281         move allocation padding macro to this header; use it to implement
7282         (_DBUS_STRING_STATIC): ability to declare a static string.
7283
7284         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7285         change to return TRUE if the interface is not set.
7286
7287         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7288         to dbus-marshal-validate.[hc]
7289
7290         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7291         dbus-internals.c
7292
7293         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7294         to dbus-marshal-*.[hc]
7295
7296         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7297         function here from dbus-marshal.c
7298
7299 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7300
7301         * NEWS: Update for 0.23.
7302
7303         * configure.in: Release 0.23.
7304
7305 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7306
7307         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7308         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7309         behind.
7310
7311         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7312         uninstall"
7313
7314         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7315         is an enum, get the enum's underlying type.  Another mono
7316         1.1.3 fix.
7317
7318 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7319
7320         Patch from Sjoerd Simons <sjoerd@luon.net>
7321
7322         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7323         DESTDIR.  It breaks stuff.
7324
7325 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7326
7327         Patch from Tambet Ingo <tambet@ximian.com>
7328
7329         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7330         calling type.GetElementType().  The code previously depended on
7331         broken Mono behavior, which was fixed in Mono 1.1.3.
7332
7333         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7334         Activator.CreateInstance() so that the class's constructor is
7335         called with the right parameters.
7336
7337 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7338
7339         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7340
7341         * dbus/dbus-connection.c
7342         (_dbus_connection_queue_received_message_link): Call
7343         _dbus_connection_remove_timeout() instead of the _locked()
7344         variant, since it's always called from
7345         _dbus_connection_handle_watch(), which handles the locking.
7346         Removed the _locked() variant since it's no longer used.
7347
7348 2005-01-03  Havoc Pennington  <hp@redhat.com>
7349
7350         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7351         return
7352         
7353 2004-12-26  Havoc Pennington  <hp@redhat.com>
7354
7355         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7356
7357 2005-01-03  Havoc Pennington  <hp@redhat.com>
7358
7359         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7360         floating point
7361
7362         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7363
7364 2005-01-02  Havoc Pennington  <hp@redhat.com>
7365
7366         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7367
7368 2005-01-01  Havoc Pennington  <hp@redhat.com>
7369
7370         * configure.in: add -Wfloat-equal
7371
7372 2005-01-01  Havoc Pennington  <hp@redhat.com>
7373
7374         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7375         for a variety of reasons '==' doesn't do this.
7376
7377 2004-12-31  Havoc Pennington  <hp@redhat.com>
7378
7379         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7380         I keep wishing I had
7381
7382 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7383
7384         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7385
7386 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7387
7388         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7389         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7390         dbus-protocol.h.  Because they are defines and not enums they are not
7391         autogenerated.
7392
7393 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7394
7395         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7396         dbus_bus_activate_service
7397
7398         * python/dbus.py (Bus.activate_service): activate a service on the
7399         bus.
7400
7401 2004-12-24  Havoc Pennington  <hp@redhat.com>
7402
7403         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7404         file format has also changed and I haven't adapted to that yet
7405         
7406         * Makefile.am: load .gcno files from latest gcc
7407
7408 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7409         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7410
7411         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7412         lowlevel binding
7413
7414         * python/dbus.py (get_unix_user): Added binding to 
7415         call dbus_bindings.bus_get_unix_user
7416
7417         * python/extract.py: Modified the proto_pat regex to
7418         handle unsigned long
7419
7420 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7421
7422         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7423         better POSIX compliance.
7424
7425 2004-12-19  Havoc Pennington  <hp@redhat.com>
7426
7427         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7428         (_dbus_string_insert_8_aligned): new functions
7429
7430         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7431
7432 2004-12-18  Havoc Pennington  <hp@redhat.com>
7433
7434         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7435         macro
7436
7437         * dbus/dbus-message.c: fix a comment, and add a still-unused
7438         not-implemented function
7439
7440         * dbus/dbus-marshal.h: fix comment
7441
7442         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7443
7444 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7445
7446         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7447         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7448         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7449         Type.UnderlyingSystemType to get the actual system type
7450         underneath.  This code previously depended on the broken Mono
7451         behavior, which was fixed in 1.1.3.
7452
7453 2004-11-27  Havoc Pennington  <hp@redhat.com>
7454
7455         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7456         are disabled
7457         (_dbus_string_get_const_data): inline when asserts are disabled
7458
7459         * dbus/dbus-message.c: record the _dbus_current_generation of
7460         creation so we can complain if dbus_shutdown() is used improperly.
7461         Do this only if checks are enabled.
7462
7463         * dbus/dbus-connection.c: ditto
7464         
7465 2004-11-26  Havoc Pennington  <hp@redhat.com>
7466
7467         * test/glib/test-profile.c: add with_bus mode to profile echoes
7468         that go through the bus.
7469
7470         * test/glib/run-test.sh: add ability to run test-profile
7471
7472         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7473         config file reload.
7474
7475 2004-11-26  Havoc Pennington  <hp@redhat.com>
7476
7477         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7478         thing was implemented
7479
7480 2004-11-26  Havoc Pennington  <hp@redhat.com>
7481
7482         * test/glib/test-profile.c: tweak a bit, add support for some
7483         made-up minimal malloc overhead with plain sockets, since in 
7484         real life some sort of buffers are unavoidable thus we could 
7485         count them in the theoretical best case
7486
7487 2004-11-26  Havoc Pennington  <hp@redhat.com>
7488
7489         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7490         where I was trying to cache one too many messages
7491
7492 2004-11-26  Havoc Pennington  <hp@redhat.com>
7493
7494         * dbus/dbus-message.c: reimplement message cache as an array which 
7495         makes the cache about twice as fast and saves maybe 1.5% overall
7496
7497 2004-11-26  Havoc Pennington  <hp@redhat.com>
7498
7499         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7500         message cache lock here
7501
7502 2004-11-26  Havoc Pennington  <hp@redhat.com>
7503
7504         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7505         the "char byte_order" next to each other to save 4 bytes
7506         (dbus_message_new_empty_header): reduce preallocation, since the
7507         message cache should achieve a similar effect
7508         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7509         message cache that keeps a few DBusMessage around in a pool,
7510         another 8% speedup or so.
7511
7512         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7513
7514 2004-11-25  Havoc Pennington  <hp@redhat.com>
7515
7516         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7517         to write, without reading or blocking, try it before the poll()
7518         and skip the poll() if nothing remains to write. This is about a
7519         3% speedup in the echo client/server
7520
7521 2004-11-25  Havoc Pennington  <hp@redhat.com>
7522
7523         The primary change here is to always write() once before adding
7524         the write watch, which gives us about a 10% performance increase.
7525         
7526         * dbus/dbus-transport-unix.c: a number of modifications to cope
7527         with removing messages_pending
7528         (check_write_watch): properly handle
7529         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7530         messages_pending stuff
7531         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7532         AUTHENTICATED cases
7533         (unix_handle_watch): after writing, see if the write watch can be
7534         removed
7535         (unix_do_iteration): assert that write_watch/read_watch are
7536         non-NULL rather than testing that they aren't, since they 
7537         aren't allowed to be NULL. check_write_watch() at the end so 
7538         we add the watch if we did not finish writing (e.g. got EAGAIN)
7539
7540         * dbus/dbus-transport-protected.h: remove messages_pending call,
7541         since it resulted in too much inefficient watch adding/removing; 
7542         instead we now require that the transport user does an iteration 
7543         after queueing outgoing messages, and after trying the first
7544         write() we add a write watch if we got EAGAIN or exceeded our 
7545         max bytes to write per iteration setting
7546
7547         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7548         function
7549
7550         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7551         freed and then accessed, valgrind flagged this bug, fix it
7552
7553         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7554         as the last valid field plus 1, where really it is equal to the
7555         last valid field. Corrects some message corruption issues.
7556
7557         * dbus/dbus-mainloop.c: verbosity changes
7558
7559         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7560         instead of aborting in one of the test codepaths
7561
7562         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7563         caused not printing the pid ever again if a verbose was missing
7564         the newline at the end
7565         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7566
7567         * dbus/dbus-connection.c: verbosity changes; 
7568         (dbus_connection_has_messages_to_send): new function
7569         (_dbus_connection_message_sent): no longer call transport->messages_pending
7570         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7571         try to write() immediately, so we can avoid the write watch. This
7572         is the core purpose of this patchset
7573         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7574         dump the outgoing message queue, so nobody will get confused
7575         trying to send them or thinking stuff is pending to be sent
7576
7577         * bus/test.c: verbosity changes
7578
7579         * bus/driver.c: verbosity/assertion changes
7580
7581         * bus/dispatch.c: a bunch of little tweaks to get it working again
7582         because this patchset changes when/where you need to block.
7583
7584 2004-11-23  Havoc Pennington  <hp@redhat.com>
7585
7586         * test/glib/test-profile.c: modify to accept a plain_sockets
7587         argument in which case it will bench plain sockets instead of
7588         libdbus, for comparison purposes.
7589
7590 2004-11-22  Havoc Pennington  <hp@redhat.com>
7591
7592         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7593         threads for more time, so sysprof can get a grip on it.
7594
7595         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7596         pointless variable
7597
7598 2004-11-13  Havoc Pennington  <hp@redhat.com>
7599
7600         * test/glib/test-profile.c: fix this thing up a bit
7601
7602         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7603         preallocation sizes by a fair bit; not sure if this will be an
7604         overall performance win or not, but it does reduce reallocs.
7605
7606         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7607         the test hack that forced constant realloc if asserts are
7608         disabled, so we can profile sanely. Sprinkle in some
7609         _DBUS_UNLIKELY() which are probably pointless, but before I
7610         noticed the real performance problem I put them in.
7611         (_dbus_string_validate_utf8): micro-optimize this thing a little
7612         bit, though callgrind says it didn't help; then special-case
7613         ascii, which did help a lot; then be sure we detect nul bytes as
7614         invalid, which is a bugfix.
7615         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7616         superstition; use memset to nul the padding instead of a manual
7617         loop.
7618         (_dbus_string_get_length): inline this as a
7619         macro; it showed up in the profile because it's used for loop
7620         tests and so forth
7621
7622 2004-11-10  Colin Walters  <walters@verbum.org>
7623
7624         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7625         for extra paranoia.
7626
7627 2004-11-09  Colin Walters  <walters@verbum.org>
7628
7629         * dbus/dbus-string.c (_dbus_string_get_length): New
7630         function, writes DBusString to C buffer.
7631
7632         * dbus/dbus-string.h: Prototype it.
7633
7634         * dbus/dbus-message.c (dbus_message_type_to_string): New
7635         function, converts message type into C string.
7636
7637         * dbus/dbus-message.h: Prototype it.
7638
7639         * bus/selinux.c (bus_selinux_check): Take source pid,
7640         target pid, and audit data.  Pass audit data to
7641         avc_has_perm.
7642         (log_audit_callback): New function, appends extra
7643         audit information.
7644         (bus_selinux_allows_acquire_service): Also take
7645         service name, add it to audit data.
7646         (bus_selinux_allows_send): Also take message
7647         type, interface, method member, error name,
7648         and destination, and add them to audit data.
7649         (log_cb): Initialize func_audit.
7650         
7651         * bus/selinux.h (bus_selinux_allows_acquire_service)
7652         (bus_selinux_allows_send): Update prototypes 
7653
7654         * bus/services.c (bus_registry_acquire_service): Pass
7655         service name to bus_selinux_allows_acquire_service.
7656
7657         * bus/bus.c (bus_context_check_security_policy): Pass
7658         additional audit data.  Move assignment of dest
7659         to its own line.
7660
7661 2004-11-07  Colin Walters  <walters@verbum.org>
7662
7663         * dbus/dbus-transport-unix.c (do_authentication): Always
7664         initialize auth_completed.
7665         
7666 2004-11-07  Colin Walters  <walters@verbum.org>
7667
7668         * bus/bus.c (load_config): Break into three
7669         separate functions: process_config_first_time_only,
7670         process_config_every_time, and process_config_postinit.
7671         (process_config_every_time): Move call of
7672         bus_registry_set_service_context_table into
7673         process_config_postinit.
7674         (process_config_postinit): New function, does
7675         any processing that needs to happen late
7676         in initialization (and also on reload).
7677         (bus_context_new): Instead of calling load_config,
7678         open config parser here and call process_config_first_time_only
7679         and process_config_every_time directly.  Later, after
7680         we have forked but before changing UID,
7681         invoke bus_selinux_full_init, and then call
7682         process_config_postinit.
7683         (bus_context_reload_config): As in bus_context_new,
7684         load parse file inside here, and call process_config_every_time
7685         and process_config_postinit.
7686
7687         * bus/services.h, bus/services.c
7688         (bus_registry_set_service_context_table): Rename
7689         from bus_registry_set_sid_table.  Take string hash from config
7690         parser, and convert them here into SIDs.
7691
7692         * bus/config-parser.c (struct BusConfigParser): Have
7693         config parser only store a mapping of service->context
7694         string.
7695         (merge_service_context_hash): New function.
7696         (merge_included): Merge context string hashes instead
7697         of using bus_selinux_id_table_union.
7698         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7699         simply create a new string hash.
7700         (bus_config_parser_unref): Unref it.
7701         (start_selinux_child): Simply insert strings into hash,
7702         don't call bus_selinux_id_table_copy_over.
7703
7704         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7705         (bus_selinux_id_table_copy_over): Delete.
7706
7707 2004-11-03  Colin Walters  <walters@verbum.org>
7708
7709         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7710         variables.
7711         
7712 2004-11-03  Colin Walters  <walters@verbum.org>
7713
7714         * bus/test-main.c (test_pre_hook): Fix test logic,
7715         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7716
7717 2004-11-02  Colin Walters  <walters@redhat.com>
7718
7719         * bus/selinux.c (bus_selinux_init): Split into two functions,
7720         bus_selinux_pre_init and bus_selinux_post_init.
7721         (bus_selinux_pre_init): Just determine whether SELinux is
7722         enabled.
7723         (bus_selinux_post_init): Do everything else.
7724
7725         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7726         config file, and bus_selinux_post_init after.  This ensures that
7727         we don't lose the policyreload notification thread that
7728         bus_selinux_init created before forking previously.
7729         
7730         * bus/test-main.c (test_pre_hook): Update for split.
7731
7732 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7733
7734         Patch from Johan Fischer <linux@fischaz.com>
7735         
7736         * mono/doc/Makefile.am (install-data-local): Added directory
7737         install for DESTDIR
7738
7739 2004-10-29  Colin Walters  <walters@redhat.com>
7740
7741         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7742         parameter for fd to write pid to.       
7743
7744         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7745         
7746         * bus/bus.c (bus_context_new): Pass print_pid_fd
7747         to _dbus_become_daemon (bug #1720)
7748
7749 2004-10-29  Colin Walters  <walters@redhat.com>
7750
7751         Patch from Ed Catmur <ed@catmur.co.uk>
7752
7753         * mono/doc/Makefile.am (install-data-local): Handle
7754         DESTDIR.
7755
7756 2004-10-29  Colin Walters  <walters@redhat.com>
7757
7758         * bus/.cvsignore, qt/.cvsignore: Update.
7759
7760 2004-10-29  Colin Walters  <walters@redhat.com>
7761
7762         Patch from Kristof Vansant <de_lupus@pandora.be>
7763
7764         * configure.in: Detect Slackware.
7765         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7766         * bus/rc.messagebus.in: New file.
7767
7768 2004-10-29  Colin Walters  <walters@redhat.com>
7769
7770         * tools/dbus-monitor.c (filter_func): Return
7771         DBUS_HANDLER_RESULT_HANDLED in filter function
7772         for now.  See:
7773         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7774
7775 2004-10-29  Colin Walters  <walters@redhat.com>
7776
7777         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7778
7779         * bus/services.c (bus_registry_acquire_service): 
7780         Correctly retrieve service name from DBusString
7781         for printing.
7782
7783 2004-10-29  Colin Walters  <walters@redhat.com>
7784
7785         * dbus/dbus-glib.h: Update documentation to not
7786         refer to internal APIs.
7787
7788 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7789
7790         * mono/Arguments.cs (GetDBusTypeConstructor):
7791         type.UnderlyingSystemType will return "System.Byte" if you do it
7792         on "byte[]", which is not what we want.  So check the type.IsArray
7793         property and use System.Array instead.
7794
7795 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7796
7797         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7798         the DBusUserInfo structure since this is passed into the function.
7799         This would cause a double free when the function that allocated
7800         the structure would try to free it when an error occured.
7801
7802         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7803         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7804         for service activation to avoid 32bit/64bit parallel install issues
7805
7806 2004-10-21  Colin Walters  <walters@verbum.org>
7807
7808         * AUTHORS: Fix my email address, the @gnu.org one
7809         has been bouncing for some time.  Also add J5.
7810         
7811 2004-10-21  Colin Walters  <walters@verbum.org>
7812
7813         * dbus/dbus-transport-unix.c (do_authentication): Return
7814         authentication status to callers.
7815         (unix_handle_watch): If we completed authentication this round,
7816         don't do another read.  Instead wait until the next iteration,
7817         after we've read any pending data in the auth buffer.
7818         (unix_do_iteration): Ditto.
7819         (unix_handle_watch): Updated for new do_authentication prototype.
7820
7821 2004-10-18  Colin Walters  <walters@verbum.org>
7822
7823         * bus/selinux.c (bus_selinux_enabled): Handle
7824         --disable-selinux case.
7825         
7826 2004-10-18  Colin Walters  <walters@verbum.org>
7827
7828         * bus/selinux.h: Add bus_selinux_enabled.
7829         
7830         * bus/selinux.c (bus_selinux_enabled): Implement it.
7831         
7832         * bus/config-parser.c (struct include): Add
7833         if_selinux_enabled member.
7834         (start_busconfig_child): Parse if_selinux_enabled
7835         attribute for include.
7836         (bus_config_parser_content): Handle it.
7837
7838         * bus/session.conf.in, bus/system.conf.in: Add
7839         inclusion of context mapping to default config files;
7840         conditional on SELinux being enabled.
7841         
7842         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7843         
7844         * test/data/invalid-config-files/badselinux-1.conf, 
7845         test/data/invalid-config-files/badselinux-2.conf:
7846         Test files for bad syntax.
7847         
7848 2004-10-17  Colin Walters  <walters@verbum.org>
7849
7850         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7851         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7852         format specifier mismatches.
7853
7854 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7855
7856         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7857         format string.
7858
7859         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7860         pointer (bug #1540, Leonardo Boiko).
7861
7862 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7863
7864         * mono/BusDriver.cs: Changed BusDriver struct to remove
7865         the ServiceCreated and ServiceDeleted events and replace them
7866         with the new ServiceOwnerChanged event.
7867
7868         * mono/example/BusListener.cs: Added a new example program,
7869         which listens for and reports any ServiceOwnerChanged events
7870         on the bus driver.
7871
7872         * mono/example/Makefile.am (DESTDIR): Build changes for the
7873         new BusListener.cs example.
7874
7875 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7876
7877         * bus/signals.c (bus_match_rule_parse): validate the components of
7878         match rules (bug #1439).
7879
7880         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7881
7882 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7883
7884         * doc/dbus-specification.xml: document ServiceOwnerChanged
7885         signal.
7886         
7887         * bus/driver.c, bus/driver.h, bus/services.c: Use
7888         ServiceOwnerChanged signal instead of ServiceCreated and
7889         ServiceDeleted.
7890         
7891         * bus/dispatch.c: update testcase for the new signal.
7892
7893 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7894
7895         Patch from Nat Friedman <nat@novell.com>
7896
7897         * mono/Makefile.am: A number of small build fixes to allow "make
7898         distcheck" to succeed.
7899
7900         * mono/example/Makefile.am: "make distcheck" fixes.
7901
7902         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7903         key in @srcdir@.
7904
7905         * test/Makefile.am: "make distcheck" fixes.
7906
7907 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7908
7909         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7910
7911         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7912
7913         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7914         messages after the first one (bug #1389).
7915         
7916         * bus/dispatch.c (check_double_hello_message): add a test case for
7917         the double hello message bug.
7918         (check_existent_service_activation): fix check of spawning error.
7919         
7920 2004-09-16  David Zeuthen  <david@fubar.dk>
7921
7922         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7923
7924 2004-09-12  David Zeuthen  <david@fubar.dk>
7925
7926         Patch from Kay Sievers <kay.sievers@vrfy.org>
7927
7928         * bus/bus.c (bus_context_new):
7929         * bus/bus.h:
7930         * bus/main.c (usage)
7931         (main):
7932         Add commandline option --nofork to override configuration file
7933         setting.
7934
7935 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7936
7937         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7938         compilers don't like it (bug #974).
7939
7940 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7941
7942         * qt/connection.*: Applied patch by Jérôme Lodewyck
7943         <lodewyck@clipper.ens.fr> to integrate an existing
7944         connection into the Qt eventloop
7945
7946 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7947
7948         * mono/BusDriver.cs: Added.  This is a class for interacting with
7949         the org.freedesktop.DBus service.
7950
7951         * mono/Message.cs: Added a mechanism to expose the message that is
7952         currently being dispatched via the static Message.Current
7953         property.  Added Message.Sender and Message.Destination
7954         properties.
7955
7956         * mono/Handler.cs: Expose the dispatched message via
7957         Message.Current when handling method calls.
7958
7959         * mono/Service.cs: Expose the dispatched message via
7960         Message.Current when handling signal emissions.
7961         
7962         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7963         Connection.BaseService property.
7964
7965 2004-08-28  Havoc Pennington  <hp@redhat.com>
7966
7967         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7968
7969         More fixes from Steve Grubb
7970         
7971         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7972         (_dbus_listen_tcp_socket): fix fd leak
7973
7974         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7975         EINTR to a bit lower in the code
7976
7977 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7978
7979         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7980         TRUE if we are inquiring about the existence of the built-in
7981         org.freedesktop.DBus service.
7982
7983 2004-08-25  John Palmieri  <johnp@redhat.com>
7984         * bus/config-parser.c:
7985         (struct PolicyType): Add POLICY_CONSOLE
7986         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7987         (start_busconfig_child): Sets up console element when
7988         <policy at_console=""> is encountered in a policy file
7989         (append_rule_from_element): Convert console elements to console
7990         rules.
7991
7992         * bus/policy.c: 
7993         (bus_policy_create_client_policy): Add console rules to the client
7994         policy based on if the client is at the console
7995         (bus_policy_append_console_rule): New function for adding a
7996         console rule to a policy
7997         (bus_policy_merge): Handle console rule merging
7998
7999         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8000         where we check for console user files
8001         
8002         * dbus/dbus-sysdeps.c:
8003         (_dbus_file_exists): New function which checks if the given
8004         file exists
8005         (_dbus_user_at_console): New function which does the system
8006         specific process of checking if the user is at the console
8007
8008         * dbus/dbus-userdb.c:
8009         (_dbus_is_console_user): New function converts a UID to user name
8010         and then calls the system specific _dbus_user_at_console to 
8011         see if the user is at the console and therefor a console user
8012
8013 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8014
8015         * bus/config-parser.c (set_limit):
8016         * bus/dbus-daemon-1.1.in:
8017         * test/data/valid-config-files/many-rules.conf: set the
8018         max_match_rules_per_connection limt from the config file. 
8019
8020         * doc/busconfig.dtd: update the DTD.
8021
8022         * bus/driver.c: remove some unused variables.
8023
8024 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8025
8026         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8027         it's been replaced by dbus_g_bus_get
8028
8029 2004-08-23  Colin Walters  <walters@redhat.com>
8030
8031         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8032
8033         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8034
8035         * bus/selinux.c: Create a thread for policy reload notification.
8036         (bus_selinux_get_policy_root): Implement.
8037
8038         * bus/config-parser.c (start_busconfig_child)
8039         (bus_config_parser_content): Support SELinux-root relative
8040         inclusion.
8041
8042         * configure.in <HAVE_SELINUX>: Add -lpthread.
8043         
8044         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8045         (test_post_hook): Move memory checking into here.
8046         (test_pre_hook, test_post_hook): Move SELinux checks in
8047         here, but conditional on a DBUS_TEST_SELINUX environment
8048         variable.  Unfortunately we can't run the SELinux checks
8049         as a normal user, since they won't have any permissions
8050         for /selinux.  So this will have to be tested manually
8051         for now, until we have virtualization for most of
8052         libselinux.
8053         
8054 2004-08-23  Havoc Pennington  <hp@redhat.com>
8055
8056         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8057         drop supplementary groups, suggested by Steve Grubb
8058
8059 2004-08-20  Colin Walters  <walters@redhat.com>
8060
8061         * bus/config-parser.c (start_busconfig_child): Remove some unused
8062         variables.
8063         
8064         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8065         warning.
8066
8067 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8068
8069         * configure.in: If --enable-mono is passed in, if we can't find
8070         mono error out.
8071
8072         * mono/Makefile.am: Use /gacutil to install assemblies into the
8073         GAC and not /root.
8074
8075 2004-08-12  Havoc Pennington  <hp@redhat.com>
8076
8077         * NEWS: update for 0.22
8078
8079         * configure.in: release 0.22
8080
8081 2004-08-11  Colin Walters  <walters@redhat.com>
8082
8083         * tools/dbus-send.c (main, usage): Add --reply-timeout
8084         argument.
8085
8086 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8087
8088         * bus/bus.c (process_config_first_time_only): get rid of an unused
8089         DBusError that was causing a memoy leak (bug #989).
8090
8091         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8092         fix compilation on Solaris/Forte C (bug #974)
8093
8094         * bus/main.c (main): plug two minuscule memleaks.
8095
8096 2004-08-10  Havoc Pennington  <hp@redhat.com>
8097
8098         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8099
8100 2004-08-09  Havoc Pennington  <hp@redhat.com>
8101
8102         * COPYING: switch to Academic Free License version 2.1 instead of
8103         2.0, to resolve complaints about patent termination clause.
8104
8105 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8106
8107         * README: added documentation for the --enable-python 
8108         configure switch.
8109
8110 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8111
8112         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8113         _unref in the SELinux support.
8114
8115         * doc/busconfig.dtd: update DTD for SELinux support.
8116
8117         * bus/config-loader-libxml.c: fix error handler and parser
8118         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8119
8120         * configure.in: remove the warning about libxml2.
8121
8122         * dbus/dbus-bus.c: silence doxygen warning.
8123
8124 2004-07-31  Colin Walters  <walters@redhat.com>
8125
8126         * configure.in: Move #error in SELinux check to its own line.
8127
8128 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8129
8130         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8131         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8132         dbus_error_set.
8133
8134         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8135         broken by the change in the _SET_OOM macros.
8136
8137 2004-07-31  Colin Walters  <walters@redhat.com>
8138
8139         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8140         BUS_SET_OOM.
8141
8142 2004-07-31  Colin Walters  <walters@redhat.com>
8143
8144         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8145         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8146         AC_MSG_CHECKING.
8147
8148 2004-07-24  Havoc Pennington  <hp@redhat.com>
8149
8150         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8151
8152         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8153         functionality
8154
8155         * configure.in: add --enable-selinux
8156         
8157         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8158
8159         * bus/main.c (main): initialize and shut down selinux
8160
8161         * bus/connection.c: store SELinux ID on each connection, to avoid 
8162         repeated getting of the string context and converting it into 
8163         an ID
8164
8165         * bus/bus.c (bus_context_get_policy): new accessor, though it
8166         isn't used
8167         (bus_context_check_security_policy): check whether the security
8168         context of sender connection can send to the security context of
8169         recipient connection
8170
8171         * bus/config-parser.c: add parsing for <selinux> and <associate>
8172         
8173         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8174         implement dbus_connection_get_unix_fd()
8175
8176         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8177         function, used by the selinux stuff
8178         
8179 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8180
8181         * bus/config-loader-libxml.c: complete the implementation of
8182         libxml backend for config file loader. Doesn't work with full OOM
8183         test yet. 
8184         
8185         * configure.in: change error when selecting libxml into a warning.
8186         
8187         * test/data/invalid-config-files: add two non-well-formed XML
8188         files. 
8189         
8190         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8191         
8192         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8193         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8194         be necessary to read all the buffer. (bug #894)
8195
8196         * bus/activation.c (bus_activation_activate_service): fix a
8197         potential assertion failure (bug #896). Small optimization in the
8198         case of auto-activation messages.
8199
8200         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8201         add test case for byte-through-vararg bug (#901). patch by Kimmo
8202         Hämäläinen. 
8203
8204 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8205
8206         * python/dbus.py:
8207         * python/dbus_bindings.pyx.in:
8208         Add dbus.init_gthreads (), allow emit_signal to pass
8209         arguments to the signal.
8210         
8211 2004-07-24  Havoc Pennington  <hp@redhat.com>
8212
8213         * AUTHORS: add some people, not really comprehensively, let me
8214         know if I missed you
8215
8216 2004-07-24  Havoc Pennington  <hp@redhat.com>
8217
8218         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8219         Owen
8220
8221         * test/Makefile.am (DIST_SUBDIRS): here also
8222
8223 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8224
8225         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8226         breaking build on Solaris, reported by Farhad Saberi on the ML.
8227
8228         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8229         va_arg invocation to account for integer promotion in the case of
8230         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8231
8232         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8233         _dbus_list_get_first_link, not _dbus_list_get_first.
8234
8235         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8236
8237         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8238         handler functions so that the asserts in _dbus_object_subtree_unref
8239         do not fail.
8240
8241         * dbus/dbus-transport-unix.c (do_reading):
8242         _dbus_transport_queue_messages return value is of type
8243         dbus_bool_t, not DBusDispatchStatus.
8244         
8245 2004-07-19  David Zeuthen  <david@fubar.dk>
8246
8247         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8248
8249         * bus/dispatch.c:
8250         (check_get_connection_unix_user): Debug says GetProperty; but the
8251         method is called GetConnectionUnixUser
8252         (check_get_connection_unix_process_id): New function
8253         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8254         also call check_get_connection_unix_process_id()
8255         
8256         * bus/driver.c:
8257         (bus_driver_handle_get_connection_unix_process_id): New function,
8258         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8259         interface
8260         
8261         * dbus/dbus-auth.c:
8262         (handle_server_data_external_mech): Set pid from the credentials
8263         obtained from the socket
8264         
8265         * dbus/dbus-connection.c:
8266         (dbus_connection_get_unix_process_id): New function
8267         
8268         * dbus/dbus-connection.h: 
8269         Add prototype for dbus_connection_get_unix_process_id
8270         
8271         * dbus/dbus-transport.c:
8272         (_dbus_transport_get_unix_process_id): New function
8273         
8274         * dbus/dbus-transport.h:
8275         Add prototype for _dbus_transport_get_unix_process_id
8276         
8277 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8278
8279         * dbus/dbus-message.c: Message counter fix, patch by Christian
8280         Hammond <chipx86@gnupdate.org>
8281
8282 2004-07-18  Seth Nickell  <seth@gnome.org>
8283
8284         * python/dbus.py:
8285         * python/dbus_bindings.pyx.in:
8286         * python/tests/test-client.py:
8287
8288         Add dbus.ByteArray and dbus_bindings.ByteArray
8289         types so that byte streams can be passed back.
8290
8291         Give jdahlin the heaps of credit that are so
8292         rightfully his.
8293         
8294 2004-07-12  Seth Nickell  <seth@gnome.org>
8295
8296         * python/dbus.py:
8297
8298         Add message argument to the default object_method_handler
8299         function.
8300         
8301         * python/dbus_bindings.pyx.in:
8302
8303         Automatically return NIL when passed an empty list
8304         (we can't pass back a list since lists are typed
8305         and we don't have any idea what type the the client
8306         intended the list to be... :-( )
8307         
8308 2004-07-10  Seth Nickell  <seth@gnome.org>
8309
8310         * python/examples/Makefile.am:
8311
8312         Fix distcheck breakage caused by new examples.
8313
8314 2004-07-10  Seth Nickell  <seth@gnome.org>
8315
8316         * python/dbus.py:
8317
8318         Add "message" argument to service-side dbus.Object
8319         methods. This will break existing services written
8320         using the python bindings, but will allow extraction
8321         of all the message information (e.g. who its from).
8322
8323         Add improved "object oriented" signal handling/emission.
8324         
8325         * python/examples/example-service.py:
8326
8327         Nix this example.
8328         
8329         * python/examples/example-signal-emitter.py:
8330         * python/examples/example-signal-recipient.py:
8331
8332         Two new examples that show how to emit and receive
8333         signals using the new APIs.
8334         
8335         * python/examples/example-signals.py:
8336         * python/examples/gconf-proxy-service.py:
8337         * python/examples/gconf-proxy-service2.py:
8338
8339         Add "message" argument to service methods.
8340
8341 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8342
8343         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8344         * dbus/bus.c (dbus_bus_get_unix_user)
8345         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8346         method of org.freedesktop.DBus interface.
8347
8348         * bus/dispatch.c: test case
8349
8350 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8351
8352         * python/Makefile.am: switched include directory from glib/ to dbus/
8353         since dbus-glib.h moved
8354  
8355 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8356
8357         * configure.in: prevent building the gcj stuff and libxml loader
8358         since they are broken.
8359
8360 2004-06-20  Havoc Pennington  <hp@redhat.com>
8361
8362         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8363         codes from the dbus error names
8364         
8365         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8366         as dbus/dbus-glib.h and that breakage is now visible due to 
8367         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8368         
8369         * glib/dbus-glib.h: s/gproxy/g_proxy/
8370
8371         * dbus/dbus-shared.h: new header to hold stuff shared with
8372         binding APIs
8373         
8374         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8375         than dbus-errors.h
8376
8377         * glib/dbus-glib.h (dbus_set_g_error): move to
8378         dbus-glib-lowlevel.h
8379
8380         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8381         of stuff to enable this
8382
8383         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8384
8385         * a bunch of other changes with the same basic "separate glib 
8386         bindings from dbus.h" theme
8387         
8388 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8389
8390         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8391
8392         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8393
8394 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8395
8396         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8397         the reply value of the ServiceExists message.
8398
8399 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8400
8401         * python/dbus_bindings.pyx.in: No longer need to parse path
8402         elements and pass them as arrays of strings.  The C API now
8403         accepts plain path strings.
8404         (_build_parsed_path): removed 
8405
8406 2004-06-07  Havoc Pennington  <hp@redhat.com>
8407
8408         * doc/TODO: remove auto-activation item since it's done; sort
8409         items by importance/milestone
8410
8411 2004-06-07  Havoc Pennington  <hp@redhat.com>
8412
8413         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8414         random signature when using REQUIRED_FIELDS (this hack won't work
8415         in the long term)
8416
8417         * dbus/dbus-message.c: change the signature to be a header field,
8418         instead of message->signature special-case string. Incremental
8419         step forward. Then we can fix up code to send the signature in the
8420         message, then fix up code to validate said signature, then fix up
8421         code to not put the typecodes inline, etc.
8422         (load_one_message): don't make up the signature after the fact
8423         (decode_header_data): require signature field for the known
8424         message types
8425
8426         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8427
8428         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8429
8430 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8431
8432         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8433
8434         * mono/Handler.cs: Updated to follow new path argument for
8435         (un-)registering objects.
8436
8437         * mono/example/Makefile.am:
8438         * mono/Makefile.am:
8439         * configure.in: Bumped required version for mono and use new -pkg
8440         syntax for deps
8441
8442 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8443
8444         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8445         registration functions take the path argument as char* instead of
8446         char**.
8447
8448         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8449         split off the path decompostion part of
8450         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8451         warnings. 
8452
8453         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8454         
8455 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8456  
8457         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8458         machine approach.  A state is implemented as a function that
8459         handles incoming events as specified for that state.
8460         
8461         * doc/dbus-specification.xml: Update auth protocol state machine
8462         specification to match implementation.  Remove some leftover
8463         base64 examples.
8464
8465 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8466
8467         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8468         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8469         quiet doxygen.
8470
8471         * Doxyfile.in: remove deprecated options.
8472
8473         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8474         glib/test-thread.h, glib/test-thread-client.c,
8475         glib/test-thread-server.c, glib/test-profile.c,
8476         glib/test-dbus-glib.c: remove these unused files.
8477
8478 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8479
8480         * dbus/dbus-object-tree.c
8481         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8482         non-fallback handlers (bug #684).
8483         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8484         (find_subtree_recurse): report wether the returned subtree is an
8485         exact match or a "fallback" match higher up in the tree.
8486         (object_tree_test_iteration): update test case.
8487
8488 2004-06-01  Seth Nickell  <seth@gnome.org>
8489
8490         * python/dbus_bindings.pyx.in:
8491         * python/tests/test-client.py:
8492
8493         Round off basic type support. Add dicts (yay!), and 
8494         remaining array types.
8495
8496         Make MessageIter more general so it works for dicts too.
8497
8498         Mark all loop variables as C integers.
8499         
8500 2004-05-31  Havoc Pennington  <hp@redhat.com>
8501
8502         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8503         "in" before "out"
8504
8505         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8506
8507         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8508         option that runs the tests, and start filling in some code
8509         including for starters just dumping the interfaces to stdout
8510
8511         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8512
8513         * test/data/valid-introspection-files/lots-of-types.xml: test of
8514         an example introspection file
8515
8516         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8517         "node" (I think...)
8518
8519 2004-05-31  Seth Nickell  <seth@gnome.org>
8520
8521         * python/dbus_bindings.pyx.in:
8522         * python/tests/test-client.py:
8523
8524         Test Suite: 1
8525         Python Bindings: 0
8526
8527         Fix string array memory trashing bug... oops...
8528
8529 2004-05-30  Seth Nickell  <seth@gnome.org>
8530
8531         * python/dbus.py:
8532
8533         Add a nicer-but-less-flexible alternate API for handling 
8534         calls to virtual objects in dbus.ObjectTree.
8535
8536         Screw up the argument order to the dbus.Object constructor
8537         for consistency with dbus.ObjectTree (and to make dbus_methods
8538         optional for future extension)
8539         
8540         * python/examples/Makefile.am:
8541         * python/examples/gconf-proxy-service.py:
8542         * python/examples/gconf-proxy-service2.py:
8543
8544         Alternate implementation of gconf-proxy-service using the
8545         nicer dbus.ObjectTree API.
8546         
8547         * python/examples/example-service.py:
8548         * python/tests/test-server.py
8549
8550         Reverse the argument order to deal with dbus.Object constructor
8551         changes.
8552         
8553 2004-05-30  Seth Nickell  <seth@gnome.org>
8554
8555         * python/examples/example-client.py:
8556         * python/examples/example-service.py:
8557
8558         Take it back. Lists seem to work but they're broken
8559         in the test suite. Make the base examples use
8560         lists (works fine).
8561
8562 2004-05-30  Seth Nickell  <seth@gnome.org>
8563
8564         * python/dbus_bindings.pyx.in:
8565         * python/tests/test-client.py:
8566
8567         Add some more tests and fix errors that crop up.
8568         Unfortunately, currently it seems like marshalling
8569         and unmarshalling of lists is completely broken :-(
8570
8571 2004-05-30  Seth Nickell  <seth@gnome.org>
8572
8573         * python/dbus_bindings.pyx.in:
8574
8575         Add support for ObjectPath type.
8576
8577         * python/dbus.py:
8578
8579         Refactor message handling code to a common function.
8580         
8581         * python/tests/test-client.py:
8582         * python/tests/test-server.py:
8583
8584         Add tests that check to make sure values of all types
8585         can be echoed from a service w/o mangling.
8586         
8587 2004-05-29  Seth Nickell  <seth@gnome.org>
8588
8589         * python/dbus.py:
8590
8591         Add ObjectTree class which allows implementation
8592         of trees of "virtual" objects. Basically the python
8593         wrapper for "register_fallback".
8594         
8595         * python/examples/Makefile.am
8596         * python/examples/gconf-proxy-client.py:
8597         * python/examples/gconf-proxy-service.py:
8598
8599         Implement a simple GConf proxy service that supports
8600         get/set on string and int GConf keys using the ObjectTree.
8601         
8602 2004-05-29  Seth Nickell  <seth@gnome.org>
8603
8604         * python/dbus.py:
8605         * python/examples/example-client.py:
8606         * python/examples/example-service.py:
8607         * python/examples/list-system-services.py:
8608
8609         Add SessionBus, SystemBus and ActivationBus classes
8610         so you don't need to know the special little BUS_TYPE
8611         flag.
8612         
8613 2004-05-29  Havoc Pennington  <hp@redhat.com>
8614
8615         * bus/config-parser.c (process_test_valid_subdir): temporarily
8616         stop testing config parser OOM handling, since expat has issues
8617         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8618
8619         * bus/dbus-daemon-1.1.in: change requested_reply to
8620         send_requested_reply/receive_requested_reply so we can send the
8621         replies, not just receive them.
8622
8623         * bus/config-parser.c: parse the new
8624         send_requested_reply/receive_requested_reply
8625
8626         * bus/policy.c (bus_client_policy_check_can_send): add
8627         requested_reply argument and use it
8628
8629         * bus/bus.c (bus_context_check_security_policy): pass through
8630         requested_reply status to message send check
8631
8632         * bus/system.conf.in: adapt to requested_reply change
8633         
8634 2004-05-28  Havoc Pennington  <hp@redhat.com>
8635
8636         * test/glib/test-service-glib.c (main): remove unused variable
8637
8638         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8639
8640         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8641         from the enum, no longer in use.
8642
8643         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8644         works right.
8645
8646         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8647         whether error_name passed in is a valid error name.
8648
8649 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8650
8651         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8652         OBJECT_PATH and OBJECT_PATH_ARRAY
8653
8654 2004-05-28  Seth Nickell  <seth@gnome.org>
8655
8656         * python/examples/Makefile.am:
8657
8658         Forget to add Makefile.am. Do not pass go.
8659
8660 2004-05-28  Michael Meeks  <michael@ximian.com>
8661
8662         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8663         fix no int64 case.
8664
8665         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8666
8667         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8668         (_dbus_message_iter_get_basic_type_array): impl.
8669         drastically simplify ~all relevant _get methods to use these.
8670         (_dbus_message_iter_append_basic_array),
8671         (dbus_message_iter_append_basic): impl
8672         drastically simplify ~all relevant _append methods to use these.
8673
8674         * dbus/dbus-message-builder.c (parse_basic_type) 
8675         (parse_basic_array, lookup_basic_type): impl.
8676         (_dbus_message_data_load): prune scads of duplicate /
8677         cut & paste coding.
8678
8679         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8680         (_dbus_demarshal_basic_type): implement,
8681         (demarshal_and_validate_len/arg): beef up debug.
8682         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8683
8684 2004-05-27  Seth Nickell  <seth@gnome.org>
8685
8686         * configure.in:
8687         * python/Makefile.am:
8688
8689         Include the example python apps in the tarball.
8690         
8691         * python/examples/list-system-services.py
8692
8693         Add a python new example that fetches the list of services
8694         from the system bus.
8695         
8696 2004-05-27  Seth Nickell  <seth@gnome.org>
8697
8698         * python/dbus.py:
8699         * python/dbus_bindings.pyx.in:
8700
8701         Fix failure to notify that a signal was not handled,
8702         resulted in hung functions.
8703         
8704 2004-05-25  Colin Walters  <walters@redhat.com>
8705
8706         * tools/dbus-monitor.c (main): Monitor all types of messages.
8707
8708 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8709
8710         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8711         which unregisters the object path and disposes the handler.
8712
8713 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8714  
8715         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8716          
8717         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8718         operands to && so we call dbus_message_iter_next () for the last
8719         argument also.
8720
8721 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8722
8723         * dbus/dbus-object-tree.c
8724         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8725         children even if the requested path isn't registered.
8726         (object_tree_test_iteration): test object_tree_list_registered.
8727
8728         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8729         it to 0.
8730         
8731 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8732
8733         * doc/TODO: Remove resolved items.
8734
8735         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8736         field.
8737         
8738         * bus/connection.c (bus_connections_expect_reply): Enforce the
8739         per-connection limit on pending replies.
8740         
8741         Patch from Jon Trowbridge <trow@ximian.com>:
8742  
8743         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8744         up a watch that triggers a config reload when one end of the pipe
8745         becomes readable.
8746         (signal_handler): Instead of doing the config reload in our SIGHUP
8747         handler, just write to the reload pipe and let the associated
8748         watch handle the reload when control returns to the main loop.
8749  
8750         * bus/driver.c (bus_driver_handle_reload_config): Added.
8751         Implements a ReloadConfig method for requesting a configuration
8752         file reload via the bus driver.
8753  
8754 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8755
8756         * HACKING: Updated release instructions concerning the wiki page.
8757
8758 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8759
8760         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8761         filter against auth->allowed_mechs; we only add allowed mechs in
8762         record_mechanisms().
8763  
8764         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8765         ALLOWED_MECHS to auth-script format so we can set the list of
8766         allowed mechanisms.
8767  
8768         * data/auth/client-out-of-mechanisms.auth-script: New test to
8769         check client disconnects when it is out of mechanisms to try.
8770  
8771         * dbus/dbus-auth.c (process_command): Remove check for lines
8772         longer that 1 MB; we only buffer up maximum 16 kB.
8773  
8774         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8775         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8776         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8777         assume there might be unused bytes.
8778  
8779         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8780         client-out-of-mechs, it is handled in process_reject(). Move check
8781         for max failures to send_rejected(), as it's a server-only thing.
8782
8783         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8784         send_auth(), send_data(), send_rejected(), send_error(),
8785         send_ok(), send_begin() and send_cancel().
8786
8787 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8788
8789         Remove base64 encoding, replace with hex encoding. Original patch
8790         from trow@ximian.com, added error handling.
8791
8792         * dbus/dbus-string.c (_dbus_string_base64_encode)
8793         (_dbus_string_base64_decode): Remove.
8794         (_dbus_string_hex_decode): Add end_return argument so we can
8795         distinguish between OOM and invalid hex encoding.
8796         (_dbus_string_test): Remove base64 tests and add test case for
8797         invalid hex.
8798
8799         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8800         Replace base64 with hex.
8801
8802         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8803         for invalid hex encoded data in auth protocol.
8804
8805 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8806
8807         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8808         leak.
8809
8810 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8811
8812         * mono/dbus-sharp.dll.config.in: Added for GAC
8813         * mono/dbus-sharp.snk: Added for GAC
8814         * mono/Assembly.cs.in: Added for GAC
8815         * mono/Makefile.am: Changes for GAC installation        
8816         * configure.in: Added refs for dbus-sharp.dll.config.in and
8817         Assembly.cs.in. More fixes for mono testing
8818         * mono/example/Makefile.am: Changed var to CSC
8819         * Makefile.am: Changed flag name to DBUS_USE_CSC
8820
8821 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8822
8823         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8824         * mono/doc/*: Added documentation framework
8825         * configure.in: Added monodoc check
8826         * README: Added description of mono configure flags
8827
8828 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8829
8830         * doc/dbus-specification.xml: Added a "Required" column to the 
8831         header fields table and changed the "zero or more" verbage in
8832         the above paragraph to read "The header must contain the required 
8833         named header fields and zero or more of the optional named header 
8834         fields".
8835         * test/data/invalid-messages/*.message: Added the required PATH 
8836         named header field to the tests so that they don't fail on 
8837         'Missing path field'
8838
8839 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8840
8841         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8842         the stack by implicitly defining variable and parameter types and
8843         removing the hack of defining C pointers as python objects and later
8844         casting them.
8845
8846 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8847
8848         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8849
8850 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8851
8852         * mono/DBusType/Dict.cs: Handle empty dicts
8853         * mono/DBusType/Array.cs: Handle empty arrays
8854         * mono/Arguments.cs: Handle empty arguments
8855
8856 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8857
8858         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8859         field
8860
8861 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8862
8863         * test/data/valid-messages/standard-*.message: Update message
8864         test scripts to new header field names.
8865
8866 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8867
8868         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8869         overflow to times_we_did_each_thing array which would chop off the
8870         first character of the failure_dir string. Increased the size of
8871         the array to 7 to reflect the number of random mutation functions
8872         we have.
8873
8874 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8875
8876         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8877         unix_server->watch here, it is unreffed in disconnect.
8878         (_dbus_server_new_for_tcp_socket): convert NULL host to
8879         "localhost" here so we don't append NULL to address.
8880         
8881         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8882         various addresses, including tcp with no explicit host.
8883
8884 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8885
8886         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8887         fix incorrect setting of .name_offset in the HeaderField (it was
8888         off by two bytes, positioned right after the name and typecode)
8889
8890         * bus/bus.c (bus_context_new, bus_context_unref): test before
8891         calling dbus_server_free_data_slot and _dbus_user_database_unref
8892         in case of an error.
8893
8894         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8895         by libdbus-gtool.
8896
8897 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8898
8899         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8900         _dbus_poll() instead of select().
8901
8902 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8903
8904         * bus/main.c (signal_handler): Reload the configuration files
8905         on SIGHUP.
8906         (main): Set up our SIGHUP handler.
8907
8908         * bus/bus.c (struct BusContext): Store the config file, user and
8909         fork flag in the BusContext.
8910         (process_config_first_time_only): Added.  Contains the code
8911         (previously in bus_context_new) for setting up the BusContext from
8912         the BusConfigParser that should only be run the first time the
8913         config files are read.
8914         (process_config_every_time): Added.  Contains the code (previously
8915         in bus_context_new) for setting up the BusContext from the
8916         BusConfigParser that should be run every time the config files are
8917         read.
8918         (load_config): Added.  Builds a BusConfigParser from the config
8919         files and passes the resulting structure off to
8920         process_config_first_time_only (assuming this is the first time)
8921         and process_config_every_time.
8922         (bus_context_new): All of the config-related code has been moved
8923         to process_config_first_time_only and process_config_every_time.
8924         Now this function just does the non-config-related initializations
8925         and calls load_config.
8926         (bus_context_reload_config): Added.
8927
8928 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8929
8930         * bus/driver.c (bus_driver_handle_get_service_owner):
8931         implement a GetServiceOwner method.
8932         * doc/dbus-specification.xml: document it.
8933         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8934         
8935         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8936         implement, using the bus GetServiceOwner method.
8937
8938         * test/glib/test-dbus-glib.c:
8939         use dbus_gproxy_new_for_service_owner so that we can receive the
8940         signal. 
8941
8942 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8943
8944         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8945         dbus/dbus-message.c, dbus/dbus-protocol.h
8946         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8947
8948         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8949         dbus/dbus-message.c, dbus/dbus-protocol.h
8950         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8951
8952         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8953         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8954         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8955
8956         * doc/dbus-specification.xml (Header Fields Table):
8957         s/SERVICE/DESTINATION
8958         s/SENDER_SERVICE/SENDER
8959
8960
8961 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8962
8963         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8964         a few seconds.
8965
8966 2004-04-13  Michael Meeks  <michael@ximian.com>
8967
8968         * glib/dbus-gobject.c (handle_introspect): split out
8969         (introspect_properties): this.
8970         (handle_introspect): implement this.
8971
8972         * test/glib/Makefile.am: use the absolute path so the bus
8973         daemon's chdir ("/") doesn't kill us dead.
8974
8975         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8976
8977 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8978
8979         * bus/config-parser.c (struct BusConfigParser): Added
8980         included_files field.
8981         (seen_include): Added.  Checks whether or not a file has already
8982         been included by any parent BusConfigParser.
8983         (bus_config_parser_new): Copy the parent's included_files.
8984         (include_file): Track which files have been included, and fail on
8985         circular inclusions.
8986         (process_test_valid_subdir): Changed printf to report if we are
8987         testing valid or invalid conf files.
8988         (all_are_equiv): Changed printf to be a bit clearer about
8989         what we are actually doing.
8990         (bus_config_parser_test): Test invalid configuration files.
8991
8992 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8993
8994         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8995         argument.  If non-null, the newly-constructed BusConfigParser will
8996         be initialized with the parent's BusLimits instead of the default
8997         values.
8998         (include_file): When including a config file, pass in
8999         the current parser as the parent and then copy the BusLimits
9000         from the included BusConfigParser pack to the current parser.
9001         (process_test_valid_subdir): Renamed from process_test_subdir.
9002         (process_test_equiv_subdir): Added.  Walks through a directory,
9003         descending into each subdirectory and loading the config files
9004         it finds there.  If any subdirectory contains two config files
9005         that don't produce identical BusConfigParser structs, fail.
9006         For now, the BusConfigParser's BusPolicies are not compared.
9007         (bus_config_parser_test): Call both process_test_valid_subdir and
9008         process_test_equiv_subdir.
9009
9010         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9011         argument and pass it along to the call to bus_config_parser_new.
9012         Also made a few small changes to allow this code to compile.
9013
9014         * bus/config-loader-expat.c (bus_config_load): Take a parent
9015         argument and pass it along to the call to bus_config_parser_new.
9016
9017         * bus/bus.c (bus_context_new): Load the config file
9018         with a NULL parent argument.
9019
9020 2004-03-29  Michael Meeks  <michael@ximian.com>
9021
9022         * glib/dbus-gobject.c (introspect_properties): split
9023         out, fix mangled 'while' flow control.
9024         (introspect_signals): implement.
9025         (handle_introspect): update.
9026
9027 2004-03-29  Michael Meeks  <michael@ximian.com>
9028
9029         * glib/dbus-gobject.c (set_object_property): split out / 
9030         re-work, use the property type, and not the message type(!)
9031         (get_object_property): ditto.
9032
9033         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9034         (dbus_gvalue_marshal): make this code re-usable, needed
9035         for signals too, also on both proxy and server side.
9036         Re-write for more efficiency / readability.
9037
9038 2004-03-29  Michael Meeks  <michael@ximian.com>
9039
9040         * dbus/dbus-message.c
9041         (dbus_message_new_error_printf): impl.
9042
9043         * dbus/dbus-connection.c
9044         (dbus_connection_unregister_object_path): fix warning.
9045
9046         * configure.in: fix no-mono-installed situation.
9047
9048 2004-03-27  Havoc Pennington  <hp@redhat.com>
9049
9050         Patch from Timo Teräs:
9051         
9052         * tools/dbus-send.c (main): if --print-reply, assume type is
9053         method call; support boolean type args
9054         
9055         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9056         bunch of memleak and logic bugs
9057         
9058 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9059
9060         * mono/Arguments.cs:
9061         * mono/Introspector.cs:
9062         * mono/Handler.cs:
9063         * mono/InterfaceProxy.cs:
9064         * mono/Message.cs
9065         * mono/ProxyBuilder.cs:
9066         * mono/Service.cs:
9067         Added InterfaceProxy class to avoid building proxies for every
9068         object.
9069
9070         * dbus-message.h:
9071         * dbus-message.c (dbus_message_append_args_valist)
9072         (dbus_message_iter_get_object_path)
9073         (dbus_message_iter_get_object_path_array)
9074         (dbus_message_iter_append_object_path)
9075         (dbus_message_iter_append_object_path_array):
9076         Added object_path iter functions to handle OBJECT_PATH arguments
9077         
9078 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9079
9080         First checkin of mono bindings.
9081         * configure.in:
9082         * Makefile.am:
9083         Build stuff for the bindings
9084         * dbus-sharp.pc.in: Added for pkgconfig
9085         
9086 2004-03-21  Havoc Pennington  <hp@redhat.com>
9087
9088         * test/test-service.c (main): remove debug spew
9089
9090 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9091
9092         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9093         arrays
9094
9095         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9096         (dbus_message_iter_init_array_iterator)
9097         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9098         indicate whether the iterator is empty
9099
9100         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9101         warnings
9102
9103 2004-03-19  Havoc Pennington  <hp@redhat.com>
9104
9105         * NEWS: 0.21 updates
9106
9107         * configure.in: 0.21
9108
9109         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9110         
9111         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9112         you don't need pyrex to make dist
9113
9114         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9115         sources; run moc
9116         
9117 2004-03-18  Richard Hult  <richard@imendio.com>
9118
9119         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9120         (dbus_message_set_auto_activation): Add doxygen docs.
9121
9122 2004-03-16  Richard Hult  <richard@imendio.com>
9123
9124         * bus/activation.c: (bus_activation_service_created),
9125         (bus_activation_send_pending_auto_activation_messages),
9126         (bus_activation_activate_service):
9127         * bus/activation.h:
9128         * bus/dispatch.c: (bus_dispatch),
9129         (check_nonexistent_service_auto_activation),
9130         (check_service_auto_activated),
9131         (check_segfault_service_auto_activation),
9132         (check_existent_service_auto_activation), (bus_dispatch_test):
9133         * bus/driver.c: (bus_driver_handle_activate_service):
9134         * bus/services.c: (bus_registry_acquire_service):
9135         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9136         (dbus_message_get_auto_activation):
9137         * dbus/dbus-message.h:
9138         * dbus/dbus-protocol.h: Implement auto-activation.
9139         
9140         * doc/dbus-specification.xml: Add auto-activation to the spec.
9141
9142 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9143
9144         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9145         fix a bug with CUSTOM types.
9146
9147         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9148         a unit test for this bug (used to fail).
9149
9150 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9151
9152         * bus/activation.c:
9153         (babysitter_watch_callback): notify all pending activations waiting for
9154           the same exec that the activation failed.
9155         (bus_activation_activate_service): shortcut the activation if we 
9156           already waiting for the same executable to start up.
9157
9158 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9159
9160         * bus/activation.c: 
9161         - Added service file reloading. 
9162           Each service files directory is kept in an hash table in 
9163           BusActivation and each BusActivationEntry knows what .service-file it
9164           was read from. So when you try to activate a service the bus will 
9165           check if it's been updated, removed or if new .service-files has 
9166           been installed.
9167         - Test code at the bottom for the service file reloading.
9168         * bus/test-main.c: (main):
9169         * bus/test.h:
9170         - added service reloading test.
9171         * dbus/dbus-sysdeps.c: 
9172         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9173
9174 2004-03-08  Michael Meeks  <michael@ximian.com>
9175
9176         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9177         bail immediately if disconnected, to avoid busy loop.
9178
9179         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9180         cleanup cut/paste/inefficiency.
9181
9182 2004-03-01  David Zeuthen  <david@fubar.dk>
9183
9184         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9185         bug where args were used twice. This bug resulted in a segfault
9186         on a Debian/PPC system when starting the messagebus daemon. Include
9187         dbus-sysdeps.h for DBUS_VA_COPY
9188
9189         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9190
9191         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9192         appropriate va_copy implementation. From GLib
9193         
9194 2004-02-24  Joe Shaw  <joe@ximian.com>
9195
9196         * bus/services.c (bus_registry_acquire_service): We need to pass
9197         in the service name to dbus_set_error() to prevent a crash.
9198
9199 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9200
9201         * AUTHORS: Reveal my True identity.
9202
9203 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9204
9205         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9206         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9207
9208 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9209
9210         * doc/TODO: Added not about better error check of configuration files.
9211
9212 2003-12-02  Richard Hult  <richard@imendio.com>
9213
9214         * Update AFL version to 2.0 throughout the source files to reflect
9215         the update that was done a while ago.
9216
9217 2003-12-02  Richard Hult  <richard@imendio.com>
9218
9219         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9220         wrote_dict_key to FALSE on the iter that the dict is appended to,
9221         just like when appending other types. Fixes a bug where a dict
9222         couldn't be put inside a dict.
9223         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9224         (message_iter_test, _dbus_message_test): Add test case for dict
9225         inside dict.
9226
9227 2003-12-01  David Zeuthen  <david@fubar.dk>
9228
9229         * python/dbus.py: Add the actual message when calling the reciever
9230         of a signal such that parameters can be inspected. Add the method
9231         remove_signal_receiver
9232         
9233 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9234
9235         * bus/*.[ch]:
9236         * dbus/*.[ch]:
9237         * glib/*.[ch]: Made ref functions return the pointer
9238
9239 2003-11-25  Zack Rusin  <zack@kde.org>
9240
9241         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9242
9243         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9244         wrappers,
9245
9246         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9247         the Integrator and to better fit with the server,
9248
9249 2003-11-24  Zack Rusin  <zack@kde.org>
9250
9251         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9252         the integrator handles it now
9253
9254         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9255         since QTimer wasn't really meant to be used the way DBusTimeout is
9256
9257 2003-11-24  Zack Rusin  <zack@kde.org>
9258
9259         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9260         Integrator class which integrates D-BUS with the Qt event loop,
9261
9262         * qt/connection.h, qt/connection.cpp: Move all the code which
9263         was dealing with D-BUS integration to the Integrator class,
9264         and start using Integrator,
9265
9266 2003-11-23  Zack Rusin  <zack@kde.org>
9267
9268         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9269         wrapper
9270
9271         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9272         switching namespaces to DBusQt, reworking the class,
9273
9274         * Makefile.cvs: switching dependencies so that it matches KDE 
9275         schematics,
9276         
9277         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9278         the library
9279
9280 2003-11-19  Havoc Pennington  <hp@redhat.com>
9281
9282         * NEWS: update
9283
9284         * configure.in: bump version to 0.20
9285
9286         * configure.in (have_qt): add yet another place to look for qt
9287         (someone hand trolltech a .pc file...)
9288
9289 2003-11-01  Havoc Pennington  <hp@redhat.com>
9290
9291         * doc/dbus-specification.xml: add state machine docs on the auth
9292         protocol; just a first draft, I'm sure it's wrong.      
9293
9294 2003-10-28  David Zeuthen  <david@fubar.dk>
9295
9296         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9297         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9298         
9299 2003-10-28  Havoc Pennington  <hp@redhat.com>
9300
9301         * dbus/dbus-message.c (get_next_field): delete unused function
9302
9303 2003-10-28  Havoc Pennington  <hp@redhat.com>
9304
9305         * bus/expirelist.c (do_expiration_with_current_time): detect
9306         failure of the expire_func due to OOM
9307
9308         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9309
9310         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9311         NoReply error that's now created by the bus when the service exits
9312
9313 2003-10-28  Havoc Pennington  <hp@redhat.com>
9314
9315         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9316         tests for set_path, set_interface, set_member, etc.
9317
9318         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9319
9320         * dbus/dbus-message.c (set_string_field): always just delete and
9321         re-append the field; accept NULL for deletion
9322         (re_align_fields_recurse): reimplement
9323         
9324 2003-10-26  Havoc Pennington  <hp@redhat.com>
9325
9326         * dbus/dbus-connection.c: fix docs to properly describe the
9327         disconnected message
9328         (_dbus_connection_notify_disconnected): remove this function; 
9329         we can't synchronously add the disconnected message, we have to 
9330         do it after we've queued any remaining real messages
9331         (_dbus_connection_get_dispatch_status_unlocked): queue the
9332         disconnect message only if the transport has finished queueing all
9333         its real messages and is disconnected.
9334         (dbus_connection_disconnect): update the dispatch status here
9335
9336 2003-10-22  Havoc Pennington  <hp@redhat.com>
9337
9338         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9339
9340         * bus/connection.c (bus_transaction_send_from_driver): set the
9341         destination to the connection's base service
9342
9343 2003-10-20  Havoc Pennington  <hp@redhat.com>
9344
9345         hmm, make check is currently not passing.
9346         
9347         * doc/dbus-specification.xml: add requirement that custom type
9348         names follow the same rules as interface names.
9349
9350         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9351         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9352         'map'
9353
9354         * doc/dbus-specification.xml: update type codes to match
9355         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9356         CUSTOM. Add type OBJECT_PATH to the spec.
9357
9358 2003-10-17  Havoc Pennington  <hp@redhat.com>
9359
9360         * bus/driver.c (create_unique_client_name): use "." as separator
9361         in base service names instead of '-'
9362
9363         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9364         byte at the end of the string
9365
9366         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9367         optimization macros since string validation seems to be a slow
9368         point.
9369         
9370         * doc/dbus-specification.xml: restrict valid
9371         service/interface/member/error names. Add test suite code for the
9372         name validation.
9373
9374         * dbus/dbus-string.c: limit service/interface/member/error names 
9375         to [0-9][A-Z][a-z]_
9376
9377         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9378         format arg to verbose spew
9379
9380         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9381         memory, return instead of g_error
9382
9383         * test/test-service.c (path_message_func): support emitting a
9384         signal on request
9385
9386         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9387         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9388         assuming the activation bus was the session bus so that services
9389         started manually will still register.
9390         (init_connections_unlocked): fix so that in OOM situation we get
9391         the same semantics when retrying the function
9392         
9393         * test/test-service.c (main): change to use path registration, to
9394         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9395         than DBUS_BUS_SESSION
9396
9397 2003-10-16  Havoc Pennington  <hp@redhat.com>
9398
9399         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9400
9401         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9402         coverage of the tests
9403         (coverage-report.txt): don't move the .da and .bbg files around
9404
9405 2003-10-16  Havoc Pennington  <hp@redhat.com>
9406
9407         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9408         to put there
9409
9410 2003-10-16  Havoc Pennington  <hp@redhat.com>
9411
9412         * bus/connection.c (bus_pending_reply_expired): either cancel or
9413         execute, not both
9414         (bus_connections_check_reply): use unlink, not remove_link, as we
9415         don't want to free the link; fixes double free mess
9416
9417         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9418         where no reply was received
9419
9420         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9421         fix a refcount leak
9422
9423         * bus/signals.c (match_rule_matches): add special cases for the
9424         bus driver, so you can match on sender/destination for it.
9425
9426         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9427         DBUS_PRINT_BACKTRACE is set
9428
9429         * dbus/dbus-internals.c: add pid to assertion failure messages
9430
9431         * dbus/dbus-connection.c: add message type code to the debug spew
9432
9433         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9434         sender=foo not service=foo
9435
9436         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9437         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9438         DBUS_ACTIVATION_ADDRESS instead
9439
9440         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9441         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9442
9443         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9444         context struct
9445
9446         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9447         (dbus_message_iter_get_object_path_array): new function (half
9448         finished, disabled for the moment)
9449         
9450         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9451         DBUS_MESSAGE_TYPE_ERROR
9452
9453         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9454         avoid redirecting stderr to /dev/null
9455         (babysit): close stdin if not doing the "exit_with_session" thing
9456
9457         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9458         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9459         stdout/stdin, so things don't get confused
9460         
9461         * bus/system.conf.in: fix to allow replies, I modified .conf
9462         instead of .conf.in again.
9463
9464 2003-10-14  David Zeuthen  <david@fubar.dk>
9465
9466         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9467         argtype to arg_type when raising unknown arg type exception.
9468         Changed type list to reflect the changes in dbus-protocol.h so 
9469         the bindings actually work.
9470
9471 2003-10-14  Havoc Pennington  <hp@redhat.com>
9472
9473         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9474         to have a bug keeping it from outputting the .da files sometimes
9475         (string_get_string): don't append garbage nul bytes to the string.
9476
9477 2003-10-15  Seth Nickell  <seth@gnome.org>
9478
9479         * python/Makefile.am:
9480
9481         Include dbus_h_wrapper.h in the dist tarball.
9482
9483 2003-10-14  Havoc Pennington  <hp@redhat.com>
9484
9485         * bus/bus.c (bus_context_check_security_policy): revamp this to
9486         work more sanely with new policy-based requested reply setup
9487
9488         * bus/connection.c (bus_transaction_send_from_driver): set bus
9489         driver messages as no reply
9490
9491         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9492         requested_reply attribute on allow/deny rules
9493
9494         * bus/system.conf: add <allow requested_reply="true"/>
9495
9496         * bus/driver.c (bus_driver_handle_message): fix check for replies
9497         sent to the bus driver, which was backward. How did this ever work
9498         at all though? I think I'm missing something.
9499
9500         * dbus/dbus-message.c (decode_header_data): require error and
9501         method return messages to have a reply serial field to be valid
9502         (_dbus_message_loader_queue_messages): break up this function;
9503         validate that reply serial and plain serial are nonzero; 
9504         clean up the OOM/error handling.
9505         (get_uint_field): don't return -1 from this
9506         (dbus_message_create_header): fix signed/unsigned bug
9507
9508         * bus/connection.c (bus_connections_expect_reply): save serial of
9509         the incoming message, not reply serial
9510
9511 2003-10-14  Havoc Pennington  <hp@redhat.com>
9512
9513         * bus/connection.c: implement pending reply tracking using
9514         BusExpireList
9515
9516         * bus/bus.c (bus_context_check_security_policy): verify that a
9517         reply is pending in order to allow a reply to be sent. Deny 
9518         messages of unknown type.
9519
9520         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9521
9522         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9523         (bus_context_get_reply_timeout): new
9524
9525 2003-10-13  Seth Nickell  <seth@gnome.org>
9526
9527         * python/Makefile.am:
9528
9529         Pass "make distcheck": remove a couple files from DIST_FILES
9530         that weren't included in the final version.
9531
9532 2003-10-12  Havoc Pennington  <hp@pobox.com>
9533
9534         Added test code that 1) starts an actual bus daemon and 2) uses
9535         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9536         more testing possible, but this is the basic framework.
9537         
9538         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9539         empty proxy lists from the proxy list hash
9540
9541         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9542         couple of return_if_fail checks
9543
9544         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9545         to allocate, so everything is cleared to NULL as it should be.
9546
9547         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9548         source as data to dbus_connection_set_timeout_functions() as the 
9549         timeout functions expected
9550
9551         * test/glib/run-test.sh: add a little script to start up a message
9552         bus and run tests using it
9553
9554         * tools/dbus-launch.1: updates
9555
9556         * tools/dbus-launch.c (main): add --config-file option
9557
9558         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9559         that could never be reached.
9560
9561         * dbus/dbus-message.c (dbus_message_new_method_return) 
9562         (dbus_message_new_error, dbus_message_new_signal): set the
9563         no-reply-expected flag on all these. Redundant, but may
9564         as well be consistent.
9565
9566 2003-10-11  Havoc Pennington  <hp@pobox.com>
9567
9568         * test/decode-gcov.c (function_solve_graph): make broken block
9569         graph a nonfatal error since it seems to be broken. Need to debug
9570         this.
9571
9572         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9573         can't just check type > INVALID < LAST anymore
9574
9575         * dbus/dbus-message.c (dbus_message_get_signature): new function
9576         (dbus_message_has_signature): new function
9577         (struct DBusMessage): add signature field (right now it isn't sent
9578         over the wire, just generated on the fly)
9579         (dbus_message_copy): copy the signature, and init strings to
9580         proper length to avoid some reallocs
9581         (dbus_message_iter_init_array_iterator): return void, since it
9582         can't fail
9583         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9584         (_dbus_message_loader_queue_messages): add silly temporary hack to
9585         fill in message->signature on load
9586
9587         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9588         characters, so they are relatively human-readable.
9589
9590 2003-10-11  Havoc Pennington  <hp@pobox.com>
9591
9592         * dbus/dbus-message.c (_dbus_message_test): add more test
9593         coverage, but #if 0 for now since they uncover a bug 
9594         not fixed yet; I think in re_align_field_recurse()
9595         (re_align_field_recurse): add FIXME about broken assertion
9596
9597         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9598
9599         * bus/connection.c: share a couple code bits with expirelist.c
9600
9601         * bus/expirelist.h, bus/expirelist.c: implement a generic
9602         expire-items-after-N-seconds facility, was going to share between
9603         expiring connections and replies, decided not to use for expiring
9604         connections for now.
9605
9606         * COPYING: include AFL 2.0 (still need to change all the file headers)
9607
9608 2003-10-09  Havoc Pennington  <hp@redhat.com>
9609
9610         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9611         gcc 3.3. Not that we do anything about it yet.
9612
9613         * bus/signals.c (bus_match_rule_parse): impose max length on the
9614         match rule text
9615
9616         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9617
9618 2003-10-09  Havoc Pennington  <hp@redhat.com>
9619
9620         Make matching rules theoretically work (add parser).
9621         
9622         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9623         the case where destination is explicitly specified as bus driver
9624         and someone else is eavesdropping.
9625         
9626         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9627         definition of eavesdropping and assertion
9628
9629         * tools/dbus-send.c (main): use dbus_message_type_from_string
9630
9631         * bus/signals.c (bus_match_rule_parse): implement
9632
9633         * dbus/dbus-message.c (dbus_message_type_from_string): new
9634
9635         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9636
9637 2003-10-02  Havoc Pennington  <hp@pobox.com>
9638
9639         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9640         dbus_gproxy_oneway_call
9641
9642         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9643         (dbus_server_setup_with_g_main): fix to allow calling them more
9644         than once on the same args
9645         (dbus_bus_get_with_g_main): new function
9646
9647 2003-10-02  Havoc Pennington  <hp@redhat.com>
9648
9649         * doc/dbus-tutorial.xml: write some stuff
9650
9651 2003-09-29  Havoc Pennington  <hp@pobox.com>
9652
9653         * configure.in: split checks for Doxygen from XML docs, check for
9654         xmlto
9655
9656         * doc/Makefile.am: XML-ify all the docs, and add a blank
9657         dbus-tutorial.xml
9658
9659 2003-09-29  Havoc Pennington  <hp@pobox.com>
9660
9661         * Merge dbus-object-names branch. To see the entire patch 
9662         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9663         it's huuuuge though.
9664         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9665         
9666 2003-09-28  Havoc Pennington  <hp@pobox.com>
9667
9668         * HACKING: update to reflect new server
9669
9670 2003-09-26  Seth Nickell  <seth@gnome.org>
9671
9672         * python/dbus.py:
9673         * python/examples/example-signals.py:
9674
9675         Start implementing some notions of signals. The API
9676         is really terrible, but they sort of work (with the
9677         exception of being able to filter by service, and to
9678         transmit signals *as* a particular service). Need to
9679         figure out how to make messages come from the service
9680         we registered :-(
9681         
9682         * python/dbus_bindings.pyx.in:
9683
9684         Removed duplicate message_handler callbacks.
9685         
9686 2003-09-25  Havoc Pennington  <hp@redhat.com>
9687
9688         * bus/session.conf.in: fix my mess
9689
9690 2003-09-25  Havoc Pennington  <hp@pobox.com>
9691
9692         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9693
9694 2003-09-25  Seth Nickell  <seth@gnome.org>
9695
9696         * python/examples/example-service.py:
9697
9698         Johan notices complete wrong code in example-service, but
9699         completely wrong in a way that works exactly the same (!).
9700         Johan is confused, how could this possibly work? Example
9701         code fails to serve purpose of making things clear.
9702         Seth fixes.
9703
9704 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9705
9706         * doc/dbus-specification.sgml: don't require header fields
9707         to be 4-byte aligned and specify that fields should be
9708         distinguished from padding by the fact that zero is not
9709         a valid field name.
9710         
9711         * doc/TODO: remove re-alignment item and add item to doc
9712         the OBJECT_PATH type.
9713         
9714         * dbus/dbus-message.c:
9715         (HeaderField): rename the original member to value_offset
9716         and introduce a name_offset member to keep track of where
9717         the field actually begins.
9718         (adjust_field_offsets): remove.
9719         (append_int_field), (append_uint_field),
9720         (append_string_field): don't align the start of the header
9721         field to a 4-byte boundary.
9722         (get_next_field): impl finding the next marhsalled field
9723         after a given field.
9724         (re_align_field_recurse): impl re-aligning a number of
9725         already marshalled fields.
9726         (delete_field): impl deleting a field of any type and
9727         re-aligning any following fields.
9728         (delete_int_or_uint_field), (delete_string_field): remove.
9729         (set_int_field), (set_uint_field): no need to re-check
9730         that we have the correct type for the field.
9731         (set_string_field): ditto and impl re-aligning any
9732         following fields.
9733         (decode_header_data): update to take into account that
9734         the fields aren't 4-byte aligned any more and the new
9735         way to distinguish padding from header fields. Also,
9736         don't exit when there is too much header padding.
9737         (process_test_subdir): print the directory.
9738         (_dbus_message_test): add test to make sure a following
9739         field is re-aligned correctly after field deletion.
9740         
9741         * dbus/dbus-string.[ch]:
9742         (_dbus_string_insert_bytes): rename from insert_byte and
9743         allow the insert of multiple bytes.
9744         (_dbus_string_test): test inserting multiple bytes.
9745
9746         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9747         warning note to docs about having to re-align any
9748         marshalled values following the string.
9749         
9750         * dbus/dbus-message-builder.c:
9751         (append_string_field), (_dbus_message_data_load):
9752         don't align the header field.
9753         
9754         * dbus/dbus-auth.c: (process_test_subdir): print the
9755         directory.
9756         
9757         * test/break-loader.c: (randomly_add_one_byte): upd. for
9758         insert_byte change.
9759         
9760         * test/data/invalid-messages/bad-header-field-alignment.message:
9761         new test case.
9762         
9763         * test/data/valid-messages/unknown-header-field.message: shove
9764         a dict in the unknown field.
9765
9766 2003-09-25  Seth Nickell  <seth@gnome.org>
9767
9768         * python/dbus.py:
9769         * python/dbus_bindings.pyx.in:
9770
9771         Handle return values.
9772         
9773         * python/examples/example-client.py:
9774         * python/examples/example-service.py:
9775
9776         Pass back return values from the service to the client.
9777         
9778 2003-09-24  Seth Nickell  <seth@gnome.org>
9779
9780         * python/dbus.py:
9781
9782         Connect Object methods (when you are sharing an object) up... pass
9783         in a list of methods to be shared. Sharing all the methods just
9784         worked out too weird. You can now create nice Services over the
9785         DBus in Python. :-)
9786         
9787         * python/dbus_bindings.pyx.in:
9788
9789         Keep references to user_data tuples passed into C functions so 
9790         Python doesn't garbage collect on us.
9791
9792         Implement MethodReturn and Error subclasses of Message for creating
9793         DBusMessage's of those types.
9794         
9795         * python/examples/example-client.py:
9796         * python/examples/example-service.py:
9797
9798         Simple example code showing both how create DBus services and objects,
9799         and how to use them.
9800
9801 2003-09-23  Havoc Pennington  <hp@pobox.com>
9802
9803         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9804
9805 2003-09-23  Havoc Pennington  <hp@redhat.com>
9806
9807         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9808         (dbus_gproxy_disconnect_signal): implement
9809         (dbus_gproxy_manager_remove_signal_match): implement
9810         (dbus_gproxy_manager_add_signal_match): implement
9811         (dbus_gproxy_oneway_call): implement
9812
9813 2003-09-23  Havoc Pennington  <hp@pobox.com>
9814
9815         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9816         subclass. This means dropping the transparent thread safety of the
9817         proxy; you now need a separate proxy per-thread, or your own
9818         locking on the proxy. Probably right anyway.
9819         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9820
9821 2003-09-22  Havoc Pennington  <hp@redhat.com>
9822
9823         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9824
9825 2003-09-21  Seth Nickell  <seth@gnome.org>
9826
9827         First checkin of the Python bindings.
9828         
9829         * python/.cvsignore:
9830         * python/Makefile.am:
9831         * python/dbus_bindings.pyx.in:
9832         * python/dbus_h_wrapper.h:
9833
9834         Pieces for Pyrex to operate on, building a dbus_bindings.so
9835         python module for low-level access to the DBus APIs.
9836         
9837         * python/dbus.py:
9838
9839         High-level Python module for accessing DBus objects.
9840
9841         * configure.in:
9842         * Makefile.am:
9843
9844         Build stuff for the python bindings.
9845
9846         * acinclude.m4:
9847
9848         Extra macro needed for finding the Python C header files.
9849
9850 2003-09-21  Havoc Pennington  <hp@pobox.com>
9851
9852         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9853         implementing the proxy manager, didn't get very far.
9854
9855         * dbus/dbus-bus.c (dbus_bus_add_match): new
9856         (dbus_bus_remove_match): new
9857
9858         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9859         path_name argument; adjust the other not-yet-implemented 
9860         gproxy constructors to be what I think they should be.
9861
9862 2003-09-21  Havoc Pennington  <hp@pobox.com>
9863
9864         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9865         by default for message bus connections.
9866
9867         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9868         exit_on_disconnect flag is set and we process the disconnected
9869         signal.
9870         (dbus_connection_set_exit_on_disconnect): new function
9871
9872 2003-09-21  Havoc Pennington  <hp@pobox.com>
9873
9874         Get matching rules mostly working in the bus; only actually
9875         parsing the rule text remains. However, the client side of
9876         "signal connections" hasn't been started, this patch is only the
9877         bus side.
9878         
9879         * dbus/dispatch.c: fix for the matching rules changes
9880         
9881         * bus/driver.c (bus_driver_handle_remove_match)
9882         (bus_driver_handle_add_match): send an ack reply from these
9883         method calls
9884
9885         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9886         arguments, reported by Seth Nickell
9887
9888         * bus/config-parser.c (append_rule_from_element): support
9889         eavesdrop=true|false attribute on policies so match rules 
9890         can be prevented from snooping on the system bus.
9891
9892         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9893         and "destination" in attribute names; fix some docs bugs; 
9894         add eavesdrop=true|false attribute
9895
9896         * bus/driver.c (bus_driver_handle_add_match)
9897         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9898         messages
9899
9900         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9901         rid of broadcast service concept, signals are just always broadcast
9902
9903         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9904         mostly implement matching rules stuff (currently only exposed as signal
9905         connections)
9906
9907 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9908
9909         * doc/dbus-specification.sgml: Change the header field name
9910         to be an enum and update the rest of the spec to reference
9911         the fields using the conventinal name.
9912
9913         * dbus/dbus-protocol.h: update to reflect the spec.
9914
9915         * doc/TODO: add item to remove the 4 byte alignment requirement.
9916         
9917         * dbus/dbus-message.c: Remove the code to generalise the
9918         header/body length and serial number header fields as named
9919         header fields so we can reference field names using the 
9920         protocol values.
9921         (append_int_field), (append_uint_field), (append_string_field):
9922         Append the field name as a byte rather than four chars.
9923         (delete_int_or_uint_field), (delete_string_field): reflect the
9924         fact that the field name and typecode now occupy 4 bytes instead
9925         of 8.
9926         (decode_string_field), (decode_header_data): update to reflect
9927         protocol changes and move the field specific encoding from
9928         decode_string_field() back into decode_header_data().
9929         
9930         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9931         Add utility to aid debugging.
9932         
9933         * dbus/dbus-message-builder.c:
9934         (append_string_field), (_dbus_message_data_load): Update to
9935         reflect protocol changes; Change the FIELD_NAME directive
9936         to HEADER_FIELD and allow it to take the field's conventional
9937         name rather than the actual value.
9938         
9939         * test/data/*/*.message: Update to use HEADER_FIELD instead
9940         of FIELD_NAME; Always align the header on an 8 byte boundary
9941         *before* updating the header length.
9942
9943 2003-09-15  Havoc Pennington  <hp@pobox.com>
9944
9945         * dbus/dbus-pending-call.c: add the get/set object data
9946         boilerplate as for DBusConnection, etc. Use generic object data
9947         for the notify callback.
9948
9949         * glib/dbus-gparser.c (parse_node): parse child nodes
9950
9951         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9952         
9953         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9954         contain functions shared between the convenience lib and the
9955         installed lib
9956
9957         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9958         -export-symbols-regex to the GLib library
9959
9960         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9961         fix the locking in here, and add a default handler for
9962         Introspect() that just returns sub-nodes.
9963
9964 2003-09-14  Havoc Pennington  <hp@pobox.com>
9965
9966         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9967         rather than gfoo consistent
9968
9969         * glib/dbus-gproxy.h: delete for now, move contents to
9970         dbus-glib.h, because the include files don't work right since we
9971         aren't in the dbus/ subdir.
9972         
9973         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9974         (dbus_gproxy_end_call): finish
9975         (dbus_gproxy_begin_call): finish
9976
9977         * glib/dbus-gmain.c (dbus_set_g_error): new
9978
9979         * glib/dbus-gobject.c (handle_introspect): include information
9980         about child nodes in the introspection
9981
9982         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9983         function to help in implementation of introspection
9984
9985         * dbus/dbus-object-tree.c
9986         (_dbus_object_tree_list_registered_and_unlock): new function
9987
9988 2003-09-12  Havoc Pennington  <hp@pobox.com>
9989
9990         * glib/dbus-gidl.h: add common base class for all the foo_info
9991         types
9992
9993         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9994         similar to kdcop
9995
9996         * test/Makefile.am: try test srcdir -ef . in addition to test
9997         srcdir = ., one of them should work (yeah lame)
9998         
9999         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10000         library
10001         
10002         * glib/dbus-gparser.h: make description_load routines return
10003         NodeInfo* not Parser*
10004
10005         * Makefile.am (SUBDIRS): build test dir after all library dirs
10006
10007         * configure.in: add GTK+ detection
10008
10009 2003-09-07  Havoc Pennington  <hp@pobox.com>
10010
10011         * Make Doxygen contented.
10012
10013 2003-09-07  Havoc Pennington  <hp@pobox.com>
10014
10015         * doc/dbus-specification.sgml: more updates
10016
10017 2003-09-06  Havoc Pennington  <hp@pobox.com>
10018
10019         * doc/dbus-specification.sgml: partial updates
10020
10021         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10022         zillionth time; hopefully I edited the right file this time.
10023
10024         * bus/config-parser.c (append_rule_from_element): support
10025         send_type, send_path, receive_type, receive_path
10026
10027         * bus/policy.c: add message type and path to the list of things
10028         that can be "firewalled"
10029
10030 2003-09-06  Havoc Pennington  <hp@pobox.com>
10031
10032         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10033         (dbus_connection_register_object_path): make this not handle
10034         messages to paths below the given path
10035
10036 2003-09-03  Havoc Pennington  <hp@pobox.com>
10037
10038         * test/glib/Makefile.am: add this with random glib-linked test
10039         programs
10040
10041         * glib/Makefile.am: remove the random test programs from here,
10042         leave only the unit tests
10043
10044         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10045         uscore/javacaps conversion, and fix     
10046         (get_object_property, set_object_property): change to .NET
10047         convention for mapping props to methods, set_FooBar/get_FooBar, 
10048         since one language has such a convention we may as well copy it. 
10049         Plus real methods in either getFooBar or get_foo_bar style won't 
10050         collide with this convention.
10051
10052 2003-09-01  Havoc Pennington  <hp@pobox.com>
10053
10054         * glib/dbus-gparser.c: implement
10055
10056         * glib/dbus-gobject.c: start implementing skeletons support
10057
10058         * configure.in: when disabling checks/assert, also define
10059         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10060
10061 2003-09-01  Havoc Pennington  <hp@pobox.com>
10062
10063         * glib/Makefile.am: rearrange a bunch of files and get "make
10064         check" framework set up
10065
10066 2003-08-31  Havoc Pennington  <hp@pobox.com>
10067
10068         * fix build with --disable-tests
10069
10070 2003-08-30  Havoc Pennington  <hp@pobox.com>
10071
10072         * dbus/dbus-connection.c: purge DBusMessageHandler
10073
10074         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10075         use callbacks everywhere
10076
10077 2003-08-30  Havoc Pennington  <hp@pobox.com>
10078
10079         * test/data/valid-config-files/system.d/test.conf: change to 
10080         root for the user so warnings don't get printed
10081
10082         * dbus/dbus-message.c: add dbus_message_get_path,
10083         dbus_message_set_path
10084         
10085         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10086         dispatching to a path
10087
10088         * dbus/dbus-string.c (_dbus_string_validate_path): add
10089
10090         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10091         (_dbus_marshal_object_path): implement
10092
10093         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10094         to contain the path to the target object
10095         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10096         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10097
10098 2003-08-30  Havoc Pennington  <hp@pobox.com>
10099
10100         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10101
10102 2003-08-29  Havoc Pennington  <hp@pobox.com>
10103
10104         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10105         registered
10106         (struct DBusObjectSubtree): shrink this
10107         a lot, since we may have a lot of them
10108         (_dbus_object_tree_free_all_unlocked): implement
10109         (_dbus_object_tree_dispatch_and_unlock): implement
10110
10111 2003-08-29  Havoc Pennington  <hp@pobox.com>
10112
10113         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10114
10115 2003-08-28  Havoc Pennington  <hp@pobox.com>
10116
10117         purge DBusObjectID
10118         
10119         * dbus/dbus-connection.c: port to no ObjectID, create a
10120         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10121
10122         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10123         everything except UnregisterFunction and MessageFunction
10124         
10125         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10126         add DBUS_TYPE_OBJECT_PATH
10127         
10128         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10129         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10130         path-based object IDs
10131
10132 2003-08-25  Havoc Pennington  <hp@pobox.com>
10133
10134         Just noticed that dbus_message_test is hosed, I wonder when I
10135         broke that. I thought make check was passing earlier...
10136         
10137         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10138         container tree, will replace most of dbus-object-registry
10139
10140         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10141         screwup
10142
10143 2003-08-19  Havoc Pennington  <hp@pobox.com>
10144
10145         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10146         (dbus_message_is_error): fix this function
10147
10148         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10149         match
10150
10151         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10152         reflect clarified man page
10153         (bus_client_policy_check_can_send): ditto
10154         
10155         * bus/session.conf.in: fixup
10156
10157         * bus/system.conf.in: fixup
10158
10159 2003-08-18  Havoc Pennington  <hp@redhat.com>
10160
10161         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10162
10163         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10164         dumb bug created earlier (wrong order of args to
10165         decode_header_data())
10166         
10167         * tools/dbus-send.c: port
10168
10169         * tools/dbus-print-message.c (print_message): port
10170
10171         * test/data/*messages: port all messages over
10172         
10173         * dbus/dbus-message-builder.c: support including 
10174         message type
10175         
10176         * bus/driver.c: port over
10177         
10178         * bus/dispatch.c: port over to new stuff
10179
10180         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10181         rename disconnect signal to "Disconnected"
10182
10183 2003-08-17  Havoc Pennington  <hp@pobox.com>
10184
10185         This doesn't compile yet, but syncing up so I can hack on it from
10186         work. What are branches for if not broken code? ;-)
10187         
10188         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10189         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10190         DBUS_HEADER_FIELD_ERROR_NAME
10191         
10192         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10193         for the interface+member pairs
10194         (string_hash): change to use g_str_hash algorithm
10195         (find_direct_function, find_string_function): refactor these to
10196         share most code.
10197         
10198         * dbus/dbus-message.c: port all of this over to support 
10199         interface/member fields instead of name field
10200
10201         * dbus/dbus-object-registry.c: port over
10202         
10203         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10204         from _dbus_string_validate_name
10205
10206         * bus/dbus-daemon-1.1: change file format for the 
10207         <deny>/<allow> stuff to match new message naming scheme
10208
10209         * bus/policy.c: port over
10210
10211         * bus/config-parser.c: parse new format
10212         
10213 2003-08-16  Havoc Pennington  <hp@pobox.com>
10214
10215         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10216         broken assertion
10217
10218         * glib/dbus-gproxy.c: some hacking
10219
10220 2003-08-15  Havoc Pennington  <hp@redhat.com>
10221
10222         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10223
10224         * dbus/dbus-connection.c
10225         (dbus_connection_send_with_reply_and_block): factor out internals;
10226         change to convert any error replies to DBusError instead of 
10227         returning them as a message
10228
10229 2003-08-15  Havoc Pennington  <hp@pobox.com>
10230
10231         * dbus/dbus-connection.c, 
10232         dbus/dbus-pending-call.c: Finish the pending call stuff
10233
10234 2003-08-14  Havoc Pennington  <hp@redhat.com>
10235
10236         * dbus/dbus-pending-call.c: start on new object that will replace
10237         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10238         replies
10239
10240         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10241         with remote interfaces
10242
10243         * dbus/dbus-gidl.c: do the boring boilerplate in here
10244         
10245 2003-08-12  Havoc Pennington  <hp@pobox.com>
10246
10247         * bus/dispatch.c (bus_dispatch): make this return proper 
10248         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10249
10250         * dbus/dbus-errors.c (dbus_set_error): use
10251         _dbus_string_append_printf_valist
10252
10253         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10254         (_dbus_string_append_printf): new
10255
10256         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10257         UNKNOWN_METHOD
10258
10259         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10260         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10261         message is unhandled.
10262
10263 2003-08-11  Havoc Pennington  <hp@pobox.com>
10264
10265         * bus/test.c (client_disconnect_handler): change to return
10266         HANDLED (would have been REMOVE_MESSAGE)
10267
10268         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10269         HANDLED/NOT_YET_HANDLED instead of
10270         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10271         should be used.
10272
10273 2003-08-10  Havoc Pennington  <hp@pobox.com>
10274
10275         * tools/dbus-send.c (main): add --type argument, for now
10276         supporting only method_call and signal types.
10277
10278         * tools/dbus-print-message.c: print message type
10279
10280         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10281         init connection->objects
10282
10283         * doc/dbus-specification.sgml: fix sgml
10284
10285         * bus/*.c: port over to object-instance API changes
10286
10287         * test/test-service.c: ditto
10288         
10289         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10290         name, we will have to fix up the rest of the code to also handle
10291         this
10292         (dbus_message_new): generic message-creation call
10293         (set_string_field): allow appending name field
10294
10295 2003-08-06  Havoc Pennington  <hp@pobox.com>
10296
10297         * dbus/dbus-object-registry.c: implement signal connection 
10298         and dispatch
10299
10300         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10301
10302         * dbus/dbus-internals.c (_dbus_memdup): new function
10303
10304 2003-08-02  Havoc Pennington  <hp@pobox.com>
10305
10306         * dbus/dbus-message.c (dbus_message_get_no_reply)
10307         (dbus_message_set_no_reply): add these and remove
10308         set_is_error/get_is_error
10309
10310         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10311         remove the ERROR flag, since there's now an ERROR type
10312
10313 2003-08-01  Havoc Pennington  <hp@pobox.com>
10314
10315         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10316         implement
10317
10318         * dbus/dbus-message.c (dbus_message_get_type): new function
10319
10320         * doc/dbus-specification.sgml: add "type" byte to messages
10321
10322 2003-08-01  Havoc Pennington  <hp@pobox.com>
10323
10324         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10325         a message type enum to distinguish kinds of message
10326         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10327         that need not be replied to
10328
10329 2003-08-01  Havoc Pennington  <hp@pobox.com>
10330
10331         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10332         (unpack_8_octets): fix no-64-bit-int bug
10333
10334         * dbus/dbus-object-registry.c (validate_id): validate the 
10335         connection ID bits, not just the instance ID.
10336
10337         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10338         the connection-global 33 bits of the object ID
10339
10340         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10341         object ID in the new way
10342
10343         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10344         define server/client/instance bits.
10345
10346 2003-07-30  Havoc Pennington  <hp@pobox.com>
10347
10348         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10349         build
10350
10351 2003-07-13  Havoc Pennington  <hp@pobox.com>
10352
10353         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10354         fields to DBusObjectVTable and DBusObjectInfo
10355
10356 2003-07-12  Havoc Pennington  <hp@pobox.com>
10357
10358         * dbus/dbus-object-registry.c: implement unit test,
10359         fix bugs discovered in process
10360
10361         * dbus/dbus-connection.c: remove handler_table and
10362         register_handler(), add DBusObjectRegistry usage
10363
10364         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10365         (dbus_object_id_set_null): new functions
10366
10367 2003-07-08  Havoc Pennington  <hp@pobox.com>
10368
10369         * dbus/dbus-object.c: implement some of this
10370
10371         * dbus/dbus-object-registry.c
10372         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10373         param
10374         (_dbus_object_registry_new): handle OOM
10375
10376 2003-07-08  Havoc Pennington  <hp@pobox.com>
10377
10378         * dbus/dbus-object.h: sketch out an API for registering objects
10379         with a connection, that allows us to use as little as 24 bytes
10380         per object and lets application code represent an object in 
10381         any conceivable way.
10382
10383         * dbus/dbus-object-registry.c: implement the hard bits of the
10384         DBusConnection aspect of object API. Not yet wired up.
10385         
10386 2003-07-06  Havoc Pennington  <hp@pobox.com>
10387
10388         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10389         (_dbus_marshal_object_id): new
10390         (_dbus_demarshal_object_id): new
10391         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10392         consolidate identical switch cases. Don't conditionalize handling
10393         of DBUS_TYPE_UINT64, need to handle the type always.
10394         (_dbus_marshal_validate_arg): consolidate identical cases, and
10395         handle DBUS_TYPE_OBJECT_ID
10396
10397         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10398
10399         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10400
10401 2003-09-28  Havoc Pennington  <hp@pobox.com>
10402
10403         * real 0.13 release
10404
10405 2003-09-28  Havoc Pennington  <hp@pobox.com>
10406
10407         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10408         to work with Debian db2html
10409
10410 2003-09-28  Havoc Pennington  <hp@pobox.com>
10411
10412         * configure.in: 0.13
10413
10414         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10415         stylesheet-images for benefit of Debian
10416         
10417         Change back to using filesystem-linked sockets for the system
10418         bus, so only root can create the default system bus address.
10419         
10420         * bus/system.conf.in: change to use
10421         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10422
10423         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10424         from here.
10425
10426         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10427         here, and AC_DEFINE DBUS_SYSTEM_PATH
10428
10429 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10430
10431         * doc/TODO:
10432         * doc/busconfig.dtd:
10433         Add busconfig DTD.
10434         
10435 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10436
10437         * doc/dbus-specification.sgml:
10438         Add activation reply values.
10439         
10440 2003-08-05  Havoc Pennington  <hp@redhat.com>
10441
10442         * configure.in: 0.12
10443
10444 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10445
10446         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10447         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10448         (add_watch), (remove_watch), (create_source):
10449         Refcount fds, fixes some reentrancy issues.
10450         
10451 2003-07-30  Havoc Pennington  <hp@redhat.com>
10452
10453         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10454         bus address to be abstract if we have abstract sockets
10455
10456         * NEWS: update
10457
10458 2003-07-28  Havoc Pennington  <hp@redhat.com>
10459
10460         * bus/messagebus.in: fix to avoid processname/servicename 
10461         confusion, from Michael Kearey
10462         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10463         
10464 2003-07-23  Havoc Pennington  <hp@pobox.com>
10465
10466         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10467         fix from Andy Hanton to remove broken "+1"
10468
10469 2003-07-16  Havoc Pennington  <hp@pobox.com>
10470
10471         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10472         babysitter process, as suggested by Thomas Leonard, so 
10473         an "eval `dbus-launch --exit-with-session`" will actually 
10474         return
10475
10476 2003-07-16  Havoc Pennington  <hp@pobox.com>
10477
10478         * configure.in: print out EXPANDED_* variables in the summary at
10479         the end; clean up the code that computes EXPANDED_ variables and
10480         get the ones using exec_prefix right. Should make things work
10481         when you build without --prefix
10482
10483 2003-06-29  Havoc Pennington  <hp@pobox.com>
10484
10485         * mono/Test.cs (class Test): fire up a main loop and run it
10486
10487         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10488         done once, the app has to do it
10489
10490 2003-06-26  Havoc Pennington  <hp@pobox.com>
10491
10492         * mono/Connection.cs: set up connection with the glib main loop
10493
10494 2003-07-01  Havoc Pennington  <hp@redhat.com>
10495
10496         * doc/dbus-specification.sgml: clarify the format of a type code,
10497         change suggested by Jim Blandy
10498
10499 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10500
10501         * doc/Makefile.am:
10502         * tools/Makefile.am: Don't assume srcdir == builddir.
10503
10504         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10505         the allocated block.
10506         (_dbus_memory_test): New function.
10507         * dbus/dbus-test.h: Add _dbus_memory_test ().
10508         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10509
10510         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10511         of %c%c%c%c.
10512         (dbus_message_new): Remove obsolete @todo.
10513
10514         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10515         (_dbus_marshal_set_uint64): Fix comment.
10516
10517         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10518         hardcode FIELD_REPLY_SERIAL.
10519
10520         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10521         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10522
10523         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10524         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10525
10526 2003-06-24  Havoc Pennington  <hp@pobox.com>
10527
10528         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10529
10530 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10531
10532         * configure.in:
10533         * gcj/.cvsignore:
10534         * gcj/Hello.java:
10535         * gcj/Makefile.am:
10536         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10537         * gcj/org/.cvsignore:
10538         * gcj/org/Makefile.am:
10539         * gcj/org/freedesktop/.cvsignore:
10540         * gcj/org/freedesktop/Makefile.am:
10541         * gcj/org/freedesktop/dbus/.cvsignore:
10542         * gcj/org/freedesktop/dbus/Makefile.am:
10543         * gcj/org/freedesktop/dbus/Message.java: (Message),
10544         (Message.Message):
10545         * gcj/org/freedesktop/dbus/natMessage.cc:
10546         Fix the build system.
10547
10548 2003-06-22  Havoc Pennington  <hp@pobox.com>
10549
10550         * mono/Connection.cs: add more bindings
10551
10552         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10553         more than once.
10554
10555 2003-06-22  Havoc Pennington  <hp@pobox.com>
10556
10557         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10558         Start wrapping more stuff.
10559
10560 2003-06-22  Havoc Pennington  <hp@pobox.com>
10561
10562         * mono/Message.cs: implement Message.Wrap() that ensures we only
10563         have a single C# wrapper per DBusMessage, assuming it works which
10564         it probably doesn't.
10565
10566         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10567         (dbus_message_free_data_slot): new
10568         (dbus_message_set_data): new
10569         (dbus_message_get_data): new
10570
10571 2003-06-22  Havoc Pennington  <hp@pobox.com>
10572
10573         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10574         (_dbus_data_slot_allocator_alloc): rework these to keep a
10575         reference count on each slot and automatically manage a global
10576         slot ID variable passed in by address
10577
10578         * bus/bus.c: convert to new dataslot API
10579
10580         * dbus/dbus-bus.c: convert to new dataslot API
10581
10582         * dbus/dbus-connection.c: convert to new dataslot API
10583
10584         * dbus/dbus-server.c: convert to new dataslot API
10585
10586         * glib/dbus-gmain.c: ditto
10587
10588         * bus/test.c: ditto
10589
10590         * bus/connection.c: ditto
10591
10592 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10593
10594         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10595         after the gcj checks so that the correct configuration tags
10596         will be added to libtool.
10597
10598         * dbus-glib-1.pc.in: No need to specify any includes since
10599         dbus-1.pc.in has those.
10600
10601 2003-06-22  Havoc Pennington  <hp@pobox.com>
10602
10603         * mono/*, gcj/*, configure.in, Makefile.am:
10604         Check in makefiles and subdirs for mono and gcj bindings.
10605         Neither binding actually exists, just trying to get through
10606         all the build and other boring bits.
10607
10608 2003-06-21  Philip Blundell  <philb@gnu.org>
10609
10610         * tools/dbus-monitor.1: Updated.
10611
10612         * tools/dbus-send.1: Likewise.
10613
10614 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10615
10616         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10617         for hangup and error after checking read so we won't discard
10618         pending data if both hangup and read are set.
10619
10620 2003-06-19  Philip Blundell  <philb@gnu.org>
10621
10622         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10623
10624         * tools/dbus-send.c: Accept both --system and --session.
10625
10626         * tools/dbus-monitor.c: Same here.
10627
10628 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10629
10630         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10631         from C++ (Patch by Miloslav Trmac).
10632
10633 2003-06-15  Joe Shaw  <joe@assbarn.com>
10634
10635         * configure.in: Check for socklen_t.
10636
10637         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10638
10639         * test/test-segfault.c: Add #include <sys/time.h>
10640
10641         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10642         dbus-launch needs it.
10643
10644 2003-06-09  Havoc Pennington  <hp@redhat.com>
10645
10646         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10647         SUN_LEN, it breaks abstract socket usage
10648
10649         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10650         starts of lines.
10651
10652 2003-06-04  Havoc Pennington  <hp@pobox.com>
10653
10654         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10655         using unix:abstract=/foo, and when listening in a tmpdir
10656         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10657
10658         * dbus/dbus-transport.c (_dbus_transport_open): support
10659         unix:abstract=/foo
10660
10661         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10662         support abstract sockets
10663
10664         * dbus/dbus-transport-unix.c
10665         (_dbus_transport_new_for_domain_socket): support abstract sockets
10666
10667         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10668         toggle as an argument, implement abstract namespace support
10669         (_dbus_listen_unix_socket): ditto
10670
10671         * configure.in: add --enable-abstract-sockets and implement
10672         a configure check for autodetection of the right value.
10673
10674 2003-06-01  Havoc Pennington  <hp@pobox.com>
10675
10676         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10677         in /tmp (though on Linux this will end up being useless,
10678         when we add abstract namespace support)
10679
10680         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10681         subst'ing it
10682
10683 2003-05-28  Colin Walters  <walters@verbum.org>
10684
10685         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10686
10687 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10688
10689         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10690
10691 2003-05-17  Colin Walters  <walters@gnu.org>
10692
10693         * tools/dbus-send.c: Don't exit with an error code if --help was
10694         passed.  Default to using the session bus instead of the system
10695         one.
10696
10697         * tools/dbus-launch.c: Ditto.
10698
10699         * tools/dbus-monitor.c: Ditto.
10700
10701         * tools/dbus-send.1: Update with new arguments.
10702
10703         * tools/dbus-launch.c: Emit code to export variables.  New
10704         arguments -s and -c to specify shell syntax, and a bit of code to
10705         autodetect syntax.  Also, allow specifying a program to run.
10706
10707         * tools/dbus-launch.1: Update with new arguments.
10708
10709         * tools/dbus-send.1: Ditto.
10710
10711         * tools/dbus-monitor.1: Ditto.
10712
10713 2003-05-17  Havoc Pennington  <hp@pobox.com>
10714
10715         * bus/config-parser.c (merge_included): merge in policies from
10716         child configuration file.
10717
10718         * bus/policy.c (bus_policy_merge): function to merge two policies
10719         together
10720
10721 2003-05-16  Havoc Pennington  <hp@redhat.com>
10722
10723         * dbus/dbus-connection.c: disable verbose lock spew
10724
10725         * tools/dbus-send.c: add --print-reply command line option
10726
10727         * tools/dbus-print-message.h (print_message): new util function
10728         shared by dbus-send and dbus-monitor
10729
10730         * tools/dbus-monitor.c (handler_func): exit on disconnect
10731
10732         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10733         disconnected, don't try to use the read_watch
10734
10735         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10736         so we can find this bug more easily
10737
10738 2003-05-16  Havoc Pennington  <hp@redhat.com>
10739
10740         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10741         NULL as DBusHashTable is annoyingly likely to do.
10742
10743 2003-05-16  Colin Walters  <walters@verbum.org>
10744
10745         * tools/dbus-monitor.c: Add --session argument and usage()
10746         function.
10747
10748         * tools/dbus-monitor.1: Update with new --session arg.
10749
10750         * bus/Makefile.am (install-data-hook): Create
10751         $(libdir)/dbus-1.0/services so that the session bus is happy.
10752
10753 2003-05-15  Havoc Pennington  <hp@redhat.com>
10754
10755         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10756         on non-x86. ifdef's are evil.
10757
10758 2003-05-15  Havoc Pennington  <hp@redhat.com>
10759
10760         * configure.in: 0.11
10761
10762         * NEWS: update
10763
10764         * bus/Makefile.am (initddir): apparently we are supposed to put
10765         init scripts in /etc/rc.d/init.d not /etc/init.d
10766
10767         * bus/Makefile.am: remove the "you must --enable-tests to make
10768         check" as it broke distcheck
10769
10770         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10771
10772 2003-05-13  James Willcox  <jwillcox@gnome.org>
10773
10774         * configure.in:
10775         * bus/activation.c: (bus_activation_service_created),
10776         (bus_activation_activate_service):
10777         * bus/driver.c: (bus_driver_send_service_deleted),
10778         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10779         (bus_driver_send_service_acquired),
10780         (bus_driver_send_welcome_message),
10781         (bus_driver_handle_list_services):
10782         * bus/session.conf.in:
10783         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10784         (dbus_bus_service_exists), (dbus_bus_activate_service):
10785         * dbus/dbus-bus.h:
10786
10787         Add some convenience API which lets you activate a service, and did a
10788         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10789         and dbus_message_get_args()
10790
10791 2003-05-11  Havoc Pennington  <hp@pobox.com>
10792
10793         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10794         calling _dbus_marshal_validate_arg() for every byte in a byte
10795         array, etc.
10796
10797         * dbus/dbus-message-handler.c: use atomic reference counting to
10798         reduce number of locks slightly; the global lock in here sucks
10799
10800         * dbus/dbus-connection.c
10801         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10802         update_dispatch_status that can be called with lock held; then use
10803         in a couple places to reduce locking/unlocking
10804         (dbus_connection_send): hold the lock over the whole function
10805         instead of acquiring it twice.
10806
10807         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10808
10809         * bus/connection.c (bus_connections_setup_connection): fix access
10810         to already-freed memory.
10811
10812         * dbus/dbus-connection.c: keep a little cache of linked list
10813         nodes, to avoid using the global linked list alloc lock in the
10814         normal send-message case. Instead we just use the connection lock
10815         that we already have to take.
10816
10817         * dbus/dbus-list.c (_dbus_list_find_last): new function
10818
10819         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10820         change to use a struct for the atomic type; fix docs,
10821         they return value before increment, not after increment.
10822
10823         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10824         (_dbus_string_append_8_aligned): new functions to try to
10825         microoptimize this operation.
10826         (reallocate_for_length): break this out of set_length(), to
10827         improve profile info, and also so we can consider inlining the
10828         set_length() part.
10829
10830         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10831         strings with some preallocation, cuts down on our calls to realloc
10832         a fair bit. Though if we can get the "move entire string to empty
10833         string" optimization below to kick in here, it would be better.
10834
10835         * dbus/dbus-string.c (_dbus_string_move): just call
10836         _dbus_string_move_len
10837         (_dbus_string_move_len): add a special case for moving
10838         an entire string into an empty string; we can just
10839         swap the string data instead of doing any reallocs.
10840         (_dbus_string_init_preallocated): new function
10841
10842 2003-05-11  Havoc Pennington  <hp@pobox.com>
10843
10844         Write a "test-profile" that does echo client-server with threads;
10845         profile reveals lock contention, memcpy/realloc of buffers, and
10846         UTF-8 validation as hot spots. 20% of lock contention eliminated
10847         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10848         contention is global mempool locks for GList and DBusList.
10849
10850         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10851         x86 implementation
10852
10853         * dbus/dbus-connection.c (struct DBusConnection): use
10854         dbus_atomic_t for the reference count
10855
10856         * dbus/dbus-message.c (struct DBusMessage): declare
10857         dbus_atomic_t values as volatile
10858
10859         * configure.in: code to detect ability to use atomic integer
10860         operations in assembly, from GLib patch
10861
10862         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10863         time, tired of it being wrong in threads and forked processes
10864
10865         * glib/test-profile.c: a little program to bounce messages back
10866         and forth between threads and eat CPU
10867
10868         * dbus/dbus-connection.c: add debug spew macros for debugging
10869         thread locks; include config.h at top; fix deadlock in
10870         dbus_connection_flush()
10871
10872 2003-05-08  Havoc Pennington  <hp@pobox.com>
10873
10874         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10875         data from getting written, and there wasn't a good reason to
10876         use _exit really.
10877
10878         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10879         dbus_verbose lines in test coverage
10880         (main): add list of functions sorted by # of untested blocks
10881         to the coverage report
10882
10883         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10884
10885         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10886
10887         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10888         extend test coverage
10889
10890         * test/data/auth/cancel.auth-script: test canceling an
10891         authentication
10892
10893         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10894         aren't used. in CVS history if we end up needing them.
10895
10896 2003-05-04  Havoc Pennington  <hp@pobox.com>
10897
10898         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10899         unit test
10900
10901         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10902         function, which assumed length was in # of strings, not bytes
10903
10904         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10905         missing coverage
10906
10907         * dbus/dbus-connection.c
10908         (_dbus_connection_queue_received_message): disable function for
10909         now, we are only using it in test mode
10910
10911         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10912         remove a mistaken FIXME
10913
10914 2003-05-04  Havoc Pennington  <hp@pobox.com>
10915
10916         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10917         unlock mutex on successful return, patch from Anders Gustafsson
10918
10919 2003-05-04  Havoc Pennington  <hp@pobox.com>
10920
10921         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10922         Anders Gustafsson
10923
10924 2003-05-04  Havoc Pennington  <hp@pobox.com>
10925
10926         * tools/dbus-launch.c: implement
10927
10928         * bus/main.c (main), bus/bus.c (bus_context_new):
10929         implement --print-pid and --fork
10930
10931 2003-05-03  Havoc Pennington  <hp@redhat.com>
10932
10933         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10934         the address had no value, and add to test suite. Fix and
10935         regression test from Miloslav Trmac
10936
10937 2003-05-03  Havoc Pennington  <hp@pobox.com>
10938
10939         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10940         watch is invalid when handled
10941
10942         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10943         dbus-launch utility to launch the bus from a shell script.  Didn't
10944         actually implement dbus-launch yet, it's just a placeholder still.
10945
10946 2003-05-03  Havoc Pennington  <hp@pobox.com>
10947
10948         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10949         daemon; also documents daemon config file, so replaces
10950         doc/config-file.txt. Corrected some stuff from config-file.txt in
10951         the process of moving it.
10952
10953 2003-05-03  Havoc Pennington  <hp@pobox.com>
10954
10955         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10956         add some man pages
10957
10958 2003-05-03  Colin Walters  <walters@verbum.org>
10959
10960         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10961         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10962
10963         * Makefile.am: Update to use new .pc versioning scheme.
10964
10965 2003-05-02  Havoc Pennington  <hp@redhat.com>
10966
10967         * bus/system.conf.in: allow send/receive to/from message bus
10968         service
10969
10970 2003-04-30  Havoc Pennington  <hp@redhat.com>
10971
10972         * configure.in: print a note when building with unit tests and
10973         without assertions
10974
10975 2003-04-30  Havoc Pennington  <hp@redhat.com>
10976
10977         * Makefile.am: add a check-local that complains if you didn't
10978         configure with --enable-tests
10979
10980 2003-04-29  Havoc Pennington  <hp@redhat.com>
10981
10982         * glib/dbus-gmain.c: docs cleanups
10983
10984         * dbus/dbus-types.h: add docs on int64 types
10985
10986         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10987         public API docs section
10988
10989 2003-04-29  Havoc Pennington  <hp@redhat.com>
10990
10991         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10992         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10993         parallel install API version, not with the D-BUS package version.
10994
10995         * HACKING: move some of README over here
10996
10997         * README: updates, and document API/ABI policy
10998
10999         * configure.in: reindentation
11000
11001 2003-04-29  Havoc Pennington  <hp@redhat.com>
11002
11003         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11004         to use this library" to be sure people have the right
11005         expectations.
11006
11007 2003-04-28  Havoc Pennington  <hp@redhat.com>
11008
11009         * configure.in: add --enable-docs which by default is auto yes if
11010         doxygen and db2html found, no otherwise; but can be forced on/off
11011
11012         * doc/Makefile.am: conditionalize whether to build docs on
11013         --enable-docs
11014
11015 2003-04-28  Havoc Pennington  <hp@redhat.com>
11016
11017         * configure.in: 0.10
11018
11019         * NEWS: update
11020
11021         * bus/system.conf.in: add <includedir>system.d</includedir>
11022
11023         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11024         username was provided but not uid
11025
11026         * bus/config-parser.c (struct BusConfigParser): keep track of
11027         whether the parser is toplevel or was included; change some
11028         of the error handling if it's included.
11029
11030 2003-04-27  Havoc Pennington  <hp@pobox.com>
11031
11032         Unbreak my code...
11033
11034         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11035         report correct status if we finish processing authentication
11036         inside this function.
11037
11038         * bus/activation.c (try_send_activation_failure): use
11039         bus_transaction_send_error_reply
11040
11041         * bus/connection.c (bus_connection_get_groups): return an error
11042         explaining the problem
11043
11044         * bus/bus.c (bus_context_check_security_policy): implement
11045         restriction here that inactive connections can only send the
11046         hello message. Also, allow bus driver to send anything to
11047         any recipient.
11048
11049         * bus/connection.c (bus_connection_complete): create the
11050         BusClientPolicy here instead of on-demand.
11051         (bus_connection_get_policy): don't return an error
11052
11053         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11054         sender field in message being replied to
11055
11056         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11057         causing it to return FALSE always
11058
11059         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11060         we checked sender rather than destination
11061
11062 2003-04-25  Havoc Pennington  <hp@redhat.com>
11063
11064         test suite is slightly hosed at the moment, will fix soon
11065
11066         * bus/connection.c (bus_connections_expire_incomplete): fix to
11067         properly disable the timeout when required
11068         (bus_connection_set_name): check whether we can remove incomplete
11069         connections timeout after we complete each connection.
11070
11071         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11072         probably still broken.
11073
11074         * bus/services.c (bus_registry_acquire_service): implement max
11075         number of services owned, and honor allow/deny rules on which
11076         services a connection can own.
11077
11078         * bus/connection.c (bus_connection_get_policy): report errors here
11079
11080         * bus/activation.c: implement limit on number of pending
11081         activations
11082
11083 2003-04-25  Havoc Pennington  <hp@redhat.com>
11084
11085         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11086         where we used >= 0 instead of != DBUS_UID_UNSET.
11087
11088 2003-04-25  Havoc Pennington  <hp@redhat.com>
11089
11090         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11091         were toggled without add/remove, fix from Anders Gustafsson
11092
11093 2003-04-24  Havoc Pennington  <hp@redhat.com>
11094
11095         * test/data/valid-config-files/basic.conf: add <limit> tags to
11096         this test
11097
11098         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11099         <limit> tag in configuration file.
11100
11101 2003-04-24  Havoc Pennington  <hp@redhat.com>
11102
11103         * bus/dispatch.c: somehow missed some name_is
11104
11105         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11106         (_dbus_timeout_set_interval): new
11107
11108         * bus/connection.c (bus_connections_setup_connection): record time
11109         when each connection is first set up, and expire them after the
11110         auth timeout passes.
11111
11112 2003-04-24  Havoc Pennington  <hp@redhat.com>
11113
11114         * dbus/dbus-message.c (dbus_message_name_is): rename
11115         (dbus_message_service_is): rename
11116         (dbus_message_sender_is): rename
11117         (dbus_message_get_service): rename
11118
11119 2003-04-24  Havoc Pennington  <hp@redhat.com>
11120
11121         * configure.in: add --enable-checks
11122
11123         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11124
11125         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11126         to use thread locks.
11127         (_dbus_connection_handler_destroyed_locked): move some private
11128         functions into proper docs group
11129
11130         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11131         _dbus_return_val_if_fail
11132
11133         Throughout: use dbus_return_if_fail
11134
11135 2003-04-23  James Willcox  <jwillcox@gnome.org>
11136
11137         * glib/dbus-glib.h:
11138         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11139         (dbus_connection_setup_with_g_main),
11140         (dbus_server_setup_with_g_main):
11141         * glib/test-dbus-glib.c: (main):
11142         * glib/test-thread-client.c: (main):
11143         * glib/test-thread-server.c: (new_connection_callback), (main):
11144         * tools/dbus-monitor.c: (main):
11145
11146         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11147         and dbus_server_setup_with_g_main().
11148
11149 2003-04-20  Havoc Pennington  <hp@pobox.com>
11150
11151         * doc/dbus-specification.sgml: document the restrictions on
11152         message and service names
11153
11154 2003-04-22  Havoc Pennington  <hp@redhat.com>
11155
11156         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11157         support, and do some code cleanups to share more code and
11158         speed up array marshal/demarshal.
11159
11160         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11161
11162         * configure.in: generate dbus-arch-deps.h
11163
11164         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11165         64-bit typecodes
11166
11167 2003-04-22  Havoc Pennington  <hp@redhat.com>
11168
11169         * test/data/valid-messages/opposite-endian.message: fix test
11170         to use proper type for rply field
11171
11172         * test/data/invalid-messages: add tests for below validation
11173
11174         * dbus/dbus-message.c (decode_header_data): validate field types,
11175         and validate that named fields are valid names
11176         (decode_name_field): consider messages in the
11177         org.freedesktop.Local. namespace to be invalid.
11178
11179         * dbus/dbus-string.c (_dbus_string_validate_name): new
11180
11181 2003-04-19  Havoc Pennington  <hp@pobox.com>
11182
11183         * bus/driver.c (bus_driver_handle_hello): check limits and
11184         return an error if they are exceeded.
11185
11186         * bus/connection.c: maintain separate lists of active and inactive
11187         connections, and a count of each. Maintain count of completed
11188         connections per user. Implement code to check connection limits.
11189
11190         * dbus/dbus-list.c (_dbus_list_unlink): export
11191
11192         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11193         number of bytes in the message queue for a connection
11194
11195 2003-04-18  Havoc Pennington  <hp@pobox.com>
11196
11197         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11198
11199         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11200         memleaks
11201
11202         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11203         on realloc be sure to update the pointer in the keyring
11204
11205         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11206         offset to avoid writing to unallocated memory
11207
11208         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11209         try the next mechanism, so we properly handle OOM
11210
11211         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11212         on OOM.
11213         (_dbus_keyring_new): fix OOM bug
11214         (_dbus_keyring_new_homedir): always set error; impose a maximum
11215         number of keys we'll load from the file, mostly to speed up the
11216         test suite and make its OOM checks more useful, but also for
11217         general sanity.
11218
11219         * dbus/dbus-auth.c (process_error_server): reject authentication
11220         if we get an error from the client
11221         (process_cancel): on cancel, send REJECTED, per the spec
11222         (process_error_client): send CANCEL if we get an error from the
11223         server.
11224
11225 2003-04-18  Havoc Pennington  <hp@pobox.com>
11226
11227         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11228         debug spew
11229
11230         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11231         handling problem
11232
11233         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11234         about DBUS_TEST_HOMEDIR once
11235
11236         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11237         the environment
11238
11239         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11240         config file so we test the right thing
11241
11242         Throughout: assorted docs improvements
11243
11244 2003-04-18  Havoc Pennington  <hp@pobox.com>
11245
11246         * glib/dbus-gmain.c: adapt to watch changes
11247
11248         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11249
11250         * dbus/dbus-server.h: remove dbus_server_handle_watch
11251
11252         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11253
11254         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11255         like DBusTimeout, so we don't need dbus_connection_handle_watch
11256         etc.
11257
11258 2003-04-17  Havoc Pennington  <hp@redhat.com>
11259
11260         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11261         database usage so it all goes via the DBusUserDatabase cache.
11262
11263 2003-04-17  Havoc Pennington  <hp@redhat.com>
11264
11265         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11266         there was an OOM watch we skipped, we always return TRUE so we
11267         iterate again to have a look at it again. Fixes test suite hang.
11268         Code rearrangement also lets us lose some memset and only iterate
11269         over callbacks once.
11270
11271         * bus/driver.c (bus_driver_handle_message): sense of test for
11272         reply was backward
11273
11274 2003-04-16  Havoc Pennington  <hp@pobox.com>
11275
11276         * doc/dbus-specification.sgml: make spec say serials are unsigned
11277
11278         * dbus/dbus-message.h: change message serials to unsigned
11279
11280         * dbus/dbus-connection.c: adapt to message serials being unsigned
11281
11282 2003-04-15  Havoc Pennington  <hp@pobox.com>
11283
11284         * bus/bus.c: create and keep around a shared DBusUserDatabase
11285         object.
11286
11287         * bus/connection.c (bus_connection_get_groups): don't cache
11288         groups for user in the connection object, since user database
11289         object now does that.
11290
11291 2003-04-16  Havoc Pennington  <hp@redhat.com>
11292
11293         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11294         list of size counters
11295         (_dbus_message_loader_putback_message_link): put back a popped link
11296
11297         * dbus/dbus-connection.c
11298         (dbus_connection_set_max_live_messages_size): rename
11299         max_received_size
11300         (dbus_connection_get_outgoing_size): get size of outgoing
11301         queue
11302         (_dbus_connection_set_connection_counter): remove this cruft
11303
11304 2003-04-14  Havoc Pennington  <hp@redhat.com>
11305
11306         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11307         caching, but at some point we might want to be able to use a
11308         different database.
11309
11310         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11311         SHA1 conf file to test the sha1 auth mechanism, since the regular
11312         test always uses EXTERNAL when available.
11313
11314         * configure.in,
11315         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11316         add conf file that requires use of sha1 auth
11317
11318 2003-04-13  Havoc Pennington  <hp@pobox.com>
11319
11320         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11321         from Philip Blundell to send messages and monitor them.
11322
11323 2003-04-13  Havoc Pennington  <hp@pobox.com>
11324
11325         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11326         callbacks
11327
11328         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11329         users
11330
11331         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11332         fix to only recover unused bytes if we're already authenticated
11333         (_dbus_transport_get_is_authenticated): fix to still mark us
11334         authenticated if there are unused bytes.
11335
11336         * bus/dispatch.c: implement security policy checking
11337
11338         * bus/connection.c (bus_transaction_send_from_driver): new
11339
11340         * bus/bus.c (bus_context_check_security_policy): new
11341
11342         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11343         now we just set the DBusError and it gets converted to an error
11344         reply.
11345
11346         * bus/connection.c (allow_user_function): enable code using actual
11347         data from the config file
11348
11349         * bus/policy.c (list_allows_user): handle wildcard rules for
11350         user/group connection perms
11351
11352 2003-04-13  Havoc Pennington  <hp@pobox.com>
11353
11354         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11355
11356         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11357
11358         * bus/policy.c (bus_policy_append_mandatory_rule)
11359         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11360         (bus_policy_append_group_rule): new functions
11361
11362 2003-04-12  Havoc Pennington  <hp@pobox.com>
11363
11364         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11365
11366         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11367         the pid/gid/uid, just for paranoia.
11368
11369         * test/break-loader.c (randomly_do_n_things): find a byte
11370         containing a type code, and randomly change it to a different
11371         type code.
11372
11373 2003-04-12  Havoc Pennington  <hp@pobox.com>
11374
11375         * bus/policy.h: change BusPolicy to be the thing from the config
11376         file, and rename old BusPolicy to BusClientPolicy
11377
11378         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11379         match change in how policy works
11380
11381         * dbus/dbus-internals.h: mark assert_not_reached as
11382         __attribute((noreturn))__
11383
11384 2003-04-11  Havoc Pennington  <hp@redhat.com>
11385
11386         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11387         the broadcast service. Use boolean return for ServiceExists.
11388
11389 2003-04-11  Havoc Pennington  <hp@redhat.com>
11390
11391         * configure.in: add another directory to look for qt in.
11392
11393 2003-04-11  Havoc Pennington  <hp@redhat.com>
11394
11395         * AUTHORS: add Colin Walters
11396
11397 2003-04-11  Havoc Pennington  <hp@redhat.com>
11398
11399         * NEWS: update
11400
11401         * configure.in: 0.9
11402
11403 2003-04-11  Havoc Pennington  <hp@redhat.com>
11404
11405         * bus/messagebus.in: remove pid file when stopping the
11406         message bus, since the bus won't have privileges to remove it
11407         itself.
11408
11409 2003-04-11  Havoc Pennington  <hp@redhat.com>
11410
11411         * bus/bus.c (bus_context_new): move credentials change after
11412         creating pidfile
11413
11414 2003-04-11  Havoc Pennington  <hp@pobox.com>
11415
11416         * test/decode-gcov.c: add "below average functions" to the
11417         coverage report, and change how some of the code works.
11418
11419         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11420         not in the coverage stats.
11421
11422         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11423         couple places so running the test suite doesn't result in megaspam.
11424
11425 2003-04-11  Havoc Pennington  <hp@pobox.com>
11426
11427         * bus/dispatch.c (check_existent_service_activation): accept a no
11428         memory error in a place we didn't before
11429
11430         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11431         in case the first one failed," since the test suite is less
11432         broken now.
11433
11434 2003-04-10  Havoc Pennington  <hp@pobox.com>
11435
11436         * bus/dispatch.c (check_segfault_service_activation): add test
11437         for launching an executable that just crashes.
11438
11439         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11440         don't leave a million cores. We'll see how portable this is.
11441
11442 2003-04-10  Havoc Pennington  <hp@pobox.com>
11443
11444         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11445         the possible parent failures before we fork, so that we don't
11446         fail to create a babysitter after creating the child.
11447
11448         * bus/activation.c (bus_activation_activate_service): kill child
11449         if we don't successfully complete the activation.
11450
11451 2003-04-10  Havoc Pennington  <hp@redhat.com>
11452
11453         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11454         the connection if it's disconnected
11455
11456         * bus/activation.c (bus_activation_service_created): use new
11457         transaction features to roll back removal of pending activation if
11458         we don't successfully create the service after all. Don't remove
11459         pending activation if the function fails.
11460
11461         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11462         (_dbus_list_insert_after_link): new code to facilitate
11463         services.c fixes
11464
11465         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11466         new functionality, so we can preallocate the ability to insert
11467         into a hash table.
11468
11469         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11470         allowing us to put custom hooks in a transaction to be used for
11471         cancelling said transaction
11472
11473         * doc/dbus-specification.sgml: add some discussion of secondary
11474         service owners, and disallow zero-length service names
11475
11476         * bus/services.c (bus_registry_acquire_service): new function,
11477         splits out part of bus_driver_handle_acquire_service() and fixes
11478         a bug where we didn't remove the service doing the acquiring
11479         from the secondary queue if we failed to remove the current owner
11480         from the front of the queue.
11481
11482 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11483
11484         * doc/dbus-specification.sgml:
11485         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11486
11487 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11488
11489         * bus/.cvsignore:
11490         * glib/.cvsignore:
11491         * test/.cvsignore:
11492         Added files to cvsignore
11493
11494         * dbus/dbus-message.h:
11495         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11496         Make get_named() take two out argument and return a boolean.
11497         (dbus_message_iter_get_args_valist):
11498         Update usage of get_named().
11499         (dbus_message_iter_append_byte):
11500         Fix typo
11501         (dbus_message_iter_append_named)
11502         Fix typo
11503         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11504         More tests.
11505
11506 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11507
11508         * dbus/dbus-marshal.[ch]:
11509         Add array_type_pos argument to _dbus_marshal_validate_arg.
11510         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11511
11512         * dbus/dbus-message.[ch]:
11513         Multi-dimensional arrays have full type specification in the
11514         outermost array. Iter code re-arranged to handle this.
11515         Added some more iter tests.
11516
11517         * doc/dbus-specification.sgml:
11518         Add me to authors.
11519         Remove old FIXME.
11520         Update new array encoding description.
11521         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11522
11523         * test/data/invalid-messages/array-with-mixed-types.message:
11524         * test/data/valid-messages/array-of-array-of-uint32.message:
11525         Change to the new array format.
11526
11527         * test/data/invalid-messages/too-short-dict.message:
11528         Fix bug in test.
11529
11530         * test/data/valid-messages/recursive-types.message:
11531         Fix up and extend test.
11532
11533 2003-04-10  Havoc Pennington  <hp@pobox.com>
11534
11535         * bus/dispatch.c: lots of fixes
11536
11537         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11538         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11539         that was crack, broke the test service.
11540
11541         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11542         handling to avoid piling up errors if we get a failure on the
11543         first address.
11544
11545         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11546         pid in assertion failures.
11547
11548         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11549         to some fixed size of file descriptor array. Don't return TRUE
11550         anytime a timeout exists, that led to lots of busy loop silliness
11551         in the tests.
11552
11553 2003-04-09  Havoc Pennington  <hp@redhat.com>
11554
11555         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11556         I'd checked this in earlier but hadn't.
11557
11558 2003-04-09  Havoc Pennington  <hp@redhat.com>
11559
11560         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11561         the activation test (man this is getting old!)
11562
11563 2003-04-09  Havoc Pennington  <hp@redhat.com>
11564
11565         * test/test-utils.c: use dispatch status function to fix this up
11566
11567         * bus/connection.c (connection_watch_callback): don't dispatch
11568         from here
11569         (connection_timeout_callback): don't dispatch from here
11570         (bus_connections_setup_connection): set the dispatch status function
11571         (bus_connection_disconnected): unset it
11572
11573         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11574         used to add a connection to be dispatched
11575         (_dbus_loop_iterate): do the dispatching at the end of each
11576         iteration
11577
11578         * dbus/dbus-connection.c
11579         (dbus_connection_set_dispatch_status_function): new function
11580         allowing us to fix up main loop usage
11581         (_dbus_connection_last_unref): free all the various function
11582         user data
11583         (dbus_connection_dispatch): call the DispatchStatusFunction
11584         whenever this function returns
11585         (dbus_connection_handle_watch): call DispatchStatusFunction
11586         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11587         (reply_handler_timeout): call DispatchStatusFunction
11588         (dbus_connection_flush): call DispatchStatusFunction
11589
11590 2003-04-09  Havoc Pennington  <hp@redhat.com>
11591
11592         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11593         a memory leak
11594
11595         * bus/dispatch.c (check_service_activated): fix bug in test
11596
11597         * dbus/dbus-mainloop.c (check_timeout): fix this up
11598
11599         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11600         verbose output so we can sort out output from different processes,
11601         e.g. in the activation case.
11602
11603 2003-04-08  Colin Walters  <walters@gnu.org>
11604
11605         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11606         the pid file.
11607         (bus_context_new): Set it.
11608         (bus_context_unref): Use it to delete the pid file.
11609
11610 2003-04-08  Havoc Pennington  <hp@redhat.com>
11611
11612         * test/data/invalid-messages/array-with-mixed-types.message:
11613         regression test that fails for the moment
11614
11615         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11616         tests for convenience
11617
11618         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11619         array of nil, it broke things.
11620
11621         * test/data/invalid-messages/array-of-nil.message: regression test
11622
11623         * test/data/valid-messages/array-of-array-of-uint32.message:
11624         happened to write this so added it to suite
11625
11626 2003-04-08  Havoc Pennington  <hp@redhat.com>
11627
11628         * bus/driver.c (bus_driver_handle_acquire_service): init
11629         retval/reply before checking name
11630
11631         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11632         recursion depth argument
11633
11634         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11635         in the public struct for future extension
11636
11637         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11638         typo
11639
11640         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11641         message
11642
11643         * doc/dbus-specification.sgml: fix typo
11644
11645 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11646
11647         Implemented recursive types, named types and new-style iters
11648
11649         * bus/driver.c:
11650         * glib/test-thread-client.c: (thread_func):
11651         * glib/test-thread-server.c: (handle_test_message):
11652         * test/test-service.c: (handle_echo):
11653         Update to new api
11654
11655         * dbus/Makefile.am:
11656         * dbus/dbus-dict.c:
11657         * dbus/dbus-dict.h:
11658         * dbus/dbus.h
11659         Remove DBusDict
11660
11661         * dbus/dbus-internals.c: (_dbus_type_to_string):
11662         Update for new types.
11663
11664         * dbus/dbus-marshal.[ch]:
11665         Implement recursive types and the new marshalling format.
11666         Remove hardcoded dict marshalling.
11667         Marshal named types.
11668
11669         * dbus/dbus-message-builder.c:
11670         Add BYTE_ARRAY.
11671         Remove references to old types
11672
11673         * dbus/dbus-message.[ch]:
11674         New non-refcounted iter API that supports recursive iters.
11675         Use iters for appending, including support for recursive
11676         iters.
11677         Add byte and named type support.
11678         Update everything to new marshalling formats.
11679         Add tests for new API.
11680
11681         * dbus/dbus-protocol.h:
11682         Remove old array types.
11683         Add types: BYTE, ARRAY, DICT, NAMED
11684
11685         * dbus/dbus-string.c:
11686         * dbus/dbus-sysdeps.c:
11687         Make parse_double locale safe.
11688
11689         * dbus/dbus-test-main.c:
11690         Call setlocale.
11691
11692         * dbus/dbus-test.c:
11693         Kill dict test
11694
11695         * doc/dbus-specification.sgml:
11696         Update spec
11697
11698         * test/data/incomplete-messages/missing-body.message:
11699         * test/data/invalid-messages/bad-boolean.message:
11700         * test/data/invalid-messages/bad-boolean-array.message:
11701         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11702         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11703         * test/data/invalid-messages/too-short-dict.message:
11704         * test/data/valid-messages/dict-simple.message:
11705         * test/data/valid-messages/dict.message:
11706         * test/data/valid-messages/emptiness.message:
11707         * test/data/valid-messages/lots-of-arguments.message:
11708         * test/data/valid-messages/no-padding.message:
11709         * test/data/valid-messages/recursive-types.message:
11710         Add missing NAME fields
11711         Fix up dicts & arrays
11712
11713         * test/data/invalid-messages/dict-with-nil-value.message:
11714         Removed, this is not invalid anymore.
11715
11716         * test/data/valid-messages/recursive-types.message:
11717         Add new test for deeply recursive types.
11718
11719 2003-04-07  Havoc Pennington  <hp@pobox.com>
11720
11721         * bus/driver.c (bus_driver_handle_acquire_service): return an
11722         error if you try to acquire a service that starts with ':'
11723
11724 2003-04-07  Havoc Pennington  <hp@redhat.com>
11725
11726         * doc/dbus-specification.sgml: require that base service names
11727         start with ':' and that the base service is created/deleted
11728         as first and last things a connection does on the bus
11729
11730         * bus/dispatch.c (check_existent_service_activation): lots more
11731         work on the activation test; it doesn't fully pass yet...
11732
11733         * test/test-service.c (main): fix so we don't memleak the
11734         connection to the message bus
11735         (filter_func): accept a message asking us to exit
11736
11737 2003-04-06  Havoc Pennington  <hp@pobox.com>
11738
11739         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11740         from Colin Walters
11741
11742         * configure.in: fixes to Qt detection from Colin Walters
11743
11744         * doc/Makefile.am: Only remove generated docbook dirs if they
11745         exist, from Colin Walters
11746
11747         * dbus/dbus-bus.c: change how we set well-known connections to
11748         NULL, so that it works if a single connection is stored in
11749         two well-known array slots.
11750
11751         * test/Makefile.am: remove a lot of stuff that isn't immediately
11752         useful, it's in CVS history if we want it.
11753
11754         * test/test-service.c: use dbus-mainloop instead of that
11755         watch.[hc] crack
11756
11757 2003-04-06  Havoc Pennington  <hp@pobox.com>
11758
11759         * dbus/Makefile.am: split lists of sources into stuff that goes in
11760         the library, util functions that go in the lib and are also used
11761         elsewhere, and util functions that are used in tests/daemon but
11762         don't go in the lib.
11763
11764         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11765         here so it can be used in test binaries also
11766
11767 2003-04-06  Havoc Pennington  <hp@pobox.com>
11768
11769         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11770         here in the parent process, so we can return an error if it
11771         fails. Also, move some of the code into the child so the parent
11772         is less hosed if we fail midway through.
11773
11774         * bus/bus.c (bus_context_new): move pidfile detection further up
11775         in the function, before we start overwriting sockets and such.
11776
11777         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11778
11779         * configure.in: add --with-system-pid-file and --with-system-socket
11780
11781 2003-04-06  Colin Walters  <walters@verbum.org>
11782
11783         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11784
11785         * bus/system.conf.in: Declare a pidfile.
11786
11787         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11788         create one (if appropriate).
11789
11790         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11791         (struct BusConfigParser) [pidfile]: New.
11792         (element_type_to_name, merge_included, start_busconfig_child)
11793         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11794         (bus_config_parser_unref): Free it.
11795         (bus_config_parser_get_pidfile): New function.
11796
11797         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11798
11799         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11800
11801         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11802
11803         * dbus/dbus-sysdeps.h: Prototype it.
11804
11805 2003-04-06  Havoc Pennington  <hp@pobox.com>
11806
11807         * bus/bus.c (bus_context_new): print the address in here, rather
11808         than in main(), because we need to do it before forking the daemon
11809
11810         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11811         on the service nonexistent error
11812
11813         * bus/driver.c (bus_driver_handle_acquire_service): set the
11814         sender on the AcquireService reply
11815
11816         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11817         server also listen on a UNIX socket so services can connect to it.
11818
11819 2003-04-06  Havoc Pennington  <hp@pobox.com>
11820
11821         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11822         so it detects deadlocks and also we actually init threads when
11823         debugging.
11824
11825 2003-04-06  Havoc Pennington  <hp@pobox.com>
11826
11827         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11828         save the domain socket name, and unlink it when we disconnect the
11829         server. Means that at least when we exit normally, we won't leave
11830         a bunch of junk in /tmp
11831
11832         * dbus/dbus-transport-unix.c
11833         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11834         memory management). (I was making a real change here but then
11835         didn't)
11836
11837 2003-04-06  Havoc Pennington  <hp@pobox.com>
11838
11839         * bus/bus.c (bus_context_new): fix wrong handling of
11840         server_data_slot_unref() in the error case.
11841
11842         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11843         "(condition) != 0" to _dbus_real_assert so that
11844         "_dbus_assert (pointer)" doesn't cause a warning
11845
11846         * bus/main.c (main): accept --print-address option to print out
11847         the message bus address
11848
11849         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11850
11851         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11852         "tmpdir" option to unix: address on client side
11853
11854         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11855         to unix: address
11856
11857         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11858         we can use to create sockets in the test suite.
11859
11860         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11861         cleanly. To be used for testing.
11862
11863         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11864
11865         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11866
11867         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11868         handle trying to call this when there's no servers active
11869
11870 2003-04-05  Havoc Pennington  <hp@pobox.com>
11871
11872         * NEWS: update
11873
11874         * configure.in: 0.8
11875
11876 2003-04-05  Havoc Pennington  <hp@pobox.com>
11877
11878         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11879         crash on startup. Need to get "try starting the daemon"
11880         in the test suite I guess. ;-)
11881
11882         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11883         tracked the number of open connections; it's better done in
11884         application-specific code as you want it to span all servers etc.
11885
11886 2003-04-05  Havoc Pennington  <hp@pobox.com>
11887
11888         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11889         patch from Colin Walters
11890
11891 2003-04-05  Havoc Pennington  <hp@pobox.com>
11892
11893         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11894         reality; in fact multiple mechanisms are allowed.
11895
11896         * dbus/dbus-internals.c (_dbus_real_assert)
11897         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11898         _dbus_assert_not_reached() into functions, so that they don't show
11899         up in basic block counts for test coverage, and don't use up as
11900         much disk space. Does mean slower execution speed though, so
11901         assumes --disable-asserts is the normal production case.
11902
11903 2003-04-05  Havoc Pennington  <hp@pobox.com>
11904
11905         * test/Makefile.am (dist-hook): also dist *.in files
11906
11907         * NEWS: update
11908
11909         * configure.in: 0.7
11910
11911 2003-04-05  Havoc Pennington  <hp@pobox.com>
11912
11913         * dbus/dbus-string.c: docs warning
11914
11915         * dbus/dbus-spawn.c: missing docs
11916
11917         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11918
11919 2003-04-05  Havoc Pennington  <hp@pobox.com>
11920
11921         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11922         magic from GLib
11923
11924         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11925         to -1 once we've reaped the babysitter
11926         (_dbus_babysitter_handle_watch): do as much work as we can, not
11927         just one go of it
11928
11929         * bus/activation.c: add code using DBusBabysitter so that we
11930         handle it when a service fails to start up properly.
11931         (bus_activation_service_created): don't remove the activation
11932         entries as we go, just let them get removed when we free the pending
11933         activation. Unref reply messages after sending them.
11934
11935 2003-04-05  Havoc Pennington  <hp@pobox.com>
11936
11937         * test/decode-gcov.c (main): print per-directory stats in the report
11938
11939         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11940
11941 2003-04-05  Havoc Pennington  <hp@pobox.com>
11942
11943         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11944
11945         * test/decode-gcov.c: hack up a little program to suck data
11946         out of gcov files. Yes this is sort of silly.
11947
11948         * configure.in: define something in config.h and do an
11949         AM_CONDITIONAL when gcov is enabled
11950
11951 2003-04-04  Havoc Pennington  <hp@redhat.com>
11952
11953         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11954         return a "babysitter" object that is used to monitor the status of
11955         the spawned process and reap it when required.
11956
11957         * test/test-segfault.c, test/test-exit.c,
11958         test/test-sleep-forever.c: binaries that do various lame things,
11959         used in the test suite.
11960
11961         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11962
11963 2003-04-03  Havoc Pennington  <hp@pobox.com>
11964
11965         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11966         in preparation for modifying it, dbus-sysdeps is getting
11967         a bit unmanageable.
11968
11969 2003-04-03  Havoc Pennington  <hp@redhat.com>
11970
11971         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11972         have multiple ones
11973
11974         * bus/*.[hc]: adapt to mainloop change
11975
11976 2003-04-03  Havoc Pennington  <hp@redhat.com>
11977
11978         * bus/activation.c (load_directory): fix up memleaks
11979         (bus_activation_entry_free): free the entry
11980
11981         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11982         we get one from the message bus; fix memleaks.
11983
11984         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11985
11986 2003-04-03  Havoc Pennington  <hp@pobox.com>
11987
11988         * bus/config-parser.c (bus_config_parser_unref): free
11989         list of mechanisms, bug discovered by test suite enhancements
11990         (putting system.conf and session.conf into suite)
11991
11992         * test/Makefile.am, test/test-service.c: add placeholder for a
11993         test service that we'll activate as part of test suite. Doesn't
11994         do anything yet.
11995
11996         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11997         setting NULL value, and use system malloc not dbus_malloc()
11998         when we have unavoidable memleakage.
11999
12000         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12001         didn't work, and support DBUS_BUS_ACTIVATION.
12002
12003         * bus/activation.c (child_setup): pass our well-known bus type to
12004         the child
12005
12006         * bus/config-parser.c: support <type> to specify well-known type
12007
12008         * doc/dbus-specification.sgml: document the env variables to
12009         locate well-known buses and find service activator
12010
12011 2003-04-02  Havoc Pennington  <hp@redhat.com>
12012
12013         * test/Makefile.am (all-local): add a rule to copy tests to
12014         builddir, so we can have generated tests. Use this to remove the
12015         silly hack for testing system.conf and session.conf. Will use this
12016         shortly to generate .service files pointing to test binaries.
12017
12018 2003-04-02  Havoc Pennington  <hp@redhat.com>
12019
12020         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12021         current alloc and needed new length, not max of the doubled
12022         allocation and needed new length. Also, when building tests,
12023         don't do the double-allocation stuff, just realloc every time.
12024
12025 2003-04-02  Havoc Pennington  <hp@redhat.com>
12026
12027         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12028         in error messages
12029         (_dbus_string_get_dirname): new
12030         (_dbus_sysdeps_test): new
12031         (_dbus_directory_open): include dirnames in error messages
12032
12033         * bus/config-parser.c: interpret <include> and <includedir> and
12034         <servicedir> relative to config file location if the given
12035         filename is not absolute.
12036
12037         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12038
12039 2003-04-02  Havoc Pennington  <hp@redhat.com>
12040
12041         * bus/connection.c (bus_transaction_send_error_reply): set sender
12042         service for the error, and unref the reply on success
12043
12044         * bus/activation.c: convert to use BusTransaction so OOM can be
12045         handled correctly
12046         (bus_activation_service_created): set sender of the message
12047
12048 2003-04-01  Havoc Pennington  <hp@redhat.com>
12049
12050         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12051         <includedir> (at least mostly)
12052
12053         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12054         first, then the user ID
12055
12056 2003-04-01  Havoc Pennington  <hp@pobox.com>
12057
12058         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12059         function
12060
12061         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12062
12063         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12064
12065         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12066         socket 0777, and unlink any existing socket.
12067
12068         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12069         the configuration file so specifies; set up auth mechanism
12070         restrictions
12071
12072         * bus/config-parser.c (bus_config_parser_content): add support
12073         for <fork> option and fill in code for <auth>
12074
12075         * bus/system.conf.in: add <fork/> to default configuration,
12076         and limit auth mechanisms to EXTERNAL
12077
12078         * doc/config-file.txt (Elements): add <fork>
12079
12080         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12081         (_dbus_change_identity): new function
12082
12083 2003-03-31  Havoc Pennington  <hp@redhat.com>
12084
12085         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12086         (_dbus_listen_unix_socket): fix off-by-one error in null
12087         termination spotted by Nalin
12088
12089 2003-03-31  Havoc Pennington  <hp@redhat.com>
12090
12091         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12092         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12093         having a real home directory available.
12094
12095 2003-03-31  Havoc Pennington  <hp@redhat.com>
12096
12097         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12098
12099         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12100
12101         * configure.in: add support for specifying a style of init script
12102         to install
12103
12104 2003-03-31  Havoc Pennington  <hp@redhat.com>
12105
12106         Fix some annoying DBusString API and fix all affected code.
12107
12108         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12109         max_length argument
12110         (_dbus_string_get_data): change to return string instead of using
12111         an out param
12112         (_dbus_string_get_const_data): ditto
12113         (_dbus_string_get_data_len): ditto
12114         (_dbus_string_get_const_data_len): ditto
12115
12116 2003-03-31  Havoc Pennington  <hp@redhat.com>
12117
12118         * bus/main.c (main): fix up the command line arguments to be nicer
12119
12120 2003-03-31  Havoc Pennington  <hp@redhat.com>
12121
12122         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12123         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12124         final location that lands in the config file
12125
12126         * bus/config-loader-expat.c (bus_config_load): fix type of
12127         XML_Parser variable
12128
12129         * doc/TODO: remove TODO item for dbus_bus_get()
12130
12131         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12132
12133 2003-03-31  Havoc Pennington  <hp@pobox.com>
12134
12135         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12136         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12137         argument since they are always client side
12138
12139         * dbus/dbus-server.c (dbus_server_get_address): new function
12140
12141         * bus/main.c (main): take the configuration file as an argument.
12142
12143         * test/data/valid-config-files/debug-allow-all.conf: new file to
12144         use with dispatch.c tests for example
12145
12146         * bus/test-main.c (main): require test data dir
12147
12148         * bus/bus.c (bus_context_new): change this to take a
12149         configuration file name as argument
12150
12151         * doc/config-file.txt (Elements): add <servicedir>
12152
12153         * bus/system.conf, bus/session.conf: new files
12154
12155         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12156         well-known socket if none set
12157
12158         * configure.in: create system.conf and session.conf
12159
12160 2003-03-30  Havoc Pennington  <hp@pobox.com>
12161
12162         * bus/config-parser.c: hacking
12163
12164         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12165         to shut down, since it could cause weirdness with the DBusList
12166         lock
12167
12168         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12169         link-oriented stack routines
12170         (alloc_link): free the mempool if the first alloc from it fails
12171
12172         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12173
12174         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12175         from GLib
12176         (_dbus_string_skip_white): new
12177
12178         * doc/config-file.txt (Elements): add <includedir>
12179
12180 2003-03-28  Havoc Pennington  <hp@pobox.com>
12181
12182         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12183         (_dbus_string_copy_data): new functions
12184
12185 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12186
12187         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12188         * dbus/dbus-bus.h:
12189         Add dbus_bus_get.
12190
12191         * dbus/dbus-memory.c:
12192         Fix a doc comment.
12193
12194 2003-03-28  Havoc Pennington  <hp@pobox.com>
12195
12196         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12197         I think it may have just been superstition. Not sure.
12198
12199         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12200         failures that were not being handled.
12201
12202         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12203
12204         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12205         row that will fail on out-of-memory.
12206
12207         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12208         function for testing out-of-memory handling.
12209
12210         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12211         allocation functions, they do map exactly to the expat ones.
12212
12213 2003-03-27  Havoc Pennington  <hp@redhat.com>
12214
12215         * bus/config-loader-libxml.c (bus_config_load): add another error
12216         check
12217
12218 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12219
12220         * doc/TODO:
12221         Add note about automatic service activation.
12222
12223         * doc/dbus-specification.sgml:
12224         Rename the specification and clarify a few things.
12225
12226 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12227
12228         * Doxyfile.in:
12229         * dbus/dbus-address.c:
12230         * dbus/dbus-dict.c:
12231         * dbus/dbus-marshal.c:
12232         * dbus/dbus-server-debug-pipe.c:
12233         * dbus/dbus-transport-unix.c:
12234         Fix documentation warnings.
12235
12236 2003-03-26  Havoc Pennington  <hp@pobox.com>
12237
12238         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12239         after every test so it's quick and easy to see which leaked, and
12240         so we test multiple dbus_shutdown() calls
12241
12242         * configure.in: change configure.in XML stuff to also support
12243         expat
12244
12245         * config-loader-libxml.c: some hacking
12246
12247         * config-loader-expat.c: some hacking
12248
12249         * config-parser.c: some hacking, plus tests
12250
12251 2003-03-25  Havoc Pennington  <hp@redhat.com>
12252
12253         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12254
12255         * configure.in: add --with-xml option to specify XML library,
12256         right now only libxml is supported.
12257
12258         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12259         nonworking code between home and work, still just stubs
12260
12261 2003-03-24  Havoc Pennington  <hp@redhat.com>
12262
12263         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12264         file
12265
12266         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12267         NULL argument for "message" if the error is a well-known one,
12268         fill in a generic message in this case.
12269
12270         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12271         favor of DBusError
12272
12273         * bus/test.c (bus_test_flush_bus): add
12274
12275         * bus/policy.c (bus_policy_test): test code stub
12276
12277 2003-03-24  Havoc Pennington  <hp@pobox.com>
12278
12279         * bus/connection.c (bus_connections_setup_connection): set up
12280         the "can this user connect" function, but it always returns
12281         TRUE until we have a config file parser so we can have a config
12282         file that allows connections.
12283
12284 2003-03-23  Havoc Pennington  <hp@pobox.com>
12285
12286         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12287         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12288         the mutex, so we can check for proper memory management
12289         and OOM handling.
12290
12291         * dbus/dbus-dataslot.c: remove the mutex from
12292         DBusDataSlotAllocator and lock it manually when using it,
12293         to simplify fitting it into the global slots framework.
12294
12295         * dbus/dbus-threads.c (init_static_locks): rework how we're
12296         handling global locks so they are easily shut down.
12297
12298         * bus/policy.c (bus_policy_append_rule): fix
12299
12300         * bus/test-main.c (main): check for memleaks
12301
12302         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12303         test suite check for memleaks
12304
12305         * dbus/dbus-memory.c: add support in test mode for tracking
12306         number of outstanding blocks
12307
12308 2003-03-23  Havoc Pennington  <hp@pobox.com>
12309
12310         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12311         policies code
12312
12313         * dbus/dbus-hash.h: add ULONG hash keys
12314
12315         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12316         (_dbus_get_group_id): new function
12317
12318 2003-03-20  Havoc Pennington  <hp@redhat.com>
12319
12320         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12321         new function
12322         (dbus_connection_get_unix_user): new function
12323
12324 2003-03-20  Havoc Pennington  <hp@pobox.com>
12325
12326         * bus/connection.c (bus_connection_send_oom_error): assert that
12327         message has a sender
12328         (connection_execute_transaction): ditto
12329         (bus_connection_preallocate_oom_error): fix to set the sender, and
12330         set recipient to the destination service, not the bus driver
12331
12332         * bus/policy.c: hacking
12333
12334         * dbus/dbus-message.c (dbus_message_service_is): new function
12335         (dbus_message_sender_is): new
12336
12337 2003-03-19  Havoc Pennington  <hp@redhat.com>
12338
12339         * bus/policy.c: start sketching code for policy restrictions on
12340         what connections can do.
12341
12342 2003-03-18  Havoc Pennington  <hp@redhat.com>
12343
12344         * doc/TODO: some notes on high-level todo items. Little nitpick
12345         stuff is all in @todo, so no need to add it here.
12346
12347         * doc/config-file.txt: some notes on how config file might look
12348
12349 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12350
12351         * configure.in: 0.6
12352
12353         * NEWS: Update.
12354
12355 2003-03-17  Havoc Pennington  <hp@redhat.com>
12356
12357         * dbus/dbus-internals.h: add gcc attributes so that
12358         our printf-style functions warn on bad arguments to
12359         format
12360
12361         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12362         format bug
12363
12364         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12365         printf format bug
12366
12367 2003-03-17  Havoc Pennington  <hp@redhat.com>
12368
12369         * bus/test-main.c (main): make it print something as it runs
12370         so make check doesn't look stuck
12371
12372         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12373         from CVS, now obsolete
12374
12375 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12376
12377         * bus/dispatch.c: (bus_dispatch):
12378         Refetch the service name since it may have been reallocated
12379         when dbus_message_set_sender was called.
12380
12381         * dbus/dbus-sysdeps.c: (_dbus_accept):
12382         Add address and address length variables and use them to stop
12383         valgrind from complaining.
12384
12385 2003-03-17  Havoc Pennington  <hp@pobox.com>
12386
12387         All tests pass, no memleaks, no valgrind complaints.
12388
12389         * bus/test.c: refcount handler_slot
12390
12391         * bus/connection.c (bus_connections_new): refcount
12392         connection_data_slot
12393
12394         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12395         bytes so that auth scripts pass.
12396
12397         * bus/dispatch.c: init message_handler_slot so it gets allocated
12398         properly
12399
12400         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12401
12402         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12403         dealloc server_pipe_hash when no longer used for benefit of
12404         leak checking
12405
12406         * dbus/dbus-auth.c (process_command): memleak fix
12407
12408         * bus/dispatch.c (check_hello_message): memleak fix
12409
12410 2003-03-16  Havoc Pennington  <hp@pobox.com>
12411
12412         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12413
12414 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12415
12416         * bus/activation.c (bus_activation_activate_service): Append
12417         the pending activation entry to the list of pending activations.
12418
12419 2003-03-16  Havoc Pennington  <hp@pobox.com>
12420
12421         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12422         connections
12423
12424         * dbus/dbus-address.c (create_entry): fix OOM handling when
12425         failing to alloc entry->method
12426
12427 2003-03-16  Havoc Pennington  <hp@pobox.com>
12428
12429         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12430         the watch
12431
12432         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12433         add some missing dbus_set_result
12434
12435         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12436         alloc the DBusMessageHandler
12437
12438         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12439         the transport here, since we call this from the finalizer; it
12440         resulted in a double-finalize.
12441
12442         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12443         where we tried to use transport->connection that was NULL,
12444         happened when transport was disconnected early on due to OOM
12445
12446         * bus/*.c: adapt to handle OOM for watches/timeouts
12447
12448         * dbus/dbus-transport-unix.c: port to handle OOM during
12449         watch handling
12450
12451         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12452         reference to unused bytes instead of a copy
12453
12454         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12455         out of memory
12456
12457         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12458         FALSE on OOM
12459
12460         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12461         of memory
12462
12463 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12464
12465         * doc/dbus-specification.sgml:
12466         Document reply message for ActivateService.
12467
12468 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12469
12470         * bus/activation.c: (bus_pending_activation_entry_free),
12471         (bus_pending_activation_free), (bus_activation_new),
12472         (bus_activation_unref), (bus_activation_service_created),
12473         (bus_activation_activate_service):
12474         * bus/activation.h:
12475         * bus/bus.c: (bus_context_new):
12476         * bus/desktop-file.c: (new_section):
12477         * bus/driver.c: (bus_driver_send_service_deleted),
12478         (bus_driver_handle_activate_service):
12479         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12480         * bus/services.h:
12481         * dbus/dbus-connection.c:
12482         (dbus_connection_send_with_reply_and_block):
12483         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12484         * dbus/dbus-protocol.h:
12485         Make activation work better. Now pending activations will be queued
12486         and the daemon won't try to activate services that are already registered.
12487
12488 2003-03-16  Havoc Pennington  <hp@pobox.com>
12489
12490         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12491         connection data
12492
12493         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12494         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12495
12496 2003-03-16  Havoc Pennington  <hp@pobox.com>
12497
12498         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12499         this. always run the test suite before commit...
12500
12501         * bus/*: adapt to DBusConnection API changes
12502
12503         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12504         requires renaming stuff to avoid dbus_connection_dispatch name
12505         conflict.
12506
12507         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12508         function
12509
12510         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12511         separate from _dbus_message_loader_return_buffer()
12512
12513         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12514         this, because it's now always broken to use; the number of
12515         messages in queue vs. the number still buffered by the message
12516         loader is undefined/meaningless. Should use
12517         dbus_connection_get_dispatch_state().
12518         (dbus_connection_dispatch): rename from
12519         dbus_connection_dispatch_message
12520
12521 2003-03-16  Havoc Pennington  <hp@pobox.com>
12522
12523         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12524         implementation
12525
12526 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12527
12528         * dbus/dbus-connection.c:
12529         (dbus_connection_send_with_reply_and_block):
12530         Decrease connection->n_incoming when removing an entry
12531         from the list.
12532         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12533         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12534         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12535         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12536         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12537         (dbus_dict_get_byte_array):
12538         Handle NULL arrays and strings. Also add support for byte arrays.
12539
12540         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12541         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12542         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12543         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12544         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12545         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12546         * dbus/dbus-marshal.h:
12547         Add support for marshalling and demarshalling empty arrays and strings.
12548
12549         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12550         (dbus_message_append_string_array),
12551         (dbus_message_iter_get_boolean),
12552         (dbus_message_iter_get_boolean_array),
12553         (dbus_message_iter_get_int32_array),
12554         (dbus_message_iter_get_uint32_array),
12555         (dbus_message_iter_get_double_array),
12556         (dbus_message_iter_get_byte_array),
12557         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12558         (check_message_handling):
12559         Add support for getting empty arrays and dicts.
12560
12561         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12562         Don't do any validation at all for now, that's better than just checking
12563         for ASCII.
12564
12565         * test/data/valid-messages/emptiness.message:
12566         New test message with lots of empty arrays.
12567
12568 2003-03-16  Havoc Pennington  <hp@pobox.com>
12569
12570         * dbus/dbus-connection.c
12571         (_dbus_connection_queue_received_message_link): new function that
12572         can't fail due to OOM
12573
12574         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12575         new function pops a message together with a list link
12576         containing it.
12577
12578         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12579         message queuing functions to avoid needing to alloc memory
12580
12581 2003-03-16  Havoc Pennington  <hp@pobox.com>
12582
12583         Oops - test code was only testing failure of around 30 of the
12584         mallocs in the test path, but it turns out there are 500+
12585         mallocs. I believe this was due to misguided linking setup such
12586         that there was one copy of dbus_malloc etc. in the daemon and one
12587         in the shared lib, and only daemon mallocs were tested. In any
12588         case, the test case now tests all 500+ mallocs, and doesn't pass
12589         yet, though there are lots of fixes in this patch.
12590
12591         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12592         this so that it doesn't need to allocate memory, since it
12593         has no way of indicating failure due to OOM (and would be
12594         annoying if it did).
12595
12596         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12597
12598         * bus/Makefile.am: rearrange to create two self-contained
12599         libraries, to avoid having libraries with overlapping symbols.
12600         that was resulting in weirdness, e.g. I'm pretty sure there
12601         were two copies of global static variables.
12602
12603         * dbus/dbus-internals.c: move the malloc debug stuff to
12604         dbus-memory.c
12605
12606         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12607         empty.
12608
12609         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12610
12611         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12612         on failure.
12613
12614         * bus/dispatch.c (bus_dispatch_add_connection): free
12615         message_handler_slot when no longer using it, so
12616         memory leak checkers are happy for the test suite.
12617
12618         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12619
12620         * bus/bus.c (new_connection_callback): disconnect in here if
12621         bus_connections_setup_connection fails.
12622
12623         * bus/connection.c (bus_connections_unref): fix to free the
12624         connections
12625         (bus_connections_setup_connection): if this fails, don't
12626         disconnect the connection, just be sure there are no side
12627         effects.
12628
12629         * dbus/dbus-string.c (undo_alignment): unbreak this
12630
12631         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12632         leaking
12633         (_dbus_auth_new): fix the order in which we free strings
12634         on OOM failure
12635
12636         * bus/connection.c (bus_connection_disconnected): fix to
12637         not send ServiceDeleted multiple times in case of memory
12638         allocation failure
12639
12640         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12641         get the base service name
12642         (dbus_bus_register_client): don't return base service name,
12643         instead store it on the DBusConnection and have an accessor
12644         function for it.
12645         (dbus_bus_register_client): rename dbus_bus_register()
12646
12647         * bus/dispatch.c (check_hello_message): verify that other
12648         connections on the bus also got the correct results, not
12649         just the one sending hello
12650
12651 2003-03-15  Havoc Pennington  <hp@pobox.com>
12652
12653         Make it pass the Hello handling test including all OOM codepaths.
12654         Now to do other messages...
12655
12656         * bus/services.c (bus_service_remove_owner): fix crash when
12657         removing owner from an empty list of owners
12658         (bus_registry_ensure): don't leave service in the list of
12659         a connection's owned services if we fail to put the service
12660         in the hash table.
12661
12662         * bus/connection.c (bus_connection_preallocate_oom_error): set
12663         error flag on the OOM error.
12664
12665         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12666         handle _dbus_transport_set_connection failure
12667
12668         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12669         to create watches up front and simply enable/disable them as
12670         needed.
12671         (unix_connection_set): this can now fail on OOM
12672
12673         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12674         of enabling/disabling a watch or timeout.
12675
12676         * bus/loop.c (bus_loop_iterate): don't touch disabled
12677         watches/timeouts
12678
12679         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12680
12681 2003-03-15  Havoc Pennington  <hp@pobox.com>
12682
12683         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12684         write useful test code, after all that futzing around ;-)
12685
12686         Test does not yet pass because we can't handle OOM in
12687         _dbus_transport_messages_pending (basically,
12688         dbus_connection_preallocate_send() does not prealloc the write
12689         watch). To fix this, I think we need to add new stuff to
12690         set_watch_functions, namely a SetEnabled function so we can alloc
12691         the watch earlier, then enable it later.
12692
12693         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12694         dbus-memory.c to the convenience lib
12695
12696         * bus/test.c: rename some static functions to keep them clearly
12697         distinct from stuff in connection.c. Handle client disconnection.
12698
12699 2003-03-14  Havoc Pennington  <hp@pobox.com>
12700
12701         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12702         transport, tests more of the real codepath. Set up clients
12703         with bus_setup_debug_client.
12704
12705         * bus/test.c (bus_setup_debug_client): function to set up debug
12706         "clients" on the main loop
12707
12708         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12709         support
12710
12711         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12712         server type
12713
12714         * dbus/dbus-server-debug.c: support a debug server based on pipes
12715
12716         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12717         (_dbus_close): new function
12718
12719         * configure.in: check for socketpair
12720
12721 2003-03-14  Havoc Pennington  <hp@redhat.com>
12722
12723         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12724         cheesy hack
12725
12726         * dbus/dbus-transport-debug.c: rework this a good bit to be
12727         less complicated. hopefully still works.
12728
12729         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12730         manually
12731
12732         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12733         after running it
12734
12735         * dbus/dbus-message.c (dbus_message_copy): rename from
12736         dbus_message_new_from_message, fix it up to copy
12737         all the message fields, add test case
12738
12739         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12740         not quite passing yet
12741
12742 2003-03-14  Havoc Pennington  <hp@pobox.com>
12743
12744         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12745         until no work remains" in test code. (the large diff here
12746         is just code movement, no actual changes)
12747
12748         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12749         1, no point waiting around for test code.
12750         (_dbus_server_debug_accept_transport): unref the timeout
12751         after adding it (right?)
12752
12753         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12754
12755 2003-03-13  Havoc Pennington  <hp@redhat.com>
12756
12757         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12758         out of memory
12759
12760         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12761         of memory
12762
12763         * dbus/dbus-connection.h: Make AddWatchFunction and
12764         AddTimeoutFunction return a bool so they can fail on out-of-memory
12765
12766         * bus/bus.c (bus_context_new): set up timeout handlers
12767
12768         * bus/connection.c (bus_connections_setup_connection): set up
12769         timeout handlers
12770
12771         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12772         can fail
12773
12774         * bus/bus.c (bus_context_new): adapt to changes
12775
12776         * bus/connection.c: adapt to changes
12777
12778         * test/watch.c: adapt to DBusWatch changes
12779
12780         * bus/dispatch.c (bus_dispatch_test): started adding this but
12781         didn't finish
12782
12783 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12784
12785         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12786
12787 2003-03-13  Havoc Pennington  <hp@pobox.com>
12788
12789         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12790         set up a test framework as for the library
12791
12792 2003-03-12  Havoc Pennington  <hp@pobox.com>
12793
12794         Throughout: purge global variables, introduce BusActivation,
12795         BusConnections, BusRegistry, etc. objects instead.
12796
12797         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12798         message bus object
12799
12800         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12801         going to redo this a bit differently I think
12802
12803 2003-03-12  Havoc Pennington  <hp@redhat.com>
12804
12805         Mega-patch that gets the message bus daemon initially handling
12806         out-of-memory. Work still needed. Also lots of random
12807         moving stuff to DBusError instead of ResultCode.
12808
12809         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12810
12811         * dbus/dbus-connection.c
12812         (dbus_connection_send_with_reply_and_block): use DBusError
12813
12814         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12815         DBusResultCode
12816
12817         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12818         code here, as the only failure possible is OOM.
12819
12820         * bus/connection.c (bus_connection_disconnect):
12821         rename bus_connection_disconnected as it's a notification only
12822
12823         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12824         "name" on get_args failure, should be done by get_args;
12825         don't disconnect client for bad args, just return an error.
12826         (bus_driver_handle_service_exists): ditto
12827
12828         * bus/services.c (bus_services_list): NULL-terminate returned array
12829
12830         * bus/driver.c (bus_driver_send_service_lost)
12831         (bus_driver_send_service_acquired): send messages from driver to a
12832         specific client to the client's unique name, not to the broadcast
12833         service.
12834
12835         * dbus/dbus-message.c (decode_header_data): reject messages that
12836         contain no name field
12837         (_dbus_message_get_client_serial): rename to
12838         dbus_message_get_serial and make public
12839         (_dbus_message_set_serial): rename from set_client_serial
12840         (_dbus_message_set_reply_serial): make public
12841         (_dbus_message_get_reply_serial): make public
12842
12843         * bus/connection.c (bus_connection_foreach): allow stopping
12844         iteration by returning FALSE from foreach function.
12845
12846         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12847         (dbus_connection_free_preallocated_send)
12848         (dbus_connection_preallocate_send): new API for sending a message
12849         without possibility of malloc failure.
12850         (dbus_connection_send_message): rename to just
12851         dbus_connection_send (and same for whole function family)
12852
12853         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12854
12855         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12856
12857         * bus/activation.c: handle/return errors
12858
12859         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12860
12861         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12862         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12863         (_dbus_result_from_errno): move to this file
12864
12865 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12866
12867         * dbus/dbus-marshal.c:
12868         (_dbus_marshal_set_string):
12869         Take a length argument so we can marshal the correct string
12870         length.
12871
12872         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12873         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12874         (_dbus_marshal_test):
12875         * dbus/dbus-marshal.h:
12876         Add support for marshalling and demarshalling dicts.
12877
12878         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12879         Add support for TYPE DICT.
12880
12881         * dbus/dbus-message.c: (set_string_field):
12882         Adjust header padding.
12883
12884         (dbus_message_append_args_valist), (dbus_message_append_dict),
12885         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12886         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12887         (check_message_handling), (check_have_valid_message):
12888         * dbus/dbus-message.h:
12889         Add functions for setting and getting dicts.
12890
12891         * dbus/dbus-protocol.h:
12892         Add DBUS_TYPE_DICT.
12893
12894         * dbus/dbus.h:
12895         Add dbus-dict.h
12896
12897         * doc/dbus-specification.sgml:
12898         Add information about how dicts are marshalled.
12899
12900         * test/data/invalid-messages/dict-with-nil-value.message:
12901         * test/data/invalid-messages/too-short-dict.message:
12902         * test/data/valid-messages/dict-simple.message:
12903         * test/data/valid-messages/dict.message:
12904         Add sample messages containing dicts.
12905
12906 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12907
12908         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12909
12910 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12911
12912         * dbus/Makefile.am:
12913         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12914         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12915         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12916         (dbus_dict_set_double), (dbus_dict_set_string),
12917         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12918         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12919         (dbus_dict_set_string_array), (_dbus_dict_test):
12920         * dbus/dbus-dict.h:
12921         Fix according to comments from Havoc.
12922
12923 2003-03-06  Michael Meeks  <michael@server.home>
12924
12925         * configure.in: if we don't have kde-config, disable have_qt.
12926
12927 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12928
12929         * dbus/Makefile.am:
12930         Add dbus-dict.[ch]
12931
12932         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12933         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12934         (dbus_dict_remove), (dbus_dict_get_value_type),
12935         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12936         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12937         (dbus_dict_put_double), (dbus_dict_put_string),
12938         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12939         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12940         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12941         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12942         (dbus_dict_get_double), (dbus_dict_get_string),
12943         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12944         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12945         (dbus_dict_get_string_array), (_dbus_dict_test):
12946         * dbus/dbus-dict.h:
12947         Add DBusDict implementation
12948
12949         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12950         * dbus/dbus-test.h:
12951         Add _dbus_dict_test
12952
12953 2003-03-04  Havoc Pennington  <hp@pobox.com>
12954
12955         * test/data/auth/*: adapt to changes
12956
12957         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12958         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12959         userid
12960
12961         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12962         more stuff from being in a context name, to make the protocol
12963         simpler to deal with
12964
12965         * dbus/dbus-errors.c (dbus_error_has_name): new function
12966         (dbus_error_is_set): new function
12967
12968         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12969         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12970
12971         * dbus/dbus-connection.c (dbus_connection_flush): also read
12972         messages during a flush operation
12973
12974         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12975
12976 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12977
12978         * configure.in: Check for gethostbyname on Solaris.
12979
12980         * dbus/dbus-transport.c: (_dbus_transport_open):
12981         Remove duplicate "tcp" entry.
12982
12983         * doc/dbus-specification.sgml:
12984         Clarify some things.
12985
12986 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12987
12988         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12989         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12990         (_dbus_keyring_test):
12991         * dbus/dbus-md5.c: (_dbus_md5_compute):
12992         * dbus/dbus-sha.c: (_dbus_sha_compute):
12993         Plug memory leaks.
12994
12995 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12996
12997         * README: Add some things.
12998
12999 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13000
13001         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13002         after case DBUS_TYPE_BOOELAN.
13003
13004 2003-03-02  Havoc Pennington  <hp@pobox.com>
13005
13006         * test/break-loader.c (randomly_set_extreme_ints): add test that
13007         sets really huge and small integers
13008
13009         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13010         that length of boolean array fits in the string, and that
13011         string has room for boolean value in single-bool case.
13012
13013         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13014         optional value to "ALIGN" command which is what to fill the
13015         alignment with.
13016
13017         * test/data/valid-messages/no-padding.message: add regression
13018         test for the message padding problem
13019
13020 2003-03-02  Havoc Pennington  <hp@pobox.com>
13021
13022         * dbus/dbus-message.c (decode_header_data): fix to always init
13023         message_padding, from Benjamin Dauvergne
13024
13025 2003-03-02  Havoc Pennington  <hp@pobox.com>
13026
13027         * configure.in: 0.5
13028
13029         * NEWS: Update.
13030
13031 2003-03-01  Joe Shaw  <joe@assbarn.com>
13032
13033         * configure.in: Check for "struct cmsgcred" and try to access its
13034         members for BSD-like unices.
13035
13036         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13037         _dbus_read_credentials_unix_socket().
13038         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13039         read() for reading the credential byte off the unix socket.  Use
13040         struct cmsgcred on systems that support it.
13041
13042 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13043
13044         * glib/Makefile.am:
13045         * configure.in:
13046         Make gthreads-2.0 dependency optional. Don't build thread test if
13047         its not found.
13048
13049 2003-02-27  Havoc Pennington  <hp@pobox.com>
13050
13051         * dbus/dbus-connection.c
13052         (dbus_connection_send_message_with_reply_and_block): fix doh!
13053         doh! doh! bug that resulted in never removing a reply from the
13054         queue, no wonder we called get_reply_serial so much ;-)
13055
13056         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13057         and client serial instead of demarshaling them every time
13058
13059 2003-02-27  Havoc Pennington  <hp@pobox.com>
13060
13061         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13062         more inlined, using dbus-string-private.h, speeds things up
13063         substantially
13064
13065         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13066         when freeing the string
13067         (_dbus_string_steal_data): fix for align offset
13068         (undo_alignment): new function
13069
13070 2003-02-26  Havoc Pennington  <hp@redhat.com>
13071
13072         All kinds of audit fixes from Owen, plus initial attempt to
13073         handle unaligned memory returned from malloc.
13074
13075         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13076         leave room for align_offset and nul byte
13077         (fixup_alignment): function to track an align_offset and
13078         ensure real->str is aligned
13079         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13080         to allow a nul byte plus align offset
13081         (_dbus_string_lock): fix overflow issue
13082         (_dbus_string_init_const_len): add assertions on sanity of len,
13083         assign allocated to be ALLOCATION_PADDING larger than len
13084         (set_length): fixup the overflow handling
13085         (_dbus_string_get_data_len): fix overflow in assertion
13086         (open_gap): detect overflow in size of gap to be opened
13087         (_dbus_string_lengthen): add overflow check
13088         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13089         (_dbus_string_append): add overflow check
13090         (_dbus_string_append_unichar): overflow
13091         (_dbus_string_delete): fix overflow in assertion
13092         (_dbus_string_copy_len): overflow in assertion
13093         (_dbus_string_replace_len): overflows in assertions
13094         (_dbus_string_find): change to implement in terms of
13095         _dbus_string_find_to
13096         (_dbus_string_find_to): assorted fixage
13097         (_dbus_string_equal_c_str): assert c_str != NULL,
13098         fix logic so the function works
13099         (_dbus_string_ends_with_c_str): fix overflow thingy
13100         (_dbus_string_base64_encode): overflow fix
13101         (_dbus_string_validate_ascii): overflow
13102         (_dbus_string_validate_nul): overflow
13103
13104 2003-02-26  Havoc Pennington  <hp@redhat.com>
13105
13106         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13107
13108 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13109
13110         * configure.in:
13111         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13112
13113         * dbus/dbus-connection.c:
13114         * dbus/dbus-connection.h:
13115         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13116         Add dbus_connection_set_wakeup_main_function and use it when queueing
13117         incoming and outgoing messages.
13118
13119
13120         * dbus/dbus-dataslot.c:
13121         Threadsafe usage of DBusDataSlotAllocator
13122
13123         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13124         dbus_new can fail.
13125
13126         * dbus/dbus-server-unix.c:
13127         Add todo comment
13128
13129         * glib/dbus-gmain.c:
13130         Implement the new wakeup functions for glib.
13131
13132         * glib/Makefile.am:
13133         * glib/test-thread-client.c:
13134         * glib/test-thread-server.c:
13135         * glib/test-thread.h:
13136         Initial cut at some thread test code. Not really done yet.
13137
13138 2003-02-26  Havoc Pennington  <hp@pobox.com>
13139
13140         * dbus/dbus-connection.c
13141         (dbus_connection_send_message_with_reply_and_block): fix crash
13142         where we ref'd the outgoing message instead of the returned reply
13143
13144         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13145         at the end of this function, so if we didn't need to read for
13146         authentication, we reinstall it for receiving messages
13147
13148         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13149         a NULL sender for peer-to-peer case
13150
13151         * dbus/dbus-transport-unix.c (check_read_watch): handle
13152         !authenticated case correctly
13153
13154         * glib/dbus-gmain.c: add support for DBusServer
13155
13156         * dbus/dbus-server.c: add data slot support
13157
13158         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13159         return values and handle errors
13160
13161         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13162         DBusConnection
13163
13164         * Doxyfile.in (INPUT): add glib subdir
13165
13166         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13167         setup_with_g_main instead of hookup_with_g_main; write docs
13168
13169 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13170
13171         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13172         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13173         * dbus/dbus-message.c: (dbus_message_append_boolean),
13174         (dbus_message_append_boolean_array),
13175         (dbus_message_get_args_valist), (_dbus_message_test):
13176         * dbus/dbus-message.h:
13177         * doc/dbus-specification.sgml:
13178         Various fixes as pointed out by Havoc.
13179
13180         * test/data/invalid-messages/bad-boolean-array.message:
13181         * test/data/invalid-messages/bad-boolean.message:
13182         Add invalid boolean value test cases.
13183
13184 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13185
13186         * dbus/dbus-internals.c: (_dbus_type_to_string):
13187         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13188         (_dbus_marshal_validate_arg):
13189         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13190         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13191         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13192         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13193         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13194         (dbus_message_iter_get_double),
13195         (dbus_message_iter_get_boolean_array), (message_iter_test):
13196         * dbus/dbus-message.h:
13197         * dbus/dbus-protocol.h:
13198         * doc/dbus-specification.sgml:
13199         * test/data/valid-messages/lots-of-arguments.message:
13200         Add support for boolean and boolean array types.
13201
13202 2003-02-23  Havoc Pennington  <hp@pobox.com>
13203
13204         * dbus/dbus-keyring.c: finish most of this implementation and
13205         simple unit test
13206
13207         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13208         these barf if the error isn't cleared to NULL
13209
13210         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13211         (_dbus_create_directory): new function
13212
13213         * dbus/dbus-errors.c (dbus_set_error): fix warning
13214
13215         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13216         (_dbus_string_hex_decode): new function
13217         (test_hex_roundtrip): test code
13218
13219         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13220
13221         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13222
13223         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13224         the save-to-temp/rename trick to atomically write the new file
13225         (_dbus_string_parse_uint): new function
13226
13227 2003-02-22  Havoc Pennington  <hp@pobox.com>
13228
13229         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13230
13231 2003-02-22  Havoc Pennington  <hp@pobox.com>
13232
13233         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13234         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13235
13236         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13237
13238         * dbus/test/data/sha-1: add US government test suite for SHA-1
13239
13240 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13241
13242         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13243         Make string arrays NULL-terminated.
13244
13245         * dbus/dbus-memory.c: (dbus_free_string_array):
13246         * dbus/dbus-memory.h:
13247         New function for freeing NULL-terminated string arrays.
13248
13249         * dbus/dbus-message-builder.c: (append_quoted_string),
13250         (_dbus_message_data_load):
13251         Add support for array types.
13252
13253         * dbus/dbus-message.c: (check_message_handling):
13254         Add more types as test cases.
13255
13256         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13257         (_dbus_string_parse_double):
13258         Add the start offset to the end offset.
13259
13260         * test/data/valid-messages/lots-of-arguments.message:
13261         New test message with lots of arguments.
13262
13263 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13264
13265         * dbus/dbus-message.c: (dbus_message_append_nil),
13266         (dbus_message_append_int32), (dbus_message_append_uint32),
13267         (dbus_message_append_double), (dbus_message_append_string),
13268         (dbus_message_append_int32_array),
13269         (dbus_message_append_uint32_array),
13270         (dbus_message_append_double_array),
13271         (dbus_message_append_byte_array),
13272         (dbus_message_append_string_array):
13273         Fix all out-of-memory handling in these functions.
13274
13275 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13276
13277         * dbus/dbus-message.c: (dbus_message_append_nil):
13278         Fix a silly.
13279
13280 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13281
13282         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13283         (dbus_message_append_nil), (dbus_message_append_int32_array),
13284         (dbus_message_append_uint32_array),
13285         (dbus_message_append_double_array),
13286         (dbus_message_append_byte_array),
13287         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13288         (dbus_message_iter_get_int32_array),
13289         (dbus_message_iter_get_uint32_array),
13290         (dbus_message_iter_get_double_array),
13291         (dbus_message_iter_get_byte_array),
13292         (dbus_message_iter_get_string_array):
13293
13294         * dbus/dbus-message.h:
13295         Add functions for appending and getting arrays.
13296
13297 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13298
13299         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13300         element size at least 8 bytes, fixes mempool tests on
13301         64-bit machines.
13302
13303 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13304
13305         * dbus/dbus-transport-unix.c (unix_do_iteration):
13306         Unlock the connection mutex during a blocking select call.
13307         Add todo about how we need a way to wake up the select.
13308
13309         * dbus/dbus-connection-internal.h:
13310         * dbus/dbus-connection.c:
13311         Add _dbus_connection_lock and _dbus_connection_unlock.
13312
13313 2003-02-19  Havoc Pennington  <hp@pobox.com>
13314
13315         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13316         Doxyfile.in, not Doxyfile
13317
13318         * dbus/dbus-keyring.c: do some hacking on this
13319
13320         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13321
13322         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13323         dbus_error_init
13324         (dbus_set_error): remove dbus_error_init, check for message ==
13325         NULL *before* we sprintf into it, and add @todo about including
13326         system headers in this file
13327
13328         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13329
13330         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13331
13332         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13333         get various bits of user information based on either username
13334         or user ID
13335         (_dbus_homedir_from_username): new function
13336
13337 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13338
13339         * configure.in:
13340         Add check for nonposix getpwnam_r
13341
13342         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13343         Align the pool element size to a sizeof (void *) boundary.
13344
13345         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13346         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13347         General Solaris fixes.
13348
13349         * test/data/valid-messages/simplest-manual.message:
13350         Explicitly state that we want little-endian packing.
13351
13352 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13353
13354         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13355
13356         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13357         Added to create a transport connecting using a tcp/ip socket.
13358
13359         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13360         to a tcp socket at given host and port.
13361         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13362         hostname and port.
13363
13364         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13365
13366         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13367         Added to create a server listening on a TCP/IP socket.
13368
13369 2003-02-19  Havoc Pennington  <hp@pobox.com>
13370
13371         Throughout: mop up all the Doxygen warnings and undocumented
13372         stuff.
13373
13374         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13375         to search any paths.
13376
13377         * dbus/dbus-threads.c: move global mutex initializers to
13378         dbus-internals.h, multiple prototypes was confusing doxygen
13379         besides being kind of ugly
13380
13381         * Doxyfile (PREDEFINED): have Doxygen define
13382         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13383         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13384         (do not abuse the feature! it's for stuff like the autogenerated
13385         macros in dbus-md5.c, not just for things you don't feel like
13386         documenting...)
13387
13388 2003-02-18  Havoc Pennington  <hp@pobox.com>
13389
13390         * dbus/dbus-string.c (_dbus_string_zero): new function
13391
13392         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13393         wrap it in some dbus-friendly API
13394
13395         * dbus/dbus-types.h: add 16-bit types
13396
13397 2003-02-18  Joe Shaw  <joe@assbarn.com>
13398
13399         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13400         credentials from our currently running process.
13401         (get_word): Fix a buglet where we were copying the entire length
13402         instead of relative to our position.
13403
13404         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13405         keys on the stack... it's 640k of data.
13406
13407         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13408         read the credentials byte off the socket, even if we don't have
13409         SO_PEERCRED.
13410         (_dbus_poll): Implement poll() using select() for systems which
13411         don't have it.
13412
13413         * glib/test-dbus-glib.c (main): Print out an error if no
13414         parameters are given.
13415
13416         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13417         can fallback to a secondary auth mechanism if the first fails.
13418
13419 2003-02-18  Havoc Pennington  <hp@pobox.com>
13420
13421         * AUTHORS: add Alex
13422
13423 2003-02-17  Havoc Pennington  <hp@pobox.com>
13424
13425         * doc/dbus-specification.sgml: lots of cosmetic
13426         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13427         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13428         s/server/bus/ (except in authentication section). Add a section
13429         "Message Bus Message Routing"
13430
13431 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13432
13433         Release 0.4
13434
13435         * NEWS: Update
13436
13437 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13438
13439         * doc/dbus-specification.sgml:
13440         Specification updates.
13441
13442 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13443
13444         * bus/activation.c: (bus_activation_init), (child_setup),
13445         (bus_activation_activate_service):
13446         * bus/activation.h:
13447         * bus/main.c: (main):
13448         Set DBUS_ADDRESS environment variable.
13449
13450         * dbus/dbus-errors.c: (dbus_set_error):
13451         Don't use va_copy since that's a C99 feature.
13452
13453         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13454         (_dbus_spawn_async):
13455         * dbus/dbus-sysdeps.h:
13456         Add child_setup_func to _dbus_spawn_async.
13457
13458         * doc/dbus-specification.sgml:
13459         Update specification.
13460
13461         * test/spawn-test.c: (setup_func), (main):
13462         Fix test.
13463
13464 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13465
13466         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13467         Added todo.
13468
13469 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13470
13471         * doc/.cvsignore:
13472         * doc/Makefile.am:
13473         * doc/dbus-test-plan.sgml:
13474         Add test plan document.
13475
13476         * test/Makefile.am:
13477         Fix distcheck.
13478
13479 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13480
13481         * dbus/dbus-message.c: (decode_header_data),
13482         (_dbus_message_loader_return_buffer):
13483         Set the header padding amount when loading a message.
13484
13485 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13486
13487         * bus/dispatch.c: (send_one_message):
13488         Only send broadcast messages to registered connections.
13489
13490         * dbus/dbus-message.c: (dbus_message_name_is):
13491         * dbus/dbus-message.h:
13492         New convenience function.
13493
13494         * dbus/dbus-transport-debug.c: (do_reading):
13495         Only dispatch one message per run.
13496
13497         * test/Makefile.am:
13498         * test/bus-test.c: (new_connection_callback), (die),
13499         (test_hello_client1_handler), (test_hello_client2_handler),
13500         (test_hello_replies), (main):
13501
13502         * test/bus-test-loop.[ch]:
13503         Add these.
13504
13505 2003-02-16  Havoc Pennington  <hp@pobox.com>
13506
13507         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13508         backward conditional
13509
13510 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13511
13512         * dbus/dbus-connection.c:
13513         Implement sent_message_with_reply. (with_reply_and block is still
13514         busted).
13515         Made dispatch_message not lose message if OOM.
13516
13517         * dbus/dbus-errors.h:
13518         Add NoReply error (for reply timeouts).
13519
13520 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13521
13522         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13523         Actually free keys and values when destroying hashtable.
13524
13525 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13526
13527         * dbus/dbus-auth.c: (client_try_next_mechanism):
13528         Plug a leak.
13529
13530         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13531         Return TRUE if there's no thread implementation around.
13532
13533         * glib/dbus-gmain.c: (free_source),
13534         (dbus_connection_hookup_with_g_main):
13535         Make sure to remove the GSource when the connection is finalized.
13536
13537 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13538
13539         * bus/dispatch.c: (bus_dispatch_message_handler):
13540         * dbus/dbus-errors.h:
13541         Return an error if someone tries to send a message to a service
13542         that doesn't exist.
13543
13544 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13545
13546         * bus/activation.c: (load_directory), (bus_activation_init),
13547         (bus_activation_activate_service):
13548         * bus/activation.h:
13549         * bus/driver.c:
13550         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13551         More work on the activation handling.
13552
13553         * dbus/dbus-errors.h:
13554         Add some error messages
13555
13556         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13557         * dbus/dbus-message.h:
13558         New function that creates an error message.
13559
13560         * dbus/dbus-protocol.h:
13561         Add ACTIVATE_SERVER message.
13562
13563         * dbus/dbus-server-unix.c: (unix_handle_watch),
13564         (_dbus_server_new_for_domain_socket):
13565         Call _dbus_fd_set_close_on_exec.
13566
13567         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13568         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13569         (_dbus_fd_set_close_on_exec):
13570         * dbus/dbus-sysdeps.h:
13571         Add _dbus_fd_set_close_on exec function. Also add function that checks
13572         that all open fds are set to close-on-exec and warns otherwise.
13573
13574         * dbus/dbus-transport-unix.c:
13575         (_dbus_transport_new_for_domain_socket):
13576         Call _dbus_fd_set_close_on_exec.
13577
13578 2003-02-16  Havoc Pennington  <hp@pobox.com>
13579
13580         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13581         allow people to avoid setting SIGPIPE to SIG_IGN
13582         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13583         we've been asked not to
13584
13585 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13586
13587         * dbus/dbus-list.c: (_dbus_list_append_link),
13588         (_dbus_list_prepend_link):
13589         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13590         (dbus_realloc):
13591         Warning fixes.
13592
13593 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13594
13595         * bus/Makefile.am:
13596         * bus/activation.c: (bus_activation_entry_free),
13597         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13598         * bus/activation.h:
13599         * bus/main.c: (main):
13600         Add simple activation support, doesn't work yet though.
13601
13602 2003-02-15   Zack Rusin  <zack@kde.org>
13603
13604         * qt/dbus-qthread.cpp:  small casting fix
13605
13606 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13607
13608         * dbus/dbus-errors.c: (dbus_set_error):
13609         * dbus/dbus-errors.h:
13610         Add a few errors and make dbus_set_error void.
13611
13612         * dbus/dbus-sysdeps.c:
13613         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13614         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13615         * dbus/dbus-sysdeps.h:
13616         Add _dbus_spawn_async.
13617
13618         * test/spawn-test.c: (main):
13619         Test for _dbus_spawn_async.
13620
13621 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13622
13623         * dbus/dbus-internals.h:
13624         Fix build without tests.
13625
13626         * dbus/dbus-list.c: (alloc_link):
13627         Fix a segfault when a malloc fails.
13628
13629         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13630         (dbus_malloc0), (dbus_realloc):
13631         Add support for malloc debugging.
13632
13633 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13634
13635         * dbus/dbus-threads.c:
13636         * dbus/dbus-threads.h:
13637         Add condvars. Remove static mutext from API.
13638         Implement static mutexes by initializing them from threads_init.
13639
13640         * glib/dbus-gthread.c:
13641         * qt/dbus-qthread.cpp:
13642         Update with the thread api changes.
13643
13644
13645         * dbus/dbus-list.c:
13646         * dbus/dbus-list.h:
13647         Turn StaticMutex into normal mutex + init function.
13648         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13649         _dbus_list_append_link, _dbus_list_prepend_link
13650
13651
13652         * dbus/dbus-sysdeps.c:
13653         * dbus/dbus-sysdeps.h:
13654         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13655         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13656
13657         * dbus/dbus-protocol.h:
13658         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13659
13660         * dbus/dbus-message.c:
13661         Make ref/unref atomic.
13662         Fix some docs.
13663
13664         * dbus/dbus-connection-internal.h:
13665         * dbus/dbus-connection.c:
13666         * dbus/dbus-connection.h:
13667         Make threadsafe.
13668         Change _peek to _borrow,_return & _steal_borrowed.
13669         Change disconnect callback to event.
13670         Make dbus_connection_dispatch_messages reentrant.
13671
13672         * dbus/dbus-transport.c:
13673         Don't ref the connection on calls to the transport
13674         implementation.
13675
13676         * dbus/dbus-message-handler.c:
13677         Make threadsafe.
13678
13679         * glib/dbus-gmain.c:
13680         Don't use peek_message anymore
13681
13682         * test/Makefile.am:
13683         * test/debug-thread.c:
13684         * test/debug-thread.h:
13685         Simple thread implementation that asserts() on deadlocks in
13686         single-threaded code.
13687
13688         * test/bus-test.c:
13689         (main) Call debug_threads_init.
13690
13691         * test/watch.c:
13692         Use disconnect message instead of disconnect callback.
13693
13694         * bus/connection.c:
13695         * bus/connection.h:
13696         Don't call dbus_connection_set_disconnect_function. Instead export
13697         bus_connection_disconnect.
13698
13699         * bus/dispatch.c:
13700         Call bus_connection_disconnect when we get a disconnected message.
13701
13702 2003-02-15  Havoc Pennington  <hp@pobox.com>
13703
13704         * dbus/dbus-message.c (dbus_message_new): fool around with the
13705         docs
13706
13707 2003-02-14  Havoc Pennington  <hp@pobox.com>
13708
13709         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13710
13711         * dbus/dbus-memory.c: fail if the debug functions indicate we
13712         should
13713
13714         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13715         (_dbus_decrement_fail_alloc_counter): debug functions to
13716         simulate memory allocation failures
13717
13718 2003-02-14  Havoc Pennington  <hp@pobox.com>
13719
13720         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13721         to DBusError
13722
13723 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13724
13725         * bus/driver.c: (bus_driver_handle_hello):
13726         * bus/driver.h:
13727         * bus/services.c: (bus_service_lookup):
13728         Reorder message sending so we get a more sane order.
13729
13730         * test/bus-test.c: (message_handler):
13731         Fix tyop.
13732
13733 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13734
13735         * bus/driver.c: (bus_driver_send_service_deleted),
13736         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13737         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13738         (bus_driver_send_welcome_message),
13739         (bus_driver_handle_list_services),
13740         (bus_driver_handle_acquire_service),
13741         (bus_driver_handle_service_exists):
13742         * dbus/dbus-bus.c: (dbus_bus_register_client),
13743         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13744         * dbus/dbus-errors.c: (dbus_result_to_string):
13745         * dbus/dbus-errors.h:
13746         * dbus/dbus-message.c: (dbus_message_append_args),
13747         (dbus_message_append_args_valist), (dbus_message_get_args),
13748         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13749         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13750         (dbus_message_iter_get_byte_array),
13751         (dbus_message_iter_get_string_array), (message_iter_test),
13752         (check_message_handling), (_dbus_message_test):
13753         * dbus/dbus-message.h:
13754         * test/bus-test.c: (main):
13755         Change fields to arguments in messages, so that they won't be
13756         confused with header fields.
13757
13758         * glib/test-dbus-glib.c: (main):
13759         Remove append_fields from hello message.
13760
13761 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13762
13763         * dbus/dbus-errors.c:
13764         * dbus/dbus-message.c:
13765         * dbus/dbus-string.c:
13766         Documentation fixes.
13767
13768 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13769
13770         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13771         (remove_timeout):
13772         Implement support for timeouts in dbus-glib.
13773
13774 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13775
13776         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13777         * dbus/dbus-message.c: (process_test_subdir):
13778         * test/break-loader.c: (find_breaks_based_on):
13779         Plug some memory leaks.
13780
13781 2003-02-13  Richard Hult  <rhult@codefactory.se>
13782
13783         * bus/main.c: Fix build.
13784
13785         * dbus/dbus-errors.h:
13786         * dbus/dbus-errors.c: Fix copyright for Anders.
13787
13788 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13789
13790         * bus/Makefile.am:
13791         Add utils.[ch]
13792
13793         * bus/connection.c: (bus_connection_foreach):
13794         Fix a warning.
13795
13796         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13797         (unescape_string), (new_section), (parse_section_start),
13798         (parse_key_value), (report_error), (bus_desktop_file_load),
13799         (bus_desktop_file_get_string):
13800         * bus/desktop-file.h:
13801         Use DBusError for error reporting.
13802
13803         * bus/dispatch.c: (send_one_message),
13804         (bus_dispatch_message_handler):
13805         * bus/driver.c: (bus_driver_send_service_deleted),
13806         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13807         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13808         (bus_driver_send_welcome_message),
13809         (bus_driver_handle_list_services),
13810         (bus_driver_handle_acquire_service),
13811         (bus_driver_handle_service_exists):
13812         * bus/loop.c: (bus_loop_run):
13813         * bus/main.c:
13814         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13815
13816         * bus/utils.c: (bus_wait_for_memory):
13817         * bus/utils.h:
13818         New files with general utility functions.
13819
13820         * dbus/dbus-internals.h:
13821         Remove _DBUS_HANDLE_OOM.
13822
13823 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13824
13825         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13826         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13827         * dbus/dbus-errors.h:
13828         Add DBusError structure.
13829
13830 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13831
13832         * test/data/valid-messages/standard-acquire-service.message:
13833         * test/data/valid-messages/standard-hello.message:
13834         * test/data/valid-messages/standard-list-services.message:
13835         * test/data/valid-messages/standard-service-exists.message:
13836         Add some standard messages.
13837
13838 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13839
13840         * bus/driver.c: (bus_driver_send_welcome_message),
13841         (bus_driver_handle_list_services),
13842         (bus_driver_handle_acquire_service),
13843         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13844         Update for API changes in libdbus.
13845
13846         * dbus/dbus-message.c: (dbus_message_new_reply):
13847         * dbus/dbus-message.h:
13848         Remove the name argument. The spec states that replies shouldn't
13849         have a name.
13850
13851 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13852
13853         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13854         (report_error), (bus_desktop_file_load), (lookup_section),
13855         (lookup_line), (bus_desktop_file_get_raw),
13856         (bus_desktop_file_get_string):
13857         * bus/desktop-file.h:
13858         Some fixes, and new functions for getting a key value from a section.
13859
13860 2003-02-13  Havoc Pennington  <hp@pobox.com>
13861
13862         * test/data/auth/fail-after-n-attempts.auth-script: new test
13863
13864         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13865         reject the client.
13866
13867 2003-02-13  Havoc Pennington  <hp@pobox.com>
13868
13869         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13870         dbus_credentials_match were backward
13871
13872         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13873         NO_CREDENTIALS and ROOT_CREDENTIALS
13874
13875         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13876         into here. Never process more commands after we've reached an
13877         end state; store further data as unused bytes.
13878
13879         * test/data/auth/*: add more auth tests
13880
13881         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13882         command to match exact string and EXPECT_UNUSED to match unused
13883         bytes
13884
13885         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13886
13887 2003-02-12  Havoc Pennington  <hp@pobox.com>
13888
13889         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13890         \r off of popped lines
13891
13892         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13893         scripts
13894
13895         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13896         SEND, append \r\n
13897
13898 2003-02-12  Havoc Pennington  <hp@pobox.com>
13899
13900         * dbus/Makefile.am: remove break-loader from the build, since it
13901         moved.
13902
13903         * configure.in: add --enable-gcov to turn on coverage profiling
13904         flags and disable optimization
13905
13906 2003-02-10  Havoc Pennington  <hp@pobox.com>
13907
13908         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13909         initial cut at test framework for DBusAuth from laptop.
13910         Doesn't quite work yet but it compiles and I need to get
13911         it off the 266mhz laptop. ;-)
13912
13913         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13914         fix a memleak in error case
13915
13916 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13917
13918         * bus/Makefile.am:
13919         * bus/desktop-file.c:
13920         * bus/desktop-file.h:
13921         Add a desktop file parser.
13922
13923 2003-02-11  Zack Rusin  <zack@kde.org>
13924
13925         * qt/message.[h|cpp]: sample implementation
13926         of the KDE wrapper for DBusMessage
13927
13928 2003-02-09  Zack Rusin  <zack@kde.org>
13929
13930         * test/bus-test.c: make_it_compile
13931         * doc/dbus-specification.sgml: minimal semantic fix
13932
13933 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13934
13935         Release 0.3
13936
13937         * NEWS: Update
13938
13939 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13940
13941         * dbus/Makefile.am:
13942         * dbus/dbus-break-loader.c:
13943         * test/Makefile.am:
13944         * test/break-loader.c:
13945         Move dbus-break-loader to test/ and rename it to break-loader.
13946
13947 2003-02-02  Havoc Pennington  <hp@pobox.com>
13948
13949         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13950         for code to manage cookies in your home directory
13951
13952         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13953
13954         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13955         to authenticate, then disconnect the client.
13956
13957 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13958
13959         * dbus/dbus-message.c (dbus_message_append_fields):
13960         Correct docs.
13961
13962 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13963
13964         * doc/dbus-specification.sgml:
13965         Update address format section.
13966
13967 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13968
13969         * test/Makefile.am:
13970         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13971         (message_handler), (new_connection_callback), (loop_quit),
13972         (loop_run), (main):
13973         Add bus test.
13974
13975 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13976
13977         * bus/driver.c: (bus_driver_handle_service_exists):
13978         Simplify the code a bit.
13979
13980         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13981         Fix a silly.
13982
13983 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13984
13985         * bus/Makefile.am:
13986         Add libdbus-daemon.la and link to it.
13987
13988 2003-02-01  James Willcox  <jwillcox@gnome.org>
13989
13990         * bus/driver.c: (bus_driver_handle_own_service):
13991         Actually include the service reply code in the message.
13992
13993 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13994
13995         * bus/driver.c: (bus_driver_handle_service_exists):
13996         Don't unref the incoming message.
13997
13998 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13999
14000         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14001
14002 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14003
14004         * dbus/dbus-server.c: (dbus_server_listen):
14005         * dbus/dbus-transport.c: (_dbus_transport_open):
14006         ifdef out the calls to the debug transport and server.
14007
14008 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14009
14010         * dbus/dbus-watch.c (dbus_watch_get_flags):
14011         Add note in the docs that ERROR or HANGUP won't be returned
14012         and are assumed always on.
14013
14014         * glib/dbus-gmain.c (add_watch):
14015         Always add IO_ERR | IO_HUP
14016
14017         * dbus/dbus-message.h:
14018         Add semicolon after dbus_message_iter_get_string_array().
14019         Makes qt code build again
14020
14021 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14022
14023         * bus/driver.c: (create_unique_client_name),
14024         (bus_driver_handle_hello):
14025         Don't take a name, just use a numeric id to identify
14026         each client.
14027
14028         * dbus/Makefile.am:
14029         * dbus/dbus-bus.c: (dbus_bus_register_client),
14030         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14031         * dbus/dbus-bus.h:
14032         Add new convenience functions for communicating with the bus.
14033
14034         * dbus/dbus-message.h:
14035
14036         * dbus/dbus-protocol.h:
14037         Fix a typo.
14038
14039 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14040
14041         * dbus/dbus-message.c (dbus_message_append_fields):
14042         Add some more doc comments.
14043
14044 2003-02-01  Havoc Pennington  <hp@pobox.com>
14045
14046         * dbus/dbus-break-loader.c (randomly_modify_length): change
14047         a 4-byte value in the message as if it were a length
14048
14049         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14050         execute bit on saved files
14051
14052 2003-02-01  Havoc Pennington  <hp@pobox.com>
14053
14054         * dbus/dbus-break-loader.c (main): new program to find messages
14055         that break the loader.
14056
14057         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14058         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14059
14060         * dbus/dbus-string.c (_dbus_string_set_byte): new
14061
14062 2003-01-31  Havoc Pennington  <hp@pobox.com>
14063
14064         * dbus/dbus-message.c: refactor the test code to be more general,
14065         in preparation for writing a "randomly permute test cases to
14066         try to break the loader" program.
14067
14068 2003-01-31  Havoc Pennington  <hp@pobox.com>
14069
14070         * doc/dbus-specification.sgml: work on the specification
14071
14072         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14073         the protocol version of the message.
14074
14075         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14076         no longer specifies that.
14077         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14078         1/2/3/4)
14079
14080         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14081         "break" for DBUS_TYPE_NIL, remove @todo
14082
14083 2003-01-31  Havoc Pennington  <hp@pobox.com>
14084
14085         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14086         just set_is_error/get_is_error as this is a commonly-used
14087         function, and write docs.
14088
14089 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14090
14091         * dbus/dbus-address.c: (dbus_address_entry_free):
14092         Free key and value lists.
14093
14094         * dbus/dbus-internals.c: (_dbus_type_to_string):
14095         Add the types we didn't have.
14096
14097         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14098         (_dbus_marshal_validate_arg):
14099         Add NIL types.
14100
14101         * dbus/dbus-message.c: (dbus_message_set_sender):
14102         Remove todo about being able to set sender to NULL.
14103
14104         (dbus_message_set_is_error_reply),
14105         (dbus_message_get_is_error_reply):
14106         * dbus/dbus-message.h:
14107         New functions.
14108
14109         * dbus/dbus-protocol.h:
14110         Add error reply flag.
14111
14112         * test/data/valid-messages/opposite-endian.message:
14113         Add NIL type to test.
14114
14115 2003-01-31  Havoc Pennington  <hp@pobox.com>
14116
14117         * doc/dbus-specification.sgml: fully specify the header.  Add
14118         flags and major protocol version, and change header/body len to
14119         unsigned.
14120
14121         * dbus/dbus-message-builder.c (append_saved_length): append length
14122         as uint32
14123
14124         * dbus/dbus-message.c (dbus_message_create_header): change header
14125         length and body length to unsigned. Add the new fields from the
14126         spec
14127         (_dbus_message_loader_return_buffer): unsigned header/body len
14128
14129 2003-01-30  Havoc Pennington  <hp@pobox.com>
14130
14131         * dbus/dbus-auth.c: rework to use only REJECTED, no
14132         MECHANISMS
14133
14134         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14135         use REJECTED, suggested by Mark McLoughlin
14136
14137 2003-01-30  Havoc Pennington  <hp@pobox.com>
14138
14139         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14140         a better way to report errors here. e.g.  "unix address lacks
14141         path" or something. also "no such file" when the path doesn't
14142         exist, etc.
14143
14144         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14145         leaking list nodes
14146         (dbus_parse_address): add @todo about documenting address format,
14147         and allowing , and ; to be escaped
14148
14149 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14150
14151         * dbus/Makefile.am:
14152         Add dbus-address.[ch]
14153
14154         * dbus/dbus-address.c: (dbus_address_entry_free),
14155         (dbus_address_entries_free), (create_entry),
14156         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14157         (dbus_parse_address), (_dbus_address_test):
14158         * dbus/dbus-address.h:
14159         New files for dealing with address parsing.
14160
14161         * dbus/dbus-connection.c:
14162         Document timeout functions.
14163
14164         * dbus/dbus-message.c:
14165         Document dbus_message_new_from_message.
14166
14167         * dbus/dbus-server-debug.c:
14168         Document.
14169
14170         * dbus/dbus-server.c: (dbus_server_listen):
14171         Parse address and use correct server implementation.
14172
14173         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14174         * dbus/dbus-string.h:
14175         New function with test.
14176
14177         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14178         * dbus/dbus-test.h:
14179         Add address tests.
14180
14181         * dbus/dbus-transport-debug.c:
14182         Document.
14183
14184         * dbus/dbus-transport.c: (_dbus_transport_open):
14185         Parse address and use correct transport implementation.
14186
14187 2003-01-30  Havoc Pennington  <hp@pobox.com>
14188
14189         * dbus/dbus-message.c: use message->byte_order instead of
14190         DBUS_COMPILER_BYTE_ORDER throughout.
14191         (dbus_message_create_header): pad header to align the
14192         start of the body of the message to 8-byte boundary
14193
14194         * dbus/dbus-marshal.h: make all the demarshalers take const
14195         DBusString arguments.
14196
14197         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14198         validate message args here, so we don't have to do slow validation
14199         later, and so we catch bad messages as they are incoming. Also add
14200         better checks on header_len and body_len. Also fill in
14201         message->byte_order
14202
14203         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14204         implemented properly)
14205         (_dbus_string_validate_nul): new function to check all-nul
14206
14207         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14208         get_arg_end_pos and remove all validation
14209         (_dbus_marshal_validate_arg): actually do validation here.
14210
14211 2003-01-29  Havoc Pennington  <hp@pobox.com>
14212
14213         * dbus/dbus-message.c (check_message_handling): fix assertion
14214         failure on set_client_serial
14215
14216 2003-01-28  Havoc Pennington  <hp@pobox.com>
14217
14218         * dbus/dbus-server-debug.c: Add doc section comments
14219
14220         * dbus/dbus-transport-debug.c: add doc section comments
14221
14222 2003-01-28  Havoc Pennington  <hp@redhat.com>
14223
14224         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14225         the reverse order from how I had it
14226         (_dbus_string_base64_encode): reverse encoding order. I was
14227         basically byteswapping everything during encoding.
14228
14229 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14230
14231         * dbus/dbus-connection-internal.h:
14232         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14233         (_dbus_connection_remove_timeout):
14234         Add functions for adding and removing timeouts.
14235
14236         * dbus/dbus-message.c: (dbus_message_new_from_message):
14237         Add new function that takes a message and creates an exact
14238         copy of it, but with the refcount set to 1.
14239         (check_message_handling):
14240         Fix build error.
14241
14242         * dbus/dbus-server-protected.h:
14243         * dbus/dbus-server.c: (_dbus_server_init_base),
14244         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14245         (dbus_server_set_timeout_functions):
14246         (_dbus_server_remove_timeout):
14247         New functions so that a server can add and remove timeouts.
14248
14249         (dbus_server_listen):
14250         Add commented out call to dbus_server_debug_new.
14251
14252         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14253         Actually set the handler, doh.
14254
14255         * dbus/dbus-transport.c: (_dbus_transport_open):
14256         Add commented out call to dbus_transport_debug_client_new.
14257
14258         * dbus/Makefile.am:
14259         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14260
14261 2003-01-28  Havoc Pennington  <hp@pobox.com>
14262
14263         * dbus/dbus-message.c (check_message_handling): function to check
14264         on the loaded message, iterates over it etc.
14265
14266 2003-01-28  Havoc Pennington  <hp@pobox.com>
14267
14268         * test/Makefile.am (dist-hook): fix make distdir
14269
14270         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14271
14272 2003-01-27  Havoc Pennington  <hp@pobox.com>
14273
14274         * dbus/dbus-mempool.c (time_for_size): replace printf with
14275         _dbus_verbose
14276
14277         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14278         empty lines; fix the SAVE_LENGTH stuff to be
14279         START_LENGTH/END_LENGTH so it actually works; couple other
14280         bugfixes
14281
14282         * test/Makefile.am (dist-hook): add dist-hook for .message files
14283
14284         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14285         can be constant or locked.
14286         (_dbus_string_free): allow freeing a const string as
14287         documented/intended
14288
14289         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14290
14291         * dbus/dbus-test-main.c (main): take an argument which is the
14292         directory containing test data
14293
14294         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14295         argument to this and load all the messages in test/data/
14296         checking that they can be loaded or not loaded as appropriate.
14297
14298 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14299
14300         * bus/dispatch.c: (bus_dispatch_message_handler):
14301         Dispatch messages sent to services.
14302
14303         * bus/driver.c: (bus_driver_send_service_deleted),
14304         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14305         (bus_driver_send_service_acquired):
14306         Add helper functions for sending service related messages.
14307
14308         (bus_driver_send_welcome_message):
14309         Send HELLO_REPLY instead of WELCOME.
14310
14311         (bus_driver_handle_list_services):
14312         Send LIST_SERVICES_REPLY instead of SERVICES.
14313
14314         (bus_driver_handle_own_service),
14315         (bus_driver_handle_service_exists):
14316         New message handlers.
14317
14318         (bus_driver_handle_message):
14319         Invoke new message handlers.
14320
14321         (bus_driver_remove_connection):
14322         Don't remove any services here since that's done automatically
14323         by bus_service_remove_owner now.
14324
14325         * bus/driver.h:
14326         New function signatures.
14327
14328         * bus/services.c: (bus_service_add_owner):
14329         Send ServiceAcquired message if we're the only primary owner.
14330
14331         (bus_service_remove_owner):
14332         Send ServiceAcquired/ServiceLost messages.
14333
14334         (bus_service_set_prohibit_replacement),
14335         (bus_service_get_prohibit_replacement):
14336         Functions for setting prohibit replacement.
14337
14338         (bus_service_has_owner):
14339         New function that checks if a connection is in the owner queue of
14340         a certain service.
14341
14342         * bus/services.h:
14343         Add new function signatures.
14344
14345         * dbus/dbus-list.c: (_dbus_list_test):
14346         Add tests for _dbus_list_remove_last and traversing the list backwards.
14347
14348         * dbus/dbus-list.h:
14349         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14350         go any further, so return NULL then.
14351
14352         * dbus/dbus-protocol.h:
14353         Add new messages, service flags and service replies.
14354
14355 2003-01-26  Havoc Pennington  <hp@pobox.com>
14356
14357         * dbus/dbus-message-builder.c: implement, completely untested.
14358
14359         * test/data/*: add data to be used in testing.
14360         ".message" files are our simple loadable text format.
14361         ".message-raw" will be binary dumps of messages.
14362
14363         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14364
14365 2003-01-26  Havoc Pennington  <hp@pobox.com>
14366
14367         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14368
14369         * dbus/dbus-errors.c (dbus_result_to_string): add
14370         file errors
14371
14372         * dbus/dbus-message-builder.c: new file, will contain code to load
14373         up messages from files. Not implemented yet.
14374
14375 2003-01-26  Havoc Pennington  <hp@pobox.com>
14376
14377         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14378         the sender by setting to NULL
14379
14380 2003-01-26  Havoc Pennington  <hp@pobox.com>
14381
14382         The unit tests pass, but otherwise untested.  If it breaks, the
14383         tests should have been better. ;-)
14384
14385         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14386         the connection.
14387
14388         * dbus/dbus-message.c: redo everything so we maintain
14389         message->header as the only copy of the various fields.
14390         This avoids the possibility of out-of-memory in some cases,
14391         for example dbus_message_lock() can't run out of memory anymore,
14392         and avoids extra copying. Figured I may as well go ahead and do
14393         this since it was busted for dbus_message_lock to not return
14394         failure on OOM, and dbus_message_write_header was totally
14395         unchecked for OOM. Also fixed some random other bugs.
14396
14397         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14398         that strings are nul-terminated. Also, end_pos can be equal
14399         to string length just not greater than, I think.
14400         (_dbus_marshal_set_int32): new function
14401         (_dbus_marshal_set_uint32): new function
14402         (_dbus_marshal_set_string): new function
14403
14404         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14405         a warning, init timeout_list to NULL
14406         (dbus_connection_send_message): don't use uninitialized variable
14407         "serial"
14408
14409         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14410
14411 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14412
14413         * bus/driver.c: (bus_driver_handle_hello),
14414         (bus_driver_send_welcome_message):
14415         Plug leaks
14416
14417 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14418
14419         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14420         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14421         (dbus_connection_unref):
14422         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14423         * dbus/dbus-message.c: (dbus_message_unref),
14424         Plug memory leaks.
14425
14426         (dbus_message_get_fields):
14427         Remove debugging printout.
14428
14429         (_dbus_message_loader_return_buffer):
14430         Don't store the header string.
14431
14432         (_dbus_message_test):
14433         Plug leaks.
14434
14435 2003-01-26  Richard Hult  <rhult@codefactory.se>
14436
14437         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14438         the file descriptor list, since it can change under us.
14439
14440 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14441
14442         * glib/dbus-gmain.c: (dbus_connection_prepare),
14443         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14444         (remove_watch), (dbus_connection_hookup_with_g_main):
14445         Rewrite the glib handling to use its own GSource instead of a
14446         GIOChannel so we can catch messages put in the queue while waiting
14447         for a reply.
14448
14449 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14450
14451         * bus/Makefile.am:
14452         * bus/connection.c: (connection_disconnect_handler),
14453         (connection_watch_callback), (bus_connection_setup):
14454         * bus/dispatch.c: (send_one_message),
14455         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14456         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14457         * bus/dispatch.h:
14458         * bus/driver.c: (bus_driver_send_service_deleted),
14459         (bus_driver_send_service_created), (bus_driver_handle_hello),
14460         (bus_driver_send_welcome_message),
14461         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14462         (bus_driver_handle_message):
14463         * bus/driver.h:
14464         Refactor code, put the message dispatching in its own file. Use
14465         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14466         is disconnected.
14467
14468 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14469
14470         * dbus/dbus-internals.h:
14471         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14472
14473         * dbus/dbus-message.c: (dbus_message_get_sender):
14474         * dbus/dbus-message.h:
14475         Implement dbus_message_get_sender.
14476
14477         * dbus/dbus-protocol.h:
14478         Add message and service defines.
14479
14480 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14481
14482         * dbus/dbus-connection.c: (dbus_connection_send_message):
14483         * dbus/dbus-message-internal.h:
14484         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14485         (dbus_message_write_header):
14486         Remove _dbus_messag_unlock and don't set the client serial on a
14487         message if one already exists.
14488
14489 2003-01-24  Havoc Pennington  <hp@pobox.com>
14490
14491         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14492         list_pool
14493
14494         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14495         on OOM
14496
14497 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14498
14499         * dbus/dbus-list.c: (alloc_link), (free_link):
14500         Use a memory pool for the links.
14501
14502 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14503
14504         * bus/connection.c: (bus_connection_foreach):
14505         * bus/connection.h:
14506         Add new bus_connection_foreach function.
14507
14508         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14509         Add function that broadcasts a message to all clients.
14510
14511         (bus_driver_send_service_created), (bus_driver_handle_hello),
14512         (bus_driver_send_welcome_message),
14513         (bus_driver_handle_list_services), (bus_driver_message_handler):
14514         Implement functions that take care of listing services, and notifying
14515         clients when new services are created.
14516
14517         * bus/services.c: (bus_services_list):
14518         * bus/services.h:
14519         Add new function that returns an array of strings with the currently
14520         registered services.
14521
14522         * glib/dbus-glib.h:
14523         * glib/dbus-gmain.c:
14524         Update copyright year.
14525
14526 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14527
14528         * dbus/dbus-connection.c: (dbus_connection_send_message):
14529         Unlock the message in case it was sent earlier.
14530
14531         (dbus_connection_send_message_with_reply_and_block):
14532         Remove the reply message from the list.
14533
14534         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14535         Set array_len and new_pos correctly.
14536
14537         (_dbus_marshal_test):
14538         Remove debug output.
14539
14540         * dbus/dbus-message-internal.h:
14541         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14542         New function that returns the reply serial.
14543
14544         (_dbus_message_unlock):
14545         New function that unlocks a message and resets its header.
14546
14547         (dbus_message_append_string_array),
14548         (dbus_message_get_fields_valist),
14549         (dbus_message_iter_get_field_type),
14550         (dbus_message_iter_get_string_array),
14551         (dbus_message_get_fields),
14552         (dbus_message_append_fields_valist):
14553         Handle string arrays.
14554
14555         (dbus_message_set_sender):
14556         Make this function public since the bus daemon needs it.
14557
14558         (decode_header_data):
14559         Set the reply serial to -1 initially.
14560
14561         * dbus/dbus-message.h:
14562         Add dbus_message_set_sender.
14563
14564 2003-01-24  Havoc Pennington  <hp@pobox.com>
14565
14566         * doc/dbus-specification.sgml: add some stuff
14567
14568 2003-01-22  Havoc Pennington  <hp@pobox.com>
14569
14570         * doc/dbus-specification.sgml: Start to document the protocol.
14571
14572 2003-01-22  Havoc Pennington  <hp@pobox.com>
14573
14574         * dbus/dbus-connection.c
14575         (dbus_connection_send_message_with_reply_and_block): add some @todo
14576
14577         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14578
14579 2003-01-21  Havoc Pennington  <hp@pobox.com>
14580
14581         (patch untested because can't compile)
14582
14583         * bus/driver.c (create_unique_client_name): make this function
14584         never recycle client names. Also, caller should initialize
14585         the DBusString.
14586
14587         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14588
14589 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14590
14591         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14592         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14593         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14594         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14595         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14596         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14597         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14598         * dbus/dbus-marshal.h:
14599         * dbus/dbus-protocol.h:
14600         Add support for marshalling and demarshalling integer, double
14601         and string arrays.
14602
14603 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14604
14605         * bus/Makefile.am:
14606         Add driver.[ch]
14607
14608         * bus/connection.c: (connection_disconnect_handler):
14609         Remove the connection from the bus driver's list.
14610
14611         (connection_watch_callback): Dispatch messages.
14612
14613         (free_connection_data): Free connection name.
14614
14615         (bus_connection_setup): Add connection to the bus driver's list.
14616         (bus_connection_remove_owned_service):
14617         (bus_connection_set_name), (bus_connection_get_name):
14618         Add functions for setting and getting the connection's name.
14619
14620         * bus/connection.h:
14621         Add function headers.
14622
14623         * bus/driver.c: (create_unique_client_name),
14624         (bus_driver_handle_hello_message),
14625         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14626         (bus_driver_add_connection), (bus_driver_remove_connection):
14627         * bus/driver.h:
14628         * bus/main.c:
14629         * bus/services.c: (bus_service_free):
14630         * bus/services.h:
14631         New file that handles communication and registreation with the bus
14632         itself.
14633
14634 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14635
14636         * dbus/dbus-connection.c: (dbus_connection_send_message):
14637         Add a new client_serial parameter.
14638
14639         (dbus_connection_send_message_with_reply):
14640         Remove a @todo since we've implemented the blocking function.
14641
14642         (dbus_connection_send_message_with_reply_and_block):
14643         New function that sends a message and waits for a reply and
14644         then returns the reply.
14645
14646         * dbus/dbus-connection.h:
14647         Add new functions.
14648
14649         * dbus/dbus-errors.c: (dbus_result_to_string):
14650         * dbus/dbus-errors.h:
14651         Add new DBUS_RESULT.
14652
14653         * dbus/dbus-message-internal.h:
14654         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14655         (_dbus_message_set_sender), (dbus_message_write_header),
14656         (dbus_message_new_reply), (decode_header_data),
14657         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14658         * dbus/dbus-message.h:
14659         Add new functions that set the reply serial and sender.
14660         Also marshal and demarshal them correctly and add test.
14661
14662         * dbus/dbus-protocol.h:
14663         Add new DBUS_MESSAGE_TYPE_SENDER.
14664
14665         * glib/dbus-glib.h:
14666         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14667         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14668         (dbus_connection_hookup_with_g_main):
14669         * glib/test-dbus-glib.c: (main):
14670         Rewrite to use GIOChannel and remove the GSource crack.
14671
14672         * test/echo-client.c: (main):
14673         * test/watch.c: (check_messages):
14674         Update for changed APIs
14675
14676 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14677
14678         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14679
14680         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14681         Create a DBusTimeoutList.
14682         (dbus_connection_set_timeout_functions): Add new function to
14683         set timeout callbacks
14684
14685         * dbus/dbus-connection.h: Add public DBusTimeout API.
14686
14687         * dbus/dbus-message.c: (dbus_message_get_service):
14688         * dbus/dbus-message.h:  New function.
14689
14690         * dbus/dbus-server.c: Fix small doc typo.
14691
14692         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14693
14694 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14695
14696         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14697         of the string, just as long as specified.
14698
14699 2003-01-19  Havoc Pennington  <hp@pobox.com>
14700
14701         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14702         new function
14703
14704         * dbus/dbus-server.c (dbus_server_set_max_connections)
14705         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14706         keep track of current number of connections, and add API for
14707         setting a max (but haven't implemented enforcing the max yet)
14708
14709 2003-01-18  Havoc Pennington  <hp@pobox.com>
14710
14711         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14712         reading/writing if read_watch != NULL or write_watch != NULL.
14713
14714         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14715         the message loader code to actually load message->header and
14716         message->body into the newly-created message.
14717
14718         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14719         in OOM case
14720
14721         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14722         (dbus_connection_get_max_message_size)
14723         (dbus_connection_set_max_live_messages_size)
14724         (dbus_connection_get_max_live_messages_size): implement some
14725         resource limitation functions
14726
14727         * dbus/dbus-resources.c: new file implementing some of the
14728         resource limits stuff
14729
14730         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14731         missing docs, add @todo to handle OOM etc.
14732
14733         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14734         docs
14735
14736 2003-01-18  Havoc Pennington  <hp@pobox.com>
14737
14738         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14739         connection if it hasn't been already.
14740
14741         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14742         replace with DisconnectFunction.
14743
14744 2003-01-18  Havoc Pennington  <hp@pobox.com>
14745
14746         Building --disable-verbose-mode --disable-asserts --disable-tests
14747         cuts the library from 112K to 45K or so
14748
14749         * configure.in: check for varargs macro support,
14750         add --enable-verbose-mode, --enable-asserts.
14751
14752         * dbus/dbus-internals.h (_dbus_assert): support
14753         DBUS_DISABLE_ASSERT
14754         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14755
14756 2003-01-18  Havoc Pennington  <hp@pobox.com>
14757
14758         * dbus/dbus-test.c: include config.h so that tests actually run
14759
14760         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14761         so the failure mode when that assumption fails will be plenty
14762         obvious.
14763
14764 2003-01-18  Havoc Pennington  <hp@pobox.com>
14765
14766         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14767
14768         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14769         the distribution
14770
14771         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14772         since we don't want to use those in make check
14773
14774 2003-01-15  Havoc Pennington  <hp@redhat.com>
14775
14776         Release 0.2
14777
14778         * NEWS: update
14779
14780 2003-01-15  Havoc Pennington  <hp@redhat.com>
14781
14782         * test/Makefile.am: fix so that test source code ends up in the
14783         distribution on make distcheck
14784
14785 2003-01-15  Havoc Pennington  <hp@redhat.com>
14786
14787         Release 0.1.
14788
14789         * NEWS: update
14790
14791 2003-01-15  Havoc Pennington  <hp@redhat.com>
14792
14793         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14794         fix build when --disable-tests
14795
14796         * Makefile.am (EXTRA_DIST): put HACKING in here
14797
14798         * HACKING: document procedure for making a tarball release.
14799
14800 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14801
14802         * bus/connection.c: (connection_error_handler),
14803         (bus_connection_setup):
14804         * bus/main.c: (main):
14805         Make sure that the DBusConnectionData struct is NULLed
14806         out to prevent a segfault.
14807
14808         * dbus/dbus-errors.c: (dbus_result_to_string):
14809         * dbus/dbus-errors.h:
14810         * dbus/dbus-message.c: (dbus_message_get_fields),
14811         (dbus_message_get_fields_valist), (_dbus_message_test):
14812         * dbus/dbus-message.h:
14813         Make dbus_message_get_fields return a result code so we can
14814         track invalid fields as well as oom.
14815
14816 2003-01-11  Havoc Pennington  <hp@pobox.com>
14817
14818         * configure.in: change --enable-test/--enable-ansi action-if-given
14819         to enable_foo=$enableval instead of enable_foo=yes
14820
14821 2003-01-08  Havoc Pennington  <hp@pobox.com>
14822
14823         * dbus/dbus-string.c (_dbus_string_align_length): new function
14824
14825         * dbus/dbus-test-main.c: move main() for test app here
14826         * dbus/dbus-test.c
14827         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14828         symbol to run tests, because dbus-test isn't in the main
14829         library
14830
14831         Code review nitpicks.
14832
14833         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14834         for people with narrow emacs ;-). Assert client_serial was filled
14835         in. Assert message->name != NULL.
14836         (dbus_message_append_fields): have "first_field_type" arg separate
14837         from va list, needed for C++ binding that also uses varargs IIRC
14838         and helps with type safety
14839         (dbus_message_new): add @todo about using DBusString to store
14840         service/name internally
14841         (dbus_message_new): don't leak ->service and ->name on OOM later
14842         in the function
14843         (dbus_message_unref): free the service name
14844         (dbus_message_get_fields): same change to varargs
14845         i.e. first_field_type
14846         (_dbus_message_loader_return_buffer): assert that the message data
14847         is aligned (if not it's a bug in our code). Put in verbose griping
14848         about why we set corrupted = TRUE.
14849         (decode_header_data): add FIXME that char* is evil.  Was going to
14850         add FIXME about evil locale-specific string.h strncmp, but just
14851         switched to wacky string-as-uint32 optimization. Move check for
14852         "no room for field name" above get_const_data_len() to avoid
14853         assertion failure in get_const_data_len if we have trailing 2
14854         bytes or the like. Check for service and name fields being
14855         provided twice. Don't leak service/name on error. Require field
14856         names to be aligned to 4 bytes.
14857
14858         * dbus/dbus-marshal.c: move byte swap stuff to header
14859         (_dbus_pack_int32): uscore-prefix
14860         (_dbus_unpack_int32): uscore-prefix
14861         (_dbus_unpack_uint32): export
14862         (_dbus_demarshal_string): add @todo complaining about use of
14863         memcpy()
14864         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14865         handling allowing corrupt data to go unchecked
14866
14867 2003-01-08  Havoc Pennington  <hp@redhat.com>
14868
14869         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14870         to the select() as needed for authentication. (should be using
14871         _dbus_poll() not select, but for another day)
14872
14873         * dbus/dbus.h: include dbus/dbus-protocol.h
14874
14875 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14876
14877         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14878         dbus-connection.h
14879
14880 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14881
14882         * dbus/dbus-internals.c: (_dbus_type_to_string):
14883         New function that returns a string describing a type.
14884
14885         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14886         * dbus/dbus-marshal.h:
14887         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14888         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14889         (dbus_message_iter_get_byte_array):
14890         * dbus/dbus-message.h:
14891         Add new convenience functions for appending and getting message fields.
14892         Also add demarshalling routines for byte arrays.
14893
14894 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14895
14896         * dbus/dbus-connection-internal.h:
14897         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14898         (_dbus_connection_get_next_client_serial),
14899         (dbus_connection_send_message):
14900         * dbus/dbus-internals.h:
14901         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14902         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14903         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14904         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14905         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14906         (_dbus_verbose_bytes), (_dbus_marshal_test):
14907         * dbus/dbus-marshal.h:
14908         * dbus/dbus-message-internal.h:
14909         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14910         (dbus_message_write_header), (_dbus_message_lock),
14911         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14912         (dbus_message_get_name), (dbus_message_append_int32),
14913         (dbus_message_append_uint32), (dbus_message_append_double),
14914         (dbus_message_append_string), (dbus_message_append_byte_array),
14915         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14916         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14917         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14918         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14919         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14920         (decode_header_data), (_dbus_message_loader_return_buffer),
14921         (message_iter_test), (_dbus_message_test):
14922         * dbus/dbus-message.h:
14923         * dbus/dbus-protocol.h:
14924         * dbus/dbus-test.c: (main):
14925         * dbus/dbus-test.h:
14926         * glib/test-dbus-glib.c: (message_handler), (main):
14927         * test/echo-client.c: (main):
14928         * test/watch.c: (check_messages):
14929         Make messages sendable and receivable for real.
14930
14931 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14932
14933         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14934         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14935         * dbus/dbus-message.c: (dbus_message_append_int32),
14936         (dbus_message_append_uint32), (dbus_message_append_double),
14937         (dbus_message_append_string), (dbus_message_append_byte_array):
14938         Handle OOM restoration.
14939
14940 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14941
14942         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14943         (_dbus_demarshal_string), (_dbus_marshal_test):
14944         * dbus/dbus-marshal.h:
14945         * dbus/dbus-message.c: (dbus_message_get_name),
14946         Document these functions.
14947
14948         (dbus_message_append_int32), (dbus_message_append_uint32),
14949         (dbus_message_append_double), (dbus_message_append_string),
14950         (dbus_message_append_byte_array):
14951         * dbus/dbus-message.h:
14952         Add functions for adding message fields of different types.
14953
14954         * dbus/dbus-protocol.h:
14955         Add the different types.
14956
14957 2003-01-05  Havoc Pennington  <hp@pobox.com>
14958
14959         * bus/connection.c: implement routines for handling connections,
14960         first thing is keeping a list of owned services on each connection
14961         and setting up watches etc.
14962
14963         * bus/services.c: implement a mapping from service names to lists
14964         of connections
14965
14966         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14967
14968         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14969         to use static mutexes for global data
14970
14971         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14972         collection of functions to set/get application-specific data
14973         on the DBusConnection.
14974
14975 2003-01-04  Havoc Pennington  <hp@pobox.com>
14976
14977         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14978         (_dbus_poll): new function
14979
14980         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14981         copied from GLib
14982
14983         * bus/loop.c: initial code for the daemon main loop
14984
14985 2003-01-04  Havoc Pennington  <hp@pobox.com>
14986
14987         * test/watch.c (error_handler): make it safe if the error handler
14988         is called multiple times (if we s/error handler/disconnect
14989         handler/ we should just guarantee it's called only once)
14990
14991         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14992         error handler on disconnect (it's quite possible we should
14993         just change the error handler to a "disconnect handler," I'm
14994         not sure we have any other meaningful errors)
14995
14996         * configure.in: check for getpwnam_r
14997
14998         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14999         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15000         mechanism as in SASL spec, using socket credentials
15001
15002         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15003         (_dbus_send_credentials_unix_socket): new function
15004
15005         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15006         dbus_accept()
15007         (_dbus_write): only check errno if <0 returned
15008         (_dbus_write_two): ditto
15009
15010 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15011
15012         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15013         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15014         (_dbus_marshal_test):
15015         * dbus/dbus-marshal.h:
15016         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15017         to _dbus_marshal_utf8_string. Also fix some tests.
15018
15019 2002-12-28  Harri Porten  <porten@kde.org>
15020
15021         * configure.in: added check for C++ compiler and a very cheesy
15022         check for the Qt integration
15023
15024         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15025
15026         * qt/Makefile.am: added
15027
15028         * qt/.cvsignore: added
15029
15030         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15031         latter, added #ifdef QT_THREAD_SUPPORT guard.
15032
15033         * dbus/Makefile.am: added missing headers for make dist
15034
15035 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15036
15037         * dbus/Makefile.am: fixup export-symbols-regex.
15038
15039 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15040
15041         * acinclude.m4: Add this file and put the
15042         PKG_CHECK_MODULE macro in it.
15043
15044 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15045
15046         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15047         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15048         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15049         (_dbus_marshal_test):
15050         Make the demarshalling routines align the pos argument.
15051         Add string marshalling tests and fix the obvious bugs
15052         discovered.
15053
15054 2002-12-26  Havoc Pennington  <hp@pobox.com>
15055
15056         * dbus/dbus-auth.c: fixes fixes fixes
15057
15058         * dbus/dbus-transport-unix.c: wire up support for
15059         encoding/decoding data on the wire
15060
15061         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15062         (_dbus_auth_decode_data): append to target string
15063         instead of nuking it.
15064
15065 2002-12-26  Havoc Pennington  <hp@pobox.com>
15066
15067         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15068         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15069         doh
15070
15071         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15072         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15073         now). Main point is because I wanted unpack_uint32 to implement
15074         _dbus_verbose_bytes
15075         (_dbus_verbose_bytes): new function
15076
15077         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15078
15079         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15080         mechanism to handle a corrupt message stream
15081         (_dbus_message_loader_new): fix preallocation to only prealloc,
15082         not prelengthen
15083
15084         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15085         (_dbus_string_test): enhance tests for copy/move and fix the
15086         functions
15087
15088         * dbus/dbus-transport-unix.c: Hold references in more places to
15089         avoid reentrancy problems
15090
15091         * dbus/dbus-transport.c: ditto
15092
15093         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15094         leak reference count in no-message case
15095
15096         * test/watch.c (do_mainloop): handle adding/removing watches
15097         during iteration over the watches. Also, ref the connection/server
15098         stored on a watch, so we don't try to mangle a destroyed one.
15099
15100         * dbus/dbus-transport-unix.c (do_authentication): perform
15101         authentication
15102
15103         * dbus/dbus-auth.c (get_state): add a state
15104         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15105         (_dbus_auth_get_unused_bytes): append the unused bytes
15106         to the passed in string, rather than prepend
15107
15108         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15109         the auth conversation DBusAuth
15110
15111         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15112         (_dbus_transport_new_for_domain_socket): when creating a
15113         transport, pass in whether it's a client-side or server-side
15114         transport so we know which DBusAuth to create
15115
15116 2002-12-03  Havoc Pennington  <hp@pobox.com>
15117
15118         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15119         _after_ finalizing the derived members
15120         (unix_connection_set): unref watch if we fail to add it
15121
15122         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15123         transport first, so that the connection owned by the
15124         transport will be valid as the transport finalizes.
15125
15126         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15127         if necessary, and remove watches from the connection.
15128
15129         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15130
15131 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15132
15133         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15134         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15135         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15136         (_dbus_marshal_test):
15137         * dbus/dbus-marshal.h:
15138         Add string marshal functions and have the demarshal functions
15139         return the new position.
15140
15141 2002-12-25  Havoc Pennington  <hp@pobox.com>
15142
15143         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15144         it is a simple protocol that just maps directly to SASL.
15145
15146         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15147         initial implementation, not actually used yet.
15148
15149         * dbus/dbus-string.c (_dbus_string_find): new function
15150         (_dbus_string_equal): new function
15151         (_dbus_string_base64_encode): new function
15152         (_dbus_string_base64_decode): new function
15153
15154 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15155
15156         * dbus/Makefile.am:
15157         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15158         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15159         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15160         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15161         * dbus/dbus-marshal.h:
15162         * dbus/dbus-protocol.h:
15163         * dbus/dbus-test.c: (main):
15164         * dbus/dbus-test.h:
15165         Add un-optimized marshalling/demarshalling routines.
15166
15167 2002-12-25  Harri Porten  <porten@kde.org>
15168
15169         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15170
15171 2002-12-24  Zack Rusin  <zack@kde.org>
15172
15173         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15174         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15175         main loop stuff
15176
15177 2002-12-24  Havoc Pennington  <hp@pobox.com>
15178
15179         * glib/dbus-gthread.c: fix include
15180
15181         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15182         I think glib API needs to change, though, as you don't
15183         want to use DBusMessageFunction, you want to use the
15184         DBusMessageHandler object. Probably
15185         dbus_connection_open_with_g_main_loop()
15186         and dbus_connection_setup_g_main_loop() or something like that
15187         (but think of better names...) that just create a connection
15188         that has watch/timeout functions etc. already set up.
15189
15190         * dbus/dbus-connection.c
15191         (dbus_connection_send_message_with_reply): new function just to
15192         show how the message handler helps us deal with replies.
15193
15194         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15195
15196         * dbus/dbus-string.c (_dbus_string_test): free a string that
15197         wasn't
15198
15199         * dbus/dbus-hash.c: use memory pools for the hash entries
15200         (rebuild_table): be more paranoid about overflow, and
15201         shrink table when we can
15202         (_dbus_hash_test): reduce number of sprintfs and write
15203         valid C89. Add tests for case where we grow and then
15204         shrink the hash table.
15205
15206         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15207
15208         * dbus/dbus-connection.c (dbus_connection_register_handler)
15209         (dbus_connection_unregister_handler): new functions
15210
15211         * dbus/dbus-message.c (dbus_message_get_name): new
15212
15213         * dbus/dbus-list.c: fix docs typo
15214
15215         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15216         an object representing a handler for messages.
15217
15218 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15219
15220         * glib/dbus-glib.h:
15221         * glib/dbus-gthread.c: (dbus_gthread_init):
15222         Don't use the gdbus prefix for public functions.
15223
15224 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15225
15226         * Makefile.am:
15227         * configure.in:
15228         Add GLib checks and fixup .pc files
15229
15230         * glib/Makefile.am:
15231         * glib/dbus-glib.h:
15232         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15233         (gdbus_connection_check), (gdbus_connection_dispatch),
15234         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15235         (dbus_connection_gsource_new):
15236         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15237         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15238         * glib/test-dbus-glib.c: (message_handler), (main):
15239         Add GLib support.
15240
15241 2002-12-15  Harri Porten  <porten@kde.org>
15242
15243         * autogen.sh: check for libtoolize before attempting to use it
15244
15245         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15246         struct.
15247
15248         * .cvsignore: ignore more stamp files
15249
15250         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15251
15252         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15253         without make install.
15254
15255 2002-12-15  Havoc Pennington  <hp@pobox.com>
15256
15257         * dbus/dbus-threads.c: add thread stubs that a higher library
15258         layer can fill in. e.g. the GLib wrapper might fill them in with
15259         GThread stuff. We still need to use this thread API to
15260         thread-safe-ize the library.
15261
15262 2002-12-12  Havoc Pennington  <hp@pobox.com>
15263
15264         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15265         below new interfaces and include fewer system headers.
15266
15267         * dbus/dbus-sysdeps.c (_dbus_read): new function
15268         (_dbus_write): new function
15269         (_dbus_write_two): new function
15270         (_dbus_connect_unix_socket): new function
15271         (_dbus_listen_unix_socket): new function
15272
15273         * dbus/dbus-message-internal.h: change interfaces to use
15274         DBusString
15275
15276 2002-12-11  Havoc Pennington  <hp@pobox.com>
15277
15278         * dbus/dbus-types.h: add dbus_unichar
15279
15280         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15281
15282         * dbus/dbus-connection.c (dbus_connection_send_message): return
15283         TRUE on success
15284
15285         * dbus/dbus-transport.c: include dbus-watch.h
15286
15287         * dbus/dbus-connection.c: include dbus-message-internal.h
15288
15289         * HACKING: add file with coding guidelines stuff.
15290
15291         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15292         handling here, for security purposes (as in vsftpd). Not actually
15293         using this class yet.
15294
15295         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15296         system/libc usage here, as in vsftpd, for ease of auditing (and
15297         should also simplify portability). Haven't actually moved all the
15298         system/libc usage into here yet.
15299
15300 2002-11-25  Havoc Pennington  <hp@pobox.com>
15301
15302         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15303         always print the first verbose message.
15304
15305 2002-11-24  Havoc Pennington  <hp@pobox.com>
15306
15307         * test/echo-client.c, test/echo-server.c: cheesy test
15308         clients.
15309
15310         * configure.in (AC_CHECK_FUNCS): check for writev
15311
15312         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15313         function
15314
15315         * dbus/dbus-list.c (_dbus_list_foreach): new function
15316
15317         * dbus/dbus-internals.c (_dbus_verbose): new function
15318
15319         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15320         representing a server that listens for connections.
15321
15322         * dbus/.cvsignore: create
15323
15324         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15325         public API for reporting errors
15326
15327         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15328         public object representing a connection that
15329         sends/receives messages. (Same object used for
15330         both client and server.)
15331
15332         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15333         Basic abstraction for different kinds of stream
15334         that we might read/write messages from.
15335
15336 2002-11-23  Havoc Pennington  <hp@pobox.com>
15337
15338         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15339         _DBUS_INT_MAX
15340
15341         * dbus/dbus-test.c (main): add list test, and include
15342         dbus-test.h as intended
15343
15344         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15345         (_dbus_hash_table_remove_int): return value indicates
15346         whether the entry existed to remove
15347
15348         * dbus/dbus-list.c: add linked list utility class,
15349         with docs and tests
15350
15351         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15352         array sometimes.
15353
15354 2002-11-23  Havoc Pennington  <hp@pobox.com>
15355
15356         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15357         DBUS_END_DECLS to nothing, that should fix this once and for all
15358
15359         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15360
15361         * dbus/dbus-message.c, dbus/dbus-hash.c:
15362         add some missing @brief
15363
15364 2002-11-23  Havoc Pennington  <hp@pobox.com>
15365
15366         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15367         to avoid confusing Doxygen
15368
15369         * dbus/dbus-hash.c: @} not }@
15370
15371         * dbus/dbus-message.c (struct DBusMessage): split out
15372         internals docs
15373
15374 2002-11-23  Havoc Pennington  <hp@pobox.com>
15375
15376         * configure.in: pile on more warning flags if using gcc
15377
15378         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15379         to document static functions
15380
15381         * configure.in: add summary to end of configure so it
15382         looks nice and attractive
15383
15384         * dbus/dbus-hash.c: finish implementation and write unit
15385         tests and docs
15386
15387         * configure.in: add --enable-tests to enable unit tests
15388
15389         * dbus/dbus-test.c: test program to run unit tests
15390         for all files in dbus/*, initially runs a test for
15391         dbus-hash.c
15392
15393         * dbus/dbus-internals.h: file to hold some internal utility stuff
15394
15395 2002-11-22  Havoc Pennington  <hp@redhat.com>
15396
15397         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15398         "ported" away from Tcl
15399
15400         * dbus/dbus-types.h: header for types such as dbus_bool_t
15401
15402 2002-11-22  Havoc Pennington  <hp@redhat.com>
15403
15404         * dbus/dbus.h: fixups for doc warnings
15405
15406         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15407         macros
15408         (QUIET): make it quiet so we can see warnings
15409
15410         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15411
15412 2002-11-22  Havoc Pennington  <hp@redhat.com>
15413
15414         * Makefile.am: include "Doxyfile" target in all-local
15415
15416         * configure.in: generate the Doxyfile
15417
15418         * Doxyfile.in: move Doxyfile here, so we can use
15419         configure to generate a Doxyfile with the right
15420         version number etc.
15421
15422 2002-11-22  Havoc Pennington  <hp@redhat.com>
15423
15424         * dbus/dbus-message.c: move inline docs into .c file
15425
15426         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15427         so all docs are under doc/
15428         (MAN_EXTENSION): generate man pages. Use extension
15429         ".3dbus" which matches ".3qt" on my system,
15430         I guess this is OK, I don't know really.
15431         (FILE_PATTERNS): look for .c files not .h, makes sense
15432         for plain C I think
15433
15434 2002-11-22  Havoc Pennington  <hp@pobox.com>
15435
15436         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15437         because any app can be a server, and any app can be a client,
15438         the bus is a special kind of server.
15439
15440 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15441
15442         * Doxyfile : adding. Still needs Makefile rules to be generated
15443         automatically (just run "doxygen" in the toplevel dir for now to
15444         generate docs)
15445
15446         * dbus/dbus-message.h : Adding sample docs (javadoc since
15447         resembles gtk-doc a little more)
15448
15449         * dbus/dbus.h : Adding sample docs
15450
15451 2002-11-21  Havoc Pennington  <hp@redhat.com>
15452
15453         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15454         so we can allow ourselves to include files directly,
15455         instead of having to use dbus.h
15456
15457         * dbus/dbus.h: fill in
15458
15459         * dbus/dbus-message.h: sketch out a sample header file.
15460         Include griping if you include it directly instead of
15461         via dbus.h
15462
15463         * dbus/dbus-macros.h: new file with macros for extern "C",
15464         TRUE/FALSE, NULL, etc.
15465
15466         * doc/file-boilerplate.c: put include guards in here
15467
15468 2002-11-21  Havoc Pennington  <hp@redhat.com>
15469
15470         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15471
15472         * COPYING: include the GPL as well, and license code
15473         under both AFL and GPL.
15474
15475 2002-11-21  Havoc Pennington  <hp@redhat.com>
15476
15477         * acconfig.h: get rid of this
15478
15479         * autogen.sh (run_configure): add --no-configure option
15480
15481         * configure.in: remove AC_ARG_PROGRAM to make
15482         autoconf complain less. add AC_PREREQ.
15483         add AC_DEFINE third arg.
15484
15485 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15486
15487         * doc/Makefile.am:
15488         Fix references so we can distcheck.
15489
15490 2002-11-21  Havoc Pennington  <hp@redhat.com>
15491
15492         * Initial module creation
15493