* dbus-win.patch: removed committed patch.
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * dbus-win.patch: removed committed patches. 
4
5 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
6
7         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
8         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
9         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
10         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
11         completed _dbus_pipe support. 
12
13 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
14
15         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
16         changed type or port to pointer, because the port is given back.
17
18         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
19         implemented returning tcp port. Skipping port parameter
20         and non integer port values in config <listen> statement
21         needs more effort.
22
23         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
24         (_dbus_listen_tcp_socket): return the real used tcp port.
25
26         * bus/dbus-daemon.1.in: added <listen> tcp examples
27
28 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
29
30         * cmake/config.h.cmake: win32 msvc bug fix
31
32 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
33
34         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
35         using _WINCE does not work.
36
37 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
38
39         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
40         committed.
41
42 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
43
44         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
45         rename pipe related write() function calls to _dbus_write_pipe().
46
47 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
48
49         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
50         uses DBUS_WIN for alls win32 related #ifdefs, 
51         some minor cleanups
52
53 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
54
55         * dbus-win.patch: updated patch for bus/dispatch.c.
56
57 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
58
59         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
60         dbus_connection_get_unix_process_id): Let return them valid user id's, 
61         otherwise bus-test fails. How to replace on win32 ?.
62         
63         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
64         fix memory leak.
65
66 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
67
68         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
69         use dbus friendly error name.
70         (fill_win_user_info_homedir): print user name in error case too.
71
72 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
73
74         * cmake/ConfigureChecks.cmake: fixed socketpair check
75
76 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
77
78         * bus/dispatch.c: disabled segfault test on win32 for now
79
80 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
81
82         * configure.in, cmake/ConfigureChecks.cmake: added check 
83         for setrlimit. 
84         * test/test-segfault.c: only include setrlimit stuff only 
85         when available.  
86
87 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
88
89         * test/test-segfault.c: unix compile fix.
90         * dbus-win.patch: removed obsolate patches.
91
92 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
93
94         * bus/activation.c: removed obsolate include header.
95         * test/test-segfault.c: win32 compile fix, rlimit 
96         isn't available on win32.
97         * dbus-win.patch: removed some more patches, they
98         are applied or obsolate 
99
100 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
101
102         * bus-win.patch: fixes unix listen problems, dbus-test 
103         now runs.
104
105 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
106
107         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
108         cmake/CMakeLists.txt: win32 compile fix
109
110 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
111
112         * dbus-win.patch, README.win: added available win32 
113         patches from windbus project (http://sf.net/projects/windbus)
114
115 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
116
117         * bus/activation.c: (bus_activation_activate_service):
118         fixed call to _dbus_spawn_async_with_babysitter().
119
120 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
121
122         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
123         added environment pointer as function parameter, used on win32.
124
125         * test/spawn-test.c: fixed call to above mentioned function.
126
127 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
128
129         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
130         added configure check for unistd.h.
131
132 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
133
134         * test/Makefile.am: fixed test data copy problem in 
135         out of source build, when sources came from svn or cvs. 
136
137 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
138
139         * dbus/*-win.*,bus/*-win.*: added win32 platform related
140         files. These files are only added to the cmake build system.  
141         The missing dbus-win.patch file will be added later. 
142
143 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
144
145         * cmake: new directory, contains cmake build support.
146         See http://www.cmake.org for more informations.
147         Currently only unix will be buildable because some 
148         win32 required files are still missing. 
149
150 2007-03-03  Thiago Macieira  <thiago@kde.org>
151
152         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
153         output and add it to the DBusError message we return.
154
155         * tools/dbus-launch.1:
156         * tools/dbus-launch.c: Add option --close-stderr to, well,
157         close stderr before starting dbus-daemon.
158
159 2007-01-31  Havoc Pennington  <hp@redhat.com>
160
161         * bus/dbus-daemon.1.in: write a section in the man page on running
162         a test daemon for debugging purposes
163
164 2007-01-26  Havoc Pennington  <hp@redhat.com>
165
166         * bus/session.conf.in: override all the default limits with much
167         higher limits on the session bus, there is no reason the session
168         bus should have low limits
169
170         * bus/config-parser.c (bus_config_parser_new): increase default
171         limits so they are less likely to be hit; in particular the max
172         replies per connection was way too low
173
174 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
175
176         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
177         a pointer to the tutorial maintained as part of dbus-python
178
179 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
180
181         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
182         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
183         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
184
185 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
186
187         * tools/dbus-monitor.c: gettimeofday() is not available 
188         on windows so we have to provide our own. It's taken from 
189         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
190
191 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
192
193         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
194         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
195         is in dbus-sysdeps-win.c (not in this patch).
196
197         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
198         with InterlockedInc/Decrement. 
199         - Patches from Christian Ehrlicher
200         
201 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
202
203         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
204
205 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
206
207         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
208         fix mispaced const statement. - Patch from Peter Kümmel
209
210 2006-12-19  Ray Strode  <rstrode@redhat.com>
211
212         * bus/bus.c (process_config_every_time):
213         don't overwrite existing bus context activation object
214         until after we've checked that the new activation is
215         valid.
216
217         * bus/main.c 
218         (signal_handler), (handle_reload_watch):
219         don't call exit() on failure, instead make do and keep
220         going.
221         (close_reload_pipe): new function to turn off
222         hangup-causes-config-reload behavior if an unexpected
223         error occurs
224
225 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
226
227         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
228         correctness fix. - Patch from Christian Ehrlicher
229
230 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
231
232         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
233         we should also use it. - Patch from Christian Ehrlicher
234
235 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
236   
237         * dbus-sysdeps-util.c: added win32 related tests
238
239 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
240
241         * dbus/dbus-string.c (_dbus_string_pop_line),
242         bus/desktop-file.c (parse_section_start,
243         parse_comment_or_blank,parse_key_value,): uses
244         _dbus_string_find_eol() to support platform independent eol style.
245
246 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
247
248         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
249         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
250               _dbus_string_find_eol().
251         Approved by: Havoc Pennington.
252
253 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
254
255         * configure.in: Added switch to disable user_database caching.
256
257         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
258         be able disable user_dabase caching.
259
260 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
261
262         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
263         struct. It is unnecessary we have a global one already. Also remove 
264         bus_context_get_user_database function, it is no longer needed.
265         Flush the global database on reload.
266
267         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
268         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
269
270         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
271         Add _dbus_user_database_flush_system. 
272         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
273         Small unrelated change in _dbus_is_a_number: change 
274         _dbus_string_parse_int to _dbus_string_parse_uint. 
275
276         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
277         _dbus_groups_from_uid.
278
279         * bus/policy.c, bus/policy.h: Change call to 
280         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
281         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
282         needs it.
283
284 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
285
286         * bus/signal.c: Fix match_rule_equal errata
287         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
288         <kimmo.hamalainen@nokia.com>)
289
290 2006-11-19  Thiago Macieira  <thiago@kde.org>
291
292         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
293         _dbus_pthread_condvar_wait,
294         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
295         pthread_self() after coming back from a conditional variable
296         wait as well as in one codepath where it was forgotten.
297         Approved by: Havoc Pennington.
298
299 2006-11-17  Havoc Pennington  <hp@redhat.com>
300
301         * update-dbus-docs.sh: allow setting fd.org username via env
302         variable. Make it run autogen with --enable-xml-docs=yes
303         --enable-doxygen-docs=yes so configure will fail if the required
304         tools are missing.
305
306 2006-11-17  Havoc Pennington  <hp@redhat.com>
307
308         * doc/dbus-faq.xml: minor FAQ tweaks
309
310 2006-11-14  Havoc Pennington  <hp@redhat.com>
311         
312         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
313         dbus_get_local_machine_id() to its own file, no substantive
314         changes. There are a couple other things we might want to add that
315         are "misc" so moving out of dbus-connection.[hc] which is big
316         enough already.
317         
318 2006-11-14  Havoc Pennington  <hp@redhat.com>
319
320         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
321         UUID had the timestamp last, but the implementation had it first;
322         move it to last since I think it's a tiny bit nicer (easier to
323         compare at a glance, faster to sort, less code), and will not
324         cause any practical compatibility problems. Also, always convert
325         the timestamp to big endian.
326
327         * doc/dbus-specification.xml: Clean up the docs on the UUID.
328
329         * tools/dbus-uuidgen.1: more prominently say it is not suitable
330         as a replacement for regular uuidgen/RFC4122.
331
332 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
333
334         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
335         the correct value so we don't assert when initalizing recursive threads
336
337         * test/name-test/test-thread-init.c: call dbus_threads_init_default
338         instead of _dbus_threads_init_debug since it is more of a real world
339         test
340
341 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
342
343         * Released 1.0.0
344
345 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
346
347         * AUTHORS: added Peter and Tor of windows porting fame
348
349 2006-11-08  Havoc Pennington  <hp@redhat.com>
350
351         * doc/dbus-specification.xml: add a note about protocol stability
352
353         * doc/TODO: Remove "important for 1.0" section, replace with
354         "important for 1.2" section
355         
356 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
357
358         * README: remove some of the out of date flags
359
360         * doc/TODO: Remove todo items which are done
361
362 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
363
364         * tools/dbus-monitor.c: Handle sigint so we flush stdout
365         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
366
367 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
368
369         * tools/dbus-monitor.1: update the manpage for dbus-monitor
370         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
371
372 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
373
374         * AUTHORS: Update with all people listed in the ChangeLog
375
376 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
377
378         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
379         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
380
381 2006-11-07  Havoc Pennington  <hp@redhat.com>
382
383         * HACKING: Update release instructions to include stuff about
384         stable releases, branching, etc. May not be totally correct,
385         please fix if needed, but keep instructions up-to-date so we do
386         each stable release consistently in the future.
387
388 2006-11-07  Havoc Pennington  <hp@redhat.com>
389
390         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
391         documentation updates. Bump faq/spec versions (not to 1.0; I don't
392         think the spec will be "finished"/1.0 when we ship the 1.0 library).
393
394 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
395
396         * bus/bus.c: Missed patch - pass in the context to the directory watch
397
398 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
399
400         * Released D-Bus 1.0 RC 3(0.95)
401
402 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
403
404         * bus/activation.c (bus_activation_new): don't fail if we can not read
405         the directory as it may not exist
406
407 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
408
409         * bus/config-parser.c (service_dirs_find_dir): use 
410         _dbus_list_get_next_link so we don't get stuck in an infinite loop
411         (start_busconfig_child): move processing of standard_session_servicedirs
412         tags here because they have no content
413         (bus_config_parser_content): check we don't have content in 
414         standard_session_servicedirs tag
415
416 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
417
418         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
419         Packagers need to own this directory
420
421 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
422
423         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
424         <standard_session_servicedirs> tag with a <sevicedir> tag that
425         points to the test service directory
426
427 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
428
429         * configure.in: Add a check for DIR *dirp->dd_fd
430
431         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
432         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
433         of both Solaris and Irix
434
435 2006-11-01  Havoc Pennington  <hp@redhat.com>
436
437         * bus/dbus-daemon.1.in: document standard_session_servicedirs
438
439 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
440
441         * configure.in: expose DBUS_DATADIR
442         
443         * bus/config-parser.c: add the standard_session_servicedirs element
444         to the parser
445         (bus_config_parser_content): process the standard_session_servicedirs
446         element by getting the standard directories from sysdeps and merging
447         them into the service directory list
448         (test_default_session_servicedirs): make sure we get what we expect
449
450         * bus/session.conf.in: replace the servicedir tag with the 
451         standard_session_servicedirs tag
452
453         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
454         dbus-sysdeps.h to avoid circular header dependencies
455
456         * dbus/dbus-sysdeps.h: add the typedef of DBusList
457
458         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
459         which takes a string of directories delimited by colons, parses them 
460         out, appends a suffix and puts them in a list ignoring empty elements
461         (_dbus_get_standard_session_servicedirs): returns the standard 
462         directories for a session bus to look for service activation files
463         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
464         DBUS_DATADIR directories
465
466         * test/data/valid-config-files/many-rules.conf: add the 
467         standard_session_servicedirs tag to the valid config file tests
468
469 2006-10-30  Havoc Pennington  <hp@redhat.com>
470
471         * tools/dbus-launch.1, doc/TODO: capture intent to change the
472         command line options of dbus-launch a bit post 1.0
473
474 2006-10-27  Havoc Pennington  <hp@redhat.com>
475         
476         * dbus/dbus-connection.c (dbus_connection_open_private): document
477         how to choose shared vs. private connections
478
479 2006-10-27  Havoc Pennington  <hp@redhat.com>
480
481         * dbus/dbus-test.c: enclose more of the file in the
482         DBUS_BUILD_TESTS check.
483
484         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
485         DBUS_DISABLE_ASSERT case.
486
487         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
488         that it only works on the server side
489
490         * dbus/dbus-bus.c: add a global lock covering the BusData we
491         attach to each connection
492         (internal_bus_get): lock our access to the BusData
493         (dbus_bus_register): lock the entire registration process
494         with _DBUS_LOCK(bus_datas). If we get the lock and 
495         registration is already complete, silently return (vs. previous
496         behavior of aborting).
497         (dbus_bus_set_unique_name): lock the BusData
498         (dbus_bus_get_unique_name): lock the BusData
499
500 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
501
502         * bus/config-parser.c (service_dirs_find_dir, 
503         service_dirs_append_unique_or_free, 
504         service_dirs_append_link_unique_or_free): New static methods
505         for only appending unique service directory names into
506         the service directory list
507         (merge_included, bus_config_parser_content): Only add unique
508         service directory names into the list
509
510 2006-10-27  Havoc Pennington  <hp@redhat.com>
511
512         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
513         variables volatile, suggested by Thiago. Document struct fields.
514         (PTHREAD_CHECK): remove pthread error checking if assertions are
515         disabled, should reduce the no-assertions case to the bare
516         minimum code.
517
518 2006-10-26  Havoc Pennington  <hp@redhat.com>
519         
520         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
521         to be recursive
522         (_dbus_pthread_mutex_unlock): make it recursive
523         (_dbus_pthread_condvar_wait): save/restore the recursion count
524         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
525
526 2006-10-26  Havoc Pennington  <hp@redhat.com>
527
528         * doc/dbus-specification.xml: clarify the UUID text slightly
529
530         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
531         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
532         in preparation for being able to extend them for e.g. recursive
533         mutexes.
534
535 2006-10-26  Havoc Pennington  <hp@redhat.com>
536
537         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
538         condition variables relate to recursive mutexes.
539         
540         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
541         dbus/dbus-threads.c: Split the platforms-specific thread 
542         implementations into their own files.
543         
544         * dbus/dbus-sysdeps-pthread.c
545         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
546         was backward. Not that anything uses it.
547
548 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
549
550         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
551         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
552         needs to be cleaned up more.
553
554         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
555         up the CREDS issue.
556
557 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
558
559         * configure.in, dbus-1.pc.in: Check to see if thread methods 
560         are in glibc or libpthread and add -lpthread to the link stage 
561         if it is the latter
562
563 2006-10-26  Thiago Macieira  <thiago@kde.org>
564
565         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
566         bug 8780: the connection lock is only required while recording
567         the shared connection, so protect only that code
568         section. Don't require connection_lookup_shared to return a
569         locked connection.
570
571 2006-10-26  Thiago Macieira  <thiago@kde.org>
572
573         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
574         check if get_machine_uuid() returns NULL before proceeding any
575         further: we can't init the X atoms or create a session file
576         name if there is no machine ID.
577         This solves a crash reported by some users if
578         --exit-with-session was used without --autolaunch=<machine-id>
579
580 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
581
582         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
583         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
584
585         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
586         before we run dbus-launch
587
588         * configure.in: define TEST_BUS_BINARY to be the full path to 
589         dbus-daemon in the build root 
590
591 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
592
593         * dbus/Makefile.am:
594         * tools/Makefile.am:
595         * toos/dbus-uuidgen.1:
596                 Move the machine-id file to /var/lib/dbus 
597
598 2006-10-24  David Zeuthen  <davidz@redhat.com>
599
600         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
601         _dbus_assert (thread_init_generation != _dbus_current_generation)
602         not _dbus_assert (thread_init_generation == _dbus_current_generation)
603
604 2006-10-24  Thiago Macieira  <thiago@kde.org>
605
606         * dbus/dbus-sysdeps.h:
607         * dbus/dbus-sysdeps-unix.c: Add function
608         _dbus_make_file_world_readable that chmods a file to 0644.
609
610         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
611         Avoid writing to the static "argv" array, thereby avoiding a
612         COW on the child process.
613
614         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
615         call _dbus_make_file_world_readable on the created file.
616
617 2006-10-23  David Zeuthen  <davidz@redhat.com>
618
619         * dbus/dbus-memory.c: Use atomic variable to protect
620         n_blocks_outstanding otherwise OOM will be reported using SMP on
621         some arches
622         
623         * bus/dispatch.c: Add missing end of line characters
624
625         * bus/desktop-file.c (parse_section_start, parse_key_value) 
626         (bus_desktop_file_load): Propertly handle OOM
627
628         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
629         thread_init_generation equals _dbus_current_generation, not 0
630
631 2006-10-22  Havoc Pennington  <hp@redhat.com>
632
633         * dbus/dbus-connection-internal.h: move prototype of
634         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
635         it isn't in a public header and doesn't end up in the DBusBus
636         group in Doxygen
637
638 2006-10-21  Havoc Pennington  <hp@redhat.com>
639
640         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
641         the tarball if packagers want to run it
642
643         * cleanup-man-pages.sh: Add a script which munges all the internal
644         API man pages out of the Doxygen output. This reduces the size of
645         the installed man pages from 7 to 2 megs, and avoids
646         namespace-polluting pages. Right now (like Doxygen) this script
647         isn't in the build, it's something packagers can do manually.
648
649 2006-10-21  Havoc Pennington  <hp@redhat.com>
650
651         * dbus/dbus-connection.h: don't include the watch/timeout
652         functions in connection section
653
654 2006-10-21  Havoc Pennington  <hp@redhat.com>
655
656         * Documentation! Whee! Doxygen now 100% silent. If you make it
657         angry again, you will be punished.
658         
659 2006-10-21  Havoc Pennington  <hp@redhat.com>
660
661         * More documentation - all public API now documented according to
662         Doxygen
663
664 2006-10-21  Havoc Pennington  <hp@redhat.com>
665
666         * Document a bunch of undocumented stuff
667         
668 2006-10-21  Havoc Pennington  <hp@redhat.com>
669
670         * Clean up Doxygen group markers for public API so Doxygen finds
671         everything (not comprehensively fixed for private API).
672         Means all remaining Doxygen warnings are just about missing docs
673         and thus pretty simple to resolve.
674         
675 2006-10-21  Havoc Pennington  <hp@redhat.com>
676         
677         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
678
679         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
680         as DBUS_GNUC_DEPRECATED
681
682 2006-10-21  Havoc Pennington  <hp@redhat.com>
683
684         * Move all private API into the private Doxygen group sections of
685         the files, so they don't show up in the public API docs
686         
687 2006-10-21  Havoc Pennington  <hp@redhat.com>
688
689         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
690         dbus_message_iter_get_array_len().
691
692         * throughout: documentation improvements.
693
694 2006-10-20  Havoc Pennington  <hp@redhat.com>
695
696         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
697         matter, and the message-loader-breaker thing since nobody is going
698         to do it.  Add an item to 1.0 about supporting recursive locks
699         in dbus_threads_init_default() though, since it should be easy.
700
701         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
702         Fix this in the !dispatch case to avoid busy-looping after
703         disconnection
704
705         * More misc docs improvements
706
707 2006-10-19  Havoc Pennington  <hp@redhat.com>
708
709         * more Doxygen-related fixes (lots of moving things from the
710         public to internal section in dbus-connection.c)
711
712 2006-10-19  Havoc Pennington  <hp@redhat.com>
713
714         * Fix a pile of Doxygen warnings and missing docs
715
716 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
717
718         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
719         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
720         instead of a void *.  kqueue uses this to get the context's loop
721         while the other modules ignore the parameter.  This allows us to
722         avoid platform conditionals
723
724         * bus/bus.c (process_config_postinit): Pass in the context to the 
725         watch
726
727 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
728
729         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
730         when starting the system bus
731
732 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
733
734         * configure.in: More fixups for cross compile (Patch from 
735         Marco Pracucci <development at pracucci dot com>)
736
737 2006-10-17  Havoc Pennington  <hp@redhat.com>
738
739         * tools/dbus-send.c (main): don't close shared connection, fix
740         from Timo Hoenig
741
742 2006-10-17  Havoc Pennington  <hp@redhat.com>
743
744         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
745
746         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
747         since realistically it doesn't look like we'll be changing it
748         anymore.
749
750 2006-10-17  Havoc Pennington  <hp@redhat.com>
751
752         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
753         be used for return_if_fail type warnings; prefixes the pid, and
754         fatal by default.
755
756 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
757
758         * configure.in: Released 1.0 RC 2(0.94)
759         Add check for -fPIC and enable it if available
760
761 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
762
763         * doc/TODO: Remove the check TODO item
764
765 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
766
767         * dbus-transport-socket.c (exchange_credentials):
768         Print out more detailed errors if reading or sending
769         credentials fail (Patch from Julio M. Merino Vidal 
770         <jmmv at NetBSD dot org>)
771
772 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
773
774         * configure.in: when checking for posix getpwnam_r assume true
775         for cross compiles
776
777 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
778
779         * configure.in: Check for gethostbyname first before we check for it
780         in libnsl.  On gnu systems it is implemeneted 
781
782 2006-10-13  Havoc Pennington  <hp@redhat.com>
783
784         * dbus/dbus-connection.c
785         (dbus_connection_send_with_reply_and_block): fix to handle closed
786         connections, from Tambet Ingo bug #8631
787
788 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
789
790         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
791
792 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
793
794         * test/name-test/Makefile.am: don't link against both libdbus and
795         libdbus-convenience
796
797 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
798
799         * configure.in: check for dirfd even if it is a macro
800         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
801
802 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
803
804         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
805         avoid using dirfd on systems that don't have dirfd 
806         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
807
808 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
809
810         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
811         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
812
813         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
814         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
815         macro because _dbus_abort calls it
816
817         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
818         works
819
820 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
821
822         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
823         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
824
825 2006-10-02  Thiago Macieira  <thiago@kde.org>
826
827         * tools/dbus-launch.c (main): make it complain and abort
828         execution in case an unknown option is given. Also, process
829         the '--' argument as the end of arguments.
830
831 2006-10-01  Havoc Pennington  <hp@redhat.com>
832
833         * tools/dbus-launch.c (print_variables): if no syntax is given,
834         don't print something that's sort-of-half-sh-syntax, just print
835         a plain key-value pairs thing.
836
837         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
838         the local machine representation (but still have the hostname in
839         the display). Remove the hostname from the display if it is
840         localhost. Change session files to be named
841         ~/.dbus/session-bus/machine-display. Change X atoms to be
842         underscore-prefixed so nobody whines about ICCCM compliance.
843         Otherwise name them the same as the env variables.
844         Change session file format to include key-value pairs and an
845         explanatory comment. Keys are the same as the env variables.
846         (set_address_in_x11): X property format can't depend on
847         sizeof(pid_t) on a particular machine, fix to always be 32 bits
848
849         * tools/dbus-launch.c: make --autolaunch take a machine id
850         argument. If --autolaunch is used with a program to run, complain
851         for now (but add a FIXME). Also, don't look for existing bus if 
852         there's a program to run (but add a FIXME).
853
854         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
855         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
856         just to get this, and avoids duplicating uuid-reading code).
857
858         * tools/dbus-launch.1: clarify various things
859         
860 2006-10-01  Havoc Pennington  <hp@redhat.com>
861
862         * test/test-service.c (path_message_func): remove broken extra
863         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
864
865         * test/test-shell-service.c (path_message_func): same fix
866         
867         * dbus/dbus-connection.c
868         (_dbus_connection_get_dispatch_status_unlocked): break up the
869         function a little for clarity and fix the notification of
870         dbus-bus.c to not require dispatch to be complete
871
872         * dbus/dbus-connection.c (dbus_connection_unref): improve the
873         warning when you try to finalize an open connection.
874         
875 2006-10-01  Havoc Pennington  <hp@redhat.com>
876
877         * dbus/dbus-bus.c
878         (internal_bus_get): only weak ref the connection; this means 
879         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
880         called safely in any context
881         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
882         unref
883
884         * dbus/dbus-connection.c
885         (_dbus_connection_get_dispatch_status_unlocked): move
886         _dbus_bus_notify_shared_connection_disconnected_unlocked here
887         when queuing Disconnected instead of when the Disconnected message
888         arrives, so dbus_bus_get() won't return closed connections.
889         
890 2006-10-01  Havoc Pennington  <hp@redhat.com>
891
892         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
893         Add a hack to make DBusNewConnectionFunction work right.
894
895         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
896         the hack here. Also, fix the todo about refcount leak.
897         
898         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
899         and use the hack here
900         
901         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
902         "shareable" flag; this was completely broken, since it meant 
903         dbus_connection_open() returned a connection of unknown
904         shared-ness. Now, we always hold a ref on anything opened 
905         as shareable.
906
907         Move the call to notify dbus-bus.c into
908         connection_forget_shared_unlocked, so libdbus consistently forgets
909         all its knowledge of a connection at once. This exposed numerous
910         places where things were totally broken if we dropped a ref inside
911         get_dispatch_status_unlocked where
912         connection_forget_shared_unlocked was previously, so move
913         connection_forget_shared_unlocked into
914         _dbus_connection_update_dispatch_status_and_unlock. Also move the
915         exit_on_disconnect here.
916
917         (shared_connections_shutdown): this assumed weak refs to the
918         shared connections; since we have strong refs now, the assertion 
919         was failing and stuff was left in the hash. Fix it to close
920         still-open shared connections.
921         
922         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
923         debug pipe connections
924         
925         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
926         dbus-bus.c if the closed connection is in fact shared
927         (_dbus_connection_close_possibly_shared): rename from 
928         _dbus_connection_close_internal
929         (dbus_connection_close, dbus_connection_open,
930         dbus_connection_open_private): Improve docs to explain the deal
931         with when you should close or unref or both
932
933         * dbus/dbus-bus.c
934         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
935         from _dbus_bus_check_connection_and_unref_unlocked and modify to
936         loop over all connections
937
938         * test/test-utils.c (test_connection_shutdown): don't try to close
939         shared connections.
940
941         * test/name-test/test-threads-init.c (main): fix warnings in here
942
943         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
944         env variable to cause blocking waiting for gdb; drop
945         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
946         unconditionally.
947
948         * configure.in: add -export-dynamic to libtool flags if assertions enabled
949         so _dbus_print_backtrace works.
950
951         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
952         instead of _dbus_verbose to print the backtrace, and diagnose lack 
953         of -rdynamic/-export-dynamic
954         
955 2006-09-30  Havoc Pennington  <hp@redhat.com>
956
957         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
958         (internal_bus_get): fix screwy code formatting. whoever committed
959         that was not paying attention!
960
961 2006-09-30  Havoc Pennington  <hp@redhat.com>
962
963         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
964         reflect addition of interfaces.
965
966         * doc/dbus-specification.xml: describe a new
967         org.freedesktop.DBus.Peer.GetMachineId method
968
969         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
970         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
971         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
972         at end of skip_white
973         (_dbus_string_chop_white): new function
974
975         * bus/connection.c (bus_connections_setup_connection): call
976         dbus_connection_set_route_peer_messages.
977
978         * dbus/dbus-connection.c
979         (_dbus_connection_peer_filter_unlocked_no_update): modify to
980         support a GetMachineId method.
981
982         Also, support a new flag to let the bus pass peer methods through
983         to apps on the bus, which can be set with
984         dbus_connection_set_route_peer_messages.
985
986         Finally, handle and return an error for anything unknown on the
987         Peer interface, which will allow us to extend the Peer interface
988         in the future without fear that we're now intercepting something
989         apps were wanting to see.
990         
991         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
992         dbus/dbus-uuidgen.c
993
994         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
995         binary here, since most of the code is already in libdbus
996
997         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
998         uuid from the system config file
999
1000         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1001         (_dbus_read_uuid_file_without_creating) 
1002         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1003         uuid-related functions, partly factored out from dbus-server.c
1004
1005         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1006         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1007
1008         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1009
1010         * tools/dbus-cleanup-sockets.1: explain what the point of this
1011         thing is a bit more
1012
1013         * autogen.sh (run_configure): add --config-cache to default
1014         configure args
1015
1016         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1017         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1018
1019         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1020         don't try to save address, fixes crash in make check
1021         
1022 2006-09-30  Thiago Macieira  <thiago@kde.org>
1023
1024         * configure.in: add DBUS_BINDIR as a #define to C source code.
1025
1026         * tools/dbus-launch.c
1027         * tools/dbus-launch.h
1028         * tools/dbus-launch-x11.c:
1029         * tools/dbus-launch.1: Add the --autolaunch option to
1030         dbus-launch, which makes it scan for an existing session
1031         started with --autolaunch. With that option, it also creates
1032         an X11 window and saves the bus address and PID to it.
1033
1034         * dbus/dbus-sysdeps.h:
1035         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1036         a function that runs "dbus-launch --autolaunch" to retrieve
1037         the running D-Bus session address (or start one if none was running)
1038
1039         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1040         address protocol, which tries to get the running session from
1041         dbus-launch.
1042
1043         * dbus/dbus-bus.c:
1044         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1045         D-Bus session bus address.
1046
1047         * dbus/dbus-connection.c: Fix horrible typo in error message.
1048
1049 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1050
1051         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1052
1053 2006-09-17  Havoc Pennington  <hp@redhat.com>
1054
1055         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1056         fix so that if unix_user_function is set on windows, we still
1057         do the default check that the auth identity matches the bus identity
1058
1059 2006-09-16  Havoc Pennington  <hp@redhat.com>
1060
1061         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1062         to _dbus_transport_open_platform_specific,
1063         _dbus_transport_open_socket,
1064         and _dbus_transport_open_debug_pipe
1065
1066         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1067
1068 2006-09-16  Havoc Pennington  <hp@redhat.com>
1069
1070         Attempt auditing public API to remove all cases where a Unix
1071         function returns weird emulated goo to Windows. This probably 
1072         breaks the bus daemon on Windows, to fix it again we may 
1073         need to stop processing unix-specific config options on Windows,
1074         and may need to add Windows-specific public API or config options.
1075         
1076         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1077         to reflect added interfaces; should not break soname.
1078         
1079         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1080         not invoke unix user function on Windows. Kind of a hacky fix, but 
1081         we don't want a "unix uid" leaking out on Windows.
1082
1083         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1084         to get the socket fd on Windows or UNIX
1085         (dbus_connection_get_unix_fd): make this always fail on Windows
1086
1087 2006-09-16  Havoc Pennington  <hp@redhat.com>
1088
1089         * dbus/dbus-server.c (dbus_server_listen): change how this works
1090         to be able to delegate to a set of handlers that can succeed,
1091         fail, or choose not to handle. Allows us to have 
1092         dbus_server_listen_platform_specific.
1093
1094         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1095         factor out the tcp socket stuff to be used on windows, leaving
1096         unix domain socket only in dbus-socket-unix.c
1097
1098         * dbus/dbus-transport-socket.c
1099         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1100         stuff to be used on windows, leaving unix domain socket only 
1101         in dbus-transport-unix.c
1102
1103         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1104         temporary hack to be sure this fails on windows
1105         (dbus_connection_get_unix_process_id): ditto
1106
1107 2006-09-16  Havoc Pennington  <hp@redhat.com>
1108
1109         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1110         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1111         _dbus_open_socket so the domain/type/protocol from system headers
1112         are not required. This is kind of pointless though unless we move
1113         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1114         sysdeps-unix.c, which would mean adding a wrapper around
1115         bind/listen/etc.
1116         Also, add DBusError to the socket-opening functions so they 
1117         don't require use of errno.
1118
1119 2006-09-16  Havoc Pennington  <hp@redhat.com>
1120
1121         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1122         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1123
1124         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1125         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1126         functions specifically for sockets only, and move generic 
1127         read/write/open/close into unix-specific code.
1128
1129 2006-09-14  Havoc Pennington  <hp@redhat.com>
1130
1131         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1132         complaint about accessing revents when poll returns 0, from Julian Seward.
1133
1134 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1135
1136         * Released 1.0 RC 1 (0.93) 
1137
1138 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1139
1140         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1141         use _dbus_close instead of close
1142
1143 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1144
1145         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1146         credentials.  Fixes "external" authentication under e.g. NetBSD
1147         which does not support any other socket credentials mechanism.
1148         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1149
1150 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1151
1152         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1153         dbus_threads_init and be used by the dbus mutex functions to
1154         avoid deadlocks.
1155
1156         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1157
1158 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1159
1160         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1161         use threadsafe readdir_r instead of readdir
1162
1163 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1164
1165         * dbus-threads.c (dbus_threads_init_default): New method for
1166         initializing the internal thread implementation (Patch from
1167         Alexander Larsson <alexl at redhat dot com>)
1168
1169 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1170
1171         * remove a bunch of todo items from the 1.0 list
1172
1173 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1174
1175         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1176         key not found
1177
1178 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1179
1180         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1181         complex debugging code
1182
1183         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1184         between the test suite ifdefs
1185         (_dbus_verbose_bytes): return if verbosity is not enabled 
1186
1187 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1188
1189         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1190         remove DBusMark
1191
1192 2006-09-10  Havoc Pennington  <hp@redhat.com>
1193
1194        patch mostly by Peter Kümmel, bug #8211
1195         
1196         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1197         unix-specific stuff in dbus-sysdeps.c
1198
1199         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1200         and move unix-specific stuff to dbus-sysdeps-unix.c
1201
1202         * configure.in: check HAVE_ERRNO_H
1203         
1204 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1205
1206         * bus/test-main.c (main): Initialize threading during tests
1207
1208         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1209         Unlock connection on error
1210         (generate_local_error_message): static method for generating
1211         an error message when we don't have a message to reply to
1212         (_dbus_connection_block_pending_call): Send a disconnect error
1213         instead of just a timeout (NULL) when the bus gets disconnected
1214         while blocking for a reply.
1215         
1216 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1217
1218         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1219         filters (Patch from Kimmo Hämäläinen 
1220         <kimmo dot hamalainen at nokia dot com>)
1221
1222 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1223
1224         * dbus/dbus-connection-internal.h: Add prototype for 
1225         _dbus_connection_test_get_locks to remove warning
1226
1227 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1228
1229         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1230         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1231         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1232
1233 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1234
1235         * Clean up close calls to use _dbus_close (Patch from 
1236         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1237
1238 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1239
1240         * doc/TODO:
1241         - Remove pending call locking todo item
1242         - dbus_connection_open now holds hard ref.  Remove todo item
1243         - do proper locking on _dbus_bus_check_connection_and_unref
1244           and handle DBUS_BUS_STARTER. Remove todo item
1245         - Warn on closing of a shared connection.  Remove todo item
1246
1247         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1248         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1249         so we don't get the warning when closing shared connections
1250
1251         * test/test-service.c, test/test-shell-service.c: Applications
1252         don't close shared connections themselves so we unref instead of
1253         close
1254
1255         * test/test-utils.c (test_connection_shutdown): Close the connection
1256
1257         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1258         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1259         method on a locked connection.  
1260         Make sure we call _dbus_connection_unref_unlocked instead of 
1261         dbus_connection_unref also.
1262         Handle DBUS_BUS_STARTER correctly
1263
1264         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1265         Mark as shared and hard ref the connection
1266         (connection_forget_shared_unlocked): Remove the hard ref from the 
1267         connection
1268         (_dbus_connection_close_internal_and_unlock):  New internal function
1269         which takes a locked connection and unlocks it after closing it
1270         (_dbus_connection_close_internal): New internal function which acts
1271         like the origonal dbus_connection_close method by grabbing a connection
1272         lock and calling _dbus_connection_close_internal_and_unlock
1273         (dbus_connection_close): Public close method, warns when the app
1274         trys to close a shared connection
1275
1276 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1277
1278         * bus/driver.c:
1279         (bus_driver_generate_introspect_string): New method for populating
1280         a DBusString with the introspect data
1281         (bus_driver_handle_introspect): Move introspect generation code to 
1282         bus_driver_generate_introspect_string
1283
1284         * bus/main.c:
1285         (introspect): New function which prints out the intropect data and
1286         exits
1287         (main): Add a --introspect switch
1288
1289 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1290
1291         * doc/TODO: Removed dtd publishing item.  
1292         It seems the dtd has already been added at
1293         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1294
1295 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1296
1297         * doc/TODO, various source files: Audited todo's and FIXME's and
1298         prepended the ones we should be looking at with 1.0.  Those
1299         prepended with 1.0? need clerification or might not be needed
1300         for 1.0
1301
1302 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1303
1304         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1305         NULL in the public API (Patch from Kimmo Hämäläinen 
1306         <kimmo dot hamalainen at nokia dot com>)
1307
1308 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1309
1310         * configure.in: Fix for OS-X compile time endian issues (patch from
1311         Benjamin Reed <ranger at befunk dot com>)
1312
1313 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1314
1315         * configure.in: Check for no-common compiler flag (OS-X fix from
1316         Benjamin Reed <ranger at befunk dot com>)
1317
1318 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1319
1320         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1321         <fcrozat at mandriva dot com>)
1322
1323 2006-08-29  Havoc Pennington  <hp@redhat.com>
1324
1325         * test/test-service.c (path_message_func): fix lack of return value
1326
1327         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1328         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1329         any more sense than on anything else in this file.
1330         (_dbus_get_tmpdir): add const to return value, and keep the
1331         results of the various getenv around in a static variable.
1332
1333 2006-08-29  Havoc Pennington  <hp@redhat.com>
1334
1335         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1336         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1337
1338 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1339
1340         * test/Makefile.am: change find to use syntax that works with non
1341         gnu versions of find
1342
1343 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1344
1345         * dbus/dbus-transport.c: fix invalid deref when checking if
1346         a vtable method exists (Patch from Christian Ehrlicher 
1347         <ch dot ehrlicher at gmx dot de>)
1348
1349 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1350
1351         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1352         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1353         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1354         <bernard at brenda-arkle dot demon dot co dot uk>)
1355
1356 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1357
1358         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1359         default case
1360
1361 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1362
1363         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1364         it works on any system providing this interface, not only FreeBSD.
1365         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1366
1367 2006-08-20  Havoc Pennington  <hp@redhat.com>
1368
1369         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1370         the docs
1371
1372 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1373
1374         * Released 0.92 
1375
1376 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1377
1378         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1379         to reflect the init late change
1380
1381         * bus/bus.c (bus_context_new): Check user before we fork so we can
1382         print out an error message a user will be able to see
1383
1384 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1385
1386         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1387
1388         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1389         Add two more global locks for use on windows platforms.  These are
1390         unused on non-windows platforms but are not ifdefed out to avoid
1391         potential bugs (i.e. the few bytes lost does not warrent the extra
1392         maintanence and complexity that having seperate sets of locks would
1393         cause)
1394
1395 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1396
1397         * bus/services.c (bus_registry_acquire_service): Return an error
1398         when an application tries to register the org.freedesktop.DBus Bus Name
1399
1400         * bus/services.c (bus_registry_release_service): Return an error
1401         when an application tries to release the org.freedesktop.DBus Bus Name
1402
1403 2006-08-17  Alp Toker  <alp@atoker.com>
1404
1405         * doc/dbus-specification.xml: Fix some minor typos.
1406
1407 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1408
1409         * configure.in: use $with_init_scripts instead of $operating_system
1410         to determine where to store the pid since the init scripts manipulate 
1411         the pid file (patch from Marcelo Ricardo Leitner 
1412         <marcelo dot leitner at terra dot com dot br>.  
1413
1414 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1415
1416         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1417         static DBusList *uninitialized_condvar_list to support new late 
1418         initialization threading model.  In this model threads can be initialized
1419         even after the D-Bus API has been used but still needs to be initialized 
1420         before the second thread has been started.  Mutexes and condvar addresses
1421         are stored in the two static lists and are replaced with actuall locks
1422         when threads are initalized.
1423         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1424         the location into the static list
1425         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1426         from the static list and freeing the mutex
1427         (_dbus_condvar_new_at_location): New method for creating a conditional 
1428         variable and placing the location into the static list
1429         (_dbus_condvar_free_at_location): New method for removing a conditional
1430         variable location from the static list and freeing the conditional variable 
1431         (init_uninitialized_locks): Atomic method which goes through the static 
1432         lists of mutex and condvar location and updates them with actuall locks
1433         (init_global_locks): changed to init_locks
1434         
1435         * dbus/dbus-connection.c:
1436         (_dbus_connection_test_get_locks): New method for tests to check connections
1437         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1438         condvar API
1439         (dbus_connection_allocate_data_slot): Pass in the global lock address
1440         to _dbus_data_slot_allocator_alloc
1441
1442         * dbus/dbus-dataslot.c:
1443         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1444         instead of the mutex itself
1445
1446         * dbus/dbus-message.c:
1447         (dbus_message_allocate_data_slot): Pass in the global lock address
1448         to _dbus_data_slot_allocator_alloc
1449
1450         * dbus/dbus-pending-call.c:
1451         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1452         to _dbus_data_slot_allocator_alloc
1453
1454         * dbus/dbus-server.c:
1455         (_dbus_server_init_base): Use the new at_location mutex API
1456         (dbus_server_allocate_data_slot): Pass in the global lock address
1457         to _dbus_data_slot_allocator_alloc
1458
1459         * test/name-test/test-threads-init.c: New test case for late thread
1460         initialization
1461
1462 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1463
1464         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1465         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1466         causes compile problems when asserts are turned off
1467         Keeping _dbus_warn for printing out the message so even if
1468         asserts are turned off the user gets the messages that something is 
1469         wrong 
1470
1471 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1472
1473         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1474
1475         * bus/services.c (bus_service_list_queued_owners):
1476         Add a pointer cast to fix compiler warning
1477
1478         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1479         return a NULL instead of FALSE since the return type
1480         is not expecting a boolean
1481
1482         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1483         Remove unused variable
1484
1485         * dbus/dbus-marshal-recursive-util.c (node_new):
1486         return a NULL instead of FALSE since the return type
1487         is not expecting a boolean
1488
1489         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1490         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1491         because we are expecting a pointer not a boolean
1492
1493         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1494         add void as the parameter so some compilers
1495         don't complain
1496
1497         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1498           _dbus_transport_new_for_tcp_socket):
1499         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1500         because we are expecting a pointer not a boolean
1501
1502         * test/shell-test.c (test_command_line):
1503         cast the second argument to _dbus_list_append to avoid compiler
1504         warnings
1505
1506         * test/test-names.c (main): remove unused variable
1507
1508         * test/test-service.c (check_hello_from_self_reply):
1509         Initialize echo_message and echo_reply to NULL
1510         
1511         * test/test-shell-service.c (handle_echo):
1512         Remove unused variable and cast the third parameter passed to
1513         dbus_connection_get_object_path_data to avoid compiler warrnings
1514
1515         * test/name-test/test-names.c (clear_message_queue):
1516         Remove unused function
1517
1518         * test/name-test/test-pending-call-dispatch.c:
1519         Fix format string in printf
1520
1521
1522 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1523
1524         * dbus/dbus-bus.c:
1525         * test/name-test/test-names.c:
1526         Remove test method dbus_bus_connection_get_unique_name because 
1527         we already have public method dbus_bus_get_unique_name that 
1528         does the exact same thing
1529
1530 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1531
1532         * dbus/dbus-signature.c:
1533         fix typos in Julio's previous patch which cause make check to fail
1534
1535 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1536
1537         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1538         In any case it was wrong since this is a test checking to see if
1539         address parsing is correct.  There was no need to get the true
1540         tmp directory.  
1541
1542 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1543
1544         * dbus/dbus-macros.h: Revert the addition of stddef.h
1545         as we should not be adding it to library headers 
1546
1547 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1548
1549         * dbus/dbus-signature.c:
1550         Fix the unit tests so that they work if assertions are not enabled.
1551         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1552
1553 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1554
1555         * tools/run-with-tmp-session-bus.sh:
1556         * test/name-test/run-test.sh:
1557         Remove bashisms (patch from Julio M. Merino Vidal
1558         <jmmv at NetBSD dot org>)
1559
1560 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1561
1562         * configure.in: add a version (>= 2.6.0) check for libxml2
1563
1564 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1565
1566         * configure.in: make sure the compiler supports -Wfloat-equal
1567         
1568         * bus/dir-watch-dnotify.c: move functional code after 
1569         variable declerations (C99 fix)  (patches from Jens Granseuer
1570         <jensgr at gmx dot net>
1571
1572 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1573
1574         * dbus/dbus-macros.h:
1575         add #include <stddef.h> so that Sun compilers don't complain about
1576         the defining NULL
1577
1578 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1579
1580         * dbus/dbus-sysdeps.c:
1581         * dbus/dbus-address.c:
1582         * bus/activation.c:
1583         * test/shell-test.c:
1584         don't hardcode tmp directory (patch from Dave Meikle 
1585         <dmk at davemeikle dot co dot uk>)
1586
1587 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1588
1589         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1590         Change an assert to a detailed warning and abort.  
1591         When allocator->lock != mutex it indicates that the user has failed
1592         to initalize threads before using the D-Bus library.  This warning
1593         helps the user identify the issue and fix their app.
1594
1595 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1596
1597         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1598         with cleanups of bugs found from Coverity reports:
1599
1600         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1601         close the file on error to avoid a leak
1602
1603         * bus/expirelist.c (bus_expire_list_test):
1604         Check for NULL on dbus_new0
1605
1606         * bus/activation.c (update_directory):
1607         remove dead code
1608
1609         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1610         Fix some leaks
1611
1612         * bus/bus.c (process_config_every_time):
1613         Fixed a leak
1614
1615         * bus/desktop-file.c (parse_key_value):
1616         Fixed leak
1617
1618         * bus/selinux.c (bus_selinux_id_table_insert):
1619         Fixed leak
1620
1621 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1622
1623         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1624         remove dead code
1625
1626 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1627
1628         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1629         #!/bin/bash
1630
1631 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1632
1633         * Doxyfile.in: fix the INPUT line so we can generate docs 
1634         when sourcedir != builddir (patch from Cygwin Ports maintainer
1635         <yselkowitz at users dot sourceforge dot net>
1636
1637 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1638
1639         * dbus/dbus-sysdeps.h:
1640         * dbus/dbus-sysdeps.c: 
1641         * dbus/dbus-string.c: 
1642         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1643         GLib's function which does the same thing
1644
1645         * configure.in:
1646         * bus/Makefile.am:
1647         * bus/dir-watch-default.c:
1648         * bus/dir-watch-dnotify.c:
1649         * bus/dir-watch-kqueue.c:
1650         Add kqueue directory watching for freebsd and split the directory
1651         watching code into seperate files per method/arch
1652         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1653
1654 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1655
1656         * configure.in:
1657         * tools/Makefile.am:
1658         * tools/dbus-launch.c:
1659         * bus/Makefile.am:
1660         allow --with-dbus-daemondir switch to be used to make the
1661         daemon install to a seperate bindir like /usr/libexec
1662         (patch from Brian Cameron <brian dot cameron at sun dot com)
1663
1664 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1665
1666         * bus/Makefile.am (install-data-hook): removed the slash after 
1667         $(DESTDIR) so we don't get the double slash which does not work
1668         in windows (patch from Andras Porjesz 
1669         <andras dot porjesz at siemens dot com>)
1670
1671 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1672
1673         * dbus/dbus-sysdeps.h:
1674         * dbus/dbus-sysdeps.c: 
1675           add _dbus_printf_length (patch from Peter Kümmel 
1676           <syntheticpp at gmx dot net>)
1677
1678 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1679
1680         * dbus/dbus-internals.c: unistd.h is not used 
1681         (_dbus_verbose_real): only enable verbose printing 
1682         if DBUS_VERBOSE environment var is set to '1'
1683         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1684
1685 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1686
1687         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1688         so we still compile on older gcc (patch from Frederic Peters 
1689         <fpeters at 0d dot be>
1690
1691 2006-08-04  Havoc Pennington  <hp@redhat.com>
1692
1693         * configure.in: add -Wdeclaration-after-statement
1694
1695         * dbus/dbus-connection.c: change all the pending call stuff to
1696         reflect the fact that pending call operations use the connection
1697         lock
1698
1699         * dbus/dbus-pending-call.c: add locking here
1700
1701         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1702         field const consistent with how message field is done
1703
1704 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1705
1706         * s/D-BUS/D-Bus/g
1707
1708 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1709
1710         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1711         <in7y118 at public.uni-hamburg dot de> - fix invalid
1712         read/write reported by valgrind
1713
1714 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1715
1716         * Released 0.91
1717
1718 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1719
1720         * dbus/dbus-connection.c:
1721         (_dbus_connection_attach_pending_call_unlocked):
1722         (connection_timeout_and_complete_all_pending_calls_unlocked):
1723         Make sure we set timeout_added on pending calls to FALSE when
1724         we remove the timeout from the connection
1725
1726 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1727
1728         * Removed some extra bindings stuff lingering around (thanks timo)
1729         * dbus-pendingcall.c (_dbus_pending_call_new): 
1730         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1731         when we tried to take a lock on an already locked connection
1732
1733 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1734
1735         * Released 0.90
1736
1737 2006-07-17  Havoc Pennington  <hp@redhat.com>
1738
1739         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1740         ints, reported by Owen Taylor
1741
1742 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1743
1744         * doc/TODO:
1745         * dbus/dbus-bus.c:
1746         * dbus-errors.c:
1747         * dbus/dbus-marshal-validate.c:
1748           Removed TODO items which were fixed or are no longer relevent
1749
1750 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1751
1752         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1753         Remove stray files from the stripped bindings
1754
1755 2006-07-16  Havoc Pennington  <hp@redhat.com>
1756
1757         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1758         Improve the error message on reply timeout
1759
1760 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1761
1762         * Remove all bindings
1763
1764 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1765
1766         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1767         and set pending_reply out arg to NULL is connection is disconnected
1768         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1769         static method for cleaning up pending calls on disconnect
1770         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1771         calls queued timeouts on disconnect 
1772
1773          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1774         Remove 
1775
1776 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1777
1778         * bus/activation.[ch] (bus_activation_list_services): new function to 
1779         get the list of services that can be activated
1780
1781         * bus/dispatch.c: test coverage for the new bus method
1782         ListActivatableNames
1783
1784         * bus/driver.c: new bus method ListActivatableNames to get the list of
1785         services that can be activated
1786
1787         * doc/dbus-specification.xml: ListActivatableNames method documentation
1788
1789 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1790         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1791         source files
1792
1793 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1794         * dbus/dbus-message-factory.c:
1795         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1796
1797 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1798         * dbus/dbus-connection-internal.h:
1799         * dbus/dbus-connection.c:
1800         * file dbus/dbus-pending-call.c:
1801         * dbus/dbus-pending-call.h:
1802         Make DBusPendingCall an opaque type even to D-Bus internals
1803
1804 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1805
1806         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1807         connection_close
1808
1809         * dbus/dbus-connection.c: include dbus-bus.h
1810         (_dbus_connection_read_write_dispatch): make static
1811
1812 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1813
1814         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1815         function
1816         (dbus_connection_dispatch): On disconnect unref any shared connections
1817
1818         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1819         for cleaning up shared connections on disconnect
1820         (internal_bus_get): get a hard refrence to shared connections when
1821         they are created
1822         
1823         * doc/TODO: Remove items which are no longer relevent or have been fixed
1824         Split 1.0 todo items with a 0.90 freeze todo list
1825  
1826 2006-06-14  Ross Burton  <ross@openedhand.com>
1827
1828         * glib/dbus-gobject.c:
1829         Free a leaking GArray (surely not!) in dbus_g_method_return.
1830
1831 2006-06-14  Ross Burton  <ross@openedhand.com>
1832
1833         * tools/Makefile.am:
1834         * tools/dbus-monitor.c:
1835         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1836         Habacker).
1837         
1838 2006-06-14  Ross Burton  <ross@openedhand.com>
1839
1840         * tools/dbus-print-message.c:
1841         Also print the object path when outputting signals or method calls.
1842
1843 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1844
1845         * qt/src/Makefile.am: install the qdbus.h header.
1846         This allows people to actually use the installed code.
1847
1848 2006-06-12  Ross Burton  <ross@openedhand.com>
1849
1850         * glib/dbus-gproxy.c:
1851         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1852
1853 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1854
1855         * Released 0.62
1856
1857 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1858
1859         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1860         break pedantic builds. Closes bug 6043 (patch approved by
1861         Havoc back in February).
1862
1863 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1864
1865         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1866         that took a QDBusMessage parameter.
1867         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1868         * qt/tools/dbus.cpp: Don't use automatic call because we might
1869         be calling an async method: request a reply.
1870
1871 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1872
1873         * test/qt/*: Update the testcases, including testing the new
1874         functionality of sending null QByteArray and QString over the
1875         bus. Add new headertest test and restore the old
1876         qdbusxmlparser test.
1877
1878 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1879
1880         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1881         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1882
1883         * qt/examples/Makefile.am:
1884         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1885         form.
1886
1887         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1888         QByteArray() (nulls) over the bus.
1889         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1890         the one that has the signature suffix stripped.
1891         * qt/src/qdbusreply.h: Make some methods const.
1892
1893 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1894
1895         Patch from Timo Hoenig <thoenig@suse.de>.
1896
1897         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1898         required during build to EXTRA_DIST.
1899         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1900         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1901         * configure.in: Fix "make dist", take care that the Makefile for
1902         qt/dbus is being generated.
1903
1904 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1905
1906         * bus/bus.c: Fix eavesdropping on method calls
1907
1908 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1909
1910         * configure.in:
1911         * dbus/dbus-userdb-util.c:
1912         Add Solaris console owner patch from Artem Kachitchkine
1913
1914 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1915
1916         * qt/Makfile.am:
1917         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1918         reorganisation. Thanks to Timo Hoenig for pointing this out.
1919
1920 2006-06-06  Robert McQueen  <robot101@debian.org>
1921
1922         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1923           call to dbus_g_type_get_struct.
1924
1925 2006-06-06  Robert McQueen  <robot101@debian.org>
1926
1927         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1928           pointers were put into a GPtrArray-based specialised collection, and
1929           then freed along with the array. GValues which you add into
1930           collections or maps which have the NOCOPY flag set are assumed to not
1931           belong to the caller, so rather than the existing pointer-stealing
1932           semantics, they are copied instead. Given that the main consumers of
1933           this abstraction are the bindings themselves, I don't think this is
1934           too bad, but others should watch their choice of take vs set_static.
1935
1936 2006-06-06  Robert McQueen  <robot101@debian.org>
1937
1938         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1939           of g_slist_prepend not being used. Fixed copying of slist-based
1940           specialised collections, then wrote a test case and found that it was
1941           all broken. Went on to fix iterating and appending too. Good thing
1942           nobody uses this code yet.
1943
1944 2006-06-06  Robert McQueen  <robot101@debian.org>
1945
1946         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1947           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1948           are discarded without unsetting, so it makes no difference whether
1949           we take or set_static). Remove cases for G_TYPE_POINTER because
1950           there really is nothing useful we can do with them in our
1951           specialised types - we *need* boxed copy/free functions at the very
1952           least.
1953
1954 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1955
1956         * qt/dbus: Add directory. I had forgotten to add this
1957         yesterday after the move...
1958
1959         * qt/examples/Makefile.am:
1960         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1961
1962         * qt/tools/Makefile.am:
1963         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1964         Added feature to get and set properties.
1965         Added validation of service, object path and interface names.
1966
1967         * qt/tools/dbusidl2cpp.cpp: Two new features:
1968         1) Allow specifying both the header and the source file names,
1969         by separating them with a colon.
1970         2) Don't write an interface output if the -p switch wasn't
1971         given, but the -a was.
1972
1973         * qt/src/*: Fix usage of Iterators and ConstIterators.
1974         Fix shadowing of variables by other variables (-Wshadow).
1975         Fix keyword-cleanliness in headers.
1976         Fix ASCII-cast (QLatin1String, QLatin1Char).
1977         Fix validation of member names.
1978         Add extra checking of introspection data during XML parsing.
1979         Various bug fixes.
1980
1981 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1982
1983         * dbus/Makefile.am:
1984         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1985         qt/dbus/qdbus.h now.
1986
1987 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1988
1989         * configure.in: Make --disable-qt actually do
1990           something. Patch inspired by Zack Rusin.
1991
1992 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1993
1994         * qt/: Update to Subversion r548032.
1995         This includes a big reorganisation of the files inside the
1996         subdir.
1997
1998 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1999
2000         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2001         clear:  
2002         "Failed to connect to socket <host>:<port> <error>" instead of
2003         "Failed to connect to socket <host>: <error>:<port>"
2004
2005         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2006         for a tcp transport. 
2007
2008 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2009
2010         * qt/*: Update the QtDBus bindings up to revision 546310 in
2011         Subversion.
2012         This adds the dbuscpp2xml tool, that parses a C++ header and
2013         outputs a D-BUS Introspection XML.
2014
2015 2006-05-21  Havoc Pennington  <hp@redhat.com>
2016
2017         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2018         is not NULL when it shouldn't be. Also a couple of possible fixes
2019         for #4637 though I don't understand why the bug happens, to be
2020         honest... also the object constructor has an assert name != NULL
2021         and the name is only currently NULL for peer-to-peer proxies that 
2022         I don't think anyone uses? So it should be asserting.
2023         Anyway, for now at least see if we get an earlier assertion failure.
2024
2025         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2026         apparently broken code to be sure the tests fail and someone 
2027         will fix them...
2028
2029 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2030
2031         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2032         and arrays when they had a single element: has_next returns
2033         false, even before you read the element. So, instead, check
2034         the array length.
2035
2036 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2037
2038         * qt/qdbusmessage.cpp:
2039         * qt/qdbustypehelper_p.h:
2040         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2041         the list is a const-reference
2042
2043 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2044
2045         * Adding old doc patch that never got applied
2046         
2047         * dbus/bus.c (dbus_bus_add_match): Add documentation
2048
2049         * doc/dbus-specification.xml: Add documentation for the match rules
2050           and the AddMatch and RemoveMatch methods
2051
2052 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2053
2054         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2055         call (r535506)
2056
2057         * qt/dbusidl2cpp.cpp:
2058         * qt/qdbusabstractadaptor.cpp:
2059         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2060         sibling of the QDBusAbstractAdaptor objects instead of the
2061         parent. (r535848)
2062
2063         * qt/dbusidl2cpp.cpp:
2064         * qt/qdbusabstractinterface.cpp:
2065         * qt/qdbusabstractinterface.h:
2066         * qt/qdbusabstractinterface_p.h:
2067         * qt/qdbusinterface.cpp: Make properties in interfaces
2068         actually work. The code that was generated would not compile,
2069         due to moc calls to functions that did not exist. They now
2070         shall. (r536571)
2071
2072 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2073
2074         * Makefile.am:
2075         * configure.in:
2076         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2077         Thanks to Brad Hards for providing the patch
2078
2079 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2080
2081         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2082         call. (r535506)
2083
2084 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2085
2086         * qt/examples/dbus.cpp: Enhance error messages and use
2087         QDBusInterfacePtr.
2088
2089 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2090
2091         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2092         and disable the copy operators. (r533772, r534746)
2093
2094         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2095
2096         * qt/qdbusabstractinterface.cpp:
2097         * qt/qdbusabstractinterface.h: Change the default call mode to
2098         not use the event loop. Add convenience call() methods that
2099         take a CallMode parameter. (r534042)
2100
2101         * qt/qdbusconnection.h: Change the default call mode to not
2102         use the event loop. (r534042)
2103
2104         * qt/qdbusinterface.cpp:
2105         * qt/qdbusinterface.h: Add a method to tell us if the
2106         interface is valid (since we don't return a null pointer
2107         anymore) (r534099)
2108
2109         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2110         (r534101)
2111
2112         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2113         function in two so taht we get the chance to introspect
2114         without having a QDBusMessage (r534102)
2115
2116         * qt/qdbusbus.h:
2117         * qt/qdbusconnection.cpp:
2118         * qt/qdbusconnection_p.h:
2119         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2120         avoid a round-trip to the server when attempting to introspect
2121         one of our own objects. Also make sure the filter functions
2122         match the empty interface as well. (r534108)
2123         Don't keep the connection names. Instead, trust the unique
2124         connection name (r534111)
2125         Remove event loop usage (r534112)
2126
2127 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2128
2129         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2130         Brad Hards.
2131
2132 2006-04-28  Robert McQueen  <robot101@debian.org>
2133
2134         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2135         any order, making it easier for people who inherit from this
2136         object.
2137
2138 2006-04-28  Robert McQueen  <robot101@debian.org>
2139
2140         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2141         of memory from within pointer arrays and lists. Fixes bug #6300.
2142
2143 2006-04-28  Robert McQueen  <robot101@debian.org>
2144
2145         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2146         generating struct signatures. Fixes bug #6083.
2147
2148 2006-04-28  Robert McQueen  <robot101@debian.org>
2149
2150         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2151         to qdbusconnection_p.moc.
2152
2153 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2154
2155         * README, INSTALL: Doc fixes
2156         Patch from Brad Hards <bradh at frogmouth.net>
2157
2158 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2159
2160         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2161         the dynamic meta object. No need to guess which interface to
2162         call.
2163
2164 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2165
2166         * qt/qdbusconnection_p.h:
2167         * qt/qdbusmetaobject.cpp:
2168         * qt/qdbusmetaobject_p.h:
2169         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2170         for the dynamic meta object. No need to guess which
2171         interface to call.
2172         * qt/qdbusabstractinterface_p.h:
2173         * qt/qdbusconnection.cpp:
2174         * qt/qdbusintegrator.cpp:
2175         * qt/qdbusinterface.cpp:
2176         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2177         Add a QDBusRef that looks and behaves like DCOPRef.
2178
2179 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2180
2181         * dbus/dbus-connection.c: Interfaces are optional in method
2182         calls, so don't give up if the interface parameter is NULL.
2183         Patch reviewed by Havoc Pennington.
2184
2185 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2186
2187         * qt/qdbusreply.h: Add default constructor and operator=
2188           (r532625)
2189         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2190           in public headers (r532952)
2191         * qt/qdbusabstractinterface.cpp:
2192         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2193           make it the default (r532951)
2194
2195 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2196
2197         * dbus/dbus-connection.c: Fix asserts
2198         Patch from Tim Moloney <t.moloney at verizon.net>
2199
2200 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2201
2202         * mono/Connection.cs, mono/Message.cs: Check Target type
2203         Patch from Aaron Bockover (abockover at novell.com)
2204
2205 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2206
2207         * INSTALL: fine-tune the requirements for the Qt4 binding.
2208
2209 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2210
2211         * tools/dbus-print-message.c: Added support for printing of all 
2212           remaining data types. Fixed logic for indentation of compound
2213           data types.
2214         
2215 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2216
2217         * INSTALL: fill out content of file providing DBus specific
2218           build installations, followed by generic Auto* INSTALL file
2219           content
2220         
2221 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2222
2223         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2224           Patch by Stefan Eilers. (r529537)
2225
2226 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2227
2228         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2229           contents (r528208)
2230
2231 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2232
2233         * qt/Makefile.am: fix the dependency for
2234           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2235           not in qdbusconnection.cpp.
2236           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2237           spotting this.
2238
2239 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2240
2241         * qt/examples/listnames.cpp:
2242         * qt/examples/Makefile.am: Three ways to list the names on the
2243           bus.
2244
2245 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2246
2247         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2248           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2249
2250 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2251
2252         Merge from Subversion:
2253         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2254           something that exists (r526315)
2255         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2256           slots/signals (r526316)
2257         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2258           also return an unknown-method error if the parameters don't
2259           match for org.freedesktop.DBus.Properties. (r526842)
2260         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2261         * qt/qdbusintegrator.cpp: Restore the proper order of
2262           delivery: don't make method returns be delivered on priority
2263           (r528150)
2264
2265 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2266
2267         * configure.in qt/Makefile.am: add qt/examples
2268         * qt/examples: Add QtDBus example programs:
2269           - hello: Hello, World
2270           - ping: Simple method-calling program
2271           - pong: Simple object-exporting program (not using adaptors)
2272           - complexping: Interactive method-calling program 
2273                 (also gets and sets properties).
2274           - complexpong: Sample program exporting methods, signals and
2275                 properties, using adaptors.
2276           - dbus: Simple implementation of a generic method-calling
2277                 program, similar to 'dbus-send', but with semantics
2278                 similar to 'dcop'.
2279           - chat: Simplistic chat program, implemented using signals
2280                 and the system bus. Looks like IRC.
2281
2282 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2283
2284         * configure.in: Detect QtGui (necessary for one of the
2285           example programs). Note: this increases the minimum required
2286           version of Qt to 4.1.3.
2287
2288 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2289
2290         * test/qt/*: Sync with KDE Subversion revision 523647.
2291         Update the testcases to the new API. Remove testcases for
2292         classes that are no longer public or have been removed.
2293
2294 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2295
2296         * qt/*: 
2297         * dbus/qdbus.h: Sync with KDE Subversion revision
2298         523647. Hopefully, this will be the last of the
2299         source-incompatible changes. Documentation has been improved;
2300         support for QList<basic-types> has been added; QDBusObject is
2301         gone; QDBus(Abstract)Interface is now a QObject with
2302         auto-generated meta-object; QDBusIntrospection is marked
2303         private, since QMetaObject can be used now; lots of bugfixes.
2304
2305 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2306
2307         Patch from Milosz Derezynski <internalerror at gmail.com>
2308         
2309         * configure.in:
2310         Output the service directory in the configure summary
2311
2312         * dbus-1.pc.in:
2313         Add session_bus_services_dir
2314
2315 2006-03-10  Ross Burton  <ross@openedhand.com>
2316
2317         * tools/dbus-print-message.c:
2318         Add support for object paths and signatures.
2319
2320 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2321
2322         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2323         config reload.
2324         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2325         information caches
2326         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2327         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2328         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2329         * dbus/dbus-userdb.h: Add function to flush all user/group information
2330         caches.
2331
2332 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2333
2334         * qt/dbusidl2cpp.cpp:
2335         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2336         for dcopidl2cpp, found in the KDE installations (or the more
2337         modern kalyptus): generate Qt4 C++ code for the input XML
2338         introspection. Currently no IDL parsing.
2339
2340 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2341
2342         * test/qt/*: Update the self-tests.
2343
2344 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2345
2346         * qt/*: 
2347         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2348         represents the first feature-complete version of the Qt4
2349         bindings since I took ove maintainership.
2350
2351 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2352
2353         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2354         dir. This is C++, so we can't use the DBus ones.
2355
2356 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2357
2358         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2359         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2360
2361 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2362
2363         * dbus/dbus-connection.c: 
2364         (_dbus_connection_block_pending_call):
2365         Check to see if our data has already been read off the connection
2366         by another blocking pending call before we block in poll.
2367         (check_for_reply_and_update_dispatch_unlocked):
2368         Code taken from _dbus_connection_block_pending_call - checks for
2369         an already read reply and updates the dispatch if there is one.
2370
2371         * test/name-test/test-pending-call-dispatch.c:
2372         New test for making sure we don't get stuck polling a 
2373         dbus connection which has no data on the socket when
2374         blocking out of order on two or more pending calls.
2375
2376 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2377
2378         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2379         make/automake don't detect that we're talking about the same
2380         .lo file if I specify the full path to the source files.
2381
2382 2006-02-26  Havoc Pennington  <hp@redhat.com>
2383
2384         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2385
2386         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2387         session bus variable is unset, suggest "man dbus-launch" and "man
2388         dbus-daemon" to figure out how to fix the problem
2389
2390 2006-02-25  Havoc Pennington  <hp@redhat.com>
2391
2392         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2393         should make this thing use the new glib options parser
2394
2395 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2396
2397         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2398         .lo files taking moc sources.
2399
2400 2006-02-25  Havoc Pennington  <hp@redhat.com>
2401
2402         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2403         and install it as a public header
2404
2405 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2406
2407         * Released 0.61
2408
2409 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2410         
2411         * proxies.py: Fix the callchain
2412
2413 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2414         
2415         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2416
2417         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2418         dbus/dbus-sysdeps.c
2419
2420         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2421         call _dbus_group_info_free_allocated which causes infinite loop,
2422         correctly call _dbus_group_info_free
2423
2424 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2425
2426         * qt/qdbusinterface_p.h:
2427         * qt/qdbusinterface.cpp: Use the standard
2428         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2429         calls instead of creating one for us.
2430
2431         * qt/qdbusconnection_p.h:
2432         * qt/qdbusintegrator.cpp: Remove debugging code.
2433
2434         * qt/qdbusintegrator.cpp:
2435         * qt/qdbusmessage.cpp:
2436         * qt/qdbusmessage_p.h:
2437         * qt/qdbusmessage.h: Change the behaviour of automatic
2438         reply-sending: now a reply is always sent, unless the caller
2439         didn't request one or if the user slot has already sent one.
2440
2441 2006-02-16  Robert McQueen  <robot101@debian.org>
2442
2443         * configure.in: Patch from Debian packages by Sjoerd Simons
2444         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2445         arguments so it's possible to build both bindings in the
2446         same tree.
2447
2448         * qt/Makefile.am: Fix truncated value so that make dist works.
2449
2450 2006-02-16  Robert McQueen  <robot101@debian.org>
2451
2452         * acinclude.m4, configure.in: Patch from Brad Hards
2453         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2454         improving quoting, re-ordering a few checks, and a few other
2455         aesthetic tidy-ups.
2456
2457 2006-02-16  Robert McQueen  <robot101@debian.org>
2458
2459         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2460         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2461         assertion that the next element to read from the iter is fixed in
2462         size. This is not the case when you are at the end of the iter,
2463         because the next element type is INVALID.
2464
2465         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2466         a bogus assert which means that you may not initialise a 0-length
2467         string unless you provide a non-NULL pointer. This prevented
2468         you from marshalling messages containing zero-length arrays in
2469         some cases.
2470
2471         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2472         from Rob to correct bogus asserts when trying to demarshal an
2473         array and get_fixed_array got you 0 elements. Append nothing to
2474         the GArray in this case.
2475
2476         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2477         an empty array via the glib bindings. Without all of the above
2478         patches, this new test fails.
2479
2480 2006-02-16  Robert McQueen  <robot101@debian.org>
2481
2482         * glib/dbus-gmain.c: Make the previous commit compile.
2483
2484         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2485         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2486         specify sender_keyword="foo", path_keyword="bar" when adding
2487         a signal listener, so that you can bind to signals generically
2488         but still do something useful in your callback.
2489
2490         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2491         chars so that they're not cast to chars and made negative. Thanks
2492         to Jakub Stachowski for reporting this and testing the fix.
2493
2494 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2495
2496         * dbus/dbus-glib.h:
2497         * glib/dbus-gmain.h:
2498         (dbus_g_connection_open): new method for openning
2499         a connection to an arbitrary address in the glib bindings
2500
2501         * ChangeLog: checkin last entry which doesn't seem to be commited
2502
2503 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2504
2505         * tools/dbus-launch.c: Fixed sh syntax output
2506
2507 2006-02-13  Robert McQueen  <robot101@debian.org>
2508
2509         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2510         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2511         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2512         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2513         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2514         missing piece of the glib bindings jigsaw puzzle. This modifies
2515         the existing specialised types to have N type parameters (rather
2516         than the current 1 or 2 for arrays and dictionaries respectively).
2517         You can then use this to get a glib type to represent any arbitrary
2518         D-Bus struct type using dbus_g_type_get_struct. The only
2519         implementation of these types is with GValueArrays as before,
2520         but it's now possible to store these in arrays, emit them in
2521         signals, etc.
2522
2523 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2524
2525         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2526         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2527         <thiago.macieira at trolltech.com>
2528
2529 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2530
2531         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2532         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2533
2534 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2535
2536         * bus/connection.c (bus_connections_expect_reply): Make
2537         pending reply limit not common to all connections (Bug #5416)
2538         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2539
2540 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2541
2542         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2543
2544 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2545
2546         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2547         patch from Doug Goldstein <cardoe at gentoo.org>
2548
2549 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2550
2551         * mono/Arguments.cs: Fix a magic number in the mono bindings
2552         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2553
2554 2006-01-27  Robert McQueen  <robot101@debian.org>
2555
2556         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2557         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2558         when generating the client-side methods, instead of overloading
2559         CSymbol which broke everything horribly. My apologies.
2560
2561 2006-01-27  Robert McQueen  <robot101@debian.org>
2562
2563         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2564         by me and Rob Taylor to add a simple_free function to D-Bus map
2565         and collection types, which allows those types which can be freed
2566         with a GDestroyNotify (such as GHashTables and GArrays, but not
2567         GPtrArrays) to be stored as the values in hashtables.
2568
2569         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2570         Patch by Rob Taylor to add nested dicts to the glib tests to check
2571         the above code works, and appears not to leak when called repeatedly.
2572
2573 2006-01-27  Robert McQueen  <robot101@debian.org>
2574
2575         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2576         to free a D-Bus allocated string with dbus_free () instead of
2577         g_free ().
2578
2579 2006-01-27  Iain Holmes  <iain@openedhand.com>
2580
2581         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2582         method from being called multiple times.
2583
2584 2006-01-19  Robert McQueen  <robot101@debian.org>
2585
2586         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2587         <rob.taylor@collabora.co.uk> to add support for generating bindings
2588         to arrays that are represented as GPtrArrays rather than GArrays (ie
2589         size-variable things, such as strings, objects, structs, etc).
2590
2591 2006-01-05  Robert McQueen  <robot101@debian.org>
2592
2593         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2594         <ricardo.kekki@movial.fi> to make it possible to inherit from
2595         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2596         a private part, and moving the setting of the DBusGProxyManager into a
2597         connection property, allowing proper GObject construction.
2598
2599 2006-01-05  Robert McQueen  <robot101@debian.org>
2600
2601         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2602         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2603         annotations when generating glib client bindings.
2604
2605 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2606
2607         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2608
2609         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2610
2611 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2612
2613         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2614
2615 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2616
2617         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2618
2619 2005-12-19  Ross Burton  <ross@openedhand.com>
2620
2621         * doc/dbus-tutorial.xml:
2622         Document the Glib client-side bindings, and list all possible annotations.
2623
2624 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2625
2626         * dbus/bus.c (dbus_bus_release_name): Add documentation
2627
2628 2005-12-06  Robert McQueen  <robot101@debian.org>
2629
2630         * python/service.py: s/sucessful/successful/ so we're allocating to
2631         and reading from the same variable. Oops.
2632
2633 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2634
2635         * Released 0.60
2636
2637 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2638
2639         * test/qt/Makefile.am: build from srcdir
2640
2641         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2642         Note - this code is wrong and needs to be fixed by the Qt binding
2643         developers.  The flags should be treated as bitfields and not enums.
2644
2645         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2646
2647 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2648
2649         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2650           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2651           in production code
2652
2653 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2654
2655         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2656         method for getting messages off the bus in the absence of a
2657         mainloop.  This method is much like 
2658         dbus_connection_read_write_dispatch except it does not dispatch
2659         the messages to a registered filter function.  Instead it
2660         allows a developer to process messages by directly popping
2661         them off the bus.
2662
2663 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2664
2665         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2666         the parser to continue instead of returning error
2667         (bus_desktop_file_load): Do not free parser data when
2668         parse_section_start or parse_key_value fails because it was 
2669         already freed by parser_free (patch from Carlos Garcia Campos  
2670         <carlosgc at gnome.org>)
2671
2672 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2673
2674         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2675         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2676         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2677         test/test-segfault.c, test/test-utils.c,
2678         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2679         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2680         Various cleanup of dead code and compiler warnings (patch from
2681         Kjartan Maraas <kmaraas at gnome.org>) 
2682
2683 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2684
2685         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2686         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2687
2688 2005-11-27  Robert McQueen  <robot101@debian.org>
2689
2690         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2691         part of the preceding one. Oops. Merge patch by Johan Hedberg
2692         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2693         on big-endian platforms.
2694
2695         * test/python/test-client.py: Add some 16-bit integers to the test
2696         values.
2697
2698 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2699
2700         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2701         method return message for property getters
2702
2703 2005-11-27  Robert McQueen  <robot101@debian.org>
2704
2705         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2706         with type v of an instance of dbus.Variant(foo, type='x') caused
2707         it to be boxed twice before sending over the bus.
2708
2709         * python/dbus_bindings.pyx, python/service.py,
2710         test/python/test-client.py: Update the constants for the new
2711         request_name flags, and update comments/test cases now that queueing
2712         is the default action.
2713
2714 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2715
2716         * configure.in:
2717         - Change version to 0.60 for impending release
2718         - upped the sonames because of ABI and API breakage
2719
2720 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2721
2722         * configure.in: Add test/name-test/Makefile to the generated
2723         Makefile list
2724
2725         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2726         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2727         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2728         not to queue an ower if it can't be the primary owner
2729
2730         * bus/bus.h: Add new internal BusOwner struct
2731
2732         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2733         to bus_registry_ensure and don't set the prohibit_replacement flag
2734         since they are now set per BusOwner and not per name.
2735         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2736         that returns the list of connections in a name's connection queue
2737         
2738         * bus/services.c (struct BusService): remove prohibit_replacement field
2739         (struct BusOwner): new struct for keeping track of queued connections
2740         and their associated flags for the queue
2741         (struct BusRegistry): add a BusOwner memory pool
2742         (bus_registry_new): initialize the BusOwner memory pool
2743         (bus_registry_unref): free the BusOwner memory pool
2744         (_bus_service_find_owner_link): new internal method for
2745         searching the queue for a specific connection
2746         (bus_owner_set_flags): new method for adding setting the flags on a
2747         bus owner
2748         (bus_owner_new): new method that creates a BusOwner object from the
2749         pool and sets its flags
2750         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2751         (bus_registry_ensure): Add the flags parameter
2752         (bus_registry_acquire_service): Switch from using raw connections to
2753         using the BusOwner struct
2754         Add new state machine for dealing with the new set of flags
2755         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2756         cancel_ownership, free_ownership_cancel_data, 
2757         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2758         restore_ownership, free_ownership_restore_data, 
2759         add_restore_ownership_to_transaction): Switch to using BusOwner 
2760         instead of raw connections
2761         (bus_service_add_owner): Add flags parameter
2762         Switch to using BusOwner instead of raw connections
2763         Add state machine for dealing with the new set of flags
2764         (bus_service_swap_owner): Swaps the first and second owners in the
2765         queue.  Used to make sure proper signals are sent when a service looses 
2766         or gains primary ownership.  We never insert an owner at the top of the
2767         queue.  Instead we insert it in the second position and then swap.
2768         (bus_service_remove_owner): Remove the owner from the queue sending
2769         out the NameLost and NameOwnerChanged signals if the we were the 
2770         primary owner
2771         (bus_service_get_primary_owners_connection): New method that extracts
2772         the connection from the primary owner
2773         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2774         connection
2775         (bus_service_get_allow_replacement): Changed from the old 
2776         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2777         primary owner and returns if it can be replaced or not
2778         (bus_service_set_prohibit_replacement): removed
2779         (bus_service_has_owner): returns TRUE if and owner with
2780         the specified connection exists in the queue
2781         
2782         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2783         method that only compiles if tests are enabled.  Allows us to get the 
2784         unique name of a connection so we can check it against the queue when
2785         doing regression tests
2786
2787         * bus/activation.c (bus_activation_send_pending_auto_activate),
2788         bus/dispatch.c (bus_dispatch),  
2789         bus/driver.c (bus_driver_handle_get_service_owner, 
2790         bus_driver_handle_get_connection_unix_user, 
2791         bus_driver_handle_get_connection_unix_process_id,
2792         bus_driver_handle_get_connection_selinux_security_context),
2793         bus/signals.c (connection_is_primary_owner): 
2794         use bus_service_get_primary_owners_connection instead of
2795         bus_service_get_primary_owner
2796
2797         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2798         _dbus_listen_unix_socket): Calculate the length of the socket
2799         path and use that instead of using a fixed length which was
2800         causing socket names to contain many trailing Nul bytes.
2801
2802         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2803         (dbus_g_method_get_sender): New method for extracting the sender 
2804         from a DBusGMethodInvocation
2805         (dbus_g_method_return_get_reply): changed name to 
2806         dbus_g_method_get_reply
2807         (dbus_g_method_return_send_reply): changed name to
2808         dbus_g_method_send reply
2809
2810         * doc/dbus-specification.xml: New docs that describe how the new
2811         queueing system works and talks about the changes to the how
2812         we specify socket names
2813
2814         * glib/examples/example-service.c, 
2815         glib/examples/example-signal-emitter.c,
2816         glib/examples/statemachine/statemachine-server.c:
2817         Changed the RequestName flags to the new system
2818
2819         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2820         regression test suite for testing various states of the new
2821         queueing system
2822         
2823 2005-11-15  Robert McQueen  <robot101@debian.org>
2824
2825         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2826         Taylor to add two methods, dbus_g_method_return_get_reply and
2827         dbus_g_method_return_send_reply, to allow you to get the reply
2828         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2829         and send it. The GLib bindings can't marshal a return value of
2830         something like a(s) if the array is empty - ultimately they should be
2831         made to heed the signature of the out arguments as the Python bindings
2832         now can, but this is a workable interim solution which might have
2833         other applications.
2834
2835 2005-11-15  Robert McQueen  <robot101@debian.org>
2836
2837         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2838         method to org.freedesktop.DBus to release a bus name or give up
2839         waiting in the queue for it.
2840
2841         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2842         dbus_bus_release_name method to send the ReleaseName method calls.
2843         Add constants for the return values to dbus/dbus-shared.h.
2844
2845         * doc/dbus-specification.xml: Document the new ReleaseName method
2846         in the specification.
2847
2848         * python/dbus_bindings.pyx: Add a low-level python binding for the
2849         release name method.
2850
2851         * python/exceptions.py, python/service.py: Make freeing BusName
2852         objects release the name. Add a NameExistsException, and fix a
2853         bug with creating UnknownMethodException.
2854
2855         * test/python/test-client.py: Add tests for freeing BusName
2856         objects causing names to be released.
2857
2858 2005-11-14  Robert McQueen  <robot101@debian.org>
2859
2860         * python/service.py: Include the traceback in the error reply when we
2861         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2862
2863 2005-11-14  David Zeuthen  <davidz@redhat.com>
2864
2865         Patch from Timo Hoenig <thoenig@suse.de>.
2866
2867         * bus/bus.c: I've recently investigated why the automatic reload
2868         of configuration files does not work as expected.
2869
2870         Currently, reloading configuration files does only work when
2871         running dbus-daemon with --nodaemon.  If we are running as daemon
2872         we're hitting a dnotify bug once we fork the process.
2873
2874         We're initializing the dnotify fds before calling fork().  Once
2875         the child process forked it does still have the fds (and they
2876         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2877         getting SIGIO as changes are made to the configuration files.
2878
2879         The attached patch moves the initialization of the dnotify fds to
2880         process_config_postinit().  This is safe for all current code
2881         paths and solves the dnotify disfunction.  If we're running
2882         dbus-daemon as daemon the fds for dnotify are now being
2883         initialized after fork() for the child process.
2884
2885         * configure.in: The current configure.in check for dnotify probes
2886         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2887         match for 'xlinux', too. Additionally I have adapted the configure
2888         option's style to match with the others.
2889
2890 2005-11-14  Robert McQueen  <robot101@debian.org>
2891
2892         * python/decorators.py, python/service.py: Add a new argument to the
2893         dbus.service.method decorator called sender_keyword, which if set,
2894         specifies the name of an argument which will be provided the bus
2895         name of the method caller.
2896
2897         * test/python/test-client.py, test/python/test-service.py: Add a
2898         method and test to check the sender_keyword functionality.
2899
2900 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2901
2902         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2903         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2904         Simons <sjoerd at luon.net>)
2905
2906         * AUTHORS: Add Robert McQueen for his work on the Python
2907         Bindings and other parts of D-Bus
2908
2909 2005-11-07  Robert McQueen  <robot101@debian.org>
2910
2911         * python/decorators.py: Change emit_signal function to use the
2912         signature annotation of the signal when marhsalling the arguments from
2913         the service. Fix a bug where the code checking signature length
2914         against argument length referenced the wrong variable.
2915
2916         * python/introspect_parser.py: Avoid adding the type signature of
2917         signal arguments to any methods which occur after them in the
2918         introspection data (!) by making the parser a little more careful
2919         about its current state.
2920
2921         * python/service.py: Remove debug prints from last commit (again :D).
2922
2923         * test/python/test-client.py, test/python/test-service.py: Add test
2924         signals with signature decorators to test the strict marshalling code
2925         gives errors at the right time. Could do with checking the signals
2926         actually get emitted too, given that the test does nothing with
2927         signals at the moment...
2928
2929 2005-11-07  Robert McQueen  <robot101@debian.org>
2930
2931         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2932         instances to stop madness of creating new instances representing
2933         the same bus connection all the time, rendering any tracking of
2934         match rules and bus names quite meaningless. Caught a bug where
2935         the private argument to SessionBus() and friends was being passed
2936         in as use_default_mainloop by mistake. Still some problems with
2937         multiple dbus_binding.Connection instances representing the same
2938         low-level connection (eg when you use both SessionBus() and
2939         StarterBus() in same process), but it's a lot better now than it
2940         was.
2941
2942         * python/dbus_bindings.pyx: Add constants with the return values
2943         for bus_request_name().
2944
2945         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2946         and retrieve the same instances for the same name, so deletion can be
2947         done with refcounting. Also now throws some kind of error if you
2948         don't actually get the name you requested, unlike previously...
2949
2950         * test/python/test-client.py: Add tests for instance caching of buses
2951         and bus name objects.
2952
2953 2005-11-04  Robert McQueen  <robot101@debian.org>
2954
2955         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2956         marshalling of boolean values. Add some booleans to the values in
2957         the test client.
2958
2959         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2960         argument to the dbus.service.method decorator, which allows you to
2961         name arguments to take two callback functions for replying with
2962         return values or an exception.
2963
2964         * test/python/test-client.py, test/python/test-service.py: Add test
2965         case using asynchronous method reply functions, both return values and
2966         errors, and from within both the function itself and from a mainloop
2967         callback.
2968
2969         * python/decorators.py, python/service.py: Perform checking that the
2970         number of method/signal arguments matches the number of types in the
2971         signature at class loading time, not when you first introspect the
2972         class.
2973
2974         * python/service.py: Remove debug print left by the last commit.
2975
2976 2005-11-03  Robert McQueen  <robot101@debian.org>
2977
2978         * python/service.py: Heavy refactoring of method invocation, with
2979         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2980         in favour of a new _message_cb that uses seperate functions for
2981         looking up the method to call, marshalling the return values, and
2982         sending exceptions as errors, and is easier to follow as a
2983         consequence.  Fixes some corner cases about returning things that
2984         don't match your declared out_signature, allows exceptions to define
2985         _dbus_error_name and have it be sent over the bus as the error name,
2986         and paves the way for cool stuff like heeding the message no reply
2987         flag, asynchronous method implementations, informing the method of the
2988         sender, and including backtraces in the error messages.
2989
2990         * test/python/test-client.py: Catch and print exceptions thrown in the
2991         async callback tests, rather than passing them to the low-level
2992         bindings to be ignored in a noisy and frustrating manner.
2993
2994 2005-11-03  Robert McQueen  <robot101@debian.org>
2995
2996         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2997         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2998         tweak others to be consistent.
2999
3000         * test/python/test-client.py: Tweak output of testInheritance.
3001
3002 2005-10-29  Robert McQueen  <robot101@debian.org>
3003
3004         * python/service.py: Major changes to allow multiple inheritance
3005         from classes that define D-Bus interfaces:
3006         
3007          1. Create a new Interface class which is the parent class of
3008             Object, and make the ObjectType metaclass into InterfaceType.
3009         
3010          2. Patch written with Rob Taylor to replace use of method_vtable
3011             with code that walks the class's __MRO__ (method resolution order)
3012             to behave like Python does when invoking methods and allow
3013             overriding as you'd expect. Code is quite tricky because
3014             we have to find two methods, the one to invoke which has the
3015             right name and isn't decorated with the /wrong/ interface,
3016             and the one to pick up the signatures from which is decorated
3017             with the right interface.
3018         
3019             The same caveats apply as to normal multiple inheritance -
3020             this has undefined behaviour if you try and inherit from two
3021             classes that define a method with the same name but are
3022             decorated with different interfaces. You should decorate
3023             your overriding method with the interface you want.
3024         
3025          3. Replace grungy introspection XML generation code in the metaclass
3026             with dictionaries that cope correctly with multiple inheritance
3027             and the overriding of methods. This also uses the signature
3028             decorations to provide correct introspection data, including
3029             the debut appearance of the types of your return values. :D
3030
3031         * test/python/test-client.py, test/python/test-service.py: Add a test
3032         case to try invoking an method that overrides one inherited from a
3033         D-Bus interface class.
3034
3035 2005-10-29  Robert McQueen  <robot101@debian.org>
3036
3037         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3038         Add checking for the end of struct character when marshalling a
3039         struct in MessageIter.append_strict.
3040
3041         * python/examples/example-service.py,
3042         python/examples/gconf-proxy-service.py,
3043         python/examples/gconf-proxy-service2.py: Update to use gobject
3044         mainloop directly rather than appearing to depend on gtk.
3045
3046         * python/test/test-client.py, python/test/test-server.py: Remove
3047         obsolete and broken test scripts for old bindings. We have up to date
3048         and working tests in test/python/.
3049
3050 2005-10-29  Robert McQueen  <robot101@debian.org>
3051
3052         * python/decorators.py: Add optional arguments to the method and
3053         signal decorators to allow you to specify the signature of arguments
3054         and return values. Preserve the doc strings of signal functions in the
3055         decorated version, for pydoc and friends.
3056
3057         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3058         parse_signature_block function with an iterable dbus.Signature()
3059         type. Fix a bug in MessageIter.append_strict where you could append
3060         anything by claiming it was a string.
3061
3062         * python/service.py: Use the out_signature decoration on methods to
3063         marshal return values, meaning you no longer require dbus.Array()
3064         or dbus.Dictionary() to indicate the type when returning empty
3065         arrays or dictionaries. Fix a bug where exceptions which are defined
3066         in __main__ are not turned into error replies.
3067
3068         * test/python/test-client.py, test/python/test-service.py: Add test
3069         for correct marshalling of return values according to out_signature.
3070         Fix a bug in the async call test where the error_handler is missing a
3071         self argument.
3072
3073 2005-10-29  Robert McQueen  <robot101@debian.org>
3074
3075         * glib/Makefile.am, glib/examples/Makefile.am,
3076         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3077         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3078
3079         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3080
3081         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3082         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3083         the command line.
3084
3085 2005-10-27  Ross Burton  <ross@openedhand.com>
3086
3087         * dbus/dbus-marshal-header.c:
3088         Remove dead code.
3089
3090         * glib/dbus-gobject.c:
3091         Stop compiler warning.
3092
3093 2005-10-25  Ross Burton  <ross@openedhand.com>
3094
3095         * dbus/dbus-auth.c:
3096         * dbus/dbus-server-unix.c:
3097         * dbus/dbus-transport-unix.c:
3098         * glib/dbus-gmain.c:
3099         * glib/dbus-gobject.c:
3100         Add some const keywords.
3101
3102 2005-10-25  Ross Burton  <ross@openedhand.com>
3103
3104         * doc/dbus-specification.xml:
3105         Document the NoReply annotation.
3106
3107         * glib/dbus-binding-tool-glib.h:
3108         * glib/dbus-binding-tool-glib.c:
3109         Respect the NoReply annotation.
3110
3111 2005-10-24  Robert McQueen <robot101@debian.org>
3112
3113         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3114         derive from unicode instead of str, and encode/decode UTF-8 when
3115         marshalling/unmarshalling bus messages
3116
3117         * python/introspect_parser.py: encode introspection data as UTF-8
3118         before passing the buffer into libxml2
3119
3120         * test/python/test-client.py: add unicode test strings
3121
3122         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3123         ignore generated python test files
3124
3125 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3126
3127         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3128         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3129         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3130
3131         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3132         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3133         when constructing struct signatures
3134
3135         * python/_dbus.py (Bus): handle private connections using the
3136         private keyword in the constructor. defaults to private=False
3137         (Bus::close): new method to close a connection to the bus
3138
3139         * python/dbus_bindings.pyx (Connection::close): renamed method
3140         was previously called disconnect
3141         (bus_get): now supports getting a private connection
3142
3143         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3144         keyword is set to True.  if it is, execute the method without waiting
3145         for a reply
3146         (ProxyObject::_introspect_execute_queue): new method for executing
3147         all the pending methods that were waiting for the introspect to
3148         finish.  this is called when introspect either succeeds or fails
3149         (ProxyObject::_introspect_error_handler): call queued methods
3150
3151 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3152
3153         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3154         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3155
3156         * python/service.py (Object::_message_cb): handle exceptions correctly
3157         by sending them over the wire to the calling app.  This makes sure
3158         the client returns immediately instead of waiting the 15 seconds to
3159         timeout.
3160
3161         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3162         Add a test to benchmark how long it takes to introspect a service and 
3163         call a method which returns a large element (pretty fast)
3164
3165         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3166         method which pushes a lot of data
3167
3168 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3169
3170         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3171         reclaim memory outside of the loop and use del istead of just setting
3172         the key to None
3173
3174 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3175
3176         * python/service.py (ObjectType::_reflect_on_signal): Always close
3177         signal tag even when there are no arguments
3178
3179 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3180
3181         * configure.in: Set mono, mono-docs and Qt3 to default
3182         to no instead of auto when building.  These bindings do not
3183         have full time maintainers and will not be supported for the
3184         1.0 release.
3185
3186 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3187
3188         patches from Michael Krivoruchko <misha at sun.com>: 
3189         
3190         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3191         _dbus_connection_message_sent, 
3192         _dbus_connection_send_preallocated_unlocked_no_update, 
3193         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3194         is NULL when calling _dbus_verbose
3195
3196         * configure.in: check for functions getpeerucred and getpeereid
3197
3198         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3199         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3200         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3201         Patch was only tested on Solaris 10 x86 so it might be issues
3202         with other platforms (i.e. BSDs and MacOSX)
3203         
3204
3205 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3206
3207         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3208         instead of marshal basic so we can handle recursive types in a variant
3209
3210         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3211         in variants
3212
3213         * test/glib/test-service-glib.c, test-service-glib.xml
3214         (my_object_echo_variant [EchoVariant], 
3215         my_object_process_variant_of_array_of_ints123
3216         [ProcessVariantOfArrayOfInts123]): 
3217         Add two test methods
3218
3219         * python/introspect_parser.py: New module for parsing introspect
3220         data.
3221
3222         * python/dbus_bindings.pyx:
3223         (various places): when throwing errors fix to use errormsg instead 
3224         of message local variable because Pyrex can get confused with other 
3225         message variables (initial patch by Robert McQueen 
3226         <robert.mcqueen at collabora.co.uk>)
3227         (MessageIter::parse_signature_block): new method for getting the next
3228         block in a signiture.
3229         (MessageIter::append_strict): new method for appending values strictly
3230         using the passed in signature instead of guessing at the type
3231         (MessageItter:: append_dict, append_struct, append_array): use 
3232         signatures to marshal children if the signature is available
3233         
3234         * python/exceptions.py (IntrospectionParserException): new exception
3235
3236         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3237         introspected signatures if available, else we fall back to the
3238         old way of doing things.
3239         (ProxyObject::_introspect_reply_handler ): parse introspection data
3240         
3241         * python/service.py (ObjectType::_reflect_on_method): Properly
3242         terminate <method> if there are no args in the reflection data
3243
3244         * test/python/test-client.py: add tests for talking with the GLib
3245         test server.  This gives us better coverage for introspection since
3246         python to python will always generate arguments as variants.  It also
3247         allows us to test the robustness of the GLib bindings and interlanguage
3248         communications.
3249
3250         
3251 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3252
3253         * bus/driver.c (bus_driver_handle_introspect): Add signals
3254         to the introspect data. (patch from Daniel P. Berrange 
3255         <dan at berrange.com>)
3256
3257         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3258         
3259         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3260         _dbus_connection_run_builtin_filters): Changed these to
3261         be unlock_no_update functions and call 
3262         _dbus_connection_send_unlocked_no_update instead of
3263         dbus_connection_send to avoid locking errors.
3264         
3265         * doc/TODO: Removed the make Ping test TODO
3266         
3267 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3268
3269         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3270         We now copy the message from a DBusError and then free 
3271         the error object befor throwing the error
3272
3273         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3274         DBusBindingOutputMode enum which was causing a warning.
3275         #include <time.h> so using time_t is explicitly defined
3276
3277 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3278
3279         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3280         - dbus/dbus-bus.c
3281         (internal_bus_get): new method that take over the heavy lifting
3282         of dbus_bus_get and adds the ability to get a private connection
3283         to the bus
3284         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3285         interface as in previous versions
3286         (dbus_bus_get_private): new method that is a wrapper to 
3287         internal_bus_get to get a private connection to the bus
3288
3289         - dbus/dbus-bus.h
3290         (dbus_bus_get_private): add as a public libdbus interface
3291
3292         - dbus-1.pc.in: output system_bus_default_address and 
3293         sysconfdir variables so apps can use them when compiling
3294
3295 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3296         * dbus/qt: New Qt bindings
3297
3298 2005-09-12  Waldo Bastian  <bastian@kde.org>
3299
3300         * dbus/dbus-marshal-validate.c,
3301         doc/dbus-specification.xml, test/Makefile.am,
3302         test/test-names.c: allow hyphens in bus names.
3303
3304 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3305
3306         * test/data/auth/fallback.auth-script: we don't
3307         retry the EXTERNAL method when we know its going
3308         to fail anymore.
3309
3310 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3311
3312         * dbus/dbus-connection-internal.h: rename
3313         (add|remove|toggle)_(watch|timeout) to unlocked()
3314         
3315         * dbus/dbus-connection.c: ditto.
3316         
3317         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3318         Update some callers for the renaming.
3319
3320 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3321
3322         * dbus/dbus-auth.c: (record_mechanisms): don't
3323         retry the first auth mechanism because we know
3324         we're just going to get rejected again.
3325         
3326         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3327         Fix thinko ... and what a nasty little bugger to
3328         track down you were ...
3329
3330         * dbus/dbus-connection.c:
3331         (_dbus_connection_add_watch),
3332         (_dbus_connection_remove_watch): add note about
3333         these needing the connection to be locked.
3334         (_dbus_connection_get_dispatch_status_unlocked):
3335         set status to DATA_REMAINS when we queue the
3336         disconnected message.
3337         
3338         * bus/dispatch.c:
3339         (bus_dispatch): fix warning.
3340         (check_existent_service_no_auto_start):
3341         Expect ChildSignaled error too.
3342         (check_existent_hello_from_self): fix another
3343         couple of warnings.
3344         
3345 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3346
3347         Patches from James Willcox <snorp@snorp.net>
3348
3349         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3350
3351         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3352         support array "out" parameters.
3353
3354         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3355         for 16-bit int support.
3356
3357 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3358
3359         * Released 0.50
3360
3361         * Patch from Steve Grubb:
3362         - bus/activation.c (bus_activation_service_reload_test): clean up
3363         some indentation
3364         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3365         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3366         buffer overflows in the test suite.  This is non critical because
3367         it can not be exploited and this code is only run when doing a 
3368         make check.
3369
3370         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3371         - configure.in: Don't check and link against kdecore, only qt headers
3372         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3373         - gcj/org/freedesktop/dbus/Makefile.am:
3374         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3375         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3376         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3377         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3378         - tools/Makefile.am: Add platform extentions to binaries 
3379         (i.e. .exe on windows)
3380
3381         * configure.in: 
3382         - Make it so if no suitable version of python is found we only 
3383         disable building python instead of exiting the configure script
3384         - Require version 2.4 of glib for glib bindings
3385         - Up version to 0.50
3386
3387         * python/__init__.py: Sync version with libdbus to (0,50,0)
3388         
3389 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3390
3391         * dbus/dbus-object-tree.c (find_subtree_recurse):
3392         a couple of optimizations (bug #710):
3393         - do a binary search in the tree
3394         - insert a new child at the right place directly, no need for
3395           qsort anymore
3396         - do the "double alloc" thing when allocating children
3397
3398 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3399
3400         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3401
3402         * python/dbus_bindings.pyx: Memory management foo
3403         (global): remove hacky _user_data_references global list
3404         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3405         tuples. Unref user_data
3406         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3407         (Connection::__del__): Remove and replace with __dealloc__ method
3408         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3409         to keep tuple from being deallocated instead of the global var hack
3410         (Connection::register_object_path): Stuff user_data into a tuple.
3411         Use Py_INCREF to keep tuple from being deallocated instead of the 
3412         global var hack
3413         (Connection::register_fallback): Stuff user_data into a tuple.
3414         Use Py_INCREF to keep tuple from being deallocated instead of the 
3415         global var hack
3416         (GIL_safe_pending_call_notification): Don't unref the message
3417         because it gets unreffed when going out of scope.  Py_XDECREF
3418         the user_data
3419         (PendingCall::__del__): Remove and replace with __dealloc__ method
3420         (PendingCall::set_notify): ref the pending call because we will
3421         need it to stick around for when the notify callback gets called
3422         (Message::__del__): Remove and replace with __dealloc__ method
3423
3424         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3425         gthreads_init to match up with the dbus call
3426
3427         * python/glib.py (init_threads): Changed to threads_init to match
3428         up with gobject.threads_init().  init_threads is kept for backwards
3429         compat but will most likely be deprecated in the future
3430
3431         * test/python/test-client.py: 
3432         - revamp to use Python's unittest functionality
3433         - add async call tests
3434         - setup threads in glib and dbus so we make sure locks are working
3435         
3436 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3437
3438         * python/dbus_bindings.pyx 
3439         (_pending_call_notification, cunregister_function_handler, 
3440         cmessage_function_handler): All callback functions have been rearranged 
3441         to workaround a bug in Pyrex when working with the GIL which is Python's 
3442         global lock when dealing with threads.  They have been split into
3443         a wrapper function (which assumes the name of the old function) and
3444         a _GIL_safe_<function name> function which contains the functionality
3445         of the old function.  This ensures that Pyrex does not write code
3446         the lock is released.
3447         
3448
3449 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3450
3451         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3452         GIL global lock when calling back into Python
3453
3454 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3455
3456         * Release 0.36.2
3457
3458         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3459
3460         * bus/policy.c (bus_policy_allow_user): change default "user is
3461         allowed" to be "user has same uid as the bus itself"; any
3462         allow/deny rules will override.
3463
3464         * bus/session.conf.in: don't allow all users, since now by default
3465         the user that ran the bus can connect.
3466
3467 2005-08-26  Colin Walters  <walters@verbum.org>
3468
3469         * tools/dbus-print-message.c (print_message): Flush stdout
3470         after printing a message, so that redirecting to a file, then
3471         hitting Ctrl-C works.
3472
3473 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3474
3475         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3476         (EmptyMessage): new class that subclasses Message.  This is a workaround
3477         to a Pyrex bug that fails to call __del__ when the Message object goes out
3478         of scope.  For some reason subclassing Message fixes this bug
3479         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3480         - s/Message(_create=0)/EmptyMessage everywhere else
3481         
3482         * test/python/test-{server|client}.py: add the python/.libs directory
3483         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3484         get picked up from the system
3485
3486 2005-08-25  Colin Walters  <walters@verbum.org>
3487
3488         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3489         to Ryan Lortie for the suggestion.
3490
3491 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3492
3493         * test/python: Add python regression test
3494
3495         * configure.in: Add test/python/Makefile
3496
3497         * test/Makefile.am: Add the python directory to SUBDIRS
3498
3499 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3500
3501         * Release 0.36.1
3502
3503         * python/_dbus.py: 
3504         (Interface::connect_to_signal): propigate keywords for match on args
3505         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3506
3507         * python/proxies.py (ProxyObject::connect_to_signal):
3508         propigate keywords for match on args
3509
3510         * Makefile.am: point everything to pyexecdir since python borks
3511         on multilib
3512
3513 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3514
3515         * Release 0.36
3516
3517 2005-08-23  Colin Walters  <walters@verbum.org>
3518
3519         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3520
3521 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3522
3523         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3524         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3525         of defining DBusConnection ourselves.
3526
3527 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3528
3529         * python/dbus.pth: New path file to fix up problems when installing
3530         c libraries to lib64 and python files to lib.
3531
3532         * python/Makefile.am: install dbus.pth in the correct spot
3533
3534 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3535         * ChangeLog: clean up my last entry a bit
3536
3537         * doc/introspect.xsl: New stylesheet for converting introspection data
3538         into browser renderable xhtml. Contributed by Lennart Poettering.
3539
3540         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3541         Poettering.
3542
3543         * doc/dbus-tutorial.xml: 
3544         - Add Colin Walter to the Authors section for authoring the GLib
3545         section
3546         - Add descriptions of the new signature and type functionality
3547         in the Python complex type mapping section
3548         - Add a sidenote on the new args matching functionality in 
3549         the Python bindings
3550         - Fixed up some of the examples to use the gobject.MainLoop
3551         instead of gtk.main
3552         
3553         * python/_dbus.py:
3554         (Bus::_create_args_dict): New. Converts a hash of arg matches
3555         to a more useable format
3556         (Bus::add_signal_receiver): add a **keywords parameter for catching
3557         arg match parameters
3558         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3559         arg match parameters
3560         
3561         * python/matchrules.py:
3562         (MatchTree::exec_matches): Check for arg matches
3563         (SignalMatchRule::add_args_match): New method
3564         (SignalMatchRule::execute): Added args_list parameter as an optimization
3565         so we don't have to marshal the args more than once
3566         (SignalMatchRule::match_args_from_list): New method that checks to see
3567         if the rule's arg matches match an argument list.  Only arguments
3568         set in the rule are checked.
3569         (SignalMatchRule::match_args_from_rule): New method that checks to see
3570         if the rule's arg matches match another rule's.  All args have to match
3571         in order for this method to return true.  If either rule has more args
3572         then it is not a match.
3573         (SignalMatchRule::is_match): Add args match
3574         (SignalMatchRule::repr): Add args to the final output if they exist
3575
3576 2005-08-17  Ross Burton  <ross@burtonini.com>
3577
3578         * glib/dbus-gproxy.c:
3579         (dbus_g_proxy_call_no_reply): unref the message once sent.
3580         (dbus_g_proxy_call): protect against NULL proxy.
3581
3582 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3583
3584         * python/__init__.py: Version updated (0, 43, 0)
3585         
3586         * python/dbus_bindings.pyx: 
3587         - Fixed type objects to have self passed into __init__
3588         - Added the Variant type
3589         - Add the ability to specify types or signatures for Array, Variant 
3590         and Dictionary
3591         (Connection::send_with_reply_handlers): return a PendingCall object
3592         (_pending_call_notification): handle the case when an error is returned 
3593         without an error message in the body
3594         (MessageIter::get_boolean): return True or False instead of an integer
3595         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3596         and add checks for objects with embeded signatures or types (Array, 
3597         Variant and Dictionary)
3598         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3599         (MessageIter::append_dict): handle embeded types or signatures
3600         (MessageIter::append_array): handle embeded types or signatures
3601         (MessageIter::append_variant): new method
3602         
3603         * python/proxies.py:
3604         (DeferedMethod): New. Dummy executable object used when queuing calls 
3605         blocking on introspection data
3606         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3607         or shorter timeouts for method calls
3608         (ProxyObject): Add first pass at an introspection state machine
3609         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3610         introspection. 
3611         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3612         the usual mechanisms for sending messages.  This is to avoid a deadlock
3613         where the Intospect call would be queued waiting for the Introspect 
3614         call to finish ;-)
3615         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3616         when introspection returns with no error
3617         (ProxyObject::_introspect_error_handler): New.  This method is called 
3618         when introspection encounters an error
3619         (ProxyObject::__getattr__): Code to handle different introspection 
3620         states.  Queue async calls or block blocking calls if we are 
3621         introspecting.  Pass through as normal if we are not or are done with 
3622         introspecting.
3623         
3624         * python/service.py: Import signal and method from decorators.py
3625
3626         * python/types.py: Add Variant type
3627
3628 2005-08-16  Colin Walters  <walters@verbum.org>
3629
3630         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3631         DBusError message is NULL.
3632
3633 2005-08-09  Havoc Pennington  <hp@redhat.com>
3634
3635         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3636         malloc'd copy of the name parameter
3637
3638 2005-08-09  Havoc Pennington  <hp@redhat.com>
3639
3640         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3641         warning if the reply serial is set to 0
3642
3643 2005-08-04  Colin Walters  <walters@verbum.org>
3644
3645         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3646         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3647         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3648         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3649         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3650         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3651         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3652         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3653         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3654         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3655         
3656         Prefix name with _ to ensure they're not exported.  All callers
3657         updated.
3658
3659         * glib/dbus-gvalue.c (typecode_to_gtype)
3660         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3661         (signature_iter_to_g_type_dict)
3662         (signature_iter_to_g_type_array)
3663         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3664         (dbus_gtypes_from_arg_signature):
3665         Move to dbus-gsignature.c.
3666
3667         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3668         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3669         (dbus_binding_tool_output_glib_client): Ditto.
3670
3671         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3672         and dbus-gsignature.h
3673
3674         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3675         unused variable.
3676
3677 2005-08-03  Colin Walters  <walters@verbum.org>
3678
3679         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3680         catch any incompatible changes accidentally made.
3681
3682 2005-08-03  Havoc Pennington  <hp@redhat.com>
3683
3684         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3685         typo, from Julien Puydt
3686
3687         * bus/connection.c (bus_connection_disconnected): we were always
3688         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3689
3690 2005-08-01  Colin Walters  <walters@verbum.org>
3691
3692         Patch from Joe Markus Clarke:   
3693         
3694         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3695         use-after-free.
3696
3697 2005-08-01  Colin Walters  <walters@verbum.org>
3698         
3699         Patch from Joe Markus Clarke:   
3700         
3701         * tools/dbus-send.c (main): 
3702         
3703         Don't use C99 style initializers (bug #3933).
3704         
3705 2005-08-01  Colin Walters  <walters@verbum.org>
3706
3707         Patch from Joe Markus Clarke:   
3708
3709         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3710         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3711         * glib/dbus-gobject.c (write_interface):
3712
3713         Don't use C99 style initializers (bug #3933).
3714
3715 2005-07-31  Havoc Pennington  <hp@redhat.com>
3716
3717         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3718         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3719
3720 2005-07-30  Havoc Pennington  <hp@redhat.com>
3721
3722         * fix a bunch of Doxygen warnings and mistakes
3723
3724 2005-07-30  Havoc Pennington  <hp@redhat.com>
3725
3726         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3727         DBUS_BUILD_TESTS since it's now used in production code
3728
3729 2005-07-29  Havoc Pennington  <hp@redhat.com>
3730
3731         * test/glib/test-profile.c (write_junk): initialize the junk
3732         buffer so valgrind doesn't have a breakdown
3733
3734 2005-07-29  Havoc Pennington  <hp@redhat.com>
3735
3736         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3737         (match_rule_matches): remove unused arg
3738         (test_matching): add tests for match_rule_matches()
3739
3740         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3741         do arg0='foo' arg5='bar' in the match rules
3742         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3743
3744         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3745
3746 2005-07-29  Ross Burton  <ross@openedhand.com>
3747
3748         * dbus/dbus-connection.c:
3749         Don't create a DBusCondVar which is never used.
3750
3751 2005-07-27  Ross Burton  <ross@openedhand.com>
3752
3753         * dbus/dbus-message.c:
3754         Reduce the size of the maximum cached message to 10K.
3755
3756 2005-07-25  Ross Burton  <ross@openedhand.com>
3757
3758         * glib/dbus-gproxy.c:
3759         Remove matches when all proxies are unregistered.
3760
3761 2005-07-24  Colin Walters  <walters@verbum.org>
3762
3763         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3764         typedata; recursive arrays won't have it.
3765
3766         * test/glib/test-dbus-glib.c:
3767         * test/glib/test-service-glib.c:
3768         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3769         
3770 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3771
3772         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3773         proxies.py, service.py: Cleanup of code after running it through the
3774         pyflakes code checker mostly dealing with undefined names.  
3775         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3776
3777 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3778
3779         * NEWS: Update to 0.35.2
3780
3781 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3782
3783         * python/_dbus.py: Remove import of the dbus.services
3784         module as it no longer exists (patch from Dimitur Kirov)
3785
3786         * python/service.py (Object::__init__): Fixed typo
3787         s/name/bus_name (patch from Dimitur Kirov)
3788
3789         * python/examples/example-signal-emitter.py: import dbus.glib
3790         to get the main loop and use glib mainloop instead of gtk so
3791         X doesn't have to be running.
3792
3793         * python/examples/example-signal-recipient.py: import dbus.glib
3794         to get the main loop and use glib mainloop instead of gtk so
3795         X doesn't have to be running. Import the decorators module
3796         directly.
3797
3798         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3799         didn't pick up on but are needed to build
3800
3801         * configure.in: upped version to 0.35.2
3802
3803         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3804         added Colin Walters' SELinux API rename patch from head 
3805         s/unix sercurity context/selinux security context/
3806
3807 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3808
3809         * python/Makefile.am: dbus_binding.pxd.in should be included 
3810         in EXTRA_DIST not dbus_binding.pxd
3811         fix up $(srcdir) hopefully for the last time
3812
3813         * NEWS: Update to 0.35.1
3814
3815 2005-07-16  Colin Walters  <walters@verbum.org>
3816
3817         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3818         from bus_driver_handle_get_connection_unix_security_context.  Update for
3819         error usage.
3820         (message_handlers): Update for renames.
3821
3822         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3823         _dbus_string_init failure correctly.
3824         (bus_selinux_append_context): Convert SID to context.  Append it
3825         as a byte array.
3826         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3827         hasn't been called.
3828
3829         * bus/selinux.h: Update prototype.
3830
3831         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3832         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3833
3834 2005-07-15  Colin Walters  <walters@verbum.org>
3835
3836         * doc/TODO: Add note about convenience wrappers.
3837
3838 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3839
3840         * NEWS: Update to 0.35
3841
3842 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3843
3844         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3845         so distcheck doesn't fail
3846
3847         * glib/examples/Makefile.am: Add example-service.xml and 
3848         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3849
3850         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3851         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3852
3853         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3854         compiler looks in the right places during distcheck
3855
3856 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3857
3858         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3859         to fail
3860
3861 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3862
3863         * python/examples/example-service.py,
3864         python/examples/example-signal-emitter.py: Fixed up examples
3865         for API changes
3866
3867 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3868
3869         * python/__init__.py: Upped to version (0,42,0) because of
3870         the API change
3871
3872 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3873
3874         * ChangeLog: fix date in last entry
3875
3876         * configure.in, bus/system.conf.in: add the ability to configure 
3877         the system bus user at compiletime with the --with-dbus-user flag
3878         (patch from Kristof Vansant)
3879
3880 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3881
3882         * bus/dispatch.c, test/test-service.c: Add testcase
3883         for sending messages to oneself (TODO item).
3884
3885         * python/service.py (class Object): Swap ordering of bus_name 
3886         and object_path parameters to better support inheritance.
3887
3888         * doc/dbus-tutorial.xml: change Python docs to reflect change
3889         in parameter ordering and fix the inheritance section.
3890
3891         * doc/TODO: remove sending message to oneself TODO item
3892
3893 2005-07-15  Ross Burton  <ross@openedhand.com>
3894
3895         * glib/dbus-gproxy.c:
3896         Fix a leak when calling methods via the proxy.
3897
3898 2005-07-15  Colin Walters  <walters@verbum.org>
3899
3900         * bus/selinux.c (bus_selinux_append_context): Wrap in
3901         HAVE_SELINUX.
3902
3903 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3904
3905         * python/_dbus.py (Bus::remove_signal_receiver):
3906         don't add a callback to the match if none has been passed in
3907         
3908         * python/matchrules.py (SignalMatchTree::remove): if the rule
3909         being matched does not have a callback treat it as a wildcard
3910         fix matching logic
3911
3912         * doc/dbus-tutorial.xml: Add Python tutorial
3913
3914 2005-07-14  Colin Walters  <walters@verbum.org>
3915
3916         * bus/driver.c
3917         (bus_driver_handle_get_connection_unix_security_context): New function.
3918         (message_handlers): Add.
3919
3920         * bus/selinux.c (bus_selinux_append_context): New function; appends
3921         security context to message.
3922
3923         * bus/selinux.h: Prototype.
3924
3925         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3926
3927 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3928
3929         * bus/activation.c: clean up all tabs to be 8 spaces 
3930         (bus_activation_activate_service): make sure we clean up
3931         if activation fails
3932
3933         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3934         (check_shell_fail_service_auto_start): New function
3935         tests to make sure we get fail properly when trying to auto start a service
3936         with a faulty command line
3937         (check_shell_service_success_auto_start): New function tests to make sure
3938         auto started services get the arguments on the command line
3939
3940         * test/test-shell-service.c: Added service for testing auto-starting with 
3941         command line arguments
3942
3943         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3944         test/data/valid-service-files/debug-shell-echo-success.service.in:
3945         Added service files for testing auto-starting with command line arguments
3946
3947         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3948
3949 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3950
3951         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3952         
3953         * dbus/Makefile.am: added new files to build.
3954
3955         * bus/activation.c (bus_activation_activate_service): support
3956         activation commands with parameters.
3957
3958         * test/shell-test.c: added test program for the shell parsing
3959         code.
3960
3961 2005-07-13  David Zeuthen  <davidz@redhat.com>
3962
3963         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3964         64 bit signed and unsigned parameters
3965
3966 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3967
3968         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3969
3970         * python/service.py (class Name): renamed BusName to make it clearer
3971         what the object is for (a name on the bus)
3972
3973         * python/examples/example-service.py,
3974         python/examples/example-signal-emitter.py: change the Name object to
3975         BusName
3976
3977 2005-07-12  Colin Walters  <walters@verbum.org>
3978
3979         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3980
3981         * tools/dbus-launch.c: Include sys/select.h.
3982
3983 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3984         * python/dbus_bindings.pyx.in: removed
3985
3986         * python/dbus_bindings.pyx: Added.
3987         - Fixed some memleaks (patch from 
3988         Sean Meiners <sean.meiners@linspireinc.com>)
3989         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3990         own pxd file (Pyrex definition)
3991         - Broke out glib dependancies into its own pyx module
3992         
3993         * python/dbus_bindings.pdx: Added.
3994         - Defines C class Connection for exporting to other modules
3995
3996         * python/dbus_glib_bindings.pyx: Added.
3997         - New module to handle lowlevel dbus-glib mainloop integration
3998
3999         * python/glib.py: Added.
4000         - Registers the glib mainloop when you import this module
4001
4002         * python/services.py: Removed (renamed to service.py)
4003         
4004         * python/service.py: Added.
4005         - (class Server): renamed Name
4006
4007         * python/__init__.py: Bump ro version (0,41,0)
4008         -don't import the decorators or service module
4009         by default.  These now reside in the dbus.service namespace
4010
4011         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4012         setup function on creation 
4013
4014         * python/examples/example-service.py,
4015         python/examples/example-signal-emitter.py: update examples
4016
4017         * python/examples/gconf-proxy-service.py,
4018         python/examples/gconf-proxy-service2.py: TODO fix these up
4019
4020         * doc/TODO: Addition
4021         - Added a Python Bindings 1.0 section
4022         - added "Add match on args or match on details to match rules"
4023
4024
4025 2005-07-12  Colin Walters  <walters@verbum.org>
4026
4027         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4028         (statemachine-glue.h): 
4029         * glib/examples/Makefile.am (example-service-glue.h) 
4030         (example-signal-emitter-glue.h): 
4031         * glib/Makefile.am (dbus-glib-error-switch.h): 
4032         Add libtool --mode=execute so we use the built library instead
4033         of any installed one.
4034
4035 2005-07-11  Colin Walters  <walters@verbum.org>
4036
4037         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4038         (dbus_g_value_types_init): Remove assertion.
4039         (dbus_g_value_get_g_type, dbus_g_value_open)
4040         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4041         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4042         functions related to DBusGValue.  Now we marshal/demarshal
4043         structures as GValueArray.
4044         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4045         structures.
4046         (signature_iter_to_g_type_array): Don't call
4047         signature_iter_to_g_type_struct.
4048         (signature_iter_to_g_type_struct): Delete.
4049         (dbus_gvalue_to_signature): Delete.
4050         (dbus_gvalue_to_signature): New function with same name as other
4051         one; we can convert structures to signatures.
4052         (demarshal_valuearray): New function.
4053         (get_type_demarshaller): Use it.
4054         (demarshal_recurse): Delete.
4055         (marshal_proxy): New function.
4056         (marshal_map): Warn if we can't determine signature from type.
4057         (marshal_collection_ptrarray): Ditto.
4058         (marshal_collection_array): Ditto.
4059         (get_type_marshaller): Use marshal_valuearray.
4060         (marshal_recurse): Delete.
4061         (_dbus_gvalue_test): Add some tests.
4062
4063         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4064         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4065         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4066         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4067         (dbus_g_value_free): Remove prototypes.
4068
4069         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4070         G_TYPE_VALUE_ARRAY.
4071
4072         * glib/examples/example-service.c:
4073         * glib/examples/example-client.c: Implement GetTuple.
4074
4075         * test/glib/test-dbus-glib.c:
4076         * test/glib/test-service-glib.c:
4077         * test/glib/test-service-glib.xml: Add structure tests.
4078
4079 2005-07-10  Colin Walters  <walters@verbum.org>
4080
4081         * doc/TODO: Knock off some GLib items with this patch.
4082
4083         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4084         (_dbus_gvalue_signals_error): New functions.
4085
4086         * glib/dbus-gvalue-utils.h: Prototype them.
4087
4088         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4089         and change to not output const/retval flags for input args.  All
4090         callers updated.
4091         (invoke_object_method): Refactor to handle return values.  Add
4092         some more comments in various places.  Remove debug g_print.
4093
4094         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4095
4096         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4097         Handle G_TYPE_NONE.
4098         (compute_gsignature): New function; refactored from code from
4099         compute_marshaller and compute_marshaller_name.  Enhance to
4100         handle return values and async ops more cleanly.  Update for
4101         async ops returning NONE instead of BOOLEAN.
4102         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4103         and output appropriate string.
4104         (generate_glue): Handle return value annotation.  Also don't dump
4105         constness flag for input arguments.
4106
4107         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4108         files shared between installed library and utilities.
4109         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4110         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4111         binding tool can access gtype utility functions.
4112
4113         * test/glib/test-service-glib.c: 
4114         * test/glib/test-service-glib.xml: 
4115         * test/glib/test-dbus-glib.c: Add some tests for return values.
4116
4117 2005-07-09  Colin Walters  <walters@verbum.org>
4118
4119         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4120         argument if available, not method.
4121
4122         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4123         (invoke_object_method): First, remove some redundant
4124         GValues (object_value, error_value) in favor of working on
4125         array directly.  Second, rework constness to be less buggy.
4126         Now we iterate directly over the argument metadata instead
4127         of parallel iterating over output signature and metadata.
4128
4129         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4130
4131         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4132         annotation on input args.
4133         
4134 2005-07-09  Colin Walters  <walters@verbum.org>
4135
4136         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4137         Define.
4138
4139         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4140         annotation.
4141
4142         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4143         (method_dir_signature_from_object_info): Handle arg_iterate change.
4144         (write_interface): Ditto.
4145         (lookup_object_info): Don't barf if format_version is > 0.
4146         (invoke_object_method): Handle arg constness.
4147
4148         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4149         (arg_info_new): Create.
4150         (arg_info_unref): Destroy.
4151         (arg_info_get_annotations, arg_info_get_annotation) 
4152         (arg_info_add_annotation): New functions.
4153
4154         * glib/dbus-gidl.h: Prototype them.
4155
4156         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4157         args, disallow them in properties.
4158         (parse_annotation): Handle arg annotations.
4159
4160         * test/glib/test-service-glib.xml: 
4161         * test/glib/test-service-glib.c: Update to make some methods
4162         const.
4163
4164 2005-07-08  Colin Walters  <walters@verbum.org>
4165
4166         * test/glib/test-service-glib.xml: 
4167         * test/glib/test-service-glib.c:
4168         * test/glib/test-dbus-glib.c: Test a{sv}.
4169
4170         * glib/examples/statemachine/statemachine.c:
4171         * glib/examples/statemachine/statemachine-server.c:
4172         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4173         add progress bar, etc.
4174
4175         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4176         needed anymore due to generic array/map marshalling.
4177         (dbus_g_value_types_init): Don't register basic arrays or the
4178         string/string hash.
4179         (dbus_gtype_from_signature_iter): Don't try to recurse into
4180         variants.
4181         (dbus_gtype_to_signature): Check collection/map before type
4182         metadata.
4183         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4184         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4185         generic map creation/append functions instead of hash table
4186         specifically.
4187         (get_type_demarshaller): Handle maps.
4188         (demarshal_collection): Dispatch on collection type to either
4189         demarshal_collection_ptrarray or demarshal_collection_array.
4190         (get_type_marshaller): Handle maps.
4191         (marshal_collection): Dispatch collection type to either
4192         marshal_collection_ptrarray or marshal_collection_array.
4193         (_dbus_gvalue_test): New test.
4194
4195         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4196         (hash_free_from_gtype): Use it to free GValues.
4197         (hashtable_append): New function.
4198         (ptrarray_append): Fix prototype.
4199         (slist_append): Ditto.
4200         (_dbus_gvalue_utils_test): Extend tests.
4201
4202         * glib/dbus-gtype-specialized.c
4203         (dbus_g_type_specialized_init_append): Renamed from
4204         dbus_g_type_specialized_collection_init_append.  Remove const from
4205         value, since we steal it.
4206         (dbus_g_type_specialized_map_append): New function.
4207
4208         * glib/dbus-gtype-specialized.h: Update prototypes.
4209         Add DBusGTypeSpecializedMapAppendFunc.
4210
4211         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4212         _dbus_gvalue_test.
4213         
4214         * glib/dbus-gtest.h: Prototype it.
4215
4216 2005-07-08  Ross Burton  <ross@openedhand.com>
4217
4218         * dbus/dbus-glib.h:
4219         Add DBysGAsyncData for the async bindings.
4220
4221         * glib/dbus-binding-tool-glib.c:
4222         Re-enable the async bindings.
4223
4224         * test/glib/test-dbus-glib.c:
4225         Add a test for the generated async bindings.
4226
4227 2005-07-08  Colin Walters  <walters@verbum.org>
4228
4229         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4230         connection concept.
4231         
4232 2005-07-08  Colin Walters  <walters@verbum.org>
4233         
4234         * tools/Makefile.am: Kill of print-introspect in favor of using
4235         dbus-send --print-reply=literal.
4236
4237         * test/glib/test-service-glib.xml: 
4238         * test/glib/test-service-glib.c (my_object_get_objs): New test
4239         for "ao".
4240
4241         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4242         (main): Test GetObjs.
4243
4244         * glib/examples/statemachine/Makefile.am:
4245         * glib/examples/statemachine/sm-marshal.list:
4246         * glib/examples/statemachine/statemachine-client.c:
4247         * glib/examples/statemachine/statemachine-server.c:
4248         * glib/examples/statemachine/statemachine-server.xml:
4249         * glib/examples/statemachine/statemachine.c:
4250         * glib/examples/statemachine/statemachine.h:
4251         * glib/examples/statemachine/statemachine.xml:
4252
4253         New example.
4254
4255         * glib/examples/example-service.c (main): Move invocation
4256         of dbus_g_object_type_install_info earlier, to emphasize it
4257         should only be done once.
4258
4259         * glib/examples/example-signal-emitter.c (main): Ditto.
4260
4261         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4262
4263         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4264         (dbus_gvalue_marshal): Update prototypes.
4265
4266         * glib/dbus-gvalue.c: Update all marshalling functions to take
4267         const GValue instead of GValue.
4268         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4269         types.
4270         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4271         change.
4272         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4273         Return a newly-allocated string.
4274         (demarshal_proxy, demarshal_object_path, demarshal_object)
4275         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4276         we get the wrong types from message.
4277         (get_type_demarshaller): New function, extracted from
4278         dbus_gvalue_demarshal.
4279         (demarshal_collection): New function, demarshals generic
4280         collection.
4281         (dbus_gvalue_demarshal): Just invoke result of
4282         get_type_demarshaller.  Throw error if we don't have one.
4283         (marshal_garray_basic): Abort on OOM.
4284         (get_type_marshaller): New function, extracted from
4285         dbus_gvalue_marshal.
4286         (collection_marshal_iterator, marshal_collection): New functions;
4287         implements generic marshalling for an iteratable specialized
4288         collection.
4289         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4290
4291         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4292         G_TYPE_STRING.
4293         (ptrarray_value_from_gvalue): Ditto.
4294         (ptrarray_append, ptrarray_free): New functions.
4295         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4296         (slist_append, slist_end_append, slist_free): New functions.
4297         (dbus_g_type_specialized_builtins_init): Add append fuctions
4298         for GPtrArray and GSList.  Register GSList.
4299         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4300
4301         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4302         New.
4303         (dbus_g_type_specialized_collection_init_append)
4304         (dbus_g_type_specialized_collection_append)
4305         (dbus_g_type_specialized_collection_end_append): Prototype.
4306         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4307         end_append_func.
4308
4309         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4310         (dbus_g_type_specialized_collection_append) 
4311         (dbus_g_type_specialized_collection_end_append): New functions.
4312         (dbus_g_type_map_value_iterate): Take const GValue.
4313         (dbus_g_type_collection_value_iterate): Ditto.
4314
4315         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4316         _dbus_gvalue_utils_test.
4317         
4318         * glib/dbus-gtest.h: Prototype it.
4319
4320         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4321         using uninitialized owner_list.
4322         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4323         public API.
4324         (dbus_g_proxy_end_call_internal): Update to use error set
4325         from dbus_gvalue_demarshal instead of setting it here.
4326         (dbus_g_proxy_begin_call): Move return_if_fail here.
4327
4328         * glib/dbus-gobject.c (write_interface): Update for
4329         dbus_gtype_to_signature returning new string.
4330
4331         * configure.in: Add glib/examples/statemachine.
4332
4333 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4334
4335         * configure.in: Add a configure option, --with-console-auth-dir
4336         
4337         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4338         new setting.  Patch from Kay Sievers.
4339
4340 2005-07-06  Colin Walters  <walters@verbum.org>
4341
4342         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4343         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4344         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4345         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4346         Delete in favor of dbus_g_proxy_begin_call and
4347         dbus_g_proxy_cancel_call.
4348         (DBusGProxyCall, DBusGProxyCallNotify): New.
4349         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4350         data, and destroy function.  This replaces
4351         dbus_g_pending_call_set_notify.
4352         (dbus_g_proxy_cancel_call): Prototype.
4353         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4354
4355         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4356         pending_calls map.
4357         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4358         internal proxy for calls to the bus. Remove
4359         pending_nameowner_calls, now the internal proxy keeps track.
4360         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4361         pending_nameowner_calls.
4362         (got_name_owner_cb): Update prototype, and use
4363         dbus_g_proxy_end_call.
4364         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4365         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4366         favor of using internal proxy.
4367         (dbus_g_proxy_manager_unregister): Update to use
4368         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4369         (dbus_g_proxy_init): Initialize pending calls map.
4370         (dbus_g_proxy_constructor): New.
4371         (dbus_g_proxy_class_init): Add get/set property functions,
4372         constructor, and add NAME, PATH, and INTERFACE properties.
4373         (cancel_pending_call): New function.
4374         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4375         cancel them.
4376         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4377         (GPendingNotifyClosure): New structure.
4378         (d_pending_call_notify, d_pending_call_free): Moved here from
4379         dbus-glib.c.
4380         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4381         ordering.
4382         (manager_begin_bus_call): New internal function for talking to
4383         internal bus proxy.
4384         (dbus_g_proxy_new): Construct object using GObjet properties.
4385         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4386         Create closure of same, and insert call into map of pending calls.
4387         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4388         call.  Look up pending call in current set.  Remove it when we've
4389         completed.
4390         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4391         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4392         and destroy function directly.
4393         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4394         (dbus_g_proxy_call): Invoke with NULL callback.
4395         (dbus_g_proxy_cancel_call): New function, replaces
4396         dbus_g_pending_call_cancel.
4397
4398         * glib/dbus-gparser.c (validate_signature): Fix call to
4399         dbus_set_g_error.
4400
4401         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4402         New quark for attaching metadata to GType.
4403         (info_hash): Delete.
4404         (lookup_object_info): Look up using quark.
4405         (dbus_g_object_type_install_info): Check that a type is classed,
4406         not that it's an object.  Also just install type data using quark
4407         instead of using global hash.
4408
4409         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4410         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4411         (GPendingNotifyClosure): Delete.
4412         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4413         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4414
4415         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4416         client method generation until we can fix it...
4417         
4418         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4419         (load_from_service_thread_func): Ditto.
4420
4421         * tools/dbus-names-model.c (struct NamesModel): Hold
4422         DBusGProxyCall.
4423         (have_names_notify): Update prototype, use
4424         dbus_g_proxy_cancel_call.
4425         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4426
4427         * tools/dbus-monitor.c (filter_func): Update for print_message
4428         API change.
4429
4430         * test/glib/test-dbus-glib.c: Add more tests for async
4431         invocations.  Update many begin_call/end_call pairs to just use
4432         dbus_g_proxy_call.
4433
4434         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4435         allows us to dump print-introspect.c.
4436
4437         * tools/dbus-print-message.h (print_message): Add literal argument
4438         to print_message which is intended to allow printing arguments without
4439         metadata like "string=".
4440
4441         * tools/dbus-print-message.c (print_iter): Add literal argument.
4442         (print_message): Allow printing string messages literally.
4443
4444 2005-07-05  Colin Walters  <walters@verbum.org>
4445
4446         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4447         Remove value refcount leak, original patch from Jorn Baayen
4448         <jorn@openedhand.com>.  Also remove useless extra value in favor
4449         of prepending to value array directly.
4450
4451 2005-07-02  Colin Walters  <walters@verbum.org>
4452
4453         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4454
4455 2005-07-01  Colin Walters  <walters@verbum.org>
4456
4457         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4458         
4459         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4460         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4461         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4462         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4463
4464 2005-06-30  Colin Walters  <walters@verbum.org>
4465
4466         * test/glib/test-dbus-glib.c:
4467         * test/glib/test-service-glib.c:
4468         * test/glib/test-service-glib.xml: Update tests for new error
4469         setting bits, also add async tests (patch from Ross Burton).
4470
4471         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4472         DBUS_GLIB_THREADS_LIBS.
4473
4474         * glib/dbus-gproxy.c (get_name_owner)
4475         (dbus_g_pending_call_end_valist): Ditto.
4476
4477         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4478         domain (GQuark) to DBusGErrorInfo.  
4479         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4480         quark in error_metadata.  Take message interface as default
4481         error message interface.
4482         (gerror_to_dbus_error_message): Pass message interface.
4483         (dbus_set_g_error): Resurrected.
4484         (dbus_g_error_info_free): New function.
4485         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4486         of _peek to actually create the object class if it hasn't been
4487         created yet.
4488         (dbus_g_error_domain_register): New function.
4489
4490         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4491
4492         * glib/dbus-gparser.c (validate_signature): Ditto.
4493
4494         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4495         (dbus_g_error_domain_register): Prototype.
4496
4497         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4498         Update tests.
4499
4500 2005-06-29  Colin Walters  <walters@verbum.org>
4501
4502         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4503         DBUS_TYPE_G_OBJECT_PATH.
4504
4505         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4506         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4507         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4508         (dbus_g_object_path_get_g_type): New function.
4509         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4510         to DBUS_TYPE_G_OBJECT_PATH by default.
4511         (demarshal_proxy): Remove unused name variable.
4512         (demarshal_object_path, marshal_object_path): New functions.
4513         (demarshal_proxy_array, marshal_proxy_array): Delete.
4514         
4515         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4516         DBUS_TYPE_G_OBJECT_PATH to char *.
4517         (dbus_g_type_get_lookup_function): Map builtin
4518         DBUS_TYPE_G_OBJECT_PATH.
4519
4520         * test/glib/test-dbus-glib.c
4521         * test/glib/test-service-glib.c (my_object_objpath): 
4522         Adapt tests to new object path marshalling.
4523
4524 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4525
4526         * configure.in: force check for Python >= 2.4
4527
4528 2005-06-29  Colin Walters  <walters@verbum.org>
4529         
4530         Patch from Ross Burton <ross@openedhand.com>
4531         
4532         * glib/dbus-gobject.c (invoke_object_method): Unset object
4533         value in all cases, not only in async case.
4534
4535 2005-06-29  Colin Walters  <walters@verbum.org>
4536
4537         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4538         name_call for keeping track of any outgoing GetNameOwner call.
4539         Also add for_owner and associated.
4540         (struct _DBusGProxyManager): Add owner_names, which is hash table
4541         that maps a base name to a list of names it owns (that we're
4542         interested in).  Add pending_nameowner_calls which is a list of
4543         all outstanding GetNameOwner; avoids us having to iterate over
4544         every proxy.  Add unassociated_proxies which keeps track of name
4545         proxies with no associated name owner.
4546         (dbus_g_proxy_manager_unref): Destroy owner_names.
4547         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4548         name refcounts.
4549         (find_name_in_info, name_owner_foreach)
4550         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4551         (dbus_g_proxy_manager_monitor_name_owner)
4552         (dbus_g_proxy_manager_unmonitor_name_owner)
4553         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4554         New functions; they manipulate the owner_names mapping.
4555         (got_name_owner_cb): New function.
4556         (get_name_owner): New function, extracted from
4557         dbus_g_proxy_new_for_name_owner.
4558         (dbus_g_proxy_manager_register): For now we need to keep track of
4559         all NameOwnerChanged.  Also if the proxy is for a name, if we
4560         don't already know the name owner, queue a new GetNameOwner
4561         request and add it to our list of unassociated proxies.  Otherwise
4562         inc the refcount.
4563         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4564         cancel any pending GetNameOwner call, etc.
4565         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4566         the owner_names mapping to look up the current names for the
4567         signal source, and dispatch to any proxies for that name.
4568         (dbus_g_proxy_new): Initialize new members.
4569         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4570         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4571         (dbus_g_pending_call_end_valist): New function, extracted from
4572         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4573         but want to use the GLib infrastructure.  Also note how many
4574         arguments in reply were over.
4575         (dbus_g_pending_call_end): New function, just call
4576         dbus_g_pending_call_end_valist.
4577         (dbus_g_proxy_end_call_internal): Just call
4578         dbus_g_pending_call_end_valist.
4579
4580         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4581         of builtin marshaller for STRING_STRING_STRING.
4582
4583         * test/glib/test-dbus-glib.c: 
4584         * test/glib/test-service-glib.c:
4585         * test/glib/test-service-glib.xml:
4586         Extend tests to cover name proxies, destruction of owner proxies,
4587         etc.
4588         
4589         * glib/examples/example-signal-recipient.c
4590         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4591         
4592         * tools/dbus-send.c (main): Print D-BUS error name in addition
4593         to message.
4594
4595 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4596
4597         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4598         cmessage_function_handler): Patch from 
4599         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4600         by using the Py_GILState_Ensure/Release to synchronize with the
4601         python runtime.
4602         
4603 2005-06-28  Ray Strode  <rstrode@redhat.com>
4604
4605         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4606         babysitter helper process on last unref, bug #2813.
4607
4608 2005-06-27  Colin Walters  <walters@verbum.org>
4609
4610         * test/glib/test-dbus-glib.c: 
4611         * test/glib/test-service-glib.c:
4612         * test/glib/test-service-glib.xml:
4613         Test hash table signal emitting.
4614
4615         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4616         types to their fundamental basis types, since this is what
4617         marshallers operate on.  Also add an entry for VOID__BOXED.
4618         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4619
4620 2005-06-26  Havoc Pennington  <hp@redhat.com>
4621
4622         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4623         from Don Park
4624
4625 2005-06-26  Colin Walters  <walters@verbum.org>
4626
4627         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4628         (dbus_g_error_set): New public function from its ashes; used by
4629         both service-side method implementation and GLib bindings
4630         internals.
4631         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4632         (_dbus_glib_test): Add some tests.
4633
4634         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4635
4636         * test/glib/test-service-glib.c (my_object_throw_error): Use
4637         dbus_g_error_set.
4638
4639         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4640         errors thrown by dbus_g_error_set.
4641
4642         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4643
4644         * glib/dbus-gparser.c (validate_signature): Ditto.
4645
4646         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4647         (dbus_g_proxy_end_call_internal): Ditto.
4648
4649         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4650         converts DBUS_ERROR_x to DBUS_GERROR_x.
4651         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4652
4653         * doc/TODO: Remove error TODO.
4654
4655         * doc/dbus-tutorial.xml: Update with documentation about error
4656         handling.
4657
4658         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4659         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4660         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4661
4662 2005-06-22  Colin Walters  <walters@verbum.org>
4663         
4664         Patch from Ross Burton <ross@openedhand.com>
4665
4666         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4667
4668 2005-06-20  Colin Walters  <walters@verbum.org>
4669
4670         * configure.in: Add glib/examples.
4671
4672         * glib/Makefile.am: Add examples/
4673
4674         * glib/examples/.cvsignore
4675         * glib/examples/Makefile.am
4676         * glib/examples/example-client.c
4677         * glib/examples/example-service.c
4678         * glib/examples/example-service.xml
4679         * glib/examples/example-signal-emitter.c
4680         * glib/examples/example-signal-emitter.xml
4681         * glib/examples/example-signal-recipient.c:
4682         New files; GLib binding examples, ported from
4683         python/examples.
4684
4685 2005-06-20  Colin Walters  <walters@verbum.org>
4686
4687         * dbus/dbus-glib.h: 
4688         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4689         dbus_g_proxy_call.
4690
4691         * glib/dbus-binding-tool-glib.c: 
4692         * doc/dbus-tutorial.xml: 
4693         * test/glib/test-dbus-glib.c: Update for rename.
4694         
4695 2005-06-20  Colin Walters  <walters@verbum.org>
4696
4697         Patch suggested by Ross Burton <ross@openedhand.com>
4698
4699         * glib/dbus-gobject.c (export_signals): Free signal name.
4700         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4701         memory leak.  Add a bit of documentation.
4702         (dbus_g_method_return_error): Free context, and note we do
4703         so.
4704
4705 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4706
4707         * dbus/dbus-glib.h:
4708         * glib/dbus-gobject.c:
4709         * glib/dbus-gproxy.c:
4710         * glib/dbus-gvalue.c: Predeclare structs as 
4711         typedef struct _Something Something instead of 
4712         typedef struct Something Something, so we can 
4713         redeclare the prototypes. Other GNOME libraries 
4714         do this already.
4715
4716 2005-06-17  Colin Walters  <walters@verbum.org>
4717
4718         * tools/dbus-names-model.c (have_names_notify): Fix call
4719         to dbus_g_proxy_end_call.
4720         
4721 2005-06-17  Colin Walters  <walters@verbum.org>
4722
4723         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4724         spew warnings if we get malformed remote signals.
4725
4726         * glib/dbus-gobject.c (propsig_iterate): New function.
4727         (lookup_object_info): New function, extracted from
4728         lookup_object_and_method.
4729         (introspect_properties, introspect_signals): Delete; these
4730         are merged into write_interface.
4731         (write_interface): Write out signals and properties here;
4732         dump the org.gtk.object stuff and use the interface given
4733         in the introspection data blob.  Also fix up property XML.
4734         (lookup_values): New function.
4735         (introspect_interfaces): Gather a mapping from interface to a
4736         list of its methods, signals, and properties, then write out
4737         each interface.
4738         (lookup_object_and_method): Use lookup_object_info.
4739         (struct DBusGSignalClosure): Add interface.
4740         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4741         we can just use the constant data.
4742         (dbus_g_signal_closure_finalize): Don't free signal name.
4743         (signal_emitter_marshaller): Use interface from signal closure.
4744         (export_signals): Only export signals mentioned in introspection
4745         blob.
4746         (dbus_g_connection_register_g_object): Warn if we have no
4747         introspection data for an object.
4748         (funcsig_equal): Remove unused variable.
4749         (dbus_g_object_register_marshaller): Take varargs instead of
4750         list.
4751         (dbus_g_object_register_marshaller_array): New function,
4752         extracted from old dbus_g_object_register_marshaller.
4753
4754         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4755         signals and property data.
4756         (write_quoted_string): New function, extracted from generate_glue.
4757         (generate_glue): Write signals and properties to introspection
4758         blob.
4759
4760         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4761         exported_signals and exported_properties.
4762         (dbus_g_object_register_marshaller): Update prototype.
4763         (dbus_g_object_register_marshaller_array): Prototype.
4764         
4765         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4766
4767         * test/glib/test-service-glib.c: Add new test signals and method
4768         to emit them.
4769
4770         * test/glib/test-service-glib.xml: Add some test signals.
4771
4772         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4773         and my-object-marshal.h
4774         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4775         my-object-marshal.c.
4776         (my-object-marshal.c, my-object-marshal.h): Implement.
4777
4778         * test/glib/.cvsignore: Update.
4779
4780         * doc/TODO: Remove two GLib TODO items fixed by this
4781         patch.
4782
4783 2005-06-16  Colin Walters  <walters@verbum.org>
4784
4785         * doc/TODO: Update for GLib bindings.
4786         
4787 2005-06-16  Colin Walters  <walters@verbum.org>
4788
4789         * glib/dbus-binding-tool-glib.c:
4790         * glib/dbus-gobject.c:
4791         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4792         from Ross Burton, for his GLib bindings work.
4793
4794 2005-06-16  Colin Walters  <walters@verbum.org>
4795
4796         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4797         to iterate instead of walking to G_TYPE_INVALID.
4798
4799         Patch based on a patch from Ryan Gammon.
4800
4801 2005-06-16  Colin Walters  <walters@verbum.org>
4802
4803         * bus/bus.c (bus_context_new): Set parser to NULL
4804         after we unref it (Patch from Chris Boscolo, #2174).
4805         
4806 2005-06-16  Colin Walters  <walters@verbum.org>
4807
4808         * python/dbus_bindings.pyx.in: Import size_t,
4809         __int64_t, __uint64_t, and __signed.
4810
4811         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4812         Define cmsg struct, output it.
4813         (_dbus_read_credentials_unix_socket):
4814         Use cmsg struct.
4815         
4816         Patch from Joe Markus Clarke for FreeBSD support.
4817         
4818 2005-06-16  Colin Walters  <walters@verbum.org>
4819
4820         * tools/dbus-send.c (append_array): Use strtok.
4821         (append_dict): New function.
4822         (type_from_name): New function, extracted from main.
4823         (main): Handle sending dicts.
4824
4825         * tools/dbus-print-message.c (print_iter): Print dict
4826         entries.
4827         
4828 2005-06-16  Colin Walters  <walters@verbum.org>
4829
4830         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4831         values as the empty string (#2948).
4832         
4833 2005-06-16  Colin Walters  <walters@verbum.org>
4834
4835         * dbus/Makefile.am:
4836         * mono/doc/Makefile.am:
4837         * test/glib/Makefile.am:
4838
4839         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4840
4841 2005-06-16  Colin Walters  <walters@verbum.org>
4842
4843         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4844         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4845
4846         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4847         Increment pointer after swapping fixed array.  Add assertion
4848         for array length.
4849                 
4850 2005-06-15  Colin Walters  <walters@verbum.org>
4851
4852         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4853         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4854         
4855 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4856
4857         * NEWS: Update to 0.34
4858
4859 2005-06-15  David Zeuthen  <davidz@redhat.com>
4860
4861         * configure.in (LT_CURRENT): Revert back to 1 as the library
4862         hasn't changed and we've certainly not committed to protocol
4863         stability yet.  All this does is to break ABI. See commit note
4864         from hp@redhat.com 2005-05-05 for details.
4865         
4866 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4867
4868         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4869         (_dbus_connection_run_builtin_filters): New method
4870         (dbus_connection_dispatch): Run the builtin filters which in turn
4871         runs the peer filter which handles Ping messages.
4872
4873         * doc/TODO: 
4874          - Ping isn't handled: This patch fixes it
4875          
4876          - Add a test case for the Ping message: added TODO item
4877
4878 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4879
4880         * dbus/dbus-message.c:
4881         (dbus_message_has_path): New method
4882         (dbus_message_has_interface): New method
4883         (dbus_message_has_member): New method
4884
4885         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4886         New method
4887
4888         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4889         the keyring directory is private to the user
4890
4891         * doc/TODO:
4892          - The convenience functions in dbus-bus.h should perhaps have
4893          the signatures that they would have if they were autogenerated
4894          stubs. e.g. the acquire service function. We should also evaluate
4895          which of these functions to include, in light of the fact that
4896          GLib/Qt native stubs will probably also exist.: Punted
4897
4898          - add dbus_message_has_path(), maybe has_member/interface:
4899          fixed in this patch
4900
4901          - in dbus-keyring.c, enforce that the keyring dir is not
4902          world readable/writable: Fixed in this patch
4903
4904 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4905
4906         * dbus/dbus-marshal-validate.h: Added a new validation
4907         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4908         out of memory errors when validating signitures
4909
4910         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4911         in places where we previously used DBUS_VALID and a FALSE return 
4912         value to indicate OOM
4913         
4914         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4915         Use a stack to track the number of elements inside containers.  The 
4916         stack values are then used to validate that dict entries have only two
4917         elements within them.
4918         (validate_body_helper): check the reason for failure when validating
4919         varients
4920         
4921         * dbus/dbus-message.c (load_message): use 
4922         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4923         DBUS_VALID and a FALSE return value to indicate OOM
4924
4925         * doc/TODO: remove "- validate dict entry number of fields" as this
4926         patch fixes it
4927
4928 2005-06-14  David Zeuthen  <davidz@redhat.com>
4929
4930         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4931         watches (if applicable) and add new watches
4932
4933         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4934         (main): Setup SIGIO signal handler if using D_NOTIFY
4935
4936         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4937
4938         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4939         (merge_included): Also merge conf_dirs list
4940         (bus_config_parser_unref): Clear conf_dirs list
4941         (include_dir): Add directory to conf_dirs list
4942         (bus_config_parser_get_conf_dirs): New function
4943
4944         * bus/dir-watch.[ch]: New files
4945
4946         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4947
4948         * configure.in: Add checks for D_NOTIFY on Linux
4949
4950 2005-06-14  Colin Walters  <walters@verbum.org>
4951
4952         * glib/dbus-binding-tool-glib.c:
4953         * glib/dbus-gobject.c:
4954         * glib/dbus-gvalue.c: Fix indentation and brace style.
4955         
4956 2005-06-14  Ross Burton <ross@openedhand.com>.
4957
4958         * glib/dbus-glib.h: Make DBusGMethodInvocation
4959         a private structure.  Rearrange prototypes a bit.
4960         
4961         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4962         documentation for first_arg_type.
4963         
4964         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4965         here, add documentation.  Move dbus_g_method_return
4966         and dbus_g_method_return_error into public API
4967         section.
4968
4969 2005-06-14  Colin Walters  <walters@verbum.org>
4970
4971         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4972         Add missing return statements, noticed by Ross Burton.
4973         
4974 2005-06-13  Ross Burton <ross@openedhand.com>.
4975
4976         * glib/dbus-gobject.c: Handle errors on message
4977         demarshalling by sending error message back.
4978         * glib/dbus-gvalue.c: Initialize return variables.
4979
4980 2005-06-13  Colin Walters  <walters@verbum.org>
4981
4982         * glib/Makefile.am: Fix thinko in last patch.
4983
4984 2005-06-13  Colin Walters  <walters@verbum.org>
4985
4986         * glib/Makefile.am: Move dbus-gtype-specialized.c
4987         and dbus-gtype-specialized.h into a _HEADERS variable,
4988         install them.
4989
4990 2005-06-12  Colin Walters  <walters@verbum.org>
4991
4992         Async signals and various bugfixes and testing by
4993         Ross Burton <ross@openedhand.com>.
4994
4995         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4996         (dbus_gvalue_genmarshal_name_from_type)
4997         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4998         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4999         (dbus_g_value_types_init, dbus_gtype_from_signature)
5000         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5001         (dbus_gtypes_from_arg_signature): New function prototypes.
5002         (dbus_gvalue_demarshal): Take context and error arguments.
5003         (dbus_gvalue_demarshal_variant): New function.
5004         (dbus_gvalue_demarshal_message): New function.
5005         (dbus_gvalue_store): Delete.
5006
5007         * glib/dbus-gvalue.c:
5008
5009         File has been almost entirely rewritten; now we special-case
5010         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5011         hash tables correctly, etc.  Full support for recursive values
5012         is not yet complete.
5013
5014         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5015         argument of signal to G_TYPE_POINTER since we now pass a
5016         structure.
5017         (lookup_g_marshaller): Delete in favor of
5018         _dbus_gobject_lookup_marshaller.
5019         (marshal_dbus_message_to_g_marshaller): Use
5020         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5021         to handle remote signal callbacks.
5022         (dbus_g_proxy_new_from_proxy): New function; creates a new
5023         DBusGProxy by copying an existing one.
5024         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5025         (dbus_g_proxy_get_path): New functions.
5026         (dbus_g_proxy_marshal_args_to_message): New function;
5027         factored out of existing code.
5028         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5029         from a varargs array.
5030         (dbus_g_proxy_begin_call_internal): New function.
5031         (dbus_g_proxy_end_call_internal): New function.
5032         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5033         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5034         after collecting args into value array.
5035         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5036         invoke dbus_g_proxy_end_call_internal.
5037         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5038         end_call_internal.
5039         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5040         types.
5041         (array_free_all): New function.
5042         (dbus_g_proxy_add_signal): Take GTypes.
5043
5044         * glib/dbus-gobject.h:
5045         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5046         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5047         Prototype.
5048
5049         * glib/dbus-gobject.c: Add a global marshal_table hash which
5050         stores mappings from type signatures to marshallers.  Change lots
5051         of invocations of dbus_gtype_to_dbus_type to
5052         dbus_gtype_to_signature.
5053         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5054         (introspect_signals): Fix test for query.return_type.
5055         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5056         (invoke_object_method): Many changes.  Handle asynchronous
5057         invocations.  Convert arguments with
5058         dbus_gvalue_demarshal_message.  Handle errors.  Use
5059         DBusSignatureIter instead of strlen on args. Handle all arguments
5060         generically.  Special-case variants.
5061         (dbus_g_method_return, dbus_g_method_return_error): New function.
5062         (DBusGSignalClosure): New structure, closes over signal
5063         information.
5064         (dbus_g_signal_closure_new): New function.
5065         (dbus_g_signal_closure_finalize): New function.
5066         (signal_emitter_marshaller): New function; is special marshaller
5067         which emits signals on bus.
5068         (export_signals): New function; introspects object signals and
5069         connects to them.
5070         (dbus_g_object_type_install_info): Take GType instead of
5071         GObjectClass.
5072         (dbus_g_connection_register_g_object): Invoke export_signals.
5073         (dbus_g_connection_lookup_g_object): New function.
5074         (DBusGFuncSignature) New structure; used for mapping type
5075         signatures to marshallers.
5076         (funcsig_hash): New function; hashes DBusGFuncSignature.
5077         (funcsig_equal): New function; compares DBusGFuncSignature.
5078         (_dbus_gobject_lookup_marshaller): New function.
5079         (dbus_g_object_register_marshaller): New function; used to
5080         register a marshaller at runtime for a particular signature.
5081
5082         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5083
5084         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5085         which notes a server method implementation should be
5086         asynchronous.
5087
5088         * glib/dbus-binding-tool-glib.c
5089         (dbus_binding_tool_output_glib_server): Call
5090         dbus_g_value_types_init.
5091         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5092         variants specially.
5093         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5094         of a lookup function.
5095         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5096         (write_untyped_out_args): New method; write output arguments.
5097         (write_formal_declarations_for_direction): Function for
5098         writing prototypes.
5099         (write_formal_parameters_for_direction): Function for
5100         writing implementations.
5101         (write_typed_args_for_direction): Function for writing
5102         arguments prefixed with GTypes.
5103         (write_async_method_client): Write out async version
5104         of method.
5105
5106         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5107         (dbus_g_type_get_marshal_name): Move mapping from GType
5108         to marshal name into here.
5109         (dbus_g_type_get_c_name): Move into here.
5110         (compute_marshaller): Convert signature to type with
5111         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5112         (compute_marshaller_name): Ditto.
5113         (compute_marshaller): Handle async signal annotations.
5114         (gather_marshallers): Return if we don't have a known
5115         prefix.
5116         (generate_glue): Collect introspection blob here, and
5117         write all of the blob at the end.  This allows an object
5118         with multiple interfaces to work.
5119         Mark async methods in introspection blob.
5120
5121         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5122         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5123         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5124
5125         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5126         avoids people accidentally using DBUS_TYPE_* which should
5127         not be necessary anymore.
5128         Do include dbus-gtype-specialized.h, which are utilities
5129         for GLib container types.
5130         Add various #defines for types such as
5131         DBUS_TYPE_G_BOOLEAN_ARRAY.
5132         (DBusGValueIterator, DBusGValue): Define, not fully used
5133         yet.
5134         (dbus_g_value_get_g_type): Type for recursive value.
5135         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5136         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5137         (dbus_g_value_free): Prototypes.
5138         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5139         (dbus_g_proxy_set_interface): Prototype.
5140         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5141         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5142         types.
5143         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5144         Accessors.
5145         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5146         doing async invocations.
5147         (dbus_g_method_return, dbus_g_method_return_error):
5148         Prototypes.
5149         * doc/dbus-tutorial.xml: Update GLib section.
5150         
5151         * tools/dbus-viewer.c (load_child_nodes): Update
5152         for new invocation type of dbus_g_proxy_end_call.
5153         (load_from_service_thread_func): Ditto.
5154
5155         * tools/print-introspect.c (main): Ditto.
5156
5157         * tools/dbus-names-model.c (have_names_notify)
5158         (names_model_reload, names_model_set_connection)
5159         Use GTypes.
5160
5161         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5162         needed since Python bindings use GLib bindings.
5163
5164         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5165         Add --prefix argument.
5166
5167         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5168         unneeded --ignore-unsupported arg.
5169         
5170         * test/glib/test-service-glib.c: 
5171         * test/glib/test-service-glib.xml:
5172         * test/glib/test-dbus-glib.c: Add many more tests.
5173
5174 2005-06-06  David Zeuthen  <davidz@redhat.com>
5175
5176         * doc/TODO: Add item about need to remove deprecated functions.
5177
5178         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5179
5180         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5181         to repair the ABI which was broken with the last commit.
5182
5183 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5184
5185         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5186         (dbus_connection_disconnect): renamed to dbus_connection_close 
5187         for API symmetry with dbus_connection_open
5188         (_dbus_connection_open_internal): 
5189         s/dbus_connection_disconnect/dbus_connection_close
5190
5191         * dbus/dbus-bus.c (dbus_bus_get):
5192         s/dbus_connection_disconnect/dbus_connection_close
5193
5194         * bus/connection.c (bus_connections_unref, 
5195         bus_connections_setup_connection, bus_connections_expire_incomplete):
5196         s/dbus_connection_disconnect/dbus_connection_close
5197
5198         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5199         kill_client_connection_unchecked, check_hello_connection):
5200         s/dbus_connection_disconnect/dbus_connection_close
5201
5202         * bus/bus.c (new_connection_callback):
5203         s/dbus_connection_disconnect/dbus_connection_close
5204
5205         * tools/dbus-send.c (main):
5206         s/dbus_connection_disconnect/dbus_connection_close
5207
5208         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5209         s/dbus_connection_disconnect/dbus_connection_close
5210         
5211         * test/test-service.c (path_message_func, filter_func):
5212         s/dbus_connection_disconnect/dbus_connection_close
5213         
5214         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5215         
5216 2005-05-25  Colin Walters  <walters@verbum.org>
5217
5218         * dbus/dbus-protocol.h: Move various bus service #defines such
5219           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5220           dbus/dbus-shared.h.
5221         * dbus/dbus-shared.h: Various defines moved here.
5222         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5223
5224 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5225
5226         * python/__init__.py: Python bindings deserve a minor version
5227         update.  Upped to (0, 40, 2)
5228
5229 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5230
5231         * python/decorators.py: add explicitly_pass_message decorator
5232         for passing in the dbus message as keyword for edge case signal
5233         handling
5234
5235         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5236         to conform with what dbus expects for match rules
5237         (SignalMatchRule.execute): add the dbus message as a keyword
5238         if the signal handler has requested it
5239
5240         * python/examples/example/signal-recipient.py: added some more
5241         examples on how to hook up to signals
5242
5243 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5244
5245         * python/decorators.py: import dbus_bindings
5246
5247         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5248         SignalMatchNode): new classes that implement wildcard signal
5249         callback matching using a tree lookup. Heavily modified from a
5250         patch sent by Celso Pinto (fd.o bug #3241)
5251
5252         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5253         use new match classes to handle signals.
5254
5255 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5256         
5257         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5258
5259 2005-05-18  Havoc Pennington  <hp@redhat.com>
5260
5261         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5262         gettext. Not really worth requiring yet perhaps, but any
5263         production quality 1.0 would require it so we should go ahead and
5264         get things set up. We do have a couple token calls to
5265         bindtextdomain in the code already.
5266
5267 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5268
5269         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5270         when using recursive g_main_loops
5271
5272         * python/_dbus.py (class Bus): add the ProxyObjectClass
5273         alias for ProxyObject to make it easier for the Twisted 
5274         networking framework to integrate dbus.
5275
5276         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5277         alias for ProxyMethod to make it easier for the Twisted 
5278         networking framework to integrate dbus. 
5279
5280 2005-05-11  Ross Burton  <ross@openedhand.com>
5281
5282         * glib/dbus-glib-tool.c: Add --prefix argument.
5283         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5284         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5285         Add prefix argument.
5286         (generate_glue): Pass prefix argument down.
5287         (dbus_binding_tool_output_glib_server): Pass prefix to
5288         glib-genmarshal.
5289         
5290 2005-05-11  Colin Walters  <walters@verbum.org>
5291
5292         * tools/dbus-send.c (append_array): New function.
5293         (append_arg): Broken out from main.
5294         (main): Add cheesy hack to send arrays and variants.
5295         (usage): Update.
5296         * tools/dbus-print-message.c (print_iter): Broken out
5297         from main.
5298
5299 2005-05-11  Colin Walters  <walters@verbum.org>
5300
5301         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5302         New function, returns signature string for signature iter.
5303         * dbus/dbus-signature.h: Prototype it.
5304         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5305         New function, returns signature string for message iter.
5306         (dbus_message_iter_get_array_len): New function, returns
5307         length of array.
5308         (dbus_message_iter_get_fixed_array): Fix assertion; this
5309         function should be used when the iter is pointing to the
5310         contents of an array
5311         * dbus/dbus-message.h: Prototypes.
5312         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5313         New function; returns length of an array.
5314         * dbus/dbus-marshal-recursive.h: Prototype it.
5315         
5316 2005-05-11  Colin Walters  <walters@verbum.org>
5317
5318         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5319         compilation error.
5320         
5321 2005-05-08  Havoc Pennington  <hp@redhat.com>
5322
5323         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5324         daemon's pid, not the parent's pid, to the file descriptor.
5325         Reported by Taj Morton.
5326
5327 2005-05-05  Havoc Pennington  <hp@redhat.com>
5328
5329         * configure.in (LT_*): add notes on how the libtool versioning
5330         works to save thinking. Increment soname to indicate protocol
5331         breakage (though really the library interface hasn't changed I
5332         guess)
5333
5334         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5335         verify the GUID received from server matches what we were
5336         expecting, if we had an expectation
5337
5338         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5339         (_dbus_auth_get_guid_from_server): new function
5340         (send_begin): parse the OK args
5341
5342         * doc/dbus-specification.xml: add GUID to the auth protocol
5343
5344 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5345
5346         * Fix my name in previous changelog ;)
5347
5348         * python/proxies.py (ProxyObject.__getattr__): add further patch
5349         from Anthony Baxter to throw an AttributeError when python 
5350         __special__ functions are called instead of marshling them over 
5351         the bus (Bug#1685 comment 3).
5352
5353 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5354
5355         * python/Makefile.am: changed to use pyexecdir for the binding
5356         shared libraries (Bug#2494)
5357
5358         * python/exceptions.py: bring exceptions over from the bindings
5359         so they can be used in applications (Bug#2036)
5360         Make all exceptions derive from DBusException
5361
5362         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5363         of classes so that print obj doesn't throw an exception (Bug #1685)
5364
5365 2005-05-03  Ross Burton  <ross@openedhand.com>
5366
5367         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5368         Return if we get an error during registration.  Set up a
5369         weak reference on object to unregister if object is destroyed.
5370         (unregister_gobject): New function.
5371         
5372 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5373
5374         * python/dbus_bindings.pyx.in: 
5375         - added new type classes for hinting to the marashaler what type 
5376         to send over the wire
5377         - added int16 and uint16 marshalers
5378         - Fixed a bug in the type constants that caused int32 to go out
5379         as uint16 over the wire
5380         * python/dbus.py: split up into different files and renamed _dbus.py
5381         * python/__init__.py, python/_util.py, python/decorators.py, 
5382         python/exceptions.py, python/proxies.py, python/services.py,
5383         python/types.py: new files split off from dbus.py
5384         * python/Makefile.am: Add new files, remove dbus.py and 
5385         install all python files to <python module dir>/dbus
5386         * python/examples/*: Added #!/usr/bin/env python to the top of
5387         every example.  Patch provided by Tatavarty Kalyan
5388
5389 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5390
5391         * NEWS: Update to 0.33
5392
5393 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5394
5395         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5396         method for doing async calls
5397         (_pending_call_notification): New C function for handling pendning call
5398         callbacks
5399         (set_notify): New method for setting pending call notification
5400         
5401         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5402         Async capabilities added to remote method calls
5403         (Sender): class removed
5404         (RemoteService): class removed
5405         (ObjectTree): class removed for now
5406         (RemoteObject): Renamed to ProxyObject
5407         (RemoteMethod): Renamed to ProxyMethod
5408         (method): Decorator added for decorating python methods as dbus methods
5409         (signal): Decorator added for decorating python methods as signal emitters
5410         (ObjectType): Metaclass added for generating introspection data and the
5411         method callback vtable
5412         (Interface): Wrapper class added to wrap objects in a dbus interface
5413         (Object): Uses ObjectType as its metaclass and exports Introspect
5414         of the org.freedesktop.DBus.Introspectable interface
5415         (ValidationException, UnknownMethodException): new exceptions
5416
5417         * python/examples/*: Modified to fit with the new bindings
5418
5419 2005-04-23  Havoc Pennington  <hp@redhat.com>
5420
5421         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5422         reported by Tony Houghton
5423
5424         * test/test-service.c (main): test
5425         dbus_connection_get_object_path_data()
5426
5427         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5428         the exact_match
5429         (_dbus_object_tree_get_user_data_unlocked): new function used by
5430         dbus_connection_get_object_path_data()
5431         (do_register): add assertion test for get_user_data_unlocked
5432         (object_tree_test_iteration): more tests
5433
5434         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5435         new function from Dan Reed to let you get the user data from 
5436         dbus_connection_register_object_path()
5437
5438 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5439
5440         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5441         in numerous places that did not account for the NULL terminator
5442         (signature_from_seed): changed the manual string copy loop to 
5443         just use strcpy instead
5444         make check should now pass
5445
5446 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5447
5448         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5449         so that it allows messages that are not signals to pass in 
5450         NULL as the interface.
5451
5452 2005-04-18  David Zeuthen  <davidz@redhat.com>
5453
5454         * glib/dbus-gmain.c (io_handler_destroy_source): 
5455         (timeout_handler_destroy_source, connection_setup_free): 
5456         Also unref the source to avoid memory leaks.
5457
5458 2005-04-13  David Zeuthen  <davidz@redhat.com>
5459
5460         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5461         more reasonable, yet still totally arbitrary, value :-). 
5462
5463 2005-04-13  David Zeuthen  <davidz@redhat.com>
5464
5465         * doc/TODO: Added an "important for 1.0" item about selinux
5466         allow/deny messages
5467
5468 2005-04-13  David Zeuthen  <davidz@redhat.com>
5469
5470         * bus/selinux.c: Add c-file-style to top of file
5471         (log_audit_callback): Don't free the data here anymore
5472         (bus_selinux_check): Don't take spid and tpid since appending
5473         that to auxdata may OOM.
5474         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5475         to the caller if we are OOM by taking an error object.
5476         (bus_selinux_allows_send): -do-
5477
5478         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5479         and bus_selinux_allows_send
5480
5481         * bus/bus.c (bus_context_check_security_policy): Pass error and
5482         pass on OOM thrown by bus_selinux_allows_send()
5483
5484         * bus/services.c (bus_registry_acquire_service): Pass error and
5485         pass on OOM thrown by bus_selinux_allows_acquire_service()
5486
5487 2005-04-13  Havoc Pennington  <hp@redhat.com>
5488
5489         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5490         message at a time to avoid monopolizing the main loop, bug 
5491         #2953 from Benjamin Otte
5492
5493 2005-04-09  Havoc Pennington  <hp@redhat.com>
5494
5495         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5496         possible overlap, fix from Daniel Reed
5497         (fixup_alignment): fix signedness warnings
5498         (_dbus_string_append_unichar): ditto
5499
5500 2005-04-09  Havoc Pennington  <hp@redhat.com>
5501
5502         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5503
5504         * glib/dbus-glib-tool.c (main): fix warning
5505
5506         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5507
5508         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5509         add a new function that can be used in simple applications that
5510         don't have a main loop and are willing to block
5511
5512 2005-04-05  David Zeuthen  <davidz@redhat.com>
5513
5514         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5515
5516         * glib/dbus-gmain.c:
5517         (io_handler_destroy_source): Remove from list of IO handlers
5518         of the ConnectionSetup object
5519         (timeout_handler_destroy_source): -do- for timeout handlers
5520         (io_handler_source_finalized): Don't remove from list since
5521         we now do that in io_handler_destroy_source(). Renamed from
5522         io_handler_source_destroyed
5523         (timeout_handler_source_destroyed): -do- for timeout handlers
5524         (connection_setup_free): It is now safe to iterate over all
5525         IO and timeout handlers as the _destroy_source removes them
5526         from the list synchronously
5527
5528 2005-03-30  Havoc Pennington  <hp@redhat.com>
5529
5530         * configure.in: change check to gtk 2.4
5531
5532         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5533         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5534         to 2.4
5535
5536 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5537
5538         * News: Update 0.32
5539
5540         * HACKING: Fixed realease instructions.  configure.in should be updated to
5541           the next release by the person who made the last release.
5542
5543 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5544
5545         * python/lvalue_cast_post_process.py - removed.  Patch has been
5546           submitted to Pyrex maintainers that fixes gcc4.0 errors
5547
5548         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5549
5550 2005-03-24  Daniel Reed  <n@ml.org>
5551
5552         * tools/Makefile.am: Make print-introspect and
5553         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5554
5555 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5556
5557         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5558
5559         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5560           had in Red Hat packages for a while but for some reason never 
5561           got merged upstream
5562           (_dbus_is_a_number): New checks if a string
5563           can be converted to a number and does the conversion if it can
5564           (_dbus_user_database_lookup): Add check to see if the given username
5565           is a udi.  This allows udi's to be used instead of usernames in the
5566           config file.
5567           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5568           is a gdi.  This allows gdi's to be used instead of groupnames in the
5569           config file.
5570
5571 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5572
5573         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5574           code so that it compiles with gcc4.0
5575
5576         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5577           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5578           results back to dbus_binding.c
5579
5580 2005-03-20  Colin Walters  <walters@verbum.org>
5581
5582         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5583
5584         * configure.in: Require GTK+ 2.6.
5585         
5586 2005-03-20  Colin Walters  <walters@verbum.org>
5587
5588         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5589
5590 2005-03-17  Tom Parker  <palfrey@tevp.net>
5591
5592         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5593         print DBUS_UID_UNSET; instead print passed username.  Also
5594         be sure to actually use gid looked up in cache.
5595         
5596         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5597         for DBUS_GID_UNSET and groupname.
5598
5599 2005-03-17  Colin Walters  <walters@verbum.org>
5600
5601         * bus/print-introspect.c: Move to tools/.
5602         * bus/run-with-tmp-session-bus.sh: Ditto.
5603         
5604         * glib/Makefile.am (dbus-glib-bindings.h): Move
5605         generation to tools/Makefile.am.
5606
5607         * test/glib/run-test.sh: Update to handle move
5608         of run-with-tmp-session-bus.sh.
5609
5610         * test/glib/test-service-glib.c: Update to handle
5611         move of dbus-glib-bindings.h.
5612
5613         * tools/print-introspect.c: Moved here
5614         from bus/, and ported to GLib bindings.
5615
5616         * tools/run-with-tmp-session-bus.sh: Moved here
5617         from bus/.
5618
5619         * tools/Makefile.am: Generate dbus-glib-bindings.h
5620         and dbus-bus-introspect.xml here.
5621
5622         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5623         Update.
5624
5625 2005-03-17  Colin Walters  <walters@verbum.org>
5626
5627         * bus/driver.c (write_args_for_direction): Use
5628         _dbus_string_get_const_data to retrieve string;
5629         _dbus_string_get_const_data_len doesn't actually return
5630         a NULL-terminated substring.
5631
5632         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5633         (main): Change to use org_freedesktop_DBus_request_name
5634         instead of using g_proxy_begin_call/end_call.
5635
5636 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5637
5638         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5639         generating the finalizer.  Fixes from Ben Maurer.
5640
5641 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5642
5643         * mono/BusDriver.cs: Update method names: ListServices
5644         becomes ListNames; GetOwner becomes GetNameOwner.
5645
5646         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5647         onto the eval stack when removing the delegate.
5648
5649 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5650
5651         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5652         LT_CURRENT.  Set it to the autoconf variable.
5653                                                                                 
5654         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5655         classes that disconnects the signal handler delegate from the
5656         service object.  Fixes a big leak of proxy objects on the
5657         client side of things.  Patch from Ben Maurer
5658         <bmaurer@ximian.com>
5659
5660 2005-03-12  Colin Walters  <walters@verbum.org>
5661
5662         * bus/driver.c (write_args_for_direction): New function,
5663         parses a type signature into arguments and outputs to
5664         XML.
5665         (bus_driver_handle_introspect): Use it instead of
5666         hardcoding XML for certain signatures.
5667         
5668         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5669         dependency on dbus-daemon.
5670
5671         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5672         argument, pass it to dbus_binding_tool_output_glib_client.
5673
5674         * glib/dbus-binding-tool-glib.c
5675         (generate_client_glue): Protect against multiple inclusion.
5676         (dbus_binding_tool_output_glib_client): Add
5677         G_BEGIN_DECLS/G_END_DECLS.
5678
5679         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5680         Change to just take iface prefix directly.
5681         (write_formal_parameters): Clarify error message.
5682         (check_supported_parameters): New function; checks to see type
5683         signatures of method parameters are supported.
5684         (generate_client_glue): Handle ignore_unsupported flag.
5685         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5686         parameter.
5687
5688         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5689         --ignore-unsupported by default until glib bindings
5690         support arrays.
5691
5692 2005-03-11  Colin Walters  <walters@verbum.org>
5693
5694         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5695         install it.
5696
5697         * bus/print-introspect.c: New file; prints introspection
5698         data for a given name and object path.
5699
5700         * bus/run-with-tmp-session-bus.sh: New file, refactored
5701         from test/glib/run-test.sh.  Creates a temporary session
5702         bus and runs another program.
5703
5704         * test/glib/run-test.sh: Refactor to invoke
5705         run-with-tmp-session-bus.sh.
5706
5707         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5708         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5709         macros instead of hardcoding.
5710
5711         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5712
5713 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5714
5715         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5716         this unref; it doesn't match up evenly in some codepaths.
5717         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5718         this evenly matches with the ref near the top of this function.
5719
5720 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5721
5722         * dbus/dbus-object-tree.c
5723         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5724         and we try to unregister a path that's not registered, still go
5725         through the process of unlocking and don't just return.
5726
5727 2005-03-09  Colin Walters  <walters@verbum.org>
5728
5729         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5730         to this are generated for client-side wrappers.  Invokes a
5731         D-BUS method and returns reply values.  
5732
5733         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5734         function; writes signature string for argument direction.
5735         (write_args_for_direction): Change to pass input values directly
5736         instead of via address, and fix indentation.
5737         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5738         make generated wrappers inlineable.
5739
5740         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5741         note about using dbus_type_is_fixed.
5742
5743         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5744         dbus/dbus-signature.c as dbus_type_is_fixed.
5745
5746         All callers updated.
5747
5748         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5749         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5750
5751         * dbus/dbus-signature.h: Prototype.
5752
5753         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5754         error printf code.
5755
5756         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5757         appropriate instead of just freeing it.
5758         (main): Free returned strings using g_free.
5759
5760         * test/glib/Makefile.am (test-service-glib-glue.h)
5761         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5762
5763         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5764         simply maps a simple D-BUS type to GType.
5765         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5766         GType.
5767         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5768         initialize the value with it.
5769         (dbus_gvalue_binding_type_from_type): Unused, delete.
5770         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5771         various types instead of unmarshalling to value data directly.
5772         Remove can_convert boolean.
5773         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5774         returning directly instead of using can_convert boolean.
5775         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5776         Stores a GValue in a pointer to a value of its corresponding C
5777         type.
5778
5779         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5780         add dbus_gvalue_store.
5781
5782 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5783
5784         Fix a bunch of lifecycle and memory management problems
5785         in the mono bindings.
5786
5787         * mono/Arguments.cs (Arguments): Implement IDisposable
5788
5789         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5790         strictly a static class.
5791
5792         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5793         delegates into this file.
5794         (Connection): Implement IDisposable.
5795         (Dispose): Disconnect the connection and set the raw connection
5796         pointer to IntPtr.Zero.
5797         (~Connection): Call Dispose().
5798         (RegisterObjectPath): Added.  Manages the registration of object
5799         paths so we can cleanly disconnect them at dispose/finalize time.
5800         (UnregisterObjectPath): Ditto.
5801         (set_RawConnection): Unregister all of the object paths when
5802         changing the underlying DBusConnection.  Add them back onto the
5803         new connection, if any.
5804
5805         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5806         more unmanaged resources anymore, so it's not necessary.  Move all
5807         the DBusObjectPathVTable stuff out of here.
5808         (Handler): Save references to our delegates so that they don't get
5809         finalized.  Call Connection.RegisterObjectPath() instead of
5810         dbus_connection_register_object_path() directly.
5811         (Message_Called): Dispose the message after we're finished with
5812         it.
5813
5814         * mono/Message.cs (Message): Implement IDisposable.
5815         (Dispose): Dispose the Arguments, and set the RawMessage to
5816         IntPtr.Zero.
5817         (SendWithReplyAndBlock): We own the ref to the reply that comes
5818         back from dbus_connection_send_with_reply_and_block() so add a
5819         comment about that and unref it after we've constructed a managed
5820         MethodReturn class around it.  Fixes a big, big leak.
5821
5822         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5823         method.
5824         (BuildSignalHandler): After we've sent the Signal message, dispose
5825         of it.
5826         (BuildMethod): Dispose of the method call and reply messages after
5827         we've sent the message and extracted the data we want from the
5828         reply.
5829
5830         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5831         anymore.
5832         (Service_FilterCalled): Dispose of the message after we're
5833         finished with it.
5834
5835 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5836
5837         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5838         After we attach our pending call to the connection, unref
5839         it.  Fixes a leak.
5840  
5841         * mono/Connection.cs (set_RawConnection): Disconnect our
5842         filter and match callbacks from the old connection and
5843         reconnect them to the new connection, if any.
5844
5845         * mono/DBusType/Array.cs: "Code" is a static member, so
5846         don't use "this" to refer to it.  Fix for stricter checking
5847         in Mono 1.1.4.
5848  
5849         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5850         object path that we pass into unmanaged code.
5851  
5852         * mono/DBusType/String.cs (Append): Don't leak the string
5853         that we pass into unmanged code.
5854
5855 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5856         * NEWS: Update for 0.31
5857
5858         * configure.in: Release 0.31
5859         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5860
5861         * qt/Makefile.am: fixed build
5862
5863         * dbus/Makefile.am: soname bump for libdbus
5864
5865         * glib/Makefile.am: soname bump for libdbus-glib
5866
5867 2005-03-05  Havoc Pennington  <hp@redhat.com>
5868
5869         * dbus/dbus-sysdeps.c:
5870         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5871         value
5872         (_dbus_generate_random_bytes_buffer): fix return value
5873
5874         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5875         checks actually work, from Tom Parker <fdo@tevp.net>
5876
5877 2005-03-01  Colin Walters  <walters@verbum.org>
5878
5879         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5880         functions copied from dbus-glib-tool.c.
5881         (main): Convert lots of error code to use them.
5882         Also add some testing for introspection bits.
5883
5884 2005-03-01  Colin Walters  <walters@verbum.org>
5885         
5886         * doc/TODO: Remove introspection signature TODO.
5887
5888 2005-02-27  Colin Walters  <walters@verbum.org>
5889
5890         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5891         Change return value to const char * instead of int so we can do
5892         full signatures.
5893         (struct PropertyInfo, struct ArgInfo): Store char *.
5894         (property_info_new, arg_info_new): Update parameters, strdup.
5895         (property_info_unref, arg_info_unref): Free.
5896
5897         * glib/dbus-gidl.h: Update prototypes.
5898
5899         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5900         (validate_signature): New function, just validates signature and
5901         sets GError.
5902         (parse_property, parse_arg): Invoke validate_signature.  Store
5903         signature instead of just type code.
5904
5905         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5906         function to return a primary type for a signature, dropping
5907         information about types in container types.
5908         (dbus_gvalue_genmarshal_name_from_type)
5909         (dbus_gvalue_binding_type_from_type)
5910         (dbus_gvalue_ctype_from_type): Update to take full signature
5911          instead of type code.
5912         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5913
5914         * glib/dbus-gvalue.h: Update prototypes for above.
5915
5916         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5917         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5918         (introspect_properties, introspect_signals, write_interface):
5919         Update to handle signatures, and remove usage of
5920         _dbus_gutils_type_to_string.
5921         (handle_introspect): Print out type codes instead of e.g. "string"
5922         in hardcoded introspection XML; also use x_AS_STRING constants
5923         instead of hardcoding in string.
5924
5925         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5926         to string.  Remove usage of _dbus_gutils_type_to_string.
5927
5928         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5929
5930         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5931         deletion.
5932         
5933         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5934         (compute_marshaller_name, generate_glue): Handle signature change
5935         to string.
5936         (write_formal_parameters, write_args_for_direction): Ditto, and
5937         remove FIXME.
5938
5939         * tools/dbus-tree-view.c (type_to_string): Delete.
5940         (info_set_func_text): Update to print full signatures.
5941
5942         * test/glib/test-service-glib.xml: Change types to new
5943         introspection format.
5944
5945 2005-02-26  Havoc Pennington  <hp@redhat.com>
5946
5947         * doc/TODO: remove the "guid" item
5948
5949         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5950         (with_bus_thread_func): use open_private
5951
5952         * dbus/dbus-connection.c (dbus_connection_open_private): new
5953         function that works like the old dbus_connection_open()
5954         (dbus_connection_open): now returns an existing connection if
5955         possible
5956
5957         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5958         through the GUID to the transport
5959
5960         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5961         GUID in hex-encoded form.
5962
5963         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5964         pass GUID argument in to the transport
5965
5966         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5967         guid argument
5968
5969         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5970
5971         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5972
5973 2005-02-25  Havoc Pennington  <hp@redhat.com>
5974
5975         * doc/dbus-specification.xml: document the GUID thing
5976
5977         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5978         globally unique ID for the server, and put a "guid=hexencoded"
5979         field in the address
5980
5981         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5982
5983         * dbus/dbus-message.c: ditto
5984
5985         * dbus/dbus-dataslot.c: ditto
5986
5987         * dbus/dbus-list.c: ditto
5988
5989         * dbus/dbus-internals.h: wait, just include
5990         dbus-threads-internal.h here
5991         
5992         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5993         use in main library
5994
5995         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5996
5997 2005-02-24  Colin Walters  <walters@verbum.org>
5998
5999         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6000
6001 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6002
6003         * glib/Makefile.am: added dbus-gobject.h to sources list
6004         so distcheck doesn't fail
6005         
6006 2005-02-24  Havoc Pennington  <hp@redhat.com>
6007
6008         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6009         you must disconnect before unref, since locking and other things
6010         are screwed up otherwise. Fix assorted other locking stuff.
6011
6012         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6013         fix compilation
6014
6015         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6016         into a private header and don't export from the library
6017
6018         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6019
6020 2005-02-24  Colin Walters  <walters@verbum.org>
6021         
6022         * dbus/dbus-signature.c: New file; implements various functions
6023         related to type signatures.  Includes an interator for parsing,
6024         validation functions.
6025         (dbus_type_is_basic): Moved here from
6026         dbus-marshal-basic.c:_dbus_type_is_basic.
6027         (dbus_type_is_container): Moved here from
6028         dbus-marshal-basic.c:_dbus_type_is_container.
6029
6030         All callers of _dbus_type_is_container and _dbus_type_is_basic
6031         updated, and include dbus-signature.h.
6032
6033         * dbus/dbus-signature.h: New file; prototypes for the above.
6034
6035         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6036         dbus-signature.h.
6037
6038         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6039         function factored out of _dbus_first_type_in_signature.
6040         (_dbus_first_type_in_signature_c_str): New function; returns first
6041         type code for a type signature character.
6042
6043         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6044         handle function moves.
6045
6046         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6047
6048         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6049         function; skips to next complete type in type signature.
6050         Implemented using previous skip_one_complete_type.  Now
6051         skip_one_complete_type just delegates to
6052         _dbus_type_signature_next.
6053
6054         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6055         to dbus-signature.c
6056         (_dbus_type_is_container): Ditto.
6057
6058         * doc/dbus-specification.xml: Update introspection sample to
6059         use real type signatures.
6060
6061         * dbus/dbus-test.h: Prototype signature test.
6062
6063         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6064         signature tests.
6065
6066         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6067
6068 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6069
6070         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6071         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6072
6073 2005-02-21  Colin Walters  <walters@verbum.org>
6074
6075         * dbus/dbus-test-main.c (main): Take optional specific test
6076         argument.
6077
6078         * dbus/dbus-test.c (run_test): New function, runs a test function
6079         with no data directory.
6080         (run_data_test): Like above, but takes data directory.
6081         (dbus_internal_do_not_use_run_tests): Take
6082         specific test argument.  Replace lots of cut n' paste code
6083         with run_test and run_data_test.
6084
6085         * dbus/dbus-test.h: Update prototype for
6086         dbus_internal_do_not_use_run_tests.
6087
6088 2005-02-20  Havoc Pennington  <hp@redhat.com>
6089
6090         Fix bugs reported by Daniel P. Berrange
6091         
6092         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6093         (protected_change_watch): new function
6094         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6095         (_dbus_server_add_watch): change to work like the
6096         dbus-connection.c equivalents; like those, probably kind of
6097         busted, but should at least mostly work for now
6098         (dbus_server_disconnect): drop the lock if we were already
6099         disconnected, patch from Daniel P. Berrange
6100
6101         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6102         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6103         same stuff
6104
6105         * doc/TODO: todo about unscrewing this mess
6106
6107 2005-02-19  Colin Walters  <walters@verbum.org>
6108
6109         * glib/dbus-binding-tool-glib.c
6110         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6111
6112         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6113         as errno.h and sys/stat.h.
6114         (lose): New function, prints error with
6115         newline and exits.
6116         (lose_gerror): Similar, but takes GError for message.
6117         (main): Add --output argument to specify output file to write to,
6118         instead of always printing to stdout.  In this mode, determine
6119         timestamps on source files to see whether any are newer than the
6120         target file.  If not, exit.  Also convert a number of error
6121         messages to use lose (since it's shorter), and switch to using
6122         g_io_channel_shutdown.
6123
6124 2005-02-19  Havoc Pennington  <hp@redhat.com>
6125
6126         * glib/dbus-gobject.c
6127         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6128
6129         * glib/dbus-glib.c: fix doxygen warnings
6130
6131         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6132         is found on an <arg>
6133
6134 2005-02-17  Colin Walters  <walters@verbum.org>
6135
6136         * glib/dbus-gobject.h: Don't export
6137         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6138         
6139         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6140         (invoke_object_method): Handle it.
6141
6142         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6143         Handle rename.
6144         
6145 2005-02-17  Colin Walters  <walters@verbum.org>
6146
6147         * bus/.cvsignore, doc/.cvsignore
6148         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6149         Update.
6150
6151 2005-02-17  Colin Walters  <walters@verbum.org>
6152         
6153         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6154         Rename to DBUS_SERVICE_DBUS.
6155         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6156         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6157         Change the value from "org.freedesktop.Local"
6158         to "org.freedesktop.DBus.Local".
6159         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6160         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6161         DBUS_INTERFACE_INTROSPECTABLE.
6162         Change the value from "org.freedesktop.Introspectable"
6163         to "org.freedesktop.DBus.Introspectable".
6164         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6165         DBUS_INTERFACE_PROPERTIES.
6166         Change the value from "org.freedesktop.Properties"
6167         to "org.freedesktop.DBus.Properties".
6168         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6169         DBUS_INTERFACE_PEER.
6170         Change the value from "org.freedesktop.Peer"
6171         to "org.freedesktop.DBus.Peer".
6172         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6173         DBUS_INTERFACE_LOCAL.
6174         Change the value from "org.freedesktop.Local"
6175         to "org.freedesktop.DBus.Local".
6176
6177         All other users of those constants have been changed.
6178
6179         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6180
6181         * glib/dbus-gobject.c (handle_introspect): Use constants.
6182
6183         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6184
6185 2005-02-17  Colin Walters  <walters@verbum.org>
6186
6187         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6188         (parse_node, parse_interface, parse_method, parse_signal)
6189         (parse_property, parse_annotation): Lose if we're currently in an
6190         annotation.
6191         (parse_annotation): New function.
6192         (parser_start_element, parser_end_element): Handle annotation.
6193         (parse_method, parse_interface): Remove support for c_name attribute,
6194         switch to annotations.
6195
6196         * glib/dbus-gidl.h (interface_info_get_binding_names)
6197         (method_info_get_binding_names)
6198         (interface_info_get_binding_name, method_info_get_binding_name)
6199         (interface_info_set_binding_name, method_info_set_binding_name):
6200         Remove.
6201         (interface_info_get_annotations, method_info_get_annotations)
6202         (interface_info_get_annotation, method_info_get_annotation)
6203         (interface_info_add_annotation, method_info_add_annotation):
6204         Prototype.
6205
6206         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6207         for "bindings".
6208         (struct MethodInfo): Ditto.
6209         Straightfoward conversion of binding methods into annotation methods
6210         as prototyped.
6211
6212         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6213
6214         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6215
6216         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6217         Use new annotation API.
6218
6219         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6220         annotation element.
6221         
6222         * doc/dbus-specification.xml: Discuss introspection annotations,
6223         include list of well-known annotations.
6224
6225         * test/glib/test-service-glib.xml: Make validate against new DTD.
6226
6227 2005-02-17  Colin Walters  <walters@verbum.org>
6228
6229         This patch is based on initial work from
6230         Paul Kuliniewicz <kuliniew@purdue.edu>.
6231
6232         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6233         initialization of GValue from dbus type to here.
6234         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6235         for the "glib-genmarshal" program from a DBus type.
6236         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6237         into the C name for it we use in the glib bindings.
6238         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6239         glib C type (not GValue).
6240         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6241
6242         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6243         from dbus-gobject.c.
6244
6245         * glib/dbus-gutils.h: Prototype it.
6246
6247         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6248         (marshal_dbus_message_to_g_marshaller): Use new shared function
6249         dbus_glib_marshal_dbus_message_to_gvalue_array.
6250
6251         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6252         Will be changed once we have annotations.
6253
6254         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6255         GStaticRWLock.  Callers updated.
6256         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6257         (string_table_next): New function for iterating over zero-terminated
6258         string value array.
6259         (string_table_lookup): New function; retrieves specific entry in
6260         array.
6261         (get_method_data): New function; look up method data in object data chunk.
6262         (object_error_domain_prefix_from_object_info)
6263         (object_error_code_from_object_info): New functions, but not implemented yet.
6264         (method_interface_from_object_info): New function; retrieve interface name.
6265         (method_name_from_object_info): New function; retrieve method name.
6266         (method_arg_info_from_object_info): New function; retrieve argument data.
6267         (arg_iterate): New function; iterates over serialized argument data.
6268         (method_dir_signature_from_object_info): New function; returns a
6269         GString holding type signature for arguments for just one
6270         direction (input or output).
6271         (method_input_signature_from_object_info)
6272         (method_output_signature_from_object_info): New functions.
6273         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6274         converts dbus message arguments into a GValue array.  Used for both
6275         signal handling and method invocation.
6276         (struct DBusGlibWriteIterfaceData): New utility structure.
6277         (write_interface): New function; generate introspection XML for
6278         an interface.
6279         (introspect_interfaces): New function; gathers all interface->methods,
6280         generates introspection XML for them.
6281         (handle_introspect): Invoke introspect_interfaces.
6282         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6283         (lookup_object_and_method): New function; examines an incoming message
6284         and attempts to match it up (via interface, method name, and argument
6285         signature) with a known object and method.
6286         (gerror_domaincode_to_dbus_error_name): New function; converts a
6287         GError domain and code into a DBus error name.  Needs GError data
6288         added to object introspection to work well.
6289         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6290         GError.
6291         (invoke_object_method): New function to invoke an object method
6292         looked up via lookup_object_and_method.  Parses the incoming
6293         message, turns it into a GValue array, then invokes the marshaller
6294         specified in the DBusGMethodInfo.  Creates a new message with
6295         either return values or error message as appropriate.
6296         (gobject_message_function): Invoke lookup_object_and_method and
6297         invoke_object_method.
6298
6299         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6300         (enum DBusBindingOutputMode): New enum for binding output modes.
6301         (pretty_print): Print binding names.
6302         (dbus_binding_tool_error_quark): GError bits.
6303         (version): Fix typo.
6304         (main): Create GIOChannel for output.  Parse new --mode argument,
6305         possible values are "pretty-print", "glib-server", "glib-client".
6306         Use mode to invoke appropriate function.
6307         
6308         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6309
6310         * glib/dbus-glib-tool.h: New header, just includes GError bits
6311         for now.
6312
6313         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6314         maps binding style to name.
6315         (struct MethodInfo): Ditto.
6316         (get_hash_keys, get_hash_key): Utility function, returns keys for
6317         a GHashTable.
6318         (interface_info_new, method_info_new): Initialize bindings.
6319         (interface_info_unref, method_info_unref): Destroy bindings.
6320         (method_info_get_binding_names, method_info_get_binding_name)
6321         (interface_info_get_binding_names, interface_info_get_binding_name):
6322         Functions for retrieving binding names.
6323         (method_info_set_binding_name, interface_info_set_binding_name):
6324         Functions for setting binding names.
6325
6326         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6327         for glib binding generation.
6328
6329         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6330         and client-side glib glue generation.
6331
6332         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6333         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6334         dbus-glib-tool.h.
6335
6336         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6337         of using GClosureMarshal directly.
6338         (struct DBusGObjectInfo): Add n_infos member.
6339
6340         * test/glib/test-service-glib.xml: New file; contains introspection data
6341         for MyTestObject used in test-service-glib.c.
6342
6343         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6344         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6345         (my_object_uppercase, my_object_many_args): New test methods.
6346         (main): Use dbus_g_object_class_install_info to include generated object
6347         info.
6348
6349         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6350         as well as client-side bindings.
6351
6352         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6353         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6354         using both the dbus_gproxy stuff directly as well as the generated bindings.
6355
6356 2005-02-15  Havoc Pennington  <hp@redhat.com>
6357
6358         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6359         complete a pending call, don't run filters first.
6360
6361         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6362         dbus_pending_call_steal_reply
6363
6364         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6365         _dbus_connection_block_pending_call
6366         (dbus_pending_call_get_reply): change to steal_reply and return a
6367         ref
6368
6369         * dbus/dbus-connection.c
6370         (dbus_connection_send_with_reply_and_block): port to work in terms
6371         of DBusPendingCall
6372         (_dbus_connection_block_pending_call): replace block_for_reply
6373         with this
6374
6375 2005-02-14  Havoc Pennington  <hp@redhat.com>
6376
6377         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6378         properly handle looking up group information by name; fix 
6379         from j@bootlab.org
6380
6381 2005-02-13  Havoc Pennington  <hp@redhat.com>
6382
6383         * dbus/dbus-connection.c (dbus_connection_return_message) 
6384         (dbus_connection_borrow_message): hold dispatch lock while message
6385         is outstanding
6386         (_dbus_connection_block_for_reply): hold dispatch lock while we
6387         block for the reply, so nobody steals our reply
6388         (dbus_connection_pop_message): hold the dispatch lock while we
6389         pluck the message
6390
6391 2005-02-13  Havoc Pennington  <hp@redhat.com>
6392
6393         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6394         (_dbus_connection_release_dispatch)
6395         (_dbus_connection_acquire_io_path)
6396         (_dbus_connection_release_io_path): make the mutex and condvar
6397         control access to the "acquired" flag. Drop the connection lock
6398         while waiting on the condvar. Hopefully these are baby steps in
6399         roughly the right direction.
6400
6401 2005-02-13  Havoc Pennington  <hp@redhat.com>
6402
6403         * dbus/dbus-connection.c: use separate mutexes for the condition
6404         variables; this is some kind of baseline for sanity, but the
6405         condition variables still aren't used correctly afaict
6406
6407 2005-02-13  Havoc Pennington  <hp@redhat.com>
6408
6409         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6410         fix a double-unlock
6411
6412         * dbus/dbus-connection.c
6413         (_dbus_connection_detach_pending_call_unlocked): add this
6414
6415         Initial semi-correct pass through to fix thread locking; there are
6416         still some issues with the condition variable paths I'm pretty
6417         sure
6418         
6419         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6420         lock/unlock calls
6421
6422         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6423         rename to add _unlocked
6424         (struct DBusConnection): move "dispatch_acquired" and
6425         "io_path_acquired" to use only one bit each.
6426         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6427         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6428         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6429         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6430         (_dbus_connection_remove_timeout) 
6431         (_dbus_connection_toggle_timeout): drop lock when calling out to
6432         user functions; done in a hacky/bad way.
6433         (_dbus_connection_send_and_unlock): add a missing unlock
6434         (_dbus_connection_block_for_reply): add a missing unlock
6435
6436         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6437         drop lock in a hacky probably unsafe way to call out to user
6438         function
6439
6440 2005-02-12  Havoc Pennington  <hp@redhat.com>
6441
6442         * tools/dbus-tree-view.c (info_set_func_text): display more
6443         details on args
6444
6445         * bus/driver.c (bus_driver_handle_list_services): list the bus
6446         driver
6447
6448         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6449
6450         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6451         (method_info_get_n_args): new function
6452
6453 2005-02-12  Havoc Pennington  <hp@redhat.com>
6454
6455         * bus/driver.c (bus_driver_handle_introspect): add introspection
6456         for bus driver
6457
6458 2005-02-12  Havoc Pennington  <hp@redhat.com>
6459
6460         * bus/driver.c: put the signature of each bus driver method in the
6461         table of handlers and check it on incoming calls; this isn't
6462         really useful, but going to add introspect support in a minute.
6463
6464 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6465
6466         * mono/Connection.cs: The unpredictability of finalizers in mono
6467         prevents us from deterministically disconnecting the filters from
6468         the Service class's finalizer, so move tracking of filters and
6469         matches here.  Add API for that.
6470
6471         * mono/Service.cs: Remove the code, add code which calls the
6472         methods now on the Connection class.
6473
6474 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6475
6476         * python/dbus.py (class Sender): added to support dbus signals better
6477         (Bus::add_signal_receiver): added expand_args parameter which defaults
6478         to True.  When expand args is True the signal handler will pass the 
6479         message arguments as parameters to the signal handler.  If False
6480         revert to previous behavior where the signal handler must get the
6481         argument list from the message.  This is to help port applications
6482         like HAL that have a tendancy to send variable length argument lists.
6483         self._match_rule_to_receivers is now a dict of dicts.
6484         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6485         removing it from a list
6486         (Bus::_signal_func): change signal handlers so that interface,
6487         signal_name, service, path and message are packed into a Sender
6488         object and that is passed to the handler.  If expand_args is True
6489         extract the args list from the message and append it to the parameter
6490         list
6491         
6492         * python/dbus_bindings.pyx.in (class Signature): added to support 
6493         signiature types
6494         (MessageIter::__init__): changed iteration limit to match D-BUS
6495         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6496         STRUCT and VARIENT type support
6497         (MessageIter::python_value_to_dbus_sig): made recursive to support
6498         recursive types
6499         (MessageIter::append*): added Signature, dict, tuple 
6500         support
6501
6502         * python/examples/example-client.py: added examples of getting tuples
6503         and dicts
6504
6505         * python/examples/example-service.py: added examples of sending tuples
6506         and dicts
6507
6508         * python/examples/example-signal-recipient.py: Fixed to handle new
6509         signal callback format
6510
6511 2005-02-10  Havoc Pennington  <hp@redhat.com>
6512
6513         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6514         (call dbus_g_proxy_add_signal)
6515
6516         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6517         escape the hostname
6518         (_dbus_server_new_for_domain_socket): escape the path
6519
6520         * dbus/dbus-address.c (dbus_address_escape_value): new
6521         (dbus_address_unescape_value): new
6522         (dbus_parse_address): unescape values
6523
6524         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6525
6526         * doc/dbus-specification.xml: explain how to escape values in
6527         addresses
6528
6529 2005-02-10  Havoc Pennington  <hp@redhat.com>
6530
6531         * dbus/dbus-message-factory.c (generate_special): modify test to
6532         avoid using a non-basic dict key
6533
6534         * dbus/dbus-marshal-validate-util.c: add test for the below
6535
6536         * doc/dbus-specification.xml: require that dict keys are a basic
6537         type
6538
6539         * dbus/dbus-marshal-validate.c
6540         (_dbus_validate_signature_with_reason): require that dict key is a
6541         basic type
6542
6543 2005-02-10  Havoc Pennington  <hp@redhat.com>
6544
6545         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6546         change to be _and_unlock instead of _unlocked
6547
6548         * dbus/dbus-connection.c
6549         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6550         have no_update so we can find this bug quickly in future
6551
6552 2005-02-10  Havoc Pennington  <hp@redhat.com>
6553
6554         * dbus/dbus-message-util.c (verify_test_message): tests for string
6555         array
6556
6557         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6558         support for arrays of string/signature/path
6559
6560 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6561
6562         * dbus/dbus-connection.c
6563         (_dbus_connection_queue_received_message_link,
6564         _dbus_connection_message_sent): Add the path to
6565         the verbose output.
6566         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6567         _dbus_connection_send_preallocated_unlocked(), updated the
6568         dispatch status, and unlocks.  Fixes a bug where certain
6569         situations (like a broken pipe) could cause a Disconnect message
6570         to not be sent, tricking the bus into thinking a service was still
6571         there when the process had quit.
6572         (_dbus_connection_send_preallocated): Call
6573         _dbus_connection_send_preallocated_and_unlock().
6574         (_dbus_connection_send_and_unlock): Added.  Calls
6575         _dbus_connection_send_preallocated_and_unlock().
6576         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6577         (dbus_connection_send_with_reply): Update the dispatch status and
6578         unlock.
6579
6580         * mono/Service.cs (~Service): Added.  Removes the filter so that
6581         we don't get unmanaged code calling back into a GCed delegate.
6582         (RemoveFilter); Added.
6583
6584 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6585
6586         * dbus/dbus-message.c (dbus_message_iter_open_container):
6587         - Removed check for iterator type being an array because
6588         get_arg_type does not work with writer iterators
6589         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6590
6591 2005-02-07  Havoc Pennington  <hp@redhat.com>
6592
6593         * doc/dbus-specification.xml: some more language cleanups; add
6594         stuff about how to deal with invalid protocol and extension
6595         points; add _ to allowed chars in auth commands; add EXTENSION_
6596         auth command prefix
6597
6598 2005-02-06  Havoc Pennington  <hp@redhat.com>
6599
6600         * s/expected/required/ in a couple places for clarity
6601
6602 2005-02-07  Colin Walters  <walters@verbum.org>
6603
6604         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6605         sender or proposed_recipient.
6606
6607 2005-02-06  Havoc Pennington  <hp@redhat.com>
6608
6609         * dbus/dbus-message-factory.c (generate_special): more tests
6610
6611         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6612         array length that exceeds the maximum
6613
6614 2005-02-05  Havoc Pennington  <hp@redhat.com>
6615
6616         * dbus/dbus-message-factory.c (generate_special): more test cases,
6617         increasing coverage
6618
6619         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6620         reason why a signature was invalid
6621
6622         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6623         skip the length of the string before we look at it in validation
6624
6625         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6626         equal_substring
6627
6628         * dbus/dbus-message.c (_dbus_message_loader_new): default
6629         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6630
6631 2005-02-05  Havoc Pennington  <hp@redhat.com>
6632
6633         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6634         if the signature of a variant was empty
6635         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6636         struct with no element type)
6637
6638         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6639         mangled messages to break things
6640
6641 2005-02-04  Havoc Pennington  <hp@redhat.com>
6642
6643         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6644         g_quark_try_string() so it actually can return 0
6645         (dbus_g_proxy_connect_signal): ditto
6646
6647 2005-02-04  Havoc Pennington  <hp@redhat.com>
6648
6649         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6650         bogus warning
6651         (tristring_from_message): assert cleanly on null path/interface
6652         (should not be possible though I decided later)
6653         (dbus_g_proxy_dispose): move proxy manager unregistration here
6654         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6655         g_return_if_fail() checks
6656
6657 2005-02-04  Havoc Pennington  <hp@redhat.com>
6658
6659         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6660
6661         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6662         (with some minor changes)
6663
6664         * doc/dbus-specification.xml: add deprecated attribute to
6665         introspection format
6666
6667 2005-01-31  Havoc Pennington  <hp@redhat.com>
6668
6669         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6670         think it's sort of right
6671
6672 2005-01-30  Havoc Pennington  <hp@redhat.com>
6673
6674         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6675
6676 2005-01-30  Havoc Pennington  <hp@redhat.com>
6677
6678         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6679
6680         * autogen.sh: change to autotools 1.9
6681
6682         * glib/dbus-gproxy.c: completely change how signals work
6683         (dbus_g_proxy_add_signal): new function to specify signature of a
6684         signal
6685         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6686         and g_warning if the incoming message has the wrong signature.
6687
6688 2005-01-30  Havoc Pennington  <hp@redhat.com>
6689
6690         * tools/dbus-names-model.c (have_names_notify): fix this
6691
6692         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6693         up the string array handling a bit 
6694
6695 2005-01-30  Havoc Pennington  <hp@redhat.com>
6696
6697         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6698         (dbus_g_pending_call_cancel): new function
6699
6700         * dbus/dbus-glib.h: move GType decls for connection/message here;
6701         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6702         here, just kind of rationalizing how we handle all that
6703
6704         * tools/dbus-names-model.c: new file for a tree model listing the
6705         services on a bus
6706
6707         * tools/dbus-tree-view.c (model_new): use proper typing on the
6708         model rows
6709
6710 2005-01-30  Havoc Pennington  <hp@redhat.com>
6711
6712         * glib/dbus-gmain.c: add a custom GSource back that just checks
6713         whether the message queue has anything in it; otherwise, there are 
6714         cases where we won't see messages in the queue since there was no 
6715         IO visible to the glib main loop
6716
6717         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6718         increase default message timeout to 25 seconds
6719
6720 2005-01-30  Havoc Pennington  <hp@redhat.com>
6721
6722         * test/glib/test-profile.c (no_bus_stop_server): remove the
6723         warning about the g_warning that I just fixed
6724
6725         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6726         custom source, seems to be a lot easier to understand and work
6727         better.
6728
6729 2005-01-30  Havoc Pennington  <hp@redhat.com>
6730
6731         I think this main loop thing is conceptually broken, but here are 
6732         some band aids. I'll maybe rewrite it in a minute.
6733         
6734         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6735         custom GSource, so don't pass it in; confusing
6736         (gsource_server_finalize, gsource_connection_finalize): add
6737         finalize handlers that remove all the watches.  
6738
6739 2005-01-30  Havoc Pennington  <hp@redhat.com>
6740
6741         * glib/dbus-gobject.c (introspect_properties): fix the XML
6742         generated
6743
6744         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6745         which effectively detects the use of freed messages
6746
6747         * glib/dbus-gobject.c (handle_introspect): modify and return the
6748         reply message instead of the incoming message
6749
6750         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6751         gee, maybe it should SEND THE XML instead of just making a string
6752         and freeing it again ;-)
6753
6754         * tools/dbus-print-message.c (print_message): improve printing of
6755         messages
6756
6757         * configure.in: add debug-glib.service to the output
6758
6759 2005-01-30  Havoc Pennington  <hp@redhat.com>
6760
6761         dbus-viewer introspected and displayed the bus driver
6762         
6763         * dbus/dbus-object-tree.c 
6764         (object_tree_test_iteration): add tests for a handler registered on "/"
6765
6766         * dbus/dbus-object-tree.c
6767         (_dbus_decompose_path): fix to handle path "/" properly
6768         (run_decompose_tests): add tests for path decomposition
6769         
6770         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6771         properly
6772
6773         * glib/dbus-gobject.c (handle_introspect): fix quotes
6774
6775         * test/glib/run-test.sh: support launching the bus, then running
6776         dbus-viewer
6777
6778         * test/glib/test-service-glib.c (main): put in a trivial gobject
6779         subclass and register it on the connection
6780
6781         * bus/driver.c (bus_driver_handle_introspect): implement
6782         introspection of the bus driver service
6783
6784         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6785         identifiers, doctype decl
6786
6787         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6788         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6789         returning the service unchanged.
6790         (bus_driver_handle_message): remove old check for reply_serial in
6791         method calls, now the message type deals with that
6792         (bus_driver_handle_message): handle NULL interface
6793
6794         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6795
6796         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6797         -1 for len
6798
6799         * tools/dbus-viewer.c: add support for introspecting a service on
6800         a bus
6801
6802         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6803         (dbus_g_pending_call_unref): add
6804
6805 2005-01-29  Havoc Pennington  <hp@redhat.com>
6806
6807         * tools/dbus-tree-view.c: add support for displaying properties.
6808         (run dbus-viewer with an introspect xml file as arg, then resize
6809         the window so the tree elements show up, not sure what that is)
6810
6811         * glib/dbus-gobject.c (handle_introspect): return
6812         org.freedesktop.Properties and org.freedesktop.Introspectable
6813         interfaces when we are introspected.
6814
6815         * doc/dbus-specification.xml: allow empty interface name when 
6816         Get/Set a property
6817
6818 2005-01-29  Havoc Pennington  <hp@redhat.com>
6819
6820         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6821         though it uses glib, it could be extended for any binding in
6822         principle
6823
6824         * glib/dbus-gobject.c (gobject_message_function): change to the
6825         new way properties work
6826
6827         * dbus/dbus-protocol.h: add the new interfaces
6828
6829         * doc/dbus-specification.xml: document the introspection format,
6830         Introspectable interface, and add an org.freedesktop.Properties
6831         interface.
6832
6833         * glib/dbus-gparser.c: add support for a <property> element
6834
6835         * glib/dbus-gidl.c: add PropertyInfo
6836
6837         * glib/dbus-gobject.c (handle_introspect): put the outermost
6838         <node> outside the signal and property descriptions.
6839         (introspect_properties): export properties as <property> rather
6840         than as method calls
6841
6842 2005-01-28  Havoc Pennington  <hp@redhat.com>
6843
6844         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6845         related to authentication protocol
6846
6847 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6848
6849         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6850                 - BUS_ACTIVATION -> BUS_STARTER
6851                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6852                 - class MessageIter (__init__): Added recursion checking 
6853                 so we throw a nice error instead of just disconnecting from the
6854                 bus.
6855                 (get): Added arg_type parameter for recursion.
6856                 Removed the nil type
6857                 Added signiture type placeholder (not implemented)
6858                 Added struct type placeholder (not implemented)
6859                 Added varient type placeholder (not implemented)
6860                 Commented out dict type for now     
6861                 (get_element_type): renamed from get_array_type
6862                 (get_*): changed to use the dbus_message_iter_get_basic API
6863                 (get_*_array): removed in favor of recursive get_array method
6864                 (get_array): new recursive method which calls get to marshal
6865                 the elements of the array
6866                 (value_to_dbus_sig): New method returns the corrasponding
6867                 dbus signiture to a python value
6868                 (append): Comment out dict handling for now
6869                 Handle lists with the new recursive API
6870                 Comment out None handling for now
6871                 (append_nil): removed
6872                 (append_*): changed to use dbus_message_iter_append_basic API
6873                 (append_*_array): removed in favor of recursive append_array 
6874                 method
6875                 (__str__): Make it easier to print out recursive iterators
6876                 for debugging
6877                 - class Message (__str__): moved type inspection to the
6878                 MessageIter class' __str__ method
6879                 (get_iter): Added an append parameter wich defaults to False
6880                 If True use the new API's to create an append iterator
6881
6882         * python/dbus.py: Update to use new bindings API
6883                 - TYPE_ACTIVATION -> TYPE_STARTER
6884                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6885                 - class ActivationBus -> class StarterBus
6886                 - class RemoteObject (__call__): get an append iterator
6887                 - (_dispatch_dbus_method_call): get an append iterator
6888                 - class Object (emit_signal): get an append iterator
6889
6890         * python/examples/: Fixed up the examples to work with the new API
6891                 
6892 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6893
6894         * configure.in: Bump version up to 0.30.
6895
6896         * HACKING: Add a release item to bump the version number up after 
6897         a release.
6898
6899 2005-01-28  Havoc Pennington  <hp@redhat.com>
6900
6901         * doc/dbus-specification.xml: update to describe 16-bit types and
6902         dict entries
6903
6904         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6905         assertion
6906
6907         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6908         type
6909
6910         * dbus/dbus-marshal-recursive.c: implement
6911
6912 2005-01-27  Havoc Pennington  <hp@redhat.com>
6913
6914         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6915
6916         * configure.in: find the right type for 16 and 32 bit ints as well
6917         as 64
6918
6919         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6920         the 16-bit types so people don't have to stuff them in 32-bit or
6921         byte arrays.
6922
6923 2005-01-27  Havoc Pennington  <hp@redhat.com>
6924
6925         * dbus/dbus-message.c: byteswap the message if you init an
6926         iterator to read/write from it
6927         
6928         * dbus/dbus-marshal-byteswap.c: new file implementing 
6929         _dbus_marshal_byteswap()
6930
6931         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6932
6933 2005-01-26  Havoc Pennington  <hp@redhat.com>
6934         
6935         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6936         build, apparently - nobody noticed?)
6937         
6938 2005-01-26  Havoc Pennington  <hp@redhat.com>
6939
6940         * dbus/dbus-marshal-recursive.h: remove todo comment
6941
6942 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6943
6944         * Land the mono binding changes to conform to the new APIs.
6945
6946         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6947         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6948
6949         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6950         type code as a string.
6951         (InitAppending): Rename dbus_message_append_iter_init() to
6952         dbus_message_iter_init_append().
6953
6954         * mono/BusDriver.cs: Rename ServiceEventHandler to
6955         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6956         Rename ServiceOwnerChanged to NameOwnerChanged.
6957
6958         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6959         underlying C call.
6960
6961         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6962
6963         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6964         dbus_bus_acquire_service() to dbus_bus_request_name().
6965
6966         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6967         of Type.UnderlyingSystemType to get the correct element type for
6968         the array.
6969         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6970         dbus_message_get_{element|arg}_type() instead of
6971         dbus_message_iter_init_array_iterator().
6972         (Append): Replace dbus_message_iter_append_array() with
6973         dbus_message_iter_open_container() and
6974         dbus_message_iter_close_container().
6975
6976         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6977         types have been removed.
6978         
6979         * mono/DBusType/*.cs: Replace calls of
6980         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6981         but specify the type in the DllImport extern declaration.  Ditto
6982         for dbus_message_iter_append_[type]() ->
6983         dbus_message_iter_append_basic().
6984
6985         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6986         NameOwnerChangedHandler.
6987
6988 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6989
6990         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6991                 - get_base_service -> get_unique_name
6992                 - bus_get_base_service -> bus_get_unique_name
6993                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6994                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6995                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6996                 - bus_activate_service -> bus_start_service_by_name
6997                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6998                 - bus_acquire_service -> bus_request_name
6999                 - dbus_bus_acquire_service -> dbus_bus_request_name
7000                 - bus_service_exists -> bus_name_has_owner
7001                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7002
7003         * python/dbus.py: Rename of methods
7004                 - activate_service -> start_service_by_name
7005                 - bus_acquire_service -> bus_request_name
7006                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7007                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7008
7009         
7010 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7011
7012         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7013         signature for the method that can't be found.
7014
7015         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7016         the message has any arguments, we need to call
7017         _dbus_type_reader_get_current_type(), not
7018         _dbus_type_reader_has_next().
7019
7020 2005-01-24  Havoc Pennington  <hp@redhat.com>
7021
7022         * dbus/dbus-message-factory.c: more testing of message validation
7023
7024         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7025         header
7026
7027 2005-01-23  Havoc Pennington  <hp@redhat.com>
7028
7029         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7030         get this all working, not many tests in the framework yet though
7031
7032 2005-01-22  Havoc Pennington  <hp@redhat.com>
7033
7034         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7035         tutorial, based on work from David Wheeler.
7036
7037 2005-01-21  Havoc Pennington  <hp@redhat.com>
7038
7039         * dbus/dbus-bus.c: add more return_if_fail checks
7040
7041         * dbus/dbus-message.c (load_message): have the "no validation"
7042         mode (have to edit the code to toggle the mode for now though)
7043
7044         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7045         skips all validation; I want to use this at least for benchmark
7046         baseline, I'm not sure if it should be a publicly-available switch.
7047
7048 2005-01-21  Havoc Pennington  <hp@redhat.com>
7049
7050         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7051         toplevel doxygen group as the low-level API stuff
7052
7053         * dbus/dbus.h: note that libdbus is the low-level API
7054
7055 2005-01-20  Havoc Pennington  <hp@redhat.com>
7056
7057         * update-dbus-docs.sh: script to update docs on the web site, only
7058         works for me though. neener.
7059
7060 2005-01-20  Havoc Pennington  <hp@redhat.com>
7061
7062         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7063         code can reveal bugs in it
7064
7065 2005-01-20  Havoc Pennington  <hp@redhat.com>
7066
7067         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7068         select() version, patches from Tor Lillqvist
7069
7070 2005-01-20  Havoc Pennington  <hp@redhat.com>
7071
7072         * doc/dbus-tutorial.xml: replace > with &gt;
7073
7074         * bus/services.c (bus_registry_acquire_service): validate the name
7075         and return a better error if it's no good.
7076
7077         * doc/dbus-specification.xml: note NO_AUTO_START change
7078
7079         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7080         from AUTO_START, we're toggling the default
7081
7082         * bus/dispatch.c: adapt the tests to change of auto-start default
7083
7084 2005-01-18  Havoc Pennington  <hp@redhat.com>
7085
7086         * rename dbus-daemon-1 to dbus-daemon throughout
7087
7088 2005-01-18  Havoc Pennington  <hp@redhat.com>
7089
7090         * Throughout, grand renaming to strip out the use of "service",
7091         just say "name" instead (or "bus name" when ambiguous).  Did not
7092         change the internal code of the message bus itself, only the
7093         programmer-facing API and messages.
7094         
7095         * doc/dbus-specification.xml: further update the message bus section
7096         
7097         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7098         in error case
7099
7100 2005-01-17  Havoc Pennington  <hp@redhat.com>
7101
7102         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7103         ever
7104
7105         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7106         "invalid name character" not only non-ASCII
7107
7108         * doc/dbus-specification.xml: further update spec, message bus 
7109         parts are still out-of-date but the marshaling etc. stuff is now
7110         accurate-ish
7111
7112 2005-01-17  Havoc Pennington  <hp@redhat.com>
7113
7114         * doc/dbus-specification.xml: partially update spec
7115
7116 2005-01-17  Havoc Pennington  <hp@redhat.com>
7117
7118         * Throughout, align variant bodies according to the contained
7119         type, rather than always to 8. Should save a fair bit of space in
7120         message headers.
7121         
7122         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7123         fix handling of case where p == end
7124
7125         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7126
7127 2005-01-17  Havoc Pennington  <hp@redhat.com>
7128
7129         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7130
7131         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7132         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7133         are marshaling/unmarshaling a boolean.
7134
7135 2005-01-16  Havoc Pennington  <hp@redhat.com>
7136
7137         This is about it on what can be disabled/deleted from libdbus
7138         easily, back below 150K anyhow. Deeper cuts are more work than 
7139         just turning the code off as I've done here.
7140         
7141         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7142         signed int convenience funcs
7143
7144         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7145         verbose mode
7146
7147         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7148         things out of libdbus
7149
7150         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7151         
7152         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7153         tests-enabled-only, though it should probably be deleted)
7154
7155         * dbus/dbus-message-util.c: same stuff
7156
7157         * dbus/dbus-auth-util.c: same stuff
7158
7159 2005-01-16  Havoc Pennington  <hp@redhat.com>
7160
7161         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7162
7163         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7164         way for stripping down dbus-userdb.c stuff included in libdbus.
7165         Rename _dbus_parse_uid for consistency.
7166
7167 2005-01-16  Havoc Pennington  <hp@redhat.com>
7168
7169         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7170         name the assertion failed in
7171
7172         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7173         (_dbus_return_val_if_fail): assert that the name of the function
7174         containing the check doesn't start with '_', since we only want to 
7175         use checks on public functions
7176         
7177         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7178         checks to assertions
7179
7180         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7181         change checks to asserts for private function
7182
7183         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7184         to asserts for private function
7185
7186         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7187         broken assertion that was breaking make check
7188         (_dbus_type_reader_array_is_empty): remove this rather than fix
7189         it, was only used in assertions
7190
7191 2005-01-16  Havoc Pennington  <hp@redhat.com>
7192
7193         * test/unused-code-gc.py: hacky script to find code that's used
7194         only by the bus (not libdbus) or used only by tests or not used at
7195         all. It has some false alarms, but looks like we can clean up a
7196         lot of size from libdbus.
7197
7198         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7199         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7200         
7201 2005-01-16  Havoc Pennington  <hp@redhat.com>
7202
7203         * Add and fix docs according to Doxygen warnings throughout
7204         source.
7205         
7206         * dbus/dbus-marshal-recursive.c
7207         (_dbus_type_reader_array_is_empty): change this to just call
7208         array_reader_get_array_len() and make it static
7209
7210         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7211         from get_array_type
7212         (dbus_message_iter_init_append): rename from append_iter_init
7213
7214         * dbus/dbus-marshal-recursive.c
7215         (_dbus_type_reader_get_element_type): rename from
7216         _dbus_type_reader_get_array_type
7217
7218 2005-01-15  Havoc Pennington  <hp@redhat.com>
7219
7220         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7221
7222         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7223         when DBUS_DISABLE_ASSERT
7224         (_dbus_marshal_set_basic): be sure we align for the string length
7225
7226         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7227         this look faster
7228
7229         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7230         inline macro version
7231         (_dbus_string_set_byte): provide inline macro version
7232
7233 2005-01-15  Havoc Pennington  <hp@redhat.com>
7234
7235         * Land the new message args API and type system.
7236
7237         This patch is huge, but the public API change is not 
7238         really large. The set of D-BUS types has changed somewhat, 
7239         and the arg "getters" are more geared toward language bindings;
7240         they don't make a copy, etc.
7241
7242         There are also some known issues. See these emails for details
7243         on this huge patch:
7244         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7245         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7246         
7247         * dbus/dbus-marshal-*: all the new stuff
7248
7249         * dbus/dbus-message.c: basically rewritten
7250
7251         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7252         freed blocks to be all non-nul bytes so using freed memory is less
7253         likely to work right
7254
7255         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7256         DBUS_FAIL_MALLOC=N environment variable, so you can do
7257         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7258         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7259         thorough.
7260
7261         * qt/message.cpp: port to the new message args API
7262         (operator<<): use str.utf8() rather than str.unicode()
7263         (pretty sure this is right from the Qt docs?)
7264
7265         * glib/dbus-gvalue.c: port to the new message args API
7266
7267         * bus/dispatch.c, bus/driver.c: port to the new message args API
7268
7269         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7270         "locked" flag to TRUE and align_offset to 0; I guess we never
7271         looked at these anyhow, but seems cleaner.
7272
7273         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7274         move allocation padding macro to this header; use it to implement
7275         (_DBUS_STRING_STATIC): ability to declare a static string.
7276
7277         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7278         change to return TRUE if the interface is not set.
7279
7280         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7281         to dbus-marshal-validate.[hc]
7282
7283         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7284         dbus-internals.c
7285
7286         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7287         to dbus-marshal-*.[hc]
7288
7289         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7290         function here from dbus-marshal.c
7291
7292 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7293
7294         * NEWS: Update for 0.23.
7295
7296         * configure.in: Release 0.23.
7297
7298 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7299
7300         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7301         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7302         behind.
7303
7304         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7305         uninstall"
7306
7307         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7308         is an enum, get the enum's underlying type.  Another mono
7309         1.1.3 fix.
7310
7311 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7312
7313         Patch from Sjoerd Simons <sjoerd@luon.net>
7314
7315         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7316         DESTDIR.  It breaks stuff.
7317
7318 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7319
7320         Patch from Tambet Ingo <tambet@ximian.com>
7321
7322         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7323         calling type.GetElementType().  The code previously depended on
7324         broken Mono behavior, which was fixed in Mono 1.1.3.
7325
7326         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7327         Activator.CreateInstance() so that the class's constructor is
7328         called with the right parameters.
7329
7330 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7331
7332         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7333
7334         * dbus/dbus-connection.c
7335         (_dbus_connection_queue_received_message_link): Call
7336         _dbus_connection_remove_timeout() instead of the _locked()
7337         variant, since it's always called from
7338         _dbus_connection_handle_watch(), which handles the locking.
7339         Removed the _locked() variant since it's no longer used.
7340
7341 2005-01-03  Havoc Pennington  <hp@redhat.com>
7342
7343         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7344         return
7345         
7346 2004-12-26  Havoc Pennington  <hp@redhat.com>
7347
7348         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7349
7350 2005-01-03  Havoc Pennington  <hp@redhat.com>
7351
7352         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7353         floating point
7354
7355         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7356
7357 2005-01-02  Havoc Pennington  <hp@redhat.com>
7358
7359         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7360
7361 2005-01-01  Havoc Pennington  <hp@redhat.com>
7362
7363         * configure.in: add -Wfloat-equal
7364
7365 2005-01-01  Havoc Pennington  <hp@redhat.com>
7366
7367         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7368         for a variety of reasons '==' doesn't do this.
7369
7370 2004-12-31  Havoc Pennington  <hp@redhat.com>
7371
7372         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7373         I keep wishing I had
7374
7375 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7376
7377         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7378
7379 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7380
7381         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7382         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7383         dbus-protocol.h.  Because they are defines and not enums they are not
7384         autogenerated.
7385
7386 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7387
7388         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7389         dbus_bus_activate_service
7390
7391         * python/dbus.py (Bus.activate_service): activate a service on the
7392         bus.
7393
7394 2004-12-24  Havoc Pennington  <hp@redhat.com>
7395
7396         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7397         file format has also changed and I haven't adapted to that yet
7398         
7399         * Makefile.am: load .gcno files from latest gcc
7400
7401 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7402         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7403
7404         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7405         lowlevel binding
7406
7407         * python/dbus.py (get_unix_user): Added binding to 
7408         call dbus_bindings.bus_get_unix_user
7409
7410         * python/extract.py: Modified the proto_pat regex to
7411         handle unsigned long
7412
7413 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7414
7415         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7416         better POSIX compliance.
7417
7418 2004-12-19  Havoc Pennington  <hp@redhat.com>
7419
7420         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7421         (_dbus_string_insert_8_aligned): new functions
7422
7423         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7424
7425 2004-12-18  Havoc Pennington  <hp@redhat.com>
7426
7427         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7428         macro
7429
7430         * dbus/dbus-message.c: fix a comment, and add a still-unused
7431         not-implemented function
7432
7433         * dbus/dbus-marshal.h: fix comment
7434
7435         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7436
7437 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7438
7439         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7440         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7441         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7442         Type.UnderlyingSystemType to get the actual system type
7443         underneath.  This code previously depended on the broken Mono
7444         behavior, which was fixed in 1.1.3.
7445
7446 2004-11-27  Havoc Pennington  <hp@redhat.com>
7447
7448         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7449         are disabled
7450         (_dbus_string_get_const_data): inline when asserts are disabled
7451
7452         * dbus/dbus-message.c: record the _dbus_current_generation of
7453         creation so we can complain if dbus_shutdown() is used improperly.
7454         Do this only if checks are enabled.
7455
7456         * dbus/dbus-connection.c: ditto
7457         
7458 2004-11-26  Havoc Pennington  <hp@redhat.com>
7459
7460         * test/glib/test-profile.c: add with_bus mode to profile echoes
7461         that go through the bus.
7462
7463         * test/glib/run-test.sh: add ability to run test-profile
7464
7465         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7466         config file reload.
7467
7468 2004-11-26  Havoc Pennington  <hp@redhat.com>
7469
7470         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7471         thing was implemented
7472
7473 2004-11-26  Havoc Pennington  <hp@redhat.com>
7474
7475         * test/glib/test-profile.c: tweak a bit, add support for some
7476         made-up minimal malloc overhead with plain sockets, since in 
7477         real life some sort of buffers are unavoidable thus we could 
7478         count them in the theoretical best case
7479
7480 2004-11-26  Havoc Pennington  <hp@redhat.com>
7481
7482         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7483         where I was trying to cache one too many messages
7484
7485 2004-11-26  Havoc Pennington  <hp@redhat.com>
7486
7487         * dbus/dbus-message.c: reimplement message cache as an array which 
7488         makes the cache about twice as fast and saves maybe 1.5% overall
7489
7490 2004-11-26  Havoc Pennington  <hp@redhat.com>
7491
7492         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7493         message cache lock here
7494
7495 2004-11-26  Havoc Pennington  <hp@redhat.com>
7496
7497         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7498         the "char byte_order" next to each other to save 4 bytes
7499         (dbus_message_new_empty_header): reduce preallocation, since the
7500         message cache should achieve a similar effect
7501         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7502         message cache that keeps a few DBusMessage around in a pool,
7503         another 8% speedup or so.
7504
7505         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7506
7507 2004-11-25  Havoc Pennington  <hp@redhat.com>
7508
7509         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7510         to write, without reading or blocking, try it before the poll()
7511         and skip the poll() if nothing remains to write. This is about a
7512         3% speedup in the echo client/server
7513
7514 2004-11-25  Havoc Pennington  <hp@redhat.com>
7515
7516         The primary change here is to always write() once before adding
7517         the write watch, which gives us about a 10% performance increase.
7518         
7519         * dbus/dbus-transport-unix.c: a number of modifications to cope
7520         with removing messages_pending
7521         (check_write_watch): properly handle
7522         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7523         messages_pending stuff
7524         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7525         AUTHENTICATED cases
7526         (unix_handle_watch): after writing, see if the write watch can be
7527         removed
7528         (unix_do_iteration): assert that write_watch/read_watch are
7529         non-NULL rather than testing that they aren't, since they 
7530         aren't allowed to be NULL. check_write_watch() at the end so 
7531         we add the watch if we did not finish writing (e.g. got EAGAIN)
7532
7533         * dbus/dbus-transport-protected.h: remove messages_pending call,
7534         since it resulted in too much inefficient watch adding/removing; 
7535         instead we now require that the transport user does an iteration 
7536         after queueing outgoing messages, and after trying the first
7537         write() we add a write watch if we got EAGAIN or exceeded our 
7538         max bytes to write per iteration setting
7539
7540         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7541         function
7542
7543         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7544         freed and then accessed, valgrind flagged this bug, fix it
7545
7546         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7547         as the last valid field plus 1, where really it is equal to the
7548         last valid field. Corrects some message corruption issues.
7549
7550         * dbus/dbus-mainloop.c: verbosity changes
7551
7552         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7553         instead of aborting in one of the test codepaths
7554
7555         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7556         caused not printing the pid ever again if a verbose was missing
7557         the newline at the end
7558         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7559
7560         * dbus/dbus-connection.c: verbosity changes; 
7561         (dbus_connection_has_messages_to_send): new function
7562         (_dbus_connection_message_sent): no longer call transport->messages_pending
7563         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7564         try to write() immediately, so we can avoid the write watch. This
7565         is the core purpose of this patchset
7566         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7567         dump the outgoing message queue, so nobody will get confused
7568         trying to send them or thinking stuff is pending to be sent
7569
7570         * bus/test.c: verbosity changes
7571
7572         * bus/driver.c: verbosity/assertion changes
7573
7574         * bus/dispatch.c: a bunch of little tweaks to get it working again
7575         because this patchset changes when/where you need to block.
7576
7577 2004-11-23  Havoc Pennington  <hp@redhat.com>
7578
7579         * test/glib/test-profile.c: modify to accept a plain_sockets
7580         argument in which case it will bench plain sockets instead of
7581         libdbus, for comparison purposes.
7582
7583 2004-11-22  Havoc Pennington  <hp@redhat.com>
7584
7585         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7586         threads for more time, so sysprof can get a grip on it.
7587
7588         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7589         pointless variable
7590
7591 2004-11-13  Havoc Pennington  <hp@redhat.com>
7592
7593         * test/glib/test-profile.c: fix this thing up a bit
7594
7595         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7596         preallocation sizes by a fair bit; not sure if this will be an
7597         overall performance win or not, but it does reduce reallocs.
7598
7599         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7600         the test hack that forced constant realloc if asserts are
7601         disabled, so we can profile sanely. Sprinkle in some
7602         _DBUS_UNLIKELY() which are probably pointless, but before I
7603         noticed the real performance problem I put them in.
7604         (_dbus_string_validate_utf8): micro-optimize this thing a little
7605         bit, though callgrind says it didn't help; then special-case
7606         ascii, which did help a lot; then be sure we detect nul bytes as
7607         invalid, which is a bugfix.
7608         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7609         superstition; use memset to nul the padding instead of a manual
7610         loop.
7611         (_dbus_string_get_length): inline this as a
7612         macro; it showed up in the profile because it's used for loop
7613         tests and so forth
7614
7615 2004-11-10  Colin Walters  <walters@verbum.org>
7616
7617         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7618         for extra paranoia.
7619
7620 2004-11-09  Colin Walters  <walters@verbum.org>
7621
7622         * dbus/dbus-string.c (_dbus_string_get_length): New
7623         function, writes DBusString to C buffer.
7624
7625         * dbus/dbus-string.h: Prototype it.
7626
7627         * dbus/dbus-message.c (dbus_message_type_to_string): New
7628         function, converts message type into C string.
7629
7630         * dbus/dbus-message.h: Prototype it.
7631
7632         * bus/selinux.c (bus_selinux_check): Take source pid,
7633         target pid, and audit data.  Pass audit data to
7634         avc_has_perm.
7635         (log_audit_callback): New function, appends extra
7636         audit information.
7637         (bus_selinux_allows_acquire_service): Also take
7638         service name, add it to audit data.
7639         (bus_selinux_allows_send): Also take message
7640         type, interface, method member, error name,
7641         and destination, and add them to audit data.
7642         (log_cb): Initialize func_audit.
7643         
7644         * bus/selinux.h (bus_selinux_allows_acquire_service)
7645         (bus_selinux_allows_send): Update prototypes 
7646
7647         * bus/services.c (bus_registry_acquire_service): Pass
7648         service name to bus_selinux_allows_acquire_service.
7649
7650         * bus/bus.c (bus_context_check_security_policy): Pass
7651         additional audit data.  Move assignment of dest
7652         to its own line.
7653
7654 2004-11-07  Colin Walters  <walters@verbum.org>
7655
7656         * dbus/dbus-transport-unix.c (do_authentication): Always
7657         initialize auth_completed.
7658         
7659 2004-11-07  Colin Walters  <walters@verbum.org>
7660
7661         * bus/bus.c (load_config): Break into three
7662         separate functions: process_config_first_time_only,
7663         process_config_every_time, and process_config_postinit.
7664         (process_config_every_time): Move call of
7665         bus_registry_set_service_context_table into
7666         process_config_postinit.
7667         (process_config_postinit): New function, does
7668         any processing that needs to happen late
7669         in initialization (and also on reload).
7670         (bus_context_new): Instead of calling load_config,
7671         open config parser here and call process_config_first_time_only
7672         and process_config_every_time directly.  Later, after
7673         we have forked but before changing UID,
7674         invoke bus_selinux_full_init, and then call
7675         process_config_postinit.
7676         (bus_context_reload_config): As in bus_context_new,
7677         load parse file inside here, and call process_config_every_time
7678         and process_config_postinit.
7679
7680         * bus/services.h, bus/services.c
7681         (bus_registry_set_service_context_table): Rename
7682         from bus_registry_set_sid_table.  Take string hash from config
7683         parser, and convert them here into SIDs.
7684
7685         * bus/config-parser.c (struct BusConfigParser): Have
7686         config parser only store a mapping of service->context
7687         string.
7688         (merge_service_context_hash): New function.
7689         (merge_included): Merge context string hashes instead
7690         of using bus_selinux_id_table_union.
7691         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7692         simply create a new string hash.
7693         (bus_config_parser_unref): Unref it.
7694         (start_selinux_child): Simply insert strings into hash,
7695         don't call bus_selinux_id_table_copy_over.
7696
7697         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7698         (bus_selinux_id_table_copy_over): Delete.
7699
7700 2004-11-03  Colin Walters  <walters@verbum.org>
7701
7702         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7703         variables.
7704         
7705 2004-11-03  Colin Walters  <walters@verbum.org>
7706
7707         * bus/test-main.c (test_pre_hook): Fix test logic,
7708         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7709
7710 2004-11-02  Colin Walters  <walters@redhat.com>
7711
7712         * bus/selinux.c (bus_selinux_init): Split into two functions,
7713         bus_selinux_pre_init and bus_selinux_post_init.
7714         (bus_selinux_pre_init): Just determine whether SELinux is
7715         enabled.
7716         (bus_selinux_post_init): Do everything else.
7717
7718         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7719         config file, and bus_selinux_post_init after.  This ensures that
7720         we don't lose the policyreload notification thread that
7721         bus_selinux_init created before forking previously.
7722         
7723         * bus/test-main.c (test_pre_hook): Update for split.
7724
7725 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7726
7727         Patch from Johan Fischer <linux@fischaz.com>
7728         
7729         * mono/doc/Makefile.am (install-data-local): Added directory
7730         install for DESTDIR
7731
7732 2004-10-29  Colin Walters  <walters@redhat.com>
7733
7734         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7735         parameter for fd to write pid to.       
7736
7737         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7738         
7739         * bus/bus.c (bus_context_new): Pass print_pid_fd
7740         to _dbus_become_daemon (bug #1720)
7741
7742 2004-10-29  Colin Walters  <walters@redhat.com>
7743
7744         Patch from Ed Catmur <ed@catmur.co.uk>
7745
7746         * mono/doc/Makefile.am (install-data-local): Handle
7747         DESTDIR.
7748
7749 2004-10-29  Colin Walters  <walters@redhat.com>
7750
7751         * bus/.cvsignore, qt/.cvsignore: Update.
7752
7753 2004-10-29  Colin Walters  <walters@redhat.com>
7754
7755         Patch from Kristof Vansant <de_lupus@pandora.be>
7756
7757         * configure.in: Detect Slackware.
7758         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7759         * bus/rc.messagebus.in: New file.
7760
7761 2004-10-29  Colin Walters  <walters@redhat.com>
7762
7763         * tools/dbus-monitor.c (filter_func): Return
7764         DBUS_HANDLER_RESULT_HANDLED in filter function
7765         for now.  See:
7766         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7767
7768 2004-10-29  Colin Walters  <walters@redhat.com>
7769
7770         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7771
7772         * bus/services.c (bus_registry_acquire_service): 
7773         Correctly retrieve service name from DBusString
7774         for printing.
7775
7776 2004-10-29  Colin Walters  <walters@redhat.com>
7777
7778         * dbus/dbus-glib.h: Update documentation to not
7779         refer to internal APIs.
7780
7781 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7782
7783         * mono/Arguments.cs (GetDBusTypeConstructor):
7784         type.UnderlyingSystemType will return "System.Byte" if you do it
7785         on "byte[]", which is not what we want.  So check the type.IsArray
7786         property and use System.Array instead.
7787
7788 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7789
7790         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7791         the DBusUserInfo structure since this is passed into the function.
7792         This would cause a double free when the function that allocated
7793         the structure would try to free it when an error occured.
7794
7795         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7796         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7797         for service activation to avoid 32bit/64bit parallel install issues
7798
7799 2004-10-21  Colin Walters  <walters@verbum.org>
7800
7801         * AUTHORS: Fix my email address, the @gnu.org one
7802         has been bouncing for some time.  Also add J5.
7803         
7804 2004-10-21  Colin Walters  <walters@verbum.org>
7805
7806         * dbus/dbus-transport-unix.c (do_authentication): Return
7807         authentication status to callers.
7808         (unix_handle_watch): If we completed authentication this round,
7809         don't do another read.  Instead wait until the next iteration,
7810         after we've read any pending data in the auth buffer.
7811         (unix_do_iteration): Ditto.
7812         (unix_handle_watch): Updated for new do_authentication prototype.
7813
7814 2004-10-18  Colin Walters  <walters@verbum.org>
7815
7816         * bus/selinux.c (bus_selinux_enabled): Handle
7817         --disable-selinux case.
7818         
7819 2004-10-18  Colin Walters  <walters@verbum.org>
7820
7821         * bus/selinux.h: Add bus_selinux_enabled.
7822         
7823         * bus/selinux.c (bus_selinux_enabled): Implement it.
7824         
7825         * bus/config-parser.c (struct include): Add
7826         if_selinux_enabled member.
7827         (start_busconfig_child): Parse if_selinux_enabled
7828         attribute for include.
7829         (bus_config_parser_content): Handle it.
7830
7831         * bus/session.conf.in, bus/system.conf.in: Add
7832         inclusion of context mapping to default config files;
7833         conditional on SELinux being enabled.
7834         
7835         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7836         
7837         * test/data/invalid-config-files/badselinux-1.conf, 
7838         test/data/invalid-config-files/badselinux-2.conf:
7839         Test files for bad syntax.
7840         
7841 2004-10-17  Colin Walters  <walters@verbum.org>
7842
7843         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7844         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7845         format specifier mismatches.
7846
7847 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7848
7849         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7850         format string.
7851
7852         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7853         pointer (bug #1540, Leonardo Boiko).
7854
7855 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7856
7857         * mono/BusDriver.cs: Changed BusDriver struct to remove
7858         the ServiceCreated and ServiceDeleted events and replace them
7859         with the new ServiceOwnerChanged event.
7860
7861         * mono/example/BusListener.cs: Added a new example program,
7862         which listens for and reports any ServiceOwnerChanged events
7863         on the bus driver.
7864
7865         * mono/example/Makefile.am (DESTDIR): Build changes for the
7866         new BusListener.cs example.
7867
7868 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7869
7870         * bus/signals.c (bus_match_rule_parse): validate the components of
7871         match rules (bug #1439).
7872
7873         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7874
7875 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7876
7877         * doc/dbus-specification.xml: document ServiceOwnerChanged
7878         signal.
7879         
7880         * bus/driver.c, bus/driver.h, bus/services.c: Use
7881         ServiceOwnerChanged signal instead of ServiceCreated and
7882         ServiceDeleted.
7883         
7884         * bus/dispatch.c: update testcase for the new signal.
7885
7886 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7887
7888         Patch from Nat Friedman <nat@novell.com>
7889
7890         * mono/Makefile.am: A number of small build fixes to allow "make
7891         distcheck" to succeed.
7892
7893         * mono/example/Makefile.am: "make distcheck" fixes.
7894
7895         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7896         key in @srcdir@.
7897
7898         * test/Makefile.am: "make distcheck" fixes.
7899
7900 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7901
7902         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7903
7904         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7905
7906         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7907         messages after the first one (bug #1389).
7908         
7909         * bus/dispatch.c (check_double_hello_message): add a test case for
7910         the double hello message bug.
7911         (check_existent_service_activation): fix check of spawning error.
7912         
7913 2004-09-16  David Zeuthen  <david@fubar.dk>
7914
7915         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7916
7917 2004-09-12  David Zeuthen  <david@fubar.dk>
7918
7919         Patch from Kay Sievers <kay.sievers@vrfy.org>
7920
7921         * bus/bus.c (bus_context_new):
7922         * bus/bus.h:
7923         * bus/main.c (usage)
7924         (main):
7925         Add commandline option --nofork to override configuration file
7926         setting.
7927
7928 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7929
7930         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7931         compilers don't like it (bug #974).
7932
7933 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7934
7935         * qt/connection.*: Applied patch by Jérôme Lodewyck
7936         <lodewyck@clipper.ens.fr> to integrate an existing
7937         connection into the Qt eventloop
7938
7939 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7940
7941         * mono/BusDriver.cs: Added.  This is a class for interacting with
7942         the org.freedesktop.DBus service.
7943
7944         * mono/Message.cs: Added a mechanism to expose the message that is
7945         currently being dispatched via the static Message.Current
7946         property.  Added Message.Sender and Message.Destination
7947         properties.
7948
7949         * mono/Handler.cs: Expose the dispatched message via
7950         Message.Current when handling method calls.
7951
7952         * mono/Service.cs: Expose the dispatched message via
7953         Message.Current when handling signal emissions.
7954         
7955         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7956         Connection.BaseService property.
7957
7958 2004-08-28  Havoc Pennington  <hp@redhat.com>
7959
7960         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7961
7962         More fixes from Steve Grubb
7963         
7964         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7965         (_dbus_listen_tcp_socket): fix fd leak
7966
7967         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7968         EINTR to a bit lower in the code
7969
7970 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7971
7972         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7973         TRUE if we are inquiring about the existence of the built-in
7974         org.freedesktop.DBus service.
7975
7976 2004-08-25  John Palmieri  <johnp@redhat.com>
7977         * bus/config-parser.c:
7978         (struct PolicyType): Add POLICY_CONSOLE
7979         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7980         (start_busconfig_child): Sets up console element when
7981         <policy at_console=""> is encountered in a policy file
7982         (append_rule_from_element): Convert console elements to console
7983         rules.
7984
7985         * bus/policy.c: 
7986         (bus_policy_create_client_policy): Add console rules to the client
7987         policy based on if the client is at the console
7988         (bus_policy_append_console_rule): New function for adding a
7989         console rule to a policy
7990         (bus_policy_merge): Handle console rule merging
7991
7992         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7993         where we check for console user files
7994         
7995         * dbus/dbus-sysdeps.c:
7996         (_dbus_file_exists): New function which checks if the given
7997         file exists
7998         (_dbus_user_at_console): New function which does the system
7999         specific process of checking if the user is at the console
8000
8001         * dbus/dbus-userdb.c:
8002         (_dbus_is_console_user): New function converts a UID to user name
8003         and then calls the system specific _dbus_user_at_console to 
8004         see if the user is at the console and therefor a console user
8005
8006 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8007
8008         * bus/config-parser.c (set_limit):
8009         * bus/dbus-daemon-1.1.in:
8010         * test/data/valid-config-files/many-rules.conf: set the
8011         max_match_rules_per_connection limt from the config file. 
8012
8013         * doc/busconfig.dtd: update the DTD.
8014
8015         * bus/driver.c: remove some unused variables.
8016
8017 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8018
8019         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8020         it's been replaced by dbus_g_bus_get
8021
8022 2004-08-23  Colin Walters  <walters@redhat.com>
8023
8024         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8025
8026         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8027
8028         * bus/selinux.c: Create a thread for policy reload notification.
8029         (bus_selinux_get_policy_root): Implement.
8030
8031         * bus/config-parser.c (start_busconfig_child)
8032         (bus_config_parser_content): Support SELinux-root relative
8033         inclusion.
8034
8035         * configure.in <HAVE_SELINUX>: Add -lpthread.
8036         
8037         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8038         (test_post_hook): Move memory checking into here.
8039         (test_pre_hook, test_post_hook): Move SELinux checks in
8040         here, but conditional on a DBUS_TEST_SELINUX environment
8041         variable.  Unfortunately we can't run the SELinux checks
8042         as a normal user, since they won't have any permissions
8043         for /selinux.  So this will have to be tested manually
8044         for now, until we have virtualization for most of
8045         libselinux.
8046         
8047 2004-08-23  Havoc Pennington  <hp@redhat.com>
8048
8049         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8050         drop supplementary groups, suggested by Steve Grubb
8051
8052 2004-08-20  Colin Walters  <walters@redhat.com>
8053
8054         * bus/config-parser.c (start_busconfig_child): Remove some unused
8055         variables.
8056         
8057         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8058         warning.
8059
8060 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8061
8062         * configure.in: If --enable-mono is passed in, if we can't find
8063         mono error out.
8064
8065         * mono/Makefile.am: Use /gacutil to install assemblies into the
8066         GAC and not /root.
8067
8068 2004-08-12  Havoc Pennington  <hp@redhat.com>
8069
8070         * NEWS: update for 0.22
8071
8072         * configure.in: release 0.22
8073
8074 2004-08-11  Colin Walters  <walters@redhat.com>
8075
8076         * tools/dbus-send.c (main, usage): Add --reply-timeout
8077         argument.
8078
8079 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8080
8081         * bus/bus.c (process_config_first_time_only): get rid of an unused
8082         DBusError that was causing a memoy leak (bug #989).
8083
8084         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8085         fix compilation on Solaris/Forte C (bug #974)
8086
8087         * bus/main.c (main): plug two minuscule memleaks.
8088
8089 2004-08-10  Havoc Pennington  <hp@redhat.com>
8090
8091         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8092
8093 2004-08-09  Havoc Pennington  <hp@redhat.com>
8094
8095         * COPYING: switch to Academic Free License version 2.1 instead of
8096         2.0, to resolve complaints about patent termination clause.
8097
8098 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8099
8100         * README: added documentation for the --enable-python 
8101         configure switch.
8102
8103 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8104
8105         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8106         _unref in the SELinux support.
8107
8108         * doc/busconfig.dtd: update DTD for SELinux support.
8109
8110         * bus/config-loader-libxml.c: fix error handler and parser
8111         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8112
8113         * configure.in: remove the warning about libxml2.
8114
8115         * dbus/dbus-bus.c: silence doxygen warning.
8116
8117 2004-07-31  Colin Walters  <walters@redhat.com>
8118
8119         * configure.in: Move #error in SELinux check to its own line.
8120
8121 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8122
8123         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8124         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8125         dbus_error_set.
8126
8127         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8128         broken by the change in the _SET_OOM macros.
8129
8130 2004-07-31  Colin Walters  <walters@redhat.com>
8131
8132         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8133         BUS_SET_OOM.
8134
8135 2004-07-31  Colin Walters  <walters@redhat.com>
8136
8137         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8138         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8139         AC_MSG_CHECKING.
8140
8141 2004-07-24  Havoc Pennington  <hp@redhat.com>
8142
8143         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8144
8145         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8146         functionality
8147
8148         * configure.in: add --enable-selinux
8149         
8150         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8151
8152         * bus/main.c (main): initialize and shut down selinux
8153
8154         * bus/connection.c: store SELinux ID on each connection, to avoid 
8155         repeated getting of the string context and converting it into 
8156         an ID
8157
8158         * bus/bus.c (bus_context_get_policy): new accessor, though it
8159         isn't used
8160         (bus_context_check_security_policy): check whether the security
8161         context of sender connection can send to the security context of
8162         recipient connection
8163
8164         * bus/config-parser.c: add parsing for <selinux> and <associate>
8165         
8166         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8167         implement dbus_connection_get_unix_fd()
8168
8169         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8170         function, used by the selinux stuff
8171         
8172 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8173
8174         * bus/config-loader-libxml.c: complete the implementation of
8175         libxml backend for config file loader. Doesn't work with full OOM
8176         test yet. 
8177         
8178         * configure.in: change error when selecting libxml into a warning.
8179         
8180         * test/data/invalid-config-files: add two non-well-formed XML
8181         files. 
8182         
8183         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8184         
8185         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8186         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8187         be necessary to read all the buffer. (bug #894)
8188
8189         * bus/activation.c (bus_activation_activate_service): fix a
8190         potential assertion failure (bug #896). Small optimization in the
8191         case of auto-activation messages.
8192
8193         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8194         add test case for byte-through-vararg bug (#901). patch by Kimmo
8195         Hämäläinen. 
8196
8197 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8198
8199         * python/dbus.py:
8200         * python/dbus_bindings.pyx.in:
8201         Add dbus.init_gthreads (), allow emit_signal to pass
8202         arguments to the signal.
8203         
8204 2004-07-24  Havoc Pennington  <hp@redhat.com>
8205
8206         * AUTHORS: add some people, not really comprehensively, let me
8207         know if I missed you
8208
8209 2004-07-24  Havoc Pennington  <hp@redhat.com>
8210
8211         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8212         Owen
8213
8214         * test/Makefile.am (DIST_SUBDIRS): here also
8215
8216 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8217
8218         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8219         breaking build on Solaris, reported by Farhad Saberi on the ML.
8220
8221         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8222         va_arg invocation to account for integer promotion in the case of
8223         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8224
8225         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8226         _dbus_list_get_first_link, not _dbus_list_get_first.
8227
8228         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8229
8230         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8231         handler functions so that the asserts in _dbus_object_subtree_unref
8232         do not fail.
8233
8234         * dbus/dbus-transport-unix.c (do_reading):
8235         _dbus_transport_queue_messages return value is of type
8236         dbus_bool_t, not DBusDispatchStatus.
8237         
8238 2004-07-19  David Zeuthen  <david@fubar.dk>
8239
8240         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8241
8242         * bus/dispatch.c:
8243         (check_get_connection_unix_user): Debug says GetProperty; but the
8244         method is called GetConnectionUnixUser
8245         (check_get_connection_unix_process_id): New function
8246         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8247         also call check_get_connection_unix_process_id()
8248         
8249         * bus/driver.c:
8250         (bus_driver_handle_get_connection_unix_process_id): New function,
8251         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8252         interface
8253         
8254         * dbus/dbus-auth.c:
8255         (handle_server_data_external_mech): Set pid from the credentials
8256         obtained from the socket
8257         
8258         * dbus/dbus-connection.c:
8259         (dbus_connection_get_unix_process_id): New function
8260         
8261         * dbus/dbus-connection.h: 
8262         Add prototype for dbus_connection_get_unix_process_id
8263         
8264         * dbus/dbus-transport.c:
8265         (_dbus_transport_get_unix_process_id): New function
8266         
8267         * dbus/dbus-transport.h:
8268         Add prototype for _dbus_transport_get_unix_process_id
8269         
8270 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8271
8272         * dbus/dbus-message.c: Message counter fix, patch by Christian
8273         Hammond <chipx86@gnupdate.org>
8274
8275 2004-07-18  Seth Nickell  <seth@gnome.org>
8276
8277         * python/dbus.py:
8278         * python/dbus_bindings.pyx.in:
8279         * python/tests/test-client.py:
8280
8281         Add dbus.ByteArray and dbus_bindings.ByteArray
8282         types so that byte streams can be passed back.
8283
8284         Give jdahlin the heaps of credit that are so
8285         rightfully his.
8286         
8287 2004-07-12  Seth Nickell  <seth@gnome.org>
8288
8289         * python/dbus.py:
8290
8291         Add message argument to the default object_method_handler
8292         function.
8293         
8294         * python/dbus_bindings.pyx.in:
8295
8296         Automatically return NIL when passed an empty list
8297         (we can't pass back a list since lists are typed
8298         and we don't have any idea what type the the client
8299         intended the list to be... :-( )
8300         
8301 2004-07-10  Seth Nickell  <seth@gnome.org>
8302
8303         * python/examples/Makefile.am:
8304
8305         Fix distcheck breakage caused by new examples.
8306
8307 2004-07-10  Seth Nickell  <seth@gnome.org>
8308
8309         * python/dbus.py:
8310
8311         Add "message" argument to service-side dbus.Object
8312         methods. This will break existing services written
8313         using the python bindings, but will allow extraction
8314         of all the message information (e.g. who its from).
8315
8316         Add improved "object oriented" signal handling/emission.
8317         
8318         * python/examples/example-service.py:
8319
8320         Nix this example.
8321         
8322         * python/examples/example-signal-emitter.py:
8323         * python/examples/example-signal-recipient.py:
8324
8325         Two new examples that show how to emit and receive
8326         signals using the new APIs.
8327         
8328         * python/examples/example-signals.py:
8329         * python/examples/gconf-proxy-service.py:
8330         * python/examples/gconf-proxy-service2.py:
8331
8332         Add "message" argument to service methods.
8333
8334 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8335
8336         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8337         * dbus/bus.c (dbus_bus_get_unix_user)
8338         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8339         method of org.freedesktop.DBus interface.
8340
8341         * bus/dispatch.c: test case
8342
8343 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8344
8345         * python/Makefile.am: switched include directory from glib/ to dbus/
8346         since dbus-glib.h moved
8347  
8348 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8349
8350         * configure.in: prevent building the gcj stuff and libxml loader
8351         since they are broken.
8352
8353 2004-06-20  Havoc Pennington  <hp@redhat.com>
8354
8355         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8356         codes from the dbus error names
8357         
8358         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8359         as dbus/dbus-glib.h and that breakage is now visible due to 
8360         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8361         
8362         * glib/dbus-glib.h: s/gproxy/g_proxy/
8363
8364         * dbus/dbus-shared.h: new header to hold stuff shared with
8365         binding APIs
8366         
8367         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8368         than dbus-errors.h
8369
8370         * glib/dbus-glib.h (dbus_set_g_error): move to
8371         dbus-glib-lowlevel.h
8372
8373         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8374         of stuff to enable this
8375
8376         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8377
8378         * a bunch of other changes with the same basic "separate glib 
8379         bindings from dbus.h" theme
8380         
8381 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8382
8383         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8384
8385         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8386
8387 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8388
8389         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8390         the reply value of the ServiceExists message.
8391
8392 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8393
8394         * python/dbus_bindings.pyx.in: No longer need to parse path
8395         elements and pass them as arrays of strings.  The C API now
8396         accepts plain path strings.
8397         (_build_parsed_path): removed 
8398
8399 2004-06-07  Havoc Pennington  <hp@redhat.com>
8400
8401         * doc/TODO: remove auto-activation item since it's done; sort
8402         items by importance/milestone
8403
8404 2004-06-07  Havoc Pennington  <hp@redhat.com>
8405
8406         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8407         random signature when using REQUIRED_FIELDS (this hack won't work
8408         in the long term)
8409
8410         * dbus/dbus-message.c: change the signature to be a header field,
8411         instead of message->signature special-case string. Incremental
8412         step forward. Then we can fix up code to send the signature in the
8413         message, then fix up code to validate said signature, then fix up
8414         code to not put the typecodes inline, etc.
8415         (load_one_message): don't make up the signature after the fact
8416         (decode_header_data): require signature field for the known
8417         message types
8418
8419         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8420
8421         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8422
8423 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8424
8425         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8426
8427         * mono/Handler.cs: Updated to follow new path argument for
8428         (un-)registering objects.
8429
8430         * mono/example/Makefile.am:
8431         * mono/Makefile.am:
8432         * configure.in: Bumped required version for mono and use new -pkg
8433         syntax for deps
8434
8435 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8436
8437         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8438         registration functions take the path argument as char* instead of
8439         char**.
8440
8441         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8442         split off the path decompostion part of
8443         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8444         warnings. 
8445
8446         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8447         
8448 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8449  
8450         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8451         machine approach.  A state is implemented as a function that
8452         handles incoming events as specified for that state.
8453         
8454         * doc/dbus-specification.xml: Update auth protocol state machine
8455         specification to match implementation.  Remove some leftover
8456         base64 examples.
8457
8458 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8459
8460         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8461         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8462         quiet doxygen.
8463
8464         * Doxyfile.in: remove deprecated options.
8465
8466         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8467         glib/test-thread.h, glib/test-thread-client.c,
8468         glib/test-thread-server.c, glib/test-profile.c,
8469         glib/test-dbus-glib.c: remove these unused files.
8470
8471 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8472
8473         * dbus/dbus-object-tree.c
8474         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8475         non-fallback handlers (bug #684).
8476         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8477         (find_subtree_recurse): report wether the returned subtree is an
8478         exact match or a "fallback" match higher up in the tree.
8479         (object_tree_test_iteration): update test case.
8480
8481 2004-06-01  Seth Nickell  <seth@gnome.org>
8482
8483         * python/dbus_bindings.pyx.in:
8484         * python/tests/test-client.py:
8485
8486         Round off basic type support. Add dicts (yay!), and 
8487         remaining array types.
8488
8489         Make MessageIter more general so it works for dicts too.
8490
8491         Mark all loop variables as C integers.
8492         
8493 2004-05-31  Havoc Pennington  <hp@redhat.com>
8494
8495         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8496         "in" before "out"
8497
8498         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8499
8500         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8501         option that runs the tests, and start filling in some code
8502         including for starters just dumping the interfaces to stdout
8503
8504         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8505
8506         * test/data/valid-introspection-files/lots-of-types.xml: test of
8507         an example introspection file
8508
8509         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8510         "node" (I think...)
8511
8512 2004-05-31  Seth Nickell  <seth@gnome.org>
8513
8514         * python/dbus_bindings.pyx.in:
8515         * python/tests/test-client.py:
8516
8517         Test Suite: 1
8518         Python Bindings: 0
8519
8520         Fix string array memory trashing bug... oops...
8521
8522 2004-05-30  Seth Nickell  <seth@gnome.org>
8523
8524         * python/dbus.py:
8525
8526         Add a nicer-but-less-flexible alternate API for handling 
8527         calls to virtual objects in dbus.ObjectTree.
8528
8529         Screw up the argument order to the dbus.Object constructor
8530         for consistency with dbus.ObjectTree (and to make dbus_methods
8531         optional for future extension)
8532         
8533         * python/examples/Makefile.am:
8534         * python/examples/gconf-proxy-service.py:
8535         * python/examples/gconf-proxy-service2.py:
8536
8537         Alternate implementation of gconf-proxy-service using the
8538         nicer dbus.ObjectTree API.
8539         
8540         * python/examples/example-service.py:
8541         * python/tests/test-server.py
8542
8543         Reverse the argument order to deal with dbus.Object constructor
8544         changes.
8545         
8546 2004-05-30  Seth Nickell  <seth@gnome.org>
8547
8548         * python/examples/example-client.py:
8549         * python/examples/example-service.py:
8550
8551         Take it back. Lists seem to work but they're broken
8552         in the test suite. Make the base examples use
8553         lists (works fine).
8554
8555 2004-05-30  Seth Nickell  <seth@gnome.org>
8556
8557         * python/dbus_bindings.pyx.in:
8558         * python/tests/test-client.py:
8559
8560         Add some more tests and fix errors that crop up.
8561         Unfortunately, currently it seems like marshalling
8562         and unmarshalling of lists is completely broken :-(
8563
8564 2004-05-30  Seth Nickell  <seth@gnome.org>
8565
8566         * python/dbus_bindings.pyx.in:
8567
8568         Add support for ObjectPath type.
8569
8570         * python/dbus.py:
8571
8572         Refactor message handling code to a common function.
8573         
8574         * python/tests/test-client.py:
8575         * python/tests/test-server.py:
8576
8577         Add tests that check to make sure values of all types
8578         can be echoed from a service w/o mangling.
8579         
8580 2004-05-29  Seth Nickell  <seth@gnome.org>
8581
8582         * python/dbus.py:
8583
8584         Add ObjectTree class which allows implementation
8585         of trees of "virtual" objects. Basically the python
8586         wrapper for "register_fallback".
8587         
8588         * python/examples/Makefile.am
8589         * python/examples/gconf-proxy-client.py:
8590         * python/examples/gconf-proxy-service.py:
8591
8592         Implement a simple GConf proxy service that supports
8593         get/set on string and int GConf keys using the ObjectTree.
8594         
8595 2004-05-29  Seth Nickell  <seth@gnome.org>
8596
8597         * python/dbus.py:
8598         * python/examples/example-client.py:
8599         * python/examples/example-service.py:
8600         * python/examples/list-system-services.py:
8601
8602         Add SessionBus, SystemBus and ActivationBus classes
8603         so you don't need to know the special little BUS_TYPE
8604         flag.
8605         
8606 2004-05-29  Havoc Pennington  <hp@redhat.com>
8607
8608         * bus/config-parser.c (process_test_valid_subdir): temporarily
8609         stop testing config parser OOM handling, since expat has issues
8610         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8611
8612         * bus/dbus-daemon-1.1.in: change requested_reply to
8613         send_requested_reply/receive_requested_reply so we can send the
8614         replies, not just receive them.
8615
8616         * bus/config-parser.c: parse the new
8617         send_requested_reply/receive_requested_reply
8618
8619         * bus/policy.c (bus_client_policy_check_can_send): add
8620         requested_reply argument and use it
8621
8622         * bus/bus.c (bus_context_check_security_policy): pass through
8623         requested_reply status to message send check
8624
8625         * bus/system.conf.in: adapt to requested_reply change
8626         
8627 2004-05-28  Havoc Pennington  <hp@redhat.com>
8628
8629         * test/glib/test-service-glib.c (main): remove unused variable
8630
8631         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8632
8633         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8634         from the enum, no longer in use.
8635
8636         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8637         works right.
8638
8639         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8640         whether error_name passed in is a valid error name.
8641
8642 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8643
8644         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8645         OBJECT_PATH and OBJECT_PATH_ARRAY
8646
8647 2004-05-28  Seth Nickell  <seth@gnome.org>
8648
8649         * python/examples/Makefile.am:
8650
8651         Forget to add Makefile.am. Do not pass go.
8652
8653 2004-05-28  Michael Meeks  <michael@ximian.com>
8654
8655         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8656         fix no int64 case.
8657
8658         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8659
8660         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8661         (_dbus_message_iter_get_basic_type_array): impl.
8662         drastically simplify ~all relevant _get methods to use these.
8663         (_dbus_message_iter_append_basic_array),
8664         (dbus_message_iter_append_basic): impl
8665         drastically simplify ~all relevant _append methods to use these.
8666
8667         * dbus/dbus-message-builder.c (parse_basic_type) 
8668         (parse_basic_array, lookup_basic_type): impl.
8669         (_dbus_message_data_load): prune scads of duplicate /
8670         cut & paste coding.
8671
8672         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8673         (_dbus_demarshal_basic_type): implement,
8674         (demarshal_and_validate_len/arg): beef up debug.
8675         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8676
8677 2004-05-27  Seth Nickell  <seth@gnome.org>
8678
8679         * configure.in:
8680         * python/Makefile.am:
8681
8682         Include the example python apps in the tarball.
8683         
8684         * python/examples/list-system-services.py
8685
8686         Add a python new example that fetches the list of services
8687         from the system bus.
8688         
8689 2004-05-27  Seth Nickell  <seth@gnome.org>
8690
8691         * python/dbus.py:
8692         * python/dbus_bindings.pyx.in:
8693
8694         Fix failure to notify that a signal was not handled,
8695         resulted in hung functions.
8696         
8697 2004-05-25  Colin Walters  <walters@redhat.com>
8698
8699         * tools/dbus-monitor.c (main): Monitor all types of messages.
8700
8701 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8702
8703         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8704         which unregisters the object path and disposes the handler.
8705
8706 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8707  
8708         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8709          
8710         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8711         operands to && so we call dbus_message_iter_next () for the last
8712         argument also.
8713
8714 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8715
8716         * dbus/dbus-object-tree.c
8717         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8718         children even if the requested path isn't registered.
8719         (object_tree_test_iteration): test object_tree_list_registered.
8720
8721         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8722         it to 0.
8723         
8724 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8725
8726         * doc/TODO: Remove resolved items.
8727
8728         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8729         field.
8730         
8731         * bus/connection.c (bus_connections_expect_reply): Enforce the
8732         per-connection limit on pending replies.
8733         
8734         Patch from Jon Trowbridge <trow@ximian.com>:
8735  
8736         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8737         up a watch that triggers a config reload when one end of the pipe
8738         becomes readable.
8739         (signal_handler): Instead of doing the config reload in our SIGHUP
8740         handler, just write to the reload pipe and let the associated
8741         watch handle the reload when control returns to the main loop.
8742  
8743         * bus/driver.c (bus_driver_handle_reload_config): Added.
8744         Implements a ReloadConfig method for requesting a configuration
8745         file reload via the bus driver.
8746  
8747 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8748
8749         * HACKING: Updated release instructions concerning the wiki page.
8750
8751 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8752
8753         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8754         filter against auth->allowed_mechs; we only add allowed mechs in
8755         record_mechanisms().
8756  
8757         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8758         ALLOWED_MECHS to auth-script format so we can set the list of
8759         allowed mechanisms.
8760  
8761         * data/auth/client-out-of-mechanisms.auth-script: New test to
8762         check client disconnects when it is out of mechanisms to try.
8763  
8764         * dbus/dbus-auth.c (process_command): Remove check for lines
8765         longer that 1 MB; we only buffer up maximum 16 kB.
8766  
8767         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8768         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8769         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8770         assume there might be unused bytes.
8771  
8772         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8773         client-out-of-mechs, it is handled in process_reject(). Move check
8774         for max failures to send_rejected(), as it's a server-only thing.
8775
8776         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8777         send_auth(), send_data(), send_rejected(), send_error(),
8778         send_ok(), send_begin() and send_cancel().
8779
8780 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8781
8782         Remove base64 encoding, replace with hex encoding. Original patch
8783         from trow@ximian.com, added error handling.
8784
8785         * dbus/dbus-string.c (_dbus_string_base64_encode)
8786         (_dbus_string_base64_decode): Remove.
8787         (_dbus_string_hex_decode): Add end_return argument so we can
8788         distinguish between OOM and invalid hex encoding.
8789         (_dbus_string_test): Remove base64 tests and add test case for
8790         invalid hex.
8791
8792         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8793         Replace base64 with hex.
8794
8795         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8796         for invalid hex encoded data in auth protocol.
8797
8798 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8799
8800         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8801         leak.
8802
8803 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8804
8805         * mono/dbus-sharp.dll.config.in: Added for GAC
8806         * mono/dbus-sharp.snk: Added for GAC
8807         * mono/Assembly.cs.in: Added for GAC
8808         * mono/Makefile.am: Changes for GAC installation        
8809         * configure.in: Added refs for dbus-sharp.dll.config.in and
8810         Assembly.cs.in. More fixes for mono testing
8811         * mono/example/Makefile.am: Changed var to CSC
8812         * Makefile.am: Changed flag name to DBUS_USE_CSC
8813
8814 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8815
8816         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8817         * mono/doc/*: Added documentation framework
8818         * configure.in: Added monodoc check
8819         * README: Added description of mono configure flags
8820
8821 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8822
8823         * doc/dbus-specification.xml: Added a "Required" column to the 
8824         header fields table and changed the "zero or more" verbage in
8825         the above paragraph to read "The header must contain the required 
8826         named header fields and zero or more of the optional named header 
8827         fields".
8828         * test/data/invalid-messages/*.message: Added the required PATH 
8829         named header field to the tests so that they don't fail on 
8830         'Missing path field'
8831
8832 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8833
8834         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8835         the stack by implicitly defining variable and parameter types and
8836         removing the hack of defining C pointers as python objects and later
8837         casting them.
8838
8839 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8840
8841         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8842
8843 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8844
8845         * mono/DBusType/Dict.cs: Handle empty dicts
8846         * mono/DBusType/Array.cs: Handle empty arrays
8847         * mono/Arguments.cs: Handle empty arguments
8848
8849 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8850
8851         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8852         field
8853
8854 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8855
8856         * test/data/valid-messages/standard-*.message: Update message
8857         test scripts to new header field names.
8858
8859 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8860
8861         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8862         overflow to times_we_did_each_thing array which would chop off the
8863         first character of the failure_dir string. Increased the size of
8864         the array to 7 to reflect the number of random mutation functions
8865         we have.
8866
8867 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8868
8869         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8870         unix_server->watch here, it is unreffed in disconnect.
8871         (_dbus_server_new_for_tcp_socket): convert NULL host to
8872         "localhost" here so we don't append NULL to address.
8873         
8874         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8875         various addresses, including tcp with no explicit host.
8876
8877 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8878
8879         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8880         fix incorrect setting of .name_offset in the HeaderField (it was
8881         off by two bytes, positioned right after the name and typecode)
8882
8883         * bus/bus.c (bus_context_new, bus_context_unref): test before
8884         calling dbus_server_free_data_slot and _dbus_user_database_unref
8885         in case of an error.
8886
8887         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8888         by libdbus-gtool.
8889
8890 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8891
8892         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8893         _dbus_poll() instead of select().
8894
8895 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8896
8897         * bus/main.c (signal_handler): Reload the configuration files
8898         on SIGHUP.
8899         (main): Set up our SIGHUP handler.
8900
8901         * bus/bus.c (struct BusContext): Store the config file, user and
8902         fork flag in the BusContext.
8903         (process_config_first_time_only): Added.  Contains the code
8904         (previously in bus_context_new) for setting up the BusContext from
8905         the BusConfigParser that should only be run the first time the
8906         config files are read.
8907         (process_config_every_time): Added.  Contains the code (previously
8908         in bus_context_new) for setting up the BusContext from the
8909         BusConfigParser that should be run every time the config files are
8910         read.
8911         (load_config): Added.  Builds a BusConfigParser from the config
8912         files and passes the resulting structure off to
8913         process_config_first_time_only (assuming this is the first time)
8914         and process_config_every_time.
8915         (bus_context_new): All of the config-related code has been moved
8916         to process_config_first_time_only and process_config_every_time.
8917         Now this function just does the non-config-related initializations
8918         and calls load_config.
8919         (bus_context_reload_config): Added.
8920
8921 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8922
8923         * bus/driver.c (bus_driver_handle_get_service_owner):
8924         implement a GetServiceOwner method.
8925         * doc/dbus-specification.xml: document it.
8926         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8927         
8928         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8929         implement, using the bus GetServiceOwner method.
8930
8931         * test/glib/test-dbus-glib.c:
8932         use dbus_gproxy_new_for_service_owner so that we can receive the
8933         signal. 
8934
8935 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8936
8937         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8938         dbus/dbus-message.c, dbus/dbus-protocol.h
8939         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8940
8941         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8942         dbus/dbus-message.c, dbus/dbus-protocol.h
8943         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8944
8945         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8946         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8947         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8948
8949         * doc/dbus-specification.xml (Header Fields Table):
8950         s/SERVICE/DESTINATION
8951         s/SENDER_SERVICE/SENDER
8952
8953
8954 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8955
8956         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8957         a few seconds.
8958
8959 2004-04-13  Michael Meeks  <michael@ximian.com>
8960
8961         * glib/dbus-gobject.c (handle_introspect): split out
8962         (introspect_properties): this.
8963         (handle_introspect): implement this.
8964
8965         * test/glib/Makefile.am: use the absolute path so the bus
8966         daemon's chdir ("/") doesn't kill us dead.
8967
8968         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8969
8970 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8971
8972         * bus/config-parser.c (struct BusConfigParser): Added
8973         included_files field.
8974         (seen_include): Added.  Checks whether or not a file has already
8975         been included by any parent BusConfigParser.
8976         (bus_config_parser_new): Copy the parent's included_files.
8977         (include_file): Track which files have been included, and fail on
8978         circular inclusions.
8979         (process_test_valid_subdir): Changed printf to report if we are
8980         testing valid or invalid conf files.
8981         (all_are_equiv): Changed printf to be a bit clearer about
8982         what we are actually doing.
8983         (bus_config_parser_test): Test invalid configuration files.
8984
8985 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8986
8987         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8988         argument.  If non-null, the newly-constructed BusConfigParser will
8989         be initialized with the parent's BusLimits instead of the default
8990         values.
8991         (include_file): When including a config file, pass in
8992         the current parser as the parent and then copy the BusLimits
8993         from the included BusConfigParser pack to the current parser.
8994         (process_test_valid_subdir): Renamed from process_test_subdir.
8995         (process_test_equiv_subdir): Added.  Walks through a directory,
8996         descending into each subdirectory and loading the config files
8997         it finds there.  If any subdirectory contains two config files
8998         that don't produce identical BusConfigParser structs, fail.
8999         For now, the BusConfigParser's BusPolicies are not compared.
9000         (bus_config_parser_test): Call both process_test_valid_subdir and
9001         process_test_equiv_subdir.
9002
9003         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9004         argument and pass it along to the call to bus_config_parser_new.
9005         Also made a few small changes to allow this code to compile.
9006
9007         * bus/config-loader-expat.c (bus_config_load): Take a parent
9008         argument and pass it along to the call to bus_config_parser_new.
9009
9010         * bus/bus.c (bus_context_new): Load the config file
9011         with a NULL parent argument.
9012
9013 2004-03-29  Michael Meeks  <michael@ximian.com>
9014
9015         * glib/dbus-gobject.c (introspect_properties): split
9016         out, fix mangled 'while' flow control.
9017         (introspect_signals): implement.
9018         (handle_introspect): update.
9019
9020 2004-03-29  Michael Meeks  <michael@ximian.com>
9021
9022         * glib/dbus-gobject.c (set_object_property): split out / 
9023         re-work, use the property type, and not the message type(!)
9024         (get_object_property): ditto.
9025
9026         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9027         (dbus_gvalue_marshal): make this code re-usable, needed
9028         for signals too, also on both proxy and server side.
9029         Re-write for more efficiency / readability.
9030
9031 2004-03-29  Michael Meeks  <michael@ximian.com>
9032
9033         * dbus/dbus-message.c
9034         (dbus_message_new_error_printf): impl.
9035
9036         * dbus/dbus-connection.c
9037         (dbus_connection_unregister_object_path): fix warning.
9038
9039         * configure.in: fix no-mono-installed situation.
9040
9041 2004-03-27  Havoc Pennington  <hp@redhat.com>
9042
9043         Patch from Timo Teräs:
9044         
9045         * tools/dbus-send.c (main): if --print-reply, assume type is
9046         method call; support boolean type args
9047         
9048         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9049         bunch of memleak and logic bugs
9050         
9051 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9052
9053         * mono/Arguments.cs:
9054         * mono/Introspector.cs:
9055         * mono/Handler.cs:
9056         * mono/InterfaceProxy.cs:
9057         * mono/Message.cs
9058         * mono/ProxyBuilder.cs:
9059         * mono/Service.cs:
9060         Added InterfaceProxy class to avoid building proxies for every
9061         object.
9062
9063         * dbus-message.h:
9064         * dbus-message.c (dbus_message_append_args_valist)
9065         (dbus_message_iter_get_object_path)
9066         (dbus_message_iter_get_object_path_array)
9067         (dbus_message_iter_append_object_path)
9068         (dbus_message_iter_append_object_path_array):
9069         Added object_path iter functions to handle OBJECT_PATH arguments
9070         
9071 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9072
9073         First checkin of mono bindings.
9074         * configure.in:
9075         * Makefile.am:
9076         Build stuff for the bindings
9077         * dbus-sharp.pc.in: Added for pkgconfig
9078         
9079 2004-03-21  Havoc Pennington  <hp@redhat.com>
9080
9081         * test/test-service.c (main): remove debug spew
9082
9083 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9084
9085         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9086         arrays
9087
9088         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9089         (dbus_message_iter_init_array_iterator)
9090         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9091         indicate whether the iterator is empty
9092
9093         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9094         warnings
9095
9096 2004-03-19  Havoc Pennington  <hp@redhat.com>
9097
9098         * NEWS: 0.21 updates
9099
9100         * configure.in: 0.21
9101
9102         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9103         
9104         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9105         you don't need pyrex to make dist
9106
9107         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9108         sources; run moc
9109         
9110 2004-03-18  Richard Hult  <richard@imendio.com>
9111
9112         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9113         (dbus_message_set_auto_activation): Add doxygen docs.
9114
9115 2004-03-16  Richard Hult  <richard@imendio.com>
9116
9117         * bus/activation.c: (bus_activation_service_created),
9118         (bus_activation_send_pending_auto_activation_messages),
9119         (bus_activation_activate_service):
9120         * bus/activation.h:
9121         * bus/dispatch.c: (bus_dispatch),
9122         (check_nonexistent_service_auto_activation),
9123         (check_service_auto_activated),
9124         (check_segfault_service_auto_activation),
9125         (check_existent_service_auto_activation), (bus_dispatch_test):
9126         * bus/driver.c: (bus_driver_handle_activate_service):
9127         * bus/services.c: (bus_registry_acquire_service):
9128         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9129         (dbus_message_get_auto_activation):
9130         * dbus/dbus-message.h:
9131         * dbus/dbus-protocol.h: Implement auto-activation.
9132         
9133         * doc/dbus-specification.xml: Add auto-activation to the spec.
9134
9135 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9136
9137         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9138         fix a bug with CUSTOM types.
9139
9140         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9141         a unit test for this bug (used to fail).
9142
9143 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9144
9145         * bus/activation.c:
9146         (babysitter_watch_callback): notify all pending activations waiting for
9147           the same exec that the activation failed.
9148         (bus_activation_activate_service): shortcut the activation if we 
9149           already waiting for the same executable to start up.
9150
9151 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9152
9153         * bus/activation.c: 
9154         - Added service file reloading. 
9155           Each service files directory is kept in an hash table in 
9156           BusActivation and each BusActivationEntry knows what .service-file it
9157           was read from. So when you try to activate a service the bus will 
9158           check if it's been updated, removed or if new .service-files has 
9159           been installed.
9160         - Test code at the bottom for the service file reloading.
9161         * bus/test-main.c: (main):
9162         * bus/test.h:
9163         - added service reloading test.
9164         * dbus/dbus-sysdeps.c: 
9165         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9166
9167 2004-03-08  Michael Meeks  <michael@ximian.com>
9168
9169         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9170         bail immediately if disconnected, to avoid busy loop.
9171
9172         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9173         cleanup cut/paste/inefficiency.
9174
9175 2004-03-01  David Zeuthen  <david@fubar.dk>
9176
9177         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9178         bug where args were used twice. This bug resulted in a segfault
9179         on a Debian/PPC system when starting the messagebus daemon. Include
9180         dbus-sysdeps.h for DBUS_VA_COPY
9181
9182         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9183
9184         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9185         appropriate va_copy implementation. From GLib
9186         
9187 2004-02-24  Joe Shaw  <joe@ximian.com>
9188
9189         * bus/services.c (bus_registry_acquire_service): We need to pass
9190         in the service name to dbus_set_error() to prevent a crash.
9191
9192 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9193
9194         * AUTHORS: Reveal my True identity.
9195
9196 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9197
9198         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9199         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9200
9201 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9202
9203         * doc/TODO: Added not about better error check of configuration files.
9204
9205 2003-12-02  Richard Hult  <richard@imendio.com>
9206
9207         * Update AFL version to 2.0 throughout the source files to reflect
9208         the update that was done a while ago.
9209
9210 2003-12-02  Richard Hult  <richard@imendio.com>
9211
9212         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9213         wrote_dict_key to FALSE on the iter that the dict is appended to,
9214         just like when appending other types. Fixes a bug where a dict
9215         couldn't be put inside a dict.
9216         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9217         (message_iter_test, _dbus_message_test): Add test case for dict
9218         inside dict.
9219
9220 2003-12-01  David Zeuthen  <david@fubar.dk>
9221
9222         * python/dbus.py: Add the actual message when calling the reciever
9223         of a signal such that parameters can be inspected. Add the method
9224         remove_signal_receiver
9225         
9226 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9227
9228         * bus/*.[ch]:
9229         * dbus/*.[ch]:
9230         * glib/*.[ch]: Made ref functions return the pointer
9231
9232 2003-11-25  Zack Rusin  <zack@kde.org>
9233
9234         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9235
9236         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9237         wrappers,
9238
9239         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9240         the Integrator and to better fit with the server,
9241
9242 2003-11-24  Zack Rusin  <zack@kde.org>
9243
9244         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9245         the integrator handles it now
9246
9247         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9248         since QTimer wasn't really meant to be used the way DBusTimeout is
9249
9250 2003-11-24  Zack Rusin  <zack@kde.org>
9251
9252         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9253         Integrator class which integrates D-BUS with the Qt event loop,
9254
9255         * qt/connection.h, qt/connection.cpp: Move all the code which
9256         was dealing with D-BUS integration to the Integrator class,
9257         and start using Integrator,
9258
9259 2003-11-23  Zack Rusin  <zack@kde.org>
9260
9261         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9262         wrapper
9263
9264         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9265         switching namespaces to DBusQt, reworking the class,
9266
9267         * Makefile.cvs: switching dependencies so that it matches KDE 
9268         schematics,
9269         
9270         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9271         the library
9272
9273 2003-11-19  Havoc Pennington  <hp@redhat.com>
9274
9275         * NEWS: update
9276
9277         * configure.in: bump version to 0.20
9278
9279         * configure.in (have_qt): add yet another place to look for qt
9280         (someone hand trolltech a .pc file...)
9281
9282 2003-11-01  Havoc Pennington  <hp@redhat.com>
9283
9284         * doc/dbus-specification.xml: add state machine docs on the auth
9285         protocol; just a first draft, I'm sure it's wrong.      
9286
9287 2003-10-28  David Zeuthen  <david@fubar.dk>
9288
9289         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9290         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9291         
9292 2003-10-28  Havoc Pennington  <hp@redhat.com>
9293
9294         * dbus/dbus-message.c (get_next_field): delete unused function
9295
9296 2003-10-28  Havoc Pennington  <hp@redhat.com>
9297
9298         * bus/expirelist.c (do_expiration_with_current_time): detect
9299         failure of the expire_func due to OOM
9300
9301         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9302
9303         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9304         NoReply error that's now created by the bus when the service exits
9305
9306 2003-10-28  Havoc Pennington  <hp@redhat.com>
9307
9308         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9309         tests for set_path, set_interface, set_member, etc.
9310
9311         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9312
9313         * dbus/dbus-message.c (set_string_field): always just delete and
9314         re-append the field; accept NULL for deletion
9315         (re_align_fields_recurse): reimplement
9316         
9317 2003-10-26  Havoc Pennington  <hp@redhat.com>
9318
9319         * dbus/dbus-connection.c: fix docs to properly describe the
9320         disconnected message
9321         (_dbus_connection_notify_disconnected): remove this function; 
9322         we can't synchronously add the disconnected message, we have to 
9323         do it after we've queued any remaining real messages
9324         (_dbus_connection_get_dispatch_status_unlocked): queue the
9325         disconnect message only if the transport has finished queueing all
9326         its real messages and is disconnected.
9327         (dbus_connection_disconnect): update the dispatch status here
9328
9329 2003-10-22  Havoc Pennington  <hp@redhat.com>
9330
9331         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9332
9333         * bus/connection.c (bus_transaction_send_from_driver): set the
9334         destination to the connection's base service
9335
9336 2003-10-20  Havoc Pennington  <hp@redhat.com>
9337
9338         hmm, make check is currently not passing.
9339         
9340         * doc/dbus-specification.xml: add requirement that custom type
9341         names follow the same rules as interface names.
9342
9343         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9344         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9345         'map'
9346
9347         * doc/dbus-specification.xml: update type codes to match
9348         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9349         CUSTOM. Add type OBJECT_PATH to the spec.
9350
9351 2003-10-17  Havoc Pennington  <hp@redhat.com>
9352
9353         * bus/driver.c (create_unique_client_name): use "." as separator
9354         in base service names instead of '-'
9355
9356         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9357         byte at the end of the string
9358
9359         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9360         optimization macros since string validation seems to be a slow
9361         point.
9362         
9363         * doc/dbus-specification.xml: restrict valid
9364         service/interface/member/error names. Add test suite code for the
9365         name validation.
9366
9367         * dbus/dbus-string.c: limit service/interface/member/error names 
9368         to [0-9][A-Z][a-z]_
9369
9370         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9371         format arg to verbose spew
9372
9373         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9374         memory, return instead of g_error
9375
9376         * test/test-service.c (path_message_func): support emitting a
9377         signal on request
9378
9379         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9380         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9381         assuming the activation bus was the session bus so that services
9382         started manually will still register.
9383         (init_connections_unlocked): fix so that in OOM situation we get
9384         the same semantics when retrying the function
9385         
9386         * test/test-service.c (main): change to use path registration, to
9387         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9388         than DBUS_BUS_SESSION
9389
9390 2003-10-16  Havoc Pennington  <hp@redhat.com>
9391
9392         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9393
9394         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9395         coverage of the tests
9396         (coverage-report.txt): don't move the .da and .bbg files around
9397
9398 2003-10-16  Havoc Pennington  <hp@redhat.com>
9399
9400         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9401         to put there
9402
9403 2003-10-16  Havoc Pennington  <hp@redhat.com>
9404
9405         * bus/connection.c (bus_pending_reply_expired): either cancel or
9406         execute, not both
9407         (bus_connections_check_reply): use unlink, not remove_link, as we
9408         don't want to free the link; fixes double free mess
9409
9410         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9411         where no reply was received
9412
9413         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9414         fix a refcount leak
9415
9416         * bus/signals.c (match_rule_matches): add special cases for the
9417         bus driver, so you can match on sender/destination for it.
9418
9419         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9420         DBUS_PRINT_BACKTRACE is set
9421
9422         * dbus/dbus-internals.c: add pid to assertion failure messages
9423
9424         * dbus/dbus-connection.c: add message type code to the debug spew
9425
9426         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9427         sender=foo not service=foo
9428
9429         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9430         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9431         DBUS_ACTIVATION_ADDRESS instead
9432
9433         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9434         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9435
9436         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9437         context struct
9438
9439         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9440         (dbus_message_iter_get_object_path_array): new function (half
9441         finished, disabled for the moment)
9442         
9443         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9444         DBUS_MESSAGE_TYPE_ERROR
9445
9446         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9447         avoid redirecting stderr to /dev/null
9448         (babysit): close stdin if not doing the "exit_with_session" thing
9449
9450         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9451         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9452         stdout/stdin, so things don't get confused
9453         
9454         * bus/system.conf.in: fix to allow replies, I modified .conf
9455         instead of .conf.in again.
9456
9457 2003-10-14  David Zeuthen  <david@fubar.dk>
9458
9459         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9460         argtype to arg_type when raising unknown arg type exception.
9461         Changed type list to reflect the changes in dbus-protocol.h so 
9462         the bindings actually work.
9463
9464 2003-10-14  Havoc Pennington  <hp@redhat.com>
9465
9466         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9467         to have a bug keeping it from outputting the .da files sometimes
9468         (string_get_string): don't append garbage nul bytes to the string.
9469
9470 2003-10-15  Seth Nickell  <seth@gnome.org>
9471
9472         * python/Makefile.am:
9473
9474         Include dbus_h_wrapper.h in the dist tarball.
9475
9476 2003-10-14  Havoc Pennington  <hp@redhat.com>
9477
9478         * bus/bus.c (bus_context_check_security_policy): revamp this to
9479         work more sanely with new policy-based requested reply setup
9480
9481         * bus/connection.c (bus_transaction_send_from_driver): set bus
9482         driver messages as no reply
9483
9484         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9485         requested_reply attribute on allow/deny rules
9486
9487         * bus/system.conf: add <allow requested_reply="true"/>
9488
9489         * bus/driver.c (bus_driver_handle_message): fix check for replies
9490         sent to the bus driver, which was backward. How did this ever work
9491         at all though? I think I'm missing something.
9492
9493         * dbus/dbus-message.c (decode_header_data): require error and
9494         method return messages to have a reply serial field to be valid
9495         (_dbus_message_loader_queue_messages): break up this function;
9496         validate that reply serial and plain serial are nonzero; 
9497         clean up the OOM/error handling.
9498         (get_uint_field): don't return -1 from this
9499         (dbus_message_create_header): fix signed/unsigned bug
9500
9501         * bus/connection.c (bus_connections_expect_reply): save serial of
9502         the incoming message, not reply serial
9503
9504 2003-10-14  Havoc Pennington  <hp@redhat.com>
9505
9506         * bus/connection.c: implement pending reply tracking using
9507         BusExpireList
9508
9509         * bus/bus.c (bus_context_check_security_policy): verify that a
9510         reply is pending in order to allow a reply to be sent. Deny 
9511         messages of unknown type.
9512
9513         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9514
9515         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9516         (bus_context_get_reply_timeout): new
9517
9518 2003-10-13  Seth Nickell  <seth@gnome.org>
9519
9520         * python/Makefile.am:
9521
9522         Pass "make distcheck": remove a couple files from DIST_FILES
9523         that weren't included in the final version.
9524
9525 2003-10-12  Havoc Pennington  <hp@pobox.com>
9526
9527         Added test code that 1) starts an actual bus daemon and 2) uses
9528         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9529         more testing possible, but this is the basic framework.
9530         
9531         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9532         empty proxy lists from the proxy list hash
9533
9534         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9535         couple of return_if_fail checks
9536
9537         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9538         to allocate, so everything is cleared to NULL as it should be.
9539
9540         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9541         source as data to dbus_connection_set_timeout_functions() as the 
9542         timeout functions expected
9543
9544         * test/glib/run-test.sh: add a little script to start up a message
9545         bus and run tests using it
9546
9547         * tools/dbus-launch.1: updates
9548
9549         * tools/dbus-launch.c (main): add --config-file option
9550
9551         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9552         that could never be reached.
9553
9554         * dbus/dbus-message.c (dbus_message_new_method_return) 
9555         (dbus_message_new_error, dbus_message_new_signal): set the
9556         no-reply-expected flag on all these. Redundant, but may
9557         as well be consistent.
9558
9559 2003-10-11  Havoc Pennington  <hp@pobox.com>
9560
9561         * test/decode-gcov.c (function_solve_graph): make broken block
9562         graph a nonfatal error since it seems to be broken. Need to debug
9563         this.
9564
9565         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9566         can't just check type > INVALID < LAST anymore
9567
9568         * dbus/dbus-message.c (dbus_message_get_signature): new function
9569         (dbus_message_has_signature): new function
9570         (struct DBusMessage): add signature field (right now it isn't sent
9571         over the wire, just generated on the fly)
9572         (dbus_message_copy): copy the signature, and init strings to
9573         proper length to avoid some reallocs
9574         (dbus_message_iter_init_array_iterator): return void, since it
9575         can't fail
9576         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9577         (_dbus_message_loader_queue_messages): add silly temporary hack to
9578         fill in message->signature on load
9579
9580         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9581         characters, so they are relatively human-readable.
9582
9583 2003-10-11  Havoc Pennington  <hp@pobox.com>
9584
9585         * dbus/dbus-message.c (_dbus_message_test): add more test
9586         coverage, but #if 0 for now since they uncover a bug 
9587         not fixed yet; I think in re_align_field_recurse()
9588         (re_align_field_recurse): add FIXME about broken assertion
9589
9590         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9591
9592         * bus/connection.c: share a couple code bits with expirelist.c
9593
9594         * bus/expirelist.h, bus/expirelist.c: implement a generic
9595         expire-items-after-N-seconds facility, was going to share between
9596         expiring connections and replies, decided not to use for expiring
9597         connections for now.
9598
9599         * COPYING: include AFL 2.0 (still need to change all the file headers)
9600
9601 2003-10-09  Havoc Pennington  <hp@redhat.com>
9602
9603         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9604         gcc 3.3. Not that we do anything about it yet.
9605
9606         * bus/signals.c (bus_match_rule_parse): impose max length on the
9607         match rule text
9608
9609         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9610
9611 2003-10-09  Havoc Pennington  <hp@redhat.com>
9612
9613         Make matching rules theoretically work (add parser).
9614         
9615         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9616         the case where destination is explicitly specified as bus driver
9617         and someone else is eavesdropping.
9618         
9619         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9620         definition of eavesdropping and assertion
9621
9622         * tools/dbus-send.c (main): use dbus_message_type_from_string
9623
9624         * bus/signals.c (bus_match_rule_parse): implement
9625
9626         * dbus/dbus-message.c (dbus_message_type_from_string): new
9627
9628         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9629
9630 2003-10-02  Havoc Pennington  <hp@pobox.com>
9631
9632         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9633         dbus_gproxy_oneway_call
9634
9635         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9636         (dbus_server_setup_with_g_main): fix to allow calling them more
9637         than once on the same args
9638         (dbus_bus_get_with_g_main): new function
9639
9640 2003-10-02  Havoc Pennington  <hp@redhat.com>
9641
9642         * doc/dbus-tutorial.xml: write some stuff
9643
9644 2003-09-29  Havoc Pennington  <hp@pobox.com>
9645
9646         * configure.in: split checks for Doxygen from XML docs, check for
9647         xmlto
9648
9649         * doc/Makefile.am: XML-ify all the docs, and add a blank
9650         dbus-tutorial.xml
9651
9652 2003-09-29  Havoc Pennington  <hp@pobox.com>
9653
9654         * Merge dbus-object-names branch. To see the entire patch 
9655         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9656         it's huuuuge though.
9657         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9658         
9659 2003-09-28  Havoc Pennington  <hp@pobox.com>
9660
9661         * HACKING: update to reflect new server
9662
9663 2003-09-26  Seth Nickell  <seth@gnome.org>
9664
9665         * python/dbus.py:
9666         * python/examples/example-signals.py:
9667
9668         Start implementing some notions of signals. The API
9669         is really terrible, but they sort of work (with the
9670         exception of being able to filter by service, and to
9671         transmit signals *as* a particular service). Need to
9672         figure out how to make messages come from the service
9673         we registered :-(
9674         
9675         * python/dbus_bindings.pyx.in:
9676
9677         Removed duplicate message_handler callbacks.
9678         
9679 2003-09-25  Havoc Pennington  <hp@redhat.com>
9680
9681         * bus/session.conf.in: fix my mess
9682
9683 2003-09-25  Havoc Pennington  <hp@pobox.com>
9684
9685         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9686
9687 2003-09-25  Seth Nickell  <seth@gnome.org>
9688
9689         * python/examples/example-service.py:
9690
9691         Johan notices complete wrong code in example-service, but
9692         completely wrong in a way that works exactly the same (!).
9693         Johan is confused, how could this possibly work? Example
9694         code fails to serve purpose of making things clear.
9695         Seth fixes.
9696
9697 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9698
9699         * doc/dbus-specification.sgml: don't require header fields
9700         to be 4-byte aligned and specify that fields should be
9701         distinguished from padding by the fact that zero is not
9702         a valid field name.
9703         
9704         * doc/TODO: remove re-alignment item and add item to doc
9705         the OBJECT_PATH type.
9706         
9707         * dbus/dbus-message.c:
9708         (HeaderField): rename the original member to value_offset
9709         and introduce a name_offset member to keep track of where
9710         the field actually begins.
9711         (adjust_field_offsets): remove.
9712         (append_int_field), (append_uint_field),
9713         (append_string_field): don't align the start of the header
9714         field to a 4-byte boundary.
9715         (get_next_field): impl finding the next marhsalled field
9716         after a given field.
9717         (re_align_field_recurse): impl re-aligning a number of
9718         already marshalled fields.
9719         (delete_field): impl deleting a field of any type and
9720         re-aligning any following fields.
9721         (delete_int_or_uint_field), (delete_string_field): remove.
9722         (set_int_field), (set_uint_field): no need to re-check
9723         that we have the correct type for the field.
9724         (set_string_field): ditto and impl re-aligning any
9725         following fields.
9726         (decode_header_data): update to take into account that
9727         the fields aren't 4-byte aligned any more and the new
9728         way to distinguish padding from header fields. Also,
9729         don't exit when there is too much header padding.
9730         (process_test_subdir): print the directory.
9731         (_dbus_message_test): add test to make sure a following
9732         field is re-aligned correctly after field deletion.
9733         
9734         * dbus/dbus-string.[ch]:
9735         (_dbus_string_insert_bytes): rename from insert_byte and
9736         allow the insert of multiple bytes.
9737         (_dbus_string_test): test inserting multiple bytes.
9738
9739         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9740         warning note to docs about having to re-align any
9741         marshalled values following the string.
9742         
9743         * dbus/dbus-message-builder.c:
9744         (append_string_field), (_dbus_message_data_load):
9745         don't align the header field.
9746         
9747         * dbus/dbus-auth.c: (process_test_subdir): print the
9748         directory.
9749         
9750         * test/break-loader.c: (randomly_add_one_byte): upd. for
9751         insert_byte change.
9752         
9753         * test/data/invalid-messages/bad-header-field-alignment.message:
9754         new test case.
9755         
9756         * test/data/valid-messages/unknown-header-field.message: shove
9757         a dict in the unknown field.
9758
9759 2003-09-25  Seth Nickell  <seth@gnome.org>
9760
9761         * python/dbus.py:
9762         * python/dbus_bindings.pyx.in:
9763
9764         Handle return values.
9765         
9766         * python/examples/example-client.py:
9767         * python/examples/example-service.py:
9768
9769         Pass back return values from the service to the client.
9770         
9771 2003-09-24  Seth Nickell  <seth@gnome.org>
9772
9773         * python/dbus.py:
9774
9775         Connect Object methods (when you are sharing an object) up... pass
9776         in a list of methods to be shared. Sharing all the methods just
9777         worked out too weird. You can now create nice Services over the
9778         DBus in Python. :-)
9779         
9780         * python/dbus_bindings.pyx.in:
9781
9782         Keep references to user_data tuples passed into C functions so 
9783         Python doesn't garbage collect on us.
9784
9785         Implement MethodReturn and Error subclasses of Message for creating
9786         DBusMessage's of those types.
9787         
9788         * python/examples/example-client.py:
9789         * python/examples/example-service.py:
9790
9791         Simple example code showing both how create DBus services and objects,
9792         and how to use them.
9793
9794 2003-09-23  Havoc Pennington  <hp@pobox.com>
9795
9796         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9797
9798 2003-09-23  Havoc Pennington  <hp@redhat.com>
9799
9800         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9801         (dbus_gproxy_disconnect_signal): implement
9802         (dbus_gproxy_manager_remove_signal_match): implement
9803         (dbus_gproxy_manager_add_signal_match): implement
9804         (dbus_gproxy_oneway_call): implement
9805
9806 2003-09-23  Havoc Pennington  <hp@pobox.com>
9807
9808         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9809         subclass. This means dropping the transparent thread safety of the
9810         proxy; you now need a separate proxy per-thread, or your own
9811         locking on the proxy. Probably right anyway.
9812         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9813
9814 2003-09-22  Havoc Pennington  <hp@redhat.com>
9815
9816         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9817
9818 2003-09-21  Seth Nickell  <seth@gnome.org>
9819
9820         First checkin of the Python bindings.
9821         
9822         * python/.cvsignore:
9823         * python/Makefile.am:
9824         * python/dbus_bindings.pyx.in:
9825         * python/dbus_h_wrapper.h:
9826
9827         Pieces for Pyrex to operate on, building a dbus_bindings.so
9828         python module for low-level access to the DBus APIs.
9829         
9830         * python/dbus.py:
9831
9832         High-level Python module for accessing DBus objects.
9833
9834         * configure.in:
9835         * Makefile.am:
9836
9837         Build stuff for the python bindings.
9838
9839         * acinclude.m4:
9840
9841         Extra macro needed for finding the Python C header files.
9842
9843 2003-09-21  Havoc Pennington  <hp@pobox.com>
9844
9845         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9846         implementing the proxy manager, didn't get very far.
9847
9848         * dbus/dbus-bus.c (dbus_bus_add_match): new
9849         (dbus_bus_remove_match): new
9850
9851         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9852         path_name argument; adjust the other not-yet-implemented 
9853         gproxy constructors to be what I think they should be.
9854
9855 2003-09-21  Havoc Pennington  <hp@pobox.com>
9856
9857         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9858         by default for message bus connections.
9859
9860         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9861         exit_on_disconnect flag is set and we process the disconnected
9862         signal.
9863         (dbus_connection_set_exit_on_disconnect): new function
9864
9865 2003-09-21  Havoc Pennington  <hp@pobox.com>
9866
9867         Get matching rules mostly working in the bus; only actually
9868         parsing the rule text remains. However, the client side of
9869         "signal connections" hasn't been started, this patch is only the
9870         bus side.
9871         
9872         * dbus/dispatch.c: fix for the matching rules changes
9873         
9874         * bus/driver.c (bus_driver_handle_remove_match)
9875         (bus_driver_handle_add_match): send an ack reply from these
9876         method calls
9877
9878         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9879         arguments, reported by Seth Nickell
9880
9881         * bus/config-parser.c (append_rule_from_element): support
9882         eavesdrop=true|false attribute on policies so match rules 
9883         can be prevented from snooping on the system bus.
9884
9885         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9886         and "destination" in attribute names; fix some docs bugs; 
9887         add eavesdrop=true|false attribute
9888
9889         * bus/driver.c (bus_driver_handle_add_match)
9890         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9891         messages
9892
9893         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9894         rid of broadcast service concept, signals are just always broadcast
9895
9896         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9897         mostly implement matching rules stuff (currently only exposed as signal
9898         connections)
9899
9900 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9901
9902         * doc/dbus-specification.sgml: Change the header field name
9903         to be an enum and update the rest of the spec to reference
9904         the fields using the conventinal name.
9905
9906         * dbus/dbus-protocol.h: update to reflect the spec.
9907
9908         * doc/TODO: add item to remove the 4 byte alignment requirement.
9909         
9910         * dbus/dbus-message.c: Remove the code to generalise the
9911         header/body length and serial number header fields as named
9912         header fields so we can reference field names using the 
9913         protocol values.
9914         (append_int_field), (append_uint_field), (append_string_field):
9915         Append the field name as a byte rather than four chars.
9916         (delete_int_or_uint_field), (delete_string_field): reflect the
9917         fact that the field name and typecode now occupy 4 bytes instead
9918         of 8.
9919         (decode_string_field), (decode_header_data): update to reflect
9920         protocol changes and move the field specific encoding from
9921         decode_string_field() back into decode_header_data().
9922         
9923         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9924         Add utility to aid debugging.
9925         
9926         * dbus/dbus-message-builder.c:
9927         (append_string_field), (_dbus_message_data_load): Update to
9928         reflect protocol changes; Change the FIELD_NAME directive
9929         to HEADER_FIELD and allow it to take the field's conventional
9930         name rather than the actual value.
9931         
9932         * test/data/*/*.message: Update to use HEADER_FIELD instead
9933         of FIELD_NAME; Always align the header on an 8 byte boundary
9934         *before* updating the header length.
9935
9936 2003-09-15  Havoc Pennington  <hp@pobox.com>
9937
9938         * dbus/dbus-pending-call.c: add the get/set object data
9939         boilerplate as for DBusConnection, etc. Use generic object data
9940         for the notify callback.
9941
9942         * glib/dbus-gparser.c (parse_node): parse child nodes
9943
9944         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9945         
9946         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9947         contain functions shared between the convenience lib and the
9948         installed lib
9949
9950         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9951         -export-symbols-regex to the GLib library
9952
9953         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9954         fix the locking in here, and add a default handler for
9955         Introspect() that just returns sub-nodes.
9956
9957 2003-09-14  Havoc Pennington  <hp@pobox.com>
9958
9959         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9960         rather than gfoo consistent
9961
9962         * glib/dbus-gproxy.h: delete for now, move contents to
9963         dbus-glib.h, because the include files don't work right since we
9964         aren't in the dbus/ subdir.
9965         
9966         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9967         (dbus_gproxy_end_call): finish
9968         (dbus_gproxy_begin_call): finish
9969
9970         * glib/dbus-gmain.c (dbus_set_g_error): new
9971
9972         * glib/dbus-gobject.c (handle_introspect): include information
9973         about child nodes in the introspection
9974
9975         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9976         function to help in implementation of introspection
9977
9978         * dbus/dbus-object-tree.c
9979         (_dbus_object_tree_list_registered_and_unlock): new function
9980
9981 2003-09-12  Havoc Pennington  <hp@pobox.com>
9982
9983         * glib/dbus-gidl.h: add common base class for all the foo_info
9984         types
9985
9986         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9987         similar to kdcop
9988
9989         * test/Makefile.am: try test srcdir -ef . in addition to test
9990         srcdir = ., one of them should work (yeah lame)
9991         
9992         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9993         library
9994         
9995         * glib/dbus-gparser.h: make description_load routines return
9996         NodeInfo* not Parser*
9997
9998         * Makefile.am (SUBDIRS): build test dir after all library dirs
9999
10000         * configure.in: add GTK+ detection
10001
10002 2003-09-07  Havoc Pennington  <hp@pobox.com>
10003
10004         * Make Doxygen contented.
10005
10006 2003-09-07  Havoc Pennington  <hp@pobox.com>
10007
10008         * doc/dbus-specification.sgml: more updates
10009
10010 2003-09-06  Havoc Pennington  <hp@pobox.com>
10011
10012         * doc/dbus-specification.sgml: partial updates
10013
10014         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10015         zillionth time; hopefully I edited the right file this time.
10016
10017         * bus/config-parser.c (append_rule_from_element): support
10018         send_type, send_path, receive_type, receive_path
10019
10020         * bus/policy.c: add message type and path to the list of things
10021         that can be "firewalled"
10022
10023 2003-09-06  Havoc Pennington  <hp@pobox.com>
10024
10025         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10026         (dbus_connection_register_object_path): make this not handle
10027         messages to paths below the given path
10028
10029 2003-09-03  Havoc Pennington  <hp@pobox.com>
10030
10031         * test/glib/Makefile.am: add this with random glib-linked test
10032         programs
10033
10034         * glib/Makefile.am: remove the random test programs from here,
10035         leave only the unit tests
10036
10037         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10038         uscore/javacaps conversion, and fix     
10039         (get_object_property, set_object_property): change to .NET
10040         convention for mapping props to methods, set_FooBar/get_FooBar, 
10041         since one language has such a convention we may as well copy it. 
10042         Plus real methods in either getFooBar or get_foo_bar style won't 
10043         collide with this convention.
10044
10045 2003-09-01  Havoc Pennington  <hp@pobox.com>
10046
10047         * glib/dbus-gparser.c: implement
10048
10049         * glib/dbus-gobject.c: start implementing skeletons support
10050
10051         * configure.in: when disabling checks/assert, also define
10052         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10053
10054 2003-09-01  Havoc Pennington  <hp@pobox.com>
10055
10056         * glib/Makefile.am: rearrange a bunch of files and get "make
10057         check" framework set up
10058
10059 2003-08-31  Havoc Pennington  <hp@pobox.com>
10060
10061         * fix build with --disable-tests
10062
10063 2003-08-30  Havoc Pennington  <hp@pobox.com>
10064
10065         * dbus/dbus-connection.c: purge DBusMessageHandler
10066
10067         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10068         use callbacks everywhere
10069
10070 2003-08-30  Havoc Pennington  <hp@pobox.com>
10071
10072         * test/data/valid-config-files/system.d/test.conf: change to 
10073         root for the user so warnings don't get printed
10074
10075         * dbus/dbus-message.c: add dbus_message_get_path,
10076         dbus_message_set_path
10077         
10078         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10079         dispatching to a path
10080
10081         * dbus/dbus-string.c (_dbus_string_validate_path): add
10082
10083         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10084         (_dbus_marshal_object_path): implement
10085
10086         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10087         to contain the path to the target object
10088         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10089         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10090
10091 2003-08-30  Havoc Pennington  <hp@pobox.com>
10092
10093         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10094
10095 2003-08-29  Havoc Pennington  <hp@pobox.com>
10096
10097         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10098         registered
10099         (struct DBusObjectSubtree): shrink this
10100         a lot, since we may have a lot of them
10101         (_dbus_object_tree_free_all_unlocked): implement
10102         (_dbus_object_tree_dispatch_and_unlock): implement
10103
10104 2003-08-29  Havoc Pennington  <hp@pobox.com>
10105
10106         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10107
10108 2003-08-28  Havoc Pennington  <hp@pobox.com>
10109
10110         purge DBusObjectID
10111         
10112         * dbus/dbus-connection.c: port to no ObjectID, create a
10113         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10114
10115         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10116         everything except UnregisterFunction and MessageFunction
10117         
10118         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10119         add DBUS_TYPE_OBJECT_PATH
10120         
10121         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10122         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10123         path-based object IDs
10124
10125 2003-08-25  Havoc Pennington  <hp@pobox.com>
10126
10127         Just noticed that dbus_message_test is hosed, I wonder when I
10128         broke that. I thought make check was passing earlier...
10129         
10130         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10131         container tree, will replace most of dbus-object-registry
10132
10133         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10134         screwup
10135
10136 2003-08-19  Havoc Pennington  <hp@pobox.com>
10137
10138         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10139         (dbus_message_is_error): fix this function
10140
10141         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10142         match
10143
10144         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10145         reflect clarified man page
10146         (bus_client_policy_check_can_send): ditto
10147         
10148         * bus/session.conf.in: fixup
10149
10150         * bus/system.conf.in: fixup
10151
10152 2003-08-18  Havoc Pennington  <hp@redhat.com>
10153
10154         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10155
10156         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10157         dumb bug created earlier (wrong order of args to
10158         decode_header_data())
10159         
10160         * tools/dbus-send.c: port
10161
10162         * tools/dbus-print-message.c (print_message): port
10163
10164         * test/data/*messages: port all messages over
10165         
10166         * dbus/dbus-message-builder.c: support including 
10167         message type
10168         
10169         * bus/driver.c: port over
10170         
10171         * bus/dispatch.c: port over to new stuff
10172
10173         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10174         rename disconnect signal to "Disconnected"
10175
10176 2003-08-17  Havoc Pennington  <hp@pobox.com>
10177
10178         This doesn't compile yet, but syncing up so I can hack on it from
10179         work. What are branches for if not broken code? ;-)
10180         
10181         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10182         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10183         DBUS_HEADER_FIELD_ERROR_NAME
10184         
10185         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10186         for the interface+member pairs
10187         (string_hash): change to use g_str_hash algorithm
10188         (find_direct_function, find_string_function): refactor these to
10189         share most code.
10190         
10191         * dbus/dbus-message.c: port all of this over to support 
10192         interface/member fields instead of name field
10193
10194         * dbus/dbus-object-registry.c: port over
10195         
10196         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10197         from _dbus_string_validate_name
10198
10199         * bus/dbus-daemon-1.1: change file format for the 
10200         <deny>/<allow> stuff to match new message naming scheme
10201
10202         * bus/policy.c: port over
10203
10204         * bus/config-parser.c: parse new format
10205         
10206 2003-08-16  Havoc Pennington  <hp@pobox.com>
10207
10208         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10209         broken assertion
10210
10211         * glib/dbus-gproxy.c: some hacking
10212
10213 2003-08-15  Havoc Pennington  <hp@redhat.com>
10214
10215         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10216
10217         * dbus/dbus-connection.c
10218         (dbus_connection_send_with_reply_and_block): factor out internals;
10219         change to convert any error replies to DBusError instead of 
10220         returning them as a message
10221
10222 2003-08-15  Havoc Pennington  <hp@pobox.com>
10223
10224         * dbus/dbus-connection.c, 
10225         dbus/dbus-pending-call.c: Finish the pending call stuff
10226
10227 2003-08-14  Havoc Pennington  <hp@redhat.com>
10228
10229         * dbus/dbus-pending-call.c: start on new object that will replace
10230         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10231         replies
10232
10233         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10234         with remote interfaces
10235
10236         * dbus/dbus-gidl.c: do the boring boilerplate in here
10237         
10238 2003-08-12  Havoc Pennington  <hp@pobox.com>
10239
10240         * bus/dispatch.c (bus_dispatch): make this return proper 
10241         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10242
10243         * dbus/dbus-errors.c (dbus_set_error): use
10244         _dbus_string_append_printf_valist
10245
10246         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10247         (_dbus_string_append_printf): new
10248
10249         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10250         UNKNOWN_METHOD
10251
10252         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10253         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10254         message is unhandled.
10255
10256 2003-08-11  Havoc Pennington  <hp@pobox.com>
10257
10258         * bus/test.c (client_disconnect_handler): change to return
10259         HANDLED (would have been REMOVE_MESSAGE)
10260
10261         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10262         HANDLED/NOT_YET_HANDLED instead of
10263         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10264         should be used.
10265
10266 2003-08-10  Havoc Pennington  <hp@pobox.com>
10267
10268         * tools/dbus-send.c (main): add --type argument, for now
10269         supporting only method_call and signal types.
10270
10271         * tools/dbus-print-message.c: print message type
10272
10273         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10274         init connection->objects
10275
10276         * doc/dbus-specification.sgml: fix sgml
10277
10278         * bus/*.c: port over to object-instance API changes
10279
10280         * test/test-service.c: ditto
10281         
10282         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10283         name, we will have to fix up the rest of the code to also handle
10284         this
10285         (dbus_message_new): generic message-creation call
10286         (set_string_field): allow appending name field
10287
10288 2003-08-06  Havoc Pennington  <hp@pobox.com>
10289
10290         * dbus/dbus-object-registry.c: implement signal connection 
10291         and dispatch
10292
10293         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10294
10295         * dbus/dbus-internals.c (_dbus_memdup): new function
10296
10297 2003-08-02  Havoc Pennington  <hp@pobox.com>
10298
10299         * dbus/dbus-message.c (dbus_message_get_no_reply)
10300         (dbus_message_set_no_reply): add these and remove
10301         set_is_error/get_is_error
10302
10303         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10304         remove the ERROR flag, since there's now an ERROR type
10305
10306 2003-08-01  Havoc Pennington  <hp@pobox.com>
10307
10308         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10309         implement
10310
10311         * dbus/dbus-message.c (dbus_message_get_type): new function
10312
10313         * doc/dbus-specification.sgml: add "type" byte to messages
10314
10315 2003-08-01  Havoc Pennington  <hp@pobox.com>
10316
10317         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10318         a message type enum to distinguish kinds of message
10319         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10320         that need not be replied to
10321
10322 2003-08-01  Havoc Pennington  <hp@pobox.com>
10323
10324         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10325         (unpack_8_octets): fix no-64-bit-int bug
10326
10327         * dbus/dbus-object-registry.c (validate_id): validate the 
10328         connection ID bits, not just the instance ID.
10329
10330         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10331         the connection-global 33 bits of the object ID
10332
10333         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10334         object ID in the new way
10335
10336         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10337         define server/client/instance bits.
10338
10339 2003-07-30  Havoc Pennington  <hp@pobox.com>
10340
10341         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10342         build
10343
10344 2003-07-13  Havoc Pennington  <hp@pobox.com>
10345
10346         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10347         fields to DBusObjectVTable and DBusObjectInfo
10348
10349 2003-07-12  Havoc Pennington  <hp@pobox.com>
10350
10351         * dbus/dbus-object-registry.c: implement unit test,
10352         fix bugs discovered in process
10353
10354         * dbus/dbus-connection.c: remove handler_table and
10355         register_handler(), add DBusObjectRegistry usage
10356
10357         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10358         (dbus_object_id_set_null): new functions
10359
10360 2003-07-08  Havoc Pennington  <hp@pobox.com>
10361
10362         * dbus/dbus-object.c: implement some of this
10363
10364         * dbus/dbus-object-registry.c
10365         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10366         param
10367         (_dbus_object_registry_new): handle OOM
10368
10369 2003-07-08  Havoc Pennington  <hp@pobox.com>
10370
10371         * dbus/dbus-object.h: sketch out an API for registering objects
10372         with a connection, that allows us to use as little as 24 bytes
10373         per object and lets application code represent an object in 
10374         any conceivable way.
10375
10376         * dbus/dbus-object-registry.c: implement the hard bits of the
10377         DBusConnection aspect of object API. Not yet wired up.
10378         
10379 2003-07-06  Havoc Pennington  <hp@pobox.com>
10380
10381         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10382         (_dbus_marshal_object_id): new
10383         (_dbus_demarshal_object_id): new
10384         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10385         consolidate identical switch cases. Don't conditionalize handling
10386         of DBUS_TYPE_UINT64, need to handle the type always.
10387         (_dbus_marshal_validate_arg): consolidate identical cases, and
10388         handle DBUS_TYPE_OBJECT_ID
10389
10390         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10391
10392         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10393
10394 2003-09-28  Havoc Pennington  <hp@pobox.com>
10395
10396         * real 0.13 release
10397
10398 2003-09-28  Havoc Pennington  <hp@pobox.com>
10399
10400         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10401         to work with Debian db2html
10402
10403 2003-09-28  Havoc Pennington  <hp@pobox.com>
10404
10405         * configure.in: 0.13
10406
10407         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10408         stylesheet-images for benefit of Debian
10409         
10410         Change back to using filesystem-linked sockets for the system
10411         bus, so only root can create the default system bus address.
10412         
10413         * bus/system.conf.in: change to use
10414         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10415
10416         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10417         from here.
10418
10419         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10420         here, and AC_DEFINE DBUS_SYSTEM_PATH
10421
10422 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10423
10424         * doc/TODO:
10425         * doc/busconfig.dtd:
10426         Add busconfig DTD.
10427         
10428 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10429
10430         * doc/dbus-specification.sgml:
10431         Add activation reply values.
10432         
10433 2003-08-05  Havoc Pennington  <hp@redhat.com>
10434
10435         * configure.in: 0.12
10436
10437 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10438
10439         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10440         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10441         (add_watch), (remove_watch), (create_source):
10442         Refcount fds, fixes some reentrancy issues.
10443         
10444 2003-07-30  Havoc Pennington  <hp@redhat.com>
10445
10446         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10447         bus address to be abstract if we have abstract sockets
10448
10449         * NEWS: update
10450
10451 2003-07-28  Havoc Pennington  <hp@redhat.com>
10452
10453         * bus/messagebus.in: fix to avoid processname/servicename 
10454         confusion, from Michael Kearey
10455         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10456         
10457 2003-07-23  Havoc Pennington  <hp@pobox.com>
10458
10459         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10460         fix from Andy Hanton to remove broken "+1"
10461
10462 2003-07-16  Havoc Pennington  <hp@pobox.com>
10463
10464         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10465         babysitter process, as suggested by Thomas Leonard, so 
10466         an "eval `dbus-launch --exit-with-session`" will actually 
10467         return
10468
10469 2003-07-16  Havoc Pennington  <hp@pobox.com>
10470
10471         * configure.in: print out EXPANDED_* variables in the summary at
10472         the end; clean up the code that computes EXPANDED_ variables and
10473         get the ones using exec_prefix right. Should make things work
10474         when you build without --prefix
10475
10476 2003-06-29  Havoc Pennington  <hp@pobox.com>
10477
10478         * mono/Test.cs (class Test): fire up a main loop and run it
10479
10480         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10481         done once, the app has to do it
10482
10483 2003-06-26  Havoc Pennington  <hp@pobox.com>
10484
10485         * mono/Connection.cs: set up connection with the glib main loop
10486
10487 2003-07-01  Havoc Pennington  <hp@redhat.com>
10488
10489         * doc/dbus-specification.sgml: clarify the format of a type code,
10490         change suggested by Jim Blandy
10491
10492 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10493
10494         * doc/Makefile.am:
10495         * tools/Makefile.am: Don't assume srcdir == builddir.
10496
10497         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10498         the allocated block.
10499         (_dbus_memory_test): New function.
10500         * dbus/dbus-test.h: Add _dbus_memory_test ().
10501         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10502
10503         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10504         of %c%c%c%c.
10505         (dbus_message_new): Remove obsolete @todo.
10506
10507         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10508         (_dbus_marshal_set_uint64): Fix comment.
10509
10510         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10511         hardcode FIELD_REPLY_SERIAL.
10512
10513         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10514         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10515
10516         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10517         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10518
10519 2003-06-24  Havoc Pennington  <hp@pobox.com>
10520
10521         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10522
10523 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10524
10525         * configure.in:
10526         * gcj/.cvsignore:
10527         * gcj/Hello.java:
10528         * gcj/Makefile.am:
10529         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10530         * gcj/org/.cvsignore:
10531         * gcj/org/Makefile.am:
10532         * gcj/org/freedesktop/.cvsignore:
10533         * gcj/org/freedesktop/Makefile.am:
10534         * gcj/org/freedesktop/dbus/.cvsignore:
10535         * gcj/org/freedesktop/dbus/Makefile.am:
10536         * gcj/org/freedesktop/dbus/Message.java: (Message),
10537         (Message.Message):
10538         * gcj/org/freedesktop/dbus/natMessage.cc:
10539         Fix the build system.
10540
10541 2003-06-22  Havoc Pennington  <hp@pobox.com>
10542
10543         * mono/Connection.cs: add more bindings
10544
10545         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10546         more than once.
10547
10548 2003-06-22  Havoc Pennington  <hp@pobox.com>
10549
10550         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10551         Start wrapping more stuff.
10552
10553 2003-06-22  Havoc Pennington  <hp@pobox.com>
10554
10555         * mono/Message.cs: implement Message.Wrap() that ensures we only
10556         have a single C# wrapper per DBusMessage, assuming it works which
10557         it probably doesn't.
10558
10559         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10560         (dbus_message_free_data_slot): new
10561         (dbus_message_set_data): new
10562         (dbus_message_get_data): new
10563
10564 2003-06-22  Havoc Pennington  <hp@pobox.com>
10565
10566         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10567         (_dbus_data_slot_allocator_alloc): rework these to keep a
10568         reference count on each slot and automatically manage a global
10569         slot ID variable passed in by address
10570
10571         * bus/bus.c: convert to new dataslot API
10572
10573         * dbus/dbus-bus.c: convert to new dataslot API
10574
10575         * dbus/dbus-connection.c: convert to new dataslot API
10576
10577         * dbus/dbus-server.c: convert to new dataslot API
10578
10579         * glib/dbus-gmain.c: ditto
10580
10581         * bus/test.c: ditto
10582
10583         * bus/connection.c: ditto
10584
10585 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10586
10587         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10588         after the gcj checks so that the correct configuration tags
10589         will be added to libtool.
10590
10591         * dbus-glib-1.pc.in: No need to specify any includes since
10592         dbus-1.pc.in has those.
10593
10594 2003-06-22  Havoc Pennington  <hp@pobox.com>
10595
10596         * mono/*, gcj/*, configure.in, Makefile.am:
10597         Check in makefiles and subdirs for mono and gcj bindings.
10598         Neither binding actually exists, just trying to get through
10599         all the build and other boring bits.
10600
10601 2003-06-21  Philip Blundell  <philb@gnu.org>
10602
10603         * tools/dbus-monitor.1: Updated.
10604
10605         * tools/dbus-send.1: Likewise.
10606
10607 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10608
10609         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10610         for hangup and error after checking read so we won't discard
10611         pending data if both hangup and read are set.
10612
10613 2003-06-19  Philip Blundell  <philb@gnu.org>
10614
10615         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10616
10617         * tools/dbus-send.c: Accept both --system and --session.
10618
10619         * tools/dbus-monitor.c: Same here.
10620
10621 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10622
10623         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10624         from C++ (Patch by Miloslav Trmac).
10625
10626 2003-06-15  Joe Shaw  <joe@assbarn.com>
10627
10628         * configure.in: Check for socklen_t.
10629
10630         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10631
10632         * test/test-segfault.c: Add #include <sys/time.h>
10633
10634         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10635         dbus-launch needs it.
10636
10637 2003-06-09  Havoc Pennington  <hp@redhat.com>
10638
10639         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10640         SUN_LEN, it breaks abstract socket usage
10641
10642         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10643         starts of lines.
10644
10645 2003-06-04  Havoc Pennington  <hp@pobox.com>
10646
10647         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10648         using unix:abstract=/foo, and when listening in a tmpdir
10649         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10650
10651         * dbus/dbus-transport.c (_dbus_transport_open): support
10652         unix:abstract=/foo
10653
10654         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10655         support abstract sockets
10656
10657         * dbus/dbus-transport-unix.c
10658         (_dbus_transport_new_for_domain_socket): support abstract sockets
10659
10660         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10661         toggle as an argument, implement abstract namespace support
10662         (_dbus_listen_unix_socket): ditto
10663
10664         * configure.in: add --enable-abstract-sockets and implement
10665         a configure check for autodetection of the right value.
10666
10667 2003-06-01  Havoc Pennington  <hp@pobox.com>
10668
10669         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10670         in /tmp (though on Linux this will end up being useless,
10671         when we add abstract namespace support)
10672
10673         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10674         subst'ing it
10675
10676 2003-05-28  Colin Walters  <walters@verbum.org>
10677
10678         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10679
10680 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10681
10682         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10683
10684 2003-05-17  Colin Walters  <walters@gnu.org>
10685
10686         * tools/dbus-send.c: Don't exit with an error code if --help was
10687         passed.  Default to using the session bus instead of the system
10688         one.
10689
10690         * tools/dbus-launch.c: Ditto.
10691
10692         * tools/dbus-monitor.c: Ditto.
10693
10694         * tools/dbus-send.1: Update with new arguments.
10695
10696         * tools/dbus-launch.c: Emit code to export variables.  New
10697         arguments -s and -c to specify shell syntax, and a bit of code to
10698         autodetect syntax.  Also, allow specifying a program to run.
10699
10700         * tools/dbus-launch.1: Update with new arguments.
10701
10702         * tools/dbus-send.1: Ditto.
10703
10704         * tools/dbus-monitor.1: Ditto.
10705
10706 2003-05-17  Havoc Pennington  <hp@pobox.com>
10707
10708         * bus/config-parser.c (merge_included): merge in policies from
10709         child configuration file.
10710
10711         * bus/policy.c (bus_policy_merge): function to merge two policies
10712         together
10713
10714 2003-05-16  Havoc Pennington  <hp@redhat.com>
10715
10716         * dbus/dbus-connection.c: disable verbose lock spew
10717
10718         * tools/dbus-send.c: add --print-reply command line option
10719
10720         * tools/dbus-print-message.h (print_message): new util function
10721         shared by dbus-send and dbus-monitor
10722
10723         * tools/dbus-monitor.c (handler_func): exit on disconnect
10724
10725         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10726         disconnected, don't try to use the read_watch
10727
10728         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10729         so we can find this bug more easily
10730
10731 2003-05-16  Havoc Pennington  <hp@redhat.com>
10732
10733         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10734         NULL as DBusHashTable is annoyingly likely to do.
10735
10736 2003-05-16  Colin Walters  <walters@verbum.org>
10737
10738         * tools/dbus-monitor.c: Add --session argument and usage()
10739         function.
10740
10741         * tools/dbus-monitor.1: Update with new --session arg.
10742
10743         * bus/Makefile.am (install-data-hook): Create
10744         $(libdir)/dbus-1.0/services so that the session bus is happy.
10745
10746 2003-05-15  Havoc Pennington  <hp@redhat.com>
10747
10748         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10749         on non-x86. ifdef's are evil.
10750
10751 2003-05-15  Havoc Pennington  <hp@redhat.com>
10752
10753         * configure.in: 0.11
10754
10755         * NEWS: update
10756
10757         * bus/Makefile.am (initddir): apparently we are supposed to put
10758         init scripts in /etc/rc.d/init.d not /etc/init.d
10759
10760         * bus/Makefile.am: remove the "you must --enable-tests to make
10761         check" as it broke distcheck
10762
10763         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10764
10765 2003-05-13  James Willcox  <jwillcox@gnome.org>
10766
10767         * configure.in:
10768         * bus/activation.c: (bus_activation_service_created),
10769         (bus_activation_activate_service):
10770         * bus/driver.c: (bus_driver_send_service_deleted),
10771         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10772         (bus_driver_send_service_acquired),
10773         (bus_driver_send_welcome_message),
10774         (bus_driver_handle_list_services):
10775         * bus/session.conf.in:
10776         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10777         (dbus_bus_service_exists), (dbus_bus_activate_service):
10778         * dbus/dbus-bus.h:
10779
10780         Add some convenience API which lets you activate a service, and did a
10781         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10782         and dbus_message_get_args()
10783
10784 2003-05-11  Havoc Pennington  <hp@pobox.com>
10785
10786         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10787         calling _dbus_marshal_validate_arg() for every byte in a byte
10788         array, etc.
10789
10790         * dbus/dbus-message-handler.c: use atomic reference counting to
10791         reduce number of locks slightly; the global lock in here sucks
10792
10793         * dbus/dbus-connection.c
10794         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10795         update_dispatch_status that can be called with lock held; then use
10796         in a couple places to reduce locking/unlocking
10797         (dbus_connection_send): hold the lock over the whole function
10798         instead of acquiring it twice.
10799
10800         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10801
10802         * bus/connection.c (bus_connections_setup_connection): fix access
10803         to already-freed memory.
10804
10805         * dbus/dbus-connection.c: keep a little cache of linked list
10806         nodes, to avoid using the global linked list alloc lock in the
10807         normal send-message case. Instead we just use the connection lock
10808         that we already have to take.
10809
10810         * dbus/dbus-list.c (_dbus_list_find_last): new function
10811
10812         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10813         change to use a struct for the atomic type; fix docs,
10814         they return value before increment, not after increment.
10815
10816         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10817         (_dbus_string_append_8_aligned): new functions to try to
10818         microoptimize this operation.
10819         (reallocate_for_length): break this out of set_length(), to
10820         improve profile info, and also so we can consider inlining the
10821         set_length() part.
10822
10823         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10824         strings with some preallocation, cuts down on our calls to realloc
10825         a fair bit. Though if we can get the "move entire string to empty
10826         string" optimization below to kick in here, it would be better.
10827
10828         * dbus/dbus-string.c (_dbus_string_move): just call
10829         _dbus_string_move_len
10830         (_dbus_string_move_len): add a special case for moving
10831         an entire string into an empty string; we can just
10832         swap the string data instead of doing any reallocs.
10833         (_dbus_string_init_preallocated): new function
10834
10835 2003-05-11  Havoc Pennington  <hp@pobox.com>
10836
10837         Write a "test-profile" that does echo client-server with threads;
10838         profile reveals lock contention, memcpy/realloc of buffers, and
10839         UTF-8 validation as hot spots. 20% of lock contention eliminated
10840         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10841         contention is global mempool locks for GList and DBusList.
10842
10843         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10844         x86 implementation
10845
10846         * dbus/dbus-connection.c (struct DBusConnection): use
10847         dbus_atomic_t for the reference count
10848
10849         * dbus/dbus-message.c (struct DBusMessage): declare
10850         dbus_atomic_t values as volatile
10851
10852         * configure.in: code to detect ability to use atomic integer
10853         operations in assembly, from GLib patch
10854
10855         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10856         time, tired of it being wrong in threads and forked processes
10857
10858         * glib/test-profile.c: a little program to bounce messages back
10859         and forth between threads and eat CPU
10860
10861         * dbus/dbus-connection.c: add debug spew macros for debugging
10862         thread locks; include config.h at top; fix deadlock in
10863         dbus_connection_flush()
10864
10865 2003-05-08  Havoc Pennington  <hp@pobox.com>
10866
10867         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10868         data from getting written, and there wasn't a good reason to
10869         use _exit really.
10870
10871         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10872         dbus_verbose lines in test coverage
10873         (main): add list of functions sorted by # of untested blocks
10874         to the coverage report
10875
10876         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10877
10878         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10879
10880         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10881         extend test coverage
10882
10883         * test/data/auth/cancel.auth-script: test canceling an
10884         authentication
10885
10886         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10887         aren't used. in CVS history if we end up needing them.
10888
10889 2003-05-04  Havoc Pennington  <hp@pobox.com>
10890
10891         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10892         unit test
10893
10894         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10895         function, which assumed length was in # of strings, not bytes
10896
10897         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10898         missing coverage
10899
10900         * dbus/dbus-connection.c
10901         (_dbus_connection_queue_received_message): disable function for
10902         now, we are only using it in test mode
10903
10904         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10905         remove a mistaken FIXME
10906
10907 2003-05-04  Havoc Pennington  <hp@pobox.com>
10908
10909         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10910         unlock mutex on successful return, patch from Anders Gustafsson
10911
10912 2003-05-04  Havoc Pennington  <hp@pobox.com>
10913
10914         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10915         Anders Gustafsson
10916
10917 2003-05-04  Havoc Pennington  <hp@pobox.com>
10918
10919         * tools/dbus-launch.c: implement
10920
10921         * bus/main.c (main), bus/bus.c (bus_context_new):
10922         implement --print-pid and --fork
10923
10924 2003-05-03  Havoc Pennington  <hp@redhat.com>
10925
10926         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10927         the address had no value, and add to test suite. Fix and
10928         regression test from Miloslav Trmac
10929
10930 2003-05-03  Havoc Pennington  <hp@pobox.com>
10931
10932         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10933         watch is invalid when handled
10934
10935         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10936         dbus-launch utility to launch the bus from a shell script.  Didn't
10937         actually implement dbus-launch yet, it's just a placeholder still.
10938
10939 2003-05-03  Havoc Pennington  <hp@pobox.com>
10940
10941         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10942         daemon; also documents daemon config file, so replaces
10943         doc/config-file.txt. Corrected some stuff from config-file.txt in
10944         the process of moving it.
10945
10946 2003-05-03  Havoc Pennington  <hp@pobox.com>
10947
10948         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10949         add some man pages
10950
10951 2003-05-03  Colin Walters  <walters@verbum.org>
10952
10953         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10954         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10955
10956         * Makefile.am: Update to use new .pc versioning scheme.
10957
10958 2003-05-02  Havoc Pennington  <hp@redhat.com>
10959
10960         * bus/system.conf.in: allow send/receive to/from message bus
10961         service
10962
10963 2003-04-30  Havoc Pennington  <hp@redhat.com>
10964
10965         * configure.in: print a note when building with unit tests and
10966         without assertions
10967
10968 2003-04-30  Havoc Pennington  <hp@redhat.com>
10969
10970         * Makefile.am: add a check-local that complains if you didn't
10971         configure with --enable-tests
10972
10973 2003-04-29  Havoc Pennington  <hp@redhat.com>
10974
10975         * glib/dbus-gmain.c: docs cleanups
10976
10977         * dbus/dbus-types.h: add docs on int64 types
10978
10979         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10980         public API docs section
10981
10982 2003-04-29  Havoc Pennington  <hp@redhat.com>
10983
10984         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10985         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10986         parallel install API version, not with the D-BUS package version.
10987
10988         * HACKING: move some of README over here
10989
10990         * README: updates, and document API/ABI policy
10991
10992         * configure.in: reindentation
10993
10994 2003-04-29  Havoc Pennington  <hp@redhat.com>
10995
10996         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10997         to use this library" to be sure people have the right
10998         expectations.
10999
11000 2003-04-28  Havoc Pennington  <hp@redhat.com>
11001
11002         * configure.in: add --enable-docs which by default is auto yes if
11003         doxygen and db2html found, no otherwise; but can be forced on/off
11004
11005         * doc/Makefile.am: conditionalize whether to build docs on
11006         --enable-docs
11007
11008 2003-04-28  Havoc Pennington  <hp@redhat.com>
11009
11010         * configure.in: 0.10
11011
11012         * NEWS: update
11013
11014         * bus/system.conf.in: add <includedir>system.d</includedir>
11015
11016         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11017         username was provided but not uid
11018
11019         * bus/config-parser.c (struct BusConfigParser): keep track of
11020         whether the parser is toplevel or was included; change some
11021         of the error handling if it's included.
11022
11023 2003-04-27  Havoc Pennington  <hp@pobox.com>
11024
11025         Unbreak my code...
11026
11027         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11028         report correct status if we finish processing authentication
11029         inside this function.
11030
11031         * bus/activation.c (try_send_activation_failure): use
11032         bus_transaction_send_error_reply
11033
11034         * bus/connection.c (bus_connection_get_groups): return an error
11035         explaining the problem
11036
11037         * bus/bus.c (bus_context_check_security_policy): implement
11038         restriction here that inactive connections can only send the
11039         hello message. Also, allow bus driver to send anything to
11040         any recipient.
11041
11042         * bus/connection.c (bus_connection_complete): create the
11043         BusClientPolicy here instead of on-demand.
11044         (bus_connection_get_policy): don't return an error
11045
11046         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11047         sender field in message being replied to
11048
11049         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11050         causing it to return FALSE always
11051
11052         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11053         we checked sender rather than destination
11054
11055 2003-04-25  Havoc Pennington  <hp@redhat.com>
11056
11057         test suite is slightly hosed at the moment, will fix soon
11058
11059         * bus/connection.c (bus_connections_expire_incomplete): fix to
11060         properly disable the timeout when required
11061         (bus_connection_set_name): check whether we can remove incomplete
11062         connections timeout after we complete each connection.
11063
11064         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11065         probably still broken.
11066
11067         * bus/services.c (bus_registry_acquire_service): implement max
11068         number of services owned, and honor allow/deny rules on which
11069         services a connection can own.
11070
11071         * bus/connection.c (bus_connection_get_policy): report errors here
11072
11073         * bus/activation.c: implement limit on number of pending
11074         activations
11075
11076 2003-04-25  Havoc Pennington  <hp@redhat.com>
11077
11078         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11079         where we used >= 0 instead of != DBUS_UID_UNSET.
11080
11081 2003-04-25  Havoc Pennington  <hp@redhat.com>
11082
11083         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11084         were toggled without add/remove, fix from Anders Gustafsson
11085
11086 2003-04-24  Havoc Pennington  <hp@redhat.com>
11087
11088         * test/data/valid-config-files/basic.conf: add <limit> tags to
11089         this test
11090
11091         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11092         <limit> tag in configuration file.
11093
11094 2003-04-24  Havoc Pennington  <hp@redhat.com>
11095
11096         * bus/dispatch.c: somehow missed some name_is
11097
11098         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11099         (_dbus_timeout_set_interval): new
11100
11101         * bus/connection.c (bus_connections_setup_connection): record time
11102         when each connection is first set up, and expire them after the
11103         auth timeout passes.
11104
11105 2003-04-24  Havoc Pennington  <hp@redhat.com>
11106
11107         * dbus/dbus-message.c (dbus_message_name_is): rename
11108         (dbus_message_service_is): rename
11109         (dbus_message_sender_is): rename
11110         (dbus_message_get_service): rename
11111
11112 2003-04-24  Havoc Pennington  <hp@redhat.com>
11113
11114         * configure.in: add --enable-checks
11115
11116         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11117
11118         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11119         to use thread locks.
11120         (_dbus_connection_handler_destroyed_locked): move some private
11121         functions into proper docs group
11122
11123         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11124         _dbus_return_val_if_fail
11125
11126         Throughout: use dbus_return_if_fail
11127
11128 2003-04-23  James Willcox  <jwillcox@gnome.org>
11129
11130         * glib/dbus-glib.h:
11131         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11132         (dbus_connection_setup_with_g_main),
11133         (dbus_server_setup_with_g_main):
11134         * glib/test-dbus-glib.c: (main):
11135         * glib/test-thread-client.c: (main):
11136         * glib/test-thread-server.c: (new_connection_callback), (main):
11137         * tools/dbus-monitor.c: (main):
11138
11139         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11140         and dbus_server_setup_with_g_main().
11141
11142 2003-04-20  Havoc Pennington  <hp@pobox.com>
11143
11144         * doc/dbus-specification.sgml: document the restrictions on
11145         message and service names
11146
11147 2003-04-22  Havoc Pennington  <hp@redhat.com>
11148
11149         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11150         support, and do some code cleanups to share more code and
11151         speed up array marshal/demarshal.
11152
11153         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11154
11155         * configure.in: generate dbus-arch-deps.h
11156
11157         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11158         64-bit typecodes
11159
11160 2003-04-22  Havoc Pennington  <hp@redhat.com>
11161
11162         * test/data/valid-messages/opposite-endian.message: fix test
11163         to use proper type for rply field
11164
11165         * test/data/invalid-messages: add tests for below validation
11166
11167         * dbus/dbus-message.c (decode_header_data): validate field types,
11168         and validate that named fields are valid names
11169         (decode_name_field): consider messages in the
11170         org.freedesktop.Local. namespace to be invalid.
11171
11172         * dbus/dbus-string.c (_dbus_string_validate_name): new
11173
11174 2003-04-19  Havoc Pennington  <hp@pobox.com>
11175
11176         * bus/driver.c (bus_driver_handle_hello): check limits and
11177         return an error if they are exceeded.
11178
11179         * bus/connection.c: maintain separate lists of active and inactive
11180         connections, and a count of each. Maintain count of completed
11181         connections per user. Implement code to check connection limits.
11182
11183         * dbus/dbus-list.c (_dbus_list_unlink): export
11184
11185         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11186         number of bytes in the message queue for a connection
11187
11188 2003-04-18  Havoc Pennington  <hp@pobox.com>
11189
11190         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11191
11192         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11193         memleaks
11194
11195         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11196         on realloc be sure to update the pointer in the keyring
11197
11198         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11199         offset to avoid writing to unallocated memory
11200
11201         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11202         try the next mechanism, so we properly handle OOM
11203
11204         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11205         on OOM.
11206         (_dbus_keyring_new): fix OOM bug
11207         (_dbus_keyring_new_homedir): always set error; impose a maximum
11208         number of keys we'll load from the file, mostly to speed up the
11209         test suite and make its OOM checks more useful, but also for
11210         general sanity.
11211
11212         * dbus/dbus-auth.c (process_error_server): reject authentication
11213         if we get an error from the client
11214         (process_cancel): on cancel, send REJECTED, per the spec
11215         (process_error_client): send CANCEL if we get an error from the
11216         server.
11217
11218 2003-04-18  Havoc Pennington  <hp@pobox.com>
11219
11220         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11221         debug spew
11222
11223         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11224         handling problem
11225
11226         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11227         about DBUS_TEST_HOMEDIR once
11228
11229         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11230         the environment
11231
11232         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11233         config file so we test the right thing
11234
11235         Throughout: assorted docs improvements
11236
11237 2003-04-18  Havoc Pennington  <hp@pobox.com>
11238
11239         * glib/dbus-gmain.c: adapt to watch changes
11240
11241         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11242
11243         * dbus/dbus-server.h: remove dbus_server_handle_watch
11244
11245         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11246
11247         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11248         like DBusTimeout, so we don't need dbus_connection_handle_watch
11249         etc.
11250
11251 2003-04-17  Havoc Pennington  <hp@redhat.com>
11252
11253         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11254         database usage so it all goes via the DBusUserDatabase cache.
11255
11256 2003-04-17  Havoc Pennington  <hp@redhat.com>
11257
11258         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11259         there was an OOM watch we skipped, we always return TRUE so we
11260         iterate again to have a look at it again. Fixes test suite hang.
11261         Code rearrangement also lets us lose some memset and only iterate
11262         over callbacks once.
11263
11264         * bus/driver.c (bus_driver_handle_message): sense of test for
11265         reply was backward
11266
11267 2003-04-16  Havoc Pennington  <hp@pobox.com>
11268
11269         * doc/dbus-specification.sgml: make spec say serials are unsigned
11270
11271         * dbus/dbus-message.h: change message serials to unsigned
11272
11273         * dbus/dbus-connection.c: adapt to message serials being unsigned
11274
11275 2003-04-15  Havoc Pennington  <hp@pobox.com>
11276
11277         * bus/bus.c: create and keep around a shared DBusUserDatabase
11278         object.
11279
11280         * bus/connection.c (bus_connection_get_groups): don't cache
11281         groups for user in the connection object, since user database
11282         object now does that.
11283
11284 2003-04-16  Havoc Pennington  <hp@redhat.com>
11285
11286         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11287         list of size counters
11288         (_dbus_message_loader_putback_message_link): put back a popped link
11289
11290         * dbus/dbus-connection.c
11291         (dbus_connection_set_max_live_messages_size): rename
11292         max_received_size
11293         (dbus_connection_get_outgoing_size): get size of outgoing
11294         queue
11295         (_dbus_connection_set_connection_counter): remove this cruft
11296
11297 2003-04-14  Havoc Pennington  <hp@redhat.com>
11298
11299         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11300         caching, but at some point we might want to be able to use a
11301         different database.
11302
11303         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11304         SHA1 conf file to test the sha1 auth mechanism, since the regular
11305         test always uses EXTERNAL when available.
11306
11307         * configure.in,
11308         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11309         add conf file that requires use of sha1 auth
11310
11311 2003-04-13  Havoc Pennington  <hp@pobox.com>
11312
11313         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11314         from Philip Blundell to send messages and monitor them.
11315
11316 2003-04-13  Havoc Pennington  <hp@pobox.com>
11317
11318         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11319         callbacks
11320
11321         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11322         users
11323
11324         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11325         fix to only recover unused bytes if we're already authenticated
11326         (_dbus_transport_get_is_authenticated): fix to still mark us
11327         authenticated if there are unused bytes.
11328
11329         * bus/dispatch.c: implement security policy checking
11330
11331         * bus/connection.c (bus_transaction_send_from_driver): new
11332
11333         * bus/bus.c (bus_context_check_security_policy): new
11334
11335         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11336         now we just set the DBusError and it gets converted to an error
11337         reply.
11338
11339         * bus/connection.c (allow_user_function): enable code using actual
11340         data from the config file
11341
11342         * bus/policy.c (list_allows_user): handle wildcard rules for
11343         user/group connection perms
11344
11345 2003-04-13  Havoc Pennington  <hp@pobox.com>
11346
11347         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11348
11349         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11350
11351         * bus/policy.c (bus_policy_append_mandatory_rule)
11352         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11353         (bus_policy_append_group_rule): new functions
11354
11355 2003-04-12  Havoc Pennington  <hp@pobox.com>
11356
11357         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11358
11359         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11360         the pid/gid/uid, just for paranoia.
11361
11362         * test/break-loader.c (randomly_do_n_things): find a byte
11363         containing a type code, and randomly change it to a different
11364         type code.
11365
11366 2003-04-12  Havoc Pennington  <hp@pobox.com>
11367
11368         * bus/policy.h: change BusPolicy to be the thing from the config
11369         file, and rename old BusPolicy to BusClientPolicy
11370
11371         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11372         match change in how policy works
11373
11374         * dbus/dbus-internals.h: mark assert_not_reached as
11375         __attribute((noreturn))__
11376
11377 2003-04-11  Havoc Pennington  <hp@redhat.com>
11378
11379         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11380         the broadcast service. Use boolean return for ServiceExists.
11381
11382 2003-04-11  Havoc Pennington  <hp@redhat.com>
11383
11384         * configure.in: add another directory to look for qt in.
11385
11386 2003-04-11  Havoc Pennington  <hp@redhat.com>
11387
11388         * AUTHORS: add Colin Walters
11389
11390 2003-04-11  Havoc Pennington  <hp@redhat.com>
11391
11392         * NEWS: update
11393
11394         * configure.in: 0.9
11395
11396 2003-04-11  Havoc Pennington  <hp@redhat.com>
11397
11398         * bus/messagebus.in: remove pid file when stopping the
11399         message bus, since the bus won't have privileges to remove it
11400         itself.
11401
11402 2003-04-11  Havoc Pennington  <hp@redhat.com>
11403
11404         * bus/bus.c (bus_context_new): move credentials change after
11405         creating pidfile
11406
11407 2003-04-11  Havoc Pennington  <hp@pobox.com>
11408
11409         * test/decode-gcov.c: add "below average functions" to the
11410         coverage report, and change how some of the code works.
11411
11412         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11413         not in the coverage stats.
11414
11415         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11416         couple places so running the test suite doesn't result in megaspam.
11417
11418 2003-04-11  Havoc Pennington  <hp@pobox.com>
11419
11420         * bus/dispatch.c (check_existent_service_activation): accept a no
11421         memory error in a place we didn't before
11422
11423         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11424         in case the first one failed," since the test suite is less
11425         broken now.
11426
11427 2003-04-10  Havoc Pennington  <hp@pobox.com>
11428
11429         * bus/dispatch.c (check_segfault_service_activation): add test
11430         for launching an executable that just crashes.
11431
11432         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11433         don't leave a million cores. We'll see how portable this is.
11434
11435 2003-04-10  Havoc Pennington  <hp@pobox.com>
11436
11437         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11438         the possible parent failures before we fork, so that we don't
11439         fail to create a babysitter after creating the child.
11440
11441         * bus/activation.c (bus_activation_activate_service): kill child
11442         if we don't successfully complete the activation.
11443
11444 2003-04-10  Havoc Pennington  <hp@redhat.com>
11445
11446         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11447         the connection if it's disconnected
11448
11449         * bus/activation.c (bus_activation_service_created): use new
11450         transaction features to roll back removal of pending activation if
11451         we don't successfully create the service after all. Don't remove
11452         pending activation if the function fails.
11453
11454         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11455         (_dbus_list_insert_after_link): new code to facilitate
11456         services.c fixes
11457
11458         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11459         new functionality, so we can preallocate the ability to insert
11460         into a hash table.
11461
11462         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11463         allowing us to put custom hooks in a transaction to be used for
11464         cancelling said transaction
11465
11466         * doc/dbus-specification.sgml: add some discussion of secondary
11467         service owners, and disallow zero-length service names
11468
11469         * bus/services.c (bus_registry_acquire_service): new function,
11470         splits out part of bus_driver_handle_acquire_service() and fixes
11471         a bug where we didn't remove the service doing the acquiring
11472         from the secondary queue if we failed to remove the current owner
11473         from the front of the queue.
11474
11475 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11476
11477         * doc/dbus-specification.sgml:
11478         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11479
11480 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11481
11482         * bus/.cvsignore:
11483         * glib/.cvsignore:
11484         * test/.cvsignore:
11485         Added files to cvsignore
11486
11487         * dbus/dbus-message.h:
11488         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11489         Make get_named() take two out argument and return a boolean.
11490         (dbus_message_iter_get_args_valist):
11491         Update usage of get_named().
11492         (dbus_message_iter_append_byte):
11493         Fix typo
11494         (dbus_message_iter_append_named)
11495         Fix typo
11496         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11497         More tests.
11498
11499 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11500
11501         * dbus/dbus-marshal.[ch]:
11502         Add array_type_pos argument to _dbus_marshal_validate_arg.
11503         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11504
11505         * dbus/dbus-message.[ch]:
11506         Multi-dimensional arrays have full type specification in the
11507         outermost array. Iter code re-arranged to handle this.
11508         Added some more iter tests.
11509
11510         * doc/dbus-specification.sgml:
11511         Add me to authors.
11512         Remove old FIXME.
11513         Update new array encoding description.
11514         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11515
11516         * test/data/invalid-messages/array-with-mixed-types.message:
11517         * test/data/valid-messages/array-of-array-of-uint32.message:
11518         Change to the new array format.
11519
11520         * test/data/invalid-messages/too-short-dict.message:
11521         Fix bug in test.
11522
11523         * test/data/valid-messages/recursive-types.message:
11524         Fix up and extend test.
11525
11526 2003-04-10  Havoc Pennington  <hp@pobox.com>
11527
11528         * bus/dispatch.c: lots of fixes
11529
11530         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11531         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11532         that was crack, broke the test service.
11533
11534         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11535         handling to avoid piling up errors if we get a failure on the
11536         first address.
11537
11538         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11539         pid in assertion failures.
11540
11541         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11542         to some fixed size of file descriptor array. Don't return TRUE
11543         anytime a timeout exists, that led to lots of busy loop silliness
11544         in the tests.
11545
11546 2003-04-09  Havoc Pennington  <hp@redhat.com>
11547
11548         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11549         I'd checked this in earlier but hadn't.
11550
11551 2003-04-09  Havoc Pennington  <hp@redhat.com>
11552
11553         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11554         the activation test (man this is getting old!)
11555
11556 2003-04-09  Havoc Pennington  <hp@redhat.com>
11557
11558         * test/test-utils.c: use dispatch status function to fix this up
11559
11560         * bus/connection.c (connection_watch_callback): don't dispatch
11561         from here
11562         (connection_timeout_callback): don't dispatch from here
11563         (bus_connections_setup_connection): set the dispatch status function
11564         (bus_connection_disconnected): unset it
11565
11566         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11567         used to add a connection to be dispatched
11568         (_dbus_loop_iterate): do the dispatching at the end of each
11569         iteration
11570
11571         * dbus/dbus-connection.c
11572         (dbus_connection_set_dispatch_status_function): new function
11573         allowing us to fix up main loop usage
11574         (_dbus_connection_last_unref): free all the various function
11575         user data
11576         (dbus_connection_dispatch): call the DispatchStatusFunction
11577         whenever this function returns
11578         (dbus_connection_handle_watch): call DispatchStatusFunction
11579         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11580         (reply_handler_timeout): call DispatchStatusFunction
11581         (dbus_connection_flush): call DispatchStatusFunction
11582
11583 2003-04-09  Havoc Pennington  <hp@redhat.com>
11584
11585         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11586         a memory leak
11587
11588         * bus/dispatch.c (check_service_activated): fix bug in test
11589
11590         * dbus/dbus-mainloop.c (check_timeout): fix this up
11591
11592         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11593         verbose output so we can sort out output from different processes,
11594         e.g. in the activation case.
11595
11596 2003-04-08  Colin Walters  <walters@gnu.org>
11597
11598         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11599         the pid file.
11600         (bus_context_new): Set it.
11601         (bus_context_unref): Use it to delete the pid file.
11602
11603 2003-04-08  Havoc Pennington  <hp@redhat.com>
11604
11605         * test/data/invalid-messages/array-with-mixed-types.message:
11606         regression test that fails for the moment
11607
11608         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11609         tests for convenience
11610
11611         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11612         array of nil, it broke things.
11613
11614         * test/data/invalid-messages/array-of-nil.message: regression test
11615
11616         * test/data/valid-messages/array-of-array-of-uint32.message:
11617         happened to write this so added it to suite
11618
11619 2003-04-08  Havoc Pennington  <hp@redhat.com>
11620
11621         * bus/driver.c (bus_driver_handle_acquire_service): init
11622         retval/reply before checking name
11623
11624         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11625         recursion depth argument
11626
11627         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11628         in the public struct for future extension
11629
11630         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11631         typo
11632
11633         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11634         message
11635
11636         * doc/dbus-specification.sgml: fix typo
11637
11638 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11639
11640         Implemented recursive types, named types and new-style iters
11641
11642         * bus/driver.c:
11643         * glib/test-thread-client.c: (thread_func):
11644         * glib/test-thread-server.c: (handle_test_message):
11645         * test/test-service.c: (handle_echo):
11646         Update to new api
11647
11648         * dbus/Makefile.am:
11649         * dbus/dbus-dict.c:
11650         * dbus/dbus-dict.h:
11651         * dbus/dbus.h
11652         Remove DBusDict
11653
11654         * dbus/dbus-internals.c: (_dbus_type_to_string):
11655         Update for new types.
11656
11657         * dbus/dbus-marshal.[ch]:
11658         Implement recursive types and the new marshalling format.
11659         Remove hardcoded dict marshalling.
11660         Marshal named types.
11661
11662         * dbus/dbus-message-builder.c:
11663         Add BYTE_ARRAY.
11664         Remove references to old types
11665
11666         * dbus/dbus-message.[ch]:
11667         New non-refcounted iter API that supports recursive iters.
11668         Use iters for appending, including support for recursive
11669         iters.
11670         Add byte and named type support.
11671         Update everything to new marshalling formats.
11672         Add tests for new API.
11673
11674         * dbus/dbus-protocol.h:
11675         Remove old array types.
11676         Add types: BYTE, ARRAY, DICT, NAMED
11677
11678         * dbus/dbus-string.c:
11679         * dbus/dbus-sysdeps.c:
11680         Make parse_double locale safe.
11681
11682         * dbus/dbus-test-main.c:
11683         Call setlocale.
11684
11685         * dbus/dbus-test.c:
11686         Kill dict test
11687
11688         * doc/dbus-specification.sgml:
11689         Update spec
11690
11691         * test/data/incomplete-messages/missing-body.message:
11692         * test/data/invalid-messages/bad-boolean.message:
11693         * test/data/invalid-messages/bad-boolean-array.message:
11694         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11695         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11696         * test/data/invalid-messages/too-short-dict.message:
11697         * test/data/valid-messages/dict-simple.message:
11698         * test/data/valid-messages/dict.message:
11699         * test/data/valid-messages/emptiness.message:
11700         * test/data/valid-messages/lots-of-arguments.message:
11701         * test/data/valid-messages/no-padding.message:
11702         * test/data/valid-messages/recursive-types.message:
11703         Add missing NAME fields
11704         Fix up dicts & arrays
11705
11706         * test/data/invalid-messages/dict-with-nil-value.message:
11707         Removed, this is not invalid anymore.
11708
11709         * test/data/valid-messages/recursive-types.message:
11710         Add new test for deeply recursive types.
11711
11712 2003-04-07  Havoc Pennington  <hp@pobox.com>
11713
11714         * bus/driver.c (bus_driver_handle_acquire_service): return an
11715         error if you try to acquire a service that starts with ':'
11716
11717 2003-04-07  Havoc Pennington  <hp@redhat.com>
11718
11719         * doc/dbus-specification.sgml: require that base service names
11720         start with ':' and that the base service is created/deleted
11721         as first and last things a connection does on the bus
11722
11723         * bus/dispatch.c (check_existent_service_activation): lots more
11724         work on the activation test; it doesn't fully pass yet...
11725
11726         * test/test-service.c (main): fix so we don't memleak the
11727         connection to the message bus
11728         (filter_func): accept a message asking us to exit
11729
11730 2003-04-06  Havoc Pennington  <hp@pobox.com>
11731
11732         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11733         from Colin Walters
11734
11735         * configure.in: fixes to Qt detection from Colin Walters
11736
11737         * doc/Makefile.am: Only remove generated docbook dirs if they
11738         exist, from Colin Walters
11739
11740         * dbus/dbus-bus.c: change how we set well-known connections to
11741         NULL, so that it works if a single connection is stored in
11742         two well-known array slots.
11743
11744         * test/Makefile.am: remove a lot of stuff that isn't immediately
11745         useful, it's in CVS history if we want it.
11746
11747         * test/test-service.c: use dbus-mainloop instead of that
11748         watch.[hc] crack
11749
11750 2003-04-06  Havoc Pennington  <hp@pobox.com>
11751
11752         * dbus/Makefile.am: split lists of sources into stuff that goes in
11753         the library, util functions that go in the lib and are also used
11754         elsewhere, and util functions that are used in tests/daemon but
11755         don't go in the lib.
11756
11757         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11758         here so it can be used in test binaries also
11759
11760 2003-04-06  Havoc Pennington  <hp@pobox.com>
11761
11762         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11763         here in the parent process, so we can return an error if it
11764         fails. Also, move some of the code into the child so the parent
11765         is less hosed if we fail midway through.
11766
11767         * bus/bus.c (bus_context_new): move pidfile detection further up
11768         in the function, before we start overwriting sockets and such.
11769
11770         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11771
11772         * configure.in: add --with-system-pid-file and --with-system-socket
11773
11774 2003-04-06  Colin Walters  <walters@verbum.org>
11775
11776         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11777
11778         * bus/system.conf.in: Declare a pidfile.
11779
11780         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11781         create one (if appropriate).
11782
11783         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11784         (struct BusConfigParser) [pidfile]: New.
11785         (element_type_to_name, merge_included, start_busconfig_child)
11786         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11787         (bus_config_parser_unref): Free it.
11788         (bus_config_parser_get_pidfile): New function.
11789
11790         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11791
11792         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11793
11794         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11795
11796         * dbus/dbus-sysdeps.h: Prototype it.
11797
11798 2003-04-06  Havoc Pennington  <hp@pobox.com>
11799
11800         * bus/bus.c (bus_context_new): print the address in here, rather
11801         than in main(), because we need to do it before forking the daemon
11802
11803         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11804         on the service nonexistent error
11805
11806         * bus/driver.c (bus_driver_handle_acquire_service): set the
11807         sender on the AcquireService reply
11808
11809         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11810         server also listen on a UNIX socket so services can connect to it.
11811
11812 2003-04-06  Havoc Pennington  <hp@pobox.com>
11813
11814         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11815         so it detects deadlocks and also we actually init threads when
11816         debugging.
11817
11818 2003-04-06  Havoc Pennington  <hp@pobox.com>
11819
11820         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11821         save the domain socket name, and unlink it when we disconnect the
11822         server. Means that at least when we exit normally, we won't leave
11823         a bunch of junk in /tmp
11824
11825         * dbus/dbus-transport-unix.c
11826         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11827         memory management). (I was making a real change here but then
11828         didn't)
11829
11830 2003-04-06  Havoc Pennington  <hp@pobox.com>
11831
11832         * bus/bus.c (bus_context_new): fix wrong handling of
11833         server_data_slot_unref() in the error case.
11834
11835         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11836         "(condition) != 0" to _dbus_real_assert so that
11837         "_dbus_assert (pointer)" doesn't cause a warning
11838
11839         * bus/main.c (main): accept --print-address option to print out
11840         the message bus address
11841
11842         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11843
11844         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11845         "tmpdir" option to unix: address on client side
11846
11847         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11848         to unix: address
11849
11850         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11851         we can use to create sockets in the test suite.
11852
11853         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11854         cleanly. To be used for testing.
11855
11856         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11857
11858         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11859
11860         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11861         handle trying to call this when there's no servers active
11862
11863 2003-04-05  Havoc Pennington  <hp@pobox.com>
11864
11865         * NEWS: update
11866
11867         * configure.in: 0.8
11868
11869 2003-04-05  Havoc Pennington  <hp@pobox.com>
11870
11871         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11872         crash on startup. Need to get "try starting the daemon"
11873         in the test suite I guess. ;-)
11874
11875         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11876         tracked the number of open connections; it's better done in
11877         application-specific code as you want it to span all servers etc.
11878
11879 2003-04-05  Havoc Pennington  <hp@pobox.com>
11880
11881         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11882         patch from Colin Walters
11883
11884 2003-04-05  Havoc Pennington  <hp@pobox.com>
11885
11886         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11887         reality; in fact multiple mechanisms are allowed.
11888
11889         * dbus/dbus-internals.c (_dbus_real_assert)
11890         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11891         _dbus_assert_not_reached() into functions, so that they don't show
11892         up in basic block counts for test coverage, and don't use up as
11893         much disk space. Does mean slower execution speed though, so
11894         assumes --disable-asserts is the normal production case.
11895
11896 2003-04-05  Havoc Pennington  <hp@pobox.com>
11897
11898         * test/Makefile.am (dist-hook): also dist *.in files
11899
11900         * NEWS: update
11901
11902         * configure.in: 0.7
11903
11904 2003-04-05  Havoc Pennington  <hp@pobox.com>
11905
11906         * dbus/dbus-string.c: docs warning
11907
11908         * dbus/dbus-spawn.c: missing docs
11909
11910         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11911
11912 2003-04-05  Havoc Pennington  <hp@pobox.com>
11913
11914         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11915         magic from GLib
11916
11917         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11918         to -1 once we've reaped the babysitter
11919         (_dbus_babysitter_handle_watch): do as much work as we can, not
11920         just one go of it
11921
11922         * bus/activation.c: add code using DBusBabysitter so that we
11923         handle it when a service fails to start up properly.
11924         (bus_activation_service_created): don't remove the activation
11925         entries as we go, just let them get removed when we free the pending
11926         activation. Unref reply messages after sending them.
11927
11928 2003-04-05  Havoc Pennington  <hp@pobox.com>
11929
11930         * test/decode-gcov.c (main): print per-directory stats in the report
11931
11932         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11933
11934 2003-04-05  Havoc Pennington  <hp@pobox.com>
11935
11936         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11937
11938         * test/decode-gcov.c: hack up a little program to suck data
11939         out of gcov files. Yes this is sort of silly.
11940
11941         * configure.in: define something in config.h and do an
11942         AM_CONDITIONAL when gcov is enabled
11943
11944 2003-04-04  Havoc Pennington  <hp@redhat.com>
11945
11946         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11947         return a "babysitter" object that is used to monitor the status of
11948         the spawned process and reap it when required.
11949
11950         * test/test-segfault.c, test/test-exit.c,
11951         test/test-sleep-forever.c: binaries that do various lame things,
11952         used in the test suite.
11953
11954         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11955
11956 2003-04-03  Havoc Pennington  <hp@pobox.com>
11957
11958         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11959         in preparation for modifying it, dbus-sysdeps is getting
11960         a bit unmanageable.
11961
11962 2003-04-03  Havoc Pennington  <hp@redhat.com>
11963
11964         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11965         have multiple ones
11966
11967         * bus/*.[hc]: adapt to mainloop change
11968
11969 2003-04-03  Havoc Pennington  <hp@redhat.com>
11970
11971         * bus/activation.c (load_directory): fix up memleaks
11972         (bus_activation_entry_free): free the entry
11973
11974         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11975         we get one from the message bus; fix memleaks.
11976
11977         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11978
11979 2003-04-03  Havoc Pennington  <hp@pobox.com>
11980
11981         * bus/config-parser.c (bus_config_parser_unref): free
11982         list of mechanisms, bug discovered by test suite enhancements
11983         (putting system.conf and session.conf into suite)
11984
11985         * test/Makefile.am, test/test-service.c: add placeholder for a
11986         test service that we'll activate as part of test suite. Doesn't
11987         do anything yet.
11988
11989         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11990         setting NULL value, and use system malloc not dbus_malloc()
11991         when we have unavoidable memleakage.
11992
11993         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11994         didn't work, and support DBUS_BUS_ACTIVATION.
11995
11996         * bus/activation.c (child_setup): pass our well-known bus type to
11997         the child
11998
11999         * bus/config-parser.c: support <type> to specify well-known type
12000
12001         * doc/dbus-specification.sgml: document the env variables to
12002         locate well-known buses and find service activator
12003
12004 2003-04-02  Havoc Pennington  <hp@redhat.com>
12005
12006         * test/Makefile.am (all-local): add a rule to copy tests to
12007         builddir, so we can have generated tests. Use this to remove the
12008         silly hack for testing system.conf and session.conf. Will use this
12009         shortly to generate .service files pointing to test binaries.
12010
12011 2003-04-02  Havoc Pennington  <hp@redhat.com>
12012
12013         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12014         current alloc and needed new length, not max of the doubled
12015         allocation and needed new length. Also, when building tests,
12016         don't do the double-allocation stuff, just realloc every time.
12017
12018 2003-04-02  Havoc Pennington  <hp@redhat.com>
12019
12020         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12021         in error messages
12022         (_dbus_string_get_dirname): new
12023         (_dbus_sysdeps_test): new
12024         (_dbus_directory_open): include dirnames in error messages
12025
12026         * bus/config-parser.c: interpret <include> and <includedir> and
12027         <servicedir> relative to config file location if the given
12028         filename is not absolute.
12029
12030         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12031
12032 2003-04-02  Havoc Pennington  <hp@redhat.com>
12033
12034         * bus/connection.c (bus_transaction_send_error_reply): set sender
12035         service for the error, and unref the reply on success
12036
12037         * bus/activation.c: convert to use BusTransaction so OOM can be
12038         handled correctly
12039         (bus_activation_service_created): set sender of the message
12040
12041 2003-04-01  Havoc Pennington  <hp@redhat.com>
12042
12043         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12044         <includedir> (at least mostly)
12045
12046         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12047         first, then the user ID
12048
12049 2003-04-01  Havoc Pennington  <hp@pobox.com>
12050
12051         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12052         function
12053
12054         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12055
12056         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12057
12058         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12059         socket 0777, and unlink any existing socket.
12060
12061         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12062         the configuration file so specifies; set up auth mechanism
12063         restrictions
12064
12065         * bus/config-parser.c (bus_config_parser_content): add support
12066         for <fork> option and fill in code for <auth>
12067
12068         * bus/system.conf.in: add <fork/> to default configuration,
12069         and limit auth mechanisms to EXTERNAL
12070
12071         * doc/config-file.txt (Elements): add <fork>
12072
12073         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12074         (_dbus_change_identity): new function
12075
12076 2003-03-31  Havoc Pennington  <hp@redhat.com>
12077
12078         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12079         (_dbus_listen_unix_socket): fix off-by-one error in null
12080         termination spotted by Nalin
12081
12082 2003-03-31  Havoc Pennington  <hp@redhat.com>
12083
12084         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12085         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12086         having a real home directory available.
12087
12088 2003-03-31  Havoc Pennington  <hp@redhat.com>
12089
12090         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12091
12092         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12093
12094         * configure.in: add support for specifying a style of init script
12095         to install
12096
12097 2003-03-31  Havoc Pennington  <hp@redhat.com>
12098
12099         Fix some annoying DBusString API and fix all affected code.
12100
12101         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12102         max_length argument
12103         (_dbus_string_get_data): change to return string instead of using
12104         an out param
12105         (_dbus_string_get_const_data): ditto
12106         (_dbus_string_get_data_len): ditto
12107         (_dbus_string_get_const_data_len): ditto
12108
12109 2003-03-31  Havoc Pennington  <hp@redhat.com>
12110
12111         * bus/main.c (main): fix up the command line arguments to be nicer
12112
12113 2003-03-31  Havoc Pennington  <hp@redhat.com>
12114
12115         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12116         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12117         final location that lands in the config file
12118
12119         * bus/config-loader-expat.c (bus_config_load): fix type of
12120         XML_Parser variable
12121
12122         * doc/TODO: remove TODO item for dbus_bus_get()
12123
12124         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12125
12126 2003-03-31  Havoc Pennington  <hp@pobox.com>
12127
12128         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12129         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12130         argument since they are always client side
12131
12132         * dbus/dbus-server.c (dbus_server_get_address): new function
12133
12134         * bus/main.c (main): take the configuration file as an argument.
12135
12136         * test/data/valid-config-files/debug-allow-all.conf: new file to
12137         use with dispatch.c tests for example
12138
12139         * bus/test-main.c (main): require test data dir
12140
12141         * bus/bus.c (bus_context_new): change this to take a
12142         configuration file name as argument
12143
12144         * doc/config-file.txt (Elements): add <servicedir>
12145
12146         * bus/system.conf, bus/session.conf: new files
12147
12148         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12149         well-known socket if none set
12150
12151         * configure.in: create system.conf and session.conf
12152
12153 2003-03-30  Havoc Pennington  <hp@pobox.com>
12154
12155         * bus/config-parser.c: hacking
12156
12157         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12158         to shut down, since it could cause weirdness with the DBusList
12159         lock
12160
12161         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12162         link-oriented stack routines
12163         (alloc_link): free the mempool if the first alloc from it fails
12164
12165         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12166
12167         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12168         from GLib
12169         (_dbus_string_skip_white): new
12170
12171         * doc/config-file.txt (Elements): add <includedir>
12172
12173 2003-03-28  Havoc Pennington  <hp@pobox.com>
12174
12175         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12176         (_dbus_string_copy_data): new functions
12177
12178 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12179
12180         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12181         * dbus/dbus-bus.h:
12182         Add dbus_bus_get.
12183
12184         * dbus/dbus-memory.c:
12185         Fix a doc comment.
12186
12187 2003-03-28  Havoc Pennington  <hp@pobox.com>
12188
12189         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12190         I think it may have just been superstition. Not sure.
12191
12192         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12193         failures that were not being handled.
12194
12195         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12196
12197         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12198         row that will fail on out-of-memory.
12199
12200         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12201         function for testing out-of-memory handling.
12202
12203         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12204         allocation functions, they do map exactly to the expat ones.
12205
12206 2003-03-27  Havoc Pennington  <hp@redhat.com>
12207
12208         * bus/config-loader-libxml.c (bus_config_load): add another error
12209         check
12210
12211 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12212
12213         * doc/TODO:
12214         Add note about automatic service activation.
12215
12216         * doc/dbus-specification.sgml:
12217         Rename the specification and clarify a few things.
12218
12219 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12220
12221         * Doxyfile.in:
12222         * dbus/dbus-address.c:
12223         * dbus/dbus-dict.c:
12224         * dbus/dbus-marshal.c:
12225         * dbus/dbus-server-debug-pipe.c:
12226         * dbus/dbus-transport-unix.c:
12227         Fix documentation warnings.
12228
12229 2003-03-26  Havoc Pennington  <hp@pobox.com>
12230
12231         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12232         after every test so it's quick and easy to see which leaked, and
12233         so we test multiple dbus_shutdown() calls
12234
12235         * configure.in: change configure.in XML stuff to also support
12236         expat
12237
12238         * config-loader-libxml.c: some hacking
12239
12240         * config-loader-expat.c: some hacking
12241
12242         * config-parser.c: some hacking, plus tests
12243
12244 2003-03-25  Havoc Pennington  <hp@redhat.com>
12245
12246         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12247
12248         * configure.in: add --with-xml option to specify XML library,
12249         right now only libxml is supported.
12250
12251         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12252         nonworking code between home and work, still just stubs
12253
12254 2003-03-24  Havoc Pennington  <hp@redhat.com>
12255
12256         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12257         file
12258
12259         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12260         NULL argument for "message" if the error is a well-known one,
12261         fill in a generic message in this case.
12262
12263         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12264         favor of DBusError
12265
12266         * bus/test.c (bus_test_flush_bus): add
12267
12268         * bus/policy.c (bus_policy_test): test code stub
12269
12270 2003-03-24  Havoc Pennington  <hp@pobox.com>
12271
12272         * bus/connection.c (bus_connections_setup_connection): set up
12273         the "can this user connect" function, but it always returns
12274         TRUE until we have a config file parser so we can have a config
12275         file that allows connections.
12276
12277 2003-03-23  Havoc Pennington  <hp@pobox.com>
12278
12279         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12280         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12281         the mutex, so we can check for proper memory management
12282         and OOM handling.
12283
12284         * dbus/dbus-dataslot.c: remove the mutex from
12285         DBusDataSlotAllocator and lock it manually when using it,
12286         to simplify fitting it into the global slots framework.
12287
12288         * dbus/dbus-threads.c (init_static_locks): rework how we're
12289         handling global locks so they are easily shut down.
12290
12291         * bus/policy.c (bus_policy_append_rule): fix
12292
12293         * bus/test-main.c (main): check for memleaks
12294
12295         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12296         test suite check for memleaks
12297
12298         * dbus/dbus-memory.c: add support in test mode for tracking
12299         number of outstanding blocks
12300
12301 2003-03-23  Havoc Pennington  <hp@pobox.com>
12302
12303         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12304         policies code
12305
12306         * dbus/dbus-hash.h: add ULONG hash keys
12307
12308         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12309         (_dbus_get_group_id): new function
12310
12311 2003-03-20  Havoc Pennington  <hp@redhat.com>
12312
12313         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12314         new function
12315         (dbus_connection_get_unix_user): new function
12316
12317 2003-03-20  Havoc Pennington  <hp@pobox.com>
12318
12319         * bus/connection.c (bus_connection_send_oom_error): assert that
12320         message has a sender
12321         (connection_execute_transaction): ditto
12322         (bus_connection_preallocate_oom_error): fix to set the sender, and
12323         set recipient to the destination service, not the bus driver
12324
12325         * bus/policy.c: hacking
12326
12327         * dbus/dbus-message.c (dbus_message_service_is): new function
12328         (dbus_message_sender_is): new
12329
12330 2003-03-19  Havoc Pennington  <hp@redhat.com>
12331
12332         * bus/policy.c: start sketching code for policy restrictions on
12333         what connections can do.
12334
12335 2003-03-18  Havoc Pennington  <hp@redhat.com>
12336
12337         * doc/TODO: some notes on high-level todo items. Little nitpick
12338         stuff is all in @todo, so no need to add it here.
12339
12340         * doc/config-file.txt: some notes on how config file might look
12341
12342 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12343
12344         * configure.in: 0.6
12345
12346         * NEWS: Update.
12347
12348 2003-03-17  Havoc Pennington  <hp@redhat.com>
12349
12350         * dbus/dbus-internals.h: add gcc attributes so that
12351         our printf-style functions warn on bad arguments to
12352         format
12353
12354         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12355         format bug
12356
12357         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12358         printf format bug
12359
12360 2003-03-17  Havoc Pennington  <hp@redhat.com>
12361
12362         * bus/test-main.c (main): make it print something as it runs
12363         so make check doesn't look stuck
12364
12365         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12366         from CVS, now obsolete
12367
12368 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12369
12370         * bus/dispatch.c: (bus_dispatch):
12371         Refetch the service name since it may have been reallocated
12372         when dbus_message_set_sender was called.
12373
12374         * dbus/dbus-sysdeps.c: (_dbus_accept):
12375         Add address and address length variables and use them to stop
12376         valgrind from complaining.
12377
12378 2003-03-17  Havoc Pennington  <hp@pobox.com>
12379
12380         All tests pass, no memleaks, no valgrind complaints.
12381
12382         * bus/test.c: refcount handler_slot
12383
12384         * bus/connection.c (bus_connections_new): refcount
12385         connection_data_slot
12386
12387         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12388         bytes so that auth scripts pass.
12389
12390         * bus/dispatch.c: init message_handler_slot so it gets allocated
12391         properly
12392
12393         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12394
12395         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12396         dealloc server_pipe_hash when no longer used for benefit of
12397         leak checking
12398
12399         * dbus/dbus-auth.c (process_command): memleak fix
12400
12401         * bus/dispatch.c (check_hello_message): memleak fix
12402
12403 2003-03-16  Havoc Pennington  <hp@pobox.com>
12404
12405         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12406
12407 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12408
12409         * bus/activation.c (bus_activation_activate_service): Append
12410         the pending activation entry to the list of pending activations.
12411
12412 2003-03-16  Havoc Pennington  <hp@pobox.com>
12413
12414         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12415         connections
12416
12417         * dbus/dbus-address.c (create_entry): fix OOM handling when
12418         failing to alloc entry->method
12419
12420 2003-03-16  Havoc Pennington  <hp@pobox.com>
12421
12422         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12423         the watch
12424
12425         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12426         add some missing dbus_set_result
12427
12428         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12429         alloc the DBusMessageHandler
12430
12431         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12432         the transport here, since we call this from the finalizer; it
12433         resulted in a double-finalize.
12434
12435         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12436         where we tried to use transport->connection that was NULL,
12437         happened when transport was disconnected early on due to OOM
12438
12439         * bus/*.c: adapt to handle OOM for watches/timeouts
12440
12441         * dbus/dbus-transport-unix.c: port to handle OOM during
12442         watch handling
12443
12444         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12445         reference to unused bytes instead of a copy
12446
12447         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12448         out of memory
12449
12450         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12451         FALSE on OOM
12452
12453         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12454         of memory
12455
12456 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12457
12458         * doc/dbus-specification.sgml:
12459         Document reply message for ActivateService.
12460
12461 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12462
12463         * bus/activation.c: (bus_pending_activation_entry_free),
12464         (bus_pending_activation_free), (bus_activation_new),
12465         (bus_activation_unref), (bus_activation_service_created),
12466         (bus_activation_activate_service):
12467         * bus/activation.h:
12468         * bus/bus.c: (bus_context_new):
12469         * bus/desktop-file.c: (new_section):
12470         * bus/driver.c: (bus_driver_send_service_deleted),
12471         (bus_driver_handle_activate_service):
12472         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12473         * bus/services.h:
12474         * dbus/dbus-connection.c:
12475         (dbus_connection_send_with_reply_and_block):
12476         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12477         * dbus/dbus-protocol.h:
12478         Make activation work better. Now pending activations will be queued
12479         and the daemon won't try to activate services that are already registered.
12480
12481 2003-03-16  Havoc Pennington  <hp@pobox.com>
12482
12483         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12484         connection data
12485
12486         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12487         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12488
12489 2003-03-16  Havoc Pennington  <hp@pobox.com>
12490
12491         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12492         this. always run the test suite before commit...
12493
12494         * bus/*: adapt to DBusConnection API changes
12495
12496         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12497         requires renaming stuff to avoid dbus_connection_dispatch name
12498         conflict.
12499
12500         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12501         function
12502
12503         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12504         separate from _dbus_message_loader_return_buffer()
12505
12506         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12507         this, because it's now always broken to use; the number of
12508         messages in queue vs. the number still buffered by the message
12509         loader is undefined/meaningless. Should use
12510         dbus_connection_get_dispatch_state().
12511         (dbus_connection_dispatch): rename from
12512         dbus_connection_dispatch_message
12513
12514 2003-03-16  Havoc Pennington  <hp@pobox.com>
12515
12516         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12517         implementation
12518
12519 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12520
12521         * dbus/dbus-connection.c:
12522         (dbus_connection_send_with_reply_and_block):
12523         Decrease connection->n_incoming when removing an entry
12524         from the list.
12525         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12526         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12527         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12528         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12529         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12530         (dbus_dict_get_byte_array):
12531         Handle NULL arrays and strings. Also add support for byte arrays.
12532
12533         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12534         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12535         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12536         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12537         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12538         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12539         * dbus/dbus-marshal.h:
12540         Add support for marshalling and demarshalling empty arrays and strings.
12541
12542         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12543         (dbus_message_append_string_array),
12544         (dbus_message_iter_get_boolean),
12545         (dbus_message_iter_get_boolean_array),
12546         (dbus_message_iter_get_int32_array),
12547         (dbus_message_iter_get_uint32_array),
12548         (dbus_message_iter_get_double_array),
12549         (dbus_message_iter_get_byte_array),
12550         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12551         (check_message_handling):
12552         Add support for getting empty arrays and dicts.
12553
12554         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12555         Don't do any validation at all for now, that's better than just checking
12556         for ASCII.
12557
12558         * test/data/valid-messages/emptiness.message:
12559         New test message with lots of empty arrays.
12560
12561 2003-03-16  Havoc Pennington  <hp@pobox.com>
12562
12563         * dbus/dbus-connection.c
12564         (_dbus_connection_queue_received_message_link): new function that
12565         can't fail due to OOM
12566
12567         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12568         new function pops a message together with a list link
12569         containing it.
12570
12571         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12572         message queuing functions to avoid needing to alloc memory
12573
12574 2003-03-16  Havoc Pennington  <hp@pobox.com>
12575
12576         Oops - test code was only testing failure of around 30 of the
12577         mallocs in the test path, but it turns out there are 500+
12578         mallocs. I believe this was due to misguided linking setup such
12579         that there was one copy of dbus_malloc etc. in the daemon and one
12580         in the shared lib, and only daemon mallocs were tested. In any
12581         case, the test case now tests all 500+ mallocs, and doesn't pass
12582         yet, though there are lots of fixes in this patch.
12583
12584         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12585         this so that it doesn't need to allocate memory, since it
12586         has no way of indicating failure due to OOM (and would be
12587         annoying if it did).
12588
12589         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12590
12591         * bus/Makefile.am: rearrange to create two self-contained
12592         libraries, to avoid having libraries with overlapping symbols.
12593         that was resulting in weirdness, e.g. I'm pretty sure there
12594         were two copies of global static variables.
12595
12596         * dbus/dbus-internals.c: move the malloc debug stuff to
12597         dbus-memory.c
12598
12599         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12600         empty.
12601
12602         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12603
12604         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12605         on failure.
12606
12607         * bus/dispatch.c (bus_dispatch_add_connection): free
12608         message_handler_slot when no longer using it, so
12609         memory leak checkers are happy for the test suite.
12610
12611         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12612
12613         * bus/bus.c (new_connection_callback): disconnect in here if
12614         bus_connections_setup_connection fails.
12615
12616         * bus/connection.c (bus_connections_unref): fix to free the
12617         connections
12618         (bus_connections_setup_connection): if this fails, don't
12619         disconnect the connection, just be sure there are no side
12620         effects.
12621
12622         * dbus/dbus-string.c (undo_alignment): unbreak this
12623
12624         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12625         leaking
12626         (_dbus_auth_new): fix the order in which we free strings
12627         on OOM failure
12628
12629         * bus/connection.c (bus_connection_disconnected): fix to
12630         not send ServiceDeleted multiple times in case of memory
12631         allocation failure
12632
12633         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12634         get the base service name
12635         (dbus_bus_register_client): don't return base service name,
12636         instead store it on the DBusConnection and have an accessor
12637         function for it.
12638         (dbus_bus_register_client): rename dbus_bus_register()
12639
12640         * bus/dispatch.c (check_hello_message): verify that other
12641         connections on the bus also got the correct results, not
12642         just the one sending hello
12643
12644 2003-03-15  Havoc Pennington  <hp@pobox.com>
12645
12646         Make it pass the Hello handling test including all OOM codepaths.
12647         Now to do other messages...
12648
12649         * bus/services.c (bus_service_remove_owner): fix crash when
12650         removing owner from an empty list of owners
12651         (bus_registry_ensure): don't leave service in the list of
12652         a connection's owned services if we fail to put the service
12653         in the hash table.
12654
12655         * bus/connection.c (bus_connection_preallocate_oom_error): set
12656         error flag on the OOM error.
12657
12658         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12659         handle _dbus_transport_set_connection failure
12660
12661         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12662         to create watches up front and simply enable/disable them as
12663         needed.
12664         (unix_connection_set): this can now fail on OOM
12665
12666         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12667         of enabling/disabling a watch or timeout.
12668
12669         * bus/loop.c (bus_loop_iterate): don't touch disabled
12670         watches/timeouts
12671
12672         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12673
12674 2003-03-15  Havoc Pennington  <hp@pobox.com>
12675
12676         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12677         write useful test code, after all that futzing around ;-)
12678
12679         Test does not yet pass because we can't handle OOM in
12680         _dbus_transport_messages_pending (basically,
12681         dbus_connection_preallocate_send() does not prealloc the write
12682         watch). To fix this, I think we need to add new stuff to
12683         set_watch_functions, namely a SetEnabled function so we can alloc
12684         the watch earlier, then enable it later.
12685
12686         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12687         dbus-memory.c to the convenience lib
12688
12689         * bus/test.c: rename some static functions to keep them clearly
12690         distinct from stuff in connection.c. Handle client disconnection.
12691
12692 2003-03-14  Havoc Pennington  <hp@pobox.com>
12693
12694         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12695         transport, tests more of the real codepath. Set up clients
12696         with bus_setup_debug_client.
12697
12698         * bus/test.c (bus_setup_debug_client): function to set up debug
12699         "clients" on the main loop
12700
12701         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12702         support
12703
12704         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12705         server type
12706
12707         * dbus/dbus-server-debug.c: support a debug server based on pipes
12708
12709         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12710         (_dbus_close): new function
12711
12712         * configure.in: check for socketpair
12713
12714 2003-03-14  Havoc Pennington  <hp@redhat.com>
12715
12716         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12717         cheesy hack
12718
12719         * dbus/dbus-transport-debug.c: rework this a good bit to be
12720         less complicated. hopefully still works.
12721
12722         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12723         manually
12724
12725         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12726         after running it
12727
12728         * dbus/dbus-message.c (dbus_message_copy): rename from
12729         dbus_message_new_from_message, fix it up to copy
12730         all the message fields, add test case
12731
12732         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12733         not quite passing yet
12734
12735 2003-03-14  Havoc Pennington  <hp@pobox.com>
12736
12737         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12738         until no work remains" in test code. (the large diff here
12739         is just code movement, no actual changes)
12740
12741         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12742         1, no point waiting around for test code.
12743         (_dbus_server_debug_accept_transport): unref the timeout
12744         after adding it (right?)
12745
12746         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12747
12748 2003-03-13  Havoc Pennington  <hp@redhat.com>
12749
12750         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12751         out of memory
12752
12753         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12754         of memory
12755
12756         * dbus/dbus-connection.h: Make AddWatchFunction and
12757         AddTimeoutFunction return a bool so they can fail on out-of-memory
12758
12759         * bus/bus.c (bus_context_new): set up timeout handlers
12760
12761         * bus/connection.c (bus_connections_setup_connection): set up
12762         timeout handlers
12763
12764         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12765         can fail
12766
12767         * bus/bus.c (bus_context_new): adapt to changes
12768
12769         * bus/connection.c: adapt to changes
12770
12771         * test/watch.c: adapt to DBusWatch changes
12772
12773         * bus/dispatch.c (bus_dispatch_test): started adding this but
12774         didn't finish
12775
12776 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12777
12778         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12779
12780 2003-03-13  Havoc Pennington  <hp@pobox.com>
12781
12782         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12783         set up a test framework as for the library
12784
12785 2003-03-12  Havoc Pennington  <hp@pobox.com>
12786
12787         Throughout: purge global variables, introduce BusActivation,
12788         BusConnections, BusRegistry, etc. objects instead.
12789
12790         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12791         message bus object
12792
12793         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12794         going to redo this a bit differently I think
12795
12796 2003-03-12  Havoc Pennington  <hp@redhat.com>
12797
12798         Mega-patch that gets the message bus daemon initially handling
12799         out-of-memory. Work still needed. Also lots of random
12800         moving stuff to DBusError instead of ResultCode.
12801
12802         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12803
12804         * dbus/dbus-connection.c
12805         (dbus_connection_send_with_reply_and_block): use DBusError
12806
12807         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12808         DBusResultCode
12809
12810         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12811         code here, as the only failure possible is OOM.
12812
12813         * bus/connection.c (bus_connection_disconnect):
12814         rename bus_connection_disconnected as it's a notification only
12815
12816         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12817         "name" on get_args failure, should be done by get_args;
12818         don't disconnect client for bad args, just return an error.
12819         (bus_driver_handle_service_exists): ditto
12820
12821         * bus/services.c (bus_services_list): NULL-terminate returned array
12822
12823         * bus/driver.c (bus_driver_send_service_lost)
12824         (bus_driver_send_service_acquired): send messages from driver to a
12825         specific client to the client's unique name, not to the broadcast
12826         service.
12827
12828         * dbus/dbus-message.c (decode_header_data): reject messages that
12829         contain no name field
12830         (_dbus_message_get_client_serial): rename to
12831         dbus_message_get_serial and make public
12832         (_dbus_message_set_serial): rename from set_client_serial
12833         (_dbus_message_set_reply_serial): make public
12834         (_dbus_message_get_reply_serial): make public
12835
12836         * bus/connection.c (bus_connection_foreach): allow stopping
12837         iteration by returning FALSE from foreach function.
12838
12839         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12840         (dbus_connection_free_preallocated_send)
12841         (dbus_connection_preallocate_send): new API for sending a message
12842         without possibility of malloc failure.
12843         (dbus_connection_send_message): rename to just
12844         dbus_connection_send (and same for whole function family)
12845
12846         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12847
12848         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12849
12850         * bus/activation.c: handle/return errors
12851
12852         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12853
12854         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12855         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12856         (_dbus_result_from_errno): move to this file
12857
12858 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12859
12860         * dbus/dbus-marshal.c:
12861         (_dbus_marshal_set_string):
12862         Take a length argument so we can marshal the correct string
12863         length.
12864
12865         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12866         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12867         (_dbus_marshal_test):
12868         * dbus/dbus-marshal.h:
12869         Add support for marshalling and demarshalling dicts.
12870
12871         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12872         Add support for TYPE DICT.
12873
12874         * dbus/dbus-message.c: (set_string_field):
12875         Adjust header padding.
12876
12877         (dbus_message_append_args_valist), (dbus_message_append_dict),
12878         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12879         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12880         (check_message_handling), (check_have_valid_message):
12881         * dbus/dbus-message.h:
12882         Add functions for setting and getting dicts.
12883
12884         * dbus/dbus-protocol.h:
12885         Add DBUS_TYPE_DICT.
12886
12887         * dbus/dbus.h:
12888         Add dbus-dict.h
12889
12890         * doc/dbus-specification.sgml:
12891         Add information about how dicts are marshalled.
12892
12893         * test/data/invalid-messages/dict-with-nil-value.message:
12894         * test/data/invalid-messages/too-short-dict.message:
12895         * test/data/valid-messages/dict-simple.message:
12896         * test/data/valid-messages/dict.message:
12897         Add sample messages containing dicts.
12898
12899 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12900
12901         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12902
12903 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12904
12905         * dbus/Makefile.am:
12906         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12907         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12908         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12909         (dbus_dict_set_double), (dbus_dict_set_string),
12910         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12911         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12912         (dbus_dict_set_string_array), (_dbus_dict_test):
12913         * dbus/dbus-dict.h:
12914         Fix according to comments from Havoc.
12915
12916 2003-03-06  Michael Meeks  <michael@server.home>
12917
12918         * configure.in: if we don't have kde-config, disable have_qt.
12919
12920 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12921
12922         * dbus/Makefile.am:
12923         Add dbus-dict.[ch]
12924
12925         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12926         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12927         (dbus_dict_remove), (dbus_dict_get_value_type),
12928         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12929         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12930         (dbus_dict_put_double), (dbus_dict_put_string),
12931         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12932         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12933         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12934         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12935         (dbus_dict_get_double), (dbus_dict_get_string),
12936         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12937         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12938         (dbus_dict_get_string_array), (_dbus_dict_test):
12939         * dbus/dbus-dict.h:
12940         Add DBusDict implementation
12941
12942         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12943         * dbus/dbus-test.h:
12944         Add _dbus_dict_test
12945
12946 2003-03-04  Havoc Pennington  <hp@pobox.com>
12947
12948         * test/data/auth/*: adapt to changes
12949
12950         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12951         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12952         userid
12953
12954         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12955         more stuff from being in a context name, to make the protocol
12956         simpler to deal with
12957
12958         * dbus/dbus-errors.c (dbus_error_has_name): new function
12959         (dbus_error_is_set): new function
12960
12961         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12962         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12963
12964         * dbus/dbus-connection.c (dbus_connection_flush): also read
12965         messages during a flush operation
12966
12967         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12968
12969 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12970
12971         * configure.in: Check for gethostbyname on Solaris.
12972
12973         * dbus/dbus-transport.c: (_dbus_transport_open):
12974         Remove duplicate "tcp" entry.
12975
12976         * doc/dbus-specification.sgml:
12977         Clarify some things.
12978
12979 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12980
12981         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12982         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12983         (_dbus_keyring_test):
12984         * dbus/dbus-md5.c: (_dbus_md5_compute):
12985         * dbus/dbus-sha.c: (_dbus_sha_compute):
12986         Plug memory leaks.
12987
12988 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12989
12990         * README: Add some things.
12991
12992 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12993
12994         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12995         after case DBUS_TYPE_BOOELAN.
12996
12997 2003-03-02  Havoc Pennington  <hp@pobox.com>
12998
12999         * test/break-loader.c (randomly_set_extreme_ints): add test that
13000         sets really huge and small integers
13001
13002         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13003         that length of boolean array fits in the string, and that
13004         string has room for boolean value in single-bool case.
13005
13006         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13007         optional value to "ALIGN" command which is what to fill the
13008         alignment with.
13009
13010         * test/data/valid-messages/no-padding.message: add regression
13011         test for the message padding problem
13012
13013 2003-03-02  Havoc Pennington  <hp@pobox.com>
13014
13015         * dbus/dbus-message.c (decode_header_data): fix to always init
13016         message_padding, from Benjamin Dauvergne
13017
13018 2003-03-02  Havoc Pennington  <hp@pobox.com>
13019
13020         * configure.in: 0.5
13021
13022         * NEWS: Update.
13023
13024 2003-03-01  Joe Shaw  <joe@assbarn.com>
13025
13026         * configure.in: Check for "struct cmsgcred" and try to access its
13027         members for BSD-like unices.
13028
13029         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13030         _dbus_read_credentials_unix_socket().
13031         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13032         read() for reading the credential byte off the unix socket.  Use
13033         struct cmsgcred on systems that support it.
13034
13035 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13036
13037         * glib/Makefile.am:
13038         * configure.in:
13039         Make gthreads-2.0 dependency optional. Don't build thread test if
13040         its not found.
13041
13042 2003-02-27  Havoc Pennington  <hp@pobox.com>
13043
13044         * dbus/dbus-connection.c
13045         (dbus_connection_send_message_with_reply_and_block): fix doh!
13046         doh! doh! bug that resulted in never removing a reply from the
13047         queue, no wonder we called get_reply_serial so much ;-)
13048
13049         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13050         and client serial instead of demarshaling them every time
13051
13052 2003-02-27  Havoc Pennington  <hp@pobox.com>
13053
13054         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13055         more inlined, using dbus-string-private.h, speeds things up
13056         substantially
13057
13058         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13059         when freeing the string
13060         (_dbus_string_steal_data): fix for align offset
13061         (undo_alignment): new function
13062
13063 2003-02-26  Havoc Pennington  <hp@redhat.com>
13064
13065         All kinds of audit fixes from Owen, plus initial attempt to
13066         handle unaligned memory returned from malloc.
13067
13068         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13069         leave room for align_offset and nul byte
13070         (fixup_alignment): function to track an align_offset and
13071         ensure real->str is aligned
13072         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13073         to allow a nul byte plus align offset
13074         (_dbus_string_lock): fix overflow issue
13075         (_dbus_string_init_const_len): add assertions on sanity of len,
13076         assign allocated to be ALLOCATION_PADDING larger than len
13077         (set_length): fixup the overflow handling
13078         (_dbus_string_get_data_len): fix overflow in assertion
13079         (open_gap): detect overflow in size of gap to be opened
13080         (_dbus_string_lengthen): add overflow check
13081         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13082         (_dbus_string_append): add overflow check
13083         (_dbus_string_append_unichar): overflow
13084         (_dbus_string_delete): fix overflow in assertion
13085         (_dbus_string_copy_len): overflow in assertion
13086         (_dbus_string_replace_len): overflows in assertions
13087         (_dbus_string_find): change to implement in terms of
13088         _dbus_string_find_to
13089         (_dbus_string_find_to): assorted fixage
13090         (_dbus_string_equal_c_str): assert c_str != NULL,
13091         fix logic so the function works
13092         (_dbus_string_ends_with_c_str): fix overflow thingy
13093         (_dbus_string_base64_encode): overflow fix
13094         (_dbus_string_validate_ascii): overflow
13095         (_dbus_string_validate_nul): overflow
13096
13097 2003-02-26  Havoc Pennington  <hp@redhat.com>
13098
13099         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13100
13101 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13102
13103         * configure.in:
13104         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13105
13106         * dbus/dbus-connection.c:
13107         * dbus/dbus-connection.h:
13108         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13109         Add dbus_connection_set_wakeup_main_function and use it when queueing
13110         incoming and outgoing messages.
13111
13112
13113         * dbus/dbus-dataslot.c:
13114         Threadsafe usage of DBusDataSlotAllocator
13115
13116         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13117         dbus_new can fail.
13118
13119         * dbus/dbus-server-unix.c:
13120         Add todo comment
13121
13122         * glib/dbus-gmain.c:
13123         Implement the new wakeup functions for glib.
13124
13125         * glib/Makefile.am:
13126         * glib/test-thread-client.c:
13127         * glib/test-thread-server.c:
13128         * glib/test-thread.h:
13129         Initial cut at some thread test code. Not really done yet.
13130
13131 2003-02-26  Havoc Pennington  <hp@pobox.com>
13132
13133         * dbus/dbus-connection.c
13134         (dbus_connection_send_message_with_reply_and_block): fix crash
13135         where we ref'd the outgoing message instead of the returned reply
13136
13137         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13138         at the end of this function, so if we didn't need to read for
13139         authentication, we reinstall it for receiving messages
13140
13141         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13142         a NULL sender for peer-to-peer case
13143
13144         * dbus/dbus-transport-unix.c (check_read_watch): handle
13145         !authenticated case correctly
13146
13147         * glib/dbus-gmain.c: add support for DBusServer
13148
13149         * dbus/dbus-server.c: add data slot support
13150
13151         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13152         return values and handle errors
13153
13154         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13155         DBusConnection
13156
13157         * Doxyfile.in (INPUT): add glib subdir
13158
13159         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13160         setup_with_g_main instead of hookup_with_g_main; write docs
13161
13162 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13163
13164         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13165         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13166         * dbus/dbus-message.c: (dbus_message_append_boolean),
13167         (dbus_message_append_boolean_array),
13168         (dbus_message_get_args_valist), (_dbus_message_test):
13169         * dbus/dbus-message.h:
13170         * doc/dbus-specification.sgml:
13171         Various fixes as pointed out by Havoc.
13172
13173         * test/data/invalid-messages/bad-boolean-array.message:
13174         * test/data/invalid-messages/bad-boolean.message:
13175         Add invalid boolean value test cases.
13176
13177 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13178
13179         * dbus/dbus-internals.c: (_dbus_type_to_string):
13180         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13181         (_dbus_marshal_validate_arg):
13182         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13183         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13184         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13185         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13186         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13187         (dbus_message_iter_get_double),
13188         (dbus_message_iter_get_boolean_array), (message_iter_test):
13189         * dbus/dbus-message.h:
13190         * dbus/dbus-protocol.h:
13191         * doc/dbus-specification.sgml:
13192         * test/data/valid-messages/lots-of-arguments.message:
13193         Add support for boolean and boolean array types.
13194
13195 2003-02-23  Havoc Pennington  <hp@pobox.com>
13196
13197         * dbus/dbus-keyring.c: finish most of this implementation and
13198         simple unit test
13199
13200         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13201         these barf if the error isn't cleared to NULL
13202
13203         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13204         (_dbus_create_directory): new function
13205
13206         * dbus/dbus-errors.c (dbus_set_error): fix warning
13207
13208         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13209         (_dbus_string_hex_decode): new function
13210         (test_hex_roundtrip): test code
13211
13212         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13213
13214         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13215
13216         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13217         the save-to-temp/rename trick to atomically write the new file
13218         (_dbus_string_parse_uint): new function
13219
13220 2003-02-22  Havoc Pennington  <hp@pobox.com>
13221
13222         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13223
13224 2003-02-22  Havoc Pennington  <hp@pobox.com>
13225
13226         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13227         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13228
13229         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13230
13231         * dbus/test/data/sha-1: add US government test suite for SHA-1
13232
13233 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13234
13235         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13236         Make string arrays NULL-terminated.
13237
13238         * dbus/dbus-memory.c: (dbus_free_string_array):
13239         * dbus/dbus-memory.h:
13240         New function for freeing NULL-terminated string arrays.
13241
13242         * dbus/dbus-message-builder.c: (append_quoted_string),
13243         (_dbus_message_data_load):
13244         Add support for array types.
13245
13246         * dbus/dbus-message.c: (check_message_handling):
13247         Add more types as test cases.
13248
13249         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13250         (_dbus_string_parse_double):
13251         Add the start offset to the end offset.
13252
13253         * test/data/valid-messages/lots-of-arguments.message:
13254         New test message with lots of arguments.
13255
13256 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13257
13258         * dbus/dbus-message.c: (dbus_message_append_nil),
13259         (dbus_message_append_int32), (dbus_message_append_uint32),
13260         (dbus_message_append_double), (dbus_message_append_string),
13261         (dbus_message_append_int32_array),
13262         (dbus_message_append_uint32_array),
13263         (dbus_message_append_double_array),
13264         (dbus_message_append_byte_array),
13265         (dbus_message_append_string_array):
13266         Fix all out-of-memory handling in these functions.
13267
13268 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13269
13270         * dbus/dbus-message.c: (dbus_message_append_nil):
13271         Fix a silly.
13272
13273 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13274
13275         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13276         (dbus_message_append_nil), (dbus_message_append_int32_array),
13277         (dbus_message_append_uint32_array),
13278         (dbus_message_append_double_array),
13279         (dbus_message_append_byte_array),
13280         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13281         (dbus_message_iter_get_int32_array),
13282         (dbus_message_iter_get_uint32_array),
13283         (dbus_message_iter_get_double_array),
13284         (dbus_message_iter_get_byte_array),
13285         (dbus_message_iter_get_string_array):
13286
13287         * dbus/dbus-message.h:
13288         Add functions for appending and getting arrays.
13289
13290 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13291
13292         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13293         element size at least 8 bytes, fixes mempool tests on
13294         64-bit machines.
13295
13296 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13297
13298         * dbus/dbus-transport-unix.c (unix_do_iteration):
13299         Unlock the connection mutex during a blocking select call.
13300         Add todo about how we need a way to wake up the select.
13301
13302         * dbus/dbus-connection-internal.h:
13303         * dbus/dbus-connection.c:
13304         Add _dbus_connection_lock and _dbus_connection_unlock.
13305
13306 2003-02-19  Havoc Pennington  <hp@pobox.com>
13307
13308         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13309         Doxyfile.in, not Doxyfile
13310
13311         * dbus/dbus-keyring.c: do some hacking on this
13312
13313         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13314
13315         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13316         dbus_error_init
13317         (dbus_set_error): remove dbus_error_init, check for message ==
13318         NULL *before* we sprintf into it, and add @todo about including
13319         system headers in this file
13320
13321         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13322
13323         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13324
13325         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13326         get various bits of user information based on either username
13327         or user ID
13328         (_dbus_homedir_from_username): new function
13329
13330 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13331
13332         * configure.in:
13333         Add check for nonposix getpwnam_r
13334
13335         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13336         Align the pool element size to a sizeof (void *) boundary.
13337
13338         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13339         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13340         General Solaris fixes.
13341
13342         * test/data/valid-messages/simplest-manual.message:
13343         Explicitly state that we want little-endian packing.
13344
13345 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13346
13347         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13348
13349         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13350         Added to create a transport connecting using a tcp/ip socket.
13351
13352         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13353         to a tcp socket at given host and port.
13354         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13355         hostname and port.
13356
13357         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13358
13359         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13360         Added to create a server listening on a TCP/IP socket.
13361
13362 2003-02-19  Havoc Pennington  <hp@pobox.com>
13363
13364         Throughout: mop up all the Doxygen warnings and undocumented
13365         stuff.
13366
13367         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13368         to search any paths.
13369
13370         * dbus/dbus-threads.c: move global mutex initializers to
13371         dbus-internals.h, multiple prototypes was confusing doxygen
13372         besides being kind of ugly
13373
13374         * Doxyfile (PREDEFINED): have Doxygen define
13375         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13376         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13377         (do not abuse the feature! it's for stuff like the autogenerated
13378         macros in dbus-md5.c, not just for things you don't feel like
13379         documenting...)
13380
13381 2003-02-18  Havoc Pennington  <hp@pobox.com>
13382
13383         * dbus/dbus-string.c (_dbus_string_zero): new function
13384
13385         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13386         wrap it in some dbus-friendly API
13387
13388         * dbus/dbus-types.h: add 16-bit types
13389
13390 2003-02-18  Joe Shaw  <joe@assbarn.com>
13391
13392         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13393         credentials from our currently running process.
13394         (get_word): Fix a buglet where we were copying the entire length
13395         instead of relative to our position.
13396
13397         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13398         keys on the stack... it's 640k of data.
13399
13400         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13401         read the credentials byte off the socket, even if we don't have
13402         SO_PEERCRED.
13403         (_dbus_poll): Implement poll() using select() for systems which
13404         don't have it.
13405
13406         * glib/test-dbus-glib.c (main): Print out an error if no
13407         parameters are given.
13408
13409         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13410         can fallback to a secondary auth mechanism if the first fails.
13411
13412 2003-02-18  Havoc Pennington  <hp@pobox.com>
13413
13414         * AUTHORS: add Alex
13415
13416 2003-02-17  Havoc Pennington  <hp@pobox.com>
13417
13418         * doc/dbus-specification.sgml: lots of cosmetic
13419         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13420         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13421         s/server/bus/ (except in authentication section). Add a section
13422         "Message Bus Message Routing"
13423
13424 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13425
13426         Release 0.4
13427
13428         * NEWS: Update
13429
13430 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13431
13432         * doc/dbus-specification.sgml:
13433         Specification updates.
13434
13435 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13436
13437         * bus/activation.c: (bus_activation_init), (child_setup),
13438         (bus_activation_activate_service):
13439         * bus/activation.h:
13440         * bus/main.c: (main):
13441         Set DBUS_ADDRESS environment variable.
13442
13443         * dbus/dbus-errors.c: (dbus_set_error):
13444         Don't use va_copy since that's a C99 feature.
13445
13446         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13447         (_dbus_spawn_async):
13448         * dbus/dbus-sysdeps.h:
13449         Add child_setup_func to _dbus_spawn_async.
13450
13451         * doc/dbus-specification.sgml:
13452         Update specification.
13453
13454         * test/spawn-test.c: (setup_func), (main):
13455         Fix test.
13456
13457 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13458
13459         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13460         Added todo.
13461
13462 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13463
13464         * doc/.cvsignore:
13465         * doc/Makefile.am:
13466         * doc/dbus-test-plan.sgml:
13467         Add test plan document.
13468
13469         * test/Makefile.am:
13470         Fix distcheck.
13471
13472 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13473
13474         * dbus/dbus-message.c: (decode_header_data),
13475         (_dbus_message_loader_return_buffer):
13476         Set the header padding amount when loading a message.
13477
13478 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13479
13480         * bus/dispatch.c: (send_one_message):
13481         Only send broadcast messages to registered connections.
13482
13483         * dbus/dbus-message.c: (dbus_message_name_is):
13484         * dbus/dbus-message.h:
13485         New convenience function.
13486
13487         * dbus/dbus-transport-debug.c: (do_reading):
13488         Only dispatch one message per run.
13489
13490         * test/Makefile.am:
13491         * test/bus-test.c: (new_connection_callback), (die),
13492         (test_hello_client1_handler), (test_hello_client2_handler),
13493         (test_hello_replies), (main):
13494
13495         * test/bus-test-loop.[ch]:
13496         Add these.
13497
13498 2003-02-16  Havoc Pennington  <hp@pobox.com>
13499
13500         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13501         backward conditional
13502
13503 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13504
13505         * dbus/dbus-connection.c:
13506         Implement sent_message_with_reply. (with_reply_and block is still
13507         busted).
13508         Made dispatch_message not lose message if OOM.
13509
13510         * dbus/dbus-errors.h:
13511         Add NoReply error (for reply timeouts).
13512
13513 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13514
13515         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13516         Actually free keys and values when destroying hashtable.
13517
13518 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13519
13520         * dbus/dbus-auth.c: (client_try_next_mechanism):
13521         Plug a leak.
13522
13523         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13524         Return TRUE if there's no thread implementation around.
13525
13526         * glib/dbus-gmain.c: (free_source),
13527         (dbus_connection_hookup_with_g_main):
13528         Make sure to remove the GSource when the connection is finalized.
13529
13530 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13531
13532         * bus/dispatch.c: (bus_dispatch_message_handler):
13533         * dbus/dbus-errors.h:
13534         Return an error if someone tries to send a message to a service
13535         that doesn't exist.
13536
13537 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13538
13539         * bus/activation.c: (load_directory), (bus_activation_init),
13540         (bus_activation_activate_service):
13541         * bus/activation.h:
13542         * bus/driver.c:
13543         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13544         More work on the activation handling.
13545
13546         * dbus/dbus-errors.h:
13547         Add some error messages
13548
13549         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13550         * dbus/dbus-message.h:
13551         New function that creates an error message.
13552
13553         * dbus/dbus-protocol.h:
13554         Add ACTIVATE_SERVER message.
13555
13556         * dbus/dbus-server-unix.c: (unix_handle_watch),
13557         (_dbus_server_new_for_domain_socket):
13558         Call _dbus_fd_set_close_on_exec.
13559
13560         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13561         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13562         (_dbus_fd_set_close_on_exec):
13563         * dbus/dbus-sysdeps.h:
13564         Add _dbus_fd_set_close_on exec function. Also add function that checks
13565         that all open fds are set to close-on-exec and warns otherwise.
13566
13567         * dbus/dbus-transport-unix.c:
13568         (_dbus_transport_new_for_domain_socket):
13569         Call _dbus_fd_set_close_on_exec.
13570
13571 2003-02-16  Havoc Pennington  <hp@pobox.com>
13572
13573         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13574         allow people to avoid setting SIGPIPE to SIG_IGN
13575         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13576         we've been asked not to
13577
13578 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13579
13580         * dbus/dbus-list.c: (_dbus_list_append_link),
13581         (_dbus_list_prepend_link):
13582         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13583         (dbus_realloc):
13584         Warning fixes.
13585
13586 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13587
13588         * bus/Makefile.am:
13589         * bus/activation.c: (bus_activation_entry_free),
13590         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13591         * bus/activation.h:
13592         * bus/main.c: (main):
13593         Add simple activation support, doesn't work yet though.
13594
13595 2003-02-15   Zack Rusin  <zack@kde.org>
13596
13597         * qt/dbus-qthread.cpp:  small casting fix
13598
13599 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13600
13601         * dbus/dbus-errors.c: (dbus_set_error):
13602         * dbus/dbus-errors.h:
13603         Add a few errors and make dbus_set_error void.
13604
13605         * dbus/dbus-sysdeps.c:
13606         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13607         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13608         * dbus/dbus-sysdeps.h:
13609         Add _dbus_spawn_async.
13610
13611         * test/spawn-test.c: (main):
13612         Test for _dbus_spawn_async.
13613
13614 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13615
13616         * dbus/dbus-internals.h:
13617         Fix build without tests.
13618
13619         * dbus/dbus-list.c: (alloc_link):
13620         Fix a segfault when a malloc fails.
13621
13622         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13623         (dbus_malloc0), (dbus_realloc):
13624         Add support for malloc debugging.
13625
13626 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13627
13628         * dbus/dbus-threads.c:
13629         * dbus/dbus-threads.h:
13630         Add condvars. Remove static mutext from API.
13631         Implement static mutexes by initializing them from threads_init.
13632
13633         * glib/dbus-gthread.c:
13634         * qt/dbus-qthread.cpp:
13635         Update with the thread api changes.
13636
13637
13638         * dbus/dbus-list.c:
13639         * dbus/dbus-list.h:
13640         Turn StaticMutex into normal mutex + init function.
13641         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13642         _dbus_list_append_link, _dbus_list_prepend_link
13643
13644
13645         * dbus/dbus-sysdeps.c:
13646         * dbus/dbus-sysdeps.h:
13647         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13648         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13649
13650         * dbus/dbus-protocol.h:
13651         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13652
13653         * dbus/dbus-message.c:
13654         Make ref/unref atomic.
13655         Fix some docs.
13656
13657         * dbus/dbus-connection-internal.h:
13658         * dbus/dbus-connection.c:
13659         * dbus/dbus-connection.h:
13660         Make threadsafe.
13661         Change _peek to _borrow,_return & _steal_borrowed.
13662         Change disconnect callback to event.
13663         Make dbus_connection_dispatch_messages reentrant.
13664
13665         * dbus/dbus-transport.c:
13666         Don't ref the connection on calls to the transport
13667         implementation.
13668
13669         * dbus/dbus-message-handler.c:
13670         Make threadsafe.
13671
13672         * glib/dbus-gmain.c:
13673         Don't use peek_message anymore
13674
13675         * test/Makefile.am:
13676         * test/debug-thread.c:
13677         * test/debug-thread.h:
13678         Simple thread implementation that asserts() on deadlocks in
13679         single-threaded code.
13680
13681         * test/bus-test.c:
13682         (main) Call debug_threads_init.
13683
13684         * test/watch.c:
13685         Use disconnect message instead of disconnect callback.
13686
13687         * bus/connection.c:
13688         * bus/connection.h:
13689         Don't call dbus_connection_set_disconnect_function. Instead export
13690         bus_connection_disconnect.
13691
13692         * bus/dispatch.c:
13693         Call bus_connection_disconnect when we get a disconnected message.
13694
13695 2003-02-15  Havoc Pennington  <hp@pobox.com>
13696
13697         * dbus/dbus-message.c (dbus_message_new): fool around with the
13698         docs
13699
13700 2003-02-14  Havoc Pennington  <hp@pobox.com>
13701
13702         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13703
13704         * dbus/dbus-memory.c: fail if the debug functions indicate we
13705         should
13706
13707         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13708         (_dbus_decrement_fail_alloc_counter): debug functions to
13709         simulate memory allocation failures
13710
13711 2003-02-14  Havoc Pennington  <hp@pobox.com>
13712
13713         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13714         to DBusError
13715
13716 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13717
13718         * bus/driver.c: (bus_driver_handle_hello):
13719         * bus/driver.h:
13720         * bus/services.c: (bus_service_lookup):
13721         Reorder message sending so we get a more sane order.
13722
13723         * test/bus-test.c: (message_handler):
13724         Fix tyop.
13725
13726 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13727
13728         * bus/driver.c: (bus_driver_send_service_deleted),
13729         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13730         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13731         (bus_driver_send_welcome_message),
13732         (bus_driver_handle_list_services),
13733         (bus_driver_handle_acquire_service),
13734         (bus_driver_handle_service_exists):
13735         * dbus/dbus-bus.c: (dbus_bus_register_client),
13736         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13737         * dbus/dbus-errors.c: (dbus_result_to_string):
13738         * dbus/dbus-errors.h:
13739         * dbus/dbus-message.c: (dbus_message_append_args),
13740         (dbus_message_append_args_valist), (dbus_message_get_args),
13741         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13742         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13743         (dbus_message_iter_get_byte_array),
13744         (dbus_message_iter_get_string_array), (message_iter_test),
13745         (check_message_handling), (_dbus_message_test):
13746         * dbus/dbus-message.h:
13747         * test/bus-test.c: (main):
13748         Change fields to arguments in messages, so that they won't be
13749         confused with header fields.
13750
13751         * glib/test-dbus-glib.c: (main):
13752         Remove append_fields from hello message.
13753
13754 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13755
13756         * dbus/dbus-errors.c:
13757         * dbus/dbus-message.c:
13758         * dbus/dbus-string.c:
13759         Documentation fixes.
13760
13761 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13762
13763         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13764         (remove_timeout):
13765         Implement support for timeouts in dbus-glib.
13766
13767 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13768
13769         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13770         * dbus/dbus-message.c: (process_test_subdir):
13771         * test/break-loader.c: (find_breaks_based_on):
13772         Plug some memory leaks.
13773
13774 2003-02-13  Richard Hult  <rhult@codefactory.se>
13775
13776         * bus/main.c: Fix build.
13777
13778         * dbus/dbus-errors.h:
13779         * dbus/dbus-errors.c: Fix copyright for Anders.
13780
13781 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13782
13783         * bus/Makefile.am:
13784         Add utils.[ch]
13785
13786         * bus/connection.c: (bus_connection_foreach):
13787         Fix a warning.
13788
13789         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13790         (unescape_string), (new_section), (parse_section_start),
13791         (parse_key_value), (report_error), (bus_desktop_file_load),
13792         (bus_desktop_file_get_string):
13793         * bus/desktop-file.h:
13794         Use DBusError for error reporting.
13795
13796         * bus/dispatch.c: (send_one_message),
13797         (bus_dispatch_message_handler):
13798         * bus/driver.c: (bus_driver_send_service_deleted),
13799         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13800         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13801         (bus_driver_send_welcome_message),
13802         (bus_driver_handle_list_services),
13803         (bus_driver_handle_acquire_service),
13804         (bus_driver_handle_service_exists):
13805         * bus/loop.c: (bus_loop_run):
13806         * bus/main.c:
13807         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13808
13809         * bus/utils.c: (bus_wait_for_memory):
13810         * bus/utils.h:
13811         New files with general utility functions.
13812
13813         * dbus/dbus-internals.h:
13814         Remove _DBUS_HANDLE_OOM.
13815
13816 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13817
13818         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13819         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13820         * dbus/dbus-errors.h:
13821         Add DBusError structure.
13822
13823 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13824
13825         * test/data/valid-messages/standard-acquire-service.message:
13826         * test/data/valid-messages/standard-hello.message:
13827         * test/data/valid-messages/standard-list-services.message:
13828         * test/data/valid-messages/standard-service-exists.message:
13829         Add some standard messages.
13830
13831 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13832
13833         * bus/driver.c: (bus_driver_send_welcome_message),
13834         (bus_driver_handle_list_services),
13835         (bus_driver_handle_acquire_service),
13836         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13837         Update for API changes in libdbus.
13838
13839         * dbus/dbus-message.c: (dbus_message_new_reply):
13840         * dbus/dbus-message.h:
13841         Remove the name argument. The spec states that replies shouldn't
13842         have a name.
13843
13844 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13845
13846         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13847         (report_error), (bus_desktop_file_load), (lookup_section),
13848         (lookup_line), (bus_desktop_file_get_raw),
13849         (bus_desktop_file_get_string):
13850         * bus/desktop-file.h:
13851         Some fixes, and new functions for getting a key value from a section.
13852
13853 2003-02-13  Havoc Pennington  <hp@pobox.com>
13854
13855         * test/data/auth/fail-after-n-attempts.auth-script: new test
13856
13857         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13858         reject the client.
13859
13860 2003-02-13  Havoc Pennington  <hp@pobox.com>
13861
13862         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13863         dbus_credentials_match were backward
13864
13865         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13866         NO_CREDENTIALS and ROOT_CREDENTIALS
13867
13868         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13869         into here. Never process more commands after we've reached an
13870         end state; store further data as unused bytes.
13871
13872         * test/data/auth/*: add more auth tests
13873
13874         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13875         command to match exact string and EXPECT_UNUSED to match unused
13876         bytes
13877
13878         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13879
13880 2003-02-12  Havoc Pennington  <hp@pobox.com>
13881
13882         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13883         \r off of popped lines
13884
13885         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13886         scripts
13887
13888         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13889         SEND, append \r\n
13890
13891 2003-02-12  Havoc Pennington  <hp@pobox.com>
13892
13893         * dbus/Makefile.am: remove break-loader from the build, since it
13894         moved.
13895
13896         * configure.in: add --enable-gcov to turn on coverage profiling
13897         flags and disable optimization
13898
13899 2003-02-10  Havoc Pennington  <hp@pobox.com>
13900
13901         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13902         initial cut at test framework for DBusAuth from laptop.
13903         Doesn't quite work yet but it compiles and I need to get
13904         it off the 266mhz laptop. ;-)
13905
13906         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13907         fix a memleak in error case
13908
13909 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13910
13911         * bus/Makefile.am:
13912         * bus/desktop-file.c:
13913         * bus/desktop-file.h:
13914         Add a desktop file parser.
13915
13916 2003-02-11  Zack Rusin  <zack@kde.org>
13917
13918         * qt/message.[h|cpp]: sample implementation
13919         of the KDE wrapper for DBusMessage
13920
13921 2003-02-09  Zack Rusin  <zack@kde.org>
13922
13923         * test/bus-test.c: make_it_compile
13924         * doc/dbus-specification.sgml: minimal semantic fix
13925
13926 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13927
13928         Release 0.3
13929
13930         * NEWS: Update
13931
13932 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13933
13934         * dbus/Makefile.am:
13935         * dbus/dbus-break-loader.c:
13936         * test/Makefile.am:
13937         * test/break-loader.c:
13938         Move dbus-break-loader to test/ and rename it to break-loader.
13939
13940 2003-02-02  Havoc Pennington  <hp@pobox.com>
13941
13942         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13943         for code to manage cookies in your home directory
13944
13945         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13946
13947         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13948         to authenticate, then disconnect the client.
13949
13950 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13951
13952         * dbus/dbus-message.c (dbus_message_append_fields):
13953         Correct docs.
13954
13955 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13956
13957         * doc/dbus-specification.sgml:
13958         Update address format section.
13959
13960 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13961
13962         * test/Makefile.am:
13963         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13964         (message_handler), (new_connection_callback), (loop_quit),
13965         (loop_run), (main):
13966         Add bus test.
13967
13968 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13969
13970         * bus/driver.c: (bus_driver_handle_service_exists):
13971         Simplify the code a bit.
13972
13973         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13974         Fix a silly.
13975
13976 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13977
13978         * bus/Makefile.am:
13979         Add libdbus-daemon.la and link to it.
13980
13981 2003-02-01  James Willcox  <jwillcox@gnome.org>
13982
13983         * bus/driver.c: (bus_driver_handle_own_service):
13984         Actually include the service reply code in the message.
13985
13986 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13987
13988         * bus/driver.c: (bus_driver_handle_service_exists):
13989         Don't unref the incoming message.
13990
13991 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13992
13993         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13994
13995 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13996
13997         * dbus/dbus-server.c: (dbus_server_listen):
13998         * dbus/dbus-transport.c: (_dbus_transport_open):
13999         ifdef out the calls to the debug transport and server.
14000
14001 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14002
14003         * dbus/dbus-watch.c (dbus_watch_get_flags):
14004         Add note in the docs that ERROR or HANGUP won't be returned
14005         and are assumed always on.
14006
14007         * glib/dbus-gmain.c (add_watch):
14008         Always add IO_ERR | IO_HUP
14009
14010         * dbus/dbus-message.h:
14011         Add semicolon after dbus_message_iter_get_string_array().
14012         Makes qt code build again
14013
14014 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14015
14016         * bus/driver.c: (create_unique_client_name),
14017         (bus_driver_handle_hello):
14018         Don't take a name, just use a numeric id to identify
14019         each client.
14020
14021         * dbus/Makefile.am:
14022         * dbus/dbus-bus.c: (dbus_bus_register_client),
14023         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14024         * dbus/dbus-bus.h:
14025         Add new convenience functions for communicating with the bus.
14026
14027         * dbus/dbus-message.h:
14028
14029         * dbus/dbus-protocol.h:
14030         Fix a typo.
14031
14032 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14033
14034         * dbus/dbus-message.c (dbus_message_append_fields):
14035         Add some more doc comments.
14036
14037 2003-02-01  Havoc Pennington  <hp@pobox.com>
14038
14039         * dbus/dbus-break-loader.c (randomly_modify_length): change
14040         a 4-byte value in the message as if it were a length
14041
14042         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14043         execute bit on saved files
14044
14045 2003-02-01  Havoc Pennington  <hp@pobox.com>
14046
14047         * dbus/dbus-break-loader.c (main): new program to find messages
14048         that break the loader.
14049
14050         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14051         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14052
14053         * dbus/dbus-string.c (_dbus_string_set_byte): new
14054
14055 2003-01-31  Havoc Pennington  <hp@pobox.com>
14056
14057         * dbus/dbus-message.c: refactor the test code to be more general,
14058         in preparation for writing a "randomly permute test cases to
14059         try to break the loader" program.
14060
14061 2003-01-31  Havoc Pennington  <hp@pobox.com>
14062
14063         * doc/dbus-specification.sgml: work on the specification
14064
14065         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14066         the protocol version of the message.
14067
14068         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14069         no longer specifies that.
14070         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14071         1/2/3/4)
14072
14073         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14074         "break" for DBUS_TYPE_NIL, remove @todo
14075
14076 2003-01-31  Havoc Pennington  <hp@pobox.com>
14077
14078         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14079         just set_is_error/get_is_error as this is a commonly-used
14080         function, and write docs.
14081
14082 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14083
14084         * dbus/dbus-address.c: (dbus_address_entry_free):
14085         Free key and value lists.
14086
14087         * dbus/dbus-internals.c: (_dbus_type_to_string):
14088         Add the types we didn't have.
14089
14090         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14091         (_dbus_marshal_validate_arg):
14092         Add NIL types.
14093
14094         * dbus/dbus-message.c: (dbus_message_set_sender):
14095         Remove todo about being able to set sender to NULL.
14096
14097         (dbus_message_set_is_error_reply),
14098         (dbus_message_get_is_error_reply):
14099         * dbus/dbus-message.h:
14100         New functions.
14101
14102         * dbus/dbus-protocol.h:
14103         Add error reply flag.
14104
14105         * test/data/valid-messages/opposite-endian.message:
14106         Add NIL type to test.
14107
14108 2003-01-31  Havoc Pennington  <hp@pobox.com>
14109
14110         * doc/dbus-specification.sgml: fully specify the header.  Add
14111         flags and major protocol version, and change header/body len to
14112         unsigned.
14113
14114         * dbus/dbus-message-builder.c (append_saved_length): append length
14115         as uint32
14116
14117         * dbus/dbus-message.c (dbus_message_create_header): change header
14118         length and body length to unsigned. Add the new fields from the
14119         spec
14120         (_dbus_message_loader_return_buffer): unsigned header/body len
14121
14122 2003-01-30  Havoc Pennington  <hp@pobox.com>
14123
14124         * dbus/dbus-auth.c: rework to use only REJECTED, no
14125         MECHANISMS
14126
14127         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14128         use REJECTED, suggested by Mark McLoughlin
14129
14130 2003-01-30  Havoc Pennington  <hp@pobox.com>
14131
14132         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14133         a better way to report errors here. e.g.  "unix address lacks
14134         path" or something. also "no such file" when the path doesn't
14135         exist, etc.
14136
14137         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14138         leaking list nodes
14139         (dbus_parse_address): add @todo about documenting address format,
14140         and allowing , and ; to be escaped
14141
14142 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14143
14144         * dbus/Makefile.am:
14145         Add dbus-address.[ch]
14146
14147         * dbus/dbus-address.c: (dbus_address_entry_free),
14148         (dbus_address_entries_free), (create_entry),
14149         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14150         (dbus_parse_address), (_dbus_address_test):
14151         * dbus/dbus-address.h:
14152         New files for dealing with address parsing.
14153
14154         * dbus/dbus-connection.c:
14155         Document timeout functions.
14156
14157         * dbus/dbus-message.c:
14158         Document dbus_message_new_from_message.
14159
14160         * dbus/dbus-server-debug.c:
14161         Document.
14162
14163         * dbus/dbus-server.c: (dbus_server_listen):
14164         Parse address and use correct server implementation.
14165
14166         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14167         * dbus/dbus-string.h:
14168         New function with test.
14169
14170         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14171         * dbus/dbus-test.h:
14172         Add address tests.
14173
14174         * dbus/dbus-transport-debug.c:
14175         Document.
14176
14177         * dbus/dbus-transport.c: (_dbus_transport_open):
14178         Parse address and use correct transport implementation.
14179
14180 2003-01-30  Havoc Pennington  <hp@pobox.com>
14181
14182         * dbus/dbus-message.c: use message->byte_order instead of
14183         DBUS_COMPILER_BYTE_ORDER throughout.
14184         (dbus_message_create_header): pad header to align the
14185         start of the body of the message to 8-byte boundary
14186
14187         * dbus/dbus-marshal.h: make all the demarshalers take const
14188         DBusString arguments.
14189
14190         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14191         validate message args here, so we don't have to do slow validation
14192         later, and so we catch bad messages as they are incoming. Also add
14193         better checks on header_len and body_len. Also fill in
14194         message->byte_order
14195
14196         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14197         implemented properly)
14198         (_dbus_string_validate_nul): new function to check all-nul
14199
14200         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14201         get_arg_end_pos and remove all validation
14202         (_dbus_marshal_validate_arg): actually do validation here.
14203
14204 2003-01-29  Havoc Pennington  <hp@pobox.com>
14205
14206         * dbus/dbus-message.c (check_message_handling): fix assertion
14207         failure on set_client_serial
14208
14209 2003-01-28  Havoc Pennington  <hp@pobox.com>
14210
14211         * dbus/dbus-server-debug.c: Add doc section comments
14212
14213         * dbus/dbus-transport-debug.c: add doc section comments
14214
14215 2003-01-28  Havoc Pennington  <hp@redhat.com>
14216
14217         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14218         the reverse order from how I had it
14219         (_dbus_string_base64_encode): reverse encoding order. I was
14220         basically byteswapping everything during encoding.
14221
14222 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14223
14224         * dbus/dbus-connection-internal.h:
14225         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14226         (_dbus_connection_remove_timeout):
14227         Add functions for adding and removing timeouts.
14228
14229         * dbus/dbus-message.c: (dbus_message_new_from_message):
14230         Add new function that takes a message and creates an exact
14231         copy of it, but with the refcount set to 1.
14232         (check_message_handling):
14233         Fix build error.
14234
14235         * dbus/dbus-server-protected.h:
14236         * dbus/dbus-server.c: (_dbus_server_init_base),
14237         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14238         (dbus_server_set_timeout_functions):
14239         (_dbus_server_remove_timeout):
14240         New functions so that a server can add and remove timeouts.
14241
14242         (dbus_server_listen):
14243         Add commented out call to dbus_server_debug_new.
14244
14245         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14246         Actually set the handler, doh.
14247
14248         * dbus/dbus-transport.c: (_dbus_transport_open):
14249         Add commented out call to dbus_transport_debug_client_new.
14250
14251         * dbus/Makefile.am:
14252         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14253
14254 2003-01-28  Havoc Pennington  <hp@pobox.com>
14255
14256         * dbus/dbus-message.c (check_message_handling): function to check
14257         on the loaded message, iterates over it etc.
14258
14259 2003-01-28  Havoc Pennington  <hp@pobox.com>
14260
14261         * test/Makefile.am (dist-hook): fix make distdir
14262
14263         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14264
14265 2003-01-27  Havoc Pennington  <hp@pobox.com>
14266
14267         * dbus/dbus-mempool.c (time_for_size): replace printf with
14268         _dbus_verbose
14269
14270         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14271         empty lines; fix the SAVE_LENGTH stuff to be
14272         START_LENGTH/END_LENGTH so it actually works; couple other
14273         bugfixes
14274
14275         * test/Makefile.am (dist-hook): add dist-hook for .message files
14276
14277         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14278         can be constant or locked.
14279         (_dbus_string_free): allow freeing a const string as
14280         documented/intended
14281
14282         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14283
14284         * dbus/dbus-test-main.c (main): take an argument which is the
14285         directory containing test data
14286
14287         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14288         argument to this and load all the messages in test/data/
14289         checking that they can be loaded or not loaded as appropriate.
14290
14291 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14292
14293         * bus/dispatch.c: (bus_dispatch_message_handler):
14294         Dispatch messages sent to services.
14295
14296         * bus/driver.c: (bus_driver_send_service_deleted),
14297         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14298         (bus_driver_send_service_acquired):
14299         Add helper functions for sending service related messages.
14300
14301         (bus_driver_send_welcome_message):
14302         Send HELLO_REPLY instead of WELCOME.
14303
14304         (bus_driver_handle_list_services):
14305         Send LIST_SERVICES_REPLY instead of SERVICES.
14306
14307         (bus_driver_handle_own_service),
14308         (bus_driver_handle_service_exists):
14309         New message handlers.
14310
14311         (bus_driver_handle_message):
14312         Invoke new message handlers.
14313
14314         (bus_driver_remove_connection):
14315         Don't remove any services here since that's done automatically
14316         by bus_service_remove_owner now.
14317
14318         * bus/driver.h:
14319         New function signatures.
14320
14321         * bus/services.c: (bus_service_add_owner):
14322         Send ServiceAcquired message if we're the only primary owner.
14323
14324         (bus_service_remove_owner):
14325         Send ServiceAcquired/ServiceLost messages.
14326
14327         (bus_service_set_prohibit_replacement),
14328         (bus_service_get_prohibit_replacement):
14329         Functions for setting prohibit replacement.
14330
14331         (bus_service_has_owner):
14332         New function that checks if a connection is in the owner queue of
14333         a certain service.
14334
14335         * bus/services.h:
14336         Add new function signatures.
14337
14338         * dbus/dbus-list.c: (_dbus_list_test):
14339         Add tests for _dbus_list_remove_last and traversing the list backwards.
14340
14341         * dbus/dbus-list.h:
14342         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14343         go any further, so return NULL then.
14344
14345         * dbus/dbus-protocol.h:
14346         Add new messages, service flags and service replies.
14347
14348 2003-01-26  Havoc Pennington  <hp@pobox.com>
14349
14350         * dbus/dbus-message-builder.c: implement, completely untested.
14351
14352         * test/data/*: add data to be used in testing.
14353         ".message" files are our simple loadable text format.
14354         ".message-raw" will be binary dumps of messages.
14355
14356         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14357
14358 2003-01-26  Havoc Pennington  <hp@pobox.com>
14359
14360         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14361
14362         * dbus/dbus-errors.c (dbus_result_to_string): add
14363         file errors
14364
14365         * dbus/dbus-message-builder.c: new file, will contain code to load
14366         up messages from files. Not implemented yet.
14367
14368 2003-01-26  Havoc Pennington  <hp@pobox.com>
14369
14370         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14371         the sender by setting to NULL
14372
14373 2003-01-26  Havoc Pennington  <hp@pobox.com>
14374
14375         The unit tests pass, but otherwise untested.  If it breaks, the
14376         tests should have been better. ;-)
14377
14378         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14379         the connection.
14380
14381         * dbus/dbus-message.c: redo everything so we maintain
14382         message->header as the only copy of the various fields.
14383         This avoids the possibility of out-of-memory in some cases,
14384         for example dbus_message_lock() can't run out of memory anymore,
14385         and avoids extra copying. Figured I may as well go ahead and do
14386         this since it was busted for dbus_message_lock to not return
14387         failure on OOM, and dbus_message_write_header was totally
14388         unchecked for OOM. Also fixed some random other bugs.
14389
14390         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14391         that strings are nul-terminated. Also, end_pos can be equal
14392         to string length just not greater than, I think.
14393         (_dbus_marshal_set_int32): new function
14394         (_dbus_marshal_set_uint32): new function
14395         (_dbus_marshal_set_string): new function
14396
14397         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14398         a warning, init timeout_list to NULL
14399         (dbus_connection_send_message): don't use uninitialized variable
14400         "serial"
14401
14402         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14403
14404 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14405
14406         * bus/driver.c: (bus_driver_handle_hello),
14407         (bus_driver_send_welcome_message):
14408         Plug leaks
14409
14410 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14411
14412         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14413         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14414         (dbus_connection_unref):
14415         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14416         * dbus/dbus-message.c: (dbus_message_unref),
14417         Plug memory leaks.
14418
14419         (dbus_message_get_fields):
14420         Remove debugging printout.
14421
14422         (_dbus_message_loader_return_buffer):
14423         Don't store the header string.
14424
14425         (_dbus_message_test):
14426         Plug leaks.
14427
14428 2003-01-26  Richard Hult  <rhult@codefactory.se>
14429
14430         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14431         the file descriptor list, since it can change under us.
14432
14433 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14434
14435         * glib/dbus-gmain.c: (dbus_connection_prepare),
14436         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14437         (remove_watch), (dbus_connection_hookup_with_g_main):
14438         Rewrite the glib handling to use its own GSource instead of a
14439         GIOChannel so we can catch messages put in the queue while waiting
14440         for a reply.
14441
14442 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14443
14444         * bus/Makefile.am:
14445         * bus/connection.c: (connection_disconnect_handler),
14446         (connection_watch_callback), (bus_connection_setup):
14447         * bus/dispatch.c: (send_one_message),
14448         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14449         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14450         * bus/dispatch.h:
14451         * bus/driver.c: (bus_driver_send_service_deleted),
14452         (bus_driver_send_service_created), (bus_driver_handle_hello),
14453         (bus_driver_send_welcome_message),
14454         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14455         (bus_driver_handle_message):
14456         * bus/driver.h:
14457         Refactor code, put the message dispatching in its own file. Use
14458         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14459         is disconnected.
14460
14461 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14462
14463         * dbus/dbus-internals.h:
14464         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14465
14466         * dbus/dbus-message.c: (dbus_message_get_sender):
14467         * dbus/dbus-message.h:
14468         Implement dbus_message_get_sender.
14469
14470         * dbus/dbus-protocol.h:
14471         Add message and service defines.
14472
14473 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14474
14475         * dbus/dbus-connection.c: (dbus_connection_send_message):
14476         * dbus/dbus-message-internal.h:
14477         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14478         (dbus_message_write_header):
14479         Remove _dbus_messag_unlock and don't set the client serial on a
14480         message if one already exists.
14481
14482 2003-01-24  Havoc Pennington  <hp@pobox.com>
14483
14484         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14485         list_pool
14486
14487         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14488         on OOM
14489
14490 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14491
14492         * dbus/dbus-list.c: (alloc_link), (free_link):
14493         Use a memory pool for the links.
14494
14495 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14496
14497         * bus/connection.c: (bus_connection_foreach):
14498         * bus/connection.h:
14499         Add new bus_connection_foreach function.
14500
14501         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14502         Add function that broadcasts a message to all clients.
14503
14504         (bus_driver_send_service_created), (bus_driver_handle_hello),
14505         (bus_driver_send_welcome_message),
14506         (bus_driver_handle_list_services), (bus_driver_message_handler):
14507         Implement functions that take care of listing services, and notifying
14508         clients when new services are created.
14509
14510         * bus/services.c: (bus_services_list):
14511         * bus/services.h:
14512         Add new function that returns an array of strings with the currently
14513         registered services.
14514
14515         * glib/dbus-glib.h:
14516         * glib/dbus-gmain.c:
14517         Update copyright year.
14518
14519 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14520
14521         * dbus/dbus-connection.c: (dbus_connection_send_message):
14522         Unlock the message in case it was sent earlier.
14523
14524         (dbus_connection_send_message_with_reply_and_block):
14525         Remove the reply message from the list.
14526
14527         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14528         Set array_len and new_pos correctly.
14529
14530         (_dbus_marshal_test):
14531         Remove debug output.
14532
14533         * dbus/dbus-message-internal.h:
14534         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14535         New function that returns the reply serial.
14536
14537         (_dbus_message_unlock):
14538         New function that unlocks a message and resets its header.
14539
14540         (dbus_message_append_string_array),
14541         (dbus_message_get_fields_valist),
14542         (dbus_message_iter_get_field_type),
14543         (dbus_message_iter_get_string_array),
14544         (dbus_message_get_fields),
14545         (dbus_message_append_fields_valist):
14546         Handle string arrays.
14547
14548         (dbus_message_set_sender):
14549         Make this function public since the bus daemon needs it.
14550
14551         (decode_header_data):
14552         Set the reply serial to -1 initially.
14553
14554         * dbus/dbus-message.h:
14555         Add dbus_message_set_sender.
14556
14557 2003-01-24  Havoc Pennington  <hp@pobox.com>
14558
14559         * doc/dbus-specification.sgml: add some stuff
14560
14561 2003-01-22  Havoc Pennington  <hp@pobox.com>
14562
14563         * doc/dbus-specification.sgml: Start to document the protocol.
14564
14565 2003-01-22  Havoc Pennington  <hp@pobox.com>
14566
14567         * dbus/dbus-connection.c
14568         (dbus_connection_send_message_with_reply_and_block): add some @todo
14569
14570         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14571
14572 2003-01-21  Havoc Pennington  <hp@pobox.com>
14573
14574         (patch untested because can't compile)
14575
14576         * bus/driver.c (create_unique_client_name): make this function
14577         never recycle client names. Also, caller should initialize
14578         the DBusString.
14579
14580         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14581
14582 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14583
14584         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14585         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14586         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14587         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14588         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14589         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14590         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14591         * dbus/dbus-marshal.h:
14592         * dbus/dbus-protocol.h:
14593         Add support for marshalling and demarshalling integer, double
14594         and string arrays.
14595
14596 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14597
14598         * bus/Makefile.am:
14599         Add driver.[ch]
14600
14601         * bus/connection.c: (connection_disconnect_handler):
14602         Remove the connection from the bus driver's list.
14603
14604         (connection_watch_callback): Dispatch messages.
14605
14606         (free_connection_data): Free connection name.
14607
14608         (bus_connection_setup): Add connection to the bus driver's list.
14609         (bus_connection_remove_owned_service):
14610         (bus_connection_set_name), (bus_connection_get_name):
14611         Add functions for setting and getting the connection's name.
14612
14613         * bus/connection.h:
14614         Add function headers.
14615
14616         * bus/driver.c: (create_unique_client_name),
14617         (bus_driver_handle_hello_message),
14618         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14619         (bus_driver_add_connection), (bus_driver_remove_connection):
14620         * bus/driver.h:
14621         * bus/main.c:
14622         * bus/services.c: (bus_service_free):
14623         * bus/services.h:
14624         New file that handles communication and registreation with the bus
14625         itself.
14626
14627 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14628
14629         * dbus/dbus-connection.c: (dbus_connection_send_message):
14630         Add a new client_serial parameter.
14631
14632         (dbus_connection_send_message_with_reply):
14633         Remove a @todo since we've implemented the blocking function.
14634
14635         (dbus_connection_send_message_with_reply_and_block):
14636         New function that sends a message and waits for a reply and
14637         then returns the reply.
14638
14639         * dbus/dbus-connection.h:
14640         Add new functions.
14641
14642         * dbus/dbus-errors.c: (dbus_result_to_string):
14643         * dbus/dbus-errors.h:
14644         Add new DBUS_RESULT.
14645
14646         * dbus/dbus-message-internal.h:
14647         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14648         (_dbus_message_set_sender), (dbus_message_write_header),
14649         (dbus_message_new_reply), (decode_header_data),
14650         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14651         * dbus/dbus-message.h:
14652         Add new functions that set the reply serial and sender.
14653         Also marshal and demarshal them correctly and add test.
14654
14655         * dbus/dbus-protocol.h:
14656         Add new DBUS_MESSAGE_TYPE_SENDER.
14657
14658         * glib/dbus-glib.h:
14659         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14660         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14661         (dbus_connection_hookup_with_g_main):
14662         * glib/test-dbus-glib.c: (main):
14663         Rewrite to use GIOChannel and remove the GSource crack.
14664
14665         * test/echo-client.c: (main):
14666         * test/watch.c: (check_messages):
14667         Update for changed APIs
14668
14669 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14670
14671         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14672
14673         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14674         Create a DBusTimeoutList.
14675         (dbus_connection_set_timeout_functions): Add new function to
14676         set timeout callbacks
14677
14678         * dbus/dbus-connection.h: Add public DBusTimeout API.
14679
14680         * dbus/dbus-message.c: (dbus_message_get_service):
14681         * dbus/dbus-message.h:  New function.
14682
14683         * dbus/dbus-server.c: Fix small doc typo.
14684
14685         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14686
14687 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14688
14689         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14690         of the string, just as long as specified.
14691
14692 2003-01-19  Havoc Pennington  <hp@pobox.com>
14693
14694         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14695         new function
14696
14697         * dbus/dbus-server.c (dbus_server_set_max_connections)
14698         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14699         keep track of current number of connections, and add API for
14700         setting a max (but haven't implemented enforcing the max yet)
14701
14702 2003-01-18  Havoc Pennington  <hp@pobox.com>
14703
14704         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14705         reading/writing if read_watch != NULL or write_watch != NULL.
14706
14707         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14708         the message loader code to actually load message->header and
14709         message->body into the newly-created message.
14710
14711         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14712         in OOM case
14713
14714         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14715         (dbus_connection_get_max_message_size)
14716         (dbus_connection_set_max_live_messages_size)
14717         (dbus_connection_get_max_live_messages_size): implement some
14718         resource limitation functions
14719
14720         * dbus/dbus-resources.c: new file implementing some of the
14721         resource limits stuff
14722
14723         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14724         missing docs, add @todo to handle OOM etc.
14725
14726         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14727         docs
14728
14729 2003-01-18  Havoc Pennington  <hp@pobox.com>
14730
14731         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14732         connection if it hasn't been already.
14733
14734         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14735         replace with DisconnectFunction.
14736
14737 2003-01-18  Havoc Pennington  <hp@pobox.com>
14738
14739         Building --disable-verbose-mode --disable-asserts --disable-tests
14740         cuts the library from 112K to 45K or so
14741
14742         * configure.in: check for varargs macro support,
14743         add --enable-verbose-mode, --enable-asserts.
14744
14745         * dbus/dbus-internals.h (_dbus_assert): support
14746         DBUS_DISABLE_ASSERT
14747         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14748
14749 2003-01-18  Havoc Pennington  <hp@pobox.com>
14750
14751         * dbus/dbus-test.c: include config.h so that tests actually run
14752
14753         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14754         so the failure mode when that assumption fails will be plenty
14755         obvious.
14756
14757 2003-01-18  Havoc Pennington  <hp@pobox.com>
14758
14759         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14760
14761         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14762         the distribution
14763
14764         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14765         since we don't want to use those in make check
14766
14767 2003-01-15  Havoc Pennington  <hp@redhat.com>
14768
14769         Release 0.2
14770
14771         * NEWS: update
14772
14773 2003-01-15  Havoc Pennington  <hp@redhat.com>
14774
14775         * test/Makefile.am: fix so that test source code ends up in the
14776         distribution on make distcheck
14777
14778 2003-01-15  Havoc Pennington  <hp@redhat.com>
14779
14780         Release 0.1.
14781
14782         * NEWS: update
14783
14784 2003-01-15  Havoc Pennington  <hp@redhat.com>
14785
14786         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14787         fix build when --disable-tests
14788
14789         * Makefile.am (EXTRA_DIST): put HACKING in here
14790
14791         * HACKING: document procedure for making a tarball release.
14792
14793 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14794
14795         * bus/connection.c: (connection_error_handler),
14796         (bus_connection_setup):
14797         * bus/main.c: (main):
14798         Make sure that the DBusConnectionData struct is NULLed
14799         out to prevent a segfault.
14800
14801         * dbus/dbus-errors.c: (dbus_result_to_string):
14802         * dbus/dbus-errors.h:
14803         * dbus/dbus-message.c: (dbus_message_get_fields),
14804         (dbus_message_get_fields_valist), (_dbus_message_test):
14805         * dbus/dbus-message.h:
14806         Make dbus_message_get_fields return a result code so we can
14807         track invalid fields as well as oom.
14808
14809 2003-01-11  Havoc Pennington  <hp@pobox.com>
14810
14811         * configure.in: change --enable-test/--enable-ansi action-if-given
14812         to enable_foo=$enableval instead of enable_foo=yes
14813
14814 2003-01-08  Havoc Pennington  <hp@pobox.com>
14815
14816         * dbus/dbus-string.c (_dbus_string_align_length): new function
14817
14818         * dbus/dbus-test-main.c: move main() for test app here
14819         * dbus/dbus-test.c
14820         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14821         symbol to run tests, because dbus-test isn't in the main
14822         library
14823
14824         Code review nitpicks.
14825
14826         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14827         for people with narrow emacs ;-). Assert client_serial was filled
14828         in. Assert message->name != NULL.
14829         (dbus_message_append_fields): have "first_field_type" arg separate
14830         from va list, needed for C++ binding that also uses varargs IIRC
14831         and helps with type safety
14832         (dbus_message_new): add @todo about using DBusString to store
14833         service/name internally
14834         (dbus_message_new): don't leak ->service and ->name on OOM later
14835         in the function
14836         (dbus_message_unref): free the service name
14837         (dbus_message_get_fields): same change to varargs
14838         i.e. first_field_type
14839         (_dbus_message_loader_return_buffer): assert that the message data
14840         is aligned (if not it's a bug in our code). Put in verbose griping
14841         about why we set corrupted = TRUE.
14842         (decode_header_data): add FIXME that char* is evil.  Was going to
14843         add FIXME about evil locale-specific string.h strncmp, but just
14844         switched to wacky string-as-uint32 optimization. Move check for
14845         "no room for field name" above get_const_data_len() to avoid
14846         assertion failure in get_const_data_len if we have trailing 2
14847         bytes or the like. Check for service and name fields being
14848         provided twice. Don't leak service/name on error. Require field
14849         names to be aligned to 4 bytes.
14850
14851         * dbus/dbus-marshal.c: move byte swap stuff to header
14852         (_dbus_pack_int32): uscore-prefix
14853         (_dbus_unpack_int32): uscore-prefix
14854         (_dbus_unpack_uint32): export
14855         (_dbus_demarshal_string): add @todo complaining about use of
14856         memcpy()
14857         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14858         handling allowing corrupt data to go unchecked
14859
14860 2003-01-08  Havoc Pennington  <hp@redhat.com>
14861
14862         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14863         to the select() as needed for authentication. (should be using
14864         _dbus_poll() not select, but for another day)
14865
14866         * dbus/dbus.h: include dbus/dbus-protocol.h
14867
14868 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14869
14870         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14871         dbus-connection.h
14872
14873 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14874
14875         * dbus/dbus-internals.c: (_dbus_type_to_string):
14876         New function that returns a string describing a type.
14877
14878         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14879         * dbus/dbus-marshal.h:
14880         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14881         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14882         (dbus_message_iter_get_byte_array):
14883         * dbus/dbus-message.h:
14884         Add new convenience functions for appending and getting message fields.
14885         Also add demarshalling routines for byte arrays.
14886
14887 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14888
14889         * dbus/dbus-connection-internal.h:
14890         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14891         (_dbus_connection_get_next_client_serial),
14892         (dbus_connection_send_message):
14893         * dbus/dbus-internals.h:
14894         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14895         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14896         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14897         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14898         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14899         (_dbus_verbose_bytes), (_dbus_marshal_test):
14900         * dbus/dbus-marshal.h:
14901         * dbus/dbus-message-internal.h:
14902         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14903         (dbus_message_write_header), (_dbus_message_lock),
14904         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14905         (dbus_message_get_name), (dbus_message_append_int32),
14906         (dbus_message_append_uint32), (dbus_message_append_double),
14907         (dbus_message_append_string), (dbus_message_append_byte_array),
14908         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14909         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14910         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14911         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14912         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14913         (decode_header_data), (_dbus_message_loader_return_buffer),
14914         (message_iter_test), (_dbus_message_test):
14915         * dbus/dbus-message.h:
14916         * dbus/dbus-protocol.h:
14917         * dbus/dbus-test.c: (main):
14918         * dbus/dbus-test.h:
14919         * glib/test-dbus-glib.c: (message_handler), (main):
14920         * test/echo-client.c: (main):
14921         * test/watch.c: (check_messages):
14922         Make messages sendable and receivable for real.
14923
14924 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14925
14926         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14927         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14928         * dbus/dbus-message.c: (dbus_message_append_int32),
14929         (dbus_message_append_uint32), (dbus_message_append_double),
14930         (dbus_message_append_string), (dbus_message_append_byte_array):
14931         Handle OOM restoration.
14932
14933 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14934
14935         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14936         (_dbus_demarshal_string), (_dbus_marshal_test):
14937         * dbus/dbus-marshal.h:
14938         * dbus/dbus-message.c: (dbus_message_get_name),
14939         Document these functions.
14940
14941         (dbus_message_append_int32), (dbus_message_append_uint32),
14942         (dbus_message_append_double), (dbus_message_append_string),
14943         (dbus_message_append_byte_array):
14944         * dbus/dbus-message.h:
14945         Add functions for adding message fields of different types.
14946
14947         * dbus/dbus-protocol.h:
14948         Add the different types.
14949
14950 2003-01-05  Havoc Pennington  <hp@pobox.com>
14951
14952         * bus/connection.c: implement routines for handling connections,
14953         first thing is keeping a list of owned services on each connection
14954         and setting up watches etc.
14955
14956         * bus/services.c: implement a mapping from service names to lists
14957         of connections
14958
14959         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14960
14961         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14962         to use static mutexes for global data
14963
14964         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14965         collection of functions to set/get application-specific data
14966         on the DBusConnection.
14967
14968 2003-01-04  Havoc Pennington  <hp@pobox.com>
14969
14970         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14971         (_dbus_poll): new function
14972
14973         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14974         copied from GLib
14975
14976         * bus/loop.c: initial code for the daemon main loop
14977
14978 2003-01-04  Havoc Pennington  <hp@pobox.com>
14979
14980         * test/watch.c (error_handler): make it safe if the error handler
14981         is called multiple times (if we s/error handler/disconnect
14982         handler/ we should just guarantee it's called only once)
14983
14984         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14985         error handler on disconnect (it's quite possible we should
14986         just change the error handler to a "disconnect handler," I'm
14987         not sure we have any other meaningful errors)
14988
14989         * configure.in: check for getpwnam_r
14990
14991         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14992         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14993         mechanism as in SASL spec, using socket credentials
14994
14995         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14996         (_dbus_send_credentials_unix_socket): new function
14997
14998         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14999         dbus_accept()
15000         (_dbus_write): only check errno if <0 returned
15001         (_dbus_write_two): ditto
15002
15003 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15004
15005         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15006         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15007         (_dbus_marshal_test):
15008         * dbus/dbus-marshal.h:
15009         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15010         to _dbus_marshal_utf8_string. Also fix some tests.
15011
15012 2002-12-28  Harri Porten  <porten@kde.org>
15013
15014         * configure.in: added check for C++ compiler and a very cheesy
15015         check for the Qt integration
15016
15017         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15018
15019         * qt/Makefile.am: added
15020
15021         * qt/.cvsignore: added
15022
15023         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15024         latter, added #ifdef QT_THREAD_SUPPORT guard.
15025
15026         * dbus/Makefile.am: added missing headers for make dist
15027
15028 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15029
15030         * dbus/Makefile.am: fixup export-symbols-regex.
15031
15032 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15033
15034         * acinclude.m4: Add this file and put the
15035         PKG_CHECK_MODULE macro in it.
15036
15037 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15038
15039         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15040         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15041         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15042         (_dbus_marshal_test):
15043         Make the demarshalling routines align the pos argument.
15044         Add string marshalling tests and fix the obvious bugs
15045         discovered.
15046
15047 2002-12-26  Havoc Pennington  <hp@pobox.com>
15048
15049         * dbus/dbus-auth.c: fixes fixes fixes
15050
15051         * dbus/dbus-transport-unix.c: wire up support for
15052         encoding/decoding data on the wire
15053
15054         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15055         (_dbus_auth_decode_data): append to target string
15056         instead of nuking it.
15057
15058 2002-12-26  Havoc Pennington  <hp@pobox.com>
15059
15060         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15061         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15062         doh
15063
15064         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15065         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15066         now). Main point is because I wanted unpack_uint32 to implement
15067         _dbus_verbose_bytes
15068         (_dbus_verbose_bytes): new function
15069
15070         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15071
15072         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15073         mechanism to handle a corrupt message stream
15074         (_dbus_message_loader_new): fix preallocation to only prealloc,
15075         not prelengthen
15076
15077         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15078         (_dbus_string_test): enhance tests for copy/move and fix the
15079         functions
15080
15081         * dbus/dbus-transport-unix.c: Hold references in more places to
15082         avoid reentrancy problems
15083
15084         * dbus/dbus-transport.c: ditto
15085
15086         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15087         leak reference count in no-message case
15088
15089         * test/watch.c (do_mainloop): handle adding/removing watches
15090         during iteration over the watches. Also, ref the connection/server
15091         stored on a watch, so we don't try to mangle a destroyed one.
15092
15093         * dbus/dbus-transport-unix.c (do_authentication): perform
15094         authentication
15095
15096         * dbus/dbus-auth.c (get_state): add a state
15097         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15098         (_dbus_auth_get_unused_bytes): append the unused bytes
15099         to the passed in string, rather than prepend
15100
15101         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15102         the auth conversation DBusAuth
15103
15104         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15105         (_dbus_transport_new_for_domain_socket): when creating a
15106         transport, pass in whether it's a client-side or server-side
15107         transport so we know which DBusAuth to create
15108
15109 2002-12-03  Havoc Pennington  <hp@pobox.com>
15110
15111         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15112         _after_ finalizing the derived members
15113         (unix_connection_set): unref watch if we fail to add it
15114
15115         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15116         transport first, so that the connection owned by the
15117         transport will be valid as the transport finalizes.
15118
15119         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15120         if necessary, and remove watches from the connection.
15121
15122         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15123
15124 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15125
15126         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15127         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15128         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15129         (_dbus_marshal_test):
15130         * dbus/dbus-marshal.h:
15131         Add string marshal functions and have the demarshal functions
15132         return the new position.
15133
15134 2002-12-25  Havoc Pennington  <hp@pobox.com>
15135
15136         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15137         it is a simple protocol that just maps directly to SASL.
15138
15139         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15140         initial implementation, not actually used yet.
15141
15142         * dbus/dbus-string.c (_dbus_string_find): new function
15143         (_dbus_string_equal): new function
15144         (_dbus_string_base64_encode): new function
15145         (_dbus_string_base64_decode): new function
15146
15147 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15148
15149         * dbus/Makefile.am:
15150         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15151         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15152         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15153         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15154         * dbus/dbus-marshal.h:
15155         * dbus/dbus-protocol.h:
15156         * dbus/dbus-test.c: (main):
15157         * dbus/dbus-test.h:
15158         Add un-optimized marshalling/demarshalling routines.
15159
15160 2002-12-25  Harri Porten  <porten@kde.org>
15161
15162         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15163
15164 2002-12-24  Zack Rusin  <zack@kde.org>
15165
15166         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15167         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15168         main loop stuff
15169
15170 2002-12-24  Havoc Pennington  <hp@pobox.com>
15171
15172         * glib/dbus-gthread.c: fix include
15173
15174         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15175         I think glib API needs to change, though, as you don't
15176         want to use DBusMessageFunction, you want to use the
15177         DBusMessageHandler object. Probably
15178         dbus_connection_open_with_g_main_loop()
15179         and dbus_connection_setup_g_main_loop() or something like that
15180         (but think of better names...) that just create a connection
15181         that has watch/timeout functions etc. already set up.
15182
15183         * dbus/dbus-connection.c
15184         (dbus_connection_send_message_with_reply): new function just to
15185         show how the message handler helps us deal with replies.
15186
15187         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15188
15189         * dbus/dbus-string.c (_dbus_string_test): free a string that
15190         wasn't
15191
15192         * dbus/dbus-hash.c: use memory pools for the hash entries
15193         (rebuild_table): be more paranoid about overflow, and
15194         shrink table when we can
15195         (_dbus_hash_test): reduce number of sprintfs and write
15196         valid C89. Add tests for case where we grow and then
15197         shrink the hash table.
15198
15199         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15200
15201         * dbus/dbus-connection.c (dbus_connection_register_handler)
15202         (dbus_connection_unregister_handler): new functions
15203
15204         * dbus/dbus-message.c (dbus_message_get_name): new
15205
15206         * dbus/dbus-list.c: fix docs typo
15207
15208         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15209         an object representing a handler for messages.
15210
15211 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15212
15213         * glib/dbus-glib.h:
15214         * glib/dbus-gthread.c: (dbus_gthread_init):
15215         Don't use the gdbus prefix for public functions.
15216
15217 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15218
15219         * Makefile.am:
15220         * configure.in:
15221         Add GLib checks and fixup .pc files
15222
15223         * glib/Makefile.am:
15224         * glib/dbus-glib.h:
15225         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15226         (gdbus_connection_check), (gdbus_connection_dispatch),
15227         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15228         (dbus_connection_gsource_new):
15229         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15230         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15231         * glib/test-dbus-glib.c: (message_handler), (main):
15232         Add GLib support.
15233
15234 2002-12-15  Harri Porten  <porten@kde.org>
15235
15236         * autogen.sh: check for libtoolize before attempting to use it
15237
15238         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15239         struct.
15240
15241         * .cvsignore: ignore more stamp files
15242
15243         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15244
15245         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15246         without make install.
15247
15248 2002-12-15  Havoc Pennington  <hp@pobox.com>
15249
15250         * dbus/dbus-threads.c: add thread stubs that a higher library
15251         layer can fill in. e.g. the GLib wrapper might fill them in with
15252         GThread stuff. We still need to use this thread API to
15253         thread-safe-ize the library.
15254
15255 2002-12-12  Havoc Pennington  <hp@pobox.com>
15256
15257         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15258         below new interfaces and include fewer system headers.
15259
15260         * dbus/dbus-sysdeps.c (_dbus_read): new function
15261         (_dbus_write): new function
15262         (_dbus_write_two): new function
15263         (_dbus_connect_unix_socket): new function
15264         (_dbus_listen_unix_socket): new function
15265
15266         * dbus/dbus-message-internal.h: change interfaces to use
15267         DBusString
15268
15269 2002-12-11  Havoc Pennington  <hp@pobox.com>
15270
15271         * dbus/dbus-types.h: add dbus_unichar
15272
15273         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15274
15275         * dbus/dbus-connection.c (dbus_connection_send_message): return
15276         TRUE on success
15277
15278         * dbus/dbus-transport.c: include dbus-watch.h
15279
15280         * dbus/dbus-connection.c: include dbus-message-internal.h
15281
15282         * HACKING: add file with coding guidelines stuff.
15283
15284         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15285         handling here, for security purposes (as in vsftpd). Not actually
15286         using this class yet.
15287
15288         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15289         system/libc usage here, as in vsftpd, for ease of auditing (and
15290         should also simplify portability). Haven't actually moved all the
15291         system/libc usage into here yet.
15292
15293 2002-11-25  Havoc Pennington  <hp@pobox.com>
15294
15295         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15296         always print the first verbose message.
15297
15298 2002-11-24  Havoc Pennington  <hp@pobox.com>
15299
15300         * test/echo-client.c, test/echo-server.c: cheesy test
15301         clients.
15302
15303         * configure.in (AC_CHECK_FUNCS): check for writev
15304
15305         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15306         function
15307
15308         * dbus/dbus-list.c (_dbus_list_foreach): new function
15309
15310         * dbus/dbus-internals.c (_dbus_verbose): new function
15311
15312         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15313         representing a server that listens for connections.
15314
15315         * dbus/.cvsignore: create
15316
15317         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15318         public API for reporting errors
15319
15320         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15321         public object representing a connection that
15322         sends/receives messages. (Same object used for
15323         both client and server.)
15324
15325         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15326         Basic abstraction for different kinds of stream
15327         that we might read/write messages from.
15328
15329 2002-11-23  Havoc Pennington  <hp@pobox.com>
15330
15331         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15332         _DBUS_INT_MAX
15333
15334         * dbus/dbus-test.c (main): add list test, and include
15335         dbus-test.h as intended
15336
15337         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15338         (_dbus_hash_table_remove_int): return value indicates
15339         whether the entry existed to remove
15340
15341         * dbus/dbus-list.c: add linked list utility class,
15342         with docs and tests
15343
15344         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15345         array sometimes.
15346
15347 2002-11-23  Havoc Pennington  <hp@pobox.com>
15348
15349         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15350         DBUS_END_DECLS to nothing, that should fix this once and for all
15351
15352         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15353
15354         * dbus/dbus-message.c, dbus/dbus-hash.c:
15355         add some missing @brief
15356
15357 2002-11-23  Havoc Pennington  <hp@pobox.com>
15358
15359         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15360         to avoid confusing Doxygen
15361
15362         * dbus/dbus-hash.c: @} not }@
15363
15364         * dbus/dbus-message.c (struct DBusMessage): split out
15365         internals docs
15366
15367 2002-11-23  Havoc Pennington  <hp@pobox.com>
15368
15369         * configure.in: pile on more warning flags if using gcc
15370
15371         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15372         to document static functions
15373
15374         * configure.in: add summary to end of configure so it
15375         looks nice and attractive
15376
15377         * dbus/dbus-hash.c: finish implementation and write unit
15378         tests and docs
15379
15380         * configure.in: add --enable-tests to enable unit tests
15381
15382         * dbus/dbus-test.c: test program to run unit tests
15383         for all files in dbus/*, initially runs a test for
15384         dbus-hash.c
15385
15386         * dbus/dbus-internals.h: file to hold some internal utility stuff
15387
15388 2002-11-22  Havoc Pennington  <hp@redhat.com>
15389
15390         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15391         "ported" away from Tcl
15392
15393         * dbus/dbus-types.h: header for types such as dbus_bool_t
15394
15395 2002-11-22  Havoc Pennington  <hp@redhat.com>
15396
15397         * dbus/dbus.h: fixups for doc warnings
15398
15399         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15400         macros
15401         (QUIET): make it quiet so we can see warnings
15402
15403         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15404
15405 2002-11-22  Havoc Pennington  <hp@redhat.com>
15406
15407         * Makefile.am: include "Doxyfile" target in all-local
15408
15409         * configure.in: generate the Doxyfile
15410
15411         * Doxyfile.in: move Doxyfile here, so we can use
15412         configure to generate a Doxyfile with the right
15413         version number etc.
15414
15415 2002-11-22  Havoc Pennington  <hp@redhat.com>
15416
15417         * dbus/dbus-message.c: move inline docs into .c file
15418
15419         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15420         so all docs are under doc/
15421         (MAN_EXTENSION): generate man pages. Use extension
15422         ".3dbus" which matches ".3qt" on my system,
15423         I guess this is OK, I don't know really.
15424         (FILE_PATTERNS): look for .c files not .h, makes sense
15425         for plain C I think
15426
15427 2002-11-22  Havoc Pennington  <hp@pobox.com>
15428
15429         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15430         because any app can be a server, and any app can be a client,
15431         the bus is a special kind of server.
15432
15433 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15434
15435         * Doxyfile : adding. Still needs Makefile rules to be generated
15436         automatically (just run "doxygen" in the toplevel dir for now to
15437         generate docs)
15438
15439         * dbus/dbus-message.h : Adding sample docs (javadoc since
15440         resembles gtk-doc a little more)
15441
15442         * dbus/dbus.h : Adding sample docs
15443
15444 2002-11-21  Havoc Pennington  <hp@redhat.com>
15445
15446         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15447         so we can allow ourselves to include files directly,
15448         instead of having to use dbus.h
15449
15450         * dbus/dbus.h: fill in
15451
15452         * dbus/dbus-message.h: sketch out a sample header file.
15453         Include griping if you include it directly instead of
15454         via dbus.h
15455
15456         * dbus/dbus-macros.h: new file with macros for extern "C",
15457         TRUE/FALSE, NULL, etc.
15458
15459         * doc/file-boilerplate.c: put include guards in here
15460
15461 2002-11-21  Havoc Pennington  <hp@redhat.com>
15462
15463         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15464
15465         * COPYING: include the GPL as well, and license code
15466         under both AFL and GPL.
15467
15468 2002-11-21  Havoc Pennington  <hp@redhat.com>
15469
15470         * acconfig.h: get rid of this
15471
15472         * autogen.sh (run_configure): add --no-configure option
15473
15474         * configure.in: remove AC_ARG_PROGRAM to make
15475         autoconf complain less. add AC_PREREQ.
15476         add AC_DEFINE third arg.
15477
15478 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15479
15480         * doc/Makefile.am:
15481         Fix references so we can distcheck.
15482
15483 2002-11-21  Havoc Pennington  <hp@redhat.com>
15484
15485         * Initial module creation
15486