* dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket): changed type or port to pointer...
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
4         changed type or port to pointer, because the port is given back.
5
6         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
7         implemented returning tcp port. Skipping port parameter
8         and non integer port values in config <listen> statement
9         needs more effort.
10
11         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
12         (_dbus_listen_tcp_socket): return the real used tcp port.
13
14         * bus/dbus-daemon.1.in: added <listen> tcp examples
15
16 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
17
18         * cmake/config.h.cmake: win32 msvc bug fix
19
20 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
21
22         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
23         using _WINCE does not work.
24
25 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
26
27         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
28         committed.
29
30 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
31
32         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
33         rename pipe related write() function calls to _dbus_write_pipe().
34
35 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
36
37         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
38         uses DBUS_WIN for alls win32 related #ifdefs, 
39         some minor cleanups
40
41 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
42
43         * dbus-win.patch: updated patch for bus/dispatch.c.
44
45 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
46
47         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
48         dbus_connection_get_unix_process_id): Let return them valid user id's, 
49         otherwise bus-test fails. How to replace on win32 ?.
50         
51         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
52         fix memory leak.
53
54 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
55
56         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
57         use dbus friendly error name.
58         (fill_win_user_info_homedir): print user name in error case too.
59
60 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
61
62         * cmake/ConfigureChecks.cmake: fixed socketpair check
63
64 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
65
66         * bus/dispatch.c: disabled segfault test on win32 for now
67
68 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
69
70         * configure.in, cmake/ConfigureChecks.cmake: added check 
71         for setrlimit. 
72         * test/test-segfault.c: only include setrlimit stuff only 
73         when available.  
74
75 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
76
77         * test/test-segfault.c: unix compile fix.
78         * dbus-win.patch: removed obsolate patches.
79
80 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
81
82         * bus/activation.c: removed obsolate include header.
83         * test/test-segfault.c: win32 compile fix, rlimit 
84         isn't available on win32.
85         * dbus-win.patch: removed some more patches, they
86         are applied or obsolate 
87
88 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
89
90         * bus-win.patch: fixes unix listen problems, dbus-test 
91         now runs.
92
93 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
94
95         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
96         cmake/CMakeLists.txt: win32 compile fix
97
98 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
99
100         * dbus-win.patch, README.win: added available win32 
101         patches from windbus project (http://sf.net/projects/windbus)
102
103 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
104
105         * bus/activation.c: (bus_activation_activate_service):
106         fixed call to _dbus_spawn_async_with_babysitter().
107
108 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
109
110         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
111         added environment pointer as function parameter, used on win32.
112
113         * test/spawn-test.c: fixed call to above mentioned function.
114
115 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
116
117         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
118         added configure check for unistd.h.
119
120 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
121
122         * test/Makefile.am: fixed test data copy problem in 
123         out of source build, when sources came from svn or cvs. 
124
125 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
126
127         * dbus/*-win.*,bus/*-win.*: added win32 platform related
128         files. These files are only added to the cmake build system.  
129         The missing dbus-win.patch file will be added later. 
130
131 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
132
133         * cmake: new directory, contains cmake build support.
134         See http://www.cmake.org for more informations.
135         Currently only unix will be buildable because some 
136         win32 required files are still missing. 
137
138 2007-03-03  Thiago Macieira  <thiago@kde.org>
139
140         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
141         output and add it to the DBusError message we return.
142
143         * tools/dbus-launch.1:
144         * tools/dbus-launch.c: Add option --close-stderr to, well,
145         close stderr before starting dbus-daemon.
146
147 2007-01-31  Havoc Pennington  <hp@redhat.com>
148
149         * bus/dbus-daemon.1.in: write a section in the man page on running
150         a test daemon for debugging purposes
151
152 2007-01-26  Havoc Pennington  <hp@redhat.com>
153
154         * bus/session.conf.in: override all the default limits with much
155         higher limits on the session bus, there is no reason the session
156         bus should have low limits
157
158         * bus/config-parser.c (bus_config_parser_new): increase default
159         limits so they are less likely to be hit; in particular the max
160         replies per connection was way too low
161
162 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
163
164         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
165         a pointer to the tutorial maintained as part of dbus-python
166
167 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
168
169         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
170         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
171         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
172
173 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
174
175         * tools/dbus-monitor.c: gettimeofday() is not available 
176         on windows so we have to provide our own. It's taken from 
177         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
178
179 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
180
181         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
182         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
183         is in dbus-sysdeps-win.c (not in this patch).
184
185         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
186         with InterlockedInc/Decrement. 
187         - Patches from Christian Ehrlicher
188         
189 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
190
191         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
192
193 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
194
195         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
196         fix mispaced const statement. - Patch from Peter Kümmel
197
198 2006-12-19  Ray Strode  <rstrode@redhat.com>
199
200         * bus/bus.c (process_config_every_time):
201         don't overwrite existing bus context activation object
202         until after we've checked that the new activation is
203         valid.
204
205         * bus/main.c 
206         (signal_handler), (handle_reload_watch):
207         don't call exit() on failure, instead make do and keep
208         going.
209         (close_reload_pipe): new function to turn off
210         hangup-causes-config-reload behavior if an unexpected
211         error occurs
212
213 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
214
215         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
216         correctness fix. - Patch from Christian Ehrlicher
217
218 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
219
220         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
221         we should also use it. - Patch from Christian Ehrlicher
222
223 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
224   
225         * dbus-sysdeps-util.c: added win32 related tests
226
227 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
228
229         * dbus/dbus-string.c (_dbus_string_pop_line),
230         bus/desktop-file.c (parse_section_start,
231         parse_comment_or_blank,parse_key_value,): uses
232         _dbus_string_find_eol() to support platform independent eol style.
233
234 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
235
236         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
237         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
238               _dbus_string_find_eol().
239         Approved by: Havoc Pennington.
240
241 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
242
243         * configure.in: Added switch to disable user_database caching.
244
245         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
246         be able disable user_dabase caching.
247
248 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
249
250         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
251         struct. It is unnecessary we have a global one already. Also remove 
252         bus_context_get_user_database function, it is no longer needed.
253         Flush the global database on reload.
254
255         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
256         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
257
258         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
259         Add _dbus_user_database_flush_system. 
260         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
261         Small unrelated change in _dbus_is_a_number: change 
262         _dbus_string_parse_int to _dbus_string_parse_uint. 
263
264         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
265         _dbus_groups_from_uid.
266
267         * bus/policy.c, bus/policy.h: Change call to 
268         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
269         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
270         needs it.
271
272 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
273
274         * bus/signal.c: Fix match_rule_equal errata
275         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
276         <kimmo.hamalainen@nokia.com>)
277
278 2006-11-19  Thiago Macieira  <thiago@kde.org>
279
280         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
281         _dbus_pthread_condvar_wait,
282         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
283         pthread_self() after coming back from a conditional variable
284         wait as well as in one codepath where it was forgotten.
285         Approved by: Havoc Pennington.
286
287 2006-11-17  Havoc Pennington  <hp@redhat.com>
288
289         * update-dbus-docs.sh: allow setting fd.org username via env
290         variable. Make it run autogen with --enable-xml-docs=yes
291         --enable-doxygen-docs=yes so configure will fail if the required
292         tools are missing.
293
294 2006-11-17  Havoc Pennington  <hp@redhat.com>
295
296         * doc/dbus-faq.xml: minor FAQ tweaks
297
298 2006-11-14  Havoc Pennington  <hp@redhat.com>
299         
300         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
301         dbus_get_local_machine_id() to its own file, no substantive
302         changes. There are a couple other things we might want to add that
303         are "misc" so moving out of dbus-connection.[hc] which is big
304         enough already.
305         
306 2006-11-14  Havoc Pennington  <hp@redhat.com>
307
308         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
309         UUID had the timestamp last, but the implementation had it first;
310         move it to last since I think it's a tiny bit nicer (easier to
311         compare at a glance, faster to sort, less code), and will not
312         cause any practical compatibility problems. Also, always convert
313         the timestamp to big endian.
314
315         * doc/dbus-specification.xml: Clean up the docs on the UUID.
316
317         * tools/dbus-uuidgen.1: more prominently say it is not suitable
318         as a replacement for regular uuidgen/RFC4122.
319
320 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
321
322         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
323         the correct value so we don't assert when initalizing recursive threads
324
325         * test/name-test/test-thread-init.c: call dbus_threads_init_default
326         instead of _dbus_threads_init_debug since it is more of a real world
327         test
328
329 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
330
331         * Released 1.0.0
332
333 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
334
335         * AUTHORS: added Peter and Tor of windows porting fame
336
337 2006-11-08  Havoc Pennington  <hp@redhat.com>
338
339         * doc/dbus-specification.xml: add a note about protocol stability
340
341         * doc/TODO: Remove "important for 1.0" section, replace with
342         "important for 1.2" section
343         
344 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
345
346         * README: remove some of the out of date flags
347
348         * doc/TODO: Remove todo items which are done
349
350 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
351
352         * tools/dbus-monitor.c: Handle sigint so we flush stdout
353         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
354
355 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
356
357         * tools/dbus-monitor.1: update the manpage for dbus-monitor
358         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
359
360 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
361
362         * AUTHORS: Update with all people listed in the ChangeLog
363
364 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
365
366         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
367         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
368
369 2006-11-07  Havoc Pennington  <hp@redhat.com>
370
371         * HACKING: Update release instructions to include stuff about
372         stable releases, branching, etc. May not be totally correct,
373         please fix if needed, but keep instructions up-to-date so we do
374         each stable release consistently in the future.
375
376 2006-11-07  Havoc Pennington  <hp@redhat.com>
377
378         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
379         documentation updates. Bump faq/spec versions (not to 1.0; I don't
380         think the spec will be "finished"/1.0 when we ship the 1.0 library).
381
382 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
383
384         * bus/bus.c: Missed patch - pass in the context to the directory watch
385
386 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
387
388         * Released D-Bus 1.0 RC 3(0.95)
389
390 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
391
392         * bus/activation.c (bus_activation_new): don't fail if we can not read
393         the directory as it may not exist
394
395 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
396
397         * bus/config-parser.c (service_dirs_find_dir): use 
398         _dbus_list_get_next_link so we don't get stuck in an infinite loop
399         (start_busconfig_child): move processing of standard_session_servicedirs
400         tags here because they have no content
401         (bus_config_parser_content): check we don't have content in 
402         standard_session_servicedirs tag
403
404 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
405
406         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
407         Packagers need to own this directory
408
409 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
410
411         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
412         <standard_session_servicedirs> tag with a <sevicedir> tag that
413         points to the test service directory
414
415 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
416
417         * configure.in: Add a check for DIR *dirp->dd_fd
418
419         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
420         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
421         of both Solaris and Irix
422
423 2006-11-01  Havoc Pennington  <hp@redhat.com>
424
425         * bus/dbus-daemon.1.in: document standard_session_servicedirs
426
427 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
428
429         * configure.in: expose DBUS_DATADIR
430         
431         * bus/config-parser.c: add the standard_session_servicedirs element
432         to the parser
433         (bus_config_parser_content): process the standard_session_servicedirs
434         element by getting the standard directories from sysdeps and merging
435         them into the service directory list
436         (test_default_session_servicedirs): make sure we get what we expect
437
438         * bus/session.conf.in: replace the servicedir tag with the 
439         standard_session_servicedirs tag
440
441         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
442         dbus-sysdeps.h to avoid circular header dependencies
443
444         * dbus/dbus-sysdeps.h: add the typedef of DBusList
445
446         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
447         which takes a string of directories delimited by colons, parses them 
448         out, appends a suffix and puts them in a list ignoring empty elements
449         (_dbus_get_standard_session_servicedirs): returns the standard 
450         directories for a session bus to look for service activation files
451         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
452         DBUS_DATADIR directories
453
454         * test/data/valid-config-files/many-rules.conf: add the 
455         standard_session_servicedirs tag to the valid config file tests
456
457 2006-10-30  Havoc Pennington  <hp@redhat.com>
458
459         * tools/dbus-launch.1, doc/TODO: capture intent to change the
460         command line options of dbus-launch a bit post 1.0
461
462 2006-10-27  Havoc Pennington  <hp@redhat.com>
463         
464         * dbus/dbus-connection.c (dbus_connection_open_private): document
465         how to choose shared vs. private connections
466
467 2006-10-27  Havoc Pennington  <hp@redhat.com>
468
469         * dbus/dbus-test.c: enclose more of the file in the
470         DBUS_BUILD_TESTS check.
471
472         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
473         DBUS_DISABLE_ASSERT case.
474
475         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
476         that it only works on the server side
477
478         * dbus/dbus-bus.c: add a global lock covering the BusData we
479         attach to each connection
480         (internal_bus_get): lock our access to the BusData
481         (dbus_bus_register): lock the entire registration process
482         with _DBUS_LOCK(bus_datas). If we get the lock and 
483         registration is already complete, silently return (vs. previous
484         behavior of aborting).
485         (dbus_bus_set_unique_name): lock the BusData
486         (dbus_bus_get_unique_name): lock the BusData
487
488 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
489
490         * bus/config-parser.c (service_dirs_find_dir, 
491         service_dirs_append_unique_or_free, 
492         service_dirs_append_link_unique_or_free): New static methods
493         for only appending unique service directory names into
494         the service directory list
495         (merge_included, bus_config_parser_content): Only add unique
496         service directory names into the list
497
498 2006-10-27  Havoc Pennington  <hp@redhat.com>
499
500         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
501         variables volatile, suggested by Thiago. Document struct fields.
502         (PTHREAD_CHECK): remove pthread error checking if assertions are
503         disabled, should reduce the no-assertions case to the bare
504         minimum code.
505
506 2006-10-26  Havoc Pennington  <hp@redhat.com>
507         
508         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
509         to be recursive
510         (_dbus_pthread_mutex_unlock): make it recursive
511         (_dbus_pthread_condvar_wait): save/restore the recursion count
512         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
513
514 2006-10-26  Havoc Pennington  <hp@redhat.com>
515
516         * doc/dbus-specification.xml: clarify the UUID text slightly
517
518         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
519         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
520         in preparation for being able to extend them for e.g. recursive
521         mutexes.
522
523 2006-10-26  Havoc Pennington  <hp@redhat.com>
524
525         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
526         condition variables relate to recursive mutexes.
527         
528         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
529         dbus/dbus-threads.c: Split the platforms-specific thread 
530         implementations into their own files.
531         
532         * dbus/dbus-sysdeps-pthread.c
533         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
534         was backward. Not that anything uses it.
535
536 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
537
538         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
539         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
540         needs to be cleaned up more.
541
542         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
543         up the CREDS issue.
544
545 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
546
547         * configure.in, dbus-1.pc.in: Check to see if thread methods 
548         are in glibc or libpthread and add -lpthread to the link stage 
549         if it is the latter
550
551 2006-10-26  Thiago Macieira  <thiago@kde.org>
552
553         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
554         bug 8780: the connection lock is only required while recording
555         the shared connection, so protect only that code
556         section. Don't require connection_lookup_shared to return a
557         locked connection.
558
559 2006-10-26  Thiago Macieira  <thiago@kde.org>
560
561         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
562         check if get_machine_uuid() returns NULL before proceeding any
563         further: we can't init the X atoms or create a session file
564         name if there is no machine ID.
565         This solves a crash reported by some users if
566         --exit-with-session was used without --autolaunch=<machine-id>
567
568 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
569
570         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
571         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
572
573         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
574         before we run dbus-launch
575
576         * configure.in: define TEST_BUS_BINARY to be the full path to 
577         dbus-daemon in the build root 
578
579 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
580
581         * dbus/Makefile.am:
582         * tools/Makefile.am:
583         * toos/dbus-uuidgen.1:
584                 Move the machine-id file to /var/lib/dbus 
585
586 2006-10-24  David Zeuthen  <davidz@redhat.com>
587
588         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
589         _dbus_assert (thread_init_generation != _dbus_current_generation)
590         not _dbus_assert (thread_init_generation == _dbus_current_generation)
591
592 2006-10-24  Thiago Macieira  <thiago@kde.org>
593
594         * dbus/dbus-sysdeps.h:
595         * dbus/dbus-sysdeps-unix.c: Add function
596         _dbus_make_file_world_readable that chmods a file to 0644.
597
598         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
599         Avoid writing to the static "argv" array, thereby avoiding a
600         COW on the child process.
601
602         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
603         call _dbus_make_file_world_readable on the created file.
604
605 2006-10-23  David Zeuthen  <davidz@redhat.com>
606
607         * dbus/dbus-memory.c: Use atomic variable to protect
608         n_blocks_outstanding otherwise OOM will be reported using SMP on
609         some arches
610         
611         * bus/dispatch.c: Add missing end of line characters
612
613         * bus/desktop-file.c (parse_section_start, parse_key_value) 
614         (bus_desktop_file_load): Propertly handle OOM
615
616         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
617         thread_init_generation equals _dbus_current_generation, not 0
618
619 2006-10-22  Havoc Pennington  <hp@redhat.com>
620
621         * dbus/dbus-connection-internal.h: move prototype of
622         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
623         it isn't in a public header and doesn't end up in the DBusBus
624         group in Doxygen
625
626 2006-10-21  Havoc Pennington  <hp@redhat.com>
627
628         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
629         the tarball if packagers want to run it
630
631         * cleanup-man-pages.sh: Add a script which munges all the internal
632         API man pages out of the Doxygen output. This reduces the size of
633         the installed man pages from 7 to 2 megs, and avoids
634         namespace-polluting pages. Right now (like Doxygen) this script
635         isn't in the build, it's something packagers can do manually.
636
637 2006-10-21  Havoc Pennington  <hp@redhat.com>
638
639         * dbus/dbus-connection.h: don't include the watch/timeout
640         functions in connection section
641
642 2006-10-21  Havoc Pennington  <hp@redhat.com>
643
644         * Documentation! Whee! Doxygen now 100% silent. If you make it
645         angry again, you will be punished.
646         
647 2006-10-21  Havoc Pennington  <hp@redhat.com>
648
649         * More documentation - all public API now documented according to
650         Doxygen
651
652 2006-10-21  Havoc Pennington  <hp@redhat.com>
653
654         * Document a bunch of undocumented stuff
655         
656 2006-10-21  Havoc Pennington  <hp@redhat.com>
657
658         * Clean up Doxygen group markers for public API so Doxygen finds
659         everything (not comprehensively fixed for private API).
660         Means all remaining Doxygen warnings are just about missing docs
661         and thus pretty simple to resolve.
662         
663 2006-10-21  Havoc Pennington  <hp@redhat.com>
664         
665         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
666
667         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
668         as DBUS_GNUC_DEPRECATED
669
670 2006-10-21  Havoc Pennington  <hp@redhat.com>
671
672         * Move all private API into the private Doxygen group sections of
673         the files, so they don't show up in the public API docs
674         
675 2006-10-21  Havoc Pennington  <hp@redhat.com>
676
677         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
678         dbus_message_iter_get_array_len().
679
680         * throughout: documentation improvements.
681
682 2006-10-20  Havoc Pennington  <hp@redhat.com>
683
684         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
685         matter, and the message-loader-breaker thing since nobody is going
686         to do it.  Add an item to 1.0 about supporting recursive locks
687         in dbus_threads_init_default() though, since it should be easy.
688
689         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
690         Fix this in the !dispatch case to avoid busy-looping after
691         disconnection
692
693         * More misc docs improvements
694
695 2006-10-19  Havoc Pennington  <hp@redhat.com>
696
697         * more Doxygen-related fixes (lots of moving things from the
698         public to internal section in dbus-connection.c)
699
700 2006-10-19  Havoc Pennington  <hp@redhat.com>
701
702         * Fix a pile of Doxygen warnings and missing docs
703
704 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
705
706         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
707         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
708         instead of a void *.  kqueue uses this to get the context's loop
709         while the other modules ignore the parameter.  This allows us to
710         avoid platform conditionals
711
712         * bus/bus.c (process_config_postinit): Pass in the context to the 
713         watch
714
715 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
716
717         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
718         when starting the system bus
719
720 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
721
722         * configure.in: More fixups for cross compile (Patch from 
723         Marco Pracucci <development at pracucci dot com>)
724
725 2006-10-17  Havoc Pennington  <hp@redhat.com>
726
727         * tools/dbus-send.c (main): don't close shared connection, fix
728         from Timo Hoenig
729
730 2006-10-17  Havoc Pennington  <hp@redhat.com>
731
732         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
733
734         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
735         since realistically it doesn't look like we'll be changing it
736         anymore.
737
738 2006-10-17  Havoc Pennington  <hp@redhat.com>
739
740         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
741         be used for return_if_fail type warnings; prefixes the pid, and
742         fatal by default.
743
744 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
745
746         * configure.in: Released 1.0 RC 2(0.94)
747         Add check for -fPIC and enable it if available
748
749 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
750
751         * doc/TODO: Remove the check TODO item
752
753 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
754
755         * dbus-transport-socket.c (exchange_credentials):
756         Print out more detailed errors if reading or sending
757         credentials fail (Patch from Julio M. Merino Vidal 
758         <jmmv at NetBSD dot org>)
759
760 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
761
762         * configure.in: when checking for posix getpwnam_r assume true
763         for cross compiles
764
765 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
766
767         * configure.in: Check for gethostbyname first before we check for it
768         in libnsl.  On gnu systems it is implemeneted 
769
770 2006-10-13  Havoc Pennington  <hp@redhat.com>
771
772         * dbus/dbus-connection.c
773         (dbus_connection_send_with_reply_and_block): fix to handle closed
774         connections, from Tambet Ingo bug #8631
775
776 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
777
778         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
779
780 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
781
782         * test/name-test/Makefile.am: don't link against both libdbus and
783         libdbus-convenience
784
785 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
786
787         * configure.in: check for dirfd even if it is a macro
788         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
789
790 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
791
792         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
793         avoid using dirfd on systems that don't have dirfd 
794         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
795
796 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
797
798         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
799         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
800
801         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
802         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
803         macro because _dbus_abort calls it
804
805         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
806         works
807
808 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
809
810         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
811         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
812
813 2006-10-02  Thiago Macieira  <thiago@kde.org>
814
815         * tools/dbus-launch.c (main): make it complain and abort
816         execution in case an unknown option is given. Also, process
817         the '--' argument as the end of arguments.
818
819 2006-10-01  Havoc Pennington  <hp@redhat.com>
820
821         * tools/dbus-launch.c (print_variables): if no syntax is given,
822         don't print something that's sort-of-half-sh-syntax, just print
823         a plain key-value pairs thing.
824
825         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
826         the local machine representation (but still have the hostname in
827         the display). Remove the hostname from the display if it is
828         localhost. Change session files to be named
829         ~/.dbus/session-bus/machine-display. Change X atoms to be
830         underscore-prefixed so nobody whines about ICCCM compliance.
831         Otherwise name them the same as the env variables.
832         Change session file format to include key-value pairs and an
833         explanatory comment. Keys are the same as the env variables.
834         (set_address_in_x11): X property format can't depend on
835         sizeof(pid_t) on a particular machine, fix to always be 32 bits
836
837         * tools/dbus-launch.c: make --autolaunch take a machine id
838         argument. If --autolaunch is used with a program to run, complain
839         for now (but add a FIXME). Also, don't look for existing bus if 
840         there's a program to run (but add a FIXME).
841
842         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
843         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
844         just to get this, and avoids duplicating uuid-reading code).
845
846         * tools/dbus-launch.1: clarify various things
847         
848 2006-10-01  Havoc Pennington  <hp@redhat.com>
849
850         * test/test-service.c (path_message_func): remove broken extra
851         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
852
853         * test/test-shell-service.c (path_message_func): same fix
854         
855         * dbus/dbus-connection.c
856         (_dbus_connection_get_dispatch_status_unlocked): break up the
857         function a little for clarity and fix the notification of
858         dbus-bus.c to not require dispatch to be complete
859
860         * dbus/dbus-connection.c (dbus_connection_unref): improve the
861         warning when you try to finalize an open connection.
862         
863 2006-10-01  Havoc Pennington  <hp@redhat.com>
864
865         * dbus/dbus-bus.c
866         (internal_bus_get): only weak ref the connection; this means 
867         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
868         called safely in any context
869         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
870         unref
871
872         * dbus/dbus-connection.c
873         (_dbus_connection_get_dispatch_status_unlocked): move
874         _dbus_bus_notify_shared_connection_disconnected_unlocked here
875         when queuing Disconnected instead of when the Disconnected message
876         arrives, so dbus_bus_get() won't return closed connections.
877         
878 2006-10-01  Havoc Pennington  <hp@redhat.com>
879
880         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
881         Add a hack to make DBusNewConnectionFunction work right.
882
883         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
884         the hack here. Also, fix the todo about refcount leak.
885         
886         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
887         and use the hack here
888         
889         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
890         "shareable" flag; this was completely broken, since it meant 
891         dbus_connection_open() returned a connection of unknown
892         shared-ness. Now, we always hold a ref on anything opened 
893         as shareable.
894
895         Move the call to notify dbus-bus.c into
896         connection_forget_shared_unlocked, so libdbus consistently forgets
897         all its knowledge of a connection at once. This exposed numerous
898         places where things were totally broken if we dropped a ref inside
899         get_dispatch_status_unlocked where
900         connection_forget_shared_unlocked was previously, so move
901         connection_forget_shared_unlocked into
902         _dbus_connection_update_dispatch_status_and_unlock. Also move the
903         exit_on_disconnect here.
904
905         (shared_connections_shutdown): this assumed weak refs to the
906         shared connections; since we have strong refs now, the assertion 
907         was failing and stuff was left in the hash. Fix it to close
908         still-open shared connections.
909         
910         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
911         debug pipe connections
912         
913         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
914         dbus-bus.c if the closed connection is in fact shared
915         (_dbus_connection_close_possibly_shared): rename from 
916         _dbus_connection_close_internal
917         (dbus_connection_close, dbus_connection_open,
918         dbus_connection_open_private): Improve docs to explain the deal
919         with when you should close or unref or both
920
921         * dbus/dbus-bus.c
922         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
923         from _dbus_bus_check_connection_and_unref_unlocked and modify to
924         loop over all connections
925
926         * test/test-utils.c (test_connection_shutdown): don't try to close
927         shared connections.
928
929         * test/name-test/test-threads-init.c (main): fix warnings in here
930
931         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
932         env variable to cause blocking waiting for gdb; drop
933         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
934         unconditionally.
935
936         * configure.in: add -export-dynamic to libtool flags if assertions enabled
937         so _dbus_print_backtrace works.
938
939         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
940         instead of _dbus_verbose to print the backtrace, and diagnose lack 
941         of -rdynamic/-export-dynamic
942         
943 2006-09-30  Havoc Pennington  <hp@redhat.com>
944
945         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
946         (internal_bus_get): fix screwy code formatting. whoever committed
947         that was not paying attention!
948
949 2006-09-30  Havoc Pennington  <hp@redhat.com>
950
951         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
952         reflect addition of interfaces.
953
954         * doc/dbus-specification.xml: describe a new
955         org.freedesktop.DBus.Peer.GetMachineId method
956
957         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
958         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
959         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
960         at end of skip_white
961         (_dbus_string_chop_white): new function
962
963         * bus/connection.c (bus_connections_setup_connection): call
964         dbus_connection_set_route_peer_messages.
965
966         * dbus/dbus-connection.c
967         (_dbus_connection_peer_filter_unlocked_no_update): modify to
968         support a GetMachineId method.
969
970         Also, support a new flag to let the bus pass peer methods through
971         to apps on the bus, which can be set with
972         dbus_connection_set_route_peer_messages.
973
974         Finally, handle and return an error for anything unknown on the
975         Peer interface, which will allow us to extend the Peer interface
976         in the future without fear that we're now intercepting something
977         apps were wanting to see.
978         
979         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
980         dbus/dbus-uuidgen.c
981
982         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
983         binary here, since most of the code is already in libdbus
984
985         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
986         uuid from the system config file
987
988         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
989         (_dbus_read_uuid_file_without_creating) 
990         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
991         uuid-related functions, partly factored out from dbus-server.c
992
993         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
994         DBUS_ERROR_FILE_EXISTS instead of EEXIST
995
996         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
997
998         * tools/dbus-cleanup-sockets.1: explain what the point of this
999         thing is a bit more
1000
1001         * autogen.sh (run_configure): add --config-cache to default
1002         configure args
1003
1004         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1005         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1006
1007         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1008         don't try to save address, fixes crash in make check
1009         
1010 2006-09-30  Thiago Macieira  <thiago@kde.org>
1011
1012         * configure.in: add DBUS_BINDIR as a #define to C source code.
1013
1014         * tools/dbus-launch.c
1015         * tools/dbus-launch.h
1016         * tools/dbus-launch-x11.c:
1017         * tools/dbus-launch.1: Add the --autolaunch option to
1018         dbus-launch, which makes it scan for an existing session
1019         started with --autolaunch. With that option, it also creates
1020         an X11 window and saves the bus address and PID to it.
1021
1022         * dbus/dbus-sysdeps.h:
1023         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1024         a function that runs "dbus-launch --autolaunch" to retrieve
1025         the running D-Bus session address (or start one if none was running)
1026
1027         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1028         address protocol, which tries to get the running session from
1029         dbus-launch.
1030
1031         * dbus/dbus-bus.c:
1032         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1033         D-Bus session bus address.
1034
1035         * dbus/dbus-connection.c: Fix horrible typo in error message.
1036
1037 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1038
1039         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1040
1041 2006-09-17  Havoc Pennington  <hp@redhat.com>
1042
1043         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1044         fix so that if unix_user_function is set on windows, we still
1045         do the default check that the auth identity matches the bus identity
1046
1047 2006-09-16  Havoc Pennington  <hp@redhat.com>
1048
1049         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1050         to _dbus_transport_open_platform_specific,
1051         _dbus_transport_open_socket,
1052         and _dbus_transport_open_debug_pipe
1053
1054         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1055
1056 2006-09-16  Havoc Pennington  <hp@redhat.com>
1057
1058         Attempt auditing public API to remove all cases where a Unix
1059         function returns weird emulated goo to Windows. This probably 
1060         breaks the bus daemon on Windows, to fix it again we may 
1061         need to stop processing unix-specific config options on Windows,
1062         and may need to add Windows-specific public API or config options.
1063         
1064         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1065         to reflect added interfaces; should not break soname.
1066         
1067         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1068         not invoke unix user function on Windows. Kind of a hacky fix, but 
1069         we don't want a "unix uid" leaking out on Windows.
1070
1071         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1072         to get the socket fd on Windows or UNIX
1073         (dbus_connection_get_unix_fd): make this always fail on Windows
1074
1075 2006-09-16  Havoc Pennington  <hp@redhat.com>
1076
1077         * dbus/dbus-server.c (dbus_server_listen): change how this works
1078         to be able to delegate to a set of handlers that can succeed,
1079         fail, or choose not to handle. Allows us to have 
1080         dbus_server_listen_platform_specific.
1081
1082         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1083         factor out the tcp socket stuff to be used on windows, leaving
1084         unix domain socket only in dbus-socket-unix.c
1085
1086         * dbus/dbus-transport-socket.c
1087         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1088         stuff to be used on windows, leaving unix domain socket only 
1089         in dbus-transport-unix.c
1090
1091         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1092         temporary hack to be sure this fails on windows
1093         (dbus_connection_get_unix_process_id): ditto
1094
1095 2006-09-16  Havoc Pennington  <hp@redhat.com>
1096
1097         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1098         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1099         _dbus_open_socket so the domain/type/protocol from system headers
1100         are not required. This is kind of pointless though unless we move
1101         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1102         sysdeps-unix.c, which would mean adding a wrapper around
1103         bind/listen/etc.
1104         Also, add DBusError to the socket-opening functions so they 
1105         don't require use of errno.
1106
1107 2006-09-16  Havoc Pennington  <hp@redhat.com>
1108
1109         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1110         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1111
1112         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1113         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1114         functions specifically for sockets only, and move generic 
1115         read/write/open/close into unix-specific code.
1116
1117 2006-09-14  Havoc Pennington  <hp@redhat.com>
1118
1119         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1120         complaint about accessing revents when poll returns 0, from Julian Seward.
1121
1122 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1123
1124         * Released 1.0 RC 1 (0.93) 
1125
1126 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1127
1128         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1129         use _dbus_close instead of close
1130
1131 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1132
1133         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1134         credentials.  Fixes "external" authentication under e.g. NetBSD
1135         which does not support any other socket credentials mechanism.
1136         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1137
1138 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1139
1140         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1141         dbus_threads_init and be used by the dbus mutex functions to
1142         avoid deadlocks.
1143
1144         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1145
1146 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1147
1148         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1149         use threadsafe readdir_r instead of readdir
1150
1151 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1152
1153         * dbus-threads.c (dbus_threads_init_default): New method for
1154         initializing the internal thread implementation (Patch from
1155         Alexander Larsson <alexl at redhat dot com>)
1156
1157 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1158
1159         * remove a bunch of todo items from the 1.0 list
1160
1161 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1162
1163         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1164         key not found
1165
1166 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1167
1168         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1169         complex debugging code
1170
1171         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1172         between the test suite ifdefs
1173         (_dbus_verbose_bytes): return if verbosity is not enabled 
1174
1175 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1176
1177         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1178         remove DBusMark
1179
1180 2006-09-10  Havoc Pennington  <hp@redhat.com>
1181
1182        patch mostly by Peter Kümmel, bug #8211
1183         
1184         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1185         unix-specific stuff in dbus-sysdeps.c
1186
1187         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1188         and move unix-specific stuff to dbus-sysdeps-unix.c
1189
1190         * configure.in: check HAVE_ERRNO_H
1191         
1192 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1193
1194         * bus/test-main.c (main): Initialize threading during tests
1195
1196         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1197         Unlock connection on error
1198         (generate_local_error_message): static method for generating
1199         an error message when we don't have a message to reply to
1200         (_dbus_connection_block_pending_call): Send a disconnect error
1201         instead of just a timeout (NULL) when the bus gets disconnected
1202         while blocking for a reply.
1203         
1204 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1205
1206         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1207         filters (Patch from Kimmo Hämäläinen 
1208         <kimmo dot hamalainen at nokia dot com>)
1209
1210 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1211
1212         * dbus/dbus-connection-internal.h: Add prototype for 
1213         _dbus_connection_test_get_locks to remove warning
1214
1215 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1216
1217         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1218         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1219         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1220
1221 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1222
1223         * Clean up close calls to use _dbus_close (Patch from 
1224         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1225
1226 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1227
1228         * doc/TODO:
1229         - Remove pending call locking todo item
1230         - dbus_connection_open now holds hard ref.  Remove todo item
1231         - do proper locking on _dbus_bus_check_connection_and_unref
1232           and handle DBUS_BUS_STARTER. Remove todo item
1233         - Warn on closing of a shared connection.  Remove todo item
1234
1235         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1236         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1237         so we don't get the warning when closing shared connections
1238
1239         * test/test-service.c, test/test-shell-service.c: Applications
1240         don't close shared connections themselves so we unref instead of
1241         close
1242
1243         * test/test-utils.c (test_connection_shutdown): Close the connection
1244
1245         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1246         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1247         method on a locked connection.  
1248         Make sure we call _dbus_connection_unref_unlocked instead of 
1249         dbus_connection_unref also.
1250         Handle DBUS_BUS_STARTER correctly
1251
1252         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1253         Mark as shared and hard ref the connection
1254         (connection_forget_shared_unlocked): Remove the hard ref from the 
1255         connection
1256         (_dbus_connection_close_internal_and_unlock):  New internal function
1257         which takes a locked connection and unlocks it after closing it
1258         (_dbus_connection_close_internal): New internal function which acts
1259         like the origonal dbus_connection_close method by grabbing a connection
1260         lock and calling _dbus_connection_close_internal_and_unlock
1261         (dbus_connection_close): Public close method, warns when the app
1262         trys to close a shared connection
1263
1264 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1265
1266         * bus/driver.c:
1267         (bus_driver_generate_introspect_string): New method for populating
1268         a DBusString with the introspect data
1269         (bus_driver_handle_introspect): Move introspect generation code to 
1270         bus_driver_generate_introspect_string
1271
1272         * bus/main.c:
1273         (introspect): New function which prints out the intropect data and
1274         exits
1275         (main): Add a --introspect switch
1276
1277 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1278
1279         * doc/TODO: Removed dtd publishing item.  
1280         It seems the dtd has already been added at
1281         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1282
1283 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1284
1285         * doc/TODO, various source files: Audited todo's and FIXME's and
1286         prepended the ones we should be looking at with 1.0.  Those
1287         prepended with 1.0? need clerification or might not be needed
1288         for 1.0
1289
1290 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1291
1292         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1293         NULL in the public API (Patch from Kimmo Hämäläinen 
1294         <kimmo dot hamalainen at nokia dot com>)
1295
1296 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1297
1298         * configure.in: Fix for OS-X compile time endian issues (patch from
1299         Benjamin Reed <ranger at befunk dot com>)
1300
1301 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1302
1303         * configure.in: Check for no-common compiler flag (OS-X fix from
1304         Benjamin Reed <ranger at befunk dot com>)
1305
1306 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1307
1308         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1309         <fcrozat at mandriva dot com>)
1310
1311 2006-08-29  Havoc Pennington  <hp@redhat.com>
1312
1313         * test/test-service.c (path_message_func): fix lack of return value
1314
1315         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1316         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1317         any more sense than on anything else in this file.
1318         (_dbus_get_tmpdir): add const to return value, and keep the
1319         results of the various getenv around in a static variable.
1320
1321 2006-08-29  Havoc Pennington  <hp@redhat.com>
1322
1323         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1324         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1325
1326 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1327
1328         * test/Makefile.am: change find to use syntax that works with non
1329         gnu versions of find
1330
1331 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1332
1333         * dbus/dbus-transport.c: fix invalid deref when checking if
1334         a vtable method exists (Patch from Christian Ehrlicher 
1335         <ch dot ehrlicher at gmx dot de>)
1336
1337 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1338
1339         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1340         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1341         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1342         <bernard at brenda-arkle dot demon dot co dot uk>)
1343
1344 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1345
1346         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1347         default case
1348
1349 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1350
1351         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1352         it works on any system providing this interface, not only FreeBSD.
1353         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1354
1355 2006-08-20  Havoc Pennington  <hp@redhat.com>
1356
1357         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1358         the docs
1359
1360 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1361
1362         * Released 0.92 
1363
1364 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1365
1366         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1367         to reflect the init late change
1368
1369         * bus/bus.c (bus_context_new): Check user before we fork so we can
1370         print out an error message a user will be able to see
1371
1372 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1373
1374         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1375
1376         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1377         Add two more global locks for use on windows platforms.  These are
1378         unused on non-windows platforms but are not ifdefed out to avoid
1379         potential bugs (i.e. the few bytes lost does not warrent the extra
1380         maintanence and complexity that having seperate sets of locks would
1381         cause)
1382
1383 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1384
1385         * bus/services.c (bus_registry_acquire_service): Return an error
1386         when an application tries to register the org.freedesktop.DBus Bus Name
1387
1388         * bus/services.c (bus_registry_release_service): Return an error
1389         when an application tries to release the org.freedesktop.DBus Bus Name
1390
1391 2006-08-17  Alp Toker  <alp@atoker.com>
1392
1393         * doc/dbus-specification.xml: Fix some minor typos.
1394
1395 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1396
1397         * configure.in: use $with_init_scripts instead of $operating_system
1398         to determine where to store the pid since the init scripts manipulate 
1399         the pid file (patch from Marcelo Ricardo Leitner 
1400         <marcelo dot leitner at terra dot com dot br>.  
1401
1402 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1405         static DBusList *uninitialized_condvar_list to support new late 
1406         initialization threading model.  In this model threads can be initialized
1407         even after the D-Bus API has been used but still needs to be initialized 
1408         before the second thread has been started.  Mutexes and condvar addresses
1409         are stored in the two static lists and are replaced with actuall locks
1410         when threads are initalized.
1411         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1412         the location into the static list
1413         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1414         from the static list and freeing the mutex
1415         (_dbus_condvar_new_at_location): New method for creating a conditional 
1416         variable and placing the location into the static list
1417         (_dbus_condvar_free_at_location): New method for removing a conditional
1418         variable location from the static list and freeing the conditional variable 
1419         (init_uninitialized_locks): Atomic method which goes through the static 
1420         lists of mutex and condvar location and updates them with actuall locks
1421         (init_global_locks): changed to init_locks
1422         
1423         * dbus/dbus-connection.c:
1424         (_dbus_connection_test_get_locks): New method for tests to check connections
1425         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1426         condvar API
1427         (dbus_connection_allocate_data_slot): Pass in the global lock address
1428         to _dbus_data_slot_allocator_alloc
1429
1430         * dbus/dbus-dataslot.c:
1431         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1432         instead of the mutex itself
1433
1434         * dbus/dbus-message.c:
1435         (dbus_message_allocate_data_slot): Pass in the global lock address
1436         to _dbus_data_slot_allocator_alloc
1437
1438         * dbus/dbus-pending-call.c:
1439         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1440         to _dbus_data_slot_allocator_alloc
1441
1442         * dbus/dbus-server.c:
1443         (_dbus_server_init_base): Use the new at_location mutex API
1444         (dbus_server_allocate_data_slot): Pass in the global lock address
1445         to _dbus_data_slot_allocator_alloc
1446
1447         * test/name-test/test-threads-init.c: New test case for late thread
1448         initialization
1449
1450 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1451
1452         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1453         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1454         causes compile problems when asserts are turned off
1455         Keeping _dbus_warn for printing out the message so even if
1456         asserts are turned off the user gets the messages that something is 
1457         wrong 
1458
1459 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1460
1461         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1462
1463         * bus/services.c (bus_service_list_queued_owners):
1464         Add a pointer cast to fix compiler warning
1465
1466         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1467         return a NULL instead of FALSE since the return type
1468         is not expecting a boolean
1469
1470         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1471         Remove unused variable
1472
1473         * dbus/dbus-marshal-recursive-util.c (node_new):
1474         return a NULL instead of FALSE since the return type
1475         is not expecting a boolean
1476
1477         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1478         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1479         because we are expecting a pointer not a boolean
1480
1481         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1482         add void as the parameter so some compilers
1483         don't complain
1484
1485         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1486           _dbus_transport_new_for_tcp_socket):
1487         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1488         because we are expecting a pointer not a boolean
1489
1490         * test/shell-test.c (test_command_line):
1491         cast the second argument to _dbus_list_append to avoid compiler
1492         warnings
1493
1494         * test/test-names.c (main): remove unused variable
1495
1496         * test/test-service.c (check_hello_from_self_reply):
1497         Initialize echo_message and echo_reply to NULL
1498         
1499         * test/test-shell-service.c (handle_echo):
1500         Remove unused variable and cast the third parameter passed to
1501         dbus_connection_get_object_path_data to avoid compiler warrnings
1502
1503         * test/name-test/test-names.c (clear_message_queue):
1504         Remove unused function
1505
1506         * test/name-test/test-pending-call-dispatch.c:
1507         Fix format string in printf
1508
1509
1510 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1511
1512         * dbus/dbus-bus.c:
1513         * test/name-test/test-names.c:
1514         Remove test method dbus_bus_connection_get_unique_name because 
1515         we already have public method dbus_bus_get_unique_name that 
1516         does the exact same thing
1517
1518 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1519
1520         * dbus/dbus-signature.c:
1521         fix typos in Julio's previous patch which cause make check to fail
1522
1523 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1524
1525         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1526         In any case it was wrong since this is a test checking to see if
1527         address parsing is correct.  There was no need to get the true
1528         tmp directory.  
1529
1530 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1531
1532         * dbus/dbus-macros.h: Revert the addition of stddef.h
1533         as we should not be adding it to library headers 
1534
1535 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1536
1537         * dbus/dbus-signature.c:
1538         Fix the unit tests so that they work if assertions are not enabled.
1539         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1540
1541 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1542
1543         * tools/run-with-tmp-session-bus.sh:
1544         * test/name-test/run-test.sh:
1545         Remove bashisms (patch from Julio M. Merino Vidal
1546         <jmmv at NetBSD dot org>)
1547
1548 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1549
1550         * configure.in: add a version (>= 2.6.0) check for libxml2
1551
1552 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1553
1554         * configure.in: make sure the compiler supports -Wfloat-equal
1555         
1556         * bus/dir-watch-dnotify.c: move functional code after 
1557         variable declerations (C99 fix)  (patches from Jens Granseuer
1558         <jensgr at gmx dot net>
1559
1560 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1561
1562         * dbus/dbus-macros.h:
1563         add #include <stddef.h> so that Sun compilers don't complain about
1564         the defining NULL
1565
1566 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1567
1568         * dbus/dbus-sysdeps.c:
1569         * dbus/dbus-address.c:
1570         * bus/activation.c:
1571         * test/shell-test.c:
1572         don't hardcode tmp directory (patch from Dave Meikle 
1573         <dmk at davemeikle dot co dot uk>)
1574
1575 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1576
1577         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1578         Change an assert to a detailed warning and abort.  
1579         When allocator->lock != mutex it indicates that the user has failed
1580         to initalize threads before using the D-Bus library.  This warning
1581         helps the user identify the issue and fix their app.
1582
1583 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1584
1585         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1586         with cleanups of bugs found from Coverity reports:
1587
1588         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1589         close the file on error to avoid a leak
1590
1591         * bus/expirelist.c (bus_expire_list_test):
1592         Check for NULL on dbus_new0
1593
1594         * bus/activation.c (update_directory):
1595         remove dead code
1596
1597         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1598         Fix some leaks
1599
1600         * bus/bus.c (process_config_every_time):
1601         Fixed a leak
1602
1603         * bus/desktop-file.c (parse_key_value):
1604         Fixed leak
1605
1606         * bus/selinux.c (bus_selinux_id_table_insert):
1607         Fixed leak
1608
1609 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1610
1611         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1612         remove dead code
1613
1614 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1615
1616         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1617         #!/bin/bash
1618
1619 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1620
1621         * Doxyfile.in: fix the INPUT line so we can generate docs 
1622         when sourcedir != builddir (patch from Cygwin Ports maintainer
1623         <yselkowitz at users dot sourceforge dot net>
1624
1625 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1626
1627         * dbus/dbus-sysdeps.h:
1628         * dbus/dbus-sysdeps.c: 
1629         * dbus/dbus-string.c: 
1630         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1631         GLib's function which does the same thing
1632
1633         * configure.in:
1634         * bus/Makefile.am:
1635         * bus/dir-watch-default.c:
1636         * bus/dir-watch-dnotify.c:
1637         * bus/dir-watch-kqueue.c:
1638         Add kqueue directory watching for freebsd and split the directory
1639         watching code into seperate files per method/arch
1640         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1641
1642 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1643
1644         * configure.in:
1645         * tools/Makefile.am:
1646         * tools/dbus-launch.c:
1647         * bus/Makefile.am:
1648         allow --with-dbus-daemondir switch to be used to make the
1649         daemon install to a seperate bindir like /usr/libexec
1650         (patch from Brian Cameron <brian dot cameron at sun dot com)
1651
1652 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1653
1654         * bus/Makefile.am (install-data-hook): removed the slash after 
1655         $(DESTDIR) so we don't get the double slash which does not work
1656         in windows (patch from Andras Porjesz 
1657         <andras dot porjesz at siemens dot com>)
1658
1659 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1660
1661         * dbus/dbus-sysdeps.h:
1662         * dbus/dbus-sysdeps.c: 
1663           add _dbus_printf_length (patch from Peter Kümmel 
1664           <syntheticpp at gmx dot net>)
1665
1666 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1667
1668         * dbus/dbus-internals.c: unistd.h is not used 
1669         (_dbus_verbose_real): only enable verbose printing 
1670         if DBUS_VERBOSE environment var is set to '1'
1671         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1672
1673 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1674
1675         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1676         so we still compile on older gcc (patch from Frederic Peters 
1677         <fpeters at 0d dot be>
1678
1679 2006-08-04  Havoc Pennington  <hp@redhat.com>
1680
1681         * configure.in: add -Wdeclaration-after-statement
1682
1683         * dbus/dbus-connection.c: change all the pending call stuff to
1684         reflect the fact that pending call operations use the connection
1685         lock
1686
1687         * dbus/dbus-pending-call.c: add locking here
1688
1689         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1690         field const consistent with how message field is done
1691
1692 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1693
1694         * s/D-BUS/D-Bus/g
1695
1696 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1697
1698         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1699         <in7y118 at public.uni-hamburg dot de> - fix invalid
1700         read/write reported by valgrind
1701
1702 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1703
1704         * Released 0.91
1705
1706 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1707
1708         * dbus/dbus-connection.c:
1709         (_dbus_connection_attach_pending_call_unlocked):
1710         (connection_timeout_and_complete_all_pending_calls_unlocked):
1711         Make sure we set timeout_added on pending calls to FALSE when
1712         we remove the timeout from the connection
1713
1714 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1715
1716         * Removed some extra bindings stuff lingering around (thanks timo)
1717         * dbus-pendingcall.c (_dbus_pending_call_new): 
1718         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1719         when we tried to take a lock on an already locked connection
1720
1721 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1722
1723         * Released 0.90
1724
1725 2006-07-17  Havoc Pennington  <hp@redhat.com>
1726
1727         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1728         ints, reported by Owen Taylor
1729
1730 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1731
1732         * doc/TODO:
1733         * dbus/dbus-bus.c:
1734         * dbus-errors.c:
1735         * dbus/dbus-marshal-validate.c:
1736           Removed TODO items which were fixed or are no longer relevent
1737
1738 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1739
1740         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1741         Remove stray files from the stripped bindings
1742
1743 2006-07-16  Havoc Pennington  <hp@redhat.com>
1744
1745         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1746         Improve the error message on reply timeout
1747
1748 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1749
1750         * Remove all bindings
1751
1752 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1753
1754         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1755         and set pending_reply out arg to NULL is connection is disconnected
1756         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1757         static method for cleaning up pending calls on disconnect
1758         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1759         calls queued timeouts on disconnect 
1760
1761          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1762         Remove 
1763
1764 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1765
1766         * bus/activation.[ch] (bus_activation_list_services): new function to 
1767         get the list of services that can be activated
1768
1769         * bus/dispatch.c: test coverage for the new bus method
1770         ListActivatableNames
1771
1772         * bus/driver.c: new bus method ListActivatableNames to get the list of
1773         services that can be activated
1774
1775         * doc/dbus-specification.xml: ListActivatableNames method documentation
1776
1777 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1778         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1779         source files
1780
1781 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1782         * dbus/dbus-message-factory.c:
1783         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1784
1785 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1786         * dbus/dbus-connection-internal.h:
1787         * dbus/dbus-connection.c:
1788         * file dbus/dbus-pending-call.c:
1789         * dbus/dbus-pending-call.h:
1790         Make DBusPendingCall an opaque type even to D-Bus internals
1791
1792 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1793
1794         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1795         connection_close
1796
1797         * dbus/dbus-connection.c: include dbus-bus.h
1798         (_dbus_connection_read_write_dispatch): make static
1799
1800 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1801
1802         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1803         function
1804         (dbus_connection_dispatch): On disconnect unref any shared connections
1805
1806         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1807         for cleaning up shared connections on disconnect
1808         (internal_bus_get): get a hard refrence to shared connections when
1809         they are created
1810         
1811         * doc/TODO: Remove items which are no longer relevent or have been fixed
1812         Split 1.0 todo items with a 0.90 freeze todo list
1813  
1814 2006-06-14  Ross Burton  <ross@openedhand.com>
1815
1816         * glib/dbus-gobject.c:
1817         Free a leaking GArray (surely not!) in dbus_g_method_return.
1818
1819 2006-06-14  Ross Burton  <ross@openedhand.com>
1820
1821         * tools/Makefile.am:
1822         * tools/dbus-monitor.c:
1823         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1824         Habacker).
1825         
1826 2006-06-14  Ross Burton  <ross@openedhand.com>
1827
1828         * tools/dbus-print-message.c:
1829         Also print the object path when outputting signals or method calls.
1830
1831 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1832
1833         * qt/src/Makefile.am: install the qdbus.h header.
1834         This allows people to actually use the installed code.
1835
1836 2006-06-12  Ross Burton  <ross@openedhand.com>
1837
1838         * glib/dbus-gproxy.c:
1839         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1840
1841 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1842
1843         * Released 0.62
1844
1845 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1846
1847         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1848         break pedantic builds. Closes bug 6043 (patch approved by
1849         Havoc back in February).
1850
1851 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1852
1853         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1854         that took a QDBusMessage parameter.
1855         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1856         * qt/tools/dbus.cpp: Don't use automatic call because we might
1857         be calling an async method: request a reply.
1858
1859 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1860
1861         * test/qt/*: Update the testcases, including testing the new
1862         functionality of sending null QByteArray and QString over the
1863         bus. Add new headertest test and restore the old
1864         qdbusxmlparser test.
1865
1866 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1867
1868         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1869         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1870
1871         * qt/examples/Makefile.am:
1872         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1873         form.
1874
1875         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1876         QByteArray() (nulls) over the bus.
1877         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1878         the one that has the signature suffix stripped.
1879         * qt/src/qdbusreply.h: Make some methods const.
1880
1881 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1882
1883         Patch from Timo Hoenig <thoenig@suse.de>.
1884
1885         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1886         required during build to EXTRA_DIST.
1887         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1888         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1889         * configure.in: Fix "make dist", take care that the Makefile for
1890         qt/dbus is being generated.
1891
1892 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1893
1894         * bus/bus.c: Fix eavesdropping on method calls
1895
1896 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1897
1898         * configure.in:
1899         * dbus/dbus-userdb-util.c:
1900         Add Solaris console owner patch from Artem Kachitchkine
1901
1902 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1903
1904         * qt/Makfile.am:
1905         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1906         reorganisation. Thanks to Timo Hoenig for pointing this out.
1907
1908 2006-06-06  Robert McQueen  <robot101@debian.org>
1909
1910         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1911           call to dbus_g_type_get_struct.
1912
1913 2006-06-06  Robert McQueen  <robot101@debian.org>
1914
1915         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1916           pointers were put into a GPtrArray-based specialised collection, and
1917           then freed along with the array. GValues which you add into
1918           collections or maps which have the NOCOPY flag set are assumed to not
1919           belong to the caller, so rather than the existing pointer-stealing
1920           semantics, they are copied instead. Given that the main consumers of
1921           this abstraction are the bindings themselves, I don't think this is
1922           too bad, but others should watch their choice of take vs set_static.
1923
1924 2006-06-06  Robert McQueen  <robot101@debian.org>
1925
1926         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1927           of g_slist_prepend not being used. Fixed copying of slist-based
1928           specialised collections, then wrote a test case and found that it was
1929           all broken. Went on to fix iterating and appending too. Good thing
1930           nobody uses this code yet.
1931
1932 2006-06-06  Robert McQueen  <robot101@debian.org>
1933
1934         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1935           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1936           are discarded without unsetting, so it makes no difference whether
1937           we take or set_static). Remove cases for G_TYPE_POINTER because
1938           there really is nothing useful we can do with them in our
1939           specialised types - we *need* boxed copy/free functions at the very
1940           least.
1941
1942 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1943
1944         * qt/dbus: Add directory. I had forgotten to add this
1945         yesterday after the move...
1946
1947         * qt/examples/Makefile.am:
1948         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1949
1950         * qt/tools/Makefile.am:
1951         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1952         Added feature to get and set properties.
1953         Added validation of service, object path and interface names.
1954
1955         * qt/tools/dbusidl2cpp.cpp: Two new features:
1956         1) Allow specifying both the header and the source file names,
1957         by separating them with a colon.
1958         2) Don't write an interface output if the -p switch wasn't
1959         given, but the -a was.
1960
1961         * qt/src/*: Fix usage of Iterators and ConstIterators.
1962         Fix shadowing of variables by other variables (-Wshadow).
1963         Fix keyword-cleanliness in headers.
1964         Fix ASCII-cast (QLatin1String, QLatin1Char).
1965         Fix validation of member names.
1966         Add extra checking of introspection data during XML parsing.
1967         Various bug fixes.
1968
1969 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1970
1971         * dbus/Makefile.am:
1972         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1973         qt/dbus/qdbus.h now.
1974
1975 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1976
1977         * configure.in: Make --disable-qt actually do
1978           something. Patch inspired by Zack Rusin.
1979
1980 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1981
1982         * qt/: Update to Subversion r548032.
1983         This includes a big reorganisation of the files inside the
1984         subdir.
1985
1986 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1987
1988         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1989         clear:  
1990         "Failed to connect to socket <host>:<port> <error>" instead of
1991         "Failed to connect to socket <host>: <error>:<port>"
1992
1993         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1994         for a tcp transport. 
1995
1996 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1997
1998         * qt/*: Update the QtDBus bindings up to revision 546310 in
1999         Subversion.
2000         This adds the dbuscpp2xml tool, that parses a C++ header and
2001         outputs a D-BUS Introspection XML.
2002
2003 2006-05-21  Havoc Pennington  <hp@redhat.com>
2004
2005         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2006         is not NULL when it shouldn't be. Also a couple of possible fixes
2007         for #4637 though I don't understand why the bug happens, to be
2008         honest... also the object constructor has an assert name != NULL
2009         and the name is only currently NULL for peer-to-peer proxies that 
2010         I don't think anyone uses? So it should be asserting.
2011         Anyway, for now at least see if we get an earlier assertion failure.
2012
2013         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2014         apparently broken code to be sure the tests fail and someone 
2015         will fix them...
2016
2017 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2018
2019         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2020         and arrays when they had a single element: has_next returns
2021         false, even before you read the element. So, instead, check
2022         the array length.
2023
2024 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2025
2026         * qt/qdbusmessage.cpp:
2027         * qt/qdbustypehelper_p.h:
2028         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2029         the list is a const-reference
2030
2031 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2032
2033         * Adding old doc patch that never got applied
2034         
2035         * dbus/bus.c (dbus_bus_add_match): Add documentation
2036
2037         * doc/dbus-specification.xml: Add documentation for the match rules
2038           and the AddMatch and RemoveMatch methods
2039
2040 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2041
2042         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2043         call (r535506)
2044
2045         * qt/dbusidl2cpp.cpp:
2046         * qt/qdbusabstractadaptor.cpp:
2047         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2048         sibling of the QDBusAbstractAdaptor objects instead of the
2049         parent. (r535848)
2050
2051         * qt/dbusidl2cpp.cpp:
2052         * qt/qdbusabstractinterface.cpp:
2053         * qt/qdbusabstractinterface.h:
2054         * qt/qdbusabstractinterface_p.h:
2055         * qt/qdbusinterface.cpp: Make properties in interfaces
2056         actually work. The code that was generated would not compile,
2057         due to moc calls to functions that did not exist. They now
2058         shall. (r536571)
2059
2060 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2061
2062         * Makefile.am:
2063         * configure.in:
2064         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2065         Thanks to Brad Hards for providing the patch
2066
2067 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2068
2069         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2070         call. (r535506)
2071
2072 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2073
2074         * qt/examples/dbus.cpp: Enhance error messages and use
2075         QDBusInterfacePtr.
2076
2077 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2078
2079         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2080         and disable the copy operators. (r533772, r534746)
2081
2082         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2083
2084         * qt/qdbusabstractinterface.cpp:
2085         * qt/qdbusabstractinterface.h: Change the default call mode to
2086         not use the event loop. Add convenience call() methods that
2087         take a CallMode parameter. (r534042)
2088
2089         * qt/qdbusconnection.h: Change the default call mode to not
2090         use the event loop. (r534042)
2091
2092         * qt/qdbusinterface.cpp:
2093         * qt/qdbusinterface.h: Add a method to tell us if the
2094         interface is valid (since we don't return a null pointer
2095         anymore) (r534099)
2096
2097         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2098         (r534101)
2099
2100         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2101         function in two so taht we get the chance to introspect
2102         without having a QDBusMessage (r534102)
2103
2104         * qt/qdbusbus.h:
2105         * qt/qdbusconnection.cpp:
2106         * qt/qdbusconnection_p.h:
2107         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2108         avoid a round-trip to the server when attempting to introspect
2109         one of our own objects. Also make sure the filter functions
2110         match the empty interface as well. (r534108)
2111         Don't keep the connection names. Instead, trust the unique
2112         connection name (r534111)
2113         Remove event loop usage (r534112)
2114
2115 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2116
2117         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2118         Brad Hards.
2119
2120 2006-04-28  Robert McQueen  <robot101@debian.org>
2121
2122         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2123         any order, making it easier for people who inherit from this
2124         object.
2125
2126 2006-04-28  Robert McQueen  <robot101@debian.org>
2127
2128         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2129         of memory from within pointer arrays and lists. Fixes bug #6300.
2130
2131 2006-04-28  Robert McQueen  <robot101@debian.org>
2132
2133         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2134         generating struct signatures. Fixes bug #6083.
2135
2136 2006-04-28  Robert McQueen  <robot101@debian.org>
2137
2138         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2139         to qdbusconnection_p.moc.
2140
2141 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2142
2143         * README, INSTALL: Doc fixes
2144         Patch from Brad Hards <bradh at frogmouth.net>
2145
2146 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2147
2148         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2149         the dynamic meta object. No need to guess which interface to
2150         call.
2151
2152 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2153
2154         * qt/qdbusconnection_p.h:
2155         * qt/qdbusmetaobject.cpp:
2156         * qt/qdbusmetaobject_p.h:
2157         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2158         for the dynamic meta object. No need to guess which
2159         interface to call.
2160         * qt/qdbusabstractinterface_p.h:
2161         * qt/qdbusconnection.cpp:
2162         * qt/qdbusintegrator.cpp:
2163         * qt/qdbusinterface.cpp:
2164         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2165         Add a QDBusRef that looks and behaves like DCOPRef.
2166
2167 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2168
2169         * dbus/dbus-connection.c: Interfaces are optional in method
2170         calls, so don't give up if the interface parameter is NULL.
2171         Patch reviewed by Havoc Pennington.
2172
2173 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2174
2175         * qt/qdbusreply.h: Add default constructor and operator=
2176           (r532625)
2177         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2178           in public headers (r532952)
2179         * qt/qdbusabstractinterface.cpp:
2180         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2181           make it the default (r532951)
2182
2183 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2184
2185         * dbus/dbus-connection.c: Fix asserts
2186         Patch from Tim Moloney <t.moloney at verizon.net>
2187
2188 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2189
2190         * mono/Connection.cs, mono/Message.cs: Check Target type
2191         Patch from Aaron Bockover (abockover at novell.com)
2192
2193 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2194
2195         * INSTALL: fine-tune the requirements for the Qt4 binding.
2196
2197 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2198
2199         * tools/dbus-print-message.c: Added support for printing of all 
2200           remaining data types. Fixed logic for indentation of compound
2201           data types.
2202         
2203 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2204
2205         * INSTALL: fill out content of file providing DBus specific
2206           build installations, followed by generic Auto* INSTALL file
2207           content
2208         
2209 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2210
2211         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2212           Patch by Stefan Eilers. (r529537)
2213
2214 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2215
2216         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2217           contents (r528208)
2218
2219 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2220
2221         * qt/Makefile.am: fix the dependency for
2222           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2223           not in qdbusconnection.cpp.
2224           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2225           spotting this.
2226
2227 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2228
2229         * qt/examples/listnames.cpp:
2230         * qt/examples/Makefile.am: Three ways to list the names on the
2231           bus.
2232
2233 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2234
2235         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2236           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2237
2238 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2239
2240         Merge from Subversion:
2241         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2242           something that exists (r526315)
2243         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2244           slots/signals (r526316)
2245         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2246           also return an unknown-method error if the parameters don't
2247           match for org.freedesktop.DBus.Properties. (r526842)
2248         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2249         * qt/qdbusintegrator.cpp: Restore the proper order of
2250           delivery: don't make method returns be delivered on priority
2251           (r528150)
2252
2253 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2254
2255         * configure.in qt/Makefile.am: add qt/examples
2256         * qt/examples: Add QtDBus example programs:
2257           - hello: Hello, World
2258           - ping: Simple method-calling program
2259           - pong: Simple object-exporting program (not using adaptors)
2260           - complexping: Interactive method-calling program 
2261                 (also gets and sets properties).
2262           - complexpong: Sample program exporting methods, signals and
2263                 properties, using adaptors.
2264           - dbus: Simple implementation of a generic method-calling
2265                 program, similar to 'dbus-send', but with semantics
2266                 similar to 'dcop'.
2267           - chat: Simplistic chat program, implemented using signals
2268                 and the system bus. Looks like IRC.
2269
2270 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2271
2272         * configure.in: Detect QtGui (necessary for one of the
2273           example programs). Note: this increases the minimum required
2274           version of Qt to 4.1.3.
2275
2276 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2277
2278         * test/qt/*: Sync with KDE Subversion revision 523647.
2279         Update the testcases to the new API. Remove testcases for
2280         classes that are no longer public or have been removed.
2281
2282 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2283
2284         * qt/*: 
2285         * dbus/qdbus.h: Sync with KDE Subversion revision
2286         523647. Hopefully, this will be the last of the
2287         source-incompatible changes. Documentation has been improved;
2288         support for QList<basic-types> has been added; QDBusObject is
2289         gone; QDBus(Abstract)Interface is now a QObject with
2290         auto-generated meta-object; QDBusIntrospection is marked
2291         private, since QMetaObject can be used now; lots of bugfixes.
2292
2293 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2294
2295         Patch from Milosz Derezynski <internalerror at gmail.com>
2296         
2297         * configure.in:
2298         Output the service directory in the configure summary
2299
2300         * dbus-1.pc.in:
2301         Add session_bus_services_dir
2302
2303 2006-03-10  Ross Burton  <ross@openedhand.com>
2304
2305         * tools/dbus-print-message.c:
2306         Add support for object paths and signatures.
2307
2308 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2309
2310         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2311         config reload.
2312         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2313         information caches
2314         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2315         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2316         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2317         * dbus/dbus-userdb.h: Add function to flush all user/group information
2318         caches.
2319
2320 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2321
2322         * qt/dbusidl2cpp.cpp:
2323         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2324         for dcopidl2cpp, found in the KDE installations (or the more
2325         modern kalyptus): generate Qt4 C++ code for the input XML
2326         introspection. Currently no IDL parsing.
2327
2328 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2329
2330         * test/qt/*: Update the self-tests.
2331
2332 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2333
2334         * qt/*: 
2335         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2336         represents the first feature-complete version of the Qt4
2337         bindings since I took ove maintainership.
2338
2339 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2340
2341         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2342         dir. This is C++, so we can't use the DBus ones.
2343
2344 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2345
2346         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2347         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2348
2349 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2350
2351         * dbus/dbus-connection.c: 
2352         (_dbus_connection_block_pending_call):
2353         Check to see if our data has already been read off the connection
2354         by another blocking pending call before we block in poll.
2355         (check_for_reply_and_update_dispatch_unlocked):
2356         Code taken from _dbus_connection_block_pending_call - checks for
2357         an already read reply and updates the dispatch if there is one.
2358
2359         * test/name-test/test-pending-call-dispatch.c:
2360         New test for making sure we don't get stuck polling a 
2361         dbus connection which has no data on the socket when
2362         blocking out of order on two or more pending calls.
2363
2364 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2365
2366         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2367         make/automake don't detect that we're talking about the same
2368         .lo file if I specify the full path to the source files.
2369
2370 2006-02-26  Havoc Pennington  <hp@redhat.com>
2371
2372         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2373
2374         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2375         session bus variable is unset, suggest "man dbus-launch" and "man
2376         dbus-daemon" to figure out how to fix the problem
2377
2378 2006-02-25  Havoc Pennington  <hp@redhat.com>
2379
2380         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2381         should make this thing use the new glib options parser
2382
2383 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2384
2385         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2386         .lo files taking moc sources.
2387
2388 2006-02-25  Havoc Pennington  <hp@redhat.com>
2389
2390         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2391         and install it as a public header
2392
2393 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2394
2395         * Released 0.61
2396
2397 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2398         
2399         * proxies.py: Fix the callchain
2400
2401 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2402         
2403         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2404
2405         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2406         dbus/dbus-sysdeps.c
2407
2408         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2409         call _dbus_group_info_free_allocated which causes infinite loop,
2410         correctly call _dbus_group_info_free
2411
2412 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2413
2414         * qt/qdbusinterface_p.h:
2415         * qt/qdbusinterface.cpp: Use the standard
2416         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2417         calls instead of creating one for us.
2418
2419         * qt/qdbusconnection_p.h:
2420         * qt/qdbusintegrator.cpp: Remove debugging code.
2421
2422         * qt/qdbusintegrator.cpp:
2423         * qt/qdbusmessage.cpp:
2424         * qt/qdbusmessage_p.h:
2425         * qt/qdbusmessage.h: Change the behaviour of automatic
2426         reply-sending: now a reply is always sent, unless the caller
2427         didn't request one or if the user slot has already sent one.
2428
2429 2006-02-16  Robert McQueen  <robot101@debian.org>
2430
2431         * configure.in: Patch from Debian packages by Sjoerd Simons
2432         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2433         arguments so it's possible to build both bindings in the
2434         same tree.
2435
2436         * qt/Makefile.am: Fix truncated value so that make dist works.
2437
2438 2006-02-16  Robert McQueen  <robot101@debian.org>
2439
2440         * acinclude.m4, configure.in: Patch from Brad Hards
2441         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2442         improving quoting, re-ordering a few checks, and a few other
2443         aesthetic tidy-ups.
2444
2445 2006-02-16  Robert McQueen  <robot101@debian.org>
2446
2447         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2448         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2449         assertion that the next element to read from the iter is fixed in
2450         size. This is not the case when you are at the end of the iter,
2451         because the next element type is INVALID.
2452
2453         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2454         a bogus assert which means that you may not initialise a 0-length
2455         string unless you provide a non-NULL pointer. This prevented
2456         you from marshalling messages containing zero-length arrays in
2457         some cases.
2458
2459         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2460         from Rob to correct bogus asserts when trying to demarshal an
2461         array and get_fixed_array got you 0 elements. Append nothing to
2462         the GArray in this case.
2463
2464         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2465         an empty array via the glib bindings. Without all of the above
2466         patches, this new test fails.
2467
2468 2006-02-16  Robert McQueen  <robot101@debian.org>
2469
2470         * glib/dbus-gmain.c: Make the previous commit compile.
2471
2472         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2473         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2474         specify sender_keyword="foo", path_keyword="bar" when adding
2475         a signal listener, so that you can bind to signals generically
2476         but still do something useful in your callback.
2477
2478         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2479         chars so that they're not cast to chars and made negative. Thanks
2480         to Jakub Stachowski for reporting this and testing the fix.
2481
2482 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2483
2484         * dbus/dbus-glib.h:
2485         * glib/dbus-gmain.h:
2486         (dbus_g_connection_open): new method for openning
2487         a connection to an arbitrary address in the glib bindings
2488
2489         * ChangeLog: checkin last entry which doesn't seem to be commited
2490
2491 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2492
2493         * tools/dbus-launch.c: Fixed sh syntax output
2494
2495 2006-02-13  Robert McQueen  <robot101@debian.org>
2496
2497         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2498         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2499         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2500         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2501         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2502         missing piece of the glib bindings jigsaw puzzle. This modifies
2503         the existing specialised types to have N type parameters (rather
2504         than the current 1 or 2 for arrays and dictionaries respectively).
2505         You can then use this to get a glib type to represent any arbitrary
2506         D-Bus struct type using dbus_g_type_get_struct. The only
2507         implementation of these types is with GValueArrays as before,
2508         but it's now possible to store these in arrays, emit them in
2509         signals, etc.
2510
2511 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2512
2513         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2514         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2515         <thiago.macieira at trolltech.com>
2516
2517 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2518
2519         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2520         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2521
2522 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2523
2524         * bus/connection.c (bus_connections_expect_reply): Make
2525         pending reply limit not common to all connections (Bug #5416)
2526         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2527
2528 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2529
2530         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2531
2532 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2533
2534         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2535         patch from Doug Goldstein <cardoe at gentoo.org>
2536
2537 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2538
2539         * mono/Arguments.cs: Fix a magic number in the mono bindings
2540         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2541
2542 2006-01-27  Robert McQueen  <robot101@debian.org>
2543
2544         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2545         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2546         when generating the client-side methods, instead of overloading
2547         CSymbol which broke everything horribly. My apologies.
2548
2549 2006-01-27  Robert McQueen  <robot101@debian.org>
2550
2551         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2552         by me and Rob Taylor to add a simple_free function to D-Bus map
2553         and collection types, which allows those types which can be freed
2554         with a GDestroyNotify (such as GHashTables and GArrays, but not
2555         GPtrArrays) to be stored as the values in hashtables.
2556
2557         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2558         Patch by Rob Taylor to add nested dicts to the glib tests to check
2559         the above code works, and appears not to leak when called repeatedly.
2560
2561 2006-01-27  Robert McQueen  <robot101@debian.org>
2562
2563         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2564         to free a D-Bus allocated string with dbus_free () instead of
2565         g_free ().
2566
2567 2006-01-27  Iain Holmes  <iain@openedhand.com>
2568
2569         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2570         method from being called multiple times.
2571
2572 2006-01-19  Robert McQueen  <robot101@debian.org>
2573
2574         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2575         <rob.taylor@collabora.co.uk> to add support for generating bindings
2576         to arrays that are represented as GPtrArrays rather than GArrays (ie
2577         size-variable things, such as strings, objects, structs, etc).
2578
2579 2006-01-05  Robert McQueen  <robot101@debian.org>
2580
2581         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2582         <ricardo.kekki@movial.fi> to make it possible to inherit from
2583         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2584         a private part, and moving the setting of the DBusGProxyManager into a
2585         connection property, allowing proper GObject construction.
2586
2587 2006-01-05  Robert McQueen  <robot101@debian.org>
2588
2589         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2590         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2591         annotations when generating glib client bindings.
2592
2593 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2594
2595         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2596
2597         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2598
2599 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2600
2601         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2602
2603 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2604
2605         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2606
2607 2005-12-19  Ross Burton  <ross@openedhand.com>
2608
2609         * doc/dbus-tutorial.xml:
2610         Document the Glib client-side bindings, and list all possible annotations.
2611
2612 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2613
2614         * dbus/bus.c (dbus_bus_release_name): Add documentation
2615
2616 2005-12-06  Robert McQueen  <robot101@debian.org>
2617
2618         * python/service.py: s/sucessful/successful/ so we're allocating to
2619         and reading from the same variable. Oops.
2620
2621 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2622
2623         * Released 0.60
2624
2625 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2626
2627         * test/qt/Makefile.am: build from srcdir
2628
2629         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2630         Note - this code is wrong and needs to be fixed by the Qt binding
2631         developers.  The flags should be treated as bitfields and not enums.
2632
2633         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2634
2635 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2636
2637         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2638           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2639           in production code
2640
2641 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2642
2643         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2644         method for getting messages off the bus in the absence of a
2645         mainloop.  This method is much like 
2646         dbus_connection_read_write_dispatch except it does not dispatch
2647         the messages to a registered filter function.  Instead it
2648         allows a developer to process messages by directly popping
2649         them off the bus.
2650
2651 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2652
2653         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2654         the parser to continue instead of returning error
2655         (bus_desktop_file_load): Do not free parser data when
2656         parse_section_start or parse_key_value fails because it was 
2657         already freed by parser_free (patch from Carlos Garcia Campos  
2658         <carlosgc at gnome.org>)
2659
2660 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2661
2662         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2663         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2664         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2665         test/test-segfault.c, test/test-utils.c,
2666         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2667         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2668         Various cleanup of dead code and compiler warnings (patch from
2669         Kjartan Maraas <kmaraas at gnome.org>) 
2670
2671 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2672
2673         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2674         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2675
2676 2005-11-27  Robert McQueen  <robot101@debian.org>
2677
2678         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2679         part of the preceding one. Oops. Merge patch by Johan Hedberg
2680         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2681         on big-endian platforms.
2682
2683         * test/python/test-client.py: Add some 16-bit integers to the test
2684         values.
2685
2686 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2687
2688         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2689         method return message for property getters
2690
2691 2005-11-27  Robert McQueen  <robot101@debian.org>
2692
2693         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2694         with type v of an instance of dbus.Variant(foo, type='x') caused
2695         it to be boxed twice before sending over the bus.
2696
2697         * python/dbus_bindings.pyx, python/service.py,
2698         test/python/test-client.py: Update the constants for the new
2699         request_name flags, and update comments/test cases now that queueing
2700         is the default action.
2701
2702 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2703
2704         * configure.in:
2705         - Change version to 0.60 for impending release
2706         - upped the sonames because of ABI and API breakage
2707
2708 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2709
2710         * configure.in: Add test/name-test/Makefile to the generated
2711         Makefile list
2712
2713         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2714         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2715         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2716         not to queue an ower if it can't be the primary owner
2717
2718         * bus/bus.h: Add new internal BusOwner struct
2719
2720         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2721         to bus_registry_ensure and don't set the prohibit_replacement flag
2722         since they are now set per BusOwner and not per name.
2723         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2724         that returns the list of connections in a name's connection queue
2725         
2726         * bus/services.c (struct BusService): remove prohibit_replacement field
2727         (struct BusOwner): new struct for keeping track of queued connections
2728         and their associated flags for the queue
2729         (struct BusRegistry): add a BusOwner memory pool
2730         (bus_registry_new): initialize the BusOwner memory pool
2731         (bus_registry_unref): free the BusOwner memory pool
2732         (_bus_service_find_owner_link): new internal method for
2733         searching the queue for a specific connection
2734         (bus_owner_set_flags): new method for adding setting the flags on a
2735         bus owner
2736         (bus_owner_new): new method that creates a BusOwner object from the
2737         pool and sets its flags
2738         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2739         (bus_registry_ensure): Add the flags parameter
2740         (bus_registry_acquire_service): Switch from using raw connections to
2741         using the BusOwner struct
2742         Add new state machine for dealing with the new set of flags
2743         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2744         cancel_ownership, free_ownership_cancel_data, 
2745         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2746         restore_ownership, free_ownership_restore_data, 
2747         add_restore_ownership_to_transaction): Switch to using BusOwner 
2748         instead of raw connections
2749         (bus_service_add_owner): Add flags parameter
2750         Switch to using BusOwner instead of raw connections
2751         Add state machine for dealing with the new set of flags
2752         (bus_service_swap_owner): Swaps the first and second owners in the
2753         queue.  Used to make sure proper signals are sent when a service looses 
2754         or gains primary ownership.  We never insert an owner at the top of the
2755         queue.  Instead we insert it in the second position and then swap.
2756         (bus_service_remove_owner): Remove the owner from the queue sending
2757         out the NameLost and NameOwnerChanged signals if the we were the 
2758         primary owner
2759         (bus_service_get_primary_owners_connection): New method that extracts
2760         the connection from the primary owner
2761         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2762         connection
2763         (bus_service_get_allow_replacement): Changed from the old 
2764         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2765         primary owner and returns if it can be replaced or not
2766         (bus_service_set_prohibit_replacement): removed
2767         (bus_service_has_owner): returns TRUE if and owner with
2768         the specified connection exists in the queue
2769         
2770         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2771         method that only compiles if tests are enabled.  Allows us to get the 
2772         unique name of a connection so we can check it against the queue when
2773         doing regression tests
2774
2775         * bus/activation.c (bus_activation_send_pending_auto_activate),
2776         bus/dispatch.c (bus_dispatch),  
2777         bus/driver.c (bus_driver_handle_get_service_owner, 
2778         bus_driver_handle_get_connection_unix_user, 
2779         bus_driver_handle_get_connection_unix_process_id,
2780         bus_driver_handle_get_connection_selinux_security_context),
2781         bus/signals.c (connection_is_primary_owner): 
2782         use bus_service_get_primary_owners_connection instead of
2783         bus_service_get_primary_owner
2784
2785         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2786         _dbus_listen_unix_socket): Calculate the length of the socket
2787         path and use that instead of using a fixed length which was
2788         causing socket names to contain many trailing Nul bytes.
2789
2790         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2791         (dbus_g_method_get_sender): New method for extracting the sender 
2792         from a DBusGMethodInvocation
2793         (dbus_g_method_return_get_reply): changed name to 
2794         dbus_g_method_get_reply
2795         (dbus_g_method_return_send_reply): changed name to
2796         dbus_g_method_send reply
2797
2798         * doc/dbus-specification.xml: New docs that describe how the new
2799         queueing system works and talks about the changes to the how
2800         we specify socket names
2801
2802         * glib/examples/example-service.c, 
2803         glib/examples/example-signal-emitter.c,
2804         glib/examples/statemachine/statemachine-server.c:
2805         Changed the RequestName flags to the new system
2806
2807         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2808         regression test suite for testing various states of the new
2809         queueing system
2810         
2811 2005-11-15  Robert McQueen  <robot101@debian.org>
2812
2813         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2814         Taylor to add two methods, dbus_g_method_return_get_reply and
2815         dbus_g_method_return_send_reply, to allow you to get the reply
2816         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2817         and send it. The GLib bindings can't marshal a return value of
2818         something like a(s) if the array is empty - ultimately they should be
2819         made to heed the signature of the out arguments as the Python bindings
2820         now can, but this is a workable interim solution which might have
2821         other applications.
2822
2823 2005-11-15  Robert McQueen  <robot101@debian.org>
2824
2825         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2826         method to org.freedesktop.DBus to release a bus name or give up
2827         waiting in the queue for it.
2828
2829         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2830         dbus_bus_release_name method to send the ReleaseName method calls.
2831         Add constants for the return values to dbus/dbus-shared.h.
2832
2833         * doc/dbus-specification.xml: Document the new ReleaseName method
2834         in the specification.
2835
2836         * python/dbus_bindings.pyx: Add a low-level python binding for the
2837         release name method.
2838
2839         * python/exceptions.py, python/service.py: Make freeing BusName
2840         objects release the name. Add a NameExistsException, and fix a
2841         bug with creating UnknownMethodException.
2842
2843         * test/python/test-client.py: Add tests for freeing BusName
2844         objects causing names to be released.
2845
2846 2005-11-14  Robert McQueen  <robot101@debian.org>
2847
2848         * python/service.py: Include the traceback in the error reply when we
2849         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2850
2851 2005-11-14  David Zeuthen  <davidz@redhat.com>
2852
2853         Patch from Timo Hoenig <thoenig@suse.de>.
2854
2855         * bus/bus.c: I've recently investigated why the automatic reload
2856         of configuration files does not work as expected.
2857
2858         Currently, reloading configuration files does only work when
2859         running dbus-daemon with --nodaemon.  If we are running as daemon
2860         we're hitting a dnotify bug once we fork the process.
2861
2862         We're initializing the dnotify fds before calling fork().  Once
2863         the child process forked it does still have the fds (and they
2864         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2865         getting SIGIO as changes are made to the configuration files.
2866
2867         The attached patch moves the initialization of the dnotify fds to
2868         process_config_postinit().  This is safe for all current code
2869         paths and solves the dnotify disfunction.  If we're running
2870         dbus-daemon as daemon the fds for dnotify are now being
2871         initialized after fork() for the child process.
2872
2873         * configure.in: The current configure.in check for dnotify probes
2874         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2875         match for 'xlinux', too. Additionally I have adapted the configure
2876         option's style to match with the others.
2877
2878 2005-11-14  Robert McQueen  <robot101@debian.org>
2879
2880         * python/decorators.py, python/service.py: Add a new argument to the
2881         dbus.service.method decorator called sender_keyword, which if set,
2882         specifies the name of an argument which will be provided the bus
2883         name of the method caller.
2884
2885         * test/python/test-client.py, test/python/test-service.py: Add a
2886         method and test to check the sender_keyword functionality.
2887
2888 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2889
2890         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2891         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2892         Simons <sjoerd at luon.net>)
2893
2894         * AUTHORS: Add Robert McQueen for his work on the Python
2895         Bindings and other parts of D-Bus
2896
2897 2005-11-07  Robert McQueen  <robot101@debian.org>
2898
2899         * python/decorators.py: Change emit_signal function to use the
2900         signature annotation of the signal when marhsalling the arguments from
2901         the service. Fix a bug where the code checking signature length
2902         against argument length referenced the wrong variable.
2903
2904         * python/introspect_parser.py: Avoid adding the type signature of
2905         signal arguments to any methods which occur after them in the
2906         introspection data (!) by making the parser a little more careful
2907         about its current state.
2908
2909         * python/service.py: Remove debug prints from last commit (again :D).
2910
2911         * test/python/test-client.py, test/python/test-service.py: Add test
2912         signals with signature decorators to test the strict marshalling code
2913         gives errors at the right time. Could do with checking the signals
2914         actually get emitted too, given that the test does nothing with
2915         signals at the moment...
2916
2917 2005-11-07  Robert McQueen  <robot101@debian.org>
2918
2919         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2920         instances to stop madness of creating new instances representing
2921         the same bus connection all the time, rendering any tracking of
2922         match rules and bus names quite meaningless. Caught a bug where
2923         the private argument to SessionBus() and friends was being passed
2924         in as use_default_mainloop by mistake. Still some problems with
2925         multiple dbus_binding.Connection instances representing the same
2926         low-level connection (eg when you use both SessionBus() and
2927         StarterBus() in same process), but it's a lot better now than it
2928         was.
2929
2930         * python/dbus_bindings.pyx: Add constants with the return values
2931         for bus_request_name().
2932
2933         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2934         and retrieve the same instances for the same name, so deletion can be
2935         done with refcounting. Also now throws some kind of error if you
2936         don't actually get the name you requested, unlike previously...
2937
2938         * test/python/test-client.py: Add tests for instance caching of buses
2939         and bus name objects.
2940
2941 2005-11-04  Robert McQueen  <robot101@debian.org>
2942
2943         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2944         marshalling of boolean values. Add some booleans to the values in
2945         the test client.
2946
2947         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2948         argument to the dbus.service.method decorator, which allows you to
2949         name arguments to take two callback functions for replying with
2950         return values or an exception.
2951
2952         * test/python/test-client.py, test/python/test-service.py: Add test
2953         case using asynchronous method reply functions, both return values and
2954         errors, and from within both the function itself and from a mainloop
2955         callback.
2956
2957         * python/decorators.py, python/service.py: Perform checking that the
2958         number of method/signal arguments matches the number of types in the
2959         signature at class loading time, not when you first introspect the
2960         class.
2961
2962         * python/service.py: Remove debug print left by the last commit.
2963
2964 2005-11-03  Robert McQueen  <robot101@debian.org>
2965
2966         * python/service.py: Heavy refactoring of method invocation, with
2967         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2968         in favour of a new _message_cb that uses seperate functions for
2969         looking up the method to call, marshalling the return values, and
2970         sending exceptions as errors, and is easier to follow as a
2971         consequence.  Fixes some corner cases about returning things that
2972         don't match your declared out_signature, allows exceptions to define
2973         _dbus_error_name and have it be sent over the bus as the error name,
2974         and paves the way for cool stuff like heeding the message no reply
2975         flag, asynchronous method implementations, informing the method of the
2976         sender, and including backtraces in the error messages.
2977
2978         * test/python/test-client.py: Catch and print exceptions thrown in the
2979         async callback tests, rather than passing them to the low-level
2980         bindings to be ignored in a noisy and frustrating manner.
2981
2982 2005-11-03  Robert McQueen  <robot101@debian.org>
2983
2984         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2985         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2986         tweak others to be consistent.
2987
2988         * test/python/test-client.py: Tweak output of testInheritance.
2989
2990 2005-10-29  Robert McQueen  <robot101@debian.org>
2991
2992         * python/service.py: Major changes to allow multiple inheritance
2993         from classes that define D-Bus interfaces:
2994         
2995          1. Create a new Interface class which is the parent class of
2996             Object, and make the ObjectType metaclass into InterfaceType.
2997         
2998          2. Patch written with Rob Taylor to replace use of method_vtable
2999             with code that walks the class's __MRO__ (method resolution order)
3000             to behave like Python does when invoking methods and allow
3001             overriding as you'd expect. Code is quite tricky because
3002             we have to find two methods, the one to invoke which has the
3003             right name and isn't decorated with the /wrong/ interface,
3004             and the one to pick up the signatures from which is decorated
3005             with the right interface.
3006         
3007             The same caveats apply as to normal multiple inheritance -
3008             this has undefined behaviour if you try and inherit from two
3009             classes that define a method with the same name but are
3010             decorated with different interfaces. You should decorate
3011             your overriding method with the interface you want.
3012         
3013          3. Replace grungy introspection XML generation code in the metaclass
3014             with dictionaries that cope correctly with multiple inheritance
3015             and the overriding of methods. This also uses the signature
3016             decorations to provide correct introspection data, including
3017             the debut appearance of the types of your return values. :D
3018
3019         * test/python/test-client.py, test/python/test-service.py: Add a test
3020         case to try invoking an method that overrides one inherited from a
3021         D-Bus interface class.
3022
3023 2005-10-29  Robert McQueen  <robot101@debian.org>
3024
3025         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3026         Add checking for the end of struct character when marshalling a
3027         struct in MessageIter.append_strict.
3028
3029         * python/examples/example-service.py,
3030         python/examples/gconf-proxy-service.py,
3031         python/examples/gconf-proxy-service2.py: Update to use gobject
3032         mainloop directly rather than appearing to depend on gtk.
3033
3034         * python/test/test-client.py, python/test/test-server.py: Remove
3035         obsolete and broken test scripts for old bindings. We have up to date
3036         and working tests in test/python/.
3037
3038 2005-10-29  Robert McQueen  <robot101@debian.org>
3039
3040         * python/decorators.py: Add optional arguments to the method and
3041         signal decorators to allow you to specify the signature of arguments
3042         and return values. Preserve the doc strings of signal functions in the
3043         decorated version, for pydoc and friends.
3044
3045         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3046         parse_signature_block function with an iterable dbus.Signature()
3047         type. Fix a bug in MessageIter.append_strict where you could append
3048         anything by claiming it was a string.
3049
3050         * python/service.py: Use the out_signature decoration on methods to
3051         marshal return values, meaning you no longer require dbus.Array()
3052         or dbus.Dictionary() to indicate the type when returning empty
3053         arrays or dictionaries. Fix a bug where exceptions which are defined
3054         in __main__ are not turned into error replies.
3055
3056         * test/python/test-client.py, test/python/test-service.py: Add test
3057         for correct marshalling of return values according to out_signature.
3058         Fix a bug in the async call test where the error_handler is missing a
3059         self argument.
3060
3061 2005-10-29  Robert McQueen  <robot101@debian.org>
3062
3063         * glib/Makefile.am, glib/examples/Makefile.am,
3064         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3065         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3066
3067         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3068
3069         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3070         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3071         the command line.
3072
3073 2005-10-27  Ross Burton  <ross@openedhand.com>
3074
3075         * dbus/dbus-marshal-header.c:
3076         Remove dead code.
3077
3078         * glib/dbus-gobject.c:
3079         Stop compiler warning.
3080
3081 2005-10-25  Ross Burton  <ross@openedhand.com>
3082
3083         * dbus/dbus-auth.c:
3084         * dbus/dbus-server-unix.c:
3085         * dbus/dbus-transport-unix.c:
3086         * glib/dbus-gmain.c:
3087         * glib/dbus-gobject.c:
3088         Add some const keywords.
3089
3090 2005-10-25  Ross Burton  <ross@openedhand.com>
3091
3092         * doc/dbus-specification.xml:
3093         Document the NoReply annotation.
3094
3095         * glib/dbus-binding-tool-glib.h:
3096         * glib/dbus-binding-tool-glib.c:
3097         Respect the NoReply annotation.
3098
3099 2005-10-24  Robert McQueen <robot101@debian.org>
3100
3101         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3102         derive from unicode instead of str, and encode/decode UTF-8 when
3103         marshalling/unmarshalling bus messages
3104
3105         * python/introspect_parser.py: encode introspection data as UTF-8
3106         before passing the buffer into libxml2
3107
3108         * test/python/test-client.py: add unicode test strings
3109
3110         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3111         ignore generated python test files
3112
3113 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3114
3115         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3116         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3117         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3118
3119         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3120         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3121         when constructing struct signatures
3122
3123         * python/_dbus.py (Bus): handle private connections using the
3124         private keyword in the constructor. defaults to private=False
3125         (Bus::close): new method to close a connection to the bus
3126
3127         * python/dbus_bindings.pyx (Connection::close): renamed method
3128         was previously called disconnect
3129         (bus_get): now supports getting a private connection
3130
3131         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3132         keyword is set to True.  if it is, execute the method without waiting
3133         for a reply
3134         (ProxyObject::_introspect_execute_queue): new method for executing
3135         all the pending methods that were waiting for the introspect to
3136         finish.  this is called when introspect either succeeds or fails
3137         (ProxyObject::_introspect_error_handler): call queued methods
3138
3139 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3140
3141         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3142         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3143
3144         * python/service.py (Object::_message_cb): handle exceptions correctly
3145         by sending them over the wire to the calling app.  This makes sure
3146         the client returns immediately instead of waiting the 15 seconds to
3147         timeout.
3148
3149         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3150         Add a test to benchmark how long it takes to introspect a service and 
3151         call a method which returns a large element (pretty fast)
3152
3153         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3154         method which pushes a lot of data
3155
3156 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3157
3158         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3159         reclaim memory outside of the loop and use del istead of just setting
3160         the key to None
3161
3162 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3163
3164         * python/service.py (ObjectType::_reflect_on_signal): Always close
3165         signal tag even when there are no arguments
3166
3167 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3168
3169         * configure.in: Set mono, mono-docs and Qt3 to default
3170         to no instead of auto when building.  These bindings do not
3171         have full time maintainers and will not be supported for the
3172         1.0 release.
3173
3174 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3175
3176         patches from Michael Krivoruchko <misha at sun.com>: 
3177         
3178         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3179         _dbus_connection_message_sent, 
3180         _dbus_connection_send_preallocated_unlocked_no_update, 
3181         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3182         is NULL when calling _dbus_verbose
3183
3184         * configure.in: check for functions getpeerucred and getpeereid
3185
3186         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3187         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3188         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3189         Patch was only tested on Solaris 10 x86 so it might be issues
3190         with other platforms (i.e. BSDs and MacOSX)
3191         
3192
3193 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3194
3195         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3196         instead of marshal basic so we can handle recursive types in a variant
3197
3198         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3199         in variants
3200
3201         * test/glib/test-service-glib.c, test-service-glib.xml
3202         (my_object_echo_variant [EchoVariant], 
3203         my_object_process_variant_of_array_of_ints123
3204         [ProcessVariantOfArrayOfInts123]): 
3205         Add two test methods
3206
3207         * python/introspect_parser.py: New module for parsing introspect
3208         data.
3209
3210         * python/dbus_bindings.pyx:
3211         (various places): when throwing errors fix to use errormsg instead 
3212         of message local variable because Pyrex can get confused with other 
3213         message variables (initial patch by Robert McQueen 
3214         <robert.mcqueen at collabora.co.uk>)
3215         (MessageIter::parse_signature_block): new method for getting the next
3216         block in a signiture.
3217         (MessageIter::append_strict): new method for appending values strictly
3218         using the passed in signature instead of guessing at the type
3219         (MessageItter:: append_dict, append_struct, append_array): use 
3220         signatures to marshal children if the signature is available
3221         
3222         * python/exceptions.py (IntrospectionParserException): new exception
3223
3224         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3225         introspected signatures if available, else we fall back to the
3226         old way of doing things.
3227         (ProxyObject::_introspect_reply_handler ): parse introspection data
3228         
3229         * python/service.py (ObjectType::_reflect_on_method): Properly
3230         terminate <method> if there are no args in the reflection data
3231
3232         * test/python/test-client.py: add tests for talking with the GLib
3233         test server.  This gives us better coverage for introspection since
3234         python to python will always generate arguments as variants.  It also
3235         allows us to test the robustness of the GLib bindings and interlanguage
3236         communications.
3237
3238         
3239 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3240
3241         * bus/driver.c (bus_driver_handle_introspect): Add signals
3242         to the introspect data. (patch from Daniel P. Berrange 
3243         <dan at berrange.com>)
3244
3245         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3246         
3247         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3248         _dbus_connection_run_builtin_filters): Changed these to
3249         be unlock_no_update functions and call 
3250         _dbus_connection_send_unlocked_no_update instead of
3251         dbus_connection_send to avoid locking errors.
3252         
3253         * doc/TODO: Removed the make Ping test TODO
3254         
3255 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3256
3257         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3258         We now copy the message from a DBusError and then free 
3259         the error object befor throwing the error
3260
3261         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3262         DBusBindingOutputMode enum which was causing a warning.
3263         #include <time.h> so using time_t is explicitly defined
3264
3265 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3266
3267         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3268         - dbus/dbus-bus.c
3269         (internal_bus_get): new method that take over the heavy lifting
3270         of dbus_bus_get and adds the ability to get a private connection
3271         to the bus
3272         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3273         interface as in previous versions
3274         (dbus_bus_get_private): new method that is a wrapper to 
3275         internal_bus_get to get a private connection to the bus
3276
3277         - dbus/dbus-bus.h
3278         (dbus_bus_get_private): add as a public libdbus interface
3279
3280         - dbus-1.pc.in: output system_bus_default_address and 
3281         sysconfdir variables so apps can use them when compiling
3282
3283 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3284         * dbus/qt: New Qt bindings
3285
3286 2005-09-12  Waldo Bastian  <bastian@kde.org>
3287
3288         * dbus/dbus-marshal-validate.c,
3289         doc/dbus-specification.xml, test/Makefile.am,
3290         test/test-names.c: allow hyphens in bus names.
3291
3292 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3293
3294         * test/data/auth/fallback.auth-script: we don't
3295         retry the EXTERNAL method when we know its going
3296         to fail anymore.
3297
3298 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3299
3300         * dbus/dbus-connection-internal.h: rename
3301         (add|remove|toggle)_(watch|timeout) to unlocked()
3302         
3303         * dbus/dbus-connection.c: ditto.
3304         
3305         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3306         Update some callers for the renaming.
3307
3308 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3309
3310         * dbus/dbus-auth.c: (record_mechanisms): don't
3311         retry the first auth mechanism because we know
3312         we're just going to get rejected again.
3313         
3314         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3315         Fix thinko ... and what a nasty little bugger to
3316         track down you were ...
3317
3318         * dbus/dbus-connection.c:
3319         (_dbus_connection_add_watch),
3320         (_dbus_connection_remove_watch): add note about
3321         these needing the connection to be locked.
3322         (_dbus_connection_get_dispatch_status_unlocked):
3323         set status to DATA_REMAINS when we queue the
3324         disconnected message.
3325         
3326         * bus/dispatch.c:
3327         (bus_dispatch): fix warning.
3328         (check_existent_service_no_auto_start):
3329         Expect ChildSignaled error too.
3330         (check_existent_hello_from_self): fix another
3331         couple of warnings.
3332         
3333 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3334
3335         Patches from James Willcox <snorp@snorp.net>
3336
3337         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3338
3339         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3340         support array "out" parameters.
3341
3342         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3343         for 16-bit int support.
3344
3345 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3346
3347         * Released 0.50
3348
3349         * Patch from Steve Grubb:
3350         - bus/activation.c (bus_activation_service_reload_test): clean up
3351         some indentation
3352         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3353         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3354         buffer overflows in the test suite.  This is non critical because
3355         it can not be exploited and this code is only run when doing a 
3356         make check.
3357
3358         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3359         - configure.in: Don't check and link against kdecore, only qt headers
3360         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3361         - gcj/org/freedesktop/dbus/Makefile.am:
3362         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3363         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3364         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3365         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3366         - tools/Makefile.am: Add platform extentions to binaries 
3367         (i.e. .exe on windows)
3368
3369         * configure.in: 
3370         - Make it so if no suitable version of python is found we only 
3371         disable building python instead of exiting the configure script
3372         - Require version 2.4 of glib for glib bindings
3373         - Up version to 0.50
3374
3375         * python/__init__.py: Sync version with libdbus to (0,50,0)
3376         
3377 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3378
3379         * dbus/dbus-object-tree.c (find_subtree_recurse):
3380         a couple of optimizations (bug #710):
3381         - do a binary search in the tree
3382         - insert a new child at the right place directly, no need for
3383           qsort anymore
3384         - do the "double alloc" thing when allocating children
3385
3386 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3387
3388         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3389
3390         * python/dbus_bindings.pyx: Memory management foo
3391         (global): remove hacky _user_data_references global list
3392         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3393         tuples. Unref user_data
3394         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3395         (Connection::__del__): Remove and replace with __dealloc__ method
3396         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3397         to keep tuple from being deallocated instead of the global var hack
3398         (Connection::register_object_path): Stuff user_data into a tuple.
3399         Use Py_INCREF to keep tuple from being deallocated instead of the 
3400         global var hack
3401         (Connection::register_fallback): Stuff user_data into a tuple.
3402         Use Py_INCREF to keep tuple from being deallocated instead of the 
3403         global var hack
3404         (GIL_safe_pending_call_notification): Don't unref the message
3405         because it gets unreffed when going out of scope.  Py_XDECREF
3406         the user_data
3407         (PendingCall::__del__): Remove and replace with __dealloc__ method
3408         (PendingCall::set_notify): ref the pending call because we will
3409         need it to stick around for when the notify callback gets called
3410         (Message::__del__): Remove and replace with __dealloc__ method
3411
3412         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3413         gthreads_init to match up with the dbus call
3414
3415         * python/glib.py (init_threads): Changed to threads_init to match
3416         up with gobject.threads_init().  init_threads is kept for backwards
3417         compat but will most likely be deprecated in the future
3418
3419         * test/python/test-client.py: 
3420         - revamp to use Python's unittest functionality
3421         - add async call tests
3422         - setup threads in glib and dbus so we make sure locks are working
3423         
3424 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3425
3426         * python/dbus_bindings.pyx 
3427         (_pending_call_notification, cunregister_function_handler, 
3428         cmessage_function_handler): All callback functions have been rearranged 
3429         to workaround a bug in Pyrex when working with the GIL which is Python's 
3430         global lock when dealing with threads.  They have been split into
3431         a wrapper function (which assumes the name of the old function) and
3432         a _GIL_safe_<function name> function which contains the functionality
3433         of the old function.  This ensures that Pyrex does not write code
3434         the lock is released.
3435         
3436
3437 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3438
3439         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3440         GIL global lock when calling back into Python
3441
3442 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3443
3444         * Release 0.36.2
3445
3446         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3447
3448         * bus/policy.c (bus_policy_allow_user): change default "user is
3449         allowed" to be "user has same uid as the bus itself"; any
3450         allow/deny rules will override.
3451
3452         * bus/session.conf.in: don't allow all users, since now by default
3453         the user that ran the bus can connect.
3454
3455 2005-08-26  Colin Walters  <walters@verbum.org>
3456
3457         * tools/dbus-print-message.c (print_message): Flush stdout
3458         after printing a message, so that redirecting to a file, then
3459         hitting Ctrl-C works.
3460
3461 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3462
3463         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3464         (EmptyMessage): new class that subclasses Message.  This is a workaround
3465         to a Pyrex bug that fails to call __del__ when the Message object goes out
3466         of scope.  For some reason subclassing Message fixes this bug
3467         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3468         - s/Message(_create=0)/EmptyMessage everywhere else
3469         
3470         * test/python/test-{server|client}.py: add the python/.libs directory
3471         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3472         get picked up from the system
3473
3474 2005-08-25  Colin Walters  <walters@verbum.org>
3475
3476         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3477         to Ryan Lortie for the suggestion.
3478
3479 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3480
3481         * test/python: Add python regression test
3482
3483         * configure.in: Add test/python/Makefile
3484
3485         * test/Makefile.am: Add the python directory to SUBDIRS
3486
3487 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3488
3489         * Release 0.36.1
3490
3491         * python/_dbus.py: 
3492         (Interface::connect_to_signal): propigate keywords for match on args
3493         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3494
3495         * python/proxies.py (ProxyObject::connect_to_signal):
3496         propigate keywords for match on args
3497
3498         * Makefile.am: point everything to pyexecdir since python borks
3499         on multilib
3500
3501 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3502
3503         * Release 0.36
3504
3505 2005-08-23  Colin Walters  <walters@verbum.org>
3506
3507         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3508
3509 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3510
3511         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3512         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3513         of defining DBusConnection ourselves.
3514
3515 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3516
3517         * python/dbus.pth: New path file to fix up problems when installing
3518         c libraries to lib64 and python files to lib.
3519
3520         * python/Makefile.am: install dbus.pth in the correct spot
3521
3522 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3523         * ChangeLog: clean up my last entry a bit
3524
3525         * doc/introspect.xsl: New stylesheet for converting introspection data
3526         into browser renderable xhtml. Contributed by Lennart Poettering.
3527
3528         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3529         Poettering.
3530
3531         * doc/dbus-tutorial.xml: 
3532         - Add Colin Walter to the Authors section for authoring the GLib
3533         section
3534         - Add descriptions of the new signature and type functionality
3535         in the Python complex type mapping section
3536         - Add a sidenote on the new args matching functionality in 
3537         the Python bindings
3538         - Fixed up some of the examples to use the gobject.MainLoop
3539         instead of gtk.main
3540         
3541         * python/_dbus.py:
3542         (Bus::_create_args_dict): New. Converts a hash of arg matches
3543         to a more useable format
3544         (Bus::add_signal_receiver): add a **keywords parameter for catching
3545         arg match parameters
3546         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3547         arg match parameters
3548         
3549         * python/matchrules.py:
3550         (MatchTree::exec_matches): Check for arg matches
3551         (SignalMatchRule::add_args_match): New method
3552         (SignalMatchRule::execute): Added args_list parameter as an optimization
3553         so we don't have to marshal the args more than once
3554         (SignalMatchRule::match_args_from_list): New method that checks to see
3555         if the rule's arg matches match an argument list.  Only arguments
3556         set in the rule are checked.
3557         (SignalMatchRule::match_args_from_rule): New method that checks to see
3558         if the rule's arg matches match another rule's.  All args have to match
3559         in order for this method to return true.  If either rule has more args
3560         then it is not a match.
3561         (SignalMatchRule::is_match): Add args match
3562         (SignalMatchRule::repr): Add args to the final output if they exist
3563
3564 2005-08-17  Ross Burton  <ross@burtonini.com>
3565
3566         * glib/dbus-gproxy.c:
3567         (dbus_g_proxy_call_no_reply): unref the message once sent.
3568         (dbus_g_proxy_call): protect against NULL proxy.
3569
3570 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3571
3572         * python/__init__.py: Version updated (0, 43, 0)
3573         
3574         * python/dbus_bindings.pyx: 
3575         - Fixed type objects to have self passed into __init__
3576         - Added the Variant type
3577         - Add the ability to specify types or signatures for Array, Variant 
3578         and Dictionary
3579         (Connection::send_with_reply_handlers): return a PendingCall object
3580         (_pending_call_notification): handle the case when an error is returned 
3581         without an error message in the body
3582         (MessageIter::get_boolean): return True or False instead of an integer
3583         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3584         and add checks for objects with embeded signatures or types (Array, 
3585         Variant and Dictionary)
3586         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3587         (MessageIter::append_dict): handle embeded types or signatures
3588         (MessageIter::append_array): handle embeded types or signatures
3589         (MessageIter::append_variant): new method
3590         
3591         * python/proxies.py:
3592         (DeferedMethod): New. Dummy executable object used when queuing calls 
3593         blocking on introspection data
3594         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3595         or shorter timeouts for method calls
3596         (ProxyObject): Add first pass at an introspection state machine
3597         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3598         introspection. 
3599         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3600         the usual mechanisms for sending messages.  This is to avoid a deadlock
3601         where the Intospect call would be queued waiting for the Introspect 
3602         call to finish ;-)
3603         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3604         when introspection returns with no error
3605         (ProxyObject::_introspect_error_handler): New.  This method is called 
3606         when introspection encounters an error
3607         (ProxyObject::__getattr__): Code to handle different introspection 
3608         states.  Queue async calls or block blocking calls if we are 
3609         introspecting.  Pass through as normal if we are not or are done with 
3610         introspecting.
3611         
3612         * python/service.py: Import signal and method from decorators.py
3613
3614         * python/types.py: Add Variant type
3615
3616 2005-08-16  Colin Walters  <walters@verbum.org>
3617
3618         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3619         DBusError message is NULL.
3620
3621 2005-08-09  Havoc Pennington  <hp@redhat.com>
3622
3623         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3624         malloc'd copy of the name parameter
3625
3626 2005-08-09  Havoc Pennington  <hp@redhat.com>
3627
3628         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3629         warning if the reply serial is set to 0
3630
3631 2005-08-04  Colin Walters  <walters@verbum.org>
3632
3633         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3634         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3635         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3636         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3637         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3638         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3639         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3640         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3641         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3642         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3643         
3644         Prefix name with _ to ensure they're not exported.  All callers
3645         updated.
3646
3647         * glib/dbus-gvalue.c (typecode_to_gtype)
3648         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3649         (signature_iter_to_g_type_dict)
3650         (signature_iter_to_g_type_array)
3651         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3652         (dbus_gtypes_from_arg_signature):
3653         Move to dbus-gsignature.c.
3654
3655         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3656         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3657         (dbus_binding_tool_output_glib_client): Ditto.
3658
3659         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3660         and dbus-gsignature.h
3661
3662         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3663         unused variable.
3664
3665 2005-08-03  Colin Walters  <walters@verbum.org>
3666
3667         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3668         catch any incompatible changes accidentally made.
3669
3670 2005-08-03  Havoc Pennington  <hp@redhat.com>
3671
3672         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3673         typo, from Julien Puydt
3674
3675         * bus/connection.c (bus_connection_disconnected): we were always
3676         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3677
3678 2005-08-01  Colin Walters  <walters@verbum.org>
3679
3680         Patch from Joe Markus Clarke:   
3681         
3682         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3683         use-after-free.
3684
3685 2005-08-01  Colin Walters  <walters@verbum.org>
3686         
3687         Patch from Joe Markus Clarke:   
3688         
3689         * tools/dbus-send.c (main): 
3690         
3691         Don't use C99 style initializers (bug #3933).
3692         
3693 2005-08-01  Colin Walters  <walters@verbum.org>
3694
3695         Patch from Joe Markus Clarke:   
3696
3697         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3698         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3699         * glib/dbus-gobject.c (write_interface):
3700
3701         Don't use C99 style initializers (bug #3933).
3702
3703 2005-07-31  Havoc Pennington  <hp@redhat.com>
3704
3705         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3706         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3707
3708 2005-07-30  Havoc Pennington  <hp@redhat.com>
3709
3710         * fix a bunch of Doxygen warnings and mistakes
3711
3712 2005-07-30  Havoc Pennington  <hp@redhat.com>
3713
3714         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3715         DBUS_BUILD_TESTS since it's now used in production code
3716
3717 2005-07-29  Havoc Pennington  <hp@redhat.com>
3718
3719         * test/glib/test-profile.c (write_junk): initialize the junk
3720         buffer so valgrind doesn't have a breakdown
3721
3722 2005-07-29  Havoc Pennington  <hp@redhat.com>
3723
3724         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3725         (match_rule_matches): remove unused arg
3726         (test_matching): add tests for match_rule_matches()
3727
3728         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3729         do arg0='foo' arg5='bar' in the match rules
3730         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3731
3732         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3733
3734 2005-07-29  Ross Burton  <ross@openedhand.com>
3735
3736         * dbus/dbus-connection.c:
3737         Don't create a DBusCondVar which is never used.
3738
3739 2005-07-27  Ross Burton  <ross@openedhand.com>
3740
3741         * dbus/dbus-message.c:
3742         Reduce the size of the maximum cached message to 10K.
3743
3744 2005-07-25  Ross Burton  <ross@openedhand.com>
3745
3746         * glib/dbus-gproxy.c:
3747         Remove matches when all proxies are unregistered.
3748
3749 2005-07-24  Colin Walters  <walters@verbum.org>
3750
3751         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3752         typedata; recursive arrays won't have it.
3753
3754         * test/glib/test-dbus-glib.c:
3755         * test/glib/test-service-glib.c:
3756         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3757         
3758 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3759
3760         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3761         proxies.py, service.py: Cleanup of code after running it through the
3762         pyflakes code checker mostly dealing with undefined names.  
3763         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3764
3765 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3766
3767         * NEWS: Update to 0.35.2
3768
3769 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3770
3771         * python/_dbus.py: Remove import of the dbus.services
3772         module as it no longer exists (patch from Dimitur Kirov)
3773
3774         * python/service.py (Object::__init__): Fixed typo
3775         s/name/bus_name (patch from Dimitur Kirov)
3776
3777         * python/examples/example-signal-emitter.py: import dbus.glib
3778         to get the main loop and use glib mainloop instead of gtk so
3779         X doesn't have to be running.
3780
3781         * python/examples/example-signal-recipient.py: import dbus.glib
3782         to get the main loop and use glib mainloop instead of gtk so
3783         X doesn't have to be running. Import the decorators module
3784         directly.
3785
3786         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3787         didn't pick up on but are needed to build
3788
3789         * configure.in: upped version to 0.35.2
3790
3791         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3792         added Colin Walters' SELinux API rename patch from head 
3793         s/unix sercurity context/selinux security context/
3794
3795 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3796
3797         * python/Makefile.am: dbus_binding.pxd.in should be included 
3798         in EXTRA_DIST not dbus_binding.pxd
3799         fix up $(srcdir) hopefully for the last time
3800
3801         * NEWS: Update to 0.35.1
3802
3803 2005-07-16  Colin Walters  <walters@verbum.org>
3804
3805         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3806         from bus_driver_handle_get_connection_unix_security_context.  Update for
3807         error usage.
3808         (message_handlers): Update for renames.
3809
3810         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3811         _dbus_string_init failure correctly.
3812         (bus_selinux_append_context): Convert SID to context.  Append it
3813         as a byte array.
3814         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3815         hasn't been called.
3816
3817         * bus/selinux.h: Update prototype.
3818
3819         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3820         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3821
3822 2005-07-15  Colin Walters  <walters@verbum.org>
3823
3824         * doc/TODO: Add note about convenience wrappers.
3825
3826 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3827
3828         * NEWS: Update to 0.35
3829
3830 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3831
3832         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3833         so distcheck doesn't fail
3834
3835         * glib/examples/Makefile.am: Add example-service.xml and 
3836         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3837
3838         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3839         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3840
3841         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3842         compiler looks in the right places during distcheck
3843
3844 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3845
3846         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3847         to fail
3848
3849 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3850
3851         * python/examples/example-service.py,
3852         python/examples/example-signal-emitter.py: Fixed up examples
3853         for API changes
3854
3855 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3856
3857         * python/__init__.py: Upped to version (0,42,0) because of
3858         the API change
3859
3860 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3861
3862         * ChangeLog: fix date in last entry
3863
3864         * configure.in, bus/system.conf.in: add the ability to configure 
3865         the system bus user at compiletime with the --with-dbus-user flag
3866         (patch from Kristof Vansant)
3867
3868 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3869
3870         * bus/dispatch.c, test/test-service.c: Add testcase
3871         for sending messages to oneself (TODO item).
3872
3873         * python/service.py (class Object): Swap ordering of bus_name 
3874         and object_path parameters to better support inheritance.
3875
3876         * doc/dbus-tutorial.xml: change Python docs to reflect change
3877         in parameter ordering and fix the inheritance section.
3878
3879         * doc/TODO: remove sending message to oneself TODO item
3880
3881 2005-07-15  Ross Burton  <ross@openedhand.com>
3882
3883         * glib/dbus-gproxy.c:
3884         Fix a leak when calling methods via the proxy.
3885
3886 2005-07-15  Colin Walters  <walters@verbum.org>
3887
3888         * bus/selinux.c (bus_selinux_append_context): Wrap in
3889         HAVE_SELINUX.
3890
3891 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3892
3893         * python/_dbus.py (Bus::remove_signal_receiver):
3894         don't add a callback to the match if none has been passed in
3895         
3896         * python/matchrules.py (SignalMatchTree::remove): if the rule
3897         being matched does not have a callback treat it as a wildcard
3898         fix matching logic
3899
3900         * doc/dbus-tutorial.xml: Add Python tutorial
3901
3902 2005-07-14  Colin Walters  <walters@verbum.org>
3903
3904         * bus/driver.c
3905         (bus_driver_handle_get_connection_unix_security_context): New function.
3906         (message_handlers): Add.
3907
3908         * bus/selinux.c (bus_selinux_append_context): New function; appends
3909         security context to message.
3910
3911         * bus/selinux.h: Prototype.
3912
3913         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3914
3915 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3916
3917         * bus/activation.c: clean up all tabs to be 8 spaces 
3918         (bus_activation_activate_service): make sure we clean up
3919         if activation fails
3920
3921         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3922         (check_shell_fail_service_auto_start): New function
3923         tests to make sure we get fail properly when trying to auto start a service
3924         with a faulty command line
3925         (check_shell_service_success_auto_start): New function tests to make sure
3926         auto started services get the arguments on the command line
3927
3928         * test/test-shell-service.c: Added service for testing auto-starting with 
3929         command line arguments
3930
3931         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3932         test/data/valid-service-files/debug-shell-echo-success.service.in:
3933         Added service files for testing auto-starting with command line arguments
3934
3935         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3936
3937 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3938
3939         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3940         
3941         * dbus/Makefile.am: added new files to build.
3942
3943         * bus/activation.c (bus_activation_activate_service): support
3944         activation commands with parameters.
3945
3946         * test/shell-test.c: added test program for the shell parsing
3947         code.
3948
3949 2005-07-13  David Zeuthen  <davidz@redhat.com>
3950
3951         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3952         64 bit signed and unsigned parameters
3953
3954 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3955
3956         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3957
3958         * python/service.py (class Name): renamed BusName to make it clearer
3959         what the object is for (a name on the bus)
3960
3961         * python/examples/example-service.py,
3962         python/examples/example-signal-emitter.py: change the Name object to
3963         BusName
3964
3965 2005-07-12  Colin Walters  <walters@verbum.org>
3966
3967         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3968
3969         * tools/dbus-launch.c: Include sys/select.h.
3970
3971 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3972         * python/dbus_bindings.pyx.in: removed
3973
3974         * python/dbus_bindings.pyx: Added.
3975         - Fixed some memleaks (patch from 
3976         Sean Meiners <sean.meiners@linspireinc.com>)
3977         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3978         own pxd file (Pyrex definition)
3979         - Broke out glib dependancies into its own pyx module
3980         
3981         * python/dbus_bindings.pdx: Added.
3982         - Defines C class Connection for exporting to other modules
3983
3984         * python/dbus_glib_bindings.pyx: Added.
3985         - New module to handle lowlevel dbus-glib mainloop integration
3986
3987         * python/glib.py: Added.
3988         - Registers the glib mainloop when you import this module
3989
3990         * python/services.py: Removed (renamed to service.py)
3991         
3992         * python/service.py: Added.
3993         - (class Server): renamed Name
3994
3995         * python/__init__.py: Bump ro version (0,41,0)
3996         -don't import the decorators or service module
3997         by default.  These now reside in the dbus.service namespace
3998
3999         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4000         setup function on creation 
4001
4002         * python/examples/example-service.py,
4003         python/examples/example-signal-emitter.py: update examples
4004
4005         * python/examples/gconf-proxy-service.py,
4006         python/examples/gconf-proxy-service2.py: TODO fix these up
4007
4008         * doc/TODO: Addition
4009         - Added a Python Bindings 1.0 section
4010         - added "Add match on args or match on details to match rules"
4011
4012
4013 2005-07-12  Colin Walters  <walters@verbum.org>
4014
4015         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4016         (statemachine-glue.h): 
4017         * glib/examples/Makefile.am (example-service-glue.h) 
4018         (example-signal-emitter-glue.h): 
4019         * glib/Makefile.am (dbus-glib-error-switch.h): 
4020         Add libtool --mode=execute so we use the built library instead
4021         of any installed one.
4022
4023 2005-07-11  Colin Walters  <walters@verbum.org>
4024
4025         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4026         (dbus_g_value_types_init): Remove assertion.
4027         (dbus_g_value_get_g_type, dbus_g_value_open)
4028         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4029         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4030         functions related to DBusGValue.  Now we marshal/demarshal
4031         structures as GValueArray.
4032         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4033         structures.
4034         (signature_iter_to_g_type_array): Don't call
4035         signature_iter_to_g_type_struct.
4036         (signature_iter_to_g_type_struct): Delete.
4037         (dbus_gvalue_to_signature): Delete.
4038         (dbus_gvalue_to_signature): New function with same name as other
4039         one; we can convert structures to signatures.
4040         (demarshal_valuearray): New function.
4041         (get_type_demarshaller): Use it.
4042         (demarshal_recurse): Delete.
4043         (marshal_proxy): New function.
4044         (marshal_map): Warn if we can't determine signature from type.
4045         (marshal_collection_ptrarray): Ditto.
4046         (marshal_collection_array): Ditto.
4047         (get_type_marshaller): Use marshal_valuearray.
4048         (marshal_recurse): Delete.
4049         (_dbus_gvalue_test): Add some tests.
4050
4051         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4052         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4053         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4054         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4055         (dbus_g_value_free): Remove prototypes.
4056
4057         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4058         G_TYPE_VALUE_ARRAY.
4059
4060         * glib/examples/example-service.c:
4061         * glib/examples/example-client.c: Implement GetTuple.
4062
4063         * test/glib/test-dbus-glib.c:
4064         * test/glib/test-service-glib.c:
4065         * test/glib/test-service-glib.xml: Add structure tests.
4066
4067 2005-07-10  Colin Walters  <walters@verbum.org>
4068
4069         * doc/TODO: Knock off some GLib items with this patch.
4070
4071         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4072         (_dbus_gvalue_signals_error): New functions.
4073
4074         * glib/dbus-gvalue-utils.h: Prototype them.
4075
4076         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4077         and change to not output const/retval flags for input args.  All
4078         callers updated.
4079         (invoke_object_method): Refactor to handle return values.  Add
4080         some more comments in various places.  Remove debug g_print.
4081
4082         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4083
4084         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4085         Handle G_TYPE_NONE.
4086         (compute_gsignature): New function; refactored from code from
4087         compute_marshaller and compute_marshaller_name.  Enhance to
4088         handle return values and async ops more cleanly.  Update for
4089         async ops returning NONE instead of BOOLEAN.
4090         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4091         and output appropriate string.
4092         (generate_glue): Handle return value annotation.  Also don't dump
4093         constness flag for input arguments.
4094
4095         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4096         files shared between installed library and utilities.
4097         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4098         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4099         binding tool can access gtype utility functions.
4100
4101         * test/glib/test-service-glib.c: 
4102         * test/glib/test-service-glib.xml: 
4103         * test/glib/test-dbus-glib.c: Add some tests for return values.
4104
4105 2005-07-09  Colin Walters  <walters@verbum.org>
4106
4107         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4108         argument if available, not method.
4109
4110         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4111         (invoke_object_method): First, remove some redundant
4112         GValues (object_value, error_value) in favor of working on
4113         array directly.  Second, rework constness to be less buggy.
4114         Now we iterate directly over the argument metadata instead
4115         of parallel iterating over output signature and metadata.
4116
4117         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4118
4119         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4120         annotation on input args.
4121         
4122 2005-07-09  Colin Walters  <walters@verbum.org>
4123
4124         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4125         Define.
4126
4127         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4128         annotation.
4129
4130         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4131         (method_dir_signature_from_object_info): Handle arg_iterate change.
4132         (write_interface): Ditto.
4133         (lookup_object_info): Don't barf if format_version is > 0.
4134         (invoke_object_method): Handle arg constness.
4135
4136         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4137         (arg_info_new): Create.
4138         (arg_info_unref): Destroy.
4139         (arg_info_get_annotations, arg_info_get_annotation) 
4140         (arg_info_add_annotation): New functions.
4141
4142         * glib/dbus-gidl.h: Prototype them.
4143
4144         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4145         args, disallow them in properties.
4146         (parse_annotation): Handle arg annotations.
4147
4148         * test/glib/test-service-glib.xml: 
4149         * test/glib/test-service-glib.c: Update to make some methods
4150         const.
4151
4152 2005-07-08  Colin Walters  <walters@verbum.org>
4153
4154         * test/glib/test-service-glib.xml: 
4155         * test/glib/test-service-glib.c:
4156         * test/glib/test-dbus-glib.c: Test a{sv}.
4157
4158         * glib/examples/statemachine/statemachine.c:
4159         * glib/examples/statemachine/statemachine-server.c:
4160         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4161         add progress bar, etc.
4162
4163         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4164         needed anymore due to generic array/map marshalling.
4165         (dbus_g_value_types_init): Don't register basic arrays or the
4166         string/string hash.
4167         (dbus_gtype_from_signature_iter): Don't try to recurse into
4168         variants.
4169         (dbus_gtype_to_signature): Check collection/map before type
4170         metadata.
4171         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4172         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4173         generic map creation/append functions instead of hash table
4174         specifically.
4175         (get_type_demarshaller): Handle maps.
4176         (demarshal_collection): Dispatch on collection type to either
4177         demarshal_collection_ptrarray or demarshal_collection_array.
4178         (get_type_marshaller): Handle maps.
4179         (marshal_collection): Dispatch collection type to either
4180         marshal_collection_ptrarray or marshal_collection_array.
4181         (_dbus_gvalue_test): New test.
4182
4183         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4184         (hash_free_from_gtype): Use it to free GValues.
4185         (hashtable_append): New function.
4186         (ptrarray_append): Fix prototype.
4187         (slist_append): Ditto.
4188         (_dbus_gvalue_utils_test): Extend tests.
4189
4190         * glib/dbus-gtype-specialized.c
4191         (dbus_g_type_specialized_init_append): Renamed from
4192         dbus_g_type_specialized_collection_init_append.  Remove const from
4193         value, since we steal it.
4194         (dbus_g_type_specialized_map_append): New function.
4195
4196         * glib/dbus-gtype-specialized.h: Update prototypes.
4197         Add DBusGTypeSpecializedMapAppendFunc.
4198
4199         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4200         _dbus_gvalue_test.
4201         
4202         * glib/dbus-gtest.h: Prototype it.
4203
4204 2005-07-08  Ross Burton  <ross@openedhand.com>
4205
4206         * dbus/dbus-glib.h:
4207         Add DBysGAsyncData for the async bindings.
4208
4209         * glib/dbus-binding-tool-glib.c:
4210         Re-enable the async bindings.
4211
4212         * test/glib/test-dbus-glib.c:
4213         Add a test for the generated async bindings.
4214
4215 2005-07-08  Colin Walters  <walters@verbum.org>
4216
4217         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4218         connection concept.
4219         
4220 2005-07-08  Colin Walters  <walters@verbum.org>
4221         
4222         * tools/Makefile.am: Kill of print-introspect in favor of using
4223         dbus-send --print-reply=literal.
4224
4225         * test/glib/test-service-glib.xml: 
4226         * test/glib/test-service-glib.c (my_object_get_objs): New test
4227         for "ao".
4228
4229         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4230         (main): Test GetObjs.
4231
4232         * glib/examples/statemachine/Makefile.am:
4233         * glib/examples/statemachine/sm-marshal.list:
4234         * glib/examples/statemachine/statemachine-client.c:
4235         * glib/examples/statemachine/statemachine-server.c:
4236         * glib/examples/statemachine/statemachine-server.xml:
4237         * glib/examples/statemachine/statemachine.c:
4238         * glib/examples/statemachine/statemachine.h:
4239         * glib/examples/statemachine/statemachine.xml:
4240
4241         New example.
4242
4243         * glib/examples/example-service.c (main): Move invocation
4244         of dbus_g_object_type_install_info earlier, to emphasize it
4245         should only be done once.
4246
4247         * glib/examples/example-signal-emitter.c (main): Ditto.
4248
4249         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4250
4251         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4252         (dbus_gvalue_marshal): Update prototypes.
4253
4254         * glib/dbus-gvalue.c: Update all marshalling functions to take
4255         const GValue instead of GValue.
4256         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4257         types.
4258         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4259         change.
4260         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4261         Return a newly-allocated string.
4262         (demarshal_proxy, demarshal_object_path, demarshal_object)
4263         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4264         we get the wrong types from message.
4265         (get_type_demarshaller): New function, extracted from
4266         dbus_gvalue_demarshal.
4267         (demarshal_collection): New function, demarshals generic
4268         collection.
4269         (dbus_gvalue_demarshal): Just invoke result of
4270         get_type_demarshaller.  Throw error if we don't have one.
4271         (marshal_garray_basic): Abort on OOM.
4272         (get_type_marshaller): New function, extracted from
4273         dbus_gvalue_marshal.
4274         (collection_marshal_iterator, marshal_collection): New functions;
4275         implements generic marshalling for an iteratable specialized
4276         collection.
4277         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4278
4279         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4280         G_TYPE_STRING.
4281         (ptrarray_value_from_gvalue): Ditto.
4282         (ptrarray_append, ptrarray_free): New functions.
4283         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4284         (slist_append, slist_end_append, slist_free): New functions.
4285         (dbus_g_type_specialized_builtins_init): Add append fuctions
4286         for GPtrArray and GSList.  Register GSList.
4287         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4288
4289         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4290         New.
4291         (dbus_g_type_specialized_collection_init_append)
4292         (dbus_g_type_specialized_collection_append)
4293         (dbus_g_type_specialized_collection_end_append): Prototype.
4294         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4295         end_append_func.
4296
4297         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4298         (dbus_g_type_specialized_collection_append) 
4299         (dbus_g_type_specialized_collection_end_append): New functions.
4300         (dbus_g_type_map_value_iterate): Take const GValue.
4301         (dbus_g_type_collection_value_iterate): Ditto.
4302
4303         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4304         _dbus_gvalue_utils_test.
4305         
4306         * glib/dbus-gtest.h: Prototype it.
4307
4308         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4309         using uninitialized owner_list.
4310         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4311         public API.
4312         (dbus_g_proxy_end_call_internal): Update to use error set
4313         from dbus_gvalue_demarshal instead of setting it here.
4314         (dbus_g_proxy_begin_call): Move return_if_fail here.
4315
4316         * glib/dbus-gobject.c (write_interface): Update for
4317         dbus_gtype_to_signature returning new string.
4318
4319         * configure.in: Add glib/examples/statemachine.
4320
4321 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4322
4323         * configure.in: Add a configure option, --with-console-auth-dir
4324         
4325         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4326         new setting.  Patch from Kay Sievers.
4327
4328 2005-07-06  Colin Walters  <walters@verbum.org>
4329
4330         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4331         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4332         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4333         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4334         Delete in favor of dbus_g_proxy_begin_call and
4335         dbus_g_proxy_cancel_call.
4336         (DBusGProxyCall, DBusGProxyCallNotify): New.
4337         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4338         data, and destroy function.  This replaces
4339         dbus_g_pending_call_set_notify.
4340         (dbus_g_proxy_cancel_call): Prototype.
4341         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4342
4343         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4344         pending_calls map.
4345         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4346         internal proxy for calls to the bus. Remove
4347         pending_nameowner_calls, now the internal proxy keeps track.
4348         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4349         pending_nameowner_calls.
4350         (got_name_owner_cb): Update prototype, and use
4351         dbus_g_proxy_end_call.
4352         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4353         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4354         favor of using internal proxy.
4355         (dbus_g_proxy_manager_unregister): Update to use
4356         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4357         (dbus_g_proxy_init): Initialize pending calls map.
4358         (dbus_g_proxy_constructor): New.
4359         (dbus_g_proxy_class_init): Add get/set property functions,
4360         constructor, and add NAME, PATH, and INTERFACE properties.
4361         (cancel_pending_call): New function.
4362         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4363         cancel them.
4364         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4365         (GPendingNotifyClosure): New structure.
4366         (d_pending_call_notify, d_pending_call_free): Moved here from
4367         dbus-glib.c.
4368         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4369         ordering.
4370         (manager_begin_bus_call): New internal function for talking to
4371         internal bus proxy.
4372         (dbus_g_proxy_new): Construct object using GObjet properties.
4373         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4374         Create closure of same, and insert call into map of pending calls.
4375         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4376         call.  Look up pending call in current set.  Remove it when we've
4377         completed.
4378         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4379         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4380         and destroy function directly.
4381         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4382         (dbus_g_proxy_call): Invoke with NULL callback.
4383         (dbus_g_proxy_cancel_call): New function, replaces
4384         dbus_g_pending_call_cancel.
4385
4386         * glib/dbus-gparser.c (validate_signature): Fix call to
4387         dbus_set_g_error.
4388
4389         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4390         New quark for attaching metadata to GType.
4391         (info_hash): Delete.
4392         (lookup_object_info): Look up using quark.
4393         (dbus_g_object_type_install_info): Check that a type is classed,
4394         not that it's an object.  Also just install type data using quark
4395         instead of using global hash.
4396
4397         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4398         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4399         (GPendingNotifyClosure): Delete.
4400         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4401         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4402
4403         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4404         client method generation until we can fix it...
4405         
4406         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4407         (load_from_service_thread_func): Ditto.
4408
4409         * tools/dbus-names-model.c (struct NamesModel): Hold
4410         DBusGProxyCall.
4411         (have_names_notify): Update prototype, use
4412         dbus_g_proxy_cancel_call.
4413         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4414
4415         * tools/dbus-monitor.c (filter_func): Update for print_message
4416         API change.
4417
4418         * test/glib/test-dbus-glib.c: Add more tests for async
4419         invocations.  Update many begin_call/end_call pairs to just use
4420         dbus_g_proxy_call.
4421
4422         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4423         allows us to dump print-introspect.c.
4424
4425         * tools/dbus-print-message.h (print_message): Add literal argument
4426         to print_message which is intended to allow printing arguments without
4427         metadata like "string=".
4428
4429         * tools/dbus-print-message.c (print_iter): Add literal argument.
4430         (print_message): Allow printing string messages literally.
4431
4432 2005-07-05  Colin Walters  <walters@verbum.org>
4433
4434         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4435         Remove value refcount leak, original patch from Jorn Baayen
4436         <jorn@openedhand.com>.  Also remove useless extra value in favor
4437         of prepending to value array directly.
4438
4439 2005-07-02  Colin Walters  <walters@verbum.org>
4440
4441         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4442
4443 2005-07-01  Colin Walters  <walters@verbum.org>
4444
4445         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4446         
4447         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4448         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4449         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4450         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4451
4452 2005-06-30  Colin Walters  <walters@verbum.org>
4453
4454         * test/glib/test-dbus-glib.c:
4455         * test/glib/test-service-glib.c:
4456         * test/glib/test-service-glib.xml: Update tests for new error
4457         setting bits, also add async tests (patch from Ross Burton).
4458
4459         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4460         DBUS_GLIB_THREADS_LIBS.
4461
4462         * glib/dbus-gproxy.c (get_name_owner)
4463         (dbus_g_pending_call_end_valist): Ditto.
4464
4465         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4466         domain (GQuark) to DBusGErrorInfo.  
4467         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4468         quark in error_metadata.  Take message interface as default
4469         error message interface.
4470         (gerror_to_dbus_error_message): Pass message interface.
4471         (dbus_set_g_error): Resurrected.
4472         (dbus_g_error_info_free): New function.
4473         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4474         of _peek to actually create the object class if it hasn't been
4475         created yet.
4476         (dbus_g_error_domain_register): New function.
4477
4478         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4479
4480         * glib/dbus-gparser.c (validate_signature): Ditto.
4481
4482         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4483         (dbus_g_error_domain_register): Prototype.
4484
4485         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4486         Update tests.
4487
4488 2005-06-29  Colin Walters  <walters@verbum.org>
4489
4490         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4491         DBUS_TYPE_G_OBJECT_PATH.
4492
4493         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4494         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4495         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4496         (dbus_g_object_path_get_g_type): New function.
4497         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4498         to DBUS_TYPE_G_OBJECT_PATH by default.
4499         (demarshal_proxy): Remove unused name variable.
4500         (demarshal_object_path, marshal_object_path): New functions.
4501         (demarshal_proxy_array, marshal_proxy_array): Delete.
4502         
4503         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4504         DBUS_TYPE_G_OBJECT_PATH to char *.
4505         (dbus_g_type_get_lookup_function): Map builtin
4506         DBUS_TYPE_G_OBJECT_PATH.
4507
4508         * test/glib/test-dbus-glib.c
4509         * test/glib/test-service-glib.c (my_object_objpath): 
4510         Adapt tests to new object path marshalling.
4511
4512 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4513
4514         * configure.in: force check for Python >= 2.4
4515
4516 2005-06-29  Colin Walters  <walters@verbum.org>
4517         
4518         Patch from Ross Burton <ross@openedhand.com>
4519         
4520         * glib/dbus-gobject.c (invoke_object_method): Unset object
4521         value in all cases, not only in async case.
4522
4523 2005-06-29  Colin Walters  <walters@verbum.org>
4524
4525         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4526         name_call for keeping track of any outgoing GetNameOwner call.
4527         Also add for_owner and associated.
4528         (struct _DBusGProxyManager): Add owner_names, which is hash table
4529         that maps a base name to a list of names it owns (that we're
4530         interested in).  Add pending_nameowner_calls which is a list of
4531         all outstanding GetNameOwner; avoids us having to iterate over
4532         every proxy.  Add unassociated_proxies which keeps track of name
4533         proxies with no associated name owner.
4534         (dbus_g_proxy_manager_unref): Destroy owner_names.
4535         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4536         name refcounts.
4537         (find_name_in_info, name_owner_foreach)
4538         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4539         (dbus_g_proxy_manager_monitor_name_owner)
4540         (dbus_g_proxy_manager_unmonitor_name_owner)
4541         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4542         New functions; they manipulate the owner_names mapping.
4543         (got_name_owner_cb): New function.
4544         (get_name_owner): New function, extracted from
4545         dbus_g_proxy_new_for_name_owner.
4546         (dbus_g_proxy_manager_register): For now we need to keep track of
4547         all NameOwnerChanged.  Also if the proxy is for a name, if we
4548         don't already know the name owner, queue a new GetNameOwner
4549         request and add it to our list of unassociated proxies.  Otherwise
4550         inc the refcount.
4551         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4552         cancel any pending GetNameOwner call, etc.
4553         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4554         the owner_names mapping to look up the current names for the
4555         signal source, and dispatch to any proxies for that name.
4556         (dbus_g_proxy_new): Initialize new members.
4557         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4558         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4559         (dbus_g_pending_call_end_valist): New function, extracted from
4560         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4561         but want to use the GLib infrastructure.  Also note how many
4562         arguments in reply were over.
4563         (dbus_g_pending_call_end): New function, just call
4564         dbus_g_pending_call_end_valist.
4565         (dbus_g_proxy_end_call_internal): Just call
4566         dbus_g_pending_call_end_valist.
4567
4568         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4569         of builtin marshaller for STRING_STRING_STRING.
4570
4571         * test/glib/test-dbus-glib.c: 
4572         * test/glib/test-service-glib.c:
4573         * test/glib/test-service-glib.xml:
4574         Extend tests to cover name proxies, destruction of owner proxies,
4575         etc.
4576         
4577         * glib/examples/example-signal-recipient.c
4578         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4579         
4580         * tools/dbus-send.c (main): Print D-BUS error name in addition
4581         to message.
4582
4583 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4584
4585         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4586         cmessage_function_handler): Patch from 
4587         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4588         by using the Py_GILState_Ensure/Release to synchronize with the
4589         python runtime.
4590         
4591 2005-06-28  Ray Strode  <rstrode@redhat.com>
4592
4593         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4594         babysitter helper process on last unref, bug #2813.
4595
4596 2005-06-27  Colin Walters  <walters@verbum.org>
4597
4598         * test/glib/test-dbus-glib.c: 
4599         * test/glib/test-service-glib.c:
4600         * test/glib/test-service-glib.xml:
4601         Test hash table signal emitting.
4602
4603         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4604         types to their fundamental basis types, since this is what
4605         marshallers operate on.  Also add an entry for VOID__BOXED.
4606         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4607
4608 2005-06-26  Havoc Pennington  <hp@redhat.com>
4609
4610         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4611         from Don Park
4612
4613 2005-06-26  Colin Walters  <walters@verbum.org>
4614
4615         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4616         (dbus_g_error_set): New public function from its ashes; used by
4617         both service-side method implementation and GLib bindings
4618         internals.
4619         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4620         (_dbus_glib_test): Add some tests.
4621
4622         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4623
4624         * test/glib/test-service-glib.c (my_object_throw_error): Use
4625         dbus_g_error_set.
4626
4627         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4628         errors thrown by dbus_g_error_set.
4629
4630         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4631
4632         * glib/dbus-gparser.c (validate_signature): Ditto.
4633
4634         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4635         (dbus_g_proxy_end_call_internal): Ditto.
4636
4637         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4638         converts DBUS_ERROR_x to DBUS_GERROR_x.
4639         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4640
4641         * doc/TODO: Remove error TODO.
4642
4643         * doc/dbus-tutorial.xml: Update with documentation about error
4644         handling.
4645
4646         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4647         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4648         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4649
4650 2005-06-22  Colin Walters  <walters@verbum.org>
4651         
4652         Patch from Ross Burton <ross@openedhand.com>
4653
4654         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4655
4656 2005-06-20  Colin Walters  <walters@verbum.org>
4657
4658         * configure.in: Add glib/examples.
4659
4660         * glib/Makefile.am: Add examples/
4661
4662         * glib/examples/.cvsignore
4663         * glib/examples/Makefile.am
4664         * glib/examples/example-client.c
4665         * glib/examples/example-service.c
4666         * glib/examples/example-service.xml
4667         * glib/examples/example-signal-emitter.c
4668         * glib/examples/example-signal-emitter.xml
4669         * glib/examples/example-signal-recipient.c:
4670         New files; GLib binding examples, ported from
4671         python/examples.
4672
4673 2005-06-20  Colin Walters  <walters@verbum.org>
4674
4675         * dbus/dbus-glib.h: 
4676         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4677         dbus_g_proxy_call.
4678
4679         * glib/dbus-binding-tool-glib.c: 
4680         * doc/dbus-tutorial.xml: 
4681         * test/glib/test-dbus-glib.c: Update for rename.
4682         
4683 2005-06-20  Colin Walters  <walters@verbum.org>
4684
4685         Patch suggested by Ross Burton <ross@openedhand.com>
4686
4687         * glib/dbus-gobject.c (export_signals): Free signal name.
4688         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4689         memory leak.  Add a bit of documentation.
4690         (dbus_g_method_return_error): Free context, and note we do
4691         so.
4692
4693 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4694
4695         * dbus/dbus-glib.h:
4696         * glib/dbus-gobject.c:
4697         * glib/dbus-gproxy.c:
4698         * glib/dbus-gvalue.c: Predeclare structs as 
4699         typedef struct _Something Something instead of 
4700         typedef struct Something Something, so we can 
4701         redeclare the prototypes. Other GNOME libraries 
4702         do this already.
4703
4704 2005-06-17  Colin Walters  <walters@verbum.org>
4705
4706         * tools/dbus-names-model.c (have_names_notify): Fix call
4707         to dbus_g_proxy_end_call.
4708         
4709 2005-06-17  Colin Walters  <walters@verbum.org>
4710
4711         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4712         spew warnings if we get malformed remote signals.
4713
4714         * glib/dbus-gobject.c (propsig_iterate): New function.
4715         (lookup_object_info): New function, extracted from
4716         lookup_object_and_method.
4717         (introspect_properties, introspect_signals): Delete; these
4718         are merged into write_interface.
4719         (write_interface): Write out signals and properties here;
4720         dump the org.gtk.object stuff and use the interface given
4721         in the introspection data blob.  Also fix up property XML.
4722         (lookup_values): New function.
4723         (introspect_interfaces): Gather a mapping from interface to a
4724         list of its methods, signals, and properties, then write out
4725         each interface.
4726         (lookup_object_and_method): Use lookup_object_info.
4727         (struct DBusGSignalClosure): Add interface.
4728         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4729         we can just use the constant data.
4730         (dbus_g_signal_closure_finalize): Don't free signal name.
4731         (signal_emitter_marshaller): Use interface from signal closure.
4732         (export_signals): Only export signals mentioned in introspection
4733         blob.
4734         (dbus_g_connection_register_g_object): Warn if we have no
4735         introspection data for an object.
4736         (funcsig_equal): Remove unused variable.
4737         (dbus_g_object_register_marshaller): Take varargs instead of
4738         list.
4739         (dbus_g_object_register_marshaller_array): New function,
4740         extracted from old dbus_g_object_register_marshaller.
4741
4742         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4743         signals and property data.
4744         (write_quoted_string): New function, extracted from generate_glue.
4745         (generate_glue): Write signals and properties to introspection
4746         blob.
4747
4748         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4749         exported_signals and exported_properties.
4750         (dbus_g_object_register_marshaller): Update prototype.
4751         (dbus_g_object_register_marshaller_array): Prototype.
4752         
4753         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4754
4755         * test/glib/test-service-glib.c: Add new test signals and method
4756         to emit them.
4757
4758         * test/glib/test-service-glib.xml: Add some test signals.
4759
4760         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4761         and my-object-marshal.h
4762         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4763         my-object-marshal.c.
4764         (my-object-marshal.c, my-object-marshal.h): Implement.
4765
4766         * test/glib/.cvsignore: Update.
4767
4768         * doc/TODO: Remove two GLib TODO items fixed by this
4769         patch.
4770
4771 2005-06-16  Colin Walters  <walters@verbum.org>
4772
4773         * doc/TODO: Update for GLib bindings.
4774         
4775 2005-06-16  Colin Walters  <walters@verbum.org>
4776
4777         * glib/dbus-binding-tool-glib.c:
4778         * glib/dbus-gobject.c:
4779         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4780         from Ross Burton, for his GLib bindings work.
4781
4782 2005-06-16  Colin Walters  <walters@verbum.org>
4783
4784         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4785         to iterate instead of walking to G_TYPE_INVALID.
4786
4787         Patch based on a patch from Ryan Gammon.
4788
4789 2005-06-16  Colin Walters  <walters@verbum.org>
4790
4791         * bus/bus.c (bus_context_new): Set parser to NULL
4792         after we unref it (Patch from Chris Boscolo, #2174).
4793         
4794 2005-06-16  Colin Walters  <walters@verbum.org>
4795
4796         * python/dbus_bindings.pyx.in: Import size_t,
4797         __int64_t, __uint64_t, and __signed.
4798
4799         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4800         Define cmsg struct, output it.
4801         (_dbus_read_credentials_unix_socket):
4802         Use cmsg struct.
4803         
4804         Patch from Joe Markus Clarke for FreeBSD support.
4805         
4806 2005-06-16  Colin Walters  <walters@verbum.org>
4807
4808         * tools/dbus-send.c (append_array): Use strtok.
4809         (append_dict): New function.
4810         (type_from_name): New function, extracted from main.
4811         (main): Handle sending dicts.
4812
4813         * tools/dbus-print-message.c (print_iter): Print dict
4814         entries.
4815         
4816 2005-06-16  Colin Walters  <walters@verbum.org>
4817
4818         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4819         values as the empty string (#2948).
4820         
4821 2005-06-16  Colin Walters  <walters@verbum.org>
4822
4823         * dbus/Makefile.am:
4824         * mono/doc/Makefile.am:
4825         * test/glib/Makefile.am:
4826
4827         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4828
4829 2005-06-16  Colin Walters  <walters@verbum.org>
4830
4831         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4832         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4833
4834         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4835         Increment pointer after swapping fixed array.  Add assertion
4836         for array length.
4837                 
4838 2005-06-15  Colin Walters  <walters@verbum.org>
4839
4840         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4841         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4842         
4843 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4844
4845         * NEWS: Update to 0.34
4846
4847 2005-06-15  David Zeuthen  <davidz@redhat.com>
4848
4849         * configure.in (LT_CURRENT): Revert back to 1 as the library
4850         hasn't changed and we've certainly not committed to protocol
4851         stability yet.  All this does is to break ABI. See commit note
4852         from hp@redhat.com 2005-05-05 for details.
4853         
4854 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4855
4856         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4857         (_dbus_connection_run_builtin_filters): New method
4858         (dbus_connection_dispatch): Run the builtin filters which in turn
4859         runs the peer filter which handles Ping messages.
4860
4861         * doc/TODO: 
4862          - Ping isn't handled: This patch fixes it
4863          
4864          - Add a test case for the Ping message: added TODO item
4865
4866 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4867
4868         * dbus/dbus-message.c:
4869         (dbus_message_has_path): New method
4870         (dbus_message_has_interface): New method
4871         (dbus_message_has_member): New method
4872
4873         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4874         New method
4875
4876         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4877         the keyring directory is private to the user
4878
4879         * doc/TODO:
4880          - The convenience functions in dbus-bus.h should perhaps have
4881          the signatures that they would have if they were autogenerated
4882          stubs. e.g. the acquire service function. We should also evaluate
4883          which of these functions to include, in light of the fact that
4884          GLib/Qt native stubs will probably also exist.: Punted
4885
4886          - add dbus_message_has_path(), maybe has_member/interface:
4887          fixed in this patch
4888
4889          - in dbus-keyring.c, enforce that the keyring dir is not
4890          world readable/writable: Fixed in this patch
4891
4892 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4893
4894         * dbus/dbus-marshal-validate.h: Added a new validation
4895         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4896         out of memory errors when validating signitures
4897
4898         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4899         in places where we previously used DBUS_VALID and a FALSE return 
4900         value to indicate OOM
4901         
4902         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4903         Use a stack to track the number of elements inside containers.  The 
4904         stack values are then used to validate that dict entries have only two
4905         elements within them.
4906         (validate_body_helper): check the reason for failure when validating
4907         varients
4908         
4909         * dbus/dbus-message.c (load_message): use 
4910         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4911         DBUS_VALID and a FALSE return value to indicate OOM
4912
4913         * doc/TODO: remove "- validate dict entry number of fields" as this
4914         patch fixes it
4915
4916 2005-06-14  David Zeuthen  <davidz@redhat.com>
4917
4918         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4919         watches (if applicable) and add new watches
4920
4921         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4922         (main): Setup SIGIO signal handler if using D_NOTIFY
4923
4924         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4925
4926         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4927         (merge_included): Also merge conf_dirs list
4928         (bus_config_parser_unref): Clear conf_dirs list
4929         (include_dir): Add directory to conf_dirs list
4930         (bus_config_parser_get_conf_dirs): New function
4931
4932         * bus/dir-watch.[ch]: New files
4933
4934         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4935
4936         * configure.in: Add checks for D_NOTIFY on Linux
4937
4938 2005-06-14  Colin Walters  <walters@verbum.org>
4939
4940         * glib/dbus-binding-tool-glib.c:
4941         * glib/dbus-gobject.c:
4942         * glib/dbus-gvalue.c: Fix indentation and brace style.
4943         
4944 2005-06-14  Ross Burton <ross@openedhand.com>.
4945
4946         * glib/dbus-glib.h: Make DBusGMethodInvocation
4947         a private structure.  Rearrange prototypes a bit.
4948         
4949         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4950         documentation for first_arg_type.
4951         
4952         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4953         here, add documentation.  Move dbus_g_method_return
4954         and dbus_g_method_return_error into public API
4955         section.
4956
4957 2005-06-14  Colin Walters  <walters@verbum.org>
4958
4959         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4960         Add missing return statements, noticed by Ross Burton.
4961         
4962 2005-06-13  Ross Burton <ross@openedhand.com>.
4963
4964         * glib/dbus-gobject.c: Handle errors on message
4965         demarshalling by sending error message back.
4966         * glib/dbus-gvalue.c: Initialize return variables.
4967
4968 2005-06-13  Colin Walters  <walters@verbum.org>
4969
4970         * glib/Makefile.am: Fix thinko in last patch.
4971
4972 2005-06-13  Colin Walters  <walters@verbum.org>
4973
4974         * glib/Makefile.am: Move dbus-gtype-specialized.c
4975         and dbus-gtype-specialized.h into a _HEADERS variable,
4976         install them.
4977
4978 2005-06-12  Colin Walters  <walters@verbum.org>
4979
4980         Async signals and various bugfixes and testing by
4981         Ross Burton <ross@openedhand.com>.
4982
4983         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4984         (dbus_gvalue_genmarshal_name_from_type)
4985         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4986         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4987         (dbus_g_value_types_init, dbus_gtype_from_signature)
4988         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4989         (dbus_gtypes_from_arg_signature): New function prototypes.
4990         (dbus_gvalue_demarshal): Take context and error arguments.
4991         (dbus_gvalue_demarshal_variant): New function.
4992         (dbus_gvalue_demarshal_message): New function.
4993         (dbus_gvalue_store): Delete.
4994
4995         * glib/dbus-gvalue.c:
4996
4997         File has been almost entirely rewritten; now we special-case
4998         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4999         hash tables correctly, etc.  Full support for recursive values
5000         is not yet complete.
5001
5002         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5003         argument of signal to G_TYPE_POINTER since we now pass a
5004         structure.
5005         (lookup_g_marshaller): Delete in favor of
5006         _dbus_gobject_lookup_marshaller.
5007         (marshal_dbus_message_to_g_marshaller): Use
5008         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5009         to handle remote signal callbacks.
5010         (dbus_g_proxy_new_from_proxy): New function; creates a new
5011         DBusGProxy by copying an existing one.
5012         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5013         (dbus_g_proxy_get_path): New functions.
5014         (dbus_g_proxy_marshal_args_to_message): New function;
5015         factored out of existing code.
5016         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5017         from a varargs array.
5018         (dbus_g_proxy_begin_call_internal): New function.
5019         (dbus_g_proxy_end_call_internal): New function.
5020         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5021         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5022         after collecting args into value array.
5023         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5024         invoke dbus_g_proxy_end_call_internal.
5025         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5026         end_call_internal.
5027         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5028         types.
5029         (array_free_all): New function.
5030         (dbus_g_proxy_add_signal): Take GTypes.
5031
5032         * glib/dbus-gobject.h:
5033         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5034         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5035         Prototype.
5036
5037         * glib/dbus-gobject.c: Add a global marshal_table hash which
5038         stores mappings from type signatures to marshallers.  Change lots
5039         of invocations of dbus_gtype_to_dbus_type to
5040         dbus_gtype_to_signature.
5041         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5042         (introspect_signals): Fix test for query.return_type.
5043         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5044         (invoke_object_method): Many changes.  Handle asynchronous
5045         invocations.  Convert arguments with
5046         dbus_gvalue_demarshal_message.  Handle errors.  Use
5047         DBusSignatureIter instead of strlen on args. Handle all arguments
5048         generically.  Special-case variants.
5049         (dbus_g_method_return, dbus_g_method_return_error): New function.
5050         (DBusGSignalClosure): New structure, closes over signal
5051         information.
5052         (dbus_g_signal_closure_new): New function.
5053         (dbus_g_signal_closure_finalize): New function.
5054         (signal_emitter_marshaller): New function; is special marshaller
5055         which emits signals on bus.
5056         (export_signals): New function; introspects object signals and
5057         connects to them.
5058         (dbus_g_object_type_install_info): Take GType instead of
5059         GObjectClass.
5060         (dbus_g_connection_register_g_object): Invoke export_signals.
5061         (dbus_g_connection_lookup_g_object): New function.
5062         (DBusGFuncSignature) New structure; used for mapping type
5063         signatures to marshallers.
5064         (funcsig_hash): New function; hashes DBusGFuncSignature.
5065         (funcsig_equal): New function; compares DBusGFuncSignature.
5066         (_dbus_gobject_lookup_marshaller): New function.
5067         (dbus_g_object_register_marshaller): New function; used to
5068         register a marshaller at runtime for a particular signature.
5069
5070         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5071
5072         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5073         which notes a server method implementation should be
5074         asynchronous.
5075
5076         * glib/dbus-binding-tool-glib.c
5077         (dbus_binding_tool_output_glib_server): Call
5078         dbus_g_value_types_init.
5079         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5080         variants specially.
5081         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5082         of a lookup function.
5083         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5084         (write_untyped_out_args): New method; write output arguments.
5085         (write_formal_declarations_for_direction): Function for
5086         writing prototypes.
5087         (write_formal_parameters_for_direction): Function for
5088         writing implementations.
5089         (write_typed_args_for_direction): Function for writing
5090         arguments prefixed with GTypes.
5091         (write_async_method_client): Write out async version
5092         of method.
5093
5094         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5095         (dbus_g_type_get_marshal_name): Move mapping from GType
5096         to marshal name into here.
5097         (dbus_g_type_get_c_name): Move into here.
5098         (compute_marshaller): Convert signature to type with
5099         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5100         (compute_marshaller_name): Ditto.
5101         (compute_marshaller): Handle async signal annotations.
5102         (gather_marshallers): Return if we don't have a known
5103         prefix.
5104         (generate_glue): Collect introspection blob here, and
5105         write all of the blob at the end.  This allows an object
5106         with multiple interfaces to work.
5107         Mark async methods in introspection blob.
5108
5109         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5110         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5111         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5112
5113         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5114         avoids people accidentally using DBUS_TYPE_* which should
5115         not be necessary anymore.
5116         Do include dbus-gtype-specialized.h, which are utilities
5117         for GLib container types.
5118         Add various #defines for types such as
5119         DBUS_TYPE_G_BOOLEAN_ARRAY.
5120         (DBusGValueIterator, DBusGValue): Define, not fully used
5121         yet.
5122         (dbus_g_value_get_g_type): Type for recursive value.
5123         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5124         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5125         (dbus_g_value_free): Prototypes.
5126         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5127         (dbus_g_proxy_set_interface): Prototype.
5128         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5129         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5130         types.
5131         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5132         Accessors.
5133         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5134         doing async invocations.
5135         (dbus_g_method_return, dbus_g_method_return_error):
5136         Prototypes.
5137         * doc/dbus-tutorial.xml: Update GLib section.
5138         
5139         * tools/dbus-viewer.c (load_child_nodes): Update
5140         for new invocation type of dbus_g_proxy_end_call.
5141         (load_from_service_thread_func): Ditto.
5142
5143         * tools/print-introspect.c (main): Ditto.
5144
5145         * tools/dbus-names-model.c (have_names_notify)
5146         (names_model_reload, names_model_set_connection)
5147         Use GTypes.
5148
5149         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5150         needed since Python bindings use GLib bindings.
5151
5152         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5153         Add --prefix argument.
5154
5155         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5156         unneeded --ignore-unsupported arg.
5157         
5158         * test/glib/test-service-glib.c: 
5159         * test/glib/test-service-glib.xml:
5160         * test/glib/test-dbus-glib.c: Add many more tests.
5161
5162 2005-06-06  David Zeuthen  <davidz@redhat.com>
5163
5164         * doc/TODO: Add item about need to remove deprecated functions.
5165
5166         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5167
5168         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5169         to repair the ABI which was broken with the last commit.
5170
5171 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5172
5173         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5174         (dbus_connection_disconnect): renamed to dbus_connection_close 
5175         for API symmetry with dbus_connection_open
5176         (_dbus_connection_open_internal): 
5177         s/dbus_connection_disconnect/dbus_connection_close
5178
5179         * dbus/dbus-bus.c (dbus_bus_get):
5180         s/dbus_connection_disconnect/dbus_connection_close
5181
5182         * bus/connection.c (bus_connections_unref, 
5183         bus_connections_setup_connection, bus_connections_expire_incomplete):
5184         s/dbus_connection_disconnect/dbus_connection_close
5185
5186         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5187         kill_client_connection_unchecked, check_hello_connection):
5188         s/dbus_connection_disconnect/dbus_connection_close
5189
5190         * bus/bus.c (new_connection_callback):
5191         s/dbus_connection_disconnect/dbus_connection_close
5192
5193         * tools/dbus-send.c (main):
5194         s/dbus_connection_disconnect/dbus_connection_close
5195
5196         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5197         s/dbus_connection_disconnect/dbus_connection_close
5198         
5199         * test/test-service.c (path_message_func, filter_func):
5200         s/dbus_connection_disconnect/dbus_connection_close
5201         
5202         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5203         
5204 2005-05-25  Colin Walters  <walters@verbum.org>
5205
5206         * dbus/dbus-protocol.h: Move various bus service #defines such
5207           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5208           dbus/dbus-shared.h.
5209         * dbus/dbus-shared.h: Various defines moved here.
5210         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5211
5212 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5213
5214         * python/__init__.py: Python bindings deserve a minor version
5215         update.  Upped to (0, 40, 2)
5216
5217 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5218
5219         * python/decorators.py: add explicitly_pass_message decorator
5220         for passing in the dbus message as keyword for edge case signal
5221         handling
5222
5223         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5224         to conform with what dbus expects for match rules
5225         (SignalMatchRule.execute): add the dbus message as a keyword
5226         if the signal handler has requested it
5227
5228         * python/examples/example/signal-recipient.py: added some more
5229         examples on how to hook up to signals
5230
5231 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5232
5233         * python/decorators.py: import dbus_bindings
5234
5235         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5236         SignalMatchNode): new classes that implement wildcard signal
5237         callback matching using a tree lookup. Heavily modified from a
5238         patch sent by Celso Pinto (fd.o bug #3241)
5239
5240         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5241         use new match classes to handle signals.
5242
5243 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5244         
5245         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5246
5247 2005-05-18  Havoc Pennington  <hp@redhat.com>
5248
5249         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5250         gettext. Not really worth requiring yet perhaps, but any
5251         production quality 1.0 would require it so we should go ahead and
5252         get things set up. We do have a couple token calls to
5253         bindtextdomain in the code already.
5254
5255 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5256
5257         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5258         when using recursive g_main_loops
5259
5260         * python/_dbus.py (class Bus): add the ProxyObjectClass
5261         alias for ProxyObject to make it easier for the Twisted 
5262         networking framework to integrate dbus.
5263
5264         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5265         alias for ProxyMethod to make it easier for the Twisted 
5266         networking framework to integrate dbus. 
5267
5268 2005-05-11  Ross Burton  <ross@openedhand.com>
5269
5270         * glib/dbus-glib-tool.c: Add --prefix argument.
5271         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5272         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5273         Add prefix argument.
5274         (generate_glue): Pass prefix argument down.
5275         (dbus_binding_tool_output_glib_server): Pass prefix to
5276         glib-genmarshal.
5277         
5278 2005-05-11  Colin Walters  <walters@verbum.org>
5279
5280         * tools/dbus-send.c (append_array): New function.
5281         (append_arg): Broken out from main.
5282         (main): Add cheesy hack to send arrays and variants.
5283         (usage): Update.
5284         * tools/dbus-print-message.c (print_iter): Broken out
5285         from main.
5286
5287 2005-05-11  Colin Walters  <walters@verbum.org>
5288
5289         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5290         New function, returns signature string for signature iter.
5291         * dbus/dbus-signature.h: Prototype it.
5292         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5293         New function, returns signature string for message iter.
5294         (dbus_message_iter_get_array_len): New function, returns
5295         length of array.
5296         (dbus_message_iter_get_fixed_array): Fix assertion; this
5297         function should be used when the iter is pointing to the
5298         contents of an array
5299         * dbus/dbus-message.h: Prototypes.
5300         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5301         New function; returns length of an array.
5302         * dbus/dbus-marshal-recursive.h: Prototype it.
5303         
5304 2005-05-11  Colin Walters  <walters@verbum.org>
5305
5306         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5307         compilation error.
5308         
5309 2005-05-08  Havoc Pennington  <hp@redhat.com>
5310
5311         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5312         daemon's pid, not the parent's pid, to the file descriptor.
5313         Reported by Taj Morton.
5314
5315 2005-05-05  Havoc Pennington  <hp@redhat.com>
5316
5317         * configure.in (LT_*): add notes on how the libtool versioning
5318         works to save thinking. Increment soname to indicate protocol
5319         breakage (though really the library interface hasn't changed I
5320         guess)
5321
5322         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5323         verify the GUID received from server matches what we were
5324         expecting, if we had an expectation
5325
5326         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5327         (_dbus_auth_get_guid_from_server): new function
5328         (send_begin): parse the OK args
5329
5330         * doc/dbus-specification.xml: add GUID to the auth protocol
5331
5332 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5333
5334         * Fix my name in previous changelog ;)
5335
5336         * python/proxies.py (ProxyObject.__getattr__): add further patch
5337         from Anthony Baxter to throw an AttributeError when python 
5338         __special__ functions are called instead of marshling them over 
5339         the bus (Bug#1685 comment 3).
5340
5341 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5342
5343         * python/Makefile.am: changed to use pyexecdir for the binding
5344         shared libraries (Bug#2494)
5345
5346         * python/exceptions.py: bring exceptions over from the bindings
5347         so they can be used in applications (Bug#2036)
5348         Make all exceptions derive from DBusException
5349
5350         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5351         of classes so that print obj doesn't throw an exception (Bug #1685)
5352
5353 2005-05-03  Ross Burton  <ross@openedhand.com>
5354
5355         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5356         Return if we get an error during registration.  Set up a
5357         weak reference on object to unregister if object is destroyed.
5358         (unregister_gobject): New function.
5359         
5360 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5361
5362         * python/dbus_bindings.pyx.in: 
5363         - added new type classes for hinting to the marashaler what type 
5364         to send over the wire
5365         - added int16 and uint16 marshalers
5366         - Fixed a bug in the type constants that caused int32 to go out
5367         as uint16 over the wire
5368         * python/dbus.py: split up into different files and renamed _dbus.py
5369         * python/__init__.py, python/_util.py, python/decorators.py, 
5370         python/exceptions.py, python/proxies.py, python/services.py,
5371         python/types.py: new files split off from dbus.py
5372         * python/Makefile.am: Add new files, remove dbus.py and 
5373         install all python files to <python module dir>/dbus
5374         * python/examples/*: Added #!/usr/bin/env python to the top of
5375         every example.  Patch provided by Tatavarty Kalyan
5376
5377 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5378
5379         * NEWS: Update to 0.33
5380
5381 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5382
5383         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5384         method for doing async calls
5385         (_pending_call_notification): New C function for handling pendning call
5386         callbacks
5387         (set_notify): New method for setting pending call notification
5388         
5389         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5390         Async capabilities added to remote method calls
5391         (Sender): class removed
5392         (RemoteService): class removed
5393         (ObjectTree): class removed for now
5394         (RemoteObject): Renamed to ProxyObject
5395         (RemoteMethod): Renamed to ProxyMethod
5396         (method): Decorator added for decorating python methods as dbus methods
5397         (signal): Decorator added for decorating python methods as signal emitters
5398         (ObjectType): Metaclass added for generating introspection data and the
5399         method callback vtable
5400         (Interface): Wrapper class added to wrap objects in a dbus interface
5401         (Object): Uses ObjectType as its metaclass and exports Introspect
5402         of the org.freedesktop.DBus.Introspectable interface
5403         (ValidationException, UnknownMethodException): new exceptions
5404
5405         * python/examples/*: Modified to fit with the new bindings
5406
5407 2005-04-23  Havoc Pennington  <hp@redhat.com>
5408
5409         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5410         reported by Tony Houghton
5411
5412         * test/test-service.c (main): test
5413         dbus_connection_get_object_path_data()
5414
5415         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5416         the exact_match
5417         (_dbus_object_tree_get_user_data_unlocked): new function used by
5418         dbus_connection_get_object_path_data()
5419         (do_register): add assertion test for get_user_data_unlocked
5420         (object_tree_test_iteration): more tests
5421
5422         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5423         new function from Dan Reed to let you get the user data from 
5424         dbus_connection_register_object_path()
5425
5426 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5427
5428         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5429         in numerous places that did not account for the NULL terminator
5430         (signature_from_seed): changed the manual string copy loop to 
5431         just use strcpy instead
5432         make check should now pass
5433
5434 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5435
5436         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5437         so that it allows messages that are not signals to pass in 
5438         NULL as the interface.
5439
5440 2005-04-18  David Zeuthen  <davidz@redhat.com>
5441
5442         * glib/dbus-gmain.c (io_handler_destroy_source): 
5443         (timeout_handler_destroy_source, connection_setup_free): 
5444         Also unref the source to avoid memory leaks.
5445
5446 2005-04-13  David Zeuthen  <davidz@redhat.com>
5447
5448         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5449         more reasonable, yet still totally arbitrary, value :-). 
5450
5451 2005-04-13  David Zeuthen  <davidz@redhat.com>
5452
5453         * doc/TODO: Added an "important for 1.0" item about selinux
5454         allow/deny messages
5455
5456 2005-04-13  David Zeuthen  <davidz@redhat.com>
5457
5458         * bus/selinux.c: Add c-file-style to top of file
5459         (log_audit_callback): Don't free the data here anymore
5460         (bus_selinux_check): Don't take spid and tpid since appending
5461         that to auxdata may OOM.
5462         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5463         to the caller if we are OOM by taking an error object.
5464         (bus_selinux_allows_send): -do-
5465
5466         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5467         and bus_selinux_allows_send
5468
5469         * bus/bus.c (bus_context_check_security_policy): Pass error and
5470         pass on OOM thrown by bus_selinux_allows_send()
5471
5472         * bus/services.c (bus_registry_acquire_service): Pass error and
5473         pass on OOM thrown by bus_selinux_allows_acquire_service()
5474
5475 2005-04-13  Havoc Pennington  <hp@redhat.com>
5476
5477         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5478         message at a time to avoid monopolizing the main loop, bug 
5479         #2953 from Benjamin Otte
5480
5481 2005-04-09  Havoc Pennington  <hp@redhat.com>
5482
5483         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5484         possible overlap, fix from Daniel Reed
5485         (fixup_alignment): fix signedness warnings
5486         (_dbus_string_append_unichar): ditto
5487
5488 2005-04-09  Havoc Pennington  <hp@redhat.com>
5489
5490         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5491
5492         * glib/dbus-glib-tool.c (main): fix warning
5493
5494         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5495
5496         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5497         add a new function that can be used in simple applications that
5498         don't have a main loop and are willing to block
5499
5500 2005-04-05  David Zeuthen  <davidz@redhat.com>
5501
5502         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5503
5504         * glib/dbus-gmain.c:
5505         (io_handler_destroy_source): Remove from list of IO handlers
5506         of the ConnectionSetup object
5507         (timeout_handler_destroy_source): -do- for timeout handlers
5508         (io_handler_source_finalized): Don't remove from list since
5509         we now do that in io_handler_destroy_source(). Renamed from
5510         io_handler_source_destroyed
5511         (timeout_handler_source_destroyed): -do- for timeout handlers
5512         (connection_setup_free): It is now safe to iterate over all
5513         IO and timeout handlers as the _destroy_source removes them
5514         from the list synchronously
5515
5516 2005-03-30  Havoc Pennington  <hp@redhat.com>
5517
5518         * configure.in: change check to gtk 2.4
5519
5520         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5521         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5522         to 2.4
5523
5524 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5525
5526         * News: Update 0.32
5527
5528         * HACKING: Fixed realease instructions.  configure.in should be updated to
5529           the next release by the person who made the last release.
5530
5531 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5532
5533         * python/lvalue_cast_post_process.py - removed.  Patch has been
5534           submitted to Pyrex maintainers that fixes gcc4.0 errors
5535
5536         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5537
5538 2005-03-24  Daniel Reed  <n@ml.org>
5539
5540         * tools/Makefile.am: Make print-introspect and
5541         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5542
5543 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5544
5545         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5546
5547         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5548           had in Red Hat packages for a while but for some reason never 
5549           got merged upstream
5550           (_dbus_is_a_number): New checks if a string
5551           can be converted to a number and does the conversion if it can
5552           (_dbus_user_database_lookup): Add check to see if the given username
5553           is a udi.  This allows udi's to be used instead of usernames in the
5554           config file.
5555           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5556           is a gdi.  This allows gdi's to be used instead of groupnames in the
5557           config file.
5558
5559 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5560
5561         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5562           code so that it compiles with gcc4.0
5563
5564         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5565           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5566           results back to dbus_binding.c
5567
5568 2005-03-20  Colin Walters  <walters@verbum.org>
5569
5570         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5571
5572         * configure.in: Require GTK+ 2.6.
5573         
5574 2005-03-20  Colin Walters  <walters@verbum.org>
5575
5576         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5577
5578 2005-03-17  Tom Parker  <palfrey@tevp.net>
5579
5580         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5581         print DBUS_UID_UNSET; instead print passed username.  Also
5582         be sure to actually use gid looked up in cache.
5583         
5584         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5585         for DBUS_GID_UNSET and groupname.
5586
5587 2005-03-17  Colin Walters  <walters@verbum.org>
5588
5589         * bus/print-introspect.c: Move to tools/.
5590         * bus/run-with-tmp-session-bus.sh: Ditto.
5591         
5592         * glib/Makefile.am (dbus-glib-bindings.h): Move
5593         generation to tools/Makefile.am.
5594
5595         * test/glib/run-test.sh: Update to handle move
5596         of run-with-tmp-session-bus.sh.
5597
5598         * test/glib/test-service-glib.c: Update to handle
5599         move of dbus-glib-bindings.h.
5600
5601         * tools/print-introspect.c: Moved here
5602         from bus/, and ported to GLib bindings.
5603
5604         * tools/run-with-tmp-session-bus.sh: Moved here
5605         from bus/.
5606
5607         * tools/Makefile.am: Generate dbus-glib-bindings.h
5608         and dbus-bus-introspect.xml here.
5609
5610         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5611         Update.
5612
5613 2005-03-17  Colin Walters  <walters@verbum.org>
5614
5615         * bus/driver.c (write_args_for_direction): Use
5616         _dbus_string_get_const_data to retrieve string;
5617         _dbus_string_get_const_data_len doesn't actually return
5618         a NULL-terminated substring.
5619
5620         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5621         (main): Change to use org_freedesktop_DBus_request_name
5622         instead of using g_proxy_begin_call/end_call.
5623
5624 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5625
5626         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5627         generating the finalizer.  Fixes from Ben Maurer.
5628
5629 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5630
5631         * mono/BusDriver.cs: Update method names: ListServices
5632         becomes ListNames; GetOwner becomes GetNameOwner.
5633
5634         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5635         onto the eval stack when removing the delegate.
5636
5637 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5638
5639         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5640         LT_CURRENT.  Set it to the autoconf variable.
5641                                                                                 
5642         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5643         classes that disconnects the signal handler delegate from the
5644         service object.  Fixes a big leak of proxy objects on the
5645         client side of things.  Patch from Ben Maurer
5646         <bmaurer@ximian.com>
5647
5648 2005-03-12  Colin Walters  <walters@verbum.org>
5649
5650         * bus/driver.c (write_args_for_direction): New function,
5651         parses a type signature into arguments and outputs to
5652         XML.
5653         (bus_driver_handle_introspect): Use it instead of
5654         hardcoding XML for certain signatures.
5655         
5656         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5657         dependency on dbus-daemon.
5658
5659         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5660         argument, pass it to dbus_binding_tool_output_glib_client.
5661
5662         * glib/dbus-binding-tool-glib.c
5663         (generate_client_glue): Protect against multiple inclusion.
5664         (dbus_binding_tool_output_glib_client): Add
5665         G_BEGIN_DECLS/G_END_DECLS.
5666
5667         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5668         Change to just take iface prefix directly.
5669         (write_formal_parameters): Clarify error message.
5670         (check_supported_parameters): New function; checks to see type
5671         signatures of method parameters are supported.
5672         (generate_client_glue): Handle ignore_unsupported flag.
5673         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5674         parameter.
5675
5676         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5677         --ignore-unsupported by default until glib bindings
5678         support arrays.
5679
5680 2005-03-11  Colin Walters  <walters@verbum.org>
5681
5682         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5683         install it.
5684
5685         * bus/print-introspect.c: New file; prints introspection
5686         data for a given name and object path.
5687
5688         * bus/run-with-tmp-session-bus.sh: New file, refactored
5689         from test/glib/run-test.sh.  Creates a temporary session
5690         bus and runs another program.
5691
5692         * test/glib/run-test.sh: Refactor to invoke
5693         run-with-tmp-session-bus.sh.
5694
5695         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5696         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5697         macros instead of hardcoding.
5698
5699         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5700
5701 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5702
5703         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5704         this unref; it doesn't match up evenly in some codepaths.
5705         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5706         this evenly matches with the ref near the top of this function.
5707
5708 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5709
5710         * dbus/dbus-object-tree.c
5711         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5712         and we try to unregister a path that's not registered, still go
5713         through the process of unlocking and don't just return.
5714
5715 2005-03-09  Colin Walters  <walters@verbum.org>
5716
5717         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5718         to this are generated for client-side wrappers.  Invokes a
5719         D-BUS method and returns reply values.  
5720
5721         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5722         function; writes signature string for argument direction.
5723         (write_args_for_direction): Change to pass input values directly
5724         instead of via address, and fix indentation.
5725         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5726         make generated wrappers inlineable.
5727
5728         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5729         note about using dbus_type_is_fixed.
5730
5731         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5732         dbus/dbus-signature.c as dbus_type_is_fixed.
5733
5734         All callers updated.
5735
5736         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5737         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5738
5739         * dbus/dbus-signature.h: Prototype.
5740
5741         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5742         error printf code.
5743
5744         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5745         appropriate instead of just freeing it.
5746         (main): Free returned strings using g_free.
5747
5748         * test/glib/Makefile.am (test-service-glib-glue.h)
5749         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5750
5751         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5752         simply maps a simple D-BUS type to GType.
5753         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5754         GType.
5755         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5756         initialize the value with it.
5757         (dbus_gvalue_binding_type_from_type): Unused, delete.
5758         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5759         various types instead of unmarshalling to value data directly.
5760         Remove can_convert boolean.
5761         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5762         returning directly instead of using can_convert boolean.
5763         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5764         Stores a GValue in a pointer to a value of its corresponding C
5765         type.
5766
5767         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5768         add dbus_gvalue_store.
5769
5770 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5771
5772         Fix a bunch of lifecycle and memory management problems
5773         in the mono bindings.
5774
5775         * mono/Arguments.cs (Arguments): Implement IDisposable
5776
5777         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5778         strictly a static class.
5779
5780         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5781         delegates into this file.
5782         (Connection): Implement IDisposable.
5783         (Dispose): Disconnect the connection and set the raw connection
5784         pointer to IntPtr.Zero.
5785         (~Connection): Call Dispose().
5786         (RegisterObjectPath): Added.  Manages the registration of object
5787         paths so we can cleanly disconnect them at dispose/finalize time.
5788         (UnregisterObjectPath): Ditto.
5789         (set_RawConnection): Unregister all of the object paths when
5790         changing the underlying DBusConnection.  Add them back onto the
5791         new connection, if any.
5792
5793         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5794         more unmanaged resources anymore, so it's not necessary.  Move all
5795         the DBusObjectPathVTable stuff out of here.
5796         (Handler): Save references to our delegates so that they don't get
5797         finalized.  Call Connection.RegisterObjectPath() instead of
5798         dbus_connection_register_object_path() directly.
5799         (Message_Called): Dispose the message after we're finished with
5800         it.
5801
5802         * mono/Message.cs (Message): Implement IDisposable.
5803         (Dispose): Dispose the Arguments, and set the RawMessage to
5804         IntPtr.Zero.
5805         (SendWithReplyAndBlock): We own the ref to the reply that comes
5806         back from dbus_connection_send_with_reply_and_block() so add a
5807         comment about that and unref it after we've constructed a managed
5808         MethodReturn class around it.  Fixes a big, big leak.
5809
5810         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5811         method.
5812         (BuildSignalHandler): After we've sent the Signal message, dispose
5813         of it.
5814         (BuildMethod): Dispose of the method call and reply messages after
5815         we've sent the message and extracted the data we want from the
5816         reply.
5817
5818         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5819         anymore.
5820         (Service_FilterCalled): Dispose of the message after we're
5821         finished with it.
5822
5823 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5824
5825         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5826         After we attach our pending call to the connection, unref
5827         it.  Fixes a leak.
5828  
5829         * mono/Connection.cs (set_RawConnection): Disconnect our
5830         filter and match callbacks from the old connection and
5831         reconnect them to the new connection, if any.
5832
5833         * mono/DBusType/Array.cs: "Code" is a static member, so
5834         don't use "this" to refer to it.  Fix for stricter checking
5835         in Mono 1.1.4.
5836  
5837         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5838         object path that we pass into unmanaged code.
5839  
5840         * mono/DBusType/String.cs (Append): Don't leak the string
5841         that we pass into unmanged code.
5842
5843 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5844         * NEWS: Update for 0.31
5845
5846         * configure.in: Release 0.31
5847         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5848
5849         * qt/Makefile.am: fixed build
5850
5851         * dbus/Makefile.am: soname bump for libdbus
5852
5853         * glib/Makefile.am: soname bump for libdbus-glib
5854
5855 2005-03-05  Havoc Pennington  <hp@redhat.com>
5856
5857         * dbus/dbus-sysdeps.c:
5858         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5859         value
5860         (_dbus_generate_random_bytes_buffer): fix return value
5861
5862         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5863         checks actually work, from Tom Parker <fdo@tevp.net>
5864
5865 2005-03-01  Colin Walters  <walters@verbum.org>
5866
5867         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5868         functions copied from dbus-glib-tool.c.
5869         (main): Convert lots of error code to use them.
5870         Also add some testing for introspection bits.
5871
5872 2005-03-01  Colin Walters  <walters@verbum.org>
5873         
5874         * doc/TODO: Remove introspection signature TODO.
5875
5876 2005-02-27  Colin Walters  <walters@verbum.org>
5877
5878         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5879         Change return value to const char * instead of int so we can do
5880         full signatures.
5881         (struct PropertyInfo, struct ArgInfo): Store char *.
5882         (property_info_new, arg_info_new): Update parameters, strdup.
5883         (property_info_unref, arg_info_unref): Free.
5884
5885         * glib/dbus-gidl.h: Update prototypes.
5886
5887         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5888         (validate_signature): New function, just validates signature and
5889         sets GError.
5890         (parse_property, parse_arg): Invoke validate_signature.  Store
5891         signature instead of just type code.
5892
5893         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5894         function to return a primary type for a signature, dropping
5895         information about types in container types.
5896         (dbus_gvalue_genmarshal_name_from_type)
5897         (dbus_gvalue_binding_type_from_type)
5898         (dbus_gvalue_ctype_from_type): Update to take full signature
5899          instead of type code.
5900         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5901
5902         * glib/dbus-gvalue.h: Update prototypes for above.
5903
5904         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5905         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5906         (introspect_properties, introspect_signals, write_interface):
5907         Update to handle signatures, and remove usage of
5908         _dbus_gutils_type_to_string.
5909         (handle_introspect): Print out type codes instead of e.g. "string"
5910         in hardcoded introspection XML; also use x_AS_STRING constants
5911         instead of hardcoding in string.
5912
5913         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5914         to string.  Remove usage of _dbus_gutils_type_to_string.
5915
5916         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5917
5918         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5919         deletion.
5920         
5921         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5922         (compute_marshaller_name, generate_glue): Handle signature change
5923         to string.
5924         (write_formal_parameters, write_args_for_direction): Ditto, and
5925         remove FIXME.
5926
5927         * tools/dbus-tree-view.c (type_to_string): Delete.
5928         (info_set_func_text): Update to print full signatures.
5929
5930         * test/glib/test-service-glib.xml: Change types to new
5931         introspection format.
5932
5933 2005-02-26  Havoc Pennington  <hp@redhat.com>
5934
5935         * doc/TODO: remove the "guid" item
5936
5937         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5938         (with_bus_thread_func): use open_private
5939
5940         * dbus/dbus-connection.c (dbus_connection_open_private): new
5941         function that works like the old dbus_connection_open()
5942         (dbus_connection_open): now returns an existing connection if
5943         possible
5944
5945         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5946         through the GUID to the transport
5947
5948         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5949         GUID in hex-encoded form.
5950
5951         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5952         pass GUID argument in to the transport
5953
5954         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5955         guid argument
5956
5957         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5958
5959         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5960
5961 2005-02-25  Havoc Pennington  <hp@redhat.com>
5962
5963         * doc/dbus-specification.xml: document the GUID thing
5964
5965         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5966         globally unique ID for the server, and put a "guid=hexencoded"
5967         field in the address
5968
5969         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5970
5971         * dbus/dbus-message.c: ditto
5972
5973         * dbus/dbus-dataslot.c: ditto
5974
5975         * dbus/dbus-list.c: ditto
5976
5977         * dbus/dbus-internals.h: wait, just include
5978         dbus-threads-internal.h here
5979         
5980         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5981         use in main library
5982
5983         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5984
5985 2005-02-24  Colin Walters  <walters@verbum.org>
5986
5987         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5988
5989 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5990
5991         * glib/Makefile.am: added dbus-gobject.h to sources list
5992         so distcheck doesn't fail
5993         
5994 2005-02-24  Havoc Pennington  <hp@redhat.com>
5995
5996         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5997         you must disconnect before unref, since locking and other things
5998         are screwed up otherwise. Fix assorted other locking stuff.
5999
6000         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6001         fix compilation
6002
6003         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6004         into a private header and don't export from the library
6005
6006         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6007
6008 2005-02-24  Colin Walters  <walters@verbum.org>
6009         
6010         * dbus/dbus-signature.c: New file; implements various functions
6011         related to type signatures.  Includes an interator for parsing,
6012         validation functions.
6013         (dbus_type_is_basic): Moved here from
6014         dbus-marshal-basic.c:_dbus_type_is_basic.
6015         (dbus_type_is_container): Moved here from
6016         dbus-marshal-basic.c:_dbus_type_is_container.
6017
6018         All callers of _dbus_type_is_container and _dbus_type_is_basic
6019         updated, and include dbus-signature.h.
6020
6021         * dbus/dbus-signature.h: New file; prototypes for the above.
6022
6023         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6024         dbus-signature.h.
6025
6026         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6027         function factored out of _dbus_first_type_in_signature.
6028         (_dbus_first_type_in_signature_c_str): New function; returns first
6029         type code for a type signature character.
6030
6031         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6032         handle function moves.
6033
6034         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6035
6036         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6037         function; skips to next complete type in type signature.
6038         Implemented using previous skip_one_complete_type.  Now
6039         skip_one_complete_type just delegates to
6040         _dbus_type_signature_next.
6041
6042         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6043         to dbus-signature.c
6044         (_dbus_type_is_container): Ditto.
6045
6046         * doc/dbus-specification.xml: Update introspection sample to
6047         use real type signatures.
6048
6049         * dbus/dbus-test.h: Prototype signature test.
6050
6051         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6052         signature tests.
6053
6054         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6055
6056 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6057
6058         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6059         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6060
6061 2005-02-21  Colin Walters  <walters@verbum.org>
6062
6063         * dbus/dbus-test-main.c (main): Take optional specific test
6064         argument.
6065
6066         * dbus/dbus-test.c (run_test): New function, runs a test function
6067         with no data directory.
6068         (run_data_test): Like above, but takes data directory.
6069         (dbus_internal_do_not_use_run_tests): Take
6070         specific test argument.  Replace lots of cut n' paste code
6071         with run_test and run_data_test.
6072
6073         * dbus/dbus-test.h: Update prototype for
6074         dbus_internal_do_not_use_run_tests.
6075
6076 2005-02-20  Havoc Pennington  <hp@redhat.com>
6077
6078         Fix bugs reported by Daniel P. Berrange
6079         
6080         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6081         (protected_change_watch): new function
6082         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6083         (_dbus_server_add_watch): change to work like the
6084         dbus-connection.c equivalents; like those, probably kind of
6085         busted, but should at least mostly work for now
6086         (dbus_server_disconnect): drop the lock if we were already
6087         disconnected, patch from Daniel P. Berrange
6088
6089         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6090         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6091         same stuff
6092
6093         * doc/TODO: todo about unscrewing this mess
6094
6095 2005-02-19  Colin Walters  <walters@verbum.org>
6096
6097         * glib/dbus-binding-tool-glib.c
6098         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6099
6100         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6101         as errno.h and sys/stat.h.
6102         (lose): New function, prints error with
6103         newline and exits.
6104         (lose_gerror): Similar, but takes GError for message.
6105         (main): Add --output argument to specify output file to write to,
6106         instead of always printing to stdout.  In this mode, determine
6107         timestamps on source files to see whether any are newer than the
6108         target file.  If not, exit.  Also convert a number of error
6109         messages to use lose (since it's shorter), and switch to using
6110         g_io_channel_shutdown.
6111
6112 2005-02-19  Havoc Pennington  <hp@redhat.com>
6113
6114         * glib/dbus-gobject.c
6115         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6116
6117         * glib/dbus-glib.c: fix doxygen warnings
6118
6119         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6120         is found on an <arg>
6121
6122 2005-02-17  Colin Walters  <walters@verbum.org>
6123
6124         * glib/dbus-gobject.h: Don't export
6125         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6126         
6127         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6128         (invoke_object_method): Handle it.
6129
6130         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6131         Handle rename.
6132         
6133 2005-02-17  Colin Walters  <walters@verbum.org>
6134
6135         * bus/.cvsignore, doc/.cvsignore
6136         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6137         Update.
6138
6139 2005-02-17  Colin Walters  <walters@verbum.org>
6140         
6141         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6142         Rename to DBUS_SERVICE_DBUS.
6143         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6144         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6145         Change the value from "org.freedesktop.Local"
6146         to "org.freedesktop.DBus.Local".
6147         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6148         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6149         DBUS_INTERFACE_INTROSPECTABLE.
6150         Change the value from "org.freedesktop.Introspectable"
6151         to "org.freedesktop.DBus.Introspectable".
6152         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6153         DBUS_INTERFACE_PROPERTIES.
6154         Change the value from "org.freedesktop.Properties"
6155         to "org.freedesktop.DBus.Properties".
6156         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6157         DBUS_INTERFACE_PEER.
6158         Change the value from "org.freedesktop.Peer"
6159         to "org.freedesktop.DBus.Peer".
6160         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6161         DBUS_INTERFACE_LOCAL.
6162         Change the value from "org.freedesktop.Local"
6163         to "org.freedesktop.DBus.Local".
6164
6165         All other users of those constants have been changed.
6166
6167         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6168
6169         * glib/dbus-gobject.c (handle_introspect): Use constants.
6170
6171         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6172
6173 2005-02-17  Colin Walters  <walters@verbum.org>
6174
6175         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6176         (parse_node, parse_interface, parse_method, parse_signal)
6177         (parse_property, parse_annotation): Lose if we're currently in an
6178         annotation.
6179         (parse_annotation): New function.
6180         (parser_start_element, parser_end_element): Handle annotation.
6181         (parse_method, parse_interface): Remove support for c_name attribute,
6182         switch to annotations.
6183
6184         * glib/dbus-gidl.h (interface_info_get_binding_names)
6185         (method_info_get_binding_names)
6186         (interface_info_get_binding_name, method_info_get_binding_name)
6187         (interface_info_set_binding_name, method_info_set_binding_name):
6188         Remove.
6189         (interface_info_get_annotations, method_info_get_annotations)
6190         (interface_info_get_annotation, method_info_get_annotation)
6191         (interface_info_add_annotation, method_info_add_annotation):
6192         Prototype.
6193
6194         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6195         for "bindings".
6196         (struct MethodInfo): Ditto.
6197         Straightfoward conversion of binding methods into annotation methods
6198         as prototyped.
6199
6200         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6201
6202         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6203
6204         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6205         Use new annotation API.
6206
6207         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6208         annotation element.
6209         
6210         * doc/dbus-specification.xml: Discuss introspection annotations,
6211         include list of well-known annotations.
6212
6213         * test/glib/test-service-glib.xml: Make validate against new DTD.
6214
6215 2005-02-17  Colin Walters  <walters@verbum.org>
6216
6217         This patch is based on initial work from
6218         Paul Kuliniewicz <kuliniew@purdue.edu>.
6219
6220         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6221         initialization of GValue from dbus type to here.
6222         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6223         for the "glib-genmarshal" program from a DBus type.
6224         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6225         into the C name for it we use in the glib bindings.
6226         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6227         glib C type (not GValue).
6228         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6229
6230         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6231         from dbus-gobject.c.
6232
6233         * glib/dbus-gutils.h: Prototype it.
6234
6235         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6236         (marshal_dbus_message_to_g_marshaller): Use new shared function
6237         dbus_glib_marshal_dbus_message_to_gvalue_array.
6238
6239         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6240         Will be changed once we have annotations.
6241
6242         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6243         GStaticRWLock.  Callers updated.
6244         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6245         (string_table_next): New function for iterating over zero-terminated
6246         string value array.
6247         (string_table_lookup): New function; retrieves specific entry in
6248         array.
6249         (get_method_data): New function; look up method data in object data chunk.
6250         (object_error_domain_prefix_from_object_info)
6251         (object_error_code_from_object_info): New functions, but not implemented yet.
6252         (method_interface_from_object_info): New function; retrieve interface name.
6253         (method_name_from_object_info): New function; retrieve method name.
6254         (method_arg_info_from_object_info): New function; retrieve argument data.
6255         (arg_iterate): New function; iterates over serialized argument data.
6256         (method_dir_signature_from_object_info): New function; returns a
6257         GString holding type signature for arguments for just one
6258         direction (input or output).
6259         (method_input_signature_from_object_info)
6260         (method_output_signature_from_object_info): New functions.
6261         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6262         converts dbus message arguments into a GValue array.  Used for both
6263         signal handling and method invocation.
6264         (struct DBusGlibWriteIterfaceData): New utility structure.
6265         (write_interface): New function; generate introspection XML for
6266         an interface.
6267         (introspect_interfaces): New function; gathers all interface->methods,
6268         generates introspection XML for them.
6269         (handle_introspect): Invoke introspect_interfaces.
6270         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6271         (lookup_object_and_method): New function; examines an incoming message
6272         and attempts to match it up (via interface, method name, and argument
6273         signature) with a known object and method.
6274         (gerror_domaincode_to_dbus_error_name): New function; converts a
6275         GError domain and code into a DBus error name.  Needs GError data
6276         added to object introspection to work well.
6277         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6278         GError.
6279         (invoke_object_method): New function to invoke an object method
6280         looked up via lookup_object_and_method.  Parses the incoming
6281         message, turns it into a GValue array, then invokes the marshaller
6282         specified in the DBusGMethodInfo.  Creates a new message with
6283         either return values or error message as appropriate.
6284         (gobject_message_function): Invoke lookup_object_and_method and
6285         invoke_object_method.
6286
6287         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6288         (enum DBusBindingOutputMode): New enum for binding output modes.
6289         (pretty_print): Print binding names.
6290         (dbus_binding_tool_error_quark): GError bits.
6291         (version): Fix typo.
6292         (main): Create GIOChannel for output.  Parse new --mode argument,
6293         possible values are "pretty-print", "glib-server", "glib-client".
6294         Use mode to invoke appropriate function.
6295         
6296         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6297
6298         * glib/dbus-glib-tool.h: New header, just includes GError bits
6299         for now.
6300
6301         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6302         maps binding style to name.
6303         (struct MethodInfo): Ditto.
6304         (get_hash_keys, get_hash_key): Utility function, returns keys for
6305         a GHashTable.
6306         (interface_info_new, method_info_new): Initialize bindings.
6307         (interface_info_unref, method_info_unref): Destroy bindings.
6308         (method_info_get_binding_names, method_info_get_binding_name)
6309         (interface_info_get_binding_names, interface_info_get_binding_name):
6310         Functions for retrieving binding names.
6311         (method_info_set_binding_name, interface_info_set_binding_name):
6312         Functions for setting binding names.
6313
6314         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6315         for glib binding generation.
6316
6317         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6318         and client-side glib glue generation.
6319
6320         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6321         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6322         dbus-glib-tool.h.
6323
6324         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6325         of using GClosureMarshal directly.
6326         (struct DBusGObjectInfo): Add n_infos member.
6327
6328         * test/glib/test-service-glib.xml: New file; contains introspection data
6329         for MyTestObject used in test-service-glib.c.
6330
6331         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6332         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6333         (my_object_uppercase, my_object_many_args): New test methods.
6334         (main): Use dbus_g_object_class_install_info to include generated object
6335         info.
6336
6337         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6338         as well as client-side bindings.
6339
6340         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6341         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6342         using both the dbus_gproxy stuff directly as well as the generated bindings.
6343
6344 2005-02-15  Havoc Pennington  <hp@redhat.com>
6345
6346         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6347         complete a pending call, don't run filters first.
6348
6349         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6350         dbus_pending_call_steal_reply
6351
6352         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6353         _dbus_connection_block_pending_call
6354         (dbus_pending_call_get_reply): change to steal_reply and return a
6355         ref
6356
6357         * dbus/dbus-connection.c
6358         (dbus_connection_send_with_reply_and_block): port to work in terms
6359         of DBusPendingCall
6360         (_dbus_connection_block_pending_call): replace block_for_reply
6361         with this
6362
6363 2005-02-14  Havoc Pennington  <hp@redhat.com>
6364
6365         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6366         properly handle looking up group information by name; fix 
6367         from j@bootlab.org
6368
6369 2005-02-13  Havoc Pennington  <hp@redhat.com>
6370
6371         * dbus/dbus-connection.c (dbus_connection_return_message) 
6372         (dbus_connection_borrow_message): hold dispatch lock while message
6373         is outstanding
6374         (_dbus_connection_block_for_reply): hold dispatch lock while we
6375         block for the reply, so nobody steals our reply
6376         (dbus_connection_pop_message): hold the dispatch lock while we
6377         pluck the message
6378
6379 2005-02-13  Havoc Pennington  <hp@redhat.com>
6380
6381         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6382         (_dbus_connection_release_dispatch)
6383         (_dbus_connection_acquire_io_path)
6384         (_dbus_connection_release_io_path): make the mutex and condvar
6385         control access to the "acquired" flag. Drop the connection lock
6386         while waiting on the condvar. Hopefully these are baby steps in
6387         roughly the right direction.
6388
6389 2005-02-13  Havoc Pennington  <hp@redhat.com>
6390
6391         * dbus/dbus-connection.c: use separate mutexes for the condition
6392         variables; this is some kind of baseline for sanity, but the
6393         condition variables still aren't used correctly afaict
6394
6395 2005-02-13  Havoc Pennington  <hp@redhat.com>
6396
6397         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6398         fix a double-unlock
6399
6400         * dbus/dbus-connection.c
6401         (_dbus_connection_detach_pending_call_unlocked): add this
6402
6403         Initial semi-correct pass through to fix thread locking; there are
6404         still some issues with the condition variable paths I'm pretty
6405         sure
6406         
6407         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6408         lock/unlock calls
6409
6410         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6411         rename to add _unlocked
6412         (struct DBusConnection): move "dispatch_acquired" and
6413         "io_path_acquired" to use only one bit each.
6414         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6415         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6416         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6417         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6418         (_dbus_connection_remove_timeout) 
6419         (_dbus_connection_toggle_timeout): drop lock when calling out to
6420         user functions; done in a hacky/bad way.
6421         (_dbus_connection_send_and_unlock): add a missing unlock
6422         (_dbus_connection_block_for_reply): add a missing unlock
6423
6424         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6425         drop lock in a hacky probably unsafe way to call out to user
6426         function
6427
6428 2005-02-12  Havoc Pennington  <hp@redhat.com>
6429
6430         * tools/dbus-tree-view.c (info_set_func_text): display more
6431         details on args
6432
6433         * bus/driver.c (bus_driver_handle_list_services): list the bus
6434         driver
6435
6436         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6437
6438         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6439         (method_info_get_n_args): new function
6440
6441 2005-02-12  Havoc Pennington  <hp@redhat.com>
6442
6443         * bus/driver.c (bus_driver_handle_introspect): add introspection
6444         for bus driver
6445
6446 2005-02-12  Havoc Pennington  <hp@redhat.com>
6447
6448         * bus/driver.c: put the signature of each bus driver method in the
6449         table of handlers and check it on incoming calls; this isn't
6450         really useful, but going to add introspect support in a minute.
6451
6452 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6453
6454         * mono/Connection.cs: The unpredictability of finalizers in mono
6455         prevents us from deterministically disconnecting the filters from
6456         the Service class's finalizer, so move tracking of filters and
6457         matches here.  Add API for that.
6458
6459         * mono/Service.cs: Remove the code, add code which calls the
6460         methods now on the Connection class.
6461
6462 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6463
6464         * python/dbus.py (class Sender): added to support dbus signals better
6465         (Bus::add_signal_receiver): added expand_args parameter which defaults
6466         to True.  When expand args is True the signal handler will pass the 
6467         message arguments as parameters to the signal handler.  If False
6468         revert to previous behavior where the signal handler must get the
6469         argument list from the message.  This is to help port applications
6470         like HAL that have a tendancy to send variable length argument lists.
6471         self._match_rule_to_receivers is now a dict of dicts.
6472         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6473         removing it from a list
6474         (Bus::_signal_func): change signal handlers so that interface,
6475         signal_name, service, path and message are packed into a Sender
6476         object and that is passed to the handler.  If expand_args is True
6477         extract the args list from the message and append it to the parameter
6478         list
6479         
6480         * python/dbus_bindings.pyx.in (class Signature): added to support 
6481         signiature types
6482         (MessageIter::__init__): changed iteration limit to match D-BUS
6483         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6484         STRUCT and VARIENT type support
6485         (MessageIter::python_value_to_dbus_sig): made recursive to support
6486         recursive types
6487         (MessageIter::append*): added Signature, dict, tuple 
6488         support
6489
6490         * python/examples/example-client.py: added examples of getting tuples
6491         and dicts
6492
6493         * python/examples/example-service.py: added examples of sending tuples
6494         and dicts
6495
6496         * python/examples/example-signal-recipient.py: Fixed to handle new
6497         signal callback format
6498
6499 2005-02-10  Havoc Pennington  <hp@redhat.com>
6500
6501         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6502         (call dbus_g_proxy_add_signal)
6503
6504         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6505         escape the hostname
6506         (_dbus_server_new_for_domain_socket): escape the path
6507
6508         * dbus/dbus-address.c (dbus_address_escape_value): new
6509         (dbus_address_unescape_value): new
6510         (dbus_parse_address): unescape values
6511
6512         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6513
6514         * doc/dbus-specification.xml: explain how to escape values in
6515         addresses
6516
6517 2005-02-10  Havoc Pennington  <hp@redhat.com>
6518
6519         * dbus/dbus-message-factory.c (generate_special): modify test to
6520         avoid using a non-basic dict key
6521
6522         * dbus/dbus-marshal-validate-util.c: add test for the below
6523
6524         * doc/dbus-specification.xml: require that dict keys are a basic
6525         type
6526
6527         * dbus/dbus-marshal-validate.c
6528         (_dbus_validate_signature_with_reason): require that dict key is a
6529         basic type
6530
6531 2005-02-10  Havoc Pennington  <hp@redhat.com>
6532
6533         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6534         change to be _and_unlock instead of _unlocked
6535
6536         * dbus/dbus-connection.c
6537         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6538         have no_update so we can find this bug quickly in future
6539
6540 2005-02-10  Havoc Pennington  <hp@redhat.com>
6541
6542         * dbus/dbus-message-util.c (verify_test_message): tests for string
6543         array
6544
6545         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6546         support for arrays of string/signature/path
6547
6548 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6549
6550         * dbus/dbus-connection.c
6551         (_dbus_connection_queue_received_message_link,
6552         _dbus_connection_message_sent): Add the path to
6553         the verbose output.
6554         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6555         _dbus_connection_send_preallocated_unlocked(), updated the
6556         dispatch status, and unlocks.  Fixes a bug where certain
6557         situations (like a broken pipe) could cause a Disconnect message
6558         to not be sent, tricking the bus into thinking a service was still
6559         there when the process had quit.
6560         (_dbus_connection_send_preallocated): Call
6561         _dbus_connection_send_preallocated_and_unlock().
6562         (_dbus_connection_send_and_unlock): Added.  Calls
6563         _dbus_connection_send_preallocated_and_unlock().
6564         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6565         (dbus_connection_send_with_reply): Update the dispatch status and
6566         unlock.
6567
6568         * mono/Service.cs (~Service): Added.  Removes the filter so that
6569         we don't get unmanaged code calling back into a GCed delegate.
6570         (RemoveFilter); Added.
6571
6572 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6573
6574         * dbus/dbus-message.c (dbus_message_iter_open_container):
6575         - Removed check for iterator type being an array because
6576         get_arg_type does not work with writer iterators
6577         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6578
6579 2005-02-07  Havoc Pennington  <hp@redhat.com>
6580
6581         * doc/dbus-specification.xml: some more language cleanups; add
6582         stuff about how to deal with invalid protocol and extension
6583         points; add _ to allowed chars in auth commands; add EXTENSION_
6584         auth command prefix
6585
6586 2005-02-06  Havoc Pennington  <hp@redhat.com>
6587
6588         * s/expected/required/ in a couple places for clarity
6589
6590 2005-02-07  Colin Walters  <walters@verbum.org>
6591
6592         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6593         sender or proposed_recipient.
6594
6595 2005-02-06  Havoc Pennington  <hp@redhat.com>
6596
6597         * dbus/dbus-message-factory.c (generate_special): more tests
6598
6599         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6600         array length that exceeds the maximum
6601
6602 2005-02-05  Havoc Pennington  <hp@redhat.com>
6603
6604         * dbus/dbus-message-factory.c (generate_special): more test cases,
6605         increasing coverage
6606
6607         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6608         reason why a signature was invalid
6609
6610         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6611         skip the length of the string before we look at it in validation
6612
6613         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6614         equal_substring
6615
6616         * dbus/dbus-message.c (_dbus_message_loader_new): default
6617         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6618
6619 2005-02-05  Havoc Pennington  <hp@redhat.com>
6620
6621         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6622         if the signature of a variant was empty
6623         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6624         struct with no element type)
6625
6626         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6627         mangled messages to break things
6628
6629 2005-02-04  Havoc Pennington  <hp@redhat.com>
6630
6631         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6632         g_quark_try_string() so it actually can return 0
6633         (dbus_g_proxy_connect_signal): ditto
6634
6635 2005-02-04  Havoc Pennington  <hp@redhat.com>
6636
6637         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6638         bogus warning
6639         (tristring_from_message): assert cleanly on null path/interface
6640         (should not be possible though I decided later)
6641         (dbus_g_proxy_dispose): move proxy manager unregistration here
6642         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6643         g_return_if_fail() checks
6644
6645 2005-02-04  Havoc Pennington  <hp@redhat.com>
6646
6647         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6648
6649         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6650         (with some minor changes)
6651
6652         * doc/dbus-specification.xml: add deprecated attribute to
6653         introspection format
6654
6655 2005-01-31  Havoc Pennington  <hp@redhat.com>
6656
6657         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6658         think it's sort of right
6659
6660 2005-01-30  Havoc Pennington  <hp@redhat.com>
6661
6662         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6663
6664 2005-01-30  Havoc Pennington  <hp@redhat.com>
6665
6666         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6667
6668         * autogen.sh: change to autotools 1.9
6669
6670         * glib/dbus-gproxy.c: completely change how signals work
6671         (dbus_g_proxy_add_signal): new function to specify signature of a
6672         signal
6673         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6674         and g_warning if the incoming message has the wrong signature.
6675
6676 2005-01-30  Havoc Pennington  <hp@redhat.com>
6677
6678         * tools/dbus-names-model.c (have_names_notify): fix this
6679
6680         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6681         up the string array handling a bit 
6682
6683 2005-01-30  Havoc Pennington  <hp@redhat.com>
6684
6685         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6686         (dbus_g_pending_call_cancel): new function
6687
6688         * dbus/dbus-glib.h: move GType decls for connection/message here;
6689         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6690         here, just kind of rationalizing how we handle all that
6691
6692         * tools/dbus-names-model.c: new file for a tree model listing the
6693         services on a bus
6694
6695         * tools/dbus-tree-view.c (model_new): use proper typing on the
6696         model rows
6697
6698 2005-01-30  Havoc Pennington  <hp@redhat.com>
6699
6700         * glib/dbus-gmain.c: add a custom GSource back that just checks
6701         whether the message queue has anything in it; otherwise, there are 
6702         cases where we won't see messages in the queue since there was no 
6703         IO visible to the glib main loop
6704
6705         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6706         increase default message timeout to 25 seconds
6707
6708 2005-01-30  Havoc Pennington  <hp@redhat.com>
6709
6710         * test/glib/test-profile.c (no_bus_stop_server): remove the
6711         warning about the g_warning that I just fixed
6712
6713         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6714         custom source, seems to be a lot easier to understand and work
6715         better.
6716
6717 2005-01-30  Havoc Pennington  <hp@redhat.com>
6718
6719         I think this main loop thing is conceptually broken, but here are 
6720         some band aids. I'll maybe rewrite it in a minute.
6721         
6722         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6723         custom GSource, so don't pass it in; confusing
6724         (gsource_server_finalize, gsource_connection_finalize): add
6725         finalize handlers that remove all the watches.  
6726
6727 2005-01-30  Havoc Pennington  <hp@redhat.com>
6728
6729         * glib/dbus-gobject.c (introspect_properties): fix the XML
6730         generated
6731
6732         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6733         which effectively detects the use of freed messages
6734
6735         * glib/dbus-gobject.c (handle_introspect): modify and return the
6736         reply message instead of the incoming message
6737
6738         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6739         gee, maybe it should SEND THE XML instead of just making a string
6740         and freeing it again ;-)
6741
6742         * tools/dbus-print-message.c (print_message): improve printing of
6743         messages
6744
6745         * configure.in: add debug-glib.service to the output
6746
6747 2005-01-30  Havoc Pennington  <hp@redhat.com>
6748
6749         dbus-viewer introspected and displayed the bus driver
6750         
6751         * dbus/dbus-object-tree.c 
6752         (object_tree_test_iteration): add tests for a handler registered on "/"
6753
6754         * dbus/dbus-object-tree.c
6755         (_dbus_decompose_path): fix to handle path "/" properly
6756         (run_decompose_tests): add tests for path decomposition
6757         
6758         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6759         properly
6760
6761         * glib/dbus-gobject.c (handle_introspect): fix quotes
6762
6763         * test/glib/run-test.sh: support launching the bus, then running
6764         dbus-viewer
6765
6766         * test/glib/test-service-glib.c (main): put in a trivial gobject
6767         subclass and register it on the connection
6768
6769         * bus/driver.c (bus_driver_handle_introspect): implement
6770         introspection of the bus driver service
6771
6772         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6773         identifiers, doctype decl
6774
6775         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6776         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6777         returning the service unchanged.
6778         (bus_driver_handle_message): remove old check for reply_serial in
6779         method calls, now the message type deals with that
6780         (bus_driver_handle_message): handle NULL interface
6781
6782         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6783
6784         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6785         -1 for len
6786
6787         * tools/dbus-viewer.c: add support for introspecting a service on
6788         a bus
6789
6790         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6791         (dbus_g_pending_call_unref): add
6792
6793 2005-01-29  Havoc Pennington  <hp@redhat.com>
6794
6795         * tools/dbus-tree-view.c: add support for displaying properties.
6796         (run dbus-viewer with an introspect xml file as arg, then resize
6797         the window so the tree elements show up, not sure what that is)
6798
6799         * glib/dbus-gobject.c (handle_introspect): return
6800         org.freedesktop.Properties and org.freedesktop.Introspectable
6801         interfaces when we are introspected.
6802
6803         * doc/dbus-specification.xml: allow empty interface name when 
6804         Get/Set a property
6805
6806 2005-01-29  Havoc Pennington  <hp@redhat.com>
6807
6808         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6809         though it uses glib, it could be extended for any binding in
6810         principle
6811
6812         * glib/dbus-gobject.c (gobject_message_function): change to the
6813         new way properties work
6814
6815         * dbus/dbus-protocol.h: add the new interfaces
6816
6817         * doc/dbus-specification.xml: document the introspection format,
6818         Introspectable interface, and add an org.freedesktop.Properties
6819         interface.
6820
6821         * glib/dbus-gparser.c: add support for a <property> element
6822
6823         * glib/dbus-gidl.c: add PropertyInfo
6824
6825         * glib/dbus-gobject.c (handle_introspect): put the outermost
6826         <node> outside the signal and property descriptions.
6827         (introspect_properties): export properties as <property> rather
6828         than as method calls
6829
6830 2005-01-28  Havoc Pennington  <hp@redhat.com>
6831
6832         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6833         related to authentication protocol
6834
6835 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6836
6837         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6838                 - BUS_ACTIVATION -> BUS_STARTER
6839                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6840                 - class MessageIter (__init__): Added recursion checking 
6841                 so we throw a nice error instead of just disconnecting from the
6842                 bus.
6843                 (get): Added arg_type parameter for recursion.
6844                 Removed the nil type
6845                 Added signiture type placeholder (not implemented)
6846                 Added struct type placeholder (not implemented)
6847                 Added varient type placeholder (not implemented)
6848                 Commented out dict type for now     
6849                 (get_element_type): renamed from get_array_type
6850                 (get_*): changed to use the dbus_message_iter_get_basic API
6851                 (get_*_array): removed in favor of recursive get_array method
6852                 (get_array): new recursive method which calls get to marshal
6853                 the elements of the array
6854                 (value_to_dbus_sig): New method returns the corrasponding
6855                 dbus signiture to a python value
6856                 (append): Comment out dict handling for now
6857                 Handle lists with the new recursive API
6858                 Comment out None handling for now
6859                 (append_nil): removed
6860                 (append_*): changed to use dbus_message_iter_append_basic API
6861                 (append_*_array): removed in favor of recursive append_array 
6862                 method
6863                 (__str__): Make it easier to print out recursive iterators
6864                 for debugging
6865                 - class Message (__str__): moved type inspection to the
6866                 MessageIter class' __str__ method
6867                 (get_iter): Added an append parameter wich defaults to False
6868                 If True use the new API's to create an append iterator
6869
6870         * python/dbus.py: Update to use new bindings API
6871                 - TYPE_ACTIVATION -> TYPE_STARTER
6872                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6873                 - class ActivationBus -> class StarterBus
6874                 - class RemoteObject (__call__): get an append iterator
6875                 - (_dispatch_dbus_method_call): get an append iterator
6876                 - class Object (emit_signal): get an append iterator
6877
6878         * python/examples/: Fixed up the examples to work with the new API
6879                 
6880 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6881
6882         * configure.in: Bump version up to 0.30.
6883
6884         * HACKING: Add a release item to bump the version number up after 
6885         a release.
6886
6887 2005-01-28  Havoc Pennington  <hp@redhat.com>
6888
6889         * doc/dbus-specification.xml: update to describe 16-bit types and
6890         dict entries
6891
6892         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6893         assertion
6894
6895         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6896         type
6897
6898         * dbus/dbus-marshal-recursive.c: implement
6899
6900 2005-01-27  Havoc Pennington  <hp@redhat.com>
6901
6902         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6903
6904         * configure.in: find the right type for 16 and 32 bit ints as well
6905         as 64
6906
6907         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6908         the 16-bit types so people don't have to stuff them in 32-bit or
6909         byte arrays.
6910
6911 2005-01-27  Havoc Pennington  <hp@redhat.com>
6912
6913         * dbus/dbus-message.c: byteswap the message if you init an
6914         iterator to read/write from it
6915         
6916         * dbus/dbus-marshal-byteswap.c: new file implementing 
6917         _dbus_marshal_byteswap()
6918
6919         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6920
6921 2005-01-26  Havoc Pennington  <hp@redhat.com>
6922         
6923         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6924         build, apparently - nobody noticed?)
6925         
6926 2005-01-26  Havoc Pennington  <hp@redhat.com>
6927
6928         * dbus/dbus-marshal-recursive.h: remove todo comment
6929
6930 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6931
6932         * Land the mono binding changes to conform to the new APIs.
6933
6934         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6935         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6936
6937         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6938         type code as a string.
6939         (InitAppending): Rename dbus_message_append_iter_init() to
6940         dbus_message_iter_init_append().
6941
6942         * mono/BusDriver.cs: Rename ServiceEventHandler to
6943         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6944         Rename ServiceOwnerChanged to NameOwnerChanged.
6945
6946         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6947         underlying C call.
6948
6949         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6950
6951         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6952         dbus_bus_acquire_service() to dbus_bus_request_name().
6953
6954         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6955         of Type.UnderlyingSystemType to get the correct element type for
6956         the array.
6957         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6958         dbus_message_get_{element|arg}_type() instead of
6959         dbus_message_iter_init_array_iterator().
6960         (Append): Replace dbus_message_iter_append_array() with
6961         dbus_message_iter_open_container() and
6962         dbus_message_iter_close_container().
6963
6964         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6965         types have been removed.
6966         
6967         * mono/DBusType/*.cs: Replace calls of
6968         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6969         but specify the type in the DllImport extern declaration.  Ditto
6970         for dbus_message_iter_append_[type]() ->
6971         dbus_message_iter_append_basic().
6972
6973         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6974         NameOwnerChangedHandler.
6975
6976 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6977
6978         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6979                 - get_base_service -> get_unique_name
6980                 - bus_get_base_service -> bus_get_unique_name
6981                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6982                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6983                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6984                 - bus_activate_service -> bus_start_service_by_name
6985                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6986                 - bus_acquire_service -> bus_request_name
6987                 - dbus_bus_acquire_service -> dbus_bus_request_name
6988                 - bus_service_exists -> bus_name_has_owner
6989                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6990
6991         * python/dbus.py: Rename of methods
6992                 - activate_service -> start_service_by_name
6993                 - bus_acquire_service -> bus_request_name
6994                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6995                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6996
6997         
6998 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6999
7000         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7001         signature for the method that can't be found.
7002
7003         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7004         the message has any arguments, we need to call
7005         _dbus_type_reader_get_current_type(), not
7006         _dbus_type_reader_has_next().
7007
7008 2005-01-24  Havoc Pennington  <hp@redhat.com>
7009
7010         * dbus/dbus-message-factory.c: more testing of message validation
7011
7012         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7013         header
7014
7015 2005-01-23  Havoc Pennington  <hp@redhat.com>
7016
7017         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7018         get this all working, not many tests in the framework yet though
7019
7020 2005-01-22  Havoc Pennington  <hp@redhat.com>
7021
7022         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7023         tutorial, based on work from David Wheeler.
7024
7025 2005-01-21  Havoc Pennington  <hp@redhat.com>
7026
7027         * dbus/dbus-bus.c: add more return_if_fail checks
7028
7029         * dbus/dbus-message.c (load_message): have the "no validation"
7030         mode (have to edit the code to toggle the mode for now though)
7031
7032         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7033         skips all validation; I want to use this at least for benchmark
7034         baseline, I'm not sure if it should be a publicly-available switch.
7035
7036 2005-01-21  Havoc Pennington  <hp@redhat.com>
7037
7038         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7039         toplevel doxygen group as the low-level API stuff
7040
7041         * dbus/dbus.h: note that libdbus is the low-level API
7042
7043 2005-01-20  Havoc Pennington  <hp@redhat.com>
7044
7045         * update-dbus-docs.sh: script to update docs on the web site, only
7046         works for me though. neener.
7047
7048 2005-01-20  Havoc Pennington  <hp@redhat.com>
7049
7050         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7051         code can reveal bugs in it
7052
7053 2005-01-20  Havoc Pennington  <hp@redhat.com>
7054
7055         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7056         select() version, patches from Tor Lillqvist
7057
7058 2005-01-20  Havoc Pennington  <hp@redhat.com>
7059
7060         * doc/dbus-tutorial.xml: replace > with &gt;
7061
7062         * bus/services.c (bus_registry_acquire_service): validate the name
7063         and return a better error if it's no good.
7064
7065         * doc/dbus-specification.xml: note NO_AUTO_START change
7066
7067         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7068         from AUTO_START, we're toggling the default
7069
7070         * bus/dispatch.c: adapt the tests to change of auto-start default
7071
7072 2005-01-18  Havoc Pennington  <hp@redhat.com>
7073
7074         * rename dbus-daemon-1 to dbus-daemon throughout
7075
7076 2005-01-18  Havoc Pennington  <hp@redhat.com>
7077
7078         * Throughout, grand renaming to strip out the use of "service",
7079         just say "name" instead (or "bus name" when ambiguous).  Did not
7080         change the internal code of the message bus itself, only the
7081         programmer-facing API and messages.
7082         
7083         * doc/dbus-specification.xml: further update the message bus section
7084         
7085         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7086         in error case
7087
7088 2005-01-17  Havoc Pennington  <hp@redhat.com>
7089
7090         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7091         ever
7092
7093         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7094         "invalid name character" not only non-ASCII
7095
7096         * doc/dbus-specification.xml: further update spec, message bus 
7097         parts are still out-of-date but the marshaling etc. stuff is now
7098         accurate-ish
7099
7100 2005-01-17  Havoc Pennington  <hp@redhat.com>
7101
7102         * doc/dbus-specification.xml: partially update spec
7103
7104 2005-01-17  Havoc Pennington  <hp@redhat.com>
7105
7106         * Throughout, align variant bodies according to the contained
7107         type, rather than always to 8. Should save a fair bit of space in
7108         message headers.
7109         
7110         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7111         fix handling of case where p == end
7112
7113         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7114
7115 2005-01-17  Havoc Pennington  <hp@redhat.com>
7116
7117         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7118
7119         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7120         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7121         are marshaling/unmarshaling a boolean.
7122
7123 2005-01-16  Havoc Pennington  <hp@redhat.com>
7124
7125         This is about it on what can be disabled/deleted from libdbus
7126         easily, back below 150K anyhow. Deeper cuts are more work than 
7127         just turning the code off as I've done here.
7128         
7129         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7130         signed int convenience funcs
7131
7132         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7133         verbose mode
7134
7135         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7136         things out of libdbus
7137
7138         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7139         
7140         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7141         tests-enabled-only, though it should probably be deleted)
7142
7143         * dbus/dbus-message-util.c: same stuff
7144
7145         * dbus/dbus-auth-util.c: same stuff
7146
7147 2005-01-16  Havoc Pennington  <hp@redhat.com>
7148
7149         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7150
7151         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7152         way for stripping down dbus-userdb.c stuff included in libdbus.
7153         Rename _dbus_parse_uid for consistency.
7154
7155 2005-01-16  Havoc Pennington  <hp@redhat.com>
7156
7157         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7158         name the assertion failed in
7159
7160         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7161         (_dbus_return_val_if_fail): assert that the name of the function
7162         containing the check doesn't start with '_', since we only want to 
7163         use checks on public functions
7164         
7165         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7166         checks to assertions
7167
7168         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7169         change checks to asserts for private function
7170
7171         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7172         to asserts for private function
7173
7174         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7175         broken assertion that was breaking make check
7176         (_dbus_type_reader_array_is_empty): remove this rather than fix
7177         it, was only used in assertions
7178
7179 2005-01-16  Havoc Pennington  <hp@redhat.com>
7180
7181         * test/unused-code-gc.py: hacky script to find code that's used
7182         only by the bus (not libdbus) or used only by tests or not used at
7183         all. It has some false alarms, but looks like we can clean up a
7184         lot of size from libdbus.
7185
7186         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7187         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7188         
7189 2005-01-16  Havoc Pennington  <hp@redhat.com>
7190
7191         * Add and fix docs according to Doxygen warnings throughout
7192         source.
7193         
7194         * dbus/dbus-marshal-recursive.c
7195         (_dbus_type_reader_array_is_empty): change this to just call
7196         array_reader_get_array_len() and make it static
7197
7198         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7199         from get_array_type
7200         (dbus_message_iter_init_append): rename from append_iter_init
7201
7202         * dbus/dbus-marshal-recursive.c
7203         (_dbus_type_reader_get_element_type): rename from
7204         _dbus_type_reader_get_array_type
7205
7206 2005-01-15  Havoc Pennington  <hp@redhat.com>
7207
7208         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7209
7210         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7211         when DBUS_DISABLE_ASSERT
7212         (_dbus_marshal_set_basic): be sure we align for the string length
7213
7214         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7215         this look faster
7216
7217         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7218         inline macro version
7219         (_dbus_string_set_byte): provide inline macro version
7220
7221 2005-01-15  Havoc Pennington  <hp@redhat.com>
7222
7223         * Land the new message args API and type system.
7224
7225         This patch is huge, but the public API change is not 
7226         really large. The set of D-BUS types has changed somewhat, 
7227         and the arg "getters" are more geared toward language bindings;
7228         they don't make a copy, etc.
7229
7230         There are also some known issues. See these emails for details
7231         on this huge patch:
7232         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7233         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7234         
7235         * dbus/dbus-marshal-*: all the new stuff
7236
7237         * dbus/dbus-message.c: basically rewritten
7238
7239         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7240         freed blocks to be all non-nul bytes so using freed memory is less
7241         likely to work right
7242
7243         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7244         DBUS_FAIL_MALLOC=N environment variable, so you can do
7245         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7246         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7247         thorough.
7248
7249         * qt/message.cpp: port to the new message args API
7250         (operator<<): use str.utf8() rather than str.unicode()
7251         (pretty sure this is right from the Qt docs?)
7252
7253         * glib/dbus-gvalue.c: port to the new message args API
7254
7255         * bus/dispatch.c, bus/driver.c: port to the new message args API
7256
7257         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7258         "locked" flag to TRUE and align_offset to 0; I guess we never
7259         looked at these anyhow, but seems cleaner.
7260
7261         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7262         move allocation padding macro to this header; use it to implement
7263         (_DBUS_STRING_STATIC): ability to declare a static string.
7264
7265         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7266         change to return TRUE if the interface is not set.
7267
7268         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7269         to dbus-marshal-validate.[hc]
7270
7271         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7272         dbus-internals.c
7273
7274         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7275         to dbus-marshal-*.[hc]
7276
7277         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7278         function here from dbus-marshal.c
7279
7280 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7281
7282         * NEWS: Update for 0.23.
7283
7284         * configure.in: Release 0.23.
7285
7286 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7287
7288         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7289         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7290         behind.
7291
7292         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7293         uninstall"
7294
7295         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7296         is an enum, get the enum's underlying type.  Another mono
7297         1.1.3 fix.
7298
7299 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7300
7301         Patch from Sjoerd Simons <sjoerd@luon.net>
7302
7303         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7304         DESTDIR.  It breaks stuff.
7305
7306 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7307
7308         Patch from Tambet Ingo <tambet@ximian.com>
7309
7310         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7311         calling type.GetElementType().  The code previously depended on
7312         broken Mono behavior, which was fixed in Mono 1.1.3.
7313
7314         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7315         Activator.CreateInstance() so that the class's constructor is
7316         called with the right parameters.
7317
7318 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7319
7320         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7321
7322         * dbus/dbus-connection.c
7323         (_dbus_connection_queue_received_message_link): Call
7324         _dbus_connection_remove_timeout() instead of the _locked()
7325         variant, since it's always called from
7326         _dbus_connection_handle_watch(), which handles the locking.
7327         Removed the _locked() variant since it's no longer used.
7328
7329 2005-01-03  Havoc Pennington  <hp@redhat.com>
7330
7331         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7332         return
7333         
7334 2004-12-26  Havoc Pennington  <hp@redhat.com>
7335
7336         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7337
7338 2005-01-03  Havoc Pennington  <hp@redhat.com>
7339
7340         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7341         floating point
7342
7343         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7344
7345 2005-01-02  Havoc Pennington  <hp@redhat.com>
7346
7347         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7348
7349 2005-01-01  Havoc Pennington  <hp@redhat.com>
7350
7351         * configure.in: add -Wfloat-equal
7352
7353 2005-01-01  Havoc Pennington  <hp@redhat.com>
7354
7355         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7356         for a variety of reasons '==' doesn't do this.
7357
7358 2004-12-31  Havoc Pennington  <hp@redhat.com>
7359
7360         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7361         I keep wishing I had
7362
7363 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7364
7365         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7366
7367 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7368
7369         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7370         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7371         dbus-protocol.h.  Because they are defines and not enums they are not
7372         autogenerated.
7373
7374 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7375
7376         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7377         dbus_bus_activate_service
7378
7379         * python/dbus.py (Bus.activate_service): activate a service on the
7380         bus.
7381
7382 2004-12-24  Havoc Pennington  <hp@redhat.com>
7383
7384         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7385         file format has also changed and I haven't adapted to that yet
7386         
7387         * Makefile.am: load .gcno files from latest gcc
7388
7389 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7390         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7391
7392         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7393         lowlevel binding
7394
7395         * python/dbus.py (get_unix_user): Added binding to 
7396         call dbus_bindings.bus_get_unix_user
7397
7398         * python/extract.py: Modified the proto_pat regex to
7399         handle unsigned long
7400
7401 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7402
7403         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7404         better POSIX compliance.
7405
7406 2004-12-19  Havoc Pennington  <hp@redhat.com>
7407
7408         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7409         (_dbus_string_insert_8_aligned): new functions
7410
7411         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7412
7413 2004-12-18  Havoc Pennington  <hp@redhat.com>
7414
7415         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7416         macro
7417
7418         * dbus/dbus-message.c: fix a comment, and add a still-unused
7419         not-implemented function
7420
7421         * dbus/dbus-marshal.h: fix comment
7422
7423         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7424
7425 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7426
7427         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7428         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7429         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7430         Type.UnderlyingSystemType to get the actual system type
7431         underneath.  This code previously depended on the broken Mono
7432         behavior, which was fixed in 1.1.3.
7433
7434 2004-11-27  Havoc Pennington  <hp@redhat.com>
7435
7436         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7437         are disabled
7438         (_dbus_string_get_const_data): inline when asserts are disabled
7439
7440         * dbus/dbus-message.c: record the _dbus_current_generation of
7441         creation so we can complain if dbus_shutdown() is used improperly.
7442         Do this only if checks are enabled.
7443
7444         * dbus/dbus-connection.c: ditto
7445         
7446 2004-11-26  Havoc Pennington  <hp@redhat.com>
7447
7448         * test/glib/test-profile.c: add with_bus mode to profile echoes
7449         that go through the bus.
7450
7451         * test/glib/run-test.sh: add ability to run test-profile
7452
7453         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7454         config file reload.
7455
7456 2004-11-26  Havoc Pennington  <hp@redhat.com>
7457
7458         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7459         thing was implemented
7460
7461 2004-11-26  Havoc Pennington  <hp@redhat.com>
7462
7463         * test/glib/test-profile.c: tweak a bit, add support for some
7464         made-up minimal malloc overhead with plain sockets, since in 
7465         real life some sort of buffers are unavoidable thus we could 
7466         count them in the theoretical best case
7467
7468 2004-11-26  Havoc Pennington  <hp@redhat.com>
7469
7470         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7471         where I was trying to cache one too many messages
7472
7473 2004-11-26  Havoc Pennington  <hp@redhat.com>
7474
7475         * dbus/dbus-message.c: reimplement message cache as an array which 
7476         makes the cache about twice as fast and saves maybe 1.5% overall
7477
7478 2004-11-26  Havoc Pennington  <hp@redhat.com>
7479
7480         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7481         message cache lock here
7482
7483 2004-11-26  Havoc Pennington  <hp@redhat.com>
7484
7485         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7486         the "char byte_order" next to each other to save 4 bytes
7487         (dbus_message_new_empty_header): reduce preallocation, since the
7488         message cache should achieve a similar effect
7489         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7490         message cache that keeps a few DBusMessage around in a pool,
7491         another 8% speedup or so.
7492
7493         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7494
7495 2004-11-25  Havoc Pennington  <hp@redhat.com>
7496
7497         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7498         to write, without reading or blocking, try it before the poll()
7499         and skip the poll() if nothing remains to write. This is about a
7500         3% speedup in the echo client/server
7501
7502 2004-11-25  Havoc Pennington  <hp@redhat.com>
7503
7504         The primary change here is to always write() once before adding
7505         the write watch, which gives us about a 10% performance increase.
7506         
7507         * dbus/dbus-transport-unix.c: a number of modifications to cope
7508         with removing messages_pending
7509         (check_write_watch): properly handle
7510         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7511         messages_pending stuff
7512         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7513         AUTHENTICATED cases
7514         (unix_handle_watch): after writing, see if the write watch can be
7515         removed
7516         (unix_do_iteration): assert that write_watch/read_watch are
7517         non-NULL rather than testing that they aren't, since they 
7518         aren't allowed to be NULL. check_write_watch() at the end so 
7519         we add the watch if we did not finish writing (e.g. got EAGAIN)
7520
7521         * dbus/dbus-transport-protected.h: remove messages_pending call,
7522         since it resulted in too much inefficient watch adding/removing; 
7523         instead we now require that the transport user does an iteration 
7524         after queueing outgoing messages, and after trying the first
7525         write() we add a write watch if we got EAGAIN or exceeded our 
7526         max bytes to write per iteration setting
7527
7528         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7529         function
7530
7531         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7532         freed and then accessed, valgrind flagged this bug, fix it
7533
7534         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7535         as the last valid field plus 1, where really it is equal to the
7536         last valid field. Corrects some message corruption issues.
7537
7538         * dbus/dbus-mainloop.c: verbosity changes
7539
7540         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7541         instead of aborting in one of the test codepaths
7542
7543         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7544         caused not printing the pid ever again if a verbose was missing
7545         the newline at the end
7546         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7547
7548         * dbus/dbus-connection.c: verbosity changes; 
7549         (dbus_connection_has_messages_to_send): new function
7550         (_dbus_connection_message_sent): no longer call transport->messages_pending
7551         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7552         try to write() immediately, so we can avoid the write watch. This
7553         is the core purpose of this patchset
7554         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7555         dump the outgoing message queue, so nobody will get confused
7556         trying to send them or thinking stuff is pending to be sent
7557
7558         * bus/test.c: verbosity changes
7559
7560         * bus/driver.c: verbosity/assertion changes
7561
7562         * bus/dispatch.c: a bunch of little tweaks to get it working again
7563         because this patchset changes when/where you need to block.
7564
7565 2004-11-23  Havoc Pennington  <hp@redhat.com>
7566
7567         * test/glib/test-profile.c: modify to accept a plain_sockets
7568         argument in which case it will bench plain sockets instead of
7569         libdbus, for comparison purposes.
7570
7571 2004-11-22  Havoc Pennington  <hp@redhat.com>
7572
7573         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7574         threads for more time, so sysprof can get a grip on it.
7575
7576         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7577         pointless variable
7578
7579 2004-11-13  Havoc Pennington  <hp@redhat.com>
7580
7581         * test/glib/test-profile.c: fix this thing up a bit
7582
7583         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7584         preallocation sizes by a fair bit; not sure if this will be an
7585         overall performance win or not, but it does reduce reallocs.
7586
7587         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7588         the test hack that forced constant realloc if asserts are
7589         disabled, so we can profile sanely. Sprinkle in some
7590         _DBUS_UNLIKELY() which are probably pointless, but before I
7591         noticed the real performance problem I put them in.
7592         (_dbus_string_validate_utf8): micro-optimize this thing a little
7593         bit, though callgrind says it didn't help; then special-case
7594         ascii, which did help a lot; then be sure we detect nul bytes as
7595         invalid, which is a bugfix.
7596         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7597         superstition; use memset to nul the padding instead of a manual
7598         loop.
7599         (_dbus_string_get_length): inline this as a
7600         macro; it showed up in the profile because it's used for loop
7601         tests and so forth
7602
7603 2004-11-10  Colin Walters  <walters@verbum.org>
7604
7605         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7606         for extra paranoia.
7607
7608 2004-11-09  Colin Walters  <walters@verbum.org>
7609
7610         * dbus/dbus-string.c (_dbus_string_get_length): New
7611         function, writes DBusString to C buffer.
7612
7613         * dbus/dbus-string.h: Prototype it.
7614
7615         * dbus/dbus-message.c (dbus_message_type_to_string): New
7616         function, converts message type into C string.
7617
7618         * dbus/dbus-message.h: Prototype it.
7619
7620         * bus/selinux.c (bus_selinux_check): Take source pid,
7621         target pid, and audit data.  Pass audit data to
7622         avc_has_perm.
7623         (log_audit_callback): New function, appends extra
7624         audit information.
7625         (bus_selinux_allows_acquire_service): Also take
7626         service name, add it to audit data.
7627         (bus_selinux_allows_send): Also take message
7628         type, interface, method member, error name,
7629         and destination, and add them to audit data.
7630         (log_cb): Initialize func_audit.
7631         
7632         * bus/selinux.h (bus_selinux_allows_acquire_service)
7633         (bus_selinux_allows_send): Update prototypes 
7634
7635         * bus/services.c (bus_registry_acquire_service): Pass
7636         service name to bus_selinux_allows_acquire_service.
7637
7638         * bus/bus.c (bus_context_check_security_policy): Pass
7639         additional audit data.  Move assignment of dest
7640         to its own line.
7641
7642 2004-11-07  Colin Walters  <walters@verbum.org>
7643
7644         * dbus/dbus-transport-unix.c (do_authentication): Always
7645         initialize auth_completed.
7646         
7647 2004-11-07  Colin Walters  <walters@verbum.org>
7648
7649         * bus/bus.c (load_config): Break into three
7650         separate functions: process_config_first_time_only,
7651         process_config_every_time, and process_config_postinit.
7652         (process_config_every_time): Move call of
7653         bus_registry_set_service_context_table into
7654         process_config_postinit.
7655         (process_config_postinit): New function, does
7656         any processing that needs to happen late
7657         in initialization (and also on reload).
7658         (bus_context_new): Instead of calling load_config,
7659         open config parser here and call process_config_first_time_only
7660         and process_config_every_time directly.  Later, after
7661         we have forked but before changing UID,
7662         invoke bus_selinux_full_init, and then call
7663         process_config_postinit.
7664         (bus_context_reload_config): As in bus_context_new,
7665         load parse file inside here, and call process_config_every_time
7666         and process_config_postinit.
7667
7668         * bus/services.h, bus/services.c
7669         (bus_registry_set_service_context_table): Rename
7670         from bus_registry_set_sid_table.  Take string hash from config
7671         parser, and convert them here into SIDs.
7672
7673         * bus/config-parser.c (struct BusConfigParser): Have
7674         config parser only store a mapping of service->context
7675         string.
7676         (merge_service_context_hash): New function.
7677         (merge_included): Merge context string hashes instead
7678         of using bus_selinux_id_table_union.
7679         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7680         simply create a new string hash.
7681         (bus_config_parser_unref): Unref it.
7682         (start_selinux_child): Simply insert strings into hash,
7683         don't call bus_selinux_id_table_copy_over.
7684
7685         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7686         (bus_selinux_id_table_copy_over): Delete.
7687
7688 2004-11-03  Colin Walters  <walters@verbum.org>
7689
7690         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7691         variables.
7692         
7693 2004-11-03  Colin Walters  <walters@verbum.org>
7694
7695         * bus/test-main.c (test_pre_hook): Fix test logic,
7696         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7697
7698 2004-11-02  Colin Walters  <walters@redhat.com>
7699
7700         * bus/selinux.c (bus_selinux_init): Split into two functions,
7701         bus_selinux_pre_init and bus_selinux_post_init.
7702         (bus_selinux_pre_init): Just determine whether SELinux is
7703         enabled.
7704         (bus_selinux_post_init): Do everything else.
7705
7706         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7707         config file, and bus_selinux_post_init after.  This ensures that
7708         we don't lose the policyreload notification thread that
7709         bus_selinux_init created before forking previously.
7710         
7711         * bus/test-main.c (test_pre_hook): Update for split.
7712
7713 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7714
7715         Patch from Johan Fischer <linux@fischaz.com>
7716         
7717         * mono/doc/Makefile.am (install-data-local): Added directory
7718         install for DESTDIR
7719
7720 2004-10-29  Colin Walters  <walters@redhat.com>
7721
7722         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7723         parameter for fd to write pid to.       
7724
7725         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7726         
7727         * bus/bus.c (bus_context_new): Pass print_pid_fd
7728         to _dbus_become_daemon (bug #1720)
7729
7730 2004-10-29  Colin Walters  <walters@redhat.com>
7731
7732         Patch from Ed Catmur <ed@catmur.co.uk>
7733
7734         * mono/doc/Makefile.am (install-data-local): Handle
7735         DESTDIR.
7736
7737 2004-10-29  Colin Walters  <walters@redhat.com>
7738
7739         * bus/.cvsignore, qt/.cvsignore: Update.
7740
7741 2004-10-29  Colin Walters  <walters@redhat.com>
7742
7743         Patch from Kristof Vansant <de_lupus@pandora.be>
7744
7745         * configure.in: Detect Slackware.
7746         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7747         * bus/rc.messagebus.in: New file.
7748
7749 2004-10-29  Colin Walters  <walters@redhat.com>
7750
7751         * tools/dbus-monitor.c (filter_func): Return
7752         DBUS_HANDLER_RESULT_HANDLED in filter function
7753         for now.  See:
7754         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7755
7756 2004-10-29  Colin Walters  <walters@redhat.com>
7757
7758         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7759
7760         * bus/services.c (bus_registry_acquire_service): 
7761         Correctly retrieve service name from DBusString
7762         for printing.
7763
7764 2004-10-29  Colin Walters  <walters@redhat.com>
7765
7766         * dbus/dbus-glib.h: Update documentation to not
7767         refer to internal APIs.
7768
7769 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7770
7771         * mono/Arguments.cs (GetDBusTypeConstructor):
7772         type.UnderlyingSystemType will return "System.Byte" if you do it
7773         on "byte[]", which is not what we want.  So check the type.IsArray
7774         property and use System.Array instead.
7775
7776 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7777
7778         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7779         the DBusUserInfo structure since this is passed into the function.
7780         This would cause a double free when the function that allocated
7781         the structure would try to free it when an error occured.
7782
7783         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7784         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7785         for service activation to avoid 32bit/64bit parallel install issues
7786
7787 2004-10-21  Colin Walters  <walters@verbum.org>
7788
7789         * AUTHORS: Fix my email address, the @gnu.org one
7790         has been bouncing for some time.  Also add J5.
7791         
7792 2004-10-21  Colin Walters  <walters@verbum.org>
7793
7794         * dbus/dbus-transport-unix.c (do_authentication): Return
7795         authentication status to callers.
7796         (unix_handle_watch): If we completed authentication this round,
7797         don't do another read.  Instead wait until the next iteration,
7798         after we've read any pending data in the auth buffer.
7799         (unix_do_iteration): Ditto.
7800         (unix_handle_watch): Updated for new do_authentication prototype.
7801
7802 2004-10-18  Colin Walters  <walters@verbum.org>
7803
7804         * bus/selinux.c (bus_selinux_enabled): Handle
7805         --disable-selinux case.
7806         
7807 2004-10-18  Colin Walters  <walters@verbum.org>
7808
7809         * bus/selinux.h: Add bus_selinux_enabled.
7810         
7811         * bus/selinux.c (bus_selinux_enabled): Implement it.
7812         
7813         * bus/config-parser.c (struct include): Add
7814         if_selinux_enabled member.
7815         (start_busconfig_child): Parse if_selinux_enabled
7816         attribute for include.
7817         (bus_config_parser_content): Handle it.
7818
7819         * bus/session.conf.in, bus/system.conf.in: Add
7820         inclusion of context mapping to default config files;
7821         conditional on SELinux being enabled.
7822         
7823         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7824         
7825         * test/data/invalid-config-files/badselinux-1.conf, 
7826         test/data/invalid-config-files/badselinux-2.conf:
7827         Test files for bad syntax.
7828         
7829 2004-10-17  Colin Walters  <walters@verbum.org>
7830
7831         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7832         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7833         format specifier mismatches.
7834
7835 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7836
7837         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7838         format string.
7839
7840         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7841         pointer (bug #1540, Leonardo Boiko).
7842
7843 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7844
7845         * mono/BusDriver.cs: Changed BusDriver struct to remove
7846         the ServiceCreated and ServiceDeleted events and replace them
7847         with the new ServiceOwnerChanged event.
7848
7849         * mono/example/BusListener.cs: Added a new example program,
7850         which listens for and reports any ServiceOwnerChanged events
7851         on the bus driver.
7852
7853         * mono/example/Makefile.am (DESTDIR): Build changes for the
7854         new BusListener.cs example.
7855
7856 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7857
7858         * bus/signals.c (bus_match_rule_parse): validate the components of
7859         match rules (bug #1439).
7860
7861         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7862
7863 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7864
7865         * doc/dbus-specification.xml: document ServiceOwnerChanged
7866         signal.
7867         
7868         * bus/driver.c, bus/driver.h, bus/services.c: Use
7869         ServiceOwnerChanged signal instead of ServiceCreated and
7870         ServiceDeleted.
7871         
7872         * bus/dispatch.c: update testcase for the new signal.
7873
7874 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7875
7876         Patch from Nat Friedman <nat@novell.com>
7877
7878         * mono/Makefile.am: A number of small build fixes to allow "make
7879         distcheck" to succeed.
7880
7881         * mono/example/Makefile.am: "make distcheck" fixes.
7882
7883         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7884         key in @srcdir@.
7885
7886         * test/Makefile.am: "make distcheck" fixes.
7887
7888 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7889
7890         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7891
7892         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7893
7894         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7895         messages after the first one (bug #1389).
7896         
7897         * bus/dispatch.c (check_double_hello_message): add a test case for
7898         the double hello message bug.
7899         (check_existent_service_activation): fix check of spawning error.
7900         
7901 2004-09-16  David Zeuthen  <david@fubar.dk>
7902
7903         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7904
7905 2004-09-12  David Zeuthen  <david@fubar.dk>
7906
7907         Patch from Kay Sievers <kay.sievers@vrfy.org>
7908
7909         * bus/bus.c (bus_context_new):
7910         * bus/bus.h:
7911         * bus/main.c (usage)
7912         (main):
7913         Add commandline option --nofork to override configuration file
7914         setting.
7915
7916 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7917
7918         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7919         compilers don't like it (bug #974).
7920
7921 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7922
7923         * qt/connection.*: Applied patch by Jérôme Lodewyck
7924         <lodewyck@clipper.ens.fr> to integrate an existing
7925         connection into the Qt eventloop
7926
7927 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7928
7929         * mono/BusDriver.cs: Added.  This is a class for interacting with
7930         the org.freedesktop.DBus service.
7931
7932         * mono/Message.cs: Added a mechanism to expose the message that is
7933         currently being dispatched via the static Message.Current
7934         property.  Added Message.Sender and Message.Destination
7935         properties.
7936
7937         * mono/Handler.cs: Expose the dispatched message via
7938         Message.Current when handling method calls.
7939
7940         * mono/Service.cs: Expose the dispatched message via
7941         Message.Current when handling signal emissions.
7942         
7943         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7944         Connection.BaseService property.
7945
7946 2004-08-28  Havoc Pennington  <hp@redhat.com>
7947
7948         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7949
7950         More fixes from Steve Grubb
7951         
7952         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7953         (_dbus_listen_tcp_socket): fix fd leak
7954
7955         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7956         EINTR to a bit lower in the code
7957
7958 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7959
7960         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7961         TRUE if we are inquiring about the existence of the built-in
7962         org.freedesktop.DBus service.
7963
7964 2004-08-25  John Palmieri  <johnp@redhat.com>
7965         * bus/config-parser.c:
7966         (struct PolicyType): Add POLICY_CONSOLE
7967         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7968         (start_busconfig_child): Sets up console element when
7969         <policy at_console=""> is encountered in a policy file
7970         (append_rule_from_element): Convert console elements to console
7971         rules.
7972
7973         * bus/policy.c: 
7974         (bus_policy_create_client_policy): Add console rules to the client
7975         policy based on if the client is at the console
7976         (bus_policy_append_console_rule): New function for adding a
7977         console rule to a policy
7978         (bus_policy_merge): Handle console rule merging
7979
7980         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7981         where we check for console user files
7982         
7983         * dbus/dbus-sysdeps.c:
7984         (_dbus_file_exists): New function which checks if the given
7985         file exists
7986         (_dbus_user_at_console): New function which does the system
7987         specific process of checking if the user is at the console
7988
7989         * dbus/dbus-userdb.c:
7990         (_dbus_is_console_user): New function converts a UID to user name
7991         and then calls the system specific _dbus_user_at_console to 
7992         see if the user is at the console and therefor a console user
7993
7994 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7995
7996         * bus/config-parser.c (set_limit):
7997         * bus/dbus-daemon-1.1.in:
7998         * test/data/valid-config-files/many-rules.conf: set the
7999         max_match_rules_per_connection limt from the config file. 
8000
8001         * doc/busconfig.dtd: update the DTD.
8002
8003         * bus/driver.c: remove some unused variables.
8004
8005 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8006
8007         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8008         it's been replaced by dbus_g_bus_get
8009
8010 2004-08-23  Colin Walters  <walters@redhat.com>
8011
8012         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8013
8014         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8015
8016         * bus/selinux.c: Create a thread for policy reload notification.
8017         (bus_selinux_get_policy_root): Implement.
8018
8019         * bus/config-parser.c (start_busconfig_child)
8020         (bus_config_parser_content): Support SELinux-root relative
8021         inclusion.
8022
8023         * configure.in <HAVE_SELINUX>: Add -lpthread.
8024         
8025         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8026         (test_post_hook): Move memory checking into here.
8027         (test_pre_hook, test_post_hook): Move SELinux checks in
8028         here, but conditional on a DBUS_TEST_SELINUX environment
8029         variable.  Unfortunately we can't run the SELinux checks
8030         as a normal user, since they won't have any permissions
8031         for /selinux.  So this will have to be tested manually
8032         for now, until we have virtualization for most of
8033         libselinux.
8034         
8035 2004-08-23  Havoc Pennington  <hp@redhat.com>
8036
8037         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8038         drop supplementary groups, suggested by Steve Grubb
8039
8040 2004-08-20  Colin Walters  <walters@redhat.com>
8041
8042         * bus/config-parser.c (start_busconfig_child): Remove some unused
8043         variables.
8044         
8045         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8046         warning.
8047
8048 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8049
8050         * configure.in: If --enable-mono is passed in, if we can't find
8051         mono error out.
8052
8053         * mono/Makefile.am: Use /gacutil to install assemblies into the
8054         GAC and not /root.
8055
8056 2004-08-12  Havoc Pennington  <hp@redhat.com>
8057
8058         * NEWS: update for 0.22
8059
8060         * configure.in: release 0.22
8061
8062 2004-08-11  Colin Walters  <walters@redhat.com>
8063
8064         * tools/dbus-send.c (main, usage): Add --reply-timeout
8065         argument.
8066
8067 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8068
8069         * bus/bus.c (process_config_first_time_only): get rid of an unused
8070         DBusError that was causing a memoy leak (bug #989).
8071
8072         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8073         fix compilation on Solaris/Forte C (bug #974)
8074
8075         * bus/main.c (main): plug two minuscule memleaks.
8076
8077 2004-08-10  Havoc Pennington  <hp@redhat.com>
8078
8079         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8080
8081 2004-08-09  Havoc Pennington  <hp@redhat.com>
8082
8083         * COPYING: switch to Academic Free License version 2.1 instead of
8084         2.0, to resolve complaints about patent termination clause.
8085
8086 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8087
8088         * README: added documentation for the --enable-python 
8089         configure switch.
8090
8091 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8092
8093         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8094         _unref in the SELinux support.
8095
8096         * doc/busconfig.dtd: update DTD for SELinux support.
8097
8098         * bus/config-loader-libxml.c: fix error handler and parser
8099         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8100
8101         * configure.in: remove the warning about libxml2.
8102
8103         * dbus/dbus-bus.c: silence doxygen warning.
8104
8105 2004-07-31  Colin Walters  <walters@redhat.com>
8106
8107         * configure.in: Move #error in SELinux check to its own line.
8108
8109 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8110
8111         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8112         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8113         dbus_error_set.
8114
8115         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8116         broken by the change in the _SET_OOM macros.
8117
8118 2004-07-31  Colin Walters  <walters@redhat.com>
8119
8120         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8121         BUS_SET_OOM.
8122
8123 2004-07-31  Colin Walters  <walters@redhat.com>
8124
8125         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8126         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8127         AC_MSG_CHECKING.
8128
8129 2004-07-24  Havoc Pennington  <hp@redhat.com>
8130
8131         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8132
8133         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8134         functionality
8135
8136         * configure.in: add --enable-selinux
8137         
8138         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8139
8140         * bus/main.c (main): initialize and shut down selinux
8141
8142         * bus/connection.c: store SELinux ID on each connection, to avoid 
8143         repeated getting of the string context and converting it into 
8144         an ID
8145
8146         * bus/bus.c (bus_context_get_policy): new accessor, though it
8147         isn't used
8148         (bus_context_check_security_policy): check whether the security
8149         context of sender connection can send to the security context of
8150         recipient connection
8151
8152         * bus/config-parser.c: add parsing for <selinux> and <associate>
8153         
8154         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8155         implement dbus_connection_get_unix_fd()
8156
8157         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8158         function, used by the selinux stuff
8159         
8160 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8161
8162         * bus/config-loader-libxml.c: complete the implementation of
8163         libxml backend for config file loader. Doesn't work with full OOM
8164         test yet. 
8165         
8166         * configure.in: change error when selecting libxml into a warning.
8167         
8168         * test/data/invalid-config-files: add two non-well-formed XML
8169         files. 
8170         
8171         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8172         
8173         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8174         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8175         be necessary to read all the buffer. (bug #894)
8176
8177         * bus/activation.c (bus_activation_activate_service): fix a
8178         potential assertion failure (bug #896). Small optimization in the
8179         case of auto-activation messages.
8180
8181         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8182         add test case for byte-through-vararg bug (#901). patch by Kimmo
8183         Hämäläinen. 
8184
8185 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8186
8187         * python/dbus.py:
8188         * python/dbus_bindings.pyx.in:
8189         Add dbus.init_gthreads (), allow emit_signal to pass
8190         arguments to the signal.
8191         
8192 2004-07-24  Havoc Pennington  <hp@redhat.com>
8193
8194         * AUTHORS: add some people, not really comprehensively, let me
8195         know if I missed you
8196
8197 2004-07-24  Havoc Pennington  <hp@redhat.com>
8198
8199         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8200         Owen
8201
8202         * test/Makefile.am (DIST_SUBDIRS): here also
8203
8204 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8205
8206         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8207         breaking build on Solaris, reported by Farhad Saberi on the ML.
8208
8209         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8210         va_arg invocation to account for integer promotion in the case of
8211         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8212
8213         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8214         _dbus_list_get_first_link, not _dbus_list_get_first.
8215
8216         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8217
8218         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8219         handler functions so that the asserts in _dbus_object_subtree_unref
8220         do not fail.
8221
8222         * dbus/dbus-transport-unix.c (do_reading):
8223         _dbus_transport_queue_messages return value is of type
8224         dbus_bool_t, not DBusDispatchStatus.
8225         
8226 2004-07-19  David Zeuthen  <david@fubar.dk>
8227
8228         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8229
8230         * bus/dispatch.c:
8231         (check_get_connection_unix_user): Debug says GetProperty; but the
8232         method is called GetConnectionUnixUser
8233         (check_get_connection_unix_process_id): New function
8234         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8235         also call check_get_connection_unix_process_id()
8236         
8237         * bus/driver.c:
8238         (bus_driver_handle_get_connection_unix_process_id): New function,
8239         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8240         interface
8241         
8242         * dbus/dbus-auth.c:
8243         (handle_server_data_external_mech): Set pid from the credentials
8244         obtained from the socket
8245         
8246         * dbus/dbus-connection.c:
8247         (dbus_connection_get_unix_process_id): New function
8248         
8249         * dbus/dbus-connection.h: 
8250         Add prototype for dbus_connection_get_unix_process_id
8251         
8252         * dbus/dbus-transport.c:
8253         (_dbus_transport_get_unix_process_id): New function
8254         
8255         * dbus/dbus-transport.h:
8256         Add prototype for _dbus_transport_get_unix_process_id
8257         
8258 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8259
8260         * dbus/dbus-message.c: Message counter fix, patch by Christian
8261         Hammond <chipx86@gnupdate.org>
8262
8263 2004-07-18  Seth Nickell  <seth@gnome.org>
8264
8265         * python/dbus.py:
8266         * python/dbus_bindings.pyx.in:
8267         * python/tests/test-client.py:
8268
8269         Add dbus.ByteArray and dbus_bindings.ByteArray
8270         types so that byte streams can be passed back.
8271
8272         Give jdahlin the heaps of credit that are so
8273         rightfully his.
8274         
8275 2004-07-12  Seth Nickell  <seth@gnome.org>
8276
8277         * python/dbus.py:
8278
8279         Add message argument to the default object_method_handler
8280         function.
8281         
8282         * python/dbus_bindings.pyx.in:
8283
8284         Automatically return NIL when passed an empty list
8285         (we can't pass back a list since lists are typed
8286         and we don't have any idea what type the the client
8287         intended the list to be... :-( )
8288         
8289 2004-07-10  Seth Nickell  <seth@gnome.org>
8290
8291         * python/examples/Makefile.am:
8292
8293         Fix distcheck breakage caused by new examples.
8294
8295 2004-07-10  Seth Nickell  <seth@gnome.org>
8296
8297         * python/dbus.py:
8298
8299         Add "message" argument to service-side dbus.Object
8300         methods. This will break existing services written
8301         using the python bindings, but will allow extraction
8302         of all the message information (e.g. who its from).
8303
8304         Add improved "object oriented" signal handling/emission.
8305         
8306         * python/examples/example-service.py:
8307
8308         Nix this example.
8309         
8310         * python/examples/example-signal-emitter.py:
8311         * python/examples/example-signal-recipient.py:
8312
8313         Two new examples that show how to emit and receive
8314         signals using the new APIs.
8315         
8316         * python/examples/example-signals.py:
8317         * python/examples/gconf-proxy-service.py:
8318         * python/examples/gconf-proxy-service2.py:
8319
8320         Add "message" argument to service methods.
8321
8322 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8323
8324         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8325         * dbus/bus.c (dbus_bus_get_unix_user)
8326         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8327         method of org.freedesktop.DBus interface.
8328
8329         * bus/dispatch.c: test case
8330
8331 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8332
8333         * python/Makefile.am: switched include directory from glib/ to dbus/
8334         since dbus-glib.h moved
8335  
8336 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8337
8338         * configure.in: prevent building the gcj stuff and libxml loader
8339         since they are broken.
8340
8341 2004-06-20  Havoc Pennington  <hp@redhat.com>
8342
8343         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8344         codes from the dbus error names
8345         
8346         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8347         as dbus/dbus-glib.h and that breakage is now visible due to 
8348         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8349         
8350         * glib/dbus-glib.h: s/gproxy/g_proxy/
8351
8352         * dbus/dbus-shared.h: new header to hold stuff shared with
8353         binding APIs
8354         
8355         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8356         than dbus-errors.h
8357
8358         * glib/dbus-glib.h (dbus_set_g_error): move to
8359         dbus-glib-lowlevel.h
8360
8361         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8362         of stuff to enable this
8363
8364         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8365
8366         * a bunch of other changes with the same basic "separate glib 
8367         bindings from dbus.h" theme
8368         
8369 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8370
8371         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8372
8373         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8374
8375 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8376
8377         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8378         the reply value of the ServiceExists message.
8379
8380 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8381
8382         * python/dbus_bindings.pyx.in: No longer need to parse path
8383         elements and pass them as arrays of strings.  The C API now
8384         accepts plain path strings.
8385         (_build_parsed_path): removed 
8386
8387 2004-06-07  Havoc Pennington  <hp@redhat.com>
8388
8389         * doc/TODO: remove auto-activation item since it's done; sort
8390         items by importance/milestone
8391
8392 2004-06-07  Havoc Pennington  <hp@redhat.com>
8393
8394         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8395         random signature when using REQUIRED_FIELDS (this hack won't work
8396         in the long term)
8397
8398         * dbus/dbus-message.c: change the signature to be a header field,
8399         instead of message->signature special-case string. Incremental
8400         step forward. Then we can fix up code to send the signature in the
8401         message, then fix up code to validate said signature, then fix up
8402         code to not put the typecodes inline, etc.
8403         (load_one_message): don't make up the signature after the fact
8404         (decode_header_data): require signature field for the known
8405         message types
8406
8407         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8408
8409         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8410
8411 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8412
8413         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8414
8415         * mono/Handler.cs: Updated to follow new path argument for
8416         (un-)registering objects.
8417
8418         * mono/example/Makefile.am:
8419         * mono/Makefile.am:
8420         * configure.in: Bumped required version for mono and use new -pkg
8421         syntax for deps
8422
8423 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8424
8425         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8426         registration functions take the path argument as char* instead of
8427         char**.
8428
8429         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8430         split off the path decompostion part of
8431         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8432         warnings. 
8433
8434         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8435         
8436 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8437  
8438         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8439         machine approach.  A state is implemented as a function that
8440         handles incoming events as specified for that state.
8441         
8442         * doc/dbus-specification.xml: Update auth protocol state machine
8443         specification to match implementation.  Remove some leftover
8444         base64 examples.
8445
8446 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8447
8448         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8449         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8450         quiet doxygen.
8451
8452         * Doxyfile.in: remove deprecated options.
8453
8454         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8455         glib/test-thread.h, glib/test-thread-client.c,
8456         glib/test-thread-server.c, glib/test-profile.c,
8457         glib/test-dbus-glib.c: remove these unused files.
8458
8459 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8460
8461         * dbus/dbus-object-tree.c
8462         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8463         non-fallback handlers (bug #684).
8464         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8465         (find_subtree_recurse): report wether the returned subtree is an
8466         exact match or a "fallback" match higher up in the tree.
8467         (object_tree_test_iteration): update test case.
8468
8469 2004-06-01  Seth Nickell  <seth@gnome.org>
8470
8471         * python/dbus_bindings.pyx.in:
8472         * python/tests/test-client.py:
8473
8474         Round off basic type support. Add dicts (yay!), and 
8475         remaining array types.
8476
8477         Make MessageIter more general so it works for dicts too.
8478
8479         Mark all loop variables as C integers.
8480         
8481 2004-05-31  Havoc Pennington  <hp@redhat.com>
8482
8483         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8484         "in" before "out"
8485
8486         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8487
8488         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8489         option that runs the tests, and start filling in some code
8490         including for starters just dumping the interfaces to stdout
8491
8492         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8493
8494         * test/data/valid-introspection-files/lots-of-types.xml: test of
8495         an example introspection file
8496
8497         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8498         "node" (I think...)
8499
8500 2004-05-31  Seth Nickell  <seth@gnome.org>
8501
8502         * python/dbus_bindings.pyx.in:
8503         * python/tests/test-client.py:
8504
8505         Test Suite: 1
8506         Python Bindings: 0
8507
8508         Fix string array memory trashing bug... oops...
8509
8510 2004-05-30  Seth Nickell  <seth@gnome.org>
8511
8512         * python/dbus.py:
8513
8514         Add a nicer-but-less-flexible alternate API for handling 
8515         calls to virtual objects in dbus.ObjectTree.
8516
8517         Screw up the argument order to the dbus.Object constructor
8518         for consistency with dbus.ObjectTree (and to make dbus_methods
8519         optional for future extension)
8520         
8521         * python/examples/Makefile.am:
8522         * python/examples/gconf-proxy-service.py:
8523         * python/examples/gconf-proxy-service2.py:
8524
8525         Alternate implementation of gconf-proxy-service using the
8526         nicer dbus.ObjectTree API.
8527         
8528         * python/examples/example-service.py:
8529         * python/tests/test-server.py
8530
8531         Reverse the argument order to deal with dbus.Object constructor
8532         changes.
8533         
8534 2004-05-30  Seth Nickell  <seth@gnome.org>
8535
8536         * python/examples/example-client.py:
8537         * python/examples/example-service.py:
8538
8539         Take it back. Lists seem to work but they're broken
8540         in the test suite. Make the base examples use
8541         lists (works fine).
8542
8543 2004-05-30  Seth Nickell  <seth@gnome.org>
8544
8545         * python/dbus_bindings.pyx.in:
8546         * python/tests/test-client.py:
8547
8548         Add some more tests and fix errors that crop up.
8549         Unfortunately, currently it seems like marshalling
8550         and unmarshalling of lists is completely broken :-(
8551
8552 2004-05-30  Seth Nickell  <seth@gnome.org>
8553
8554         * python/dbus_bindings.pyx.in:
8555
8556         Add support for ObjectPath type.
8557
8558         * python/dbus.py:
8559
8560         Refactor message handling code to a common function.
8561         
8562         * python/tests/test-client.py:
8563         * python/tests/test-server.py:
8564
8565         Add tests that check to make sure values of all types
8566         can be echoed from a service w/o mangling.
8567         
8568 2004-05-29  Seth Nickell  <seth@gnome.org>
8569
8570         * python/dbus.py:
8571
8572         Add ObjectTree class which allows implementation
8573         of trees of "virtual" objects. Basically the python
8574         wrapper for "register_fallback".
8575         
8576         * python/examples/Makefile.am
8577         * python/examples/gconf-proxy-client.py:
8578         * python/examples/gconf-proxy-service.py:
8579
8580         Implement a simple GConf proxy service that supports
8581         get/set on string and int GConf keys using the ObjectTree.
8582         
8583 2004-05-29  Seth Nickell  <seth@gnome.org>
8584
8585         * python/dbus.py:
8586         * python/examples/example-client.py:
8587         * python/examples/example-service.py:
8588         * python/examples/list-system-services.py:
8589
8590         Add SessionBus, SystemBus and ActivationBus classes
8591         so you don't need to know the special little BUS_TYPE
8592         flag.
8593         
8594 2004-05-29  Havoc Pennington  <hp@redhat.com>
8595
8596         * bus/config-parser.c (process_test_valid_subdir): temporarily
8597         stop testing config parser OOM handling, since expat has issues
8598         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8599
8600         * bus/dbus-daemon-1.1.in: change requested_reply to
8601         send_requested_reply/receive_requested_reply so we can send the
8602         replies, not just receive them.
8603
8604         * bus/config-parser.c: parse the new
8605         send_requested_reply/receive_requested_reply
8606
8607         * bus/policy.c (bus_client_policy_check_can_send): add
8608         requested_reply argument and use it
8609
8610         * bus/bus.c (bus_context_check_security_policy): pass through
8611         requested_reply status to message send check
8612
8613         * bus/system.conf.in: adapt to requested_reply change
8614         
8615 2004-05-28  Havoc Pennington  <hp@redhat.com>
8616
8617         * test/glib/test-service-glib.c (main): remove unused variable
8618
8619         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8620
8621         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8622         from the enum, no longer in use.
8623
8624         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8625         works right.
8626
8627         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8628         whether error_name passed in is a valid error name.
8629
8630 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8631
8632         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8633         OBJECT_PATH and OBJECT_PATH_ARRAY
8634
8635 2004-05-28  Seth Nickell  <seth@gnome.org>
8636
8637         * python/examples/Makefile.am:
8638
8639         Forget to add Makefile.am. Do not pass go.
8640
8641 2004-05-28  Michael Meeks  <michael@ximian.com>
8642
8643         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8644         fix no int64 case.
8645
8646         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8647
8648         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8649         (_dbus_message_iter_get_basic_type_array): impl.
8650         drastically simplify ~all relevant _get methods to use these.
8651         (_dbus_message_iter_append_basic_array),
8652         (dbus_message_iter_append_basic): impl
8653         drastically simplify ~all relevant _append methods to use these.
8654
8655         * dbus/dbus-message-builder.c (parse_basic_type) 
8656         (parse_basic_array, lookup_basic_type): impl.
8657         (_dbus_message_data_load): prune scads of duplicate /
8658         cut & paste coding.
8659
8660         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8661         (_dbus_demarshal_basic_type): implement,
8662         (demarshal_and_validate_len/arg): beef up debug.
8663         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8664
8665 2004-05-27  Seth Nickell  <seth@gnome.org>
8666
8667         * configure.in:
8668         * python/Makefile.am:
8669
8670         Include the example python apps in the tarball.
8671         
8672         * python/examples/list-system-services.py
8673
8674         Add a python new example that fetches the list of services
8675         from the system bus.
8676         
8677 2004-05-27  Seth Nickell  <seth@gnome.org>
8678
8679         * python/dbus.py:
8680         * python/dbus_bindings.pyx.in:
8681
8682         Fix failure to notify that a signal was not handled,
8683         resulted in hung functions.
8684         
8685 2004-05-25  Colin Walters  <walters@redhat.com>
8686
8687         * tools/dbus-monitor.c (main): Monitor all types of messages.
8688
8689 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8690
8691         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8692         which unregisters the object path and disposes the handler.
8693
8694 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8695  
8696         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8697          
8698         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8699         operands to && so we call dbus_message_iter_next () for the last
8700         argument also.
8701
8702 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8703
8704         * dbus/dbus-object-tree.c
8705         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8706         children even if the requested path isn't registered.
8707         (object_tree_test_iteration): test object_tree_list_registered.
8708
8709         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8710         it to 0.
8711         
8712 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8713
8714         * doc/TODO: Remove resolved items.
8715
8716         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8717         field.
8718         
8719         * bus/connection.c (bus_connections_expect_reply): Enforce the
8720         per-connection limit on pending replies.
8721         
8722         Patch from Jon Trowbridge <trow@ximian.com>:
8723  
8724         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8725         up a watch that triggers a config reload when one end of the pipe
8726         becomes readable.
8727         (signal_handler): Instead of doing the config reload in our SIGHUP
8728         handler, just write to the reload pipe and let the associated
8729         watch handle the reload when control returns to the main loop.
8730  
8731         * bus/driver.c (bus_driver_handle_reload_config): Added.
8732         Implements a ReloadConfig method for requesting a configuration
8733         file reload via the bus driver.
8734  
8735 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8736
8737         * HACKING: Updated release instructions concerning the wiki page.
8738
8739 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8740
8741         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8742         filter against auth->allowed_mechs; we only add allowed mechs in
8743         record_mechanisms().
8744  
8745         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8746         ALLOWED_MECHS to auth-script format so we can set the list of
8747         allowed mechanisms.
8748  
8749         * data/auth/client-out-of-mechanisms.auth-script: New test to
8750         check client disconnects when it is out of mechanisms to try.
8751  
8752         * dbus/dbus-auth.c (process_command): Remove check for lines
8753         longer that 1 MB; we only buffer up maximum 16 kB.
8754  
8755         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8756         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8757         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8758         assume there might be unused bytes.
8759  
8760         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8761         client-out-of-mechs, it is handled in process_reject(). Move check
8762         for max failures to send_rejected(), as it's a server-only thing.
8763
8764         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8765         send_auth(), send_data(), send_rejected(), send_error(),
8766         send_ok(), send_begin() and send_cancel().
8767
8768 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8769
8770         Remove base64 encoding, replace with hex encoding. Original patch
8771         from trow@ximian.com, added error handling.
8772
8773         * dbus/dbus-string.c (_dbus_string_base64_encode)
8774         (_dbus_string_base64_decode): Remove.
8775         (_dbus_string_hex_decode): Add end_return argument so we can
8776         distinguish between OOM and invalid hex encoding.
8777         (_dbus_string_test): Remove base64 tests and add test case for
8778         invalid hex.
8779
8780         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8781         Replace base64 with hex.
8782
8783         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8784         for invalid hex encoded data in auth protocol.
8785
8786 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8787
8788         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8789         leak.
8790
8791 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8792
8793         * mono/dbus-sharp.dll.config.in: Added for GAC
8794         * mono/dbus-sharp.snk: Added for GAC
8795         * mono/Assembly.cs.in: Added for GAC
8796         * mono/Makefile.am: Changes for GAC installation        
8797         * configure.in: Added refs for dbus-sharp.dll.config.in and
8798         Assembly.cs.in. More fixes for mono testing
8799         * mono/example/Makefile.am: Changed var to CSC
8800         * Makefile.am: Changed flag name to DBUS_USE_CSC
8801
8802 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8803
8804         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8805         * mono/doc/*: Added documentation framework
8806         * configure.in: Added monodoc check
8807         * README: Added description of mono configure flags
8808
8809 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8810
8811         * doc/dbus-specification.xml: Added a "Required" column to the 
8812         header fields table and changed the "zero or more" verbage in
8813         the above paragraph to read "The header must contain the required 
8814         named header fields and zero or more of the optional named header 
8815         fields".
8816         * test/data/invalid-messages/*.message: Added the required PATH 
8817         named header field to the tests so that they don't fail on 
8818         'Missing path field'
8819
8820 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8821
8822         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8823         the stack by implicitly defining variable and parameter types and
8824         removing the hack of defining C pointers as python objects and later
8825         casting them.
8826
8827 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8828
8829         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8830
8831 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8832
8833         * mono/DBusType/Dict.cs: Handle empty dicts
8834         * mono/DBusType/Array.cs: Handle empty arrays
8835         * mono/Arguments.cs: Handle empty arguments
8836
8837 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8838
8839         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8840         field
8841
8842 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8843
8844         * test/data/valid-messages/standard-*.message: Update message
8845         test scripts to new header field names.
8846
8847 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8848
8849         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8850         overflow to times_we_did_each_thing array which would chop off the
8851         first character of the failure_dir string. Increased the size of
8852         the array to 7 to reflect the number of random mutation functions
8853         we have.
8854
8855 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8856
8857         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8858         unix_server->watch here, it is unreffed in disconnect.
8859         (_dbus_server_new_for_tcp_socket): convert NULL host to
8860         "localhost" here so we don't append NULL to address.
8861         
8862         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8863         various addresses, including tcp with no explicit host.
8864
8865 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8866
8867         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8868         fix incorrect setting of .name_offset in the HeaderField (it was
8869         off by two bytes, positioned right after the name and typecode)
8870
8871         * bus/bus.c (bus_context_new, bus_context_unref): test before
8872         calling dbus_server_free_data_slot and _dbus_user_database_unref
8873         in case of an error.
8874
8875         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8876         by libdbus-gtool.
8877
8878 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8879
8880         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8881         _dbus_poll() instead of select().
8882
8883 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8884
8885         * bus/main.c (signal_handler): Reload the configuration files
8886         on SIGHUP.
8887         (main): Set up our SIGHUP handler.
8888
8889         * bus/bus.c (struct BusContext): Store the config file, user and
8890         fork flag in the BusContext.
8891         (process_config_first_time_only): Added.  Contains the code
8892         (previously in bus_context_new) for setting up the BusContext from
8893         the BusConfigParser that should only be run the first time the
8894         config files are read.
8895         (process_config_every_time): Added.  Contains the code (previously
8896         in bus_context_new) for setting up the BusContext from the
8897         BusConfigParser that should be run every time the config files are
8898         read.
8899         (load_config): Added.  Builds a BusConfigParser from the config
8900         files and passes the resulting structure off to
8901         process_config_first_time_only (assuming this is the first time)
8902         and process_config_every_time.
8903         (bus_context_new): All of the config-related code has been moved
8904         to process_config_first_time_only and process_config_every_time.
8905         Now this function just does the non-config-related initializations
8906         and calls load_config.
8907         (bus_context_reload_config): Added.
8908
8909 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8910
8911         * bus/driver.c (bus_driver_handle_get_service_owner):
8912         implement a GetServiceOwner method.
8913         * doc/dbus-specification.xml: document it.
8914         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8915         
8916         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8917         implement, using the bus GetServiceOwner method.
8918
8919         * test/glib/test-dbus-glib.c:
8920         use dbus_gproxy_new_for_service_owner so that we can receive the
8921         signal. 
8922
8923 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8924
8925         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8926         dbus/dbus-message.c, dbus/dbus-protocol.h
8927         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8928
8929         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8930         dbus/dbus-message.c, dbus/dbus-protocol.h
8931         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8932
8933         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8934         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8935         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8936
8937         * doc/dbus-specification.xml (Header Fields Table):
8938         s/SERVICE/DESTINATION
8939         s/SENDER_SERVICE/SENDER
8940
8941
8942 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8943
8944         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8945         a few seconds.
8946
8947 2004-04-13  Michael Meeks  <michael@ximian.com>
8948
8949         * glib/dbus-gobject.c (handle_introspect): split out
8950         (introspect_properties): this.
8951         (handle_introspect): implement this.
8952
8953         * test/glib/Makefile.am: use the absolute path so the bus
8954         daemon's chdir ("/") doesn't kill us dead.
8955
8956         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8957
8958 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8959
8960         * bus/config-parser.c (struct BusConfigParser): Added
8961         included_files field.
8962         (seen_include): Added.  Checks whether or not a file has already
8963         been included by any parent BusConfigParser.
8964         (bus_config_parser_new): Copy the parent's included_files.
8965         (include_file): Track which files have been included, and fail on
8966         circular inclusions.
8967         (process_test_valid_subdir): Changed printf to report if we are
8968         testing valid or invalid conf files.
8969         (all_are_equiv): Changed printf to be a bit clearer about
8970         what we are actually doing.
8971         (bus_config_parser_test): Test invalid configuration files.
8972
8973 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8974
8975         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8976         argument.  If non-null, the newly-constructed BusConfigParser will
8977         be initialized with the parent's BusLimits instead of the default
8978         values.
8979         (include_file): When including a config file, pass in
8980         the current parser as the parent and then copy the BusLimits
8981         from the included BusConfigParser pack to the current parser.
8982         (process_test_valid_subdir): Renamed from process_test_subdir.
8983         (process_test_equiv_subdir): Added.  Walks through a directory,
8984         descending into each subdirectory and loading the config files
8985         it finds there.  If any subdirectory contains two config files
8986         that don't produce identical BusConfigParser structs, fail.
8987         For now, the BusConfigParser's BusPolicies are not compared.
8988         (bus_config_parser_test): Call both process_test_valid_subdir and
8989         process_test_equiv_subdir.
8990
8991         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8992         argument and pass it along to the call to bus_config_parser_new.
8993         Also made a few small changes to allow this code to compile.
8994
8995         * bus/config-loader-expat.c (bus_config_load): Take a parent
8996         argument and pass it along to the call to bus_config_parser_new.
8997
8998         * bus/bus.c (bus_context_new): Load the config file
8999         with a NULL parent argument.
9000
9001 2004-03-29  Michael Meeks  <michael@ximian.com>
9002
9003         * glib/dbus-gobject.c (introspect_properties): split
9004         out, fix mangled 'while' flow control.
9005         (introspect_signals): implement.
9006         (handle_introspect): update.
9007
9008 2004-03-29  Michael Meeks  <michael@ximian.com>
9009
9010         * glib/dbus-gobject.c (set_object_property): split out / 
9011         re-work, use the property type, and not the message type(!)
9012         (get_object_property): ditto.
9013
9014         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9015         (dbus_gvalue_marshal): make this code re-usable, needed
9016         for signals too, also on both proxy and server side.
9017         Re-write for more efficiency / readability.
9018
9019 2004-03-29  Michael Meeks  <michael@ximian.com>
9020
9021         * dbus/dbus-message.c
9022         (dbus_message_new_error_printf): impl.
9023
9024         * dbus/dbus-connection.c
9025         (dbus_connection_unregister_object_path): fix warning.
9026
9027         * configure.in: fix no-mono-installed situation.
9028
9029 2004-03-27  Havoc Pennington  <hp@redhat.com>
9030
9031         Patch from Timo Teräs:
9032         
9033         * tools/dbus-send.c (main): if --print-reply, assume type is
9034         method call; support boolean type args
9035         
9036         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9037         bunch of memleak and logic bugs
9038         
9039 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9040
9041         * mono/Arguments.cs:
9042         * mono/Introspector.cs:
9043         * mono/Handler.cs:
9044         * mono/InterfaceProxy.cs:
9045         * mono/Message.cs
9046         * mono/ProxyBuilder.cs:
9047         * mono/Service.cs:
9048         Added InterfaceProxy class to avoid building proxies for every
9049         object.
9050
9051         * dbus-message.h:
9052         * dbus-message.c (dbus_message_append_args_valist)
9053         (dbus_message_iter_get_object_path)
9054         (dbus_message_iter_get_object_path_array)
9055         (dbus_message_iter_append_object_path)
9056         (dbus_message_iter_append_object_path_array):
9057         Added object_path iter functions to handle OBJECT_PATH arguments
9058         
9059 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9060
9061         First checkin of mono bindings.
9062         * configure.in:
9063         * Makefile.am:
9064         Build stuff for the bindings
9065         * dbus-sharp.pc.in: Added for pkgconfig
9066         
9067 2004-03-21  Havoc Pennington  <hp@redhat.com>
9068
9069         * test/test-service.c (main): remove debug spew
9070
9071 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9072
9073         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9074         arrays
9075
9076         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9077         (dbus_message_iter_init_array_iterator)
9078         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9079         indicate whether the iterator is empty
9080
9081         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9082         warnings
9083
9084 2004-03-19  Havoc Pennington  <hp@redhat.com>
9085
9086         * NEWS: 0.21 updates
9087
9088         * configure.in: 0.21
9089
9090         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9091         
9092         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9093         you don't need pyrex to make dist
9094
9095         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9096         sources; run moc
9097         
9098 2004-03-18  Richard Hult  <richard@imendio.com>
9099
9100         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9101         (dbus_message_set_auto_activation): Add doxygen docs.
9102
9103 2004-03-16  Richard Hult  <richard@imendio.com>
9104
9105         * bus/activation.c: (bus_activation_service_created),
9106         (bus_activation_send_pending_auto_activation_messages),
9107         (bus_activation_activate_service):
9108         * bus/activation.h:
9109         * bus/dispatch.c: (bus_dispatch),
9110         (check_nonexistent_service_auto_activation),
9111         (check_service_auto_activated),
9112         (check_segfault_service_auto_activation),
9113         (check_existent_service_auto_activation), (bus_dispatch_test):
9114         * bus/driver.c: (bus_driver_handle_activate_service):
9115         * bus/services.c: (bus_registry_acquire_service):
9116         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9117         (dbus_message_get_auto_activation):
9118         * dbus/dbus-message.h:
9119         * dbus/dbus-protocol.h: Implement auto-activation.
9120         
9121         * doc/dbus-specification.xml: Add auto-activation to the spec.
9122
9123 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9124
9125         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9126         fix a bug with CUSTOM types.
9127
9128         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9129         a unit test for this bug (used to fail).
9130
9131 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9132
9133         * bus/activation.c:
9134         (babysitter_watch_callback): notify all pending activations waiting for
9135           the same exec that the activation failed.
9136         (bus_activation_activate_service): shortcut the activation if we 
9137           already waiting for the same executable to start up.
9138
9139 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9140
9141         * bus/activation.c: 
9142         - Added service file reloading. 
9143           Each service files directory is kept in an hash table in 
9144           BusActivation and each BusActivationEntry knows what .service-file it
9145           was read from. So when you try to activate a service the bus will 
9146           check if it's been updated, removed or if new .service-files has 
9147           been installed.
9148         - Test code at the bottom for the service file reloading.
9149         * bus/test-main.c: (main):
9150         * bus/test.h:
9151         - added service reloading test.
9152         * dbus/dbus-sysdeps.c: 
9153         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9154
9155 2004-03-08  Michael Meeks  <michael@ximian.com>
9156
9157         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9158         bail immediately if disconnected, to avoid busy loop.
9159
9160         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9161         cleanup cut/paste/inefficiency.
9162
9163 2004-03-01  David Zeuthen  <david@fubar.dk>
9164
9165         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9166         bug where args were used twice. This bug resulted in a segfault
9167         on a Debian/PPC system when starting the messagebus daemon. Include
9168         dbus-sysdeps.h for DBUS_VA_COPY
9169
9170         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9171
9172         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9173         appropriate va_copy implementation. From GLib
9174         
9175 2004-02-24  Joe Shaw  <joe@ximian.com>
9176
9177         * bus/services.c (bus_registry_acquire_service): We need to pass
9178         in the service name to dbus_set_error() to prevent a crash.
9179
9180 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9181
9182         * AUTHORS: Reveal my True identity.
9183
9184 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9185
9186         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9187         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9188
9189 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9190
9191         * doc/TODO: Added not about better error check of configuration files.
9192
9193 2003-12-02  Richard Hult  <richard@imendio.com>
9194
9195         * Update AFL version to 2.0 throughout the source files to reflect
9196         the update that was done a while ago.
9197
9198 2003-12-02  Richard Hult  <richard@imendio.com>
9199
9200         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9201         wrote_dict_key to FALSE on the iter that the dict is appended to,
9202         just like when appending other types. Fixes a bug where a dict
9203         couldn't be put inside a dict.
9204         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9205         (message_iter_test, _dbus_message_test): Add test case for dict
9206         inside dict.
9207
9208 2003-12-01  David Zeuthen  <david@fubar.dk>
9209
9210         * python/dbus.py: Add the actual message when calling the reciever
9211         of a signal such that parameters can be inspected. Add the method
9212         remove_signal_receiver
9213         
9214 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9215
9216         * bus/*.[ch]:
9217         * dbus/*.[ch]:
9218         * glib/*.[ch]: Made ref functions return the pointer
9219
9220 2003-11-25  Zack Rusin  <zack@kde.org>
9221
9222         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9223
9224         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9225         wrappers,
9226
9227         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9228         the Integrator and to better fit with the server,
9229
9230 2003-11-24  Zack Rusin  <zack@kde.org>
9231
9232         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9233         the integrator handles it now
9234
9235         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9236         since QTimer wasn't really meant to be used the way DBusTimeout is
9237
9238 2003-11-24  Zack Rusin  <zack@kde.org>
9239
9240         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9241         Integrator class which integrates D-BUS with the Qt event loop,
9242
9243         * qt/connection.h, qt/connection.cpp: Move all the code which
9244         was dealing with D-BUS integration to the Integrator class,
9245         and start using Integrator,
9246
9247 2003-11-23  Zack Rusin  <zack@kde.org>
9248
9249         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9250         wrapper
9251
9252         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9253         switching namespaces to DBusQt, reworking the class,
9254
9255         * Makefile.cvs: switching dependencies so that it matches KDE 
9256         schematics,
9257         
9258         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9259         the library
9260
9261 2003-11-19  Havoc Pennington  <hp@redhat.com>
9262
9263         * NEWS: update
9264
9265         * configure.in: bump version to 0.20
9266
9267         * configure.in (have_qt): add yet another place to look for qt
9268         (someone hand trolltech a .pc file...)
9269
9270 2003-11-01  Havoc Pennington  <hp@redhat.com>
9271
9272         * doc/dbus-specification.xml: add state machine docs on the auth
9273         protocol; just a first draft, I'm sure it's wrong.      
9274
9275 2003-10-28  David Zeuthen  <david@fubar.dk>
9276
9277         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9278         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9279         
9280 2003-10-28  Havoc Pennington  <hp@redhat.com>
9281
9282         * dbus/dbus-message.c (get_next_field): delete unused function
9283
9284 2003-10-28  Havoc Pennington  <hp@redhat.com>
9285
9286         * bus/expirelist.c (do_expiration_with_current_time): detect
9287         failure of the expire_func due to OOM
9288
9289         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9290
9291         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9292         NoReply error that's now created by the bus when the service exits
9293
9294 2003-10-28  Havoc Pennington  <hp@redhat.com>
9295
9296         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9297         tests for set_path, set_interface, set_member, etc.
9298
9299         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9300
9301         * dbus/dbus-message.c (set_string_field): always just delete and
9302         re-append the field; accept NULL for deletion
9303         (re_align_fields_recurse): reimplement
9304         
9305 2003-10-26  Havoc Pennington  <hp@redhat.com>
9306
9307         * dbus/dbus-connection.c: fix docs to properly describe the
9308         disconnected message
9309         (_dbus_connection_notify_disconnected): remove this function; 
9310         we can't synchronously add the disconnected message, we have to 
9311         do it after we've queued any remaining real messages
9312         (_dbus_connection_get_dispatch_status_unlocked): queue the
9313         disconnect message only if the transport has finished queueing all
9314         its real messages and is disconnected.
9315         (dbus_connection_disconnect): update the dispatch status here
9316
9317 2003-10-22  Havoc Pennington  <hp@redhat.com>
9318
9319         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9320
9321         * bus/connection.c (bus_transaction_send_from_driver): set the
9322         destination to the connection's base service
9323
9324 2003-10-20  Havoc Pennington  <hp@redhat.com>
9325
9326         hmm, make check is currently not passing.
9327         
9328         * doc/dbus-specification.xml: add requirement that custom type
9329         names follow the same rules as interface names.
9330
9331         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9332         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9333         'map'
9334
9335         * doc/dbus-specification.xml: update type codes to match
9336         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9337         CUSTOM. Add type OBJECT_PATH to the spec.
9338
9339 2003-10-17  Havoc Pennington  <hp@redhat.com>
9340
9341         * bus/driver.c (create_unique_client_name): use "." as separator
9342         in base service names instead of '-'
9343
9344         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9345         byte at the end of the string
9346
9347         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9348         optimization macros since string validation seems to be a slow
9349         point.
9350         
9351         * doc/dbus-specification.xml: restrict valid
9352         service/interface/member/error names. Add test suite code for the
9353         name validation.
9354
9355         * dbus/dbus-string.c: limit service/interface/member/error names 
9356         to [0-9][A-Z][a-z]_
9357
9358         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9359         format arg to verbose spew
9360
9361         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9362         memory, return instead of g_error
9363
9364         * test/test-service.c (path_message_func): support emitting a
9365         signal on request
9366
9367         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9368         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9369         assuming the activation bus was the session bus so that services
9370         started manually will still register.
9371         (init_connections_unlocked): fix so that in OOM situation we get
9372         the same semantics when retrying the function
9373         
9374         * test/test-service.c (main): change to use path registration, to
9375         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9376         than DBUS_BUS_SESSION
9377
9378 2003-10-16  Havoc Pennington  <hp@redhat.com>
9379
9380         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9381
9382         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9383         coverage of the tests
9384         (coverage-report.txt): don't move the .da and .bbg files around
9385
9386 2003-10-16  Havoc Pennington  <hp@redhat.com>
9387
9388         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9389         to put there
9390
9391 2003-10-16  Havoc Pennington  <hp@redhat.com>
9392
9393         * bus/connection.c (bus_pending_reply_expired): either cancel or
9394         execute, not both
9395         (bus_connections_check_reply): use unlink, not remove_link, as we
9396         don't want to free the link; fixes double free mess
9397
9398         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9399         where no reply was received
9400
9401         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9402         fix a refcount leak
9403
9404         * bus/signals.c (match_rule_matches): add special cases for the
9405         bus driver, so you can match on sender/destination for it.
9406
9407         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9408         DBUS_PRINT_BACKTRACE is set
9409
9410         * dbus/dbus-internals.c: add pid to assertion failure messages
9411
9412         * dbus/dbus-connection.c: add message type code to the debug spew
9413
9414         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9415         sender=foo not service=foo
9416
9417         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9418         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9419         DBUS_ACTIVATION_ADDRESS instead
9420
9421         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9422         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9423
9424         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9425         context struct
9426
9427         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9428         (dbus_message_iter_get_object_path_array): new function (half
9429         finished, disabled for the moment)
9430         
9431         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9432         DBUS_MESSAGE_TYPE_ERROR
9433
9434         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9435         avoid redirecting stderr to /dev/null
9436         (babysit): close stdin if not doing the "exit_with_session" thing
9437
9438         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9439         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9440         stdout/stdin, so things don't get confused
9441         
9442         * bus/system.conf.in: fix to allow replies, I modified .conf
9443         instead of .conf.in again.
9444
9445 2003-10-14  David Zeuthen  <david@fubar.dk>
9446
9447         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9448         argtype to arg_type when raising unknown arg type exception.
9449         Changed type list to reflect the changes in dbus-protocol.h so 
9450         the bindings actually work.
9451
9452 2003-10-14  Havoc Pennington  <hp@redhat.com>
9453
9454         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9455         to have a bug keeping it from outputting the .da files sometimes
9456         (string_get_string): don't append garbage nul bytes to the string.
9457
9458 2003-10-15  Seth Nickell  <seth@gnome.org>
9459
9460         * python/Makefile.am:
9461
9462         Include dbus_h_wrapper.h in the dist tarball.
9463
9464 2003-10-14  Havoc Pennington  <hp@redhat.com>
9465
9466         * bus/bus.c (bus_context_check_security_policy): revamp this to
9467         work more sanely with new policy-based requested reply setup
9468
9469         * bus/connection.c (bus_transaction_send_from_driver): set bus
9470         driver messages as no reply
9471
9472         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9473         requested_reply attribute on allow/deny rules
9474
9475         * bus/system.conf: add <allow requested_reply="true"/>
9476
9477         * bus/driver.c (bus_driver_handle_message): fix check for replies
9478         sent to the bus driver, which was backward. How did this ever work
9479         at all though? I think I'm missing something.
9480
9481         * dbus/dbus-message.c (decode_header_data): require error and
9482         method return messages to have a reply serial field to be valid
9483         (_dbus_message_loader_queue_messages): break up this function;
9484         validate that reply serial and plain serial are nonzero; 
9485         clean up the OOM/error handling.
9486         (get_uint_field): don't return -1 from this
9487         (dbus_message_create_header): fix signed/unsigned bug
9488
9489         * bus/connection.c (bus_connections_expect_reply): save serial of
9490         the incoming message, not reply serial
9491
9492 2003-10-14  Havoc Pennington  <hp@redhat.com>
9493
9494         * bus/connection.c: implement pending reply tracking using
9495         BusExpireList
9496
9497         * bus/bus.c (bus_context_check_security_policy): verify that a
9498         reply is pending in order to allow a reply to be sent. Deny 
9499         messages of unknown type.
9500
9501         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9502
9503         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9504         (bus_context_get_reply_timeout): new
9505
9506 2003-10-13  Seth Nickell  <seth@gnome.org>
9507
9508         * python/Makefile.am:
9509
9510         Pass "make distcheck": remove a couple files from DIST_FILES
9511         that weren't included in the final version.
9512
9513 2003-10-12  Havoc Pennington  <hp@pobox.com>
9514
9515         Added test code that 1) starts an actual bus daemon and 2) uses
9516         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9517         more testing possible, but this is the basic framework.
9518         
9519         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9520         empty proxy lists from the proxy list hash
9521
9522         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9523         couple of return_if_fail checks
9524
9525         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9526         to allocate, so everything is cleared to NULL as it should be.
9527
9528         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9529         source as data to dbus_connection_set_timeout_functions() as the 
9530         timeout functions expected
9531
9532         * test/glib/run-test.sh: add a little script to start up a message
9533         bus and run tests using it
9534
9535         * tools/dbus-launch.1: updates
9536
9537         * tools/dbus-launch.c (main): add --config-file option
9538
9539         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9540         that could never be reached.
9541
9542         * dbus/dbus-message.c (dbus_message_new_method_return) 
9543         (dbus_message_new_error, dbus_message_new_signal): set the
9544         no-reply-expected flag on all these. Redundant, but may
9545         as well be consistent.
9546
9547 2003-10-11  Havoc Pennington  <hp@pobox.com>
9548
9549         * test/decode-gcov.c (function_solve_graph): make broken block
9550         graph a nonfatal error since it seems to be broken. Need to debug
9551         this.
9552
9553         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9554         can't just check type > INVALID < LAST anymore
9555
9556         * dbus/dbus-message.c (dbus_message_get_signature): new function
9557         (dbus_message_has_signature): new function
9558         (struct DBusMessage): add signature field (right now it isn't sent
9559         over the wire, just generated on the fly)
9560         (dbus_message_copy): copy the signature, and init strings to
9561         proper length to avoid some reallocs
9562         (dbus_message_iter_init_array_iterator): return void, since it
9563         can't fail
9564         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9565         (_dbus_message_loader_queue_messages): add silly temporary hack to
9566         fill in message->signature on load
9567
9568         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9569         characters, so they are relatively human-readable.
9570
9571 2003-10-11  Havoc Pennington  <hp@pobox.com>
9572
9573         * dbus/dbus-message.c (_dbus_message_test): add more test
9574         coverage, but #if 0 for now since they uncover a bug 
9575         not fixed yet; I think in re_align_field_recurse()
9576         (re_align_field_recurse): add FIXME about broken assertion
9577
9578         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9579
9580         * bus/connection.c: share a couple code bits with expirelist.c
9581
9582         * bus/expirelist.h, bus/expirelist.c: implement a generic
9583         expire-items-after-N-seconds facility, was going to share between
9584         expiring connections and replies, decided not to use for expiring
9585         connections for now.
9586
9587         * COPYING: include AFL 2.0 (still need to change all the file headers)
9588
9589 2003-10-09  Havoc Pennington  <hp@redhat.com>
9590
9591         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9592         gcc 3.3. Not that we do anything about it yet.
9593
9594         * bus/signals.c (bus_match_rule_parse): impose max length on the
9595         match rule text
9596
9597         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9598
9599 2003-10-09  Havoc Pennington  <hp@redhat.com>
9600
9601         Make matching rules theoretically work (add parser).
9602         
9603         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9604         the case where destination is explicitly specified as bus driver
9605         and someone else is eavesdropping.
9606         
9607         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9608         definition of eavesdropping and assertion
9609
9610         * tools/dbus-send.c (main): use dbus_message_type_from_string
9611
9612         * bus/signals.c (bus_match_rule_parse): implement
9613
9614         * dbus/dbus-message.c (dbus_message_type_from_string): new
9615
9616         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9617
9618 2003-10-02  Havoc Pennington  <hp@pobox.com>
9619
9620         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9621         dbus_gproxy_oneway_call
9622
9623         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9624         (dbus_server_setup_with_g_main): fix to allow calling them more
9625         than once on the same args
9626         (dbus_bus_get_with_g_main): new function
9627
9628 2003-10-02  Havoc Pennington  <hp@redhat.com>
9629
9630         * doc/dbus-tutorial.xml: write some stuff
9631
9632 2003-09-29  Havoc Pennington  <hp@pobox.com>
9633
9634         * configure.in: split checks for Doxygen from XML docs, check for
9635         xmlto
9636
9637         * doc/Makefile.am: XML-ify all the docs, and add a blank
9638         dbus-tutorial.xml
9639
9640 2003-09-29  Havoc Pennington  <hp@pobox.com>
9641
9642         * Merge dbus-object-names branch. To see the entire patch 
9643         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9644         it's huuuuge though.
9645         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9646         
9647 2003-09-28  Havoc Pennington  <hp@pobox.com>
9648
9649         * HACKING: update to reflect new server
9650
9651 2003-09-26  Seth Nickell  <seth@gnome.org>
9652
9653         * python/dbus.py:
9654         * python/examples/example-signals.py:
9655
9656         Start implementing some notions of signals. The API
9657         is really terrible, but they sort of work (with the
9658         exception of being able to filter by service, and to
9659         transmit signals *as* a particular service). Need to
9660         figure out how to make messages come from the service
9661         we registered :-(
9662         
9663         * python/dbus_bindings.pyx.in:
9664
9665         Removed duplicate message_handler callbacks.
9666         
9667 2003-09-25  Havoc Pennington  <hp@redhat.com>
9668
9669         * bus/session.conf.in: fix my mess
9670
9671 2003-09-25  Havoc Pennington  <hp@pobox.com>
9672
9673         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9674
9675 2003-09-25  Seth Nickell  <seth@gnome.org>
9676
9677         * python/examples/example-service.py:
9678
9679         Johan notices complete wrong code in example-service, but
9680         completely wrong in a way that works exactly the same (!).
9681         Johan is confused, how could this possibly work? Example
9682         code fails to serve purpose of making things clear.
9683         Seth fixes.
9684
9685 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9686
9687         * doc/dbus-specification.sgml: don't require header fields
9688         to be 4-byte aligned and specify that fields should be
9689         distinguished from padding by the fact that zero is not
9690         a valid field name.
9691         
9692         * doc/TODO: remove re-alignment item and add item to doc
9693         the OBJECT_PATH type.
9694         
9695         * dbus/dbus-message.c:
9696         (HeaderField): rename the original member to value_offset
9697         and introduce a name_offset member to keep track of where
9698         the field actually begins.
9699         (adjust_field_offsets): remove.
9700         (append_int_field), (append_uint_field),
9701         (append_string_field): don't align the start of the header
9702         field to a 4-byte boundary.
9703         (get_next_field): impl finding the next marhsalled field
9704         after a given field.
9705         (re_align_field_recurse): impl re-aligning a number of
9706         already marshalled fields.
9707         (delete_field): impl deleting a field of any type and
9708         re-aligning any following fields.
9709         (delete_int_or_uint_field), (delete_string_field): remove.
9710         (set_int_field), (set_uint_field): no need to re-check
9711         that we have the correct type for the field.
9712         (set_string_field): ditto and impl re-aligning any
9713         following fields.
9714         (decode_header_data): update to take into account that
9715         the fields aren't 4-byte aligned any more and the new
9716         way to distinguish padding from header fields. Also,
9717         don't exit when there is too much header padding.
9718         (process_test_subdir): print the directory.
9719         (_dbus_message_test): add test to make sure a following
9720         field is re-aligned correctly after field deletion.
9721         
9722         * dbus/dbus-string.[ch]:
9723         (_dbus_string_insert_bytes): rename from insert_byte and
9724         allow the insert of multiple bytes.
9725         (_dbus_string_test): test inserting multiple bytes.
9726
9727         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9728         warning note to docs about having to re-align any
9729         marshalled values following the string.
9730         
9731         * dbus/dbus-message-builder.c:
9732         (append_string_field), (_dbus_message_data_load):
9733         don't align the header field.
9734         
9735         * dbus/dbus-auth.c: (process_test_subdir): print the
9736         directory.
9737         
9738         * test/break-loader.c: (randomly_add_one_byte): upd. for
9739         insert_byte change.
9740         
9741         * test/data/invalid-messages/bad-header-field-alignment.message:
9742         new test case.
9743         
9744         * test/data/valid-messages/unknown-header-field.message: shove
9745         a dict in the unknown field.
9746
9747 2003-09-25  Seth Nickell  <seth@gnome.org>
9748
9749         * python/dbus.py:
9750         * python/dbus_bindings.pyx.in:
9751
9752         Handle return values.
9753         
9754         * python/examples/example-client.py:
9755         * python/examples/example-service.py:
9756
9757         Pass back return values from the service to the client.
9758         
9759 2003-09-24  Seth Nickell  <seth@gnome.org>
9760
9761         * python/dbus.py:
9762
9763         Connect Object methods (when you are sharing an object) up... pass
9764         in a list of methods to be shared. Sharing all the methods just
9765         worked out too weird. You can now create nice Services over the
9766         DBus in Python. :-)
9767         
9768         * python/dbus_bindings.pyx.in:
9769
9770         Keep references to user_data tuples passed into C functions so 
9771         Python doesn't garbage collect on us.
9772
9773         Implement MethodReturn and Error subclasses of Message for creating
9774         DBusMessage's of those types.
9775         
9776         * python/examples/example-client.py:
9777         * python/examples/example-service.py:
9778
9779         Simple example code showing both how create DBus services and objects,
9780         and how to use them.
9781
9782 2003-09-23  Havoc Pennington  <hp@pobox.com>
9783
9784         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9785
9786 2003-09-23  Havoc Pennington  <hp@redhat.com>
9787
9788         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9789         (dbus_gproxy_disconnect_signal): implement
9790         (dbus_gproxy_manager_remove_signal_match): implement
9791         (dbus_gproxy_manager_add_signal_match): implement
9792         (dbus_gproxy_oneway_call): implement
9793
9794 2003-09-23  Havoc Pennington  <hp@pobox.com>
9795
9796         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9797         subclass. This means dropping the transparent thread safety of the
9798         proxy; you now need a separate proxy per-thread, or your own
9799         locking on the proxy. Probably right anyway.
9800         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9801
9802 2003-09-22  Havoc Pennington  <hp@redhat.com>
9803
9804         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9805
9806 2003-09-21  Seth Nickell  <seth@gnome.org>
9807
9808         First checkin of the Python bindings.
9809         
9810         * python/.cvsignore:
9811         * python/Makefile.am:
9812         * python/dbus_bindings.pyx.in:
9813         * python/dbus_h_wrapper.h:
9814
9815         Pieces for Pyrex to operate on, building a dbus_bindings.so
9816         python module for low-level access to the DBus APIs.
9817         
9818         * python/dbus.py:
9819
9820         High-level Python module for accessing DBus objects.
9821
9822         * configure.in:
9823         * Makefile.am:
9824
9825         Build stuff for the python bindings.
9826
9827         * acinclude.m4:
9828
9829         Extra macro needed for finding the Python C header files.
9830
9831 2003-09-21  Havoc Pennington  <hp@pobox.com>
9832
9833         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9834         implementing the proxy manager, didn't get very far.
9835
9836         * dbus/dbus-bus.c (dbus_bus_add_match): new
9837         (dbus_bus_remove_match): new
9838
9839         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9840         path_name argument; adjust the other not-yet-implemented 
9841         gproxy constructors to be what I think they should be.
9842
9843 2003-09-21  Havoc Pennington  <hp@pobox.com>
9844
9845         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9846         by default for message bus connections.
9847
9848         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9849         exit_on_disconnect flag is set and we process the disconnected
9850         signal.
9851         (dbus_connection_set_exit_on_disconnect): new function
9852
9853 2003-09-21  Havoc Pennington  <hp@pobox.com>
9854
9855         Get matching rules mostly working in the bus; only actually
9856         parsing the rule text remains. However, the client side of
9857         "signal connections" hasn't been started, this patch is only the
9858         bus side.
9859         
9860         * dbus/dispatch.c: fix for the matching rules changes
9861         
9862         * bus/driver.c (bus_driver_handle_remove_match)
9863         (bus_driver_handle_add_match): send an ack reply from these
9864         method calls
9865
9866         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9867         arguments, reported by Seth Nickell
9868
9869         * bus/config-parser.c (append_rule_from_element): support
9870         eavesdrop=true|false attribute on policies so match rules 
9871         can be prevented from snooping on the system bus.
9872
9873         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9874         and "destination" in attribute names; fix some docs bugs; 
9875         add eavesdrop=true|false attribute
9876
9877         * bus/driver.c (bus_driver_handle_add_match)
9878         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9879         messages
9880
9881         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9882         rid of broadcast service concept, signals are just always broadcast
9883
9884         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9885         mostly implement matching rules stuff (currently only exposed as signal
9886         connections)
9887
9888 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9889
9890         * doc/dbus-specification.sgml: Change the header field name
9891         to be an enum and update the rest of the spec to reference
9892         the fields using the conventinal name.
9893
9894         * dbus/dbus-protocol.h: update to reflect the spec.
9895
9896         * doc/TODO: add item to remove the 4 byte alignment requirement.
9897         
9898         * dbus/dbus-message.c: Remove the code to generalise the
9899         header/body length and serial number header fields as named
9900         header fields so we can reference field names using the 
9901         protocol values.
9902         (append_int_field), (append_uint_field), (append_string_field):
9903         Append the field name as a byte rather than four chars.
9904         (delete_int_or_uint_field), (delete_string_field): reflect the
9905         fact that the field name and typecode now occupy 4 bytes instead
9906         of 8.
9907         (decode_string_field), (decode_header_data): update to reflect
9908         protocol changes and move the field specific encoding from
9909         decode_string_field() back into decode_header_data().
9910         
9911         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9912         Add utility to aid debugging.
9913         
9914         * dbus/dbus-message-builder.c:
9915         (append_string_field), (_dbus_message_data_load): Update to
9916         reflect protocol changes; Change the FIELD_NAME directive
9917         to HEADER_FIELD and allow it to take the field's conventional
9918         name rather than the actual value.
9919         
9920         * test/data/*/*.message: Update to use HEADER_FIELD instead
9921         of FIELD_NAME; Always align the header on an 8 byte boundary
9922         *before* updating the header length.
9923
9924 2003-09-15  Havoc Pennington  <hp@pobox.com>
9925
9926         * dbus/dbus-pending-call.c: add the get/set object data
9927         boilerplate as for DBusConnection, etc. Use generic object data
9928         for the notify callback.
9929
9930         * glib/dbus-gparser.c (parse_node): parse child nodes
9931
9932         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9933         
9934         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9935         contain functions shared between the convenience lib and the
9936         installed lib
9937
9938         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9939         -export-symbols-regex to the GLib library
9940
9941         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9942         fix the locking in here, and add a default handler for
9943         Introspect() that just returns sub-nodes.
9944
9945 2003-09-14  Havoc Pennington  <hp@pobox.com>
9946
9947         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9948         rather than gfoo consistent
9949
9950         * glib/dbus-gproxy.h: delete for now, move contents to
9951         dbus-glib.h, because the include files don't work right since we
9952         aren't in the dbus/ subdir.
9953         
9954         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9955         (dbus_gproxy_end_call): finish
9956         (dbus_gproxy_begin_call): finish
9957
9958         * glib/dbus-gmain.c (dbus_set_g_error): new
9959
9960         * glib/dbus-gobject.c (handle_introspect): include information
9961         about child nodes in the introspection
9962
9963         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9964         function to help in implementation of introspection
9965
9966         * dbus/dbus-object-tree.c
9967         (_dbus_object_tree_list_registered_and_unlock): new function
9968
9969 2003-09-12  Havoc Pennington  <hp@pobox.com>
9970
9971         * glib/dbus-gidl.h: add common base class for all the foo_info
9972         types
9973
9974         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9975         similar to kdcop
9976
9977         * test/Makefile.am: try test srcdir -ef . in addition to test
9978         srcdir = ., one of them should work (yeah lame)
9979         
9980         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9981         library
9982         
9983         * glib/dbus-gparser.h: make description_load routines return
9984         NodeInfo* not Parser*
9985
9986         * Makefile.am (SUBDIRS): build test dir after all library dirs
9987
9988         * configure.in: add GTK+ detection
9989
9990 2003-09-07  Havoc Pennington  <hp@pobox.com>
9991
9992         * Make Doxygen contented.
9993
9994 2003-09-07  Havoc Pennington  <hp@pobox.com>
9995
9996         * doc/dbus-specification.sgml: more updates
9997
9998 2003-09-06  Havoc Pennington  <hp@pobox.com>
9999
10000         * doc/dbus-specification.sgml: partial updates
10001
10002         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10003         zillionth time; hopefully I edited the right file this time.
10004
10005         * bus/config-parser.c (append_rule_from_element): support
10006         send_type, send_path, receive_type, receive_path
10007
10008         * bus/policy.c: add message type and path to the list of things
10009         that can be "firewalled"
10010
10011 2003-09-06  Havoc Pennington  <hp@pobox.com>
10012
10013         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10014         (dbus_connection_register_object_path): make this not handle
10015         messages to paths below the given path
10016
10017 2003-09-03  Havoc Pennington  <hp@pobox.com>
10018
10019         * test/glib/Makefile.am: add this with random glib-linked test
10020         programs
10021
10022         * glib/Makefile.am: remove the random test programs from here,
10023         leave only the unit tests
10024
10025         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10026         uscore/javacaps conversion, and fix     
10027         (get_object_property, set_object_property): change to .NET
10028         convention for mapping props to methods, set_FooBar/get_FooBar, 
10029         since one language has such a convention we may as well copy it. 
10030         Plus real methods in either getFooBar or get_foo_bar style won't 
10031         collide with this convention.
10032
10033 2003-09-01  Havoc Pennington  <hp@pobox.com>
10034
10035         * glib/dbus-gparser.c: implement
10036
10037         * glib/dbus-gobject.c: start implementing skeletons support
10038
10039         * configure.in: when disabling checks/assert, also define
10040         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10041
10042 2003-09-01  Havoc Pennington  <hp@pobox.com>
10043
10044         * glib/Makefile.am: rearrange a bunch of files and get "make
10045         check" framework set up
10046
10047 2003-08-31  Havoc Pennington  <hp@pobox.com>
10048
10049         * fix build with --disable-tests
10050
10051 2003-08-30  Havoc Pennington  <hp@pobox.com>
10052
10053         * dbus/dbus-connection.c: purge DBusMessageHandler
10054
10055         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10056         use callbacks everywhere
10057
10058 2003-08-30  Havoc Pennington  <hp@pobox.com>
10059
10060         * test/data/valid-config-files/system.d/test.conf: change to 
10061         root for the user so warnings don't get printed
10062
10063         * dbus/dbus-message.c: add dbus_message_get_path,
10064         dbus_message_set_path
10065         
10066         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10067         dispatching to a path
10068
10069         * dbus/dbus-string.c (_dbus_string_validate_path): add
10070
10071         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10072         (_dbus_marshal_object_path): implement
10073
10074         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10075         to contain the path to the target object
10076         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10077         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10078
10079 2003-08-30  Havoc Pennington  <hp@pobox.com>
10080
10081         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10082
10083 2003-08-29  Havoc Pennington  <hp@pobox.com>
10084
10085         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10086         registered
10087         (struct DBusObjectSubtree): shrink this
10088         a lot, since we may have a lot of them
10089         (_dbus_object_tree_free_all_unlocked): implement
10090         (_dbus_object_tree_dispatch_and_unlock): implement
10091
10092 2003-08-29  Havoc Pennington  <hp@pobox.com>
10093
10094         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10095
10096 2003-08-28  Havoc Pennington  <hp@pobox.com>
10097
10098         purge DBusObjectID
10099         
10100         * dbus/dbus-connection.c: port to no ObjectID, create a
10101         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10102
10103         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10104         everything except UnregisterFunction and MessageFunction
10105         
10106         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10107         add DBUS_TYPE_OBJECT_PATH
10108         
10109         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10110         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10111         path-based object IDs
10112
10113 2003-08-25  Havoc Pennington  <hp@pobox.com>
10114
10115         Just noticed that dbus_message_test is hosed, I wonder when I
10116         broke that. I thought make check was passing earlier...
10117         
10118         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10119         container tree, will replace most of dbus-object-registry
10120
10121         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10122         screwup
10123
10124 2003-08-19  Havoc Pennington  <hp@pobox.com>
10125
10126         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10127         (dbus_message_is_error): fix this function
10128
10129         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10130         match
10131
10132         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10133         reflect clarified man page
10134         (bus_client_policy_check_can_send): ditto
10135         
10136         * bus/session.conf.in: fixup
10137
10138         * bus/system.conf.in: fixup
10139
10140 2003-08-18  Havoc Pennington  <hp@redhat.com>
10141
10142         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10143
10144         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10145         dumb bug created earlier (wrong order of args to
10146         decode_header_data())
10147         
10148         * tools/dbus-send.c: port
10149
10150         * tools/dbus-print-message.c (print_message): port
10151
10152         * test/data/*messages: port all messages over
10153         
10154         * dbus/dbus-message-builder.c: support including 
10155         message type
10156         
10157         * bus/driver.c: port over
10158         
10159         * bus/dispatch.c: port over to new stuff
10160
10161         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10162         rename disconnect signal to "Disconnected"
10163
10164 2003-08-17  Havoc Pennington  <hp@pobox.com>
10165
10166         This doesn't compile yet, but syncing up so I can hack on it from
10167         work. What are branches for if not broken code? ;-)
10168         
10169         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10170         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10171         DBUS_HEADER_FIELD_ERROR_NAME
10172         
10173         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10174         for the interface+member pairs
10175         (string_hash): change to use g_str_hash algorithm
10176         (find_direct_function, find_string_function): refactor these to
10177         share most code.
10178         
10179         * dbus/dbus-message.c: port all of this over to support 
10180         interface/member fields instead of name field
10181
10182         * dbus/dbus-object-registry.c: port over
10183         
10184         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10185         from _dbus_string_validate_name
10186
10187         * bus/dbus-daemon-1.1: change file format for the 
10188         <deny>/<allow> stuff to match new message naming scheme
10189
10190         * bus/policy.c: port over
10191
10192         * bus/config-parser.c: parse new format
10193         
10194 2003-08-16  Havoc Pennington  <hp@pobox.com>
10195
10196         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10197         broken assertion
10198
10199         * glib/dbus-gproxy.c: some hacking
10200
10201 2003-08-15  Havoc Pennington  <hp@redhat.com>
10202
10203         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10204
10205         * dbus/dbus-connection.c
10206         (dbus_connection_send_with_reply_and_block): factor out internals;
10207         change to convert any error replies to DBusError instead of 
10208         returning them as a message
10209
10210 2003-08-15  Havoc Pennington  <hp@pobox.com>
10211
10212         * dbus/dbus-connection.c, 
10213         dbus/dbus-pending-call.c: Finish the pending call stuff
10214
10215 2003-08-14  Havoc Pennington  <hp@redhat.com>
10216
10217         * dbus/dbus-pending-call.c: start on new object that will replace
10218         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10219         replies
10220
10221         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10222         with remote interfaces
10223
10224         * dbus/dbus-gidl.c: do the boring boilerplate in here
10225         
10226 2003-08-12  Havoc Pennington  <hp@pobox.com>
10227
10228         * bus/dispatch.c (bus_dispatch): make this return proper 
10229         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10230
10231         * dbus/dbus-errors.c (dbus_set_error): use
10232         _dbus_string_append_printf_valist
10233
10234         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10235         (_dbus_string_append_printf): new
10236
10237         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10238         UNKNOWN_METHOD
10239
10240         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10241         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10242         message is unhandled.
10243
10244 2003-08-11  Havoc Pennington  <hp@pobox.com>
10245
10246         * bus/test.c (client_disconnect_handler): change to return
10247         HANDLED (would have been REMOVE_MESSAGE)
10248
10249         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10250         HANDLED/NOT_YET_HANDLED instead of
10251         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10252         should be used.
10253
10254 2003-08-10  Havoc Pennington  <hp@pobox.com>
10255
10256         * tools/dbus-send.c (main): add --type argument, for now
10257         supporting only method_call and signal types.
10258
10259         * tools/dbus-print-message.c: print message type
10260
10261         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10262         init connection->objects
10263
10264         * doc/dbus-specification.sgml: fix sgml
10265
10266         * bus/*.c: port over to object-instance API changes
10267
10268         * test/test-service.c: ditto
10269         
10270         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10271         name, we will have to fix up the rest of the code to also handle
10272         this
10273         (dbus_message_new): generic message-creation call
10274         (set_string_field): allow appending name field
10275
10276 2003-08-06  Havoc Pennington  <hp@pobox.com>
10277
10278         * dbus/dbus-object-registry.c: implement signal connection 
10279         and dispatch
10280
10281         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10282
10283         * dbus/dbus-internals.c (_dbus_memdup): new function
10284
10285 2003-08-02  Havoc Pennington  <hp@pobox.com>
10286
10287         * dbus/dbus-message.c (dbus_message_get_no_reply)
10288         (dbus_message_set_no_reply): add these and remove
10289         set_is_error/get_is_error
10290
10291         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10292         remove the ERROR flag, since there's now an ERROR type
10293
10294 2003-08-01  Havoc Pennington  <hp@pobox.com>
10295
10296         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10297         implement
10298
10299         * dbus/dbus-message.c (dbus_message_get_type): new function
10300
10301         * doc/dbus-specification.sgml: add "type" byte to messages
10302
10303 2003-08-01  Havoc Pennington  <hp@pobox.com>
10304
10305         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10306         a message type enum to distinguish kinds of message
10307         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10308         that need not be replied to
10309
10310 2003-08-01  Havoc Pennington  <hp@pobox.com>
10311
10312         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10313         (unpack_8_octets): fix no-64-bit-int bug
10314
10315         * dbus/dbus-object-registry.c (validate_id): validate the 
10316         connection ID bits, not just the instance ID.
10317
10318         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10319         the connection-global 33 bits of the object ID
10320
10321         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10322         object ID in the new way
10323
10324         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10325         define server/client/instance bits.
10326
10327 2003-07-30  Havoc Pennington  <hp@pobox.com>
10328
10329         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10330         build
10331
10332 2003-07-13  Havoc Pennington  <hp@pobox.com>
10333
10334         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10335         fields to DBusObjectVTable and DBusObjectInfo
10336
10337 2003-07-12  Havoc Pennington  <hp@pobox.com>
10338
10339         * dbus/dbus-object-registry.c: implement unit test,
10340         fix bugs discovered in process
10341
10342         * dbus/dbus-connection.c: remove handler_table and
10343         register_handler(), add DBusObjectRegistry usage
10344
10345         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10346         (dbus_object_id_set_null): new functions
10347
10348 2003-07-08  Havoc Pennington  <hp@pobox.com>
10349
10350         * dbus/dbus-object.c: implement some of this
10351
10352         * dbus/dbus-object-registry.c
10353         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10354         param
10355         (_dbus_object_registry_new): handle OOM
10356
10357 2003-07-08  Havoc Pennington  <hp@pobox.com>
10358
10359         * dbus/dbus-object.h: sketch out an API for registering objects
10360         with a connection, that allows us to use as little as 24 bytes
10361         per object and lets application code represent an object in 
10362         any conceivable way.
10363
10364         * dbus/dbus-object-registry.c: implement the hard bits of the
10365         DBusConnection aspect of object API. Not yet wired up.
10366         
10367 2003-07-06  Havoc Pennington  <hp@pobox.com>
10368
10369         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10370         (_dbus_marshal_object_id): new
10371         (_dbus_demarshal_object_id): new
10372         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10373         consolidate identical switch cases. Don't conditionalize handling
10374         of DBUS_TYPE_UINT64, need to handle the type always.
10375         (_dbus_marshal_validate_arg): consolidate identical cases, and
10376         handle DBUS_TYPE_OBJECT_ID
10377
10378         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10379
10380         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10381
10382 2003-09-28  Havoc Pennington  <hp@pobox.com>
10383
10384         * real 0.13 release
10385
10386 2003-09-28  Havoc Pennington  <hp@pobox.com>
10387
10388         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10389         to work with Debian db2html
10390
10391 2003-09-28  Havoc Pennington  <hp@pobox.com>
10392
10393         * configure.in: 0.13
10394
10395         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10396         stylesheet-images for benefit of Debian
10397         
10398         Change back to using filesystem-linked sockets for the system
10399         bus, so only root can create the default system bus address.
10400         
10401         * bus/system.conf.in: change to use
10402         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10403
10404         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10405         from here.
10406
10407         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10408         here, and AC_DEFINE DBUS_SYSTEM_PATH
10409
10410 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10411
10412         * doc/TODO:
10413         * doc/busconfig.dtd:
10414         Add busconfig DTD.
10415         
10416 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10417
10418         * doc/dbus-specification.sgml:
10419         Add activation reply values.
10420         
10421 2003-08-05  Havoc Pennington  <hp@redhat.com>
10422
10423         * configure.in: 0.12
10424
10425 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10426
10427         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10428         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10429         (add_watch), (remove_watch), (create_source):
10430         Refcount fds, fixes some reentrancy issues.
10431         
10432 2003-07-30  Havoc Pennington  <hp@redhat.com>
10433
10434         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10435         bus address to be abstract if we have abstract sockets
10436
10437         * NEWS: update
10438
10439 2003-07-28  Havoc Pennington  <hp@redhat.com>
10440
10441         * bus/messagebus.in: fix to avoid processname/servicename 
10442         confusion, from Michael Kearey
10443         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10444         
10445 2003-07-23  Havoc Pennington  <hp@pobox.com>
10446
10447         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10448         fix from Andy Hanton to remove broken "+1"
10449
10450 2003-07-16  Havoc Pennington  <hp@pobox.com>
10451
10452         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10453         babysitter process, as suggested by Thomas Leonard, so 
10454         an "eval `dbus-launch --exit-with-session`" will actually 
10455         return
10456
10457 2003-07-16  Havoc Pennington  <hp@pobox.com>
10458
10459         * configure.in: print out EXPANDED_* variables in the summary at
10460         the end; clean up the code that computes EXPANDED_ variables and
10461         get the ones using exec_prefix right. Should make things work
10462         when you build without --prefix
10463
10464 2003-06-29  Havoc Pennington  <hp@pobox.com>
10465
10466         * mono/Test.cs (class Test): fire up a main loop and run it
10467
10468         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10469         done once, the app has to do it
10470
10471 2003-06-26  Havoc Pennington  <hp@pobox.com>
10472
10473         * mono/Connection.cs: set up connection with the glib main loop
10474
10475 2003-07-01  Havoc Pennington  <hp@redhat.com>
10476
10477         * doc/dbus-specification.sgml: clarify the format of a type code,
10478         change suggested by Jim Blandy
10479
10480 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10481
10482         * doc/Makefile.am:
10483         * tools/Makefile.am: Don't assume srcdir == builddir.
10484
10485         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10486         the allocated block.
10487         (_dbus_memory_test): New function.
10488         * dbus/dbus-test.h: Add _dbus_memory_test ().
10489         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10490
10491         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10492         of %c%c%c%c.
10493         (dbus_message_new): Remove obsolete @todo.
10494
10495         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10496         (_dbus_marshal_set_uint64): Fix comment.
10497
10498         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10499         hardcode FIELD_REPLY_SERIAL.
10500
10501         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10502         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10503
10504         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10505         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10506
10507 2003-06-24  Havoc Pennington  <hp@pobox.com>
10508
10509         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10510
10511 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10512
10513         * configure.in:
10514         * gcj/.cvsignore:
10515         * gcj/Hello.java:
10516         * gcj/Makefile.am:
10517         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10518         * gcj/org/.cvsignore:
10519         * gcj/org/Makefile.am:
10520         * gcj/org/freedesktop/.cvsignore:
10521         * gcj/org/freedesktop/Makefile.am:
10522         * gcj/org/freedesktop/dbus/.cvsignore:
10523         * gcj/org/freedesktop/dbus/Makefile.am:
10524         * gcj/org/freedesktop/dbus/Message.java: (Message),
10525         (Message.Message):
10526         * gcj/org/freedesktop/dbus/natMessage.cc:
10527         Fix the build system.
10528
10529 2003-06-22  Havoc Pennington  <hp@pobox.com>
10530
10531         * mono/Connection.cs: add more bindings
10532
10533         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10534         more than once.
10535
10536 2003-06-22  Havoc Pennington  <hp@pobox.com>
10537
10538         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10539         Start wrapping more stuff.
10540
10541 2003-06-22  Havoc Pennington  <hp@pobox.com>
10542
10543         * mono/Message.cs: implement Message.Wrap() that ensures we only
10544         have a single C# wrapper per DBusMessage, assuming it works which
10545         it probably doesn't.
10546
10547         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10548         (dbus_message_free_data_slot): new
10549         (dbus_message_set_data): new
10550         (dbus_message_get_data): new
10551
10552 2003-06-22  Havoc Pennington  <hp@pobox.com>
10553
10554         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10555         (_dbus_data_slot_allocator_alloc): rework these to keep a
10556         reference count on each slot and automatically manage a global
10557         slot ID variable passed in by address
10558
10559         * bus/bus.c: convert to new dataslot API
10560
10561         * dbus/dbus-bus.c: convert to new dataslot API
10562
10563         * dbus/dbus-connection.c: convert to new dataslot API
10564
10565         * dbus/dbus-server.c: convert to new dataslot API
10566
10567         * glib/dbus-gmain.c: ditto
10568
10569         * bus/test.c: ditto
10570
10571         * bus/connection.c: ditto
10572
10573 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10574
10575         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10576         after the gcj checks so that the correct configuration tags
10577         will be added to libtool.
10578
10579         * dbus-glib-1.pc.in: No need to specify any includes since
10580         dbus-1.pc.in has those.
10581
10582 2003-06-22  Havoc Pennington  <hp@pobox.com>
10583
10584         * mono/*, gcj/*, configure.in, Makefile.am:
10585         Check in makefiles and subdirs for mono and gcj bindings.
10586         Neither binding actually exists, just trying to get through
10587         all the build and other boring bits.
10588
10589 2003-06-21  Philip Blundell  <philb@gnu.org>
10590
10591         * tools/dbus-monitor.1: Updated.
10592
10593         * tools/dbus-send.1: Likewise.
10594
10595 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10596
10597         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10598         for hangup and error after checking read so we won't discard
10599         pending data if both hangup and read are set.
10600
10601 2003-06-19  Philip Blundell  <philb@gnu.org>
10602
10603         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10604
10605         * tools/dbus-send.c: Accept both --system and --session.
10606
10607         * tools/dbus-monitor.c: Same here.
10608
10609 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10610
10611         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10612         from C++ (Patch by Miloslav Trmac).
10613
10614 2003-06-15  Joe Shaw  <joe@assbarn.com>
10615
10616         * configure.in: Check for socklen_t.
10617
10618         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10619
10620         * test/test-segfault.c: Add #include <sys/time.h>
10621
10622         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10623         dbus-launch needs it.
10624
10625 2003-06-09  Havoc Pennington  <hp@redhat.com>
10626
10627         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10628         SUN_LEN, it breaks abstract socket usage
10629
10630         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10631         starts of lines.
10632
10633 2003-06-04  Havoc Pennington  <hp@pobox.com>
10634
10635         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10636         using unix:abstract=/foo, and when listening in a tmpdir
10637         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10638
10639         * dbus/dbus-transport.c (_dbus_transport_open): support
10640         unix:abstract=/foo
10641
10642         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10643         support abstract sockets
10644
10645         * dbus/dbus-transport-unix.c
10646         (_dbus_transport_new_for_domain_socket): support abstract sockets
10647
10648         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10649         toggle as an argument, implement abstract namespace support
10650         (_dbus_listen_unix_socket): ditto
10651
10652         * configure.in: add --enable-abstract-sockets and implement
10653         a configure check for autodetection of the right value.
10654
10655 2003-06-01  Havoc Pennington  <hp@pobox.com>
10656
10657         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10658         in /tmp (though on Linux this will end up being useless,
10659         when we add abstract namespace support)
10660
10661         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10662         subst'ing it
10663
10664 2003-05-28  Colin Walters  <walters@verbum.org>
10665
10666         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10667
10668 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10669
10670         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10671
10672 2003-05-17  Colin Walters  <walters@gnu.org>
10673
10674         * tools/dbus-send.c: Don't exit with an error code if --help was
10675         passed.  Default to using the session bus instead of the system
10676         one.
10677
10678         * tools/dbus-launch.c: Ditto.
10679
10680         * tools/dbus-monitor.c: Ditto.
10681
10682         * tools/dbus-send.1: Update with new arguments.
10683
10684         * tools/dbus-launch.c: Emit code to export variables.  New
10685         arguments -s and -c to specify shell syntax, and a bit of code to
10686         autodetect syntax.  Also, allow specifying a program to run.
10687
10688         * tools/dbus-launch.1: Update with new arguments.
10689
10690         * tools/dbus-send.1: Ditto.
10691
10692         * tools/dbus-monitor.1: Ditto.
10693
10694 2003-05-17  Havoc Pennington  <hp@pobox.com>
10695
10696         * bus/config-parser.c (merge_included): merge in policies from
10697         child configuration file.
10698
10699         * bus/policy.c (bus_policy_merge): function to merge two policies
10700         together
10701
10702 2003-05-16  Havoc Pennington  <hp@redhat.com>
10703
10704         * dbus/dbus-connection.c: disable verbose lock spew
10705
10706         * tools/dbus-send.c: add --print-reply command line option
10707
10708         * tools/dbus-print-message.h (print_message): new util function
10709         shared by dbus-send and dbus-monitor
10710
10711         * tools/dbus-monitor.c (handler_func): exit on disconnect
10712
10713         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10714         disconnected, don't try to use the read_watch
10715
10716         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10717         so we can find this bug more easily
10718
10719 2003-05-16  Havoc Pennington  <hp@redhat.com>
10720
10721         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10722         NULL as DBusHashTable is annoyingly likely to do.
10723
10724 2003-05-16  Colin Walters  <walters@verbum.org>
10725
10726         * tools/dbus-monitor.c: Add --session argument and usage()
10727         function.
10728
10729         * tools/dbus-monitor.1: Update with new --session arg.
10730
10731         * bus/Makefile.am (install-data-hook): Create
10732         $(libdir)/dbus-1.0/services so that the session bus is happy.
10733
10734 2003-05-15  Havoc Pennington  <hp@redhat.com>
10735
10736         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10737         on non-x86. ifdef's are evil.
10738
10739 2003-05-15  Havoc Pennington  <hp@redhat.com>
10740
10741         * configure.in: 0.11
10742
10743         * NEWS: update
10744
10745         * bus/Makefile.am (initddir): apparently we are supposed to put
10746         init scripts in /etc/rc.d/init.d not /etc/init.d
10747
10748         * bus/Makefile.am: remove the "you must --enable-tests to make
10749         check" as it broke distcheck
10750
10751         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10752
10753 2003-05-13  James Willcox  <jwillcox@gnome.org>
10754
10755         * configure.in:
10756         * bus/activation.c: (bus_activation_service_created),
10757         (bus_activation_activate_service):
10758         * bus/driver.c: (bus_driver_send_service_deleted),
10759         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10760         (bus_driver_send_service_acquired),
10761         (bus_driver_send_welcome_message),
10762         (bus_driver_handle_list_services):
10763         * bus/session.conf.in:
10764         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10765         (dbus_bus_service_exists), (dbus_bus_activate_service):
10766         * dbus/dbus-bus.h:
10767
10768         Add some convenience API which lets you activate a service, and did a
10769         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10770         and dbus_message_get_args()
10771
10772 2003-05-11  Havoc Pennington  <hp@pobox.com>
10773
10774         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10775         calling _dbus_marshal_validate_arg() for every byte in a byte
10776         array, etc.
10777
10778         * dbus/dbus-message-handler.c: use atomic reference counting to
10779         reduce number of locks slightly; the global lock in here sucks
10780
10781         * dbus/dbus-connection.c
10782         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10783         update_dispatch_status that can be called with lock held; then use
10784         in a couple places to reduce locking/unlocking
10785         (dbus_connection_send): hold the lock over the whole function
10786         instead of acquiring it twice.
10787
10788         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10789
10790         * bus/connection.c (bus_connections_setup_connection): fix access
10791         to already-freed memory.
10792
10793         * dbus/dbus-connection.c: keep a little cache of linked list
10794         nodes, to avoid using the global linked list alloc lock in the
10795         normal send-message case. Instead we just use the connection lock
10796         that we already have to take.
10797
10798         * dbus/dbus-list.c (_dbus_list_find_last): new function
10799
10800         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10801         change to use a struct for the atomic type; fix docs,
10802         they return value before increment, not after increment.
10803
10804         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10805         (_dbus_string_append_8_aligned): new functions to try to
10806         microoptimize this operation.
10807         (reallocate_for_length): break this out of set_length(), to
10808         improve profile info, and also so we can consider inlining the
10809         set_length() part.
10810
10811         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10812         strings with some preallocation, cuts down on our calls to realloc
10813         a fair bit. Though if we can get the "move entire string to empty
10814         string" optimization below to kick in here, it would be better.
10815
10816         * dbus/dbus-string.c (_dbus_string_move): just call
10817         _dbus_string_move_len
10818         (_dbus_string_move_len): add a special case for moving
10819         an entire string into an empty string; we can just
10820         swap the string data instead of doing any reallocs.
10821         (_dbus_string_init_preallocated): new function
10822
10823 2003-05-11  Havoc Pennington  <hp@pobox.com>
10824
10825         Write a "test-profile" that does echo client-server with threads;
10826         profile reveals lock contention, memcpy/realloc of buffers, and
10827         UTF-8 validation as hot spots. 20% of lock contention eliminated
10828         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10829         contention is global mempool locks for GList and DBusList.
10830
10831         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10832         x86 implementation
10833
10834         * dbus/dbus-connection.c (struct DBusConnection): use
10835         dbus_atomic_t for the reference count
10836
10837         * dbus/dbus-message.c (struct DBusMessage): declare
10838         dbus_atomic_t values as volatile
10839
10840         * configure.in: code to detect ability to use atomic integer
10841         operations in assembly, from GLib patch
10842
10843         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10844         time, tired of it being wrong in threads and forked processes
10845
10846         * glib/test-profile.c: a little program to bounce messages back
10847         and forth between threads and eat CPU
10848
10849         * dbus/dbus-connection.c: add debug spew macros for debugging
10850         thread locks; include config.h at top; fix deadlock in
10851         dbus_connection_flush()
10852
10853 2003-05-08  Havoc Pennington  <hp@pobox.com>
10854
10855         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10856         data from getting written, and there wasn't a good reason to
10857         use _exit really.
10858
10859         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10860         dbus_verbose lines in test coverage
10861         (main): add list of functions sorted by # of untested blocks
10862         to the coverage report
10863
10864         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10865
10866         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10867
10868         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10869         extend test coverage
10870
10871         * test/data/auth/cancel.auth-script: test canceling an
10872         authentication
10873
10874         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10875         aren't used. in CVS history if we end up needing them.
10876
10877 2003-05-04  Havoc Pennington  <hp@pobox.com>
10878
10879         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10880         unit test
10881
10882         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10883         function, which assumed length was in # of strings, not bytes
10884
10885         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10886         missing coverage
10887
10888         * dbus/dbus-connection.c
10889         (_dbus_connection_queue_received_message): disable function for
10890         now, we are only using it in test mode
10891
10892         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10893         remove a mistaken FIXME
10894
10895 2003-05-04  Havoc Pennington  <hp@pobox.com>
10896
10897         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10898         unlock mutex on successful return, patch from Anders Gustafsson
10899
10900 2003-05-04  Havoc Pennington  <hp@pobox.com>
10901
10902         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10903         Anders Gustafsson
10904
10905 2003-05-04  Havoc Pennington  <hp@pobox.com>
10906
10907         * tools/dbus-launch.c: implement
10908
10909         * bus/main.c (main), bus/bus.c (bus_context_new):
10910         implement --print-pid and --fork
10911
10912 2003-05-03  Havoc Pennington  <hp@redhat.com>
10913
10914         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10915         the address had no value, and add to test suite. Fix and
10916         regression test from Miloslav Trmac
10917
10918 2003-05-03  Havoc Pennington  <hp@pobox.com>
10919
10920         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10921         watch is invalid when handled
10922
10923         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10924         dbus-launch utility to launch the bus from a shell script.  Didn't
10925         actually implement dbus-launch yet, it's just a placeholder still.
10926
10927 2003-05-03  Havoc Pennington  <hp@pobox.com>
10928
10929         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10930         daemon; also documents daemon config file, so replaces
10931         doc/config-file.txt. Corrected some stuff from config-file.txt in
10932         the process of moving it.
10933
10934 2003-05-03  Havoc Pennington  <hp@pobox.com>
10935
10936         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10937         add some man pages
10938
10939 2003-05-03  Colin Walters  <walters@verbum.org>
10940
10941         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10942         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10943
10944         * Makefile.am: Update to use new .pc versioning scheme.
10945
10946 2003-05-02  Havoc Pennington  <hp@redhat.com>
10947
10948         * bus/system.conf.in: allow send/receive to/from message bus
10949         service
10950
10951 2003-04-30  Havoc Pennington  <hp@redhat.com>
10952
10953         * configure.in: print a note when building with unit tests and
10954         without assertions
10955
10956 2003-04-30  Havoc Pennington  <hp@redhat.com>
10957
10958         * Makefile.am: add a check-local that complains if you didn't
10959         configure with --enable-tests
10960
10961 2003-04-29  Havoc Pennington  <hp@redhat.com>
10962
10963         * glib/dbus-gmain.c: docs cleanups
10964
10965         * dbus/dbus-types.h: add docs on int64 types
10966
10967         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10968         public API docs section
10969
10970 2003-04-29  Havoc Pennington  <hp@redhat.com>
10971
10972         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10973         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10974         parallel install API version, not with the D-BUS package version.
10975
10976         * HACKING: move some of README over here
10977
10978         * README: updates, and document API/ABI policy
10979
10980         * configure.in: reindentation
10981
10982 2003-04-29  Havoc Pennington  <hp@redhat.com>
10983
10984         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10985         to use this library" to be sure people have the right
10986         expectations.
10987
10988 2003-04-28  Havoc Pennington  <hp@redhat.com>
10989
10990         * configure.in: add --enable-docs which by default is auto yes if
10991         doxygen and db2html found, no otherwise; but can be forced on/off
10992
10993         * doc/Makefile.am: conditionalize whether to build docs on
10994         --enable-docs
10995
10996 2003-04-28  Havoc Pennington  <hp@redhat.com>
10997
10998         * configure.in: 0.10
10999
11000         * NEWS: update
11001
11002         * bus/system.conf.in: add <includedir>system.d</includedir>
11003
11004         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11005         username was provided but not uid
11006
11007         * bus/config-parser.c (struct BusConfigParser): keep track of
11008         whether the parser is toplevel or was included; change some
11009         of the error handling if it's included.
11010
11011 2003-04-27  Havoc Pennington  <hp@pobox.com>
11012
11013         Unbreak my code...
11014
11015         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11016         report correct status if we finish processing authentication
11017         inside this function.
11018
11019         * bus/activation.c (try_send_activation_failure): use
11020         bus_transaction_send_error_reply
11021
11022         * bus/connection.c (bus_connection_get_groups): return an error
11023         explaining the problem
11024
11025         * bus/bus.c (bus_context_check_security_policy): implement
11026         restriction here that inactive connections can only send the
11027         hello message. Also, allow bus driver to send anything to
11028         any recipient.
11029
11030         * bus/connection.c (bus_connection_complete): create the
11031         BusClientPolicy here instead of on-demand.
11032         (bus_connection_get_policy): don't return an error
11033
11034         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11035         sender field in message being replied to
11036
11037         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11038         causing it to return FALSE always
11039
11040         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11041         we checked sender rather than destination
11042
11043 2003-04-25  Havoc Pennington  <hp@redhat.com>
11044
11045         test suite is slightly hosed at the moment, will fix soon
11046
11047         * bus/connection.c (bus_connections_expire_incomplete): fix to
11048         properly disable the timeout when required
11049         (bus_connection_set_name): check whether we can remove incomplete
11050         connections timeout after we complete each connection.
11051
11052         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11053         probably still broken.
11054
11055         * bus/services.c (bus_registry_acquire_service): implement max
11056         number of services owned, and honor allow/deny rules on which
11057         services a connection can own.
11058
11059         * bus/connection.c (bus_connection_get_policy): report errors here
11060
11061         * bus/activation.c: implement limit on number of pending
11062         activations
11063
11064 2003-04-25  Havoc Pennington  <hp@redhat.com>
11065
11066         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11067         where we used >= 0 instead of != DBUS_UID_UNSET.
11068
11069 2003-04-25  Havoc Pennington  <hp@redhat.com>
11070
11071         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11072         were toggled without add/remove, fix from Anders Gustafsson
11073
11074 2003-04-24  Havoc Pennington  <hp@redhat.com>
11075
11076         * test/data/valid-config-files/basic.conf: add <limit> tags to
11077         this test
11078
11079         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11080         <limit> tag in configuration file.
11081
11082 2003-04-24  Havoc Pennington  <hp@redhat.com>
11083
11084         * bus/dispatch.c: somehow missed some name_is
11085
11086         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11087         (_dbus_timeout_set_interval): new
11088
11089         * bus/connection.c (bus_connections_setup_connection): record time
11090         when each connection is first set up, and expire them after the
11091         auth timeout passes.
11092
11093 2003-04-24  Havoc Pennington  <hp@redhat.com>
11094
11095         * dbus/dbus-message.c (dbus_message_name_is): rename
11096         (dbus_message_service_is): rename
11097         (dbus_message_sender_is): rename
11098         (dbus_message_get_service): rename
11099
11100 2003-04-24  Havoc Pennington  <hp@redhat.com>
11101
11102         * configure.in: add --enable-checks
11103
11104         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11105
11106         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11107         to use thread locks.
11108         (_dbus_connection_handler_destroyed_locked): move some private
11109         functions into proper docs group
11110
11111         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11112         _dbus_return_val_if_fail
11113
11114         Throughout: use dbus_return_if_fail
11115
11116 2003-04-23  James Willcox  <jwillcox@gnome.org>
11117
11118         * glib/dbus-glib.h:
11119         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11120         (dbus_connection_setup_with_g_main),
11121         (dbus_server_setup_with_g_main):
11122         * glib/test-dbus-glib.c: (main):
11123         * glib/test-thread-client.c: (main):
11124         * glib/test-thread-server.c: (new_connection_callback), (main):
11125         * tools/dbus-monitor.c: (main):
11126
11127         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11128         and dbus_server_setup_with_g_main().
11129
11130 2003-04-20  Havoc Pennington  <hp@pobox.com>
11131
11132         * doc/dbus-specification.sgml: document the restrictions on
11133         message and service names
11134
11135 2003-04-22  Havoc Pennington  <hp@redhat.com>
11136
11137         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11138         support, and do some code cleanups to share more code and
11139         speed up array marshal/demarshal.
11140
11141         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11142
11143         * configure.in: generate dbus-arch-deps.h
11144
11145         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11146         64-bit typecodes
11147
11148 2003-04-22  Havoc Pennington  <hp@redhat.com>
11149
11150         * test/data/valid-messages/opposite-endian.message: fix test
11151         to use proper type for rply field
11152
11153         * test/data/invalid-messages: add tests for below validation
11154
11155         * dbus/dbus-message.c (decode_header_data): validate field types,
11156         and validate that named fields are valid names
11157         (decode_name_field): consider messages in the
11158         org.freedesktop.Local. namespace to be invalid.
11159
11160         * dbus/dbus-string.c (_dbus_string_validate_name): new
11161
11162 2003-04-19  Havoc Pennington  <hp@pobox.com>
11163
11164         * bus/driver.c (bus_driver_handle_hello): check limits and
11165         return an error if they are exceeded.
11166
11167         * bus/connection.c: maintain separate lists of active and inactive
11168         connections, and a count of each. Maintain count of completed
11169         connections per user. Implement code to check connection limits.
11170
11171         * dbus/dbus-list.c (_dbus_list_unlink): export
11172
11173         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11174         number of bytes in the message queue for a connection
11175
11176 2003-04-18  Havoc Pennington  <hp@pobox.com>
11177
11178         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11179
11180         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11181         memleaks
11182
11183         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11184         on realloc be sure to update the pointer in the keyring
11185
11186         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11187         offset to avoid writing to unallocated memory
11188
11189         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11190         try the next mechanism, so we properly handle OOM
11191
11192         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11193         on OOM.
11194         (_dbus_keyring_new): fix OOM bug
11195         (_dbus_keyring_new_homedir): always set error; impose a maximum
11196         number of keys we'll load from the file, mostly to speed up the
11197         test suite and make its OOM checks more useful, but also for
11198         general sanity.
11199
11200         * dbus/dbus-auth.c (process_error_server): reject authentication
11201         if we get an error from the client
11202         (process_cancel): on cancel, send REJECTED, per the spec
11203         (process_error_client): send CANCEL if we get an error from the
11204         server.
11205
11206 2003-04-18  Havoc Pennington  <hp@pobox.com>
11207
11208         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11209         debug spew
11210
11211         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11212         handling problem
11213
11214         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11215         about DBUS_TEST_HOMEDIR once
11216
11217         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11218         the environment
11219
11220         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11221         config file so we test the right thing
11222
11223         Throughout: assorted docs improvements
11224
11225 2003-04-18  Havoc Pennington  <hp@pobox.com>
11226
11227         * glib/dbus-gmain.c: adapt to watch changes
11228
11229         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11230
11231         * dbus/dbus-server.h: remove dbus_server_handle_watch
11232
11233         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11234
11235         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11236         like DBusTimeout, so we don't need dbus_connection_handle_watch
11237         etc.
11238
11239 2003-04-17  Havoc Pennington  <hp@redhat.com>
11240
11241         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11242         database usage so it all goes via the DBusUserDatabase cache.
11243
11244 2003-04-17  Havoc Pennington  <hp@redhat.com>
11245
11246         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11247         there was an OOM watch we skipped, we always return TRUE so we
11248         iterate again to have a look at it again. Fixes test suite hang.
11249         Code rearrangement also lets us lose some memset and only iterate
11250         over callbacks once.
11251
11252         * bus/driver.c (bus_driver_handle_message): sense of test for
11253         reply was backward
11254
11255 2003-04-16  Havoc Pennington  <hp@pobox.com>
11256
11257         * doc/dbus-specification.sgml: make spec say serials are unsigned
11258
11259         * dbus/dbus-message.h: change message serials to unsigned
11260
11261         * dbus/dbus-connection.c: adapt to message serials being unsigned
11262
11263 2003-04-15  Havoc Pennington  <hp@pobox.com>
11264
11265         * bus/bus.c: create and keep around a shared DBusUserDatabase
11266         object.
11267
11268         * bus/connection.c (bus_connection_get_groups): don't cache
11269         groups for user in the connection object, since user database
11270         object now does that.
11271
11272 2003-04-16  Havoc Pennington  <hp@redhat.com>
11273
11274         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11275         list of size counters
11276         (_dbus_message_loader_putback_message_link): put back a popped link
11277
11278         * dbus/dbus-connection.c
11279         (dbus_connection_set_max_live_messages_size): rename
11280         max_received_size
11281         (dbus_connection_get_outgoing_size): get size of outgoing
11282         queue
11283         (_dbus_connection_set_connection_counter): remove this cruft
11284
11285 2003-04-14  Havoc Pennington  <hp@redhat.com>
11286
11287         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11288         caching, but at some point we might want to be able to use a
11289         different database.
11290
11291         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11292         SHA1 conf file to test the sha1 auth mechanism, since the regular
11293         test always uses EXTERNAL when available.
11294
11295         * configure.in,
11296         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11297         add conf file that requires use of sha1 auth
11298
11299 2003-04-13  Havoc Pennington  <hp@pobox.com>
11300
11301         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11302         from Philip Blundell to send messages and monitor them.
11303
11304 2003-04-13  Havoc Pennington  <hp@pobox.com>
11305
11306         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11307         callbacks
11308
11309         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11310         users
11311
11312         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11313         fix to only recover unused bytes if we're already authenticated
11314         (_dbus_transport_get_is_authenticated): fix to still mark us
11315         authenticated if there are unused bytes.
11316
11317         * bus/dispatch.c: implement security policy checking
11318
11319         * bus/connection.c (bus_transaction_send_from_driver): new
11320
11321         * bus/bus.c (bus_context_check_security_policy): new
11322
11323         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11324         now we just set the DBusError and it gets converted to an error
11325         reply.
11326
11327         * bus/connection.c (allow_user_function): enable code using actual
11328         data from the config file
11329
11330         * bus/policy.c (list_allows_user): handle wildcard rules for
11331         user/group connection perms
11332
11333 2003-04-13  Havoc Pennington  <hp@pobox.com>
11334
11335         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11336
11337         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11338
11339         * bus/policy.c (bus_policy_append_mandatory_rule)
11340         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11341         (bus_policy_append_group_rule): new functions
11342
11343 2003-04-12  Havoc Pennington  <hp@pobox.com>
11344
11345         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11346
11347         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11348         the pid/gid/uid, just for paranoia.
11349
11350         * test/break-loader.c (randomly_do_n_things): find a byte
11351         containing a type code, and randomly change it to a different
11352         type code.
11353
11354 2003-04-12  Havoc Pennington  <hp@pobox.com>
11355
11356         * bus/policy.h: change BusPolicy to be the thing from the config
11357         file, and rename old BusPolicy to BusClientPolicy
11358
11359         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11360         match change in how policy works
11361
11362         * dbus/dbus-internals.h: mark assert_not_reached as
11363         __attribute((noreturn))__
11364
11365 2003-04-11  Havoc Pennington  <hp@redhat.com>
11366
11367         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11368         the broadcast service. Use boolean return for ServiceExists.
11369
11370 2003-04-11  Havoc Pennington  <hp@redhat.com>
11371
11372         * configure.in: add another directory to look for qt in.
11373
11374 2003-04-11  Havoc Pennington  <hp@redhat.com>
11375
11376         * AUTHORS: add Colin Walters
11377
11378 2003-04-11  Havoc Pennington  <hp@redhat.com>
11379
11380         * NEWS: update
11381
11382         * configure.in: 0.9
11383
11384 2003-04-11  Havoc Pennington  <hp@redhat.com>
11385
11386         * bus/messagebus.in: remove pid file when stopping the
11387         message bus, since the bus won't have privileges to remove it
11388         itself.
11389
11390 2003-04-11  Havoc Pennington  <hp@redhat.com>
11391
11392         * bus/bus.c (bus_context_new): move credentials change after
11393         creating pidfile
11394
11395 2003-04-11  Havoc Pennington  <hp@pobox.com>
11396
11397         * test/decode-gcov.c: add "below average functions" to the
11398         coverage report, and change how some of the code works.
11399
11400         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11401         not in the coverage stats.
11402
11403         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11404         couple places so running the test suite doesn't result in megaspam.
11405
11406 2003-04-11  Havoc Pennington  <hp@pobox.com>
11407
11408         * bus/dispatch.c (check_existent_service_activation): accept a no
11409         memory error in a place we didn't before
11410
11411         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11412         in case the first one failed," since the test suite is less
11413         broken now.
11414
11415 2003-04-10  Havoc Pennington  <hp@pobox.com>
11416
11417         * bus/dispatch.c (check_segfault_service_activation): add test
11418         for launching an executable that just crashes.
11419
11420         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11421         don't leave a million cores. We'll see how portable this is.
11422
11423 2003-04-10  Havoc Pennington  <hp@pobox.com>
11424
11425         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11426         the possible parent failures before we fork, so that we don't
11427         fail to create a babysitter after creating the child.
11428
11429         * bus/activation.c (bus_activation_activate_service): kill child
11430         if we don't successfully complete the activation.
11431
11432 2003-04-10  Havoc Pennington  <hp@redhat.com>
11433
11434         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11435         the connection if it's disconnected
11436
11437         * bus/activation.c (bus_activation_service_created): use new
11438         transaction features to roll back removal of pending activation if
11439         we don't successfully create the service after all. Don't remove
11440         pending activation if the function fails.
11441
11442         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11443         (_dbus_list_insert_after_link): new code to facilitate
11444         services.c fixes
11445
11446         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11447         new functionality, so we can preallocate the ability to insert
11448         into a hash table.
11449
11450         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11451         allowing us to put custom hooks in a transaction to be used for
11452         cancelling said transaction
11453
11454         * doc/dbus-specification.sgml: add some discussion of secondary
11455         service owners, and disallow zero-length service names
11456
11457         * bus/services.c (bus_registry_acquire_service): new function,
11458         splits out part of bus_driver_handle_acquire_service() and fixes
11459         a bug where we didn't remove the service doing the acquiring
11460         from the secondary queue if we failed to remove the current owner
11461         from the front of the queue.
11462
11463 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11464
11465         * doc/dbus-specification.sgml:
11466         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11467
11468 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11469
11470         * bus/.cvsignore:
11471         * glib/.cvsignore:
11472         * test/.cvsignore:
11473         Added files to cvsignore
11474
11475         * dbus/dbus-message.h:
11476         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11477         Make get_named() take two out argument and return a boolean.
11478         (dbus_message_iter_get_args_valist):
11479         Update usage of get_named().
11480         (dbus_message_iter_append_byte):
11481         Fix typo
11482         (dbus_message_iter_append_named)
11483         Fix typo
11484         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11485         More tests.
11486
11487 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11488
11489         * dbus/dbus-marshal.[ch]:
11490         Add array_type_pos argument to _dbus_marshal_validate_arg.
11491         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11492
11493         * dbus/dbus-message.[ch]:
11494         Multi-dimensional arrays have full type specification in the
11495         outermost array. Iter code re-arranged to handle this.
11496         Added some more iter tests.
11497
11498         * doc/dbus-specification.sgml:
11499         Add me to authors.
11500         Remove old FIXME.
11501         Update new array encoding description.
11502         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11503
11504         * test/data/invalid-messages/array-with-mixed-types.message:
11505         * test/data/valid-messages/array-of-array-of-uint32.message:
11506         Change to the new array format.
11507
11508         * test/data/invalid-messages/too-short-dict.message:
11509         Fix bug in test.
11510
11511         * test/data/valid-messages/recursive-types.message:
11512         Fix up and extend test.
11513
11514 2003-04-10  Havoc Pennington  <hp@pobox.com>
11515
11516         * bus/dispatch.c: lots of fixes
11517
11518         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11519         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11520         that was crack, broke the test service.
11521
11522         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11523         handling to avoid piling up errors if we get a failure on the
11524         first address.
11525
11526         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11527         pid in assertion failures.
11528
11529         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11530         to some fixed size of file descriptor array. Don't return TRUE
11531         anytime a timeout exists, that led to lots of busy loop silliness
11532         in the tests.
11533
11534 2003-04-09  Havoc Pennington  <hp@redhat.com>
11535
11536         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11537         I'd checked this in earlier but hadn't.
11538
11539 2003-04-09  Havoc Pennington  <hp@redhat.com>
11540
11541         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11542         the activation test (man this is getting old!)
11543
11544 2003-04-09  Havoc Pennington  <hp@redhat.com>
11545
11546         * test/test-utils.c: use dispatch status function to fix this up
11547
11548         * bus/connection.c (connection_watch_callback): don't dispatch
11549         from here
11550         (connection_timeout_callback): don't dispatch from here
11551         (bus_connections_setup_connection): set the dispatch status function
11552         (bus_connection_disconnected): unset it
11553
11554         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11555         used to add a connection to be dispatched
11556         (_dbus_loop_iterate): do the dispatching at the end of each
11557         iteration
11558
11559         * dbus/dbus-connection.c
11560         (dbus_connection_set_dispatch_status_function): new function
11561         allowing us to fix up main loop usage
11562         (_dbus_connection_last_unref): free all the various function
11563         user data
11564         (dbus_connection_dispatch): call the DispatchStatusFunction
11565         whenever this function returns
11566         (dbus_connection_handle_watch): call DispatchStatusFunction
11567         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11568         (reply_handler_timeout): call DispatchStatusFunction
11569         (dbus_connection_flush): call DispatchStatusFunction
11570
11571 2003-04-09  Havoc Pennington  <hp@redhat.com>
11572
11573         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11574         a memory leak
11575
11576         * bus/dispatch.c (check_service_activated): fix bug in test
11577
11578         * dbus/dbus-mainloop.c (check_timeout): fix this up
11579
11580         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11581         verbose output so we can sort out output from different processes,
11582         e.g. in the activation case.
11583
11584 2003-04-08  Colin Walters  <walters@gnu.org>
11585
11586         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11587         the pid file.
11588         (bus_context_new): Set it.
11589         (bus_context_unref): Use it to delete the pid file.
11590
11591 2003-04-08  Havoc Pennington  <hp@redhat.com>
11592
11593         * test/data/invalid-messages/array-with-mixed-types.message:
11594         regression test that fails for the moment
11595
11596         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11597         tests for convenience
11598
11599         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11600         array of nil, it broke things.
11601
11602         * test/data/invalid-messages/array-of-nil.message: regression test
11603
11604         * test/data/valid-messages/array-of-array-of-uint32.message:
11605         happened to write this so added it to suite
11606
11607 2003-04-08  Havoc Pennington  <hp@redhat.com>
11608
11609         * bus/driver.c (bus_driver_handle_acquire_service): init
11610         retval/reply before checking name
11611
11612         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11613         recursion depth argument
11614
11615         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11616         in the public struct for future extension
11617
11618         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11619         typo
11620
11621         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11622         message
11623
11624         * doc/dbus-specification.sgml: fix typo
11625
11626 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11627
11628         Implemented recursive types, named types and new-style iters
11629
11630         * bus/driver.c:
11631         * glib/test-thread-client.c: (thread_func):
11632         * glib/test-thread-server.c: (handle_test_message):
11633         * test/test-service.c: (handle_echo):
11634         Update to new api
11635
11636         * dbus/Makefile.am:
11637         * dbus/dbus-dict.c:
11638         * dbus/dbus-dict.h:
11639         * dbus/dbus.h
11640         Remove DBusDict
11641
11642         * dbus/dbus-internals.c: (_dbus_type_to_string):
11643         Update for new types.
11644
11645         * dbus/dbus-marshal.[ch]:
11646         Implement recursive types and the new marshalling format.
11647         Remove hardcoded dict marshalling.
11648         Marshal named types.
11649
11650         * dbus/dbus-message-builder.c:
11651         Add BYTE_ARRAY.
11652         Remove references to old types
11653
11654         * dbus/dbus-message.[ch]:
11655         New non-refcounted iter API that supports recursive iters.
11656         Use iters for appending, including support for recursive
11657         iters.
11658         Add byte and named type support.
11659         Update everything to new marshalling formats.
11660         Add tests for new API.
11661
11662         * dbus/dbus-protocol.h:
11663         Remove old array types.
11664         Add types: BYTE, ARRAY, DICT, NAMED
11665
11666         * dbus/dbus-string.c:
11667         * dbus/dbus-sysdeps.c:
11668         Make parse_double locale safe.
11669
11670         * dbus/dbus-test-main.c:
11671         Call setlocale.
11672
11673         * dbus/dbus-test.c:
11674         Kill dict test
11675
11676         * doc/dbus-specification.sgml:
11677         Update spec
11678
11679         * test/data/incomplete-messages/missing-body.message:
11680         * test/data/invalid-messages/bad-boolean.message:
11681         * test/data/invalid-messages/bad-boolean-array.message:
11682         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11683         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11684         * test/data/invalid-messages/too-short-dict.message:
11685         * test/data/valid-messages/dict-simple.message:
11686         * test/data/valid-messages/dict.message:
11687         * test/data/valid-messages/emptiness.message:
11688         * test/data/valid-messages/lots-of-arguments.message:
11689         * test/data/valid-messages/no-padding.message:
11690         * test/data/valid-messages/recursive-types.message:
11691         Add missing NAME fields
11692         Fix up dicts & arrays
11693
11694         * test/data/invalid-messages/dict-with-nil-value.message:
11695         Removed, this is not invalid anymore.
11696
11697         * test/data/valid-messages/recursive-types.message:
11698         Add new test for deeply recursive types.
11699
11700 2003-04-07  Havoc Pennington  <hp@pobox.com>
11701
11702         * bus/driver.c (bus_driver_handle_acquire_service): return an
11703         error if you try to acquire a service that starts with ':'
11704
11705 2003-04-07  Havoc Pennington  <hp@redhat.com>
11706
11707         * doc/dbus-specification.sgml: require that base service names
11708         start with ':' and that the base service is created/deleted
11709         as first and last things a connection does on the bus
11710
11711         * bus/dispatch.c (check_existent_service_activation): lots more
11712         work on the activation test; it doesn't fully pass yet...
11713
11714         * test/test-service.c (main): fix so we don't memleak the
11715         connection to the message bus
11716         (filter_func): accept a message asking us to exit
11717
11718 2003-04-06  Havoc Pennington  <hp@pobox.com>
11719
11720         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11721         from Colin Walters
11722
11723         * configure.in: fixes to Qt detection from Colin Walters
11724
11725         * doc/Makefile.am: Only remove generated docbook dirs if they
11726         exist, from Colin Walters
11727
11728         * dbus/dbus-bus.c: change how we set well-known connections to
11729         NULL, so that it works if a single connection is stored in
11730         two well-known array slots.
11731
11732         * test/Makefile.am: remove a lot of stuff that isn't immediately
11733         useful, it's in CVS history if we want it.
11734
11735         * test/test-service.c: use dbus-mainloop instead of that
11736         watch.[hc] crack
11737
11738 2003-04-06  Havoc Pennington  <hp@pobox.com>
11739
11740         * dbus/Makefile.am: split lists of sources into stuff that goes in
11741         the library, util functions that go in the lib and are also used
11742         elsewhere, and util functions that are used in tests/daemon but
11743         don't go in the lib.
11744
11745         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11746         here so it can be used in test binaries also
11747
11748 2003-04-06  Havoc Pennington  <hp@pobox.com>
11749
11750         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11751         here in the parent process, so we can return an error if it
11752         fails. Also, move some of the code into the child so the parent
11753         is less hosed if we fail midway through.
11754
11755         * bus/bus.c (bus_context_new): move pidfile detection further up
11756         in the function, before we start overwriting sockets and such.
11757
11758         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11759
11760         * configure.in: add --with-system-pid-file and --with-system-socket
11761
11762 2003-04-06  Colin Walters  <walters@verbum.org>
11763
11764         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11765
11766         * bus/system.conf.in: Declare a pidfile.
11767
11768         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11769         create one (if appropriate).
11770
11771         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11772         (struct BusConfigParser) [pidfile]: New.
11773         (element_type_to_name, merge_included, start_busconfig_child)
11774         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11775         (bus_config_parser_unref): Free it.
11776         (bus_config_parser_get_pidfile): New function.
11777
11778         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11779
11780         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11781
11782         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11783
11784         * dbus/dbus-sysdeps.h: Prototype it.
11785
11786 2003-04-06  Havoc Pennington  <hp@pobox.com>
11787
11788         * bus/bus.c (bus_context_new): print the address in here, rather
11789         than in main(), because we need to do it before forking the daemon
11790
11791         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11792         on the service nonexistent error
11793
11794         * bus/driver.c (bus_driver_handle_acquire_service): set the
11795         sender on the AcquireService reply
11796
11797         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11798         server also listen on a UNIX socket so services can connect to it.
11799
11800 2003-04-06  Havoc Pennington  <hp@pobox.com>
11801
11802         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11803         so it detects deadlocks and also we actually init threads when
11804         debugging.
11805
11806 2003-04-06  Havoc Pennington  <hp@pobox.com>
11807
11808         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11809         save the domain socket name, and unlink it when we disconnect the
11810         server. Means that at least when we exit normally, we won't leave
11811         a bunch of junk in /tmp
11812
11813         * dbus/dbus-transport-unix.c
11814         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11815         memory management). (I was making a real change here but then
11816         didn't)
11817
11818 2003-04-06  Havoc Pennington  <hp@pobox.com>
11819
11820         * bus/bus.c (bus_context_new): fix wrong handling of
11821         server_data_slot_unref() in the error case.
11822
11823         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11824         "(condition) != 0" to _dbus_real_assert so that
11825         "_dbus_assert (pointer)" doesn't cause a warning
11826
11827         * bus/main.c (main): accept --print-address option to print out
11828         the message bus address
11829
11830         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11831
11832         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11833         "tmpdir" option to unix: address on client side
11834
11835         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11836         to unix: address
11837
11838         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11839         we can use to create sockets in the test suite.
11840
11841         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11842         cleanly. To be used for testing.
11843
11844         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11845
11846         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11847
11848         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11849         handle trying to call this when there's no servers active
11850
11851 2003-04-05  Havoc Pennington  <hp@pobox.com>
11852
11853         * NEWS: update
11854
11855         * configure.in: 0.8
11856
11857 2003-04-05  Havoc Pennington  <hp@pobox.com>
11858
11859         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11860         crash on startup. Need to get "try starting the daemon"
11861         in the test suite I guess. ;-)
11862
11863         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11864         tracked the number of open connections; it's better done in
11865         application-specific code as you want it to span all servers etc.
11866
11867 2003-04-05  Havoc Pennington  <hp@pobox.com>
11868
11869         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11870         patch from Colin Walters
11871
11872 2003-04-05  Havoc Pennington  <hp@pobox.com>
11873
11874         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11875         reality; in fact multiple mechanisms are allowed.
11876
11877         * dbus/dbus-internals.c (_dbus_real_assert)
11878         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11879         _dbus_assert_not_reached() into functions, so that they don't show
11880         up in basic block counts for test coverage, and don't use up as
11881         much disk space. Does mean slower execution speed though, so
11882         assumes --disable-asserts is the normal production case.
11883
11884 2003-04-05  Havoc Pennington  <hp@pobox.com>
11885
11886         * test/Makefile.am (dist-hook): also dist *.in files
11887
11888         * NEWS: update
11889
11890         * configure.in: 0.7
11891
11892 2003-04-05  Havoc Pennington  <hp@pobox.com>
11893
11894         * dbus/dbus-string.c: docs warning
11895
11896         * dbus/dbus-spawn.c: missing docs
11897
11898         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11899
11900 2003-04-05  Havoc Pennington  <hp@pobox.com>
11901
11902         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11903         magic from GLib
11904
11905         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11906         to -1 once we've reaped the babysitter
11907         (_dbus_babysitter_handle_watch): do as much work as we can, not
11908         just one go of it
11909
11910         * bus/activation.c: add code using DBusBabysitter so that we
11911         handle it when a service fails to start up properly.
11912         (bus_activation_service_created): don't remove the activation
11913         entries as we go, just let them get removed when we free the pending
11914         activation. Unref reply messages after sending them.
11915
11916 2003-04-05  Havoc Pennington  <hp@pobox.com>
11917
11918         * test/decode-gcov.c (main): print per-directory stats in the report
11919
11920         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11921
11922 2003-04-05  Havoc Pennington  <hp@pobox.com>
11923
11924         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11925
11926         * test/decode-gcov.c: hack up a little program to suck data
11927         out of gcov files. Yes this is sort of silly.
11928
11929         * configure.in: define something in config.h and do an
11930         AM_CONDITIONAL when gcov is enabled
11931
11932 2003-04-04  Havoc Pennington  <hp@redhat.com>
11933
11934         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11935         return a "babysitter" object that is used to monitor the status of
11936         the spawned process and reap it when required.
11937
11938         * test/test-segfault.c, test/test-exit.c,
11939         test/test-sleep-forever.c: binaries that do various lame things,
11940         used in the test suite.
11941
11942         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11943
11944 2003-04-03  Havoc Pennington  <hp@pobox.com>
11945
11946         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11947         in preparation for modifying it, dbus-sysdeps is getting
11948         a bit unmanageable.
11949
11950 2003-04-03  Havoc Pennington  <hp@redhat.com>
11951
11952         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11953         have multiple ones
11954
11955         * bus/*.[hc]: adapt to mainloop change
11956
11957 2003-04-03  Havoc Pennington  <hp@redhat.com>
11958
11959         * bus/activation.c (load_directory): fix up memleaks
11960         (bus_activation_entry_free): free the entry
11961
11962         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11963         we get one from the message bus; fix memleaks.
11964
11965         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11966
11967 2003-04-03  Havoc Pennington  <hp@pobox.com>
11968
11969         * bus/config-parser.c (bus_config_parser_unref): free
11970         list of mechanisms, bug discovered by test suite enhancements
11971         (putting system.conf and session.conf into suite)
11972
11973         * test/Makefile.am, test/test-service.c: add placeholder for a
11974         test service that we'll activate as part of test suite. Doesn't
11975         do anything yet.
11976
11977         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11978         setting NULL value, and use system malloc not dbus_malloc()
11979         when we have unavoidable memleakage.
11980
11981         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11982         didn't work, and support DBUS_BUS_ACTIVATION.
11983
11984         * bus/activation.c (child_setup): pass our well-known bus type to
11985         the child
11986
11987         * bus/config-parser.c: support <type> to specify well-known type
11988
11989         * doc/dbus-specification.sgml: document the env variables to
11990         locate well-known buses and find service activator
11991
11992 2003-04-02  Havoc Pennington  <hp@redhat.com>
11993
11994         * test/Makefile.am (all-local): add a rule to copy tests to
11995         builddir, so we can have generated tests. Use this to remove the
11996         silly hack for testing system.conf and session.conf. Will use this
11997         shortly to generate .service files pointing to test binaries.
11998
11999 2003-04-02  Havoc Pennington  <hp@redhat.com>
12000
12001         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12002         current alloc and needed new length, not max of the doubled
12003         allocation and needed new length. Also, when building tests,
12004         don't do the double-allocation stuff, just realloc every time.
12005
12006 2003-04-02  Havoc Pennington  <hp@redhat.com>
12007
12008         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12009         in error messages
12010         (_dbus_string_get_dirname): new
12011         (_dbus_sysdeps_test): new
12012         (_dbus_directory_open): include dirnames in error messages
12013
12014         * bus/config-parser.c: interpret <include> and <includedir> and
12015         <servicedir> relative to config file location if the given
12016         filename is not absolute.
12017
12018         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12019
12020 2003-04-02  Havoc Pennington  <hp@redhat.com>
12021
12022         * bus/connection.c (bus_transaction_send_error_reply): set sender
12023         service for the error, and unref the reply on success
12024
12025         * bus/activation.c: convert to use BusTransaction so OOM can be
12026         handled correctly
12027         (bus_activation_service_created): set sender of the message
12028
12029 2003-04-01  Havoc Pennington  <hp@redhat.com>
12030
12031         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12032         <includedir> (at least mostly)
12033
12034         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12035         first, then the user ID
12036
12037 2003-04-01  Havoc Pennington  <hp@pobox.com>
12038
12039         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12040         function
12041
12042         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12043
12044         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12045
12046         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12047         socket 0777, and unlink any existing socket.
12048
12049         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12050         the configuration file so specifies; set up auth mechanism
12051         restrictions
12052
12053         * bus/config-parser.c (bus_config_parser_content): add support
12054         for <fork> option and fill in code for <auth>
12055
12056         * bus/system.conf.in: add <fork/> to default configuration,
12057         and limit auth mechanisms to EXTERNAL
12058
12059         * doc/config-file.txt (Elements): add <fork>
12060
12061         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12062         (_dbus_change_identity): new function
12063
12064 2003-03-31  Havoc Pennington  <hp@redhat.com>
12065
12066         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12067         (_dbus_listen_unix_socket): fix off-by-one error in null
12068         termination spotted by Nalin
12069
12070 2003-03-31  Havoc Pennington  <hp@redhat.com>
12071
12072         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12073         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12074         having a real home directory available.
12075
12076 2003-03-31  Havoc Pennington  <hp@redhat.com>
12077
12078         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12079
12080         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12081
12082         * configure.in: add support for specifying a style of init script
12083         to install
12084
12085 2003-03-31  Havoc Pennington  <hp@redhat.com>
12086
12087         Fix some annoying DBusString API and fix all affected code.
12088
12089         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12090         max_length argument
12091         (_dbus_string_get_data): change to return string instead of using
12092         an out param
12093         (_dbus_string_get_const_data): ditto
12094         (_dbus_string_get_data_len): ditto
12095         (_dbus_string_get_const_data_len): ditto
12096
12097 2003-03-31  Havoc Pennington  <hp@redhat.com>
12098
12099         * bus/main.c (main): fix up the command line arguments to be nicer
12100
12101 2003-03-31  Havoc Pennington  <hp@redhat.com>
12102
12103         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12104         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12105         final location that lands in the config file
12106
12107         * bus/config-loader-expat.c (bus_config_load): fix type of
12108         XML_Parser variable
12109
12110         * doc/TODO: remove TODO item for dbus_bus_get()
12111
12112         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12113
12114 2003-03-31  Havoc Pennington  <hp@pobox.com>
12115
12116         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12117         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12118         argument since they are always client side
12119
12120         * dbus/dbus-server.c (dbus_server_get_address): new function
12121
12122         * bus/main.c (main): take the configuration file as an argument.
12123
12124         * test/data/valid-config-files/debug-allow-all.conf: new file to
12125         use with dispatch.c tests for example
12126
12127         * bus/test-main.c (main): require test data dir
12128
12129         * bus/bus.c (bus_context_new): change this to take a
12130         configuration file name as argument
12131
12132         * doc/config-file.txt (Elements): add <servicedir>
12133
12134         * bus/system.conf, bus/session.conf: new files
12135
12136         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12137         well-known socket if none set
12138
12139         * configure.in: create system.conf and session.conf
12140
12141 2003-03-30  Havoc Pennington  <hp@pobox.com>
12142
12143         * bus/config-parser.c: hacking
12144
12145         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12146         to shut down, since it could cause weirdness with the DBusList
12147         lock
12148
12149         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12150         link-oriented stack routines
12151         (alloc_link): free the mempool if the first alloc from it fails
12152
12153         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12154
12155         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12156         from GLib
12157         (_dbus_string_skip_white): new
12158
12159         * doc/config-file.txt (Elements): add <includedir>
12160
12161 2003-03-28  Havoc Pennington  <hp@pobox.com>
12162
12163         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12164         (_dbus_string_copy_data): new functions
12165
12166 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12167
12168         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12169         * dbus/dbus-bus.h:
12170         Add dbus_bus_get.
12171
12172         * dbus/dbus-memory.c:
12173         Fix a doc comment.
12174
12175 2003-03-28  Havoc Pennington  <hp@pobox.com>
12176
12177         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12178         I think it may have just been superstition. Not sure.
12179
12180         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12181         failures that were not being handled.
12182
12183         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12184
12185         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12186         row that will fail on out-of-memory.
12187
12188         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12189         function for testing out-of-memory handling.
12190
12191         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12192         allocation functions, they do map exactly to the expat ones.
12193
12194 2003-03-27  Havoc Pennington  <hp@redhat.com>
12195
12196         * bus/config-loader-libxml.c (bus_config_load): add another error
12197         check
12198
12199 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12200
12201         * doc/TODO:
12202         Add note about automatic service activation.
12203
12204         * doc/dbus-specification.sgml:
12205         Rename the specification and clarify a few things.
12206
12207 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12208
12209         * Doxyfile.in:
12210         * dbus/dbus-address.c:
12211         * dbus/dbus-dict.c:
12212         * dbus/dbus-marshal.c:
12213         * dbus/dbus-server-debug-pipe.c:
12214         * dbus/dbus-transport-unix.c:
12215         Fix documentation warnings.
12216
12217 2003-03-26  Havoc Pennington  <hp@pobox.com>
12218
12219         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12220         after every test so it's quick and easy to see which leaked, and
12221         so we test multiple dbus_shutdown() calls
12222
12223         * configure.in: change configure.in XML stuff to also support
12224         expat
12225
12226         * config-loader-libxml.c: some hacking
12227
12228         * config-loader-expat.c: some hacking
12229
12230         * config-parser.c: some hacking, plus tests
12231
12232 2003-03-25  Havoc Pennington  <hp@redhat.com>
12233
12234         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12235
12236         * configure.in: add --with-xml option to specify XML library,
12237         right now only libxml is supported.
12238
12239         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12240         nonworking code between home and work, still just stubs
12241
12242 2003-03-24  Havoc Pennington  <hp@redhat.com>
12243
12244         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12245         file
12246
12247         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12248         NULL argument for "message" if the error is a well-known one,
12249         fill in a generic message in this case.
12250
12251         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12252         favor of DBusError
12253
12254         * bus/test.c (bus_test_flush_bus): add
12255
12256         * bus/policy.c (bus_policy_test): test code stub
12257
12258 2003-03-24  Havoc Pennington  <hp@pobox.com>
12259
12260         * bus/connection.c (bus_connections_setup_connection): set up
12261         the "can this user connect" function, but it always returns
12262         TRUE until we have a config file parser so we can have a config
12263         file that allows connections.
12264
12265 2003-03-23  Havoc Pennington  <hp@pobox.com>
12266
12267         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12268         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12269         the mutex, so we can check for proper memory management
12270         and OOM handling.
12271
12272         * dbus/dbus-dataslot.c: remove the mutex from
12273         DBusDataSlotAllocator and lock it manually when using it,
12274         to simplify fitting it into the global slots framework.
12275
12276         * dbus/dbus-threads.c (init_static_locks): rework how we're
12277         handling global locks so they are easily shut down.
12278
12279         * bus/policy.c (bus_policy_append_rule): fix
12280
12281         * bus/test-main.c (main): check for memleaks
12282
12283         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12284         test suite check for memleaks
12285
12286         * dbus/dbus-memory.c: add support in test mode for tracking
12287         number of outstanding blocks
12288
12289 2003-03-23  Havoc Pennington  <hp@pobox.com>
12290
12291         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12292         policies code
12293
12294         * dbus/dbus-hash.h: add ULONG hash keys
12295
12296         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12297         (_dbus_get_group_id): new function
12298
12299 2003-03-20  Havoc Pennington  <hp@redhat.com>
12300
12301         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12302         new function
12303         (dbus_connection_get_unix_user): new function
12304
12305 2003-03-20  Havoc Pennington  <hp@pobox.com>
12306
12307         * bus/connection.c (bus_connection_send_oom_error): assert that
12308         message has a sender
12309         (connection_execute_transaction): ditto
12310         (bus_connection_preallocate_oom_error): fix to set the sender, and
12311         set recipient to the destination service, not the bus driver
12312
12313         * bus/policy.c: hacking
12314
12315         * dbus/dbus-message.c (dbus_message_service_is): new function
12316         (dbus_message_sender_is): new
12317
12318 2003-03-19  Havoc Pennington  <hp@redhat.com>
12319
12320         * bus/policy.c: start sketching code for policy restrictions on
12321         what connections can do.
12322
12323 2003-03-18  Havoc Pennington  <hp@redhat.com>
12324
12325         * doc/TODO: some notes on high-level todo items. Little nitpick
12326         stuff is all in @todo, so no need to add it here.
12327
12328         * doc/config-file.txt: some notes on how config file might look
12329
12330 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12331
12332         * configure.in: 0.6
12333
12334         * NEWS: Update.
12335
12336 2003-03-17  Havoc Pennington  <hp@redhat.com>
12337
12338         * dbus/dbus-internals.h: add gcc attributes so that
12339         our printf-style functions warn on bad arguments to
12340         format
12341
12342         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12343         format bug
12344
12345         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12346         printf format bug
12347
12348 2003-03-17  Havoc Pennington  <hp@redhat.com>
12349
12350         * bus/test-main.c (main): make it print something as it runs
12351         so make check doesn't look stuck
12352
12353         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12354         from CVS, now obsolete
12355
12356 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12357
12358         * bus/dispatch.c: (bus_dispatch):
12359         Refetch the service name since it may have been reallocated
12360         when dbus_message_set_sender was called.
12361
12362         * dbus/dbus-sysdeps.c: (_dbus_accept):
12363         Add address and address length variables and use them to stop
12364         valgrind from complaining.
12365
12366 2003-03-17  Havoc Pennington  <hp@pobox.com>
12367
12368         All tests pass, no memleaks, no valgrind complaints.
12369
12370         * bus/test.c: refcount handler_slot
12371
12372         * bus/connection.c (bus_connections_new): refcount
12373         connection_data_slot
12374
12375         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12376         bytes so that auth scripts pass.
12377
12378         * bus/dispatch.c: init message_handler_slot so it gets allocated
12379         properly
12380
12381         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12382
12383         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12384         dealloc server_pipe_hash when no longer used for benefit of
12385         leak checking
12386
12387         * dbus/dbus-auth.c (process_command): memleak fix
12388
12389         * bus/dispatch.c (check_hello_message): memleak fix
12390
12391 2003-03-16  Havoc Pennington  <hp@pobox.com>
12392
12393         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12394
12395 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12396
12397         * bus/activation.c (bus_activation_activate_service): Append
12398         the pending activation entry to the list of pending activations.
12399
12400 2003-03-16  Havoc Pennington  <hp@pobox.com>
12401
12402         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12403         connections
12404
12405         * dbus/dbus-address.c (create_entry): fix OOM handling when
12406         failing to alloc entry->method
12407
12408 2003-03-16  Havoc Pennington  <hp@pobox.com>
12409
12410         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12411         the watch
12412
12413         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12414         add some missing dbus_set_result
12415
12416         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12417         alloc the DBusMessageHandler
12418
12419         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12420         the transport here, since we call this from the finalizer; it
12421         resulted in a double-finalize.
12422
12423         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12424         where we tried to use transport->connection that was NULL,
12425         happened when transport was disconnected early on due to OOM
12426
12427         * bus/*.c: adapt to handle OOM for watches/timeouts
12428
12429         * dbus/dbus-transport-unix.c: port to handle OOM during
12430         watch handling
12431
12432         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12433         reference to unused bytes instead of a copy
12434
12435         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12436         out of memory
12437
12438         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12439         FALSE on OOM
12440
12441         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12442         of memory
12443
12444 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12445
12446         * doc/dbus-specification.sgml:
12447         Document reply message for ActivateService.
12448
12449 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12450
12451         * bus/activation.c: (bus_pending_activation_entry_free),
12452         (bus_pending_activation_free), (bus_activation_new),
12453         (bus_activation_unref), (bus_activation_service_created),
12454         (bus_activation_activate_service):
12455         * bus/activation.h:
12456         * bus/bus.c: (bus_context_new):
12457         * bus/desktop-file.c: (new_section):
12458         * bus/driver.c: (bus_driver_send_service_deleted),
12459         (bus_driver_handle_activate_service):
12460         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12461         * bus/services.h:
12462         * dbus/dbus-connection.c:
12463         (dbus_connection_send_with_reply_and_block):
12464         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12465         * dbus/dbus-protocol.h:
12466         Make activation work better. Now pending activations will be queued
12467         and the daemon won't try to activate services that are already registered.
12468
12469 2003-03-16  Havoc Pennington  <hp@pobox.com>
12470
12471         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12472         connection data
12473
12474         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12475         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12476
12477 2003-03-16  Havoc Pennington  <hp@pobox.com>
12478
12479         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12480         this. always run the test suite before commit...
12481
12482         * bus/*: adapt to DBusConnection API changes
12483
12484         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12485         requires renaming stuff to avoid dbus_connection_dispatch name
12486         conflict.
12487
12488         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12489         function
12490
12491         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12492         separate from _dbus_message_loader_return_buffer()
12493
12494         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12495         this, because it's now always broken to use; the number of
12496         messages in queue vs. the number still buffered by the message
12497         loader is undefined/meaningless. Should use
12498         dbus_connection_get_dispatch_state().
12499         (dbus_connection_dispatch): rename from
12500         dbus_connection_dispatch_message
12501
12502 2003-03-16  Havoc Pennington  <hp@pobox.com>
12503
12504         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12505         implementation
12506
12507 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12508
12509         * dbus/dbus-connection.c:
12510         (dbus_connection_send_with_reply_and_block):
12511         Decrease connection->n_incoming when removing an entry
12512         from the list.
12513         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12514         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12515         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12516         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12517         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12518         (dbus_dict_get_byte_array):
12519         Handle NULL arrays and strings. Also add support for byte arrays.
12520
12521         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12522         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12523         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12524         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12525         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12526         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12527         * dbus/dbus-marshal.h:
12528         Add support for marshalling and demarshalling empty arrays and strings.
12529
12530         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12531         (dbus_message_append_string_array),
12532         (dbus_message_iter_get_boolean),
12533         (dbus_message_iter_get_boolean_array),
12534         (dbus_message_iter_get_int32_array),
12535         (dbus_message_iter_get_uint32_array),
12536         (dbus_message_iter_get_double_array),
12537         (dbus_message_iter_get_byte_array),
12538         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12539         (check_message_handling):
12540         Add support for getting empty arrays and dicts.
12541
12542         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12543         Don't do any validation at all for now, that's better than just checking
12544         for ASCII.
12545
12546         * test/data/valid-messages/emptiness.message:
12547         New test message with lots of empty arrays.
12548
12549 2003-03-16  Havoc Pennington  <hp@pobox.com>
12550
12551         * dbus/dbus-connection.c
12552         (_dbus_connection_queue_received_message_link): new function that
12553         can't fail due to OOM
12554
12555         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12556         new function pops a message together with a list link
12557         containing it.
12558
12559         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12560         message queuing functions to avoid needing to alloc memory
12561
12562 2003-03-16  Havoc Pennington  <hp@pobox.com>
12563
12564         Oops - test code was only testing failure of around 30 of the
12565         mallocs in the test path, but it turns out there are 500+
12566         mallocs. I believe this was due to misguided linking setup such
12567         that there was one copy of dbus_malloc etc. in the daemon and one
12568         in the shared lib, and only daemon mallocs were tested. In any
12569         case, the test case now tests all 500+ mallocs, and doesn't pass
12570         yet, though there are lots of fixes in this patch.
12571
12572         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12573         this so that it doesn't need to allocate memory, since it
12574         has no way of indicating failure due to OOM (and would be
12575         annoying if it did).
12576
12577         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12578
12579         * bus/Makefile.am: rearrange to create two self-contained
12580         libraries, to avoid having libraries with overlapping symbols.
12581         that was resulting in weirdness, e.g. I'm pretty sure there
12582         were two copies of global static variables.
12583
12584         * dbus/dbus-internals.c: move the malloc debug stuff to
12585         dbus-memory.c
12586
12587         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12588         empty.
12589
12590         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12591
12592         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12593         on failure.
12594
12595         * bus/dispatch.c (bus_dispatch_add_connection): free
12596         message_handler_slot when no longer using it, so
12597         memory leak checkers are happy for the test suite.
12598
12599         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12600
12601         * bus/bus.c (new_connection_callback): disconnect in here if
12602         bus_connections_setup_connection fails.
12603
12604         * bus/connection.c (bus_connections_unref): fix to free the
12605         connections
12606         (bus_connections_setup_connection): if this fails, don't
12607         disconnect the connection, just be sure there are no side
12608         effects.
12609
12610         * dbus/dbus-string.c (undo_alignment): unbreak this
12611
12612         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12613         leaking
12614         (_dbus_auth_new): fix the order in which we free strings
12615         on OOM failure
12616
12617         * bus/connection.c (bus_connection_disconnected): fix to
12618         not send ServiceDeleted multiple times in case of memory
12619         allocation failure
12620
12621         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12622         get the base service name
12623         (dbus_bus_register_client): don't return base service name,
12624         instead store it on the DBusConnection and have an accessor
12625         function for it.
12626         (dbus_bus_register_client): rename dbus_bus_register()
12627
12628         * bus/dispatch.c (check_hello_message): verify that other
12629         connections on the bus also got the correct results, not
12630         just the one sending hello
12631
12632 2003-03-15  Havoc Pennington  <hp@pobox.com>
12633
12634         Make it pass the Hello handling test including all OOM codepaths.
12635         Now to do other messages...
12636
12637         * bus/services.c (bus_service_remove_owner): fix crash when
12638         removing owner from an empty list of owners
12639         (bus_registry_ensure): don't leave service in the list of
12640         a connection's owned services if we fail to put the service
12641         in the hash table.
12642
12643         * bus/connection.c (bus_connection_preallocate_oom_error): set
12644         error flag on the OOM error.
12645
12646         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12647         handle _dbus_transport_set_connection failure
12648
12649         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12650         to create watches up front and simply enable/disable them as
12651         needed.
12652         (unix_connection_set): this can now fail on OOM
12653
12654         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12655         of enabling/disabling a watch or timeout.
12656
12657         * bus/loop.c (bus_loop_iterate): don't touch disabled
12658         watches/timeouts
12659
12660         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12661
12662 2003-03-15  Havoc Pennington  <hp@pobox.com>
12663
12664         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12665         write useful test code, after all that futzing around ;-)
12666
12667         Test does not yet pass because we can't handle OOM in
12668         _dbus_transport_messages_pending (basically,
12669         dbus_connection_preallocate_send() does not prealloc the write
12670         watch). To fix this, I think we need to add new stuff to
12671         set_watch_functions, namely a SetEnabled function so we can alloc
12672         the watch earlier, then enable it later.
12673
12674         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12675         dbus-memory.c to the convenience lib
12676
12677         * bus/test.c: rename some static functions to keep them clearly
12678         distinct from stuff in connection.c. Handle client disconnection.
12679
12680 2003-03-14  Havoc Pennington  <hp@pobox.com>
12681
12682         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12683         transport, tests more of the real codepath. Set up clients
12684         with bus_setup_debug_client.
12685
12686         * bus/test.c (bus_setup_debug_client): function to set up debug
12687         "clients" on the main loop
12688
12689         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12690         support
12691
12692         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12693         server type
12694
12695         * dbus/dbus-server-debug.c: support a debug server based on pipes
12696
12697         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12698         (_dbus_close): new function
12699
12700         * configure.in: check for socketpair
12701
12702 2003-03-14  Havoc Pennington  <hp@redhat.com>
12703
12704         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12705         cheesy hack
12706
12707         * dbus/dbus-transport-debug.c: rework this a good bit to be
12708         less complicated. hopefully still works.
12709
12710         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12711         manually
12712
12713         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12714         after running it
12715
12716         * dbus/dbus-message.c (dbus_message_copy): rename from
12717         dbus_message_new_from_message, fix it up to copy
12718         all the message fields, add test case
12719
12720         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12721         not quite passing yet
12722
12723 2003-03-14  Havoc Pennington  <hp@pobox.com>
12724
12725         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12726         until no work remains" in test code. (the large diff here
12727         is just code movement, no actual changes)
12728
12729         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12730         1, no point waiting around for test code.
12731         (_dbus_server_debug_accept_transport): unref the timeout
12732         after adding it (right?)
12733
12734         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12735
12736 2003-03-13  Havoc Pennington  <hp@redhat.com>
12737
12738         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12739         out of memory
12740
12741         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12742         of memory
12743
12744         * dbus/dbus-connection.h: Make AddWatchFunction and
12745         AddTimeoutFunction return a bool so they can fail on out-of-memory
12746
12747         * bus/bus.c (bus_context_new): set up timeout handlers
12748
12749         * bus/connection.c (bus_connections_setup_connection): set up
12750         timeout handlers
12751
12752         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12753         can fail
12754
12755         * bus/bus.c (bus_context_new): adapt to changes
12756
12757         * bus/connection.c: adapt to changes
12758
12759         * test/watch.c: adapt to DBusWatch changes
12760
12761         * bus/dispatch.c (bus_dispatch_test): started adding this but
12762         didn't finish
12763
12764 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12765
12766         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12767
12768 2003-03-13  Havoc Pennington  <hp@pobox.com>
12769
12770         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12771         set up a test framework as for the library
12772
12773 2003-03-12  Havoc Pennington  <hp@pobox.com>
12774
12775         Throughout: purge global variables, introduce BusActivation,
12776         BusConnections, BusRegistry, etc. objects instead.
12777
12778         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12779         message bus object
12780
12781         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12782         going to redo this a bit differently I think
12783
12784 2003-03-12  Havoc Pennington  <hp@redhat.com>
12785
12786         Mega-patch that gets the message bus daemon initially handling
12787         out-of-memory. Work still needed. Also lots of random
12788         moving stuff to DBusError instead of ResultCode.
12789
12790         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12791
12792         * dbus/dbus-connection.c
12793         (dbus_connection_send_with_reply_and_block): use DBusError
12794
12795         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12796         DBusResultCode
12797
12798         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12799         code here, as the only failure possible is OOM.
12800
12801         * bus/connection.c (bus_connection_disconnect):
12802         rename bus_connection_disconnected as it's a notification only
12803
12804         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12805         "name" on get_args failure, should be done by get_args;
12806         don't disconnect client for bad args, just return an error.
12807         (bus_driver_handle_service_exists): ditto
12808
12809         * bus/services.c (bus_services_list): NULL-terminate returned array
12810
12811         * bus/driver.c (bus_driver_send_service_lost)
12812         (bus_driver_send_service_acquired): send messages from driver to a
12813         specific client to the client's unique name, not to the broadcast
12814         service.
12815
12816         * dbus/dbus-message.c (decode_header_data): reject messages that
12817         contain no name field
12818         (_dbus_message_get_client_serial): rename to
12819         dbus_message_get_serial and make public
12820         (_dbus_message_set_serial): rename from set_client_serial
12821         (_dbus_message_set_reply_serial): make public
12822         (_dbus_message_get_reply_serial): make public
12823
12824         * bus/connection.c (bus_connection_foreach): allow stopping
12825         iteration by returning FALSE from foreach function.
12826
12827         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12828         (dbus_connection_free_preallocated_send)
12829         (dbus_connection_preallocate_send): new API for sending a message
12830         without possibility of malloc failure.
12831         (dbus_connection_send_message): rename to just
12832         dbus_connection_send (and same for whole function family)
12833
12834         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12835
12836         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12837
12838         * bus/activation.c: handle/return errors
12839
12840         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12841
12842         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12843         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12844         (_dbus_result_from_errno): move to this file
12845
12846 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12847
12848         * dbus/dbus-marshal.c:
12849         (_dbus_marshal_set_string):
12850         Take a length argument so we can marshal the correct string
12851         length.
12852
12853         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12854         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12855         (_dbus_marshal_test):
12856         * dbus/dbus-marshal.h:
12857         Add support for marshalling and demarshalling dicts.
12858
12859         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12860         Add support for TYPE DICT.
12861
12862         * dbus/dbus-message.c: (set_string_field):
12863         Adjust header padding.
12864
12865         (dbus_message_append_args_valist), (dbus_message_append_dict),
12866         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12867         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12868         (check_message_handling), (check_have_valid_message):
12869         * dbus/dbus-message.h:
12870         Add functions for setting and getting dicts.
12871
12872         * dbus/dbus-protocol.h:
12873         Add DBUS_TYPE_DICT.
12874
12875         * dbus/dbus.h:
12876         Add dbus-dict.h
12877
12878         * doc/dbus-specification.sgml:
12879         Add information about how dicts are marshalled.
12880
12881         * test/data/invalid-messages/dict-with-nil-value.message:
12882         * test/data/invalid-messages/too-short-dict.message:
12883         * test/data/valid-messages/dict-simple.message:
12884         * test/data/valid-messages/dict.message:
12885         Add sample messages containing dicts.
12886
12887 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12888
12889         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12890
12891 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12892
12893         * dbus/Makefile.am:
12894         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12895         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12896         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12897         (dbus_dict_set_double), (dbus_dict_set_string),
12898         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12899         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12900         (dbus_dict_set_string_array), (_dbus_dict_test):
12901         * dbus/dbus-dict.h:
12902         Fix according to comments from Havoc.
12903
12904 2003-03-06  Michael Meeks  <michael@server.home>
12905
12906         * configure.in: if we don't have kde-config, disable have_qt.
12907
12908 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12909
12910         * dbus/Makefile.am:
12911         Add dbus-dict.[ch]
12912
12913         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12914         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12915         (dbus_dict_remove), (dbus_dict_get_value_type),
12916         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12917         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12918         (dbus_dict_put_double), (dbus_dict_put_string),
12919         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12920         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12921         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12922         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12923         (dbus_dict_get_double), (dbus_dict_get_string),
12924         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12925         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12926         (dbus_dict_get_string_array), (_dbus_dict_test):
12927         * dbus/dbus-dict.h:
12928         Add DBusDict implementation
12929
12930         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12931         * dbus/dbus-test.h:
12932         Add _dbus_dict_test
12933
12934 2003-03-04  Havoc Pennington  <hp@pobox.com>
12935
12936         * test/data/auth/*: adapt to changes
12937
12938         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12939         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12940         userid
12941
12942         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12943         more stuff from being in a context name, to make the protocol
12944         simpler to deal with
12945
12946         * dbus/dbus-errors.c (dbus_error_has_name): new function
12947         (dbus_error_is_set): new function
12948
12949         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12950         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12951
12952         * dbus/dbus-connection.c (dbus_connection_flush): also read
12953         messages during a flush operation
12954
12955         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12956
12957 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12958
12959         * configure.in: Check for gethostbyname on Solaris.
12960
12961         * dbus/dbus-transport.c: (_dbus_transport_open):
12962         Remove duplicate "tcp" entry.
12963
12964         * doc/dbus-specification.sgml:
12965         Clarify some things.
12966
12967 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12968
12969         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12970         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12971         (_dbus_keyring_test):
12972         * dbus/dbus-md5.c: (_dbus_md5_compute):
12973         * dbus/dbus-sha.c: (_dbus_sha_compute):
12974         Plug memory leaks.
12975
12976 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12977
12978         * README: Add some things.
12979
12980 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12981
12982         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12983         after case DBUS_TYPE_BOOELAN.
12984
12985 2003-03-02  Havoc Pennington  <hp@pobox.com>
12986
12987         * test/break-loader.c (randomly_set_extreme_ints): add test that
12988         sets really huge and small integers
12989
12990         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12991         that length of boolean array fits in the string, and that
12992         string has room for boolean value in single-bool case.
12993
12994         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12995         optional value to "ALIGN" command which is what to fill the
12996         alignment with.
12997
12998         * test/data/valid-messages/no-padding.message: add regression
12999         test for the message padding problem
13000
13001 2003-03-02  Havoc Pennington  <hp@pobox.com>
13002
13003         * dbus/dbus-message.c (decode_header_data): fix to always init
13004         message_padding, from Benjamin Dauvergne
13005
13006 2003-03-02  Havoc Pennington  <hp@pobox.com>
13007
13008         * configure.in: 0.5
13009
13010         * NEWS: Update.
13011
13012 2003-03-01  Joe Shaw  <joe@assbarn.com>
13013
13014         * configure.in: Check for "struct cmsgcred" and try to access its
13015         members for BSD-like unices.
13016
13017         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13018         _dbus_read_credentials_unix_socket().
13019         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13020         read() for reading the credential byte off the unix socket.  Use
13021         struct cmsgcred on systems that support it.
13022
13023 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13024
13025         * glib/Makefile.am:
13026         * configure.in:
13027         Make gthreads-2.0 dependency optional. Don't build thread test if
13028         its not found.
13029
13030 2003-02-27  Havoc Pennington  <hp@pobox.com>
13031
13032         * dbus/dbus-connection.c
13033         (dbus_connection_send_message_with_reply_and_block): fix doh!
13034         doh! doh! bug that resulted in never removing a reply from the
13035         queue, no wonder we called get_reply_serial so much ;-)
13036
13037         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13038         and client serial instead of demarshaling them every time
13039
13040 2003-02-27  Havoc Pennington  <hp@pobox.com>
13041
13042         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13043         more inlined, using dbus-string-private.h, speeds things up
13044         substantially
13045
13046         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13047         when freeing the string
13048         (_dbus_string_steal_data): fix for align offset
13049         (undo_alignment): new function
13050
13051 2003-02-26  Havoc Pennington  <hp@redhat.com>
13052
13053         All kinds of audit fixes from Owen, plus initial attempt to
13054         handle unaligned memory returned from malloc.
13055
13056         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13057         leave room for align_offset and nul byte
13058         (fixup_alignment): function to track an align_offset and
13059         ensure real->str is aligned
13060         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13061         to allow a nul byte plus align offset
13062         (_dbus_string_lock): fix overflow issue
13063         (_dbus_string_init_const_len): add assertions on sanity of len,
13064         assign allocated to be ALLOCATION_PADDING larger than len
13065         (set_length): fixup the overflow handling
13066         (_dbus_string_get_data_len): fix overflow in assertion
13067         (open_gap): detect overflow in size of gap to be opened
13068         (_dbus_string_lengthen): add overflow check
13069         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13070         (_dbus_string_append): add overflow check
13071         (_dbus_string_append_unichar): overflow
13072         (_dbus_string_delete): fix overflow in assertion
13073         (_dbus_string_copy_len): overflow in assertion
13074         (_dbus_string_replace_len): overflows in assertions
13075         (_dbus_string_find): change to implement in terms of
13076         _dbus_string_find_to
13077         (_dbus_string_find_to): assorted fixage
13078         (_dbus_string_equal_c_str): assert c_str != NULL,
13079         fix logic so the function works
13080         (_dbus_string_ends_with_c_str): fix overflow thingy
13081         (_dbus_string_base64_encode): overflow fix
13082         (_dbus_string_validate_ascii): overflow
13083         (_dbus_string_validate_nul): overflow
13084
13085 2003-02-26  Havoc Pennington  <hp@redhat.com>
13086
13087         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13088
13089 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13090
13091         * configure.in:
13092         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13093
13094         * dbus/dbus-connection.c:
13095         * dbus/dbus-connection.h:
13096         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13097         Add dbus_connection_set_wakeup_main_function and use it when queueing
13098         incoming and outgoing messages.
13099
13100
13101         * dbus/dbus-dataslot.c:
13102         Threadsafe usage of DBusDataSlotAllocator
13103
13104         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13105         dbus_new can fail.
13106
13107         * dbus/dbus-server-unix.c:
13108         Add todo comment
13109
13110         * glib/dbus-gmain.c:
13111         Implement the new wakeup functions for glib.
13112
13113         * glib/Makefile.am:
13114         * glib/test-thread-client.c:
13115         * glib/test-thread-server.c:
13116         * glib/test-thread.h:
13117         Initial cut at some thread test code. Not really done yet.
13118
13119 2003-02-26  Havoc Pennington  <hp@pobox.com>
13120
13121         * dbus/dbus-connection.c
13122         (dbus_connection_send_message_with_reply_and_block): fix crash
13123         where we ref'd the outgoing message instead of the returned reply
13124
13125         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13126         at the end of this function, so if we didn't need to read for
13127         authentication, we reinstall it for receiving messages
13128
13129         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13130         a NULL sender for peer-to-peer case
13131
13132         * dbus/dbus-transport-unix.c (check_read_watch): handle
13133         !authenticated case correctly
13134
13135         * glib/dbus-gmain.c: add support for DBusServer
13136
13137         * dbus/dbus-server.c: add data slot support
13138
13139         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13140         return values and handle errors
13141
13142         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13143         DBusConnection
13144
13145         * Doxyfile.in (INPUT): add glib subdir
13146
13147         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13148         setup_with_g_main instead of hookup_with_g_main; write docs
13149
13150 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13151
13152         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13153         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13154         * dbus/dbus-message.c: (dbus_message_append_boolean),
13155         (dbus_message_append_boolean_array),
13156         (dbus_message_get_args_valist), (_dbus_message_test):
13157         * dbus/dbus-message.h:
13158         * doc/dbus-specification.sgml:
13159         Various fixes as pointed out by Havoc.
13160
13161         * test/data/invalid-messages/bad-boolean-array.message:
13162         * test/data/invalid-messages/bad-boolean.message:
13163         Add invalid boolean value test cases.
13164
13165 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13166
13167         * dbus/dbus-internals.c: (_dbus_type_to_string):
13168         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13169         (_dbus_marshal_validate_arg):
13170         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13171         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13172         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13173         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13174         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13175         (dbus_message_iter_get_double),
13176         (dbus_message_iter_get_boolean_array), (message_iter_test):
13177         * dbus/dbus-message.h:
13178         * dbus/dbus-protocol.h:
13179         * doc/dbus-specification.sgml:
13180         * test/data/valid-messages/lots-of-arguments.message:
13181         Add support for boolean and boolean array types.
13182
13183 2003-02-23  Havoc Pennington  <hp@pobox.com>
13184
13185         * dbus/dbus-keyring.c: finish most of this implementation and
13186         simple unit test
13187
13188         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13189         these barf if the error isn't cleared to NULL
13190
13191         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13192         (_dbus_create_directory): new function
13193
13194         * dbus/dbus-errors.c (dbus_set_error): fix warning
13195
13196         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13197         (_dbus_string_hex_decode): new function
13198         (test_hex_roundtrip): test code
13199
13200         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13201
13202         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13203
13204         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13205         the save-to-temp/rename trick to atomically write the new file
13206         (_dbus_string_parse_uint): new function
13207
13208 2003-02-22  Havoc Pennington  <hp@pobox.com>
13209
13210         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13211
13212 2003-02-22  Havoc Pennington  <hp@pobox.com>
13213
13214         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13215         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13216
13217         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13218
13219         * dbus/test/data/sha-1: add US government test suite for SHA-1
13220
13221 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13222
13223         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13224         Make string arrays NULL-terminated.
13225
13226         * dbus/dbus-memory.c: (dbus_free_string_array):
13227         * dbus/dbus-memory.h:
13228         New function for freeing NULL-terminated string arrays.
13229
13230         * dbus/dbus-message-builder.c: (append_quoted_string),
13231         (_dbus_message_data_load):
13232         Add support for array types.
13233
13234         * dbus/dbus-message.c: (check_message_handling):
13235         Add more types as test cases.
13236
13237         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13238         (_dbus_string_parse_double):
13239         Add the start offset to the end offset.
13240
13241         * test/data/valid-messages/lots-of-arguments.message:
13242         New test message with lots of arguments.
13243
13244 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13245
13246         * dbus/dbus-message.c: (dbus_message_append_nil),
13247         (dbus_message_append_int32), (dbus_message_append_uint32),
13248         (dbus_message_append_double), (dbus_message_append_string),
13249         (dbus_message_append_int32_array),
13250         (dbus_message_append_uint32_array),
13251         (dbus_message_append_double_array),
13252         (dbus_message_append_byte_array),
13253         (dbus_message_append_string_array):
13254         Fix all out-of-memory handling in these functions.
13255
13256 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13257
13258         * dbus/dbus-message.c: (dbus_message_append_nil):
13259         Fix a silly.
13260
13261 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13262
13263         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13264         (dbus_message_append_nil), (dbus_message_append_int32_array),
13265         (dbus_message_append_uint32_array),
13266         (dbus_message_append_double_array),
13267         (dbus_message_append_byte_array),
13268         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13269         (dbus_message_iter_get_int32_array),
13270         (dbus_message_iter_get_uint32_array),
13271         (dbus_message_iter_get_double_array),
13272         (dbus_message_iter_get_byte_array),
13273         (dbus_message_iter_get_string_array):
13274
13275         * dbus/dbus-message.h:
13276         Add functions for appending and getting arrays.
13277
13278 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13279
13280         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13281         element size at least 8 bytes, fixes mempool tests on
13282         64-bit machines.
13283
13284 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13285
13286         * dbus/dbus-transport-unix.c (unix_do_iteration):
13287         Unlock the connection mutex during a blocking select call.
13288         Add todo about how we need a way to wake up the select.
13289
13290         * dbus/dbus-connection-internal.h:
13291         * dbus/dbus-connection.c:
13292         Add _dbus_connection_lock and _dbus_connection_unlock.
13293
13294 2003-02-19  Havoc Pennington  <hp@pobox.com>
13295
13296         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13297         Doxyfile.in, not Doxyfile
13298
13299         * dbus/dbus-keyring.c: do some hacking on this
13300
13301         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13302
13303         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13304         dbus_error_init
13305         (dbus_set_error): remove dbus_error_init, check for message ==
13306         NULL *before* we sprintf into it, and add @todo about including
13307         system headers in this file
13308
13309         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13310
13311         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13312
13313         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13314         get various bits of user information based on either username
13315         or user ID
13316         (_dbus_homedir_from_username): new function
13317
13318 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13319
13320         * configure.in:
13321         Add check for nonposix getpwnam_r
13322
13323         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13324         Align the pool element size to a sizeof (void *) boundary.
13325
13326         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13327         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13328         General Solaris fixes.
13329
13330         * test/data/valid-messages/simplest-manual.message:
13331         Explicitly state that we want little-endian packing.
13332
13333 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13334
13335         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13336
13337         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13338         Added to create a transport connecting using a tcp/ip socket.
13339
13340         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13341         to a tcp socket at given host and port.
13342         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13343         hostname and port.
13344
13345         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13346
13347         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13348         Added to create a server listening on a TCP/IP socket.
13349
13350 2003-02-19  Havoc Pennington  <hp@pobox.com>
13351
13352         Throughout: mop up all the Doxygen warnings and undocumented
13353         stuff.
13354
13355         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13356         to search any paths.
13357
13358         * dbus/dbus-threads.c: move global mutex initializers to
13359         dbus-internals.h, multiple prototypes was confusing doxygen
13360         besides being kind of ugly
13361
13362         * Doxyfile (PREDEFINED): have Doxygen define
13363         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13364         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13365         (do not abuse the feature! it's for stuff like the autogenerated
13366         macros in dbus-md5.c, not just for things you don't feel like
13367         documenting...)
13368
13369 2003-02-18  Havoc Pennington  <hp@pobox.com>
13370
13371         * dbus/dbus-string.c (_dbus_string_zero): new function
13372
13373         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13374         wrap it in some dbus-friendly API
13375
13376         * dbus/dbus-types.h: add 16-bit types
13377
13378 2003-02-18  Joe Shaw  <joe@assbarn.com>
13379
13380         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13381         credentials from our currently running process.
13382         (get_word): Fix a buglet where we were copying the entire length
13383         instead of relative to our position.
13384
13385         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13386         keys on the stack... it's 640k of data.
13387
13388         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13389         read the credentials byte off the socket, even if we don't have
13390         SO_PEERCRED.
13391         (_dbus_poll): Implement poll() using select() for systems which
13392         don't have it.
13393
13394         * glib/test-dbus-glib.c (main): Print out an error if no
13395         parameters are given.
13396
13397         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13398         can fallback to a secondary auth mechanism if the first fails.
13399
13400 2003-02-18  Havoc Pennington  <hp@pobox.com>
13401
13402         * AUTHORS: add Alex
13403
13404 2003-02-17  Havoc Pennington  <hp@pobox.com>
13405
13406         * doc/dbus-specification.sgml: lots of cosmetic
13407         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13408         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13409         s/server/bus/ (except in authentication section). Add a section
13410         "Message Bus Message Routing"
13411
13412 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13413
13414         Release 0.4
13415
13416         * NEWS: Update
13417
13418 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13419
13420         * doc/dbus-specification.sgml:
13421         Specification updates.
13422
13423 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13424
13425         * bus/activation.c: (bus_activation_init), (child_setup),
13426         (bus_activation_activate_service):
13427         * bus/activation.h:
13428         * bus/main.c: (main):
13429         Set DBUS_ADDRESS environment variable.
13430
13431         * dbus/dbus-errors.c: (dbus_set_error):
13432         Don't use va_copy since that's a C99 feature.
13433
13434         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13435         (_dbus_spawn_async):
13436         * dbus/dbus-sysdeps.h:
13437         Add child_setup_func to _dbus_spawn_async.
13438
13439         * doc/dbus-specification.sgml:
13440         Update specification.
13441
13442         * test/spawn-test.c: (setup_func), (main):
13443         Fix test.
13444
13445 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13446
13447         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13448         Added todo.
13449
13450 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13451
13452         * doc/.cvsignore:
13453         * doc/Makefile.am:
13454         * doc/dbus-test-plan.sgml:
13455         Add test plan document.
13456
13457         * test/Makefile.am:
13458         Fix distcheck.
13459
13460 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13461
13462         * dbus/dbus-message.c: (decode_header_data),
13463         (_dbus_message_loader_return_buffer):
13464         Set the header padding amount when loading a message.
13465
13466 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13467
13468         * bus/dispatch.c: (send_one_message):
13469         Only send broadcast messages to registered connections.
13470
13471         * dbus/dbus-message.c: (dbus_message_name_is):
13472         * dbus/dbus-message.h:
13473         New convenience function.
13474
13475         * dbus/dbus-transport-debug.c: (do_reading):
13476         Only dispatch one message per run.
13477
13478         * test/Makefile.am:
13479         * test/bus-test.c: (new_connection_callback), (die),
13480         (test_hello_client1_handler), (test_hello_client2_handler),
13481         (test_hello_replies), (main):
13482
13483         * test/bus-test-loop.[ch]:
13484         Add these.
13485
13486 2003-02-16  Havoc Pennington  <hp@pobox.com>
13487
13488         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13489         backward conditional
13490
13491 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13492
13493         * dbus/dbus-connection.c:
13494         Implement sent_message_with_reply. (with_reply_and block is still
13495         busted).
13496         Made dispatch_message not lose message if OOM.
13497
13498         * dbus/dbus-errors.h:
13499         Add NoReply error (for reply timeouts).
13500
13501 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13502
13503         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13504         Actually free keys and values when destroying hashtable.
13505
13506 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13507
13508         * dbus/dbus-auth.c: (client_try_next_mechanism):
13509         Plug a leak.
13510
13511         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13512         Return TRUE if there's no thread implementation around.
13513
13514         * glib/dbus-gmain.c: (free_source),
13515         (dbus_connection_hookup_with_g_main):
13516         Make sure to remove the GSource when the connection is finalized.
13517
13518 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13519
13520         * bus/dispatch.c: (bus_dispatch_message_handler):
13521         * dbus/dbus-errors.h:
13522         Return an error if someone tries to send a message to a service
13523         that doesn't exist.
13524
13525 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13526
13527         * bus/activation.c: (load_directory), (bus_activation_init),
13528         (bus_activation_activate_service):
13529         * bus/activation.h:
13530         * bus/driver.c:
13531         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13532         More work on the activation handling.
13533
13534         * dbus/dbus-errors.h:
13535         Add some error messages
13536
13537         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13538         * dbus/dbus-message.h:
13539         New function that creates an error message.
13540
13541         * dbus/dbus-protocol.h:
13542         Add ACTIVATE_SERVER message.
13543
13544         * dbus/dbus-server-unix.c: (unix_handle_watch),
13545         (_dbus_server_new_for_domain_socket):
13546         Call _dbus_fd_set_close_on_exec.
13547
13548         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13549         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13550         (_dbus_fd_set_close_on_exec):
13551         * dbus/dbus-sysdeps.h:
13552         Add _dbus_fd_set_close_on exec function. Also add function that checks
13553         that all open fds are set to close-on-exec and warns otherwise.
13554
13555         * dbus/dbus-transport-unix.c:
13556         (_dbus_transport_new_for_domain_socket):
13557         Call _dbus_fd_set_close_on_exec.
13558
13559 2003-02-16  Havoc Pennington  <hp@pobox.com>
13560
13561         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13562         allow people to avoid setting SIGPIPE to SIG_IGN
13563         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13564         we've been asked not to
13565
13566 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13567
13568         * dbus/dbus-list.c: (_dbus_list_append_link),
13569         (_dbus_list_prepend_link):
13570         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13571         (dbus_realloc):
13572         Warning fixes.
13573
13574 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13575
13576         * bus/Makefile.am:
13577         * bus/activation.c: (bus_activation_entry_free),
13578         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13579         * bus/activation.h:
13580         * bus/main.c: (main):
13581         Add simple activation support, doesn't work yet though.
13582
13583 2003-02-15   Zack Rusin  <zack@kde.org>
13584
13585         * qt/dbus-qthread.cpp:  small casting fix
13586
13587 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13588
13589         * dbus/dbus-errors.c: (dbus_set_error):
13590         * dbus/dbus-errors.h:
13591         Add a few errors and make dbus_set_error void.
13592
13593         * dbus/dbus-sysdeps.c:
13594         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13595         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13596         * dbus/dbus-sysdeps.h:
13597         Add _dbus_spawn_async.
13598
13599         * test/spawn-test.c: (main):
13600         Test for _dbus_spawn_async.
13601
13602 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13603
13604         * dbus/dbus-internals.h:
13605         Fix build without tests.
13606
13607         * dbus/dbus-list.c: (alloc_link):
13608         Fix a segfault when a malloc fails.
13609
13610         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13611         (dbus_malloc0), (dbus_realloc):
13612         Add support for malloc debugging.
13613
13614 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13615
13616         * dbus/dbus-threads.c:
13617         * dbus/dbus-threads.h:
13618         Add condvars. Remove static mutext from API.
13619         Implement static mutexes by initializing them from threads_init.
13620
13621         * glib/dbus-gthread.c:
13622         * qt/dbus-qthread.cpp:
13623         Update with the thread api changes.
13624
13625
13626         * dbus/dbus-list.c:
13627         * dbus/dbus-list.h:
13628         Turn StaticMutex into normal mutex + init function.
13629         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13630         _dbus_list_append_link, _dbus_list_prepend_link
13631
13632
13633         * dbus/dbus-sysdeps.c:
13634         * dbus/dbus-sysdeps.h:
13635         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13636         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13637
13638         * dbus/dbus-protocol.h:
13639         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13640
13641         * dbus/dbus-message.c:
13642         Make ref/unref atomic.
13643         Fix some docs.
13644
13645         * dbus/dbus-connection-internal.h:
13646         * dbus/dbus-connection.c:
13647         * dbus/dbus-connection.h:
13648         Make threadsafe.
13649         Change _peek to _borrow,_return & _steal_borrowed.
13650         Change disconnect callback to event.
13651         Make dbus_connection_dispatch_messages reentrant.
13652
13653         * dbus/dbus-transport.c:
13654         Don't ref the connection on calls to the transport
13655         implementation.
13656
13657         * dbus/dbus-message-handler.c:
13658         Make threadsafe.
13659
13660         * glib/dbus-gmain.c:
13661         Don't use peek_message anymore
13662
13663         * test/Makefile.am:
13664         * test/debug-thread.c:
13665         * test/debug-thread.h:
13666         Simple thread implementation that asserts() on deadlocks in
13667         single-threaded code.
13668
13669         * test/bus-test.c:
13670         (main) Call debug_threads_init.
13671
13672         * test/watch.c:
13673         Use disconnect message instead of disconnect callback.
13674
13675         * bus/connection.c:
13676         * bus/connection.h:
13677         Don't call dbus_connection_set_disconnect_function. Instead export
13678         bus_connection_disconnect.
13679
13680         * bus/dispatch.c:
13681         Call bus_connection_disconnect when we get a disconnected message.
13682
13683 2003-02-15  Havoc Pennington  <hp@pobox.com>
13684
13685         * dbus/dbus-message.c (dbus_message_new): fool around with the
13686         docs
13687
13688 2003-02-14  Havoc Pennington  <hp@pobox.com>
13689
13690         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13691
13692         * dbus/dbus-memory.c: fail if the debug functions indicate we
13693         should
13694
13695         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13696         (_dbus_decrement_fail_alloc_counter): debug functions to
13697         simulate memory allocation failures
13698
13699 2003-02-14  Havoc Pennington  <hp@pobox.com>
13700
13701         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13702         to DBusError
13703
13704 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13705
13706         * bus/driver.c: (bus_driver_handle_hello):
13707         * bus/driver.h:
13708         * bus/services.c: (bus_service_lookup):
13709         Reorder message sending so we get a more sane order.
13710
13711         * test/bus-test.c: (message_handler):
13712         Fix tyop.
13713
13714 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13715
13716         * bus/driver.c: (bus_driver_send_service_deleted),
13717         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13718         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13719         (bus_driver_send_welcome_message),
13720         (bus_driver_handle_list_services),
13721         (bus_driver_handle_acquire_service),
13722         (bus_driver_handle_service_exists):
13723         * dbus/dbus-bus.c: (dbus_bus_register_client),
13724         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13725         * dbus/dbus-errors.c: (dbus_result_to_string):
13726         * dbus/dbus-errors.h:
13727         * dbus/dbus-message.c: (dbus_message_append_args),
13728         (dbus_message_append_args_valist), (dbus_message_get_args),
13729         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13730         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13731         (dbus_message_iter_get_byte_array),
13732         (dbus_message_iter_get_string_array), (message_iter_test),
13733         (check_message_handling), (_dbus_message_test):
13734         * dbus/dbus-message.h:
13735         * test/bus-test.c: (main):
13736         Change fields to arguments in messages, so that they won't be
13737         confused with header fields.
13738
13739         * glib/test-dbus-glib.c: (main):
13740         Remove append_fields from hello message.
13741
13742 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13743
13744         * dbus/dbus-errors.c:
13745         * dbus/dbus-message.c:
13746         * dbus/dbus-string.c:
13747         Documentation fixes.
13748
13749 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13750
13751         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13752         (remove_timeout):
13753         Implement support for timeouts in dbus-glib.
13754
13755 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13756
13757         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13758         * dbus/dbus-message.c: (process_test_subdir):
13759         * test/break-loader.c: (find_breaks_based_on):
13760         Plug some memory leaks.
13761
13762 2003-02-13  Richard Hult  <rhult@codefactory.se>
13763
13764         * bus/main.c: Fix build.
13765
13766         * dbus/dbus-errors.h:
13767         * dbus/dbus-errors.c: Fix copyright for Anders.
13768
13769 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13770
13771         * bus/Makefile.am:
13772         Add utils.[ch]
13773
13774         * bus/connection.c: (bus_connection_foreach):
13775         Fix a warning.
13776
13777         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13778         (unescape_string), (new_section), (parse_section_start),
13779         (parse_key_value), (report_error), (bus_desktop_file_load),
13780         (bus_desktop_file_get_string):
13781         * bus/desktop-file.h:
13782         Use DBusError for error reporting.
13783
13784         * bus/dispatch.c: (send_one_message),
13785         (bus_dispatch_message_handler):
13786         * bus/driver.c: (bus_driver_send_service_deleted),
13787         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13788         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13789         (bus_driver_send_welcome_message),
13790         (bus_driver_handle_list_services),
13791         (bus_driver_handle_acquire_service),
13792         (bus_driver_handle_service_exists):
13793         * bus/loop.c: (bus_loop_run):
13794         * bus/main.c:
13795         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13796
13797         * bus/utils.c: (bus_wait_for_memory):
13798         * bus/utils.h:
13799         New files with general utility functions.
13800
13801         * dbus/dbus-internals.h:
13802         Remove _DBUS_HANDLE_OOM.
13803
13804 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13805
13806         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13807         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13808         * dbus/dbus-errors.h:
13809         Add DBusError structure.
13810
13811 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13812
13813         * test/data/valid-messages/standard-acquire-service.message:
13814         * test/data/valid-messages/standard-hello.message:
13815         * test/data/valid-messages/standard-list-services.message:
13816         * test/data/valid-messages/standard-service-exists.message:
13817         Add some standard messages.
13818
13819 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13820
13821         * bus/driver.c: (bus_driver_send_welcome_message),
13822         (bus_driver_handle_list_services),
13823         (bus_driver_handle_acquire_service),
13824         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13825         Update for API changes in libdbus.
13826
13827         * dbus/dbus-message.c: (dbus_message_new_reply):
13828         * dbus/dbus-message.h:
13829         Remove the name argument. The spec states that replies shouldn't
13830         have a name.
13831
13832 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13833
13834         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13835         (report_error), (bus_desktop_file_load), (lookup_section),
13836         (lookup_line), (bus_desktop_file_get_raw),
13837         (bus_desktop_file_get_string):
13838         * bus/desktop-file.h:
13839         Some fixes, and new functions for getting a key value from a section.
13840
13841 2003-02-13  Havoc Pennington  <hp@pobox.com>
13842
13843         * test/data/auth/fail-after-n-attempts.auth-script: new test
13844
13845         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13846         reject the client.
13847
13848 2003-02-13  Havoc Pennington  <hp@pobox.com>
13849
13850         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13851         dbus_credentials_match were backward
13852
13853         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13854         NO_CREDENTIALS and ROOT_CREDENTIALS
13855
13856         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13857         into here. Never process more commands after we've reached an
13858         end state; store further data as unused bytes.
13859
13860         * test/data/auth/*: add more auth tests
13861
13862         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13863         command to match exact string and EXPECT_UNUSED to match unused
13864         bytes
13865
13866         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13867
13868 2003-02-12  Havoc Pennington  <hp@pobox.com>
13869
13870         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13871         \r off of popped lines
13872
13873         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13874         scripts
13875
13876         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13877         SEND, append \r\n
13878
13879 2003-02-12  Havoc Pennington  <hp@pobox.com>
13880
13881         * dbus/Makefile.am: remove break-loader from the build, since it
13882         moved.
13883
13884         * configure.in: add --enable-gcov to turn on coverage profiling
13885         flags and disable optimization
13886
13887 2003-02-10  Havoc Pennington  <hp@pobox.com>
13888
13889         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13890         initial cut at test framework for DBusAuth from laptop.
13891         Doesn't quite work yet but it compiles and I need to get
13892         it off the 266mhz laptop. ;-)
13893
13894         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13895         fix a memleak in error case
13896
13897 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13898
13899         * bus/Makefile.am:
13900         * bus/desktop-file.c:
13901         * bus/desktop-file.h:
13902         Add a desktop file parser.
13903
13904 2003-02-11  Zack Rusin  <zack@kde.org>
13905
13906         * qt/message.[h|cpp]: sample implementation
13907         of the KDE wrapper for DBusMessage
13908
13909 2003-02-09  Zack Rusin  <zack@kde.org>
13910
13911         * test/bus-test.c: make_it_compile
13912         * doc/dbus-specification.sgml: minimal semantic fix
13913
13914 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13915
13916         Release 0.3
13917
13918         * NEWS: Update
13919
13920 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13921
13922         * dbus/Makefile.am:
13923         * dbus/dbus-break-loader.c:
13924         * test/Makefile.am:
13925         * test/break-loader.c:
13926         Move dbus-break-loader to test/ and rename it to break-loader.
13927
13928 2003-02-02  Havoc Pennington  <hp@pobox.com>
13929
13930         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13931         for code to manage cookies in your home directory
13932
13933         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13934
13935         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13936         to authenticate, then disconnect the client.
13937
13938 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13939
13940         * dbus/dbus-message.c (dbus_message_append_fields):
13941         Correct docs.
13942
13943 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13944
13945         * doc/dbus-specification.sgml:
13946         Update address format section.
13947
13948 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13949
13950         * test/Makefile.am:
13951         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13952         (message_handler), (new_connection_callback), (loop_quit),
13953         (loop_run), (main):
13954         Add bus test.
13955
13956 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13957
13958         * bus/driver.c: (bus_driver_handle_service_exists):
13959         Simplify the code a bit.
13960
13961         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13962         Fix a silly.
13963
13964 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13965
13966         * bus/Makefile.am:
13967         Add libdbus-daemon.la and link to it.
13968
13969 2003-02-01  James Willcox  <jwillcox@gnome.org>
13970
13971         * bus/driver.c: (bus_driver_handle_own_service):
13972         Actually include the service reply code in the message.
13973
13974 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13975
13976         * bus/driver.c: (bus_driver_handle_service_exists):
13977         Don't unref the incoming message.
13978
13979 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13980
13981         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13982
13983 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13984
13985         * dbus/dbus-server.c: (dbus_server_listen):
13986         * dbus/dbus-transport.c: (_dbus_transport_open):
13987         ifdef out the calls to the debug transport and server.
13988
13989 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13990
13991         * dbus/dbus-watch.c (dbus_watch_get_flags):
13992         Add note in the docs that ERROR or HANGUP won't be returned
13993         and are assumed always on.
13994
13995         * glib/dbus-gmain.c (add_watch):
13996         Always add IO_ERR | IO_HUP
13997
13998         * dbus/dbus-message.h:
13999         Add semicolon after dbus_message_iter_get_string_array().
14000         Makes qt code build again
14001
14002 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14003
14004         * bus/driver.c: (create_unique_client_name),
14005         (bus_driver_handle_hello):
14006         Don't take a name, just use a numeric id to identify
14007         each client.
14008
14009         * dbus/Makefile.am:
14010         * dbus/dbus-bus.c: (dbus_bus_register_client),
14011         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14012         * dbus/dbus-bus.h:
14013         Add new convenience functions for communicating with the bus.
14014
14015         * dbus/dbus-message.h:
14016
14017         * dbus/dbus-protocol.h:
14018         Fix a typo.
14019
14020 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14021
14022         * dbus/dbus-message.c (dbus_message_append_fields):
14023         Add some more doc comments.
14024
14025 2003-02-01  Havoc Pennington  <hp@pobox.com>
14026
14027         * dbus/dbus-break-loader.c (randomly_modify_length): change
14028         a 4-byte value in the message as if it were a length
14029
14030         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14031         execute bit on saved files
14032
14033 2003-02-01  Havoc Pennington  <hp@pobox.com>
14034
14035         * dbus/dbus-break-loader.c (main): new program to find messages
14036         that break the loader.
14037
14038         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14039         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14040
14041         * dbus/dbus-string.c (_dbus_string_set_byte): new
14042
14043 2003-01-31  Havoc Pennington  <hp@pobox.com>
14044
14045         * dbus/dbus-message.c: refactor the test code to be more general,
14046         in preparation for writing a "randomly permute test cases to
14047         try to break the loader" program.
14048
14049 2003-01-31  Havoc Pennington  <hp@pobox.com>
14050
14051         * doc/dbus-specification.sgml: work on the specification
14052
14053         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14054         the protocol version of the message.
14055
14056         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14057         no longer specifies that.
14058         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14059         1/2/3/4)
14060
14061         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14062         "break" for DBUS_TYPE_NIL, remove @todo
14063
14064 2003-01-31  Havoc Pennington  <hp@pobox.com>
14065
14066         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14067         just set_is_error/get_is_error as this is a commonly-used
14068         function, and write docs.
14069
14070 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14071
14072         * dbus/dbus-address.c: (dbus_address_entry_free):
14073         Free key and value lists.
14074
14075         * dbus/dbus-internals.c: (_dbus_type_to_string):
14076         Add the types we didn't have.
14077
14078         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14079         (_dbus_marshal_validate_arg):
14080         Add NIL types.
14081
14082         * dbus/dbus-message.c: (dbus_message_set_sender):
14083         Remove todo about being able to set sender to NULL.
14084
14085         (dbus_message_set_is_error_reply),
14086         (dbus_message_get_is_error_reply):
14087         * dbus/dbus-message.h:
14088         New functions.
14089
14090         * dbus/dbus-protocol.h:
14091         Add error reply flag.
14092
14093         * test/data/valid-messages/opposite-endian.message:
14094         Add NIL type to test.
14095
14096 2003-01-31  Havoc Pennington  <hp@pobox.com>
14097
14098         * doc/dbus-specification.sgml: fully specify the header.  Add
14099         flags and major protocol version, and change header/body len to
14100         unsigned.
14101
14102         * dbus/dbus-message-builder.c (append_saved_length): append length
14103         as uint32
14104
14105         * dbus/dbus-message.c (dbus_message_create_header): change header
14106         length and body length to unsigned. Add the new fields from the
14107         spec
14108         (_dbus_message_loader_return_buffer): unsigned header/body len
14109
14110 2003-01-30  Havoc Pennington  <hp@pobox.com>
14111
14112         * dbus/dbus-auth.c: rework to use only REJECTED, no
14113         MECHANISMS
14114
14115         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14116         use REJECTED, suggested by Mark McLoughlin
14117
14118 2003-01-30  Havoc Pennington  <hp@pobox.com>
14119
14120         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14121         a better way to report errors here. e.g.  "unix address lacks
14122         path" or something. also "no such file" when the path doesn't
14123         exist, etc.
14124
14125         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14126         leaking list nodes
14127         (dbus_parse_address): add @todo about documenting address format,
14128         and allowing , and ; to be escaped
14129
14130 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14131
14132         * dbus/Makefile.am:
14133         Add dbus-address.[ch]
14134
14135         * dbus/dbus-address.c: (dbus_address_entry_free),
14136         (dbus_address_entries_free), (create_entry),
14137         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14138         (dbus_parse_address), (_dbus_address_test):
14139         * dbus/dbus-address.h:
14140         New files for dealing with address parsing.
14141
14142         * dbus/dbus-connection.c:
14143         Document timeout functions.
14144
14145         * dbus/dbus-message.c:
14146         Document dbus_message_new_from_message.
14147
14148         * dbus/dbus-server-debug.c:
14149         Document.
14150
14151         * dbus/dbus-server.c: (dbus_server_listen):
14152         Parse address and use correct server implementation.
14153
14154         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14155         * dbus/dbus-string.h:
14156         New function with test.
14157
14158         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14159         * dbus/dbus-test.h:
14160         Add address tests.
14161
14162         * dbus/dbus-transport-debug.c:
14163         Document.
14164
14165         * dbus/dbus-transport.c: (_dbus_transport_open):
14166         Parse address and use correct transport implementation.
14167
14168 2003-01-30  Havoc Pennington  <hp@pobox.com>
14169
14170         * dbus/dbus-message.c: use message->byte_order instead of
14171         DBUS_COMPILER_BYTE_ORDER throughout.
14172         (dbus_message_create_header): pad header to align the
14173         start of the body of the message to 8-byte boundary
14174
14175         * dbus/dbus-marshal.h: make all the demarshalers take const
14176         DBusString arguments.
14177
14178         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14179         validate message args here, so we don't have to do slow validation
14180         later, and so we catch bad messages as they are incoming. Also add
14181         better checks on header_len and body_len. Also fill in
14182         message->byte_order
14183
14184         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14185         implemented properly)
14186         (_dbus_string_validate_nul): new function to check all-nul
14187
14188         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14189         get_arg_end_pos and remove all validation
14190         (_dbus_marshal_validate_arg): actually do validation here.
14191
14192 2003-01-29  Havoc Pennington  <hp@pobox.com>
14193
14194         * dbus/dbus-message.c (check_message_handling): fix assertion
14195         failure on set_client_serial
14196
14197 2003-01-28  Havoc Pennington  <hp@pobox.com>
14198
14199         * dbus/dbus-server-debug.c: Add doc section comments
14200
14201         * dbus/dbus-transport-debug.c: add doc section comments
14202
14203 2003-01-28  Havoc Pennington  <hp@redhat.com>
14204
14205         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14206         the reverse order from how I had it
14207         (_dbus_string_base64_encode): reverse encoding order. I was
14208         basically byteswapping everything during encoding.
14209
14210 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14211
14212         * dbus/dbus-connection-internal.h:
14213         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14214         (_dbus_connection_remove_timeout):
14215         Add functions for adding and removing timeouts.
14216
14217         * dbus/dbus-message.c: (dbus_message_new_from_message):
14218         Add new function that takes a message and creates an exact
14219         copy of it, but with the refcount set to 1.
14220         (check_message_handling):
14221         Fix build error.
14222
14223         * dbus/dbus-server-protected.h:
14224         * dbus/dbus-server.c: (_dbus_server_init_base),
14225         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14226         (dbus_server_set_timeout_functions):
14227         (_dbus_server_remove_timeout):
14228         New functions so that a server can add and remove timeouts.
14229
14230         (dbus_server_listen):
14231         Add commented out call to dbus_server_debug_new.
14232
14233         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14234         Actually set the handler, doh.
14235
14236         * dbus/dbus-transport.c: (_dbus_transport_open):
14237         Add commented out call to dbus_transport_debug_client_new.
14238
14239         * dbus/Makefile.am:
14240         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14241
14242 2003-01-28  Havoc Pennington  <hp@pobox.com>
14243
14244         * dbus/dbus-message.c (check_message_handling): function to check
14245         on the loaded message, iterates over it etc.
14246
14247 2003-01-28  Havoc Pennington  <hp@pobox.com>
14248
14249         * test/Makefile.am (dist-hook): fix make distdir
14250
14251         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14252
14253 2003-01-27  Havoc Pennington  <hp@pobox.com>
14254
14255         * dbus/dbus-mempool.c (time_for_size): replace printf with
14256         _dbus_verbose
14257
14258         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14259         empty lines; fix the SAVE_LENGTH stuff to be
14260         START_LENGTH/END_LENGTH so it actually works; couple other
14261         bugfixes
14262
14263         * test/Makefile.am (dist-hook): add dist-hook for .message files
14264
14265         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14266         can be constant or locked.
14267         (_dbus_string_free): allow freeing a const string as
14268         documented/intended
14269
14270         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14271
14272         * dbus/dbus-test-main.c (main): take an argument which is the
14273         directory containing test data
14274
14275         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14276         argument to this and load all the messages in test/data/
14277         checking that they can be loaded or not loaded as appropriate.
14278
14279 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14280
14281         * bus/dispatch.c: (bus_dispatch_message_handler):
14282         Dispatch messages sent to services.
14283
14284         * bus/driver.c: (bus_driver_send_service_deleted),
14285         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14286         (bus_driver_send_service_acquired):
14287         Add helper functions for sending service related messages.
14288
14289         (bus_driver_send_welcome_message):
14290         Send HELLO_REPLY instead of WELCOME.
14291
14292         (bus_driver_handle_list_services):
14293         Send LIST_SERVICES_REPLY instead of SERVICES.
14294
14295         (bus_driver_handle_own_service),
14296         (bus_driver_handle_service_exists):
14297         New message handlers.
14298
14299         (bus_driver_handle_message):
14300         Invoke new message handlers.
14301
14302         (bus_driver_remove_connection):
14303         Don't remove any services here since that's done automatically
14304         by bus_service_remove_owner now.
14305
14306         * bus/driver.h:
14307         New function signatures.
14308
14309         * bus/services.c: (bus_service_add_owner):
14310         Send ServiceAcquired message if we're the only primary owner.
14311
14312         (bus_service_remove_owner):
14313         Send ServiceAcquired/ServiceLost messages.
14314
14315         (bus_service_set_prohibit_replacement),
14316         (bus_service_get_prohibit_replacement):
14317         Functions for setting prohibit replacement.
14318
14319         (bus_service_has_owner):
14320         New function that checks if a connection is in the owner queue of
14321         a certain service.
14322
14323         * bus/services.h:
14324         Add new function signatures.
14325
14326         * dbus/dbus-list.c: (_dbus_list_test):
14327         Add tests for _dbus_list_remove_last and traversing the list backwards.
14328
14329         * dbus/dbus-list.h:
14330         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14331         go any further, so return NULL then.
14332
14333         * dbus/dbus-protocol.h:
14334         Add new messages, service flags and service replies.
14335
14336 2003-01-26  Havoc Pennington  <hp@pobox.com>
14337
14338         * dbus/dbus-message-builder.c: implement, completely untested.
14339
14340         * test/data/*: add data to be used in testing.
14341         ".message" files are our simple loadable text format.
14342         ".message-raw" will be binary dumps of messages.
14343
14344         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14345
14346 2003-01-26  Havoc Pennington  <hp@pobox.com>
14347
14348         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14349
14350         * dbus/dbus-errors.c (dbus_result_to_string): add
14351         file errors
14352
14353         * dbus/dbus-message-builder.c: new file, will contain code to load
14354         up messages from files. Not implemented yet.
14355
14356 2003-01-26  Havoc Pennington  <hp@pobox.com>
14357
14358         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14359         the sender by setting to NULL
14360
14361 2003-01-26  Havoc Pennington  <hp@pobox.com>
14362
14363         The unit tests pass, but otherwise untested.  If it breaks, the
14364         tests should have been better. ;-)
14365
14366         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14367         the connection.
14368
14369         * dbus/dbus-message.c: redo everything so we maintain
14370         message->header as the only copy of the various fields.
14371         This avoids the possibility of out-of-memory in some cases,
14372         for example dbus_message_lock() can't run out of memory anymore,
14373         and avoids extra copying. Figured I may as well go ahead and do
14374         this since it was busted for dbus_message_lock to not return
14375         failure on OOM, and dbus_message_write_header was totally
14376         unchecked for OOM. Also fixed some random other bugs.
14377
14378         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14379         that strings are nul-terminated. Also, end_pos can be equal
14380         to string length just not greater than, I think.
14381         (_dbus_marshal_set_int32): new function
14382         (_dbus_marshal_set_uint32): new function
14383         (_dbus_marshal_set_string): new function
14384
14385         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14386         a warning, init timeout_list to NULL
14387         (dbus_connection_send_message): don't use uninitialized variable
14388         "serial"
14389
14390         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14391
14392 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14393
14394         * bus/driver.c: (bus_driver_handle_hello),
14395         (bus_driver_send_welcome_message):
14396         Plug leaks
14397
14398 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14399
14400         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14401         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14402         (dbus_connection_unref):
14403         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14404         * dbus/dbus-message.c: (dbus_message_unref),
14405         Plug memory leaks.
14406
14407         (dbus_message_get_fields):
14408         Remove debugging printout.
14409
14410         (_dbus_message_loader_return_buffer):
14411         Don't store the header string.
14412
14413         (_dbus_message_test):
14414         Plug leaks.
14415
14416 2003-01-26  Richard Hult  <rhult@codefactory.se>
14417
14418         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14419         the file descriptor list, since it can change under us.
14420
14421 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14422
14423         * glib/dbus-gmain.c: (dbus_connection_prepare),
14424         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14425         (remove_watch), (dbus_connection_hookup_with_g_main):
14426         Rewrite the glib handling to use its own GSource instead of a
14427         GIOChannel so we can catch messages put in the queue while waiting
14428         for a reply.
14429
14430 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14431
14432         * bus/Makefile.am:
14433         * bus/connection.c: (connection_disconnect_handler),
14434         (connection_watch_callback), (bus_connection_setup):
14435         * bus/dispatch.c: (send_one_message),
14436         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14437         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14438         * bus/dispatch.h:
14439         * bus/driver.c: (bus_driver_send_service_deleted),
14440         (bus_driver_send_service_created), (bus_driver_handle_hello),
14441         (bus_driver_send_welcome_message),
14442         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14443         (bus_driver_handle_message):
14444         * bus/driver.h:
14445         Refactor code, put the message dispatching in its own file. Use
14446         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14447         is disconnected.
14448
14449 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14450
14451         * dbus/dbus-internals.h:
14452         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14453
14454         * dbus/dbus-message.c: (dbus_message_get_sender):
14455         * dbus/dbus-message.h:
14456         Implement dbus_message_get_sender.
14457
14458         * dbus/dbus-protocol.h:
14459         Add message and service defines.
14460
14461 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14462
14463         * dbus/dbus-connection.c: (dbus_connection_send_message):
14464         * dbus/dbus-message-internal.h:
14465         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14466         (dbus_message_write_header):
14467         Remove _dbus_messag_unlock and don't set the client serial on a
14468         message if one already exists.
14469
14470 2003-01-24  Havoc Pennington  <hp@pobox.com>
14471
14472         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14473         list_pool
14474
14475         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14476         on OOM
14477
14478 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14479
14480         * dbus/dbus-list.c: (alloc_link), (free_link):
14481         Use a memory pool for the links.
14482
14483 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14484
14485         * bus/connection.c: (bus_connection_foreach):
14486         * bus/connection.h:
14487         Add new bus_connection_foreach function.
14488
14489         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14490         Add function that broadcasts a message to all clients.
14491
14492         (bus_driver_send_service_created), (bus_driver_handle_hello),
14493         (bus_driver_send_welcome_message),
14494         (bus_driver_handle_list_services), (bus_driver_message_handler):
14495         Implement functions that take care of listing services, and notifying
14496         clients when new services are created.
14497
14498         * bus/services.c: (bus_services_list):
14499         * bus/services.h:
14500         Add new function that returns an array of strings with the currently
14501         registered services.
14502
14503         * glib/dbus-glib.h:
14504         * glib/dbus-gmain.c:
14505         Update copyright year.
14506
14507 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14508
14509         * dbus/dbus-connection.c: (dbus_connection_send_message):
14510         Unlock the message in case it was sent earlier.
14511
14512         (dbus_connection_send_message_with_reply_and_block):
14513         Remove the reply message from the list.
14514
14515         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14516         Set array_len and new_pos correctly.
14517
14518         (_dbus_marshal_test):
14519         Remove debug output.
14520
14521         * dbus/dbus-message-internal.h:
14522         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14523         New function that returns the reply serial.
14524
14525         (_dbus_message_unlock):
14526         New function that unlocks a message and resets its header.
14527
14528         (dbus_message_append_string_array),
14529         (dbus_message_get_fields_valist),
14530         (dbus_message_iter_get_field_type),
14531         (dbus_message_iter_get_string_array),
14532         (dbus_message_get_fields),
14533         (dbus_message_append_fields_valist):
14534         Handle string arrays.
14535
14536         (dbus_message_set_sender):
14537         Make this function public since the bus daemon needs it.
14538
14539         (decode_header_data):
14540         Set the reply serial to -1 initially.
14541
14542         * dbus/dbus-message.h:
14543         Add dbus_message_set_sender.
14544
14545 2003-01-24  Havoc Pennington  <hp@pobox.com>
14546
14547         * doc/dbus-specification.sgml: add some stuff
14548
14549 2003-01-22  Havoc Pennington  <hp@pobox.com>
14550
14551         * doc/dbus-specification.sgml: Start to document the protocol.
14552
14553 2003-01-22  Havoc Pennington  <hp@pobox.com>
14554
14555         * dbus/dbus-connection.c
14556         (dbus_connection_send_message_with_reply_and_block): add some @todo
14557
14558         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14559
14560 2003-01-21  Havoc Pennington  <hp@pobox.com>
14561
14562         (patch untested because can't compile)
14563
14564         * bus/driver.c (create_unique_client_name): make this function
14565         never recycle client names. Also, caller should initialize
14566         the DBusString.
14567
14568         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14569
14570 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14571
14572         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14573         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14574         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14575         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14576         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14577         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14578         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14579         * dbus/dbus-marshal.h:
14580         * dbus/dbus-protocol.h:
14581         Add support for marshalling and demarshalling integer, double
14582         and string arrays.
14583
14584 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14585
14586         * bus/Makefile.am:
14587         Add driver.[ch]
14588
14589         * bus/connection.c: (connection_disconnect_handler):
14590         Remove the connection from the bus driver's list.
14591
14592         (connection_watch_callback): Dispatch messages.
14593
14594         (free_connection_data): Free connection name.
14595
14596         (bus_connection_setup): Add connection to the bus driver's list.
14597         (bus_connection_remove_owned_service):
14598         (bus_connection_set_name), (bus_connection_get_name):
14599         Add functions for setting and getting the connection's name.
14600
14601         * bus/connection.h:
14602         Add function headers.
14603
14604         * bus/driver.c: (create_unique_client_name),
14605         (bus_driver_handle_hello_message),
14606         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14607         (bus_driver_add_connection), (bus_driver_remove_connection):
14608         * bus/driver.h:
14609         * bus/main.c:
14610         * bus/services.c: (bus_service_free):
14611         * bus/services.h:
14612         New file that handles communication and registreation with the bus
14613         itself.
14614
14615 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14616
14617         * dbus/dbus-connection.c: (dbus_connection_send_message):
14618         Add a new client_serial parameter.
14619
14620         (dbus_connection_send_message_with_reply):
14621         Remove a @todo since we've implemented the blocking function.
14622
14623         (dbus_connection_send_message_with_reply_and_block):
14624         New function that sends a message and waits for a reply and
14625         then returns the reply.
14626
14627         * dbus/dbus-connection.h:
14628         Add new functions.
14629
14630         * dbus/dbus-errors.c: (dbus_result_to_string):
14631         * dbus/dbus-errors.h:
14632         Add new DBUS_RESULT.
14633
14634         * dbus/dbus-message-internal.h:
14635         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14636         (_dbus_message_set_sender), (dbus_message_write_header),
14637         (dbus_message_new_reply), (decode_header_data),
14638         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14639         * dbus/dbus-message.h:
14640         Add new functions that set the reply serial and sender.
14641         Also marshal and demarshal them correctly and add test.
14642
14643         * dbus/dbus-protocol.h:
14644         Add new DBUS_MESSAGE_TYPE_SENDER.
14645
14646         * glib/dbus-glib.h:
14647         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14648         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14649         (dbus_connection_hookup_with_g_main):
14650         * glib/test-dbus-glib.c: (main):
14651         Rewrite to use GIOChannel and remove the GSource crack.
14652
14653         * test/echo-client.c: (main):
14654         * test/watch.c: (check_messages):
14655         Update for changed APIs
14656
14657 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14658
14659         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14660
14661         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14662         Create a DBusTimeoutList.
14663         (dbus_connection_set_timeout_functions): Add new function to
14664         set timeout callbacks
14665
14666         * dbus/dbus-connection.h: Add public DBusTimeout API.
14667
14668         * dbus/dbus-message.c: (dbus_message_get_service):
14669         * dbus/dbus-message.h:  New function.
14670
14671         * dbus/dbus-server.c: Fix small doc typo.
14672
14673         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14674
14675 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14676
14677         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14678         of the string, just as long as specified.
14679
14680 2003-01-19  Havoc Pennington  <hp@pobox.com>
14681
14682         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14683         new function
14684
14685         * dbus/dbus-server.c (dbus_server_set_max_connections)
14686         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14687         keep track of current number of connections, and add API for
14688         setting a max (but haven't implemented enforcing the max yet)
14689
14690 2003-01-18  Havoc Pennington  <hp@pobox.com>
14691
14692         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14693         reading/writing if read_watch != NULL or write_watch != NULL.
14694
14695         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14696         the message loader code to actually load message->header and
14697         message->body into the newly-created message.
14698
14699         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14700         in OOM case
14701
14702         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14703         (dbus_connection_get_max_message_size)
14704         (dbus_connection_set_max_live_messages_size)
14705         (dbus_connection_get_max_live_messages_size): implement some
14706         resource limitation functions
14707
14708         * dbus/dbus-resources.c: new file implementing some of the
14709         resource limits stuff
14710
14711         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14712         missing docs, add @todo to handle OOM etc.
14713
14714         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14715         docs
14716
14717 2003-01-18  Havoc Pennington  <hp@pobox.com>
14718
14719         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14720         connection if it hasn't been already.
14721
14722         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14723         replace with DisconnectFunction.
14724
14725 2003-01-18  Havoc Pennington  <hp@pobox.com>
14726
14727         Building --disable-verbose-mode --disable-asserts --disable-tests
14728         cuts the library from 112K to 45K or so
14729
14730         * configure.in: check for varargs macro support,
14731         add --enable-verbose-mode, --enable-asserts.
14732
14733         * dbus/dbus-internals.h (_dbus_assert): support
14734         DBUS_DISABLE_ASSERT
14735         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14736
14737 2003-01-18  Havoc Pennington  <hp@pobox.com>
14738
14739         * dbus/dbus-test.c: include config.h so that tests actually run
14740
14741         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14742         so the failure mode when that assumption fails will be plenty
14743         obvious.
14744
14745 2003-01-18  Havoc Pennington  <hp@pobox.com>
14746
14747         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14748
14749         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14750         the distribution
14751
14752         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14753         since we don't want to use those in make check
14754
14755 2003-01-15  Havoc Pennington  <hp@redhat.com>
14756
14757         Release 0.2
14758
14759         * NEWS: update
14760
14761 2003-01-15  Havoc Pennington  <hp@redhat.com>
14762
14763         * test/Makefile.am: fix so that test source code ends up in the
14764         distribution on make distcheck
14765
14766 2003-01-15  Havoc Pennington  <hp@redhat.com>
14767
14768         Release 0.1.
14769
14770         * NEWS: update
14771
14772 2003-01-15  Havoc Pennington  <hp@redhat.com>
14773
14774         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14775         fix build when --disable-tests
14776
14777         * Makefile.am (EXTRA_DIST): put HACKING in here
14778
14779         * HACKING: document procedure for making a tarball release.
14780
14781 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14782
14783         * bus/connection.c: (connection_error_handler),
14784         (bus_connection_setup):
14785         * bus/main.c: (main):
14786         Make sure that the DBusConnectionData struct is NULLed
14787         out to prevent a segfault.
14788
14789         * dbus/dbus-errors.c: (dbus_result_to_string):
14790         * dbus/dbus-errors.h:
14791         * dbus/dbus-message.c: (dbus_message_get_fields),
14792         (dbus_message_get_fields_valist), (_dbus_message_test):
14793         * dbus/dbus-message.h:
14794         Make dbus_message_get_fields return a result code so we can
14795         track invalid fields as well as oom.
14796
14797 2003-01-11  Havoc Pennington  <hp@pobox.com>
14798
14799         * configure.in: change --enable-test/--enable-ansi action-if-given
14800         to enable_foo=$enableval instead of enable_foo=yes
14801
14802 2003-01-08  Havoc Pennington  <hp@pobox.com>
14803
14804         * dbus/dbus-string.c (_dbus_string_align_length): new function
14805
14806         * dbus/dbus-test-main.c: move main() for test app here
14807         * dbus/dbus-test.c
14808         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14809         symbol to run tests, because dbus-test isn't in the main
14810         library
14811
14812         Code review nitpicks.
14813
14814         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14815         for people with narrow emacs ;-). Assert client_serial was filled
14816         in. Assert message->name != NULL.
14817         (dbus_message_append_fields): have "first_field_type" arg separate
14818         from va list, needed for C++ binding that also uses varargs IIRC
14819         and helps with type safety
14820         (dbus_message_new): add @todo about using DBusString to store
14821         service/name internally
14822         (dbus_message_new): don't leak ->service and ->name on OOM later
14823         in the function
14824         (dbus_message_unref): free the service name
14825         (dbus_message_get_fields): same change to varargs
14826         i.e. first_field_type
14827         (_dbus_message_loader_return_buffer): assert that the message data
14828         is aligned (if not it's a bug in our code). Put in verbose griping
14829         about why we set corrupted = TRUE.
14830         (decode_header_data): add FIXME that char* is evil.  Was going to
14831         add FIXME about evil locale-specific string.h strncmp, but just
14832         switched to wacky string-as-uint32 optimization. Move check for
14833         "no room for field name" above get_const_data_len() to avoid
14834         assertion failure in get_const_data_len if we have trailing 2
14835         bytes or the like. Check for service and name fields being
14836         provided twice. Don't leak service/name on error. Require field
14837         names to be aligned to 4 bytes.
14838
14839         * dbus/dbus-marshal.c: move byte swap stuff to header
14840         (_dbus_pack_int32): uscore-prefix
14841         (_dbus_unpack_int32): uscore-prefix
14842         (_dbus_unpack_uint32): export
14843         (_dbus_demarshal_string): add @todo complaining about use of
14844         memcpy()
14845         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14846         handling allowing corrupt data to go unchecked
14847
14848 2003-01-08  Havoc Pennington  <hp@redhat.com>
14849
14850         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14851         to the select() as needed for authentication. (should be using
14852         _dbus_poll() not select, but for another day)
14853
14854         * dbus/dbus.h: include dbus/dbus-protocol.h
14855
14856 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14857
14858         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14859         dbus-connection.h
14860
14861 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14862
14863         * dbus/dbus-internals.c: (_dbus_type_to_string):
14864         New function that returns a string describing a type.
14865
14866         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14867         * dbus/dbus-marshal.h:
14868         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14869         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14870         (dbus_message_iter_get_byte_array):
14871         * dbus/dbus-message.h:
14872         Add new convenience functions for appending and getting message fields.
14873         Also add demarshalling routines for byte arrays.
14874
14875 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14876
14877         * dbus/dbus-connection-internal.h:
14878         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14879         (_dbus_connection_get_next_client_serial),
14880         (dbus_connection_send_message):
14881         * dbus/dbus-internals.h:
14882         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14883         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14884         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14885         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14886         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14887         (_dbus_verbose_bytes), (_dbus_marshal_test):
14888         * dbus/dbus-marshal.h:
14889         * dbus/dbus-message-internal.h:
14890         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14891         (dbus_message_write_header), (_dbus_message_lock),
14892         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14893         (dbus_message_get_name), (dbus_message_append_int32),
14894         (dbus_message_append_uint32), (dbus_message_append_double),
14895         (dbus_message_append_string), (dbus_message_append_byte_array),
14896         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14897         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14898         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14899         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14900         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14901         (decode_header_data), (_dbus_message_loader_return_buffer),
14902         (message_iter_test), (_dbus_message_test):
14903         * dbus/dbus-message.h:
14904         * dbus/dbus-protocol.h:
14905         * dbus/dbus-test.c: (main):
14906         * dbus/dbus-test.h:
14907         * glib/test-dbus-glib.c: (message_handler), (main):
14908         * test/echo-client.c: (main):
14909         * test/watch.c: (check_messages):
14910         Make messages sendable and receivable for real.
14911
14912 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14913
14914         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14915         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14916         * dbus/dbus-message.c: (dbus_message_append_int32),
14917         (dbus_message_append_uint32), (dbus_message_append_double),
14918         (dbus_message_append_string), (dbus_message_append_byte_array):
14919         Handle OOM restoration.
14920
14921 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14922
14923         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14924         (_dbus_demarshal_string), (_dbus_marshal_test):
14925         * dbus/dbus-marshal.h:
14926         * dbus/dbus-message.c: (dbus_message_get_name),
14927         Document these functions.
14928
14929         (dbus_message_append_int32), (dbus_message_append_uint32),
14930         (dbus_message_append_double), (dbus_message_append_string),
14931         (dbus_message_append_byte_array):
14932         * dbus/dbus-message.h:
14933         Add functions for adding message fields of different types.
14934
14935         * dbus/dbus-protocol.h:
14936         Add the different types.
14937
14938 2003-01-05  Havoc Pennington  <hp@pobox.com>
14939
14940         * bus/connection.c: implement routines for handling connections,
14941         first thing is keeping a list of owned services on each connection
14942         and setting up watches etc.
14943
14944         * bus/services.c: implement a mapping from service names to lists
14945         of connections
14946
14947         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14948
14949         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14950         to use static mutexes for global data
14951
14952         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14953         collection of functions to set/get application-specific data
14954         on the DBusConnection.
14955
14956 2003-01-04  Havoc Pennington  <hp@pobox.com>
14957
14958         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14959         (_dbus_poll): new function
14960
14961         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14962         copied from GLib
14963
14964         * bus/loop.c: initial code for the daemon main loop
14965
14966 2003-01-04  Havoc Pennington  <hp@pobox.com>
14967
14968         * test/watch.c (error_handler): make it safe if the error handler
14969         is called multiple times (if we s/error handler/disconnect
14970         handler/ we should just guarantee it's called only once)
14971
14972         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14973         error handler on disconnect (it's quite possible we should
14974         just change the error handler to a "disconnect handler," I'm
14975         not sure we have any other meaningful errors)
14976
14977         * configure.in: check for getpwnam_r
14978
14979         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14980         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14981         mechanism as in SASL spec, using socket credentials
14982
14983         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14984         (_dbus_send_credentials_unix_socket): new function
14985
14986         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14987         dbus_accept()
14988         (_dbus_write): only check errno if <0 returned
14989         (_dbus_write_two): ditto
14990
14991 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14992
14993         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14994         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14995         (_dbus_marshal_test):
14996         * dbus/dbus-marshal.h:
14997         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14998         to _dbus_marshal_utf8_string. Also fix some tests.
14999
15000 2002-12-28  Harri Porten  <porten@kde.org>
15001
15002         * configure.in: added check for C++ compiler and a very cheesy
15003         check for the Qt integration
15004
15005         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15006
15007         * qt/Makefile.am: added
15008
15009         * qt/.cvsignore: added
15010
15011         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15012         latter, added #ifdef QT_THREAD_SUPPORT guard.
15013
15014         * dbus/Makefile.am: added missing headers for make dist
15015
15016 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15017
15018         * dbus/Makefile.am: fixup export-symbols-regex.
15019
15020 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15021
15022         * acinclude.m4: Add this file and put the
15023         PKG_CHECK_MODULE macro in it.
15024
15025 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15026
15027         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15028         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15029         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15030         (_dbus_marshal_test):
15031         Make the demarshalling routines align the pos argument.
15032         Add string marshalling tests and fix the obvious bugs
15033         discovered.
15034
15035 2002-12-26  Havoc Pennington  <hp@pobox.com>
15036
15037         * dbus/dbus-auth.c: fixes fixes fixes
15038
15039         * dbus/dbus-transport-unix.c: wire up support for
15040         encoding/decoding data on the wire
15041
15042         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15043         (_dbus_auth_decode_data): append to target string
15044         instead of nuking it.
15045
15046 2002-12-26  Havoc Pennington  <hp@pobox.com>
15047
15048         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15049         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15050         doh
15051
15052         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15053         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15054         now). Main point is because I wanted unpack_uint32 to implement
15055         _dbus_verbose_bytes
15056         (_dbus_verbose_bytes): new function
15057
15058         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15059
15060         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15061         mechanism to handle a corrupt message stream
15062         (_dbus_message_loader_new): fix preallocation to only prealloc,
15063         not prelengthen
15064
15065         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15066         (_dbus_string_test): enhance tests for copy/move and fix the
15067         functions
15068
15069         * dbus/dbus-transport-unix.c: Hold references in more places to
15070         avoid reentrancy problems
15071
15072         * dbus/dbus-transport.c: ditto
15073
15074         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15075         leak reference count in no-message case
15076
15077         * test/watch.c (do_mainloop): handle adding/removing watches
15078         during iteration over the watches. Also, ref the connection/server
15079         stored on a watch, so we don't try to mangle a destroyed one.
15080
15081         * dbus/dbus-transport-unix.c (do_authentication): perform
15082         authentication
15083
15084         * dbus/dbus-auth.c (get_state): add a state
15085         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15086         (_dbus_auth_get_unused_bytes): append the unused bytes
15087         to the passed in string, rather than prepend
15088
15089         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15090         the auth conversation DBusAuth
15091
15092         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15093         (_dbus_transport_new_for_domain_socket): when creating a
15094         transport, pass in whether it's a client-side or server-side
15095         transport so we know which DBusAuth to create
15096
15097 2002-12-03  Havoc Pennington  <hp@pobox.com>
15098
15099         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15100         _after_ finalizing the derived members
15101         (unix_connection_set): unref watch if we fail to add it
15102
15103         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15104         transport first, so that the connection owned by the
15105         transport will be valid as the transport finalizes.
15106
15107         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15108         if necessary, and remove watches from the connection.
15109
15110         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15111
15112 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15113
15114         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15115         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15116         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15117         (_dbus_marshal_test):
15118         * dbus/dbus-marshal.h:
15119         Add string marshal functions and have the demarshal functions
15120         return the new position.
15121
15122 2002-12-25  Havoc Pennington  <hp@pobox.com>
15123
15124         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15125         it is a simple protocol that just maps directly to SASL.
15126
15127         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15128         initial implementation, not actually used yet.
15129
15130         * dbus/dbus-string.c (_dbus_string_find): new function
15131         (_dbus_string_equal): new function
15132         (_dbus_string_base64_encode): new function
15133         (_dbus_string_base64_decode): new function
15134
15135 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15136
15137         * dbus/Makefile.am:
15138         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15139         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15140         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15141         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15142         * dbus/dbus-marshal.h:
15143         * dbus/dbus-protocol.h:
15144         * dbus/dbus-test.c: (main):
15145         * dbus/dbus-test.h:
15146         Add un-optimized marshalling/demarshalling routines.
15147
15148 2002-12-25  Harri Porten  <porten@kde.org>
15149
15150         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15151
15152 2002-12-24  Zack Rusin  <zack@kde.org>
15153
15154         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15155         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15156         main loop stuff
15157
15158 2002-12-24  Havoc Pennington  <hp@pobox.com>
15159
15160         * glib/dbus-gthread.c: fix include
15161
15162         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15163         I think glib API needs to change, though, as you don't
15164         want to use DBusMessageFunction, you want to use the
15165         DBusMessageHandler object. Probably
15166         dbus_connection_open_with_g_main_loop()
15167         and dbus_connection_setup_g_main_loop() or something like that
15168         (but think of better names...) that just create a connection
15169         that has watch/timeout functions etc. already set up.
15170
15171         * dbus/dbus-connection.c
15172         (dbus_connection_send_message_with_reply): new function just to
15173         show how the message handler helps us deal with replies.
15174
15175         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15176
15177         * dbus/dbus-string.c (_dbus_string_test): free a string that
15178         wasn't
15179
15180         * dbus/dbus-hash.c: use memory pools for the hash entries
15181         (rebuild_table): be more paranoid about overflow, and
15182         shrink table when we can
15183         (_dbus_hash_test): reduce number of sprintfs and write
15184         valid C89. Add tests for case where we grow and then
15185         shrink the hash table.
15186
15187         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15188
15189         * dbus/dbus-connection.c (dbus_connection_register_handler)
15190         (dbus_connection_unregister_handler): new functions
15191
15192         * dbus/dbus-message.c (dbus_message_get_name): new
15193
15194         * dbus/dbus-list.c: fix docs typo
15195
15196         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15197         an object representing a handler for messages.
15198
15199 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15200
15201         * glib/dbus-glib.h:
15202         * glib/dbus-gthread.c: (dbus_gthread_init):
15203         Don't use the gdbus prefix for public functions.
15204
15205 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15206
15207         * Makefile.am:
15208         * configure.in:
15209         Add GLib checks and fixup .pc files
15210
15211         * glib/Makefile.am:
15212         * glib/dbus-glib.h:
15213         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15214         (gdbus_connection_check), (gdbus_connection_dispatch),
15215         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15216         (dbus_connection_gsource_new):
15217         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15218         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15219         * glib/test-dbus-glib.c: (message_handler), (main):
15220         Add GLib support.
15221
15222 2002-12-15  Harri Porten  <porten@kde.org>
15223
15224         * autogen.sh: check for libtoolize before attempting to use it
15225
15226         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15227         struct.
15228
15229         * .cvsignore: ignore more stamp files
15230
15231         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15232
15233         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15234         without make install.
15235
15236 2002-12-15  Havoc Pennington  <hp@pobox.com>
15237
15238         * dbus/dbus-threads.c: add thread stubs that a higher library
15239         layer can fill in. e.g. the GLib wrapper might fill them in with
15240         GThread stuff. We still need to use this thread API to
15241         thread-safe-ize the library.
15242
15243 2002-12-12  Havoc Pennington  <hp@pobox.com>
15244
15245         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15246         below new interfaces and include fewer system headers.
15247
15248         * dbus/dbus-sysdeps.c (_dbus_read): new function
15249         (_dbus_write): new function
15250         (_dbus_write_two): new function
15251         (_dbus_connect_unix_socket): new function
15252         (_dbus_listen_unix_socket): new function
15253
15254         * dbus/dbus-message-internal.h: change interfaces to use
15255         DBusString
15256
15257 2002-12-11  Havoc Pennington  <hp@pobox.com>
15258
15259         * dbus/dbus-types.h: add dbus_unichar
15260
15261         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15262
15263         * dbus/dbus-connection.c (dbus_connection_send_message): return
15264         TRUE on success
15265
15266         * dbus/dbus-transport.c: include dbus-watch.h
15267
15268         * dbus/dbus-connection.c: include dbus-message-internal.h
15269
15270         * HACKING: add file with coding guidelines stuff.
15271
15272         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15273         handling here, for security purposes (as in vsftpd). Not actually
15274         using this class yet.
15275
15276         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15277         system/libc usage here, as in vsftpd, for ease of auditing (and
15278         should also simplify portability). Haven't actually moved all the
15279         system/libc usage into here yet.
15280
15281 2002-11-25  Havoc Pennington  <hp@pobox.com>
15282
15283         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15284         always print the first verbose message.
15285
15286 2002-11-24  Havoc Pennington  <hp@pobox.com>
15287
15288         * test/echo-client.c, test/echo-server.c: cheesy test
15289         clients.
15290
15291         * configure.in (AC_CHECK_FUNCS): check for writev
15292
15293         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15294         function
15295
15296         * dbus/dbus-list.c (_dbus_list_foreach): new function
15297
15298         * dbus/dbus-internals.c (_dbus_verbose): new function
15299
15300         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15301         representing a server that listens for connections.
15302
15303         * dbus/.cvsignore: create
15304
15305         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15306         public API for reporting errors
15307
15308         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15309         public object representing a connection that
15310         sends/receives messages. (Same object used for
15311         both client and server.)
15312
15313         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15314         Basic abstraction for different kinds of stream
15315         that we might read/write messages from.
15316
15317 2002-11-23  Havoc Pennington  <hp@pobox.com>
15318
15319         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15320         _DBUS_INT_MAX
15321
15322         * dbus/dbus-test.c (main): add list test, and include
15323         dbus-test.h as intended
15324
15325         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15326         (_dbus_hash_table_remove_int): return value indicates
15327         whether the entry existed to remove
15328
15329         * dbus/dbus-list.c: add linked list utility class,
15330         with docs and tests
15331
15332         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15333         array sometimes.
15334
15335 2002-11-23  Havoc Pennington  <hp@pobox.com>
15336
15337         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15338         DBUS_END_DECLS to nothing, that should fix this once and for all
15339
15340         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15341
15342         * dbus/dbus-message.c, dbus/dbus-hash.c:
15343         add some missing @brief
15344
15345 2002-11-23  Havoc Pennington  <hp@pobox.com>
15346
15347         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15348         to avoid confusing Doxygen
15349
15350         * dbus/dbus-hash.c: @} not }@
15351
15352         * dbus/dbus-message.c (struct DBusMessage): split out
15353         internals docs
15354
15355 2002-11-23  Havoc Pennington  <hp@pobox.com>
15356
15357         * configure.in: pile on more warning flags if using gcc
15358
15359         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15360         to document static functions
15361
15362         * configure.in: add summary to end of configure so it
15363         looks nice and attractive
15364
15365         * dbus/dbus-hash.c: finish implementation and write unit
15366         tests and docs
15367
15368         * configure.in: add --enable-tests to enable unit tests
15369
15370         * dbus/dbus-test.c: test program to run unit tests
15371         for all files in dbus/*, initially runs a test for
15372         dbus-hash.c
15373
15374         * dbus/dbus-internals.h: file to hold some internal utility stuff
15375
15376 2002-11-22  Havoc Pennington  <hp@redhat.com>
15377
15378         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15379         "ported" away from Tcl
15380
15381         * dbus/dbus-types.h: header for types such as dbus_bool_t
15382
15383 2002-11-22  Havoc Pennington  <hp@redhat.com>
15384
15385         * dbus/dbus.h: fixups for doc warnings
15386
15387         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15388         macros
15389         (QUIET): make it quiet so we can see warnings
15390
15391         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15392
15393 2002-11-22  Havoc Pennington  <hp@redhat.com>
15394
15395         * Makefile.am: include "Doxyfile" target in all-local
15396
15397         * configure.in: generate the Doxyfile
15398
15399         * Doxyfile.in: move Doxyfile here, so we can use
15400         configure to generate a Doxyfile with the right
15401         version number etc.
15402
15403 2002-11-22  Havoc Pennington  <hp@redhat.com>
15404
15405         * dbus/dbus-message.c: move inline docs into .c file
15406
15407         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15408         so all docs are under doc/
15409         (MAN_EXTENSION): generate man pages. Use extension
15410         ".3dbus" which matches ".3qt" on my system,
15411         I guess this is OK, I don't know really.
15412         (FILE_PATTERNS): look for .c files not .h, makes sense
15413         for plain C I think
15414
15415 2002-11-22  Havoc Pennington  <hp@pobox.com>
15416
15417         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15418         because any app can be a server, and any app can be a client,
15419         the bus is a special kind of server.
15420
15421 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15422
15423         * Doxyfile : adding. Still needs Makefile rules to be generated
15424         automatically (just run "doxygen" in the toplevel dir for now to
15425         generate docs)
15426
15427         * dbus/dbus-message.h : Adding sample docs (javadoc since
15428         resembles gtk-doc a little more)
15429
15430         * dbus/dbus.h : Adding sample docs
15431
15432 2002-11-21  Havoc Pennington  <hp@redhat.com>
15433
15434         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15435         so we can allow ourselves to include files directly,
15436         instead of having to use dbus.h
15437
15438         * dbus/dbus.h: fill in
15439
15440         * dbus/dbus-message.h: sketch out a sample header file.
15441         Include griping if you include it directly instead of
15442         via dbus.h
15443
15444         * dbus/dbus-macros.h: new file with macros for extern "C",
15445         TRUE/FALSE, NULL, etc.
15446
15447         * doc/file-boilerplate.c: put include guards in here
15448
15449 2002-11-21  Havoc Pennington  <hp@redhat.com>
15450
15451         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15452
15453         * COPYING: include the GPL as well, and license code
15454         under both AFL and GPL.
15455
15456 2002-11-21  Havoc Pennington  <hp@redhat.com>
15457
15458         * acconfig.h: get rid of this
15459
15460         * autogen.sh (run_configure): add --no-configure option
15461
15462         * configure.in: remove AC_ARG_PROGRAM to make
15463         autoconf complain less. add AC_PREREQ.
15464         add AC_DEFINE third arg.
15465
15466 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15467
15468         * doc/Makefile.am:
15469         Fix references so we can distcheck.
15470
15471 2002-11-21  Havoc Pennington  <hp@redhat.com>
15472
15473         * Initial module creation
15474