* dbus/dbus-sysdeps-win.c: added zero byte sending and receiving after connection...
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
2
3         * dbus/dbus-sysdeps-win.c: added zero byte sending 
4         and receiving after connection start up
5
6 2007-03-11  Havoc Pennington  <hp@redhat.com>
7
8         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
9         formatting problem
10
11         * Mostly fix the DBusPipe mess.
12         - put line break after function return types
13         - put space before parens
14         - do not pass structs around by value
15         - don't use dbus_strerror after calling supposedly cross-platform
16         api
17         - don't name pipe variables "fd"
18         - abstract special fd numbers like -1 and 1
19
20 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
21
22         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
23         dbus/dbus-sysdeps-util-win.c: renamed functions 
24         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
25         struct name DBusFile. 
26
27 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
28
29         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
30         fix _dbus_pid_fd check. 
31
32 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
33
34         * tools/dbus-print-message.c (print_message):
35         added printing of the reply serial to method returns and 
36         errors, so you can actually figure out the message/reply 
37         pairs - patch by olli.salli at collabora.co.uk.
38
39 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
40
41         * dbus-win.patch: removed committed patches. 
42
43 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
44
45         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
46         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
47         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
48         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
49         completed _dbus_pipe support. 
50
51 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
52
53         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
54         changed type or port to pointer, because the port is given back.
55
56         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
57         implemented returning tcp port. Skipping port parameter
58         and non integer port values in config <listen> statement
59         needs more effort.
60
61         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
62         (_dbus_listen_tcp_socket): return the real used tcp port.
63
64         * bus/dbus-daemon.1.in: added <listen> tcp examples
65
66 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
67
68         * cmake/config.h.cmake: win32 msvc bug fix
69
70 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
71
72         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
73         using _WINCE does not work.
74
75 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
76
77         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
78         committed.
79
80 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
81
82         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
83         rename pipe related write() function calls to _dbus_write_pipe().
84
85 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
86
87         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
88         uses DBUS_WIN for alls win32 related #ifdefs, 
89         some minor cleanups
90
91 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
92
93         * dbus-win.patch: updated patch for bus/dispatch.c.
94
95 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
96
97         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
98         dbus_connection_get_unix_process_id): Let return them valid user id's, 
99         otherwise bus-test fails. How to replace on win32 ?.
100         
101         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
102         fix memory leak.
103
104 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
105
106         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
107         use dbus friendly error name.
108         (fill_win_user_info_homedir): print user name in error case too.
109
110 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
111
112         * cmake/ConfigureChecks.cmake: fixed socketpair check
113
114 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
115
116         * bus/dispatch.c: disabled segfault test on win32 for now
117
118 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
119
120         * configure.in, cmake/ConfigureChecks.cmake: added check 
121         for setrlimit. 
122         * test/test-segfault.c: only include setrlimit stuff only 
123         when available.  
124
125 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
126
127         * test/test-segfault.c: unix compile fix.
128         * dbus-win.patch: removed obsolate patches.
129
130 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
131
132         * bus/activation.c: removed obsolate include header.
133         * test/test-segfault.c: win32 compile fix, rlimit 
134         isn't available on win32.
135         * dbus-win.patch: removed some more patches, they
136         are applied or obsolate 
137
138 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
139
140         * bus-win.patch: fixes unix listen problems, dbus-test 
141         now runs.
142
143 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
144
145         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
146         cmake/CMakeLists.txt: win32 compile fix
147
148 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
149
150         * dbus-win.patch, README.win: added available win32 
151         patches from windbus project (http://sf.net/projects/windbus)
152
153 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
154
155         * bus/activation.c: (bus_activation_activate_service):
156         fixed call to _dbus_spawn_async_with_babysitter().
157
158 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
159
160         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
161         added environment pointer as function parameter, used on win32.
162
163         * test/spawn-test.c: fixed call to above mentioned function.
164
165 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
166
167         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
168         added configure check for unistd.h.
169
170 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
171
172         * test/Makefile.am: fixed test data copy problem in 
173         out of source build, when sources came from svn or cvs. 
174
175 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
176
177         * dbus/*-win.*,bus/*-win.*: added win32 platform related
178         files. These files are only added to the cmake build system.  
179         The missing dbus-win.patch file will be added later. 
180
181 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
182
183         * cmake: new directory, contains cmake build support.
184         See http://www.cmake.org for more informations.
185         Currently only unix will be buildable because some 
186         win32 required files are still missing. 
187
188 2007-03-03  Thiago Macieira  <thiago@kde.org>
189
190         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
191         output and add it to the DBusError message we return.
192
193         * tools/dbus-launch.1:
194         * tools/dbus-launch.c: Add option --close-stderr to, well,
195         close stderr before starting dbus-daemon.
196
197 2007-01-31  Havoc Pennington  <hp@redhat.com>
198
199         * bus/dbus-daemon.1.in: write a section in the man page on running
200         a test daemon for debugging purposes
201
202 2007-01-26  Havoc Pennington  <hp@redhat.com>
203
204         * bus/session.conf.in: override all the default limits with much
205         higher limits on the session bus, there is no reason the session
206         bus should have low limits
207
208         * bus/config-parser.c (bus_config_parser_new): increase default
209         limits so they are less likely to be hit; in particular the max
210         replies per connection was way too low
211
212 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
213
214         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
215         a pointer to the tutorial maintained as part of dbus-python
216
217 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
218
219         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
220         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
221         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
222
223 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
224
225         * tools/dbus-monitor.c: gettimeofday() is not available 
226         on windows so we have to provide our own. It's taken from 
227         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
228
229 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
230
231         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
232         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
233         is in dbus-sysdeps-win.c (not in this patch).
234
235         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
236         with InterlockedInc/Decrement. 
237         - Patches from Christian Ehrlicher
238         
239 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
240
241         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
242
243 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
244
245         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
246         fix mispaced const statement. - Patch from Peter Kümmel
247
248 2006-12-19  Ray Strode  <rstrode@redhat.com>
249
250         * bus/bus.c (process_config_every_time):
251         don't overwrite existing bus context activation object
252         until after we've checked that the new activation is
253         valid.
254
255         * bus/main.c 
256         (signal_handler), (handle_reload_watch):
257         don't call exit() on failure, instead make do and keep
258         going.
259         (close_reload_pipe): new function to turn off
260         hangup-causes-config-reload behavior if an unexpected
261         error occurs
262
263 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
264
265         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
266         correctness fix. - Patch from Christian Ehrlicher
267
268 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
269
270         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
271         we should also use it. - Patch from Christian Ehrlicher
272
273 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
274   
275         * dbus-sysdeps-util.c: added win32 related tests
276
277 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
278
279         * dbus/dbus-string.c (_dbus_string_pop_line),
280         bus/desktop-file.c (parse_section_start,
281         parse_comment_or_blank,parse_key_value,): uses
282         _dbus_string_find_eol() to support platform independent eol style.
283
284 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
285
286         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
287         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
288               _dbus_string_find_eol().
289         Approved by: Havoc Pennington.
290
291 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
292
293         * configure.in: Added switch to disable user_database caching.
294
295         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
296         be able disable user_dabase caching.
297
298 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
299
300         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
301         struct. It is unnecessary we have a global one already. Also remove 
302         bus_context_get_user_database function, it is no longer needed.
303         Flush the global database on reload.
304
305         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
306         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
307
308         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
309         Add _dbus_user_database_flush_system. 
310         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
311         Small unrelated change in _dbus_is_a_number: change 
312         _dbus_string_parse_int to _dbus_string_parse_uint. 
313
314         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
315         _dbus_groups_from_uid.
316
317         * bus/policy.c, bus/policy.h: Change call to 
318         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
319         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
320         needs it.
321
322 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
323
324         * bus/signal.c: Fix match_rule_equal errata
325         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
326         <kimmo.hamalainen@nokia.com>)
327
328 2006-11-19  Thiago Macieira  <thiago@kde.org>
329
330         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
331         _dbus_pthread_condvar_wait,
332         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
333         pthread_self() after coming back from a conditional variable
334         wait as well as in one codepath where it was forgotten.
335         Approved by: Havoc Pennington.
336
337 2006-11-17  Havoc Pennington  <hp@redhat.com>
338
339         * update-dbus-docs.sh: allow setting fd.org username via env
340         variable. Make it run autogen with --enable-xml-docs=yes
341         --enable-doxygen-docs=yes so configure will fail if the required
342         tools are missing.
343
344 2006-11-17  Havoc Pennington  <hp@redhat.com>
345
346         * doc/dbus-faq.xml: minor FAQ tweaks
347
348 2006-11-14  Havoc Pennington  <hp@redhat.com>
349         
350         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
351         dbus_get_local_machine_id() to its own file, no substantive
352         changes. There are a couple other things we might want to add that
353         are "misc" so moving out of dbus-connection.[hc] which is big
354         enough already.
355         
356 2006-11-14  Havoc Pennington  <hp@redhat.com>
357
358         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
359         UUID had the timestamp last, but the implementation had it first;
360         move it to last since I think it's a tiny bit nicer (easier to
361         compare at a glance, faster to sort, less code), and will not
362         cause any practical compatibility problems. Also, always convert
363         the timestamp to big endian.
364
365         * doc/dbus-specification.xml: Clean up the docs on the UUID.
366
367         * tools/dbus-uuidgen.1: more prominently say it is not suitable
368         as a replacement for regular uuidgen/RFC4122.
369
370 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
371
372         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
373         the correct value so we don't assert when initalizing recursive threads
374
375         * test/name-test/test-thread-init.c: call dbus_threads_init_default
376         instead of _dbus_threads_init_debug since it is more of a real world
377         test
378
379 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
380
381         * Released 1.0.0
382
383 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
384
385         * AUTHORS: added Peter and Tor of windows porting fame
386
387 2006-11-08  Havoc Pennington  <hp@redhat.com>
388
389         * doc/dbus-specification.xml: add a note about protocol stability
390
391         * doc/TODO: Remove "important for 1.0" section, replace with
392         "important for 1.2" section
393         
394 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
395
396         * README: remove some of the out of date flags
397
398         * doc/TODO: Remove todo items which are done
399
400 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
401
402         * tools/dbus-monitor.c: Handle sigint so we flush stdout
403         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
404
405 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
406
407         * tools/dbus-monitor.1: update the manpage for dbus-monitor
408         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
409
410 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
411
412         * AUTHORS: Update with all people listed in the ChangeLog
413
414 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
415
416         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
417         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
418
419 2006-11-07  Havoc Pennington  <hp@redhat.com>
420
421         * HACKING: Update release instructions to include stuff about
422         stable releases, branching, etc. May not be totally correct,
423         please fix if needed, but keep instructions up-to-date so we do
424         each stable release consistently in the future.
425
426 2006-11-07  Havoc Pennington  <hp@redhat.com>
427
428         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
429         documentation updates. Bump faq/spec versions (not to 1.0; I don't
430         think the spec will be "finished"/1.0 when we ship the 1.0 library).
431
432 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
433
434         * bus/bus.c: Missed patch - pass in the context to the directory watch
435
436 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
437
438         * Released D-Bus 1.0 RC 3(0.95)
439
440 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
441
442         * bus/activation.c (bus_activation_new): don't fail if we can not read
443         the directory as it may not exist
444
445 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
446
447         * bus/config-parser.c (service_dirs_find_dir): use 
448         _dbus_list_get_next_link so we don't get stuck in an infinite loop
449         (start_busconfig_child): move processing of standard_session_servicedirs
450         tags here because they have no content
451         (bus_config_parser_content): check we don't have content in 
452         standard_session_servicedirs tag
453
454 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
455
456         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
457         Packagers need to own this directory
458
459 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
460
461         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
462         <standard_session_servicedirs> tag with a <sevicedir> tag that
463         points to the test service directory
464
465 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
466
467         * configure.in: Add a check for DIR *dirp->dd_fd
468
469         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
470         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
471         of both Solaris and Irix
472
473 2006-11-01  Havoc Pennington  <hp@redhat.com>
474
475         * bus/dbus-daemon.1.in: document standard_session_servicedirs
476
477 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
478
479         * configure.in: expose DBUS_DATADIR
480         
481         * bus/config-parser.c: add the standard_session_servicedirs element
482         to the parser
483         (bus_config_parser_content): process the standard_session_servicedirs
484         element by getting the standard directories from sysdeps and merging
485         them into the service directory list
486         (test_default_session_servicedirs): make sure we get what we expect
487
488         * bus/session.conf.in: replace the servicedir tag with the 
489         standard_session_servicedirs tag
490
491         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
492         dbus-sysdeps.h to avoid circular header dependencies
493
494         * dbus/dbus-sysdeps.h: add the typedef of DBusList
495
496         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
497         which takes a string of directories delimited by colons, parses them 
498         out, appends a suffix and puts them in a list ignoring empty elements
499         (_dbus_get_standard_session_servicedirs): returns the standard 
500         directories for a session bus to look for service activation files
501         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
502         DBUS_DATADIR directories
503
504         * test/data/valid-config-files/many-rules.conf: add the 
505         standard_session_servicedirs tag to the valid config file tests
506
507 2006-10-30  Havoc Pennington  <hp@redhat.com>
508
509         * tools/dbus-launch.1, doc/TODO: capture intent to change the
510         command line options of dbus-launch a bit post 1.0
511
512 2006-10-27  Havoc Pennington  <hp@redhat.com>
513         
514         * dbus/dbus-connection.c (dbus_connection_open_private): document
515         how to choose shared vs. private connections
516
517 2006-10-27  Havoc Pennington  <hp@redhat.com>
518
519         * dbus/dbus-test.c: enclose more of the file in the
520         DBUS_BUILD_TESTS check.
521
522         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
523         DBUS_DISABLE_ASSERT case.
524
525         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
526         that it only works on the server side
527
528         * dbus/dbus-bus.c: add a global lock covering the BusData we
529         attach to each connection
530         (internal_bus_get): lock our access to the BusData
531         (dbus_bus_register): lock the entire registration process
532         with _DBUS_LOCK(bus_datas). If we get the lock and 
533         registration is already complete, silently return (vs. previous
534         behavior of aborting).
535         (dbus_bus_set_unique_name): lock the BusData
536         (dbus_bus_get_unique_name): lock the BusData
537
538 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
539
540         * bus/config-parser.c (service_dirs_find_dir, 
541         service_dirs_append_unique_or_free, 
542         service_dirs_append_link_unique_or_free): New static methods
543         for only appending unique service directory names into
544         the service directory list
545         (merge_included, bus_config_parser_content): Only add unique
546         service directory names into the list
547
548 2006-10-27  Havoc Pennington  <hp@redhat.com>
549
550         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
551         variables volatile, suggested by Thiago. Document struct fields.
552         (PTHREAD_CHECK): remove pthread error checking if assertions are
553         disabled, should reduce the no-assertions case to the bare
554         minimum code.
555
556 2006-10-26  Havoc Pennington  <hp@redhat.com>
557         
558         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
559         to be recursive
560         (_dbus_pthread_mutex_unlock): make it recursive
561         (_dbus_pthread_condvar_wait): save/restore the recursion count
562         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
563
564 2006-10-26  Havoc Pennington  <hp@redhat.com>
565
566         * doc/dbus-specification.xml: clarify the UUID text slightly
567
568         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
569         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
570         in preparation for being able to extend them for e.g. recursive
571         mutexes.
572
573 2006-10-26  Havoc Pennington  <hp@redhat.com>
574
575         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
576         condition variables relate to recursive mutexes.
577         
578         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
579         dbus/dbus-threads.c: Split the platforms-specific thread 
580         implementations into their own files.
581         
582         * dbus/dbus-sysdeps-pthread.c
583         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
584         was backward. Not that anything uses it.
585
586 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
587
588         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
589         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
590         needs to be cleaned up more.
591
592         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
593         up the CREDS issue.
594
595 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
596
597         * configure.in, dbus-1.pc.in: Check to see if thread methods 
598         are in glibc or libpthread and add -lpthread to the link stage 
599         if it is the latter
600
601 2006-10-26  Thiago Macieira  <thiago@kde.org>
602
603         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
604         bug 8780: the connection lock is only required while recording
605         the shared connection, so protect only that code
606         section. Don't require connection_lookup_shared to return a
607         locked connection.
608
609 2006-10-26  Thiago Macieira  <thiago@kde.org>
610
611         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
612         check if get_machine_uuid() returns NULL before proceeding any
613         further: we can't init the X atoms or create a session file
614         name if there is no machine ID.
615         This solves a crash reported by some users if
616         --exit-with-session was used without --autolaunch=<machine-id>
617
618 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
619
620         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
621         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
622
623         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
624         before we run dbus-launch
625
626         * configure.in: define TEST_BUS_BINARY to be the full path to 
627         dbus-daemon in the build root 
628
629 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
630
631         * dbus/Makefile.am:
632         * tools/Makefile.am:
633         * toos/dbus-uuidgen.1:
634                 Move the machine-id file to /var/lib/dbus 
635
636 2006-10-24  David Zeuthen  <davidz@redhat.com>
637
638         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
639         _dbus_assert (thread_init_generation != _dbus_current_generation)
640         not _dbus_assert (thread_init_generation == _dbus_current_generation)
641
642 2006-10-24  Thiago Macieira  <thiago@kde.org>
643
644         * dbus/dbus-sysdeps.h:
645         * dbus/dbus-sysdeps-unix.c: Add function
646         _dbus_make_file_world_readable that chmods a file to 0644.
647
648         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
649         Avoid writing to the static "argv" array, thereby avoiding a
650         COW on the child process.
651
652         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
653         call _dbus_make_file_world_readable on the created file.
654
655 2006-10-23  David Zeuthen  <davidz@redhat.com>
656
657         * dbus/dbus-memory.c: Use atomic variable to protect
658         n_blocks_outstanding otherwise OOM will be reported using SMP on
659         some arches
660         
661         * bus/dispatch.c: Add missing end of line characters
662
663         * bus/desktop-file.c (parse_section_start, parse_key_value) 
664         (bus_desktop_file_load): Propertly handle OOM
665
666         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
667         thread_init_generation equals _dbus_current_generation, not 0
668
669 2006-10-22  Havoc Pennington  <hp@redhat.com>
670
671         * dbus/dbus-connection-internal.h: move prototype of
672         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
673         it isn't in a public header and doesn't end up in the DBusBus
674         group in Doxygen
675
676 2006-10-21  Havoc Pennington  <hp@redhat.com>
677
678         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
679         the tarball if packagers want to run it
680
681         * cleanup-man-pages.sh: Add a script which munges all the internal
682         API man pages out of the Doxygen output. This reduces the size of
683         the installed man pages from 7 to 2 megs, and avoids
684         namespace-polluting pages. Right now (like Doxygen) this script
685         isn't in the build, it's something packagers can do manually.
686
687 2006-10-21  Havoc Pennington  <hp@redhat.com>
688
689         * dbus/dbus-connection.h: don't include the watch/timeout
690         functions in connection section
691
692 2006-10-21  Havoc Pennington  <hp@redhat.com>
693
694         * Documentation! Whee! Doxygen now 100% silent. If you make it
695         angry again, you will be punished.
696         
697 2006-10-21  Havoc Pennington  <hp@redhat.com>
698
699         * More documentation - all public API now documented according to
700         Doxygen
701
702 2006-10-21  Havoc Pennington  <hp@redhat.com>
703
704         * Document a bunch of undocumented stuff
705         
706 2006-10-21  Havoc Pennington  <hp@redhat.com>
707
708         * Clean up Doxygen group markers for public API so Doxygen finds
709         everything (not comprehensively fixed for private API).
710         Means all remaining Doxygen warnings are just about missing docs
711         and thus pretty simple to resolve.
712         
713 2006-10-21  Havoc Pennington  <hp@redhat.com>
714         
715         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
716
717         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
718         as DBUS_GNUC_DEPRECATED
719
720 2006-10-21  Havoc Pennington  <hp@redhat.com>
721
722         * Move all private API into the private Doxygen group sections of
723         the files, so they don't show up in the public API docs
724         
725 2006-10-21  Havoc Pennington  <hp@redhat.com>
726
727         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
728         dbus_message_iter_get_array_len().
729
730         * throughout: documentation improvements.
731
732 2006-10-20  Havoc Pennington  <hp@redhat.com>
733
734         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
735         matter, and the message-loader-breaker thing since nobody is going
736         to do it.  Add an item to 1.0 about supporting recursive locks
737         in dbus_threads_init_default() though, since it should be easy.
738
739         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
740         Fix this in the !dispatch case to avoid busy-looping after
741         disconnection
742
743         * More misc docs improvements
744
745 2006-10-19  Havoc Pennington  <hp@redhat.com>
746
747         * more Doxygen-related fixes (lots of moving things from the
748         public to internal section in dbus-connection.c)
749
750 2006-10-19  Havoc Pennington  <hp@redhat.com>
751
752         * Fix a pile of Doxygen warnings and missing docs
753
754 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
755
756         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
757         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
758         instead of a void *.  kqueue uses this to get the context's loop
759         while the other modules ignore the parameter.  This allows us to
760         avoid platform conditionals
761
762         * bus/bus.c (process_config_postinit): Pass in the context to the 
763         watch
764
765 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
766
767         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
768         when starting the system bus
769
770 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
771
772         * configure.in: More fixups for cross compile (Patch from 
773         Marco Pracucci <development at pracucci dot com>)
774
775 2006-10-17  Havoc Pennington  <hp@redhat.com>
776
777         * tools/dbus-send.c (main): don't close shared connection, fix
778         from Timo Hoenig
779
780 2006-10-17  Havoc Pennington  <hp@redhat.com>
781
782         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
783
784         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
785         since realistically it doesn't look like we'll be changing it
786         anymore.
787
788 2006-10-17  Havoc Pennington  <hp@redhat.com>
789
790         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
791         be used for return_if_fail type warnings; prefixes the pid, and
792         fatal by default.
793
794 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
795
796         * configure.in: Released 1.0 RC 2(0.94)
797         Add check for -fPIC and enable it if available
798
799 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
800
801         * doc/TODO: Remove the check TODO item
802
803 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
804
805         * dbus-transport-socket.c (exchange_credentials):
806         Print out more detailed errors if reading or sending
807         credentials fail (Patch from Julio M. Merino Vidal 
808         <jmmv at NetBSD dot org>)
809
810 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
811
812         * configure.in: when checking for posix getpwnam_r assume true
813         for cross compiles
814
815 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
816
817         * configure.in: Check for gethostbyname first before we check for it
818         in libnsl.  On gnu systems it is implemeneted 
819
820 2006-10-13  Havoc Pennington  <hp@redhat.com>
821
822         * dbus/dbus-connection.c
823         (dbus_connection_send_with_reply_and_block): fix to handle closed
824         connections, from Tambet Ingo bug #8631
825
826 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
827
828         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
829
830 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
831
832         * test/name-test/Makefile.am: don't link against both libdbus and
833         libdbus-convenience
834
835 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
836
837         * configure.in: check for dirfd even if it is a macro
838         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
839
840 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
841
842         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
843         avoid using dirfd on systems that don't have dirfd 
844         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
845
846 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
847
848         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
849         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
850
851         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
852         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
853         macro because _dbus_abort calls it
854
855         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
856         works
857
858 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
859
860         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
861         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
862
863 2006-10-02  Thiago Macieira  <thiago@kde.org>
864
865         * tools/dbus-launch.c (main): make it complain and abort
866         execution in case an unknown option is given. Also, process
867         the '--' argument as the end of arguments.
868
869 2006-10-01  Havoc Pennington  <hp@redhat.com>
870
871         * tools/dbus-launch.c (print_variables): if no syntax is given,
872         don't print something that's sort-of-half-sh-syntax, just print
873         a plain key-value pairs thing.
874
875         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
876         the local machine representation (but still have the hostname in
877         the display). Remove the hostname from the display if it is
878         localhost. Change session files to be named
879         ~/.dbus/session-bus/machine-display. Change X atoms to be
880         underscore-prefixed so nobody whines about ICCCM compliance.
881         Otherwise name them the same as the env variables.
882         Change session file format to include key-value pairs and an
883         explanatory comment. Keys are the same as the env variables.
884         (set_address_in_x11): X property format can't depend on
885         sizeof(pid_t) on a particular machine, fix to always be 32 bits
886
887         * tools/dbus-launch.c: make --autolaunch take a machine id
888         argument. If --autolaunch is used with a program to run, complain
889         for now (but add a FIXME). Also, don't look for existing bus if 
890         there's a program to run (but add a FIXME).
891
892         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
893         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
894         just to get this, and avoids duplicating uuid-reading code).
895
896         * tools/dbus-launch.1: clarify various things
897         
898 2006-10-01  Havoc Pennington  <hp@redhat.com>
899
900         * test/test-service.c (path_message_func): remove broken extra
901         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
902
903         * test/test-shell-service.c (path_message_func): same fix
904         
905         * dbus/dbus-connection.c
906         (_dbus_connection_get_dispatch_status_unlocked): break up the
907         function a little for clarity and fix the notification of
908         dbus-bus.c to not require dispatch to be complete
909
910         * dbus/dbus-connection.c (dbus_connection_unref): improve the
911         warning when you try to finalize an open connection.
912         
913 2006-10-01  Havoc Pennington  <hp@redhat.com>
914
915         * dbus/dbus-bus.c
916         (internal_bus_get): only weak ref the connection; this means 
917         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
918         called safely in any context
919         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
920         unref
921
922         * dbus/dbus-connection.c
923         (_dbus_connection_get_dispatch_status_unlocked): move
924         _dbus_bus_notify_shared_connection_disconnected_unlocked here
925         when queuing Disconnected instead of when the Disconnected message
926         arrives, so dbus_bus_get() won't return closed connections.
927         
928 2006-10-01  Havoc Pennington  <hp@redhat.com>
929
930         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
931         Add a hack to make DBusNewConnectionFunction work right.
932
933         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
934         the hack here. Also, fix the todo about refcount leak.
935         
936         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
937         and use the hack here
938         
939         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
940         "shareable" flag; this was completely broken, since it meant 
941         dbus_connection_open() returned a connection of unknown
942         shared-ness. Now, we always hold a ref on anything opened 
943         as shareable.
944
945         Move the call to notify dbus-bus.c into
946         connection_forget_shared_unlocked, so libdbus consistently forgets
947         all its knowledge of a connection at once. This exposed numerous
948         places where things were totally broken if we dropped a ref inside
949         get_dispatch_status_unlocked where
950         connection_forget_shared_unlocked was previously, so move
951         connection_forget_shared_unlocked into
952         _dbus_connection_update_dispatch_status_and_unlock. Also move the
953         exit_on_disconnect here.
954
955         (shared_connections_shutdown): this assumed weak refs to the
956         shared connections; since we have strong refs now, the assertion 
957         was failing and stuff was left in the hash. Fix it to close
958         still-open shared connections.
959         
960         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
961         debug pipe connections
962         
963         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
964         dbus-bus.c if the closed connection is in fact shared
965         (_dbus_connection_close_possibly_shared): rename from 
966         _dbus_connection_close_internal
967         (dbus_connection_close, dbus_connection_open,
968         dbus_connection_open_private): Improve docs to explain the deal
969         with when you should close or unref or both
970
971         * dbus/dbus-bus.c
972         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
973         from _dbus_bus_check_connection_and_unref_unlocked and modify to
974         loop over all connections
975
976         * test/test-utils.c (test_connection_shutdown): don't try to close
977         shared connections.
978
979         * test/name-test/test-threads-init.c (main): fix warnings in here
980
981         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
982         env variable to cause blocking waiting for gdb; drop
983         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
984         unconditionally.
985
986         * configure.in: add -export-dynamic to libtool flags if assertions enabled
987         so _dbus_print_backtrace works.
988
989         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
990         instead of _dbus_verbose to print the backtrace, and diagnose lack 
991         of -rdynamic/-export-dynamic
992         
993 2006-09-30  Havoc Pennington  <hp@redhat.com>
994
995         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
996         (internal_bus_get): fix screwy code formatting. whoever committed
997         that was not paying attention!
998
999 2006-09-30  Havoc Pennington  <hp@redhat.com>
1000
1001         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1002         reflect addition of interfaces.
1003
1004         * doc/dbus-specification.xml: describe a new
1005         org.freedesktop.DBus.Peer.GetMachineId method
1006
1007         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1008         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1009         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1010         at end of skip_white
1011         (_dbus_string_chop_white): new function
1012
1013         * bus/connection.c (bus_connections_setup_connection): call
1014         dbus_connection_set_route_peer_messages.
1015
1016         * dbus/dbus-connection.c
1017         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1018         support a GetMachineId method.
1019
1020         Also, support a new flag to let the bus pass peer methods through
1021         to apps on the bus, which can be set with
1022         dbus_connection_set_route_peer_messages.
1023
1024         Finally, handle and return an error for anything unknown on the
1025         Peer interface, which will allow us to extend the Peer interface
1026         in the future without fear that we're now intercepting something
1027         apps were wanting to see.
1028         
1029         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1030         dbus/dbus-uuidgen.c
1031
1032         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1033         binary here, since most of the code is already in libdbus
1034
1035         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1036         uuid from the system config file
1037
1038         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1039         (_dbus_read_uuid_file_without_creating) 
1040         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1041         uuid-related functions, partly factored out from dbus-server.c
1042
1043         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1044         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1045
1046         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1047
1048         * tools/dbus-cleanup-sockets.1: explain what the point of this
1049         thing is a bit more
1050
1051         * autogen.sh (run_configure): add --config-cache to default
1052         configure args
1053
1054         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1055         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1056
1057         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1058         don't try to save address, fixes crash in make check
1059         
1060 2006-09-30  Thiago Macieira  <thiago@kde.org>
1061
1062         * configure.in: add DBUS_BINDIR as a #define to C source code.
1063
1064         * tools/dbus-launch.c
1065         * tools/dbus-launch.h
1066         * tools/dbus-launch-x11.c:
1067         * tools/dbus-launch.1: Add the --autolaunch option to
1068         dbus-launch, which makes it scan for an existing session
1069         started with --autolaunch. With that option, it also creates
1070         an X11 window and saves the bus address and PID to it.
1071
1072         * dbus/dbus-sysdeps.h:
1073         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1074         a function that runs "dbus-launch --autolaunch" to retrieve
1075         the running D-Bus session address (or start one if none was running)
1076
1077         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1078         address protocol, which tries to get the running session from
1079         dbus-launch.
1080
1081         * dbus/dbus-bus.c:
1082         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1083         D-Bus session bus address.
1084
1085         * dbus/dbus-connection.c: Fix horrible typo in error message.
1086
1087 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1088
1089         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1090
1091 2006-09-17  Havoc Pennington  <hp@redhat.com>
1092
1093         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1094         fix so that if unix_user_function is set on windows, we still
1095         do the default check that the auth identity matches the bus identity
1096
1097 2006-09-16  Havoc Pennington  <hp@redhat.com>
1098
1099         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1100         to _dbus_transport_open_platform_specific,
1101         _dbus_transport_open_socket,
1102         and _dbus_transport_open_debug_pipe
1103
1104         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1105
1106 2006-09-16  Havoc Pennington  <hp@redhat.com>
1107
1108         Attempt auditing public API to remove all cases where a Unix
1109         function returns weird emulated goo to Windows. This probably 
1110         breaks the bus daemon on Windows, to fix it again we may 
1111         need to stop processing unix-specific config options on Windows,
1112         and may need to add Windows-specific public API or config options.
1113         
1114         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1115         to reflect added interfaces; should not break soname.
1116         
1117         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1118         not invoke unix user function on Windows. Kind of a hacky fix, but 
1119         we don't want a "unix uid" leaking out on Windows.
1120
1121         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1122         to get the socket fd on Windows or UNIX
1123         (dbus_connection_get_unix_fd): make this always fail on Windows
1124
1125 2006-09-16  Havoc Pennington  <hp@redhat.com>
1126
1127         * dbus/dbus-server.c (dbus_server_listen): change how this works
1128         to be able to delegate to a set of handlers that can succeed,
1129         fail, or choose not to handle. Allows us to have 
1130         dbus_server_listen_platform_specific.
1131
1132         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1133         factor out the tcp socket stuff to be used on windows, leaving
1134         unix domain socket only in dbus-socket-unix.c
1135
1136         * dbus/dbus-transport-socket.c
1137         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1138         stuff to be used on windows, leaving unix domain socket only 
1139         in dbus-transport-unix.c
1140
1141         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1142         temporary hack to be sure this fails on windows
1143         (dbus_connection_get_unix_process_id): ditto
1144
1145 2006-09-16  Havoc Pennington  <hp@redhat.com>
1146
1147         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1148         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1149         _dbus_open_socket so the domain/type/protocol from system headers
1150         are not required. This is kind of pointless though unless we move
1151         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1152         sysdeps-unix.c, which would mean adding a wrapper around
1153         bind/listen/etc.
1154         Also, add DBusError to the socket-opening functions so they 
1155         don't require use of errno.
1156
1157 2006-09-16  Havoc Pennington  <hp@redhat.com>
1158
1159         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1160         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1161
1162         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1163         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1164         functions specifically for sockets only, and move generic 
1165         read/write/open/close into unix-specific code.
1166
1167 2006-09-14  Havoc Pennington  <hp@redhat.com>
1168
1169         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1170         complaint about accessing revents when poll returns 0, from Julian Seward.
1171
1172 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1173
1174         * Released 1.0 RC 1 (0.93) 
1175
1176 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1177
1178         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1179         use _dbus_close instead of close
1180
1181 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1182
1183         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1184         credentials.  Fixes "external" authentication under e.g. NetBSD
1185         which does not support any other socket credentials mechanism.
1186         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1187
1188 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1189
1190         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1191         dbus_threads_init and be used by the dbus mutex functions to
1192         avoid deadlocks.
1193
1194         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1195
1196 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1197
1198         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1199         use threadsafe readdir_r instead of readdir
1200
1201 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1202
1203         * dbus-threads.c (dbus_threads_init_default): New method for
1204         initializing the internal thread implementation (Patch from
1205         Alexander Larsson <alexl at redhat dot com>)
1206
1207 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1208
1209         * remove a bunch of todo items from the 1.0 list
1210
1211 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1212
1213         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1214         key not found
1215
1216 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1217
1218         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1219         complex debugging code
1220
1221         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1222         between the test suite ifdefs
1223         (_dbus_verbose_bytes): return if verbosity is not enabled 
1224
1225 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1226
1227         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1228         remove DBusMark
1229
1230 2006-09-10  Havoc Pennington  <hp@redhat.com>
1231
1232        patch mostly by Peter Kümmel, bug #8211
1233         
1234         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1235         unix-specific stuff in dbus-sysdeps.c
1236
1237         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1238         and move unix-specific stuff to dbus-sysdeps-unix.c
1239
1240         * configure.in: check HAVE_ERRNO_H
1241         
1242 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1243
1244         * bus/test-main.c (main): Initialize threading during tests
1245
1246         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1247         Unlock connection on error
1248         (generate_local_error_message): static method for generating
1249         an error message when we don't have a message to reply to
1250         (_dbus_connection_block_pending_call): Send a disconnect error
1251         instead of just a timeout (NULL) when the bus gets disconnected
1252         while blocking for a reply.
1253         
1254 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1255
1256         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1257         filters (Patch from Kimmo Hämäläinen 
1258         <kimmo dot hamalainen at nokia dot com>)
1259
1260 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1261
1262         * dbus/dbus-connection-internal.h: Add prototype for 
1263         _dbus_connection_test_get_locks to remove warning
1264
1265 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1266
1267         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1268         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1269         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1270
1271 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1272
1273         * Clean up close calls to use _dbus_close (Patch from 
1274         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1275
1276 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1277
1278         * doc/TODO:
1279         - Remove pending call locking todo item
1280         - dbus_connection_open now holds hard ref.  Remove todo item
1281         - do proper locking on _dbus_bus_check_connection_and_unref
1282           and handle DBUS_BUS_STARTER. Remove todo item
1283         - Warn on closing of a shared connection.  Remove todo item
1284
1285         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1286         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1287         so we don't get the warning when closing shared connections
1288
1289         * test/test-service.c, test/test-shell-service.c: Applications
1290         don't close shared connections themselves so we unref instead of
1291         close
1292
1293         * test/test-utils.c (test_connection_shutdown): Close the connection
1294
1295         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1296         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1297         method on a locked connection.  
1298         Make sure we call _dbus_connection_unref_unlocked instead of 
1299         dbus_connection_unref also.
1300         Handle DBUS_BUS_STARTER correctly
1301
1302         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1303         Mark as shared and hard ref the connection
1304         (connection_forget_shared_unlocked): Remove the hard ref from the 
1305         connection
1306         (_dbus_connection_close_internal_and_unlock):  New internal function
1307         which takes a locked connection and unlocks it after closing it
1308         (_dbus_connection_close_internal): New internal function which acts
1309         like the origonal dbus_connection_close method by grabbing a connection
1310         lock and calling _dbus_connection_close_internal_and_unlock
1311         (dbus_connection_close): Public close method, warns when the app
1312         trys to close a shared connection
1313
1314 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1315
1316         * bus/driver.c:
1317         (bus_driver_generate_introspect_string): New method for populating
1318         a DBusString with the introspect data
1319         (bus_driver_handle_introspect): Move introspect generation code to 
1320         bus_driver_generate_introspect_string
1321
1322         * bus/main.c:
1323         (introspect): New function which prints out the intropect data and
1324         exits
1325         (main): Add a --introspect switch
1326
1327 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1328
1329         * doc/TODO: Removed dtd publishing item.  
1330         It seems the dtd has already been added at
1331         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1332
1333 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1334
1335         * doc/TODO, various source files: Audited todo's and FIXME's and
1336         prepended the ones we should be looking at with 1.0.  Those
1337         prepended with 1.0? need clerification or might not be needed
1338         for 1.0
1339
1340 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1341
1342         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1343         NULL in the public API (Patch from Kimmo Hämäläinen 
1344         <kimmo dot hamalainen at nokia dot com>)
1345
1346 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1347
1348         * configure.in: Fix for OS-X compile time endian issues (patch from
1349         Benjamin Reed <ranger at befunk dot com>)
1350
1351 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1352
1353         * configure.in: Check for no-common compiler flag (OS-X fix from
1354         Benjamin Reed <ranger at befunk dot com>)
1355
1356 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1357
1358         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1359         <fcrozat at mandriva dot com>)
1360
1361 2006-08-29  Havoc Pennington  <hp@redhat.com>
1362
1363         * test/test-service.c (path_message_func): fix lack of return value
1364
1365         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1366         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1367         any more sense than on anything else in this file.
1368         (_dbus_get_tmpdir): add const to return value, and keep the
1369         results of the various getenv around in a static variable.
1370
1371 2006-08-29  Havoc Pennington  <hp@redhat.com>
1372
1373         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1374         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1375
1376 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1377
1378         * test/Makefile.am: change find to use syntax that works with non
1379         gnu versions of find
1380
1381 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1382
1383         * dbus/dbus-transport.c: fix invalid deref when checking if
1384         a vtable method exists (Patch from Christian Ehrlicher 
1385         <ch dot ehrlicher at gmx dot de>)
1386
1387 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1388
1389         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1390         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1391         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1392         <bernard at brenda-arkle dot demon dot co dot uk>)
1393
1394 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1395
1396         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1397         default case
1398
1399 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1400
1401         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1402         it works on any system providing this interface, not only FreeBSD.
1403         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1404
1405 2006-08-20  Havoc Pennington  <hp@redhat.com>
1406
1407         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1408         the docs
1409
1410 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1411
1412         * Released 0.92 
1413
1414 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1415
1416         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1417         to reflect the init late change
1418
1419         * bus/bus.c (bus_context_new): Check user before we fork so we can
1420         print out an error message a user will be able to see
1421
1422 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1423
1424         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1425
1426         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1427         Add two more global locks for use on windows platforms.  These are
1428         unused on non-windows platforms but are not ifdefed out to avoid
1429         potential bugs (i.e. the few bytes lost does not warrent the extra
1430         maintanence and complexity that having seperate sets of locks would
1431         cause)
1432
1433 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * bus/services.c (bus_registry_acquire_service): Return an error
1436         when an application tries to register the org.freedesktop.DBus Bus Name
1437
1438         * bus/services.c (bus_registry_release_service): Return an error
1439         when an application tries to release the org.freedesktop.DBus Bus Name
1440
1441 2006-08-17  Alp Toker  <alp@atoker.com>
1442
1443         * doc/dbus-specification.xml: Fix some minor typos.
1444
1445 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1446
1447         * configure.in: use $with_init_scripts instead of $operating_system
1448         to determine where to store the pid since the init scripts manipulate 
1449         the pid file (patch from Marcelo Ricardo Leitner 
1450         <marcelo dot leitner at terra dot com dot br>.  
1451
1452 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1453
1454         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1455         static DBusList *uninitialized_condvar_list to support new late 
1456         initialization threading model.  In this model threads can be initialized
1457         even after the D-Bus API has been used but still needs to be initialized 
1458         before the second thread has been started.  Mutexes and condvar addresses
1459         are stored in the two static lists and are replaced with actuall locks
1460         when threads are initalized.
1461         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1462         the location into the static list
1463         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1464         from the static list and freeing the mutex
1465         (_dbus_condvar_new_at_location): New method for creating a conditional 
1466         variable and placing the location into the static list
1467         (_dbus_condvar_free_at_location): New method for removing a conditional
1468         variable location from the static list and freeing the conditional variable 
1469         (init_uninitialized_locks): Atomic method which goes through the static 
1470         lists of mutex and condvar location and updates them with actuall locks
1471         (init_global_locks): changed to init_locks
1472         
1473         * dbus/dbus-connection.c:
1474         (_dbus_connection_test_get_locks): New method for tests to check connections
1475         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1476         condvar API
1477         (dbus_connection_allocate_data_slot): Pass in the global lock address
1478         to _dbus_data_slot_allocator_alloc
1479
1480         * dbus/dbus-dataslot.c:
1481         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1482         instead of the mutex itself
1483
1484         * dbus/dbus-message.c:
1485         (dbus_message_allocate_data_slot): Pass in the global lock address
1486         to _dbus_data_slot_allocator_alloc
1487
1488         * dbus/dbus-pending-call.c:
1489         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1490         to _dbus_data_slot_allocator_alloc
1491
1492         * dbus/dbus-server.c:
1493         (_dbus_server_init_base): Use the new at_location mutex API
1494         (dbus_server_allocate_data_slot): Pass in the global lock address
1495         to _dbus_data_slot_allocator_alloc
1496
1497         * test/name-test/test-threads-init.c: New test case for late thread
1498         initialization
1499
1500 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1501
1502         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1503         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1504         causes compile problems when asserts are turned off
1505         Keeping _dbus_warn for printing out the message so even if
1506         asserts are turned off the user gets the messages that something is 
1507         wrong 
1508
1509 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1510
1511         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1512
1513         * bus/services.c (bus_service_list_queued_owners):
1514         Add a pointer cast to fix compiler warning
1515
1516         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1517         return a NULL instead of FALSE since the return type
1518         is not expecting a boolean
1519
1520         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1521         Remove unused variable
1522
1523         * dbus/dbus-marshal-recursive-util.c (node_new):
1524         return a NULL instead of FALSE since the return type
1525         is not expecting a boolean
1526
1527         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1528         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1529         because we are expecting a pointer not a boolean
1530
1531         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1532         add void as the parameter so some compilers
1533         don't complain
1534
1535         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1536           _dbus_transport_new_for_tcp_socket):
1537         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1538         because we are expecting a pointer not a boolean
1539
1540         * test/shell-test.c (test_command_line):
1541         cast the second argument to _dbus_list_append to avoid compiler
1542         warnings
1543
1544         * test/test-names.c (main): remove unused variable
1545
1546         * test/test-service.c (check_hello_from_self_reply):
1547         Initialize echo_message and echo_reply to NULL
1548         
1549         * test/test-shell-service.c (handle_echo):
1550         Remove unused variable and cast the third parameter passed to
1551         dbus_connection_get_object_path_data to avoid compiler warrnings
1552
1553         * test/name-test/test-names.c (clear_message_queue):
1554         Remove unused function
1555
1556         * test/name-test/test-pending-call-dispatch.c:
1557         Fix format string in printf
1558
1559
1560 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1561
1562         * dbus/dbus-bus.c:
1563         * test/name-test/test-names.c:
1564         Remove test method dbus_bus_connection_get_unique_name because 
1565         we already have public method dbus_bus_get_unique_name that 
1566         does the exact same thing
1567
1568 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1569
1570         * dbus/dbus-signature.c:
1571         fix typos in Julio's previous patch which cause make check to fail
1572
1573 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1574
1575         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1576         In any case it was wrong since this is a test checking to see if
1577         address parsing is correct.  There was no need to get the true
1578         tmp directory.  
1579
1580 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1581
1582         * dbus/dbus-macros.h: Revert the addition of stddef.h
1583         as we should not be adding it to library headers 
1584
1585 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1586
1587         * dbus/dbus-signature.c:
1588         Fix the unit tests so that they work if assertions are not enabled.
1589         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1590
1591 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1592
1593         * tools/run-with-tmp-session-bus.sh:
1594         * test/name-test/run-test.sh:
1595         Remove bashisms (patch from Julio M. Merino Vidal
1596         <jmmv at NetBSD dot org>)
1597
1598 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1599
1600         * configure.in: add a version (>= 2.6.0) check for libxml2
1601
1602 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1603
1604         * configure.in: make sure the compiler supports -Wfloat-equal
1605         
1606         * bus/dir-watch-dnotify.c: move functional code after 
1607         variable declerations (C99 fix)  (patches from Jens Granseuer
1608         <jensgr at gmx dot net>
1609
1610 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1611
1612         * dbus/dbus-macros.h:
1613         add #include <stddef.h> so that Sun compilers don't complain about
1614         the defining NULL
1615
1616 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1617
1618         * dbus/dbus-sysdeps.c:
1619         * dbus/dbus-address.c:
1620         * bus/activation.c:
1621         * test/shell-test.c:
1622         don't hardcode tmp directory (patch from Dave Meikle 
1623         <dmk at davemeikle dot co dot uk>)
1624
1625 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1626
1627         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1628         Change an assert to a detailed warning and abort.  
1629         When allocator->lock != mutex it indicates that the user has failed
1630         to initalize threads before using the D-Bus library.  This warning
1631         helps the user identify the issue and fix their app.
1632
1633 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1634
1635         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1636         with cleanups of bugs found from Coverity reports:
1637
1638         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1639         close the file on error to avoid a leak
1640
1641         * bus/expirelist.c (bus_expire_list_test):
1642         Check for NULL on dbus_new0
1643
1644         * bus/activation.c (update_directory):
1645         remove dead code
1646
1647         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1648         Fix some leaks
1649
1650         * bus/bus.c (process_config_every_time):
1651         Fixed a leak
1652
1653         * bus/desktop-file.c (parse_key_value):
1654         Fixed leak
1655
1656         * bus/selinux.c (bus_selinux_id_table_insert):
1657         Fixed leak
1658
1659 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1660
1661         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1662         remove dead code
1663
1664 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1665
1666         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1667         #!/bin/bash
1668
1669 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1670
1671         * Doxyfile.in: fix the INPUT line so we can generate docs 
1672         when sourcedir != builddir (patch from Cygwin Ports maintainer
1673         <yselkowitz at users dot sourceforge dot net>
1674
1675 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1676
1677         * dbus/dbus-sysdeps.h:
1678         * dbus/dbus-sysdeps.c: 
1679         * dbus/dbus-string.c: 
1680         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1681         GLib's function which does the same thing
1682
1683         * configure.in:
1684         * bus/Makefile.am:
1685         * bus/dir-watch-default.c:
1686         * bus/dir-watch-dnotify.c:
1687         * bus/dir-watch-kqueue.c:
1688         Add kqueue directory watching for freebsd and split the directory
1689         watching code into seperate files per method/arch
1690         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1691
1692 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1693
1694         * configure.in:
1695         * tools/Makefile.am:
1696         * tools/dbus-launch.c:
1697         * bus/Makefile.am:
1698         allow --with-dbus-daemondir switch to be used to make the
1699         daemon install to a seperate bindir like /usr/libexec
1700         (patch from Brian Cameron <brian dot cameron at sun dot com)
1701
1702 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1703
1704         * bus/Makefile.am (install-data-hook): removed the slash after 
1705         $(DESTDIR) so we don't get the double slash which does not work
1706         in windows (patch from Andras Porjesz 
1707         <andras dot porjesz at siemens dot com>)
1708
1709 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1710
1711         * dbus/dbus-sysdeps.h:
1712         * dbus/dbus-sysdeps.c: 
1713           add _dbus_printf_length (patch from Peter Kümmel 
1714           <syntheticpp at gmx dot net>)
1715
1716 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1717
1718         * dbus/dbus-internals.c: unistd.h is not used 
1719         (_dbus_verbose_real): only enable verbose printing 
1720         if DBUS_VERBOSE environment var is set to '1'
1721         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1722
1723 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1724
1725         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1726         so we still compile on older gcc (patch from Frederic Peters 
1727         <fpeters at 0d dot be>
1728
1729 2006-08-04  Havoc Pennington  <hp@redhat.com>
1730
1731         * configure.in: add -Wdeclaration-after-statement
1732
1733         * dbus/dbus-connection.c: change all the pending call stuff to
1734         reflect the fact that pending call operations use the connection
1735         lock
1736
1737         * dbus/dbus-pending-call.c: add locking here
1738
1739         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1740         field const consistent with how message field is done
1741
1742 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1743
1744         * s/D-BUS/D-Bus/g
1745
1746 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1747
1748         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1749         <in7y118 at public.uni-hamburg dot de> - fix invalid
1750         read/write reported by valgrind
1751
1752 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1753
1754         * Released 0.91
1755
1756 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1757
1758         * dbus/dbus-connection.c:
1759         (_dbus_connection_attach_pending_call_unlocked):
1760         (connection_timeout_and_complete_all_pending_calls_unlocked):
1761         Make sure we set timeout_added on pending calls to FALSE when
1762         we remove the timeout from the connection
1763
1764 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1765
1766         * Removed some extra bindings stuff lingering around (thanks timo)
1767         * dbus-pendingcall.c (_dbus_pending_call_new): 
1768         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1769         when we tried to take a lock on an already locked connection
1770
1771 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1772
1773         * Released 0.90
1774
1775 2006-07-17  Havoc Pennington  <hp@redhat.com>
1776
1777         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1778         ints, reported by Owen Taylor
1779
1780 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1781
1782         * doc/TODO:
1783         * dbus/dbus-bus.c:
1784         * dbus-errors.c:
1785         * dbus/dbus-marshal-validate.c:
1786           Removed TODO items which were fixed or are no longer relevent
1787
1788 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1789
1790         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1791         Remove stray files from the stripped bindings
1792
1793 2006-07-16  Havoc Pennington  <hp@redhat.com>
1794
1795         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1796         Improve the error message on reply timeout
1797
1798 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1799
1800         * Remove all bindings
1801
1802 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1803
1804         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1805         and set pending_reply out arg to NULL is connection is disconnected
1806         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1807         static method for cleaning up pending calls on disconnect
1808         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1809         calls queued timeouts on disconnect 
1810
1811          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1812         Remove 
1813
1814 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1815
1816         * bus/activation.[ch] (bus_activation_list_services): new function to 
1817         get the list of services that can be activated
1818
1819         * bus/dispatch.c: test coverage for the new bus method
1820         ListActivatableNames
1821
1822         * bus/driver.c: new bus method ListActivatableNames to get the list of
1823         services that can be activated
1824
1825         * doc/dbus-specification.xml: ListActivatableNames method documentation
1826
1827 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1828         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1829         source files
1830
1831 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1832         * dbus/dbus-message-factory.c:
1833         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1834
1835 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1836         * dbus/dbus-connection-internal.h:
1837         * dbus/dbus-connection.c:
1838         * file dbus/dbus-pending-call.c:
1839         * dbus/dbus-pending-call.h:
1840         Make DBusPendingCall an opaque type even to D-Bus internals
1841
1842 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1843
1844         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1845         connection_close
1846
1847         * dbus/dbus-connection.c: include dbus-bus.h
1848         (_dbus_connection_read_write_dispatch): make static
1849
1850 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1851
1852         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1853         function
1854         (dbus_connection_dispatch): On disconnect unref any shared connections
1855
1856         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1857         for cleaning up shared connections on disconnect
1858         (internal_bus_get): get a hard refrence to shared connections when
1859         they are created
1860         
1861         * doc/TODO: Remove items which are no longer relevent or have been fixed
1862         Split 1.0 todo items with a 0.90 freeze todo list
1863  
1864 2006-06-14  Ross Burton  <ross@openedhand.com>
1865
1866         * glib/dbus-gobject.c:
1867         Free a leaking GArray (surely not!) in dbus_g_method_return.
1868
1869 2006-06-14  Ross Burton  <ross@openedhand.com>
1870
1871         * tools/Makefile.am:
1872         * tools/dbus-monitor.c:
1873         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1874         Habacker).
1875         
1876 2006-06-14  Ross Burton  <ross@openedhand.com>
1877
1878         * tools/dbus-print-message.c:
1879         Also print the object path when outputting signals or method calls.
1880
1881 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1882
1883         * qt/src/Makefile.am: install the qdbus.h header.
1884         This allows people to actually use the installed code.
1885
1886 2006-06-12  Ross Burton  <ross@openedhand.com>
1887
1888         * glib/dbus-gproxy.c:
1889         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1890
1891 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1892
1893         * Released 0.62
1894
1895 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1896
1897         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1898         break pedantic builds. Closes bug 6043 (patch approved by
1899         Havoc back in February).
1900
1901 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1902
1903         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1904         that took a QDBusMessage parameter.
1905         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1906         * qt/tools/dbus.cpp: Don't use automatic call because we might
1907         be calling an async method: request a reply.
1908
1909 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1910
1911         * test/qt/*: Update the testcases, including testing the new
1912         functionality of sending null QByteArray and QString over the
1913         bus. Add new headertest test and restore the old
1914         qdbusxmlparser test.
1915
1916 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1917
1918         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1919         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1920
1921         * qt/examples/Makefile.am:
1922         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1923         form.
1924
1925         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1926         QByteArray() (nulls) over the bus.
1927         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1928         the one that has the signature suffix stripped.
1929         * qt/src/qdbusreply.h: Make some methods const.
1930
1931 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1932
1933         Patch from Timo Hoenig <thoenig@suse.de>.
1934
1935         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1936         required during build to EXTRA_DIST.
1937         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1938         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1939         * configure.in: Fix "make dist", take care that the Makefile for
1940         qt/dbus is being generated.
1941
1942 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1943
1944         * bus/bus.c: Fix eavesdropping on method calls
1945
1946 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1947
1948         * configure.in:
1949         * dbus/dbus-userdb-util.c:
1950         Add Solaris console owner patch from Artem Kachitchkine
1951
1952 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1953
1954         * qt/Makfile.am:
1955         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1956         reorganisation. Thanks to Timo Hoenig for pointing this out.
1957
1958 2006-06-06  Robert McQueen  <robot101@debian.org>
1959
1960         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1961           call to dbus_g_type_get_struct.
1962
1963 2006-06-06  Robert McQueen  <robot101@debian.org>
1964
1965         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1966           pointers were put into a GPtrArray-based specialised collection, and
1967           then freed along with the array. GValues which you add into
1968           collections or maps which have the NOCOPY flag set are assumed to not
1969           belong to the caller, so rather than the existing pointer-stealing
1970           semantics, they are copied instead. Given that the main consumers of
1971           this abstraction are the bindings themselves, I don't think this is
1972           too bad, but others should watch their choice of take vs set_static.
1973
1974 2006-06-06  Robert McQueen  <robot101@debian.org>
1975
1976         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1977           of g_slist_prepend not being used. Fixed copying of slist-based
1978           specialised collections, then wrote a test case and found that it was
1979           all broken. Went on to fix iterating and appending too. Good thing
1980           nobody uses this code yet.
1981
1982 2006-06-06  Robert McQueen  <robot101@debian.org>
1983
1984         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1985           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1986           are discarded without unsetting, so it makes no difference whether
1987           we take or set_static). Remove cases for G_TYPE_POINTER because
1988           there really is nothing useful we can do with them in our
1989           specialised types - we *need* boxed copy/free functions at the very
1990           least.
1991
1992 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1993
1994         * qt/dbus: Add directory. I had forgotten to add this
1995         yesterday after the move...
1996
1997         * qt/examples/Makefile.am:
1998         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1999
2000         * qt/tools/Makefile.am:
2001         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2002         Added feature to get and set properties.
2003         Added validation of service, object path and interface names.
2004
2005         * qt/tools/dbusidl2cpp.cpp: Two new features:
2006         1) Allow specifying both the header and the source file names,
2007         by separating them with a colon.
2008         2) Don't write an interface output if the -p switch wasn't
2009         given, but the -a was.
2010
2011         * qt/src/*: Fix usage of Iterators and ConstIterators.
2012         Fix shadowing of variables by other variables (-Wshadow).
2013         Fix keyword-cleanliness in headers.
2014         Fix ASCII-cast (QLatin1String, QLatin1Char).
2015         Fix validation of member names.
2016         Add extra checking of introspection data during XML parsing.
2017         Various bug fixes.
2018
2019 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2020
2021         * dbus/Makefile.am:
2022         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2023         qt/dbus/qdbus.h now.
2024
2025 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2026
2027         * configure.in: Make --disable-qt actually do
2028           something. Patch inspired by Zack Rusin.
2029
2030 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2031
2032         * qt/: Update to Subversion r548032.
2033         This includes a big reorganisation of the files inside the
2034         subdir.
2035
2036 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2037
2038         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2039         clear:  
2040         "Failed to connect to socket <host>:<port> <error>" instead of
2041         "Failed to connect to socket <host>: <error>:<port>"
2042
2043         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2044         for a tcp transport. 
2045
2046 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2047
2048         * qt/*: Update the QtDBus bindings up to revision 546310 in
2049         Subversion.
2050         This adds the dbuscpp2xml tool, that parses a C++ header and
2051         outputs a D-BUS Introspection XML.
2052
2053 2006-05-21  Havoc Pennington  <hp@redhat.com>
2054
2055         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2056         is not NULL when it shouldn't be. Also a couple of possible fixes
2057         for #4637 though I don't understand why the bug happens, to be
2058         honest... also the object constructor has an assert name != NULL
2059         and the name is only currently NULL for peer-to-peer proxies that 
2060         I don't think anyone uses? So it should be asserting.
2061         Anyway, for now at least see if we get an earlier assertion failure.
2062
2063         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2064         apparently broken code to be sure the tests fail and someone 
2065         will fix them...
2066
2067 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2068
2069         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2070         and arrays when they had a single element: has_next returns
2071         false, even before you read the element. So, instead, check
2072         the array length.
2073
2074 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2075
2076         * qt/qdbusmessage.cpp:
2077         * qt/qdbustypehelper_p.h:
2078         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2079         the list is a const-reference
2080
2081 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2082
2083         * Adding old doc patch that never got applied
2084         
2085         * dbus/bus.c (dbus_bus_add_match): Add documentation
2086
2087         * doc/dbus-specification.xml: Add documentation for the match rules
2088           and the AddMatch and RemoveMatch methods
2089
2090 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2091
2092         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2093         call (r535506)
2094
2095         * qt/dbusidl2cpp.cpp:
2096         * qt/qdbusabstractadaptor.cpp:
2097         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2098         sibling of the QDBusAbstractAdaptor objects instead of the
2099         parent. (r535848)
2100
2101         * qt/dbusidl2cpp.cpp:
2102         * qt/qdbusabstractinterface.cpp:
2103         * qt/qdbusabstractinterface.h:
2104         * qt/qdbusabstractinterface_p.h:
2105         * qt/qdbusinterface.cpp: Make properties in interfaces
2106         actually work. The code that was generated would not compile,
2107         due to moc calls to functions that did not exist. They now
2108         shall. (r536571)
2109
2110 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2111
2112         * Makefile.am:
2113         * configure.in:
2114         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2115         Thanks to Brad Hards for providing the patch
2116
2117 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2118
2119         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2120         call. (r535506)
2121
2122 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2123
2124         * qt/examples/dbus.cpp: Enhance error messages and use
2125         QDBusInterfacePtr.
2126
2127 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2128
2129         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2130         and disable the copy operators. (r533772, r534746)
2131
2132         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2133
2134         * qt/qdbusabstractinterface.cpp:
2135         * qt/qdbusabstractinterface.h: Change the default call mode to
2136         not use the event loop. Add convenience call() methods that
2137         take a CallMode parameter. (r534042)
2138
2139         * qt/qdbusconnection.h: Change the default call mode to not
2140         use the event loop. (r534042)
2141
2142         * qt/qdbusinterface.cpp:
2143         * qt/qdbusinterface.h: Add a method to tell us if the
2144         interface is valid (since we don't return a null pointer
2145         anymore) (r534099)
2146
2147         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2148         (r534101)
2149
2150         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2151         function in two so taht we get the chance to introspect
2152         without having a QDBusMessage (r534102)
2153
2154         * qt/qdbusbus.h:
2155         * qt/qdbusconnection.cpp:
2156         * qt/qdbusconnection_p.h:
2157         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2158         avoid a round-trip to the server when attempting to introspect
2159         one of our own objects. Also make sure the filter functions
2160         match the empty interface as well. (r534108)
2161         Don't keep the connection names. Instead, trust the unique
2162         connection name (r534111)
2163         Remove event loop usage (r534112)
2164
2165 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2166
2167         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2168         Brad Hards.
2169
2170 2006-04-28  Robert McQueen  <robot101@debian.org>
2171
2172         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2173         any order, making it easier for people who inherit from this
2174         object.
2175
2176 2006-04-28  Robert McQueen  <robot101@debian.org>
2177
2178         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2179         of memory from within pointer arrays and lists. Fixes bug #6300.
2180
2181 2006-04-28  Robert McQueen  <robot101@debian.org>
2182
2183         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2184         generating struct signatures. Fixes bug #6083.
2185
2186 2006-04-28  Robert McQueen  <robot101@debian.org>
2187
2188         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2189         to qdbusconnection_p.moc.
2190
2191 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2192
2193         * README, INSTALL: Doc fixes
2194         Patch from Brad Hards <bradh at frogmouth.net>
2195
2196 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2197
2198         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2199         the dynamic meta object. No need to guess which interface to
2200         call.
2201
2202 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2203
2204         * qt/qdbusconnection_p.h:
2205         * qt/qdbusmetaobject.cpp:
2206         * qt/qdbusmetaobject_p.h:
2207         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2208         for the dynamic meta object. No need to guess which
2209         interface to call.
2210         * qt/qdbusabstractinterface_p.h:
2211         * qt/qdbusconnection.cpp:
2212         * qt/qdbusintegrator.cpp:
2213         * qt/qdbusinterface.cpp:
2214         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2215         Add a QDBusRef that looks and behaves like DCOPRef.
2216
2217 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2218
2219         * dbus/dbus-connection.c: Interfaces are optional in method
2220         calls, so don't give up if the interface parameter is NULL.
2221         Patch reviewed by Havoc Pennington.
2222
2223 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2224
2225         * qt/qdbusreply.h: Add default constructor and operator=
2226           (r532625)
2227         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2228           in public headers (r532952)
2229         * qt/qdbusabstractinterface.cpp:
2230         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2231           make it the default (r532951)
2232
2233 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2234
2235         * dbus/dbus-connection.c: Fix asserts
2236         Patch from Tim Moloney <t.moloney at verizon.net>
2237
2238 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2239
2240         * mono/Connection.cs, mono/Message.cs: Check Target type
2241         Patch from Aaron Bockover (abockover at novell.com)
2242
2243 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2244
2245         * INSTALL: fine-tune the requirements for the Qt4 binding.
2246
2247 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2248
2249         * tools/dbus-print-message.c: Added support for printing of all 
2250           remaining data types. Fixed logic for indentation of compound
2251           data types.
2252         
2253 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2254
2255         * INSTALL: fill out content of file providing DBus specific
2256           build installations, followed by generic Auto* INSTALL file
2257           content
2258         
2259 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2260
2261         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2262           Patch by Stefan Eilers. (r529537)
2263
2264 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2265
2266         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2267           contents (r528208)
2268
2269 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2270
2271         * qt/Makefile.am: fix the dependency for
2272           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2273           not in qdbusconnection.cpp.
2274           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2275           spotting this.
2276
2277 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2278
2279         * qt/examples/listnames.cpp:
2280         * qt/examples/Makefile.am: Three ways to list the names on the
2281           bus.
2282
2283 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2284
2285         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2286           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2287
2288 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2289
2290         Merge from Subversion:
2291         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2292           something that exists (r526315)
2293         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2294           slots/signals (r526316)
2295         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2296           also return an unknown-method error if the parameters don't
2297           match for org.freedesktop.DBus.Properties. (r526842)
2298         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2299         * qt/qdbusintegrator.cpp: Restore the proper order of
2300           delivery: don't make method returns be delivered on priority
2301           (r528150)
2302
2303 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2304
2305         * configure.in qt/Makefile.am: add qt/examples
2306         * qt/examples: Add QtDBus example programs:
2307           - hello: Hello, World
2308           - ping: Simple method-calling program
2309           - pong: Simple object-exporting program (not using adaptors)
2310           - complexping: Interactive method-calling program 
2311                 (also gets and sets properties).
2312           - complexpong: Sample program exporting methods, signals and
2313                 properties, using adaptors.
2314           - dbus: Simple implementation of a generic method-calling
2315                 program, similar to 'dbus-send', but with semantics
2316                 similar to 'dcop'.
2317           - chat: Simplistic chat program, implemented using signals
2318                 and the system bus. Looks like IRC.
2319
2320 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2321
2322         * configure.in: Detect QtGui (necessary for one of the
2323           example programs). Note: this increases the minimum required
2324           version of Qt to 4.1.3.
2325
2326 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2327
2328         * test/qt/*: Sync with KDE Subversion revision 523647.
2329         Update the testcases to the new API. Remove testcases for
2330         classes that are no longer public or have been removed.
2331
2332 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2333
2334         * qt/*: 
2335         * dbus/qdbus.h: Sync with KDE Subversion revision
2336         523647. Hopefully, this will be the last of the
2337         source-incompatible changes. Documentation has been improved;
2338         support for QList<basic-types> has been added; QDBusObject is
2339         gone; QDBus(Abstract)Interface is now a QObject with
2340         auto-generated meta-object; QDBusIntrospection is marked
2341         private, since QMetaObject can be used now; lots of bugfixes.
2342
2343 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2344
2345         Patch from Milosz Derezynski <internalerror at gmail.com>
2346         
2347         * configure.in:
2348         Output the service directory in the configure summary
2349
2350         * dbus-1.pc.in:
2351         Add session_bus_services_dir
2352
2353 2006-03-10  Ross Burton  <ross@openedhand.com>
2354
2355         * tools/dbus-print-message.c:
2356         Add support for object paths and signatures.
2357
2358 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2359
2360         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2361         config reload.
2362         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2363         information caches
2364         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2365         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2366         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2367         * dbus/dbus-userdb.h: Add function to flush all user/group information
2368         caches.
2369
2370 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2371
2372         * qt/dbusidl2cpp.cpp:
2373         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2374         for dcopidl2cpp, found in the KDE installations (or the more
2375         modern kalyptus): generate Qt4 C++ code for the input XML
2376         introspection. Currently no IDL parsing.
2377
2378 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2379
2380         * test/qt/*: Update the self-tests.
2381
2382 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2383
2384         * qt/*: 
2385         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2386         represents the first feature-complete version of the Qt4
2387         bindings since I took ove maintainership.
2388
2389 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2390
2391         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2392         dir. This is C++, so we can't use the DBus ones.
2393
2394 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2395
2396         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2397         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2398
2399 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2400
2401         * dbus/dbus-connection.c: 
2402         (_dbus_connection_block_pending_call):
2403         Check to see if our data has already been read off the connection
2404         by another blocking pending call before we block in poll.
2405         (check_for_reply_and_update_dispatch_unlocked):
2406         Code taken from _dbus_connection_block_pending_call - checks for
2407         an already read reply and updates the dispatch if there is one.
2408
2409         * test/name-test/test-pending-call-dispatch.c:
2410         New test for making sure we don't get stuck polling a 
2411         dbus connection which has no data on the socket when
2412         blocking out of order on two or more pending calls.
2413
2414 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2415
2416         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2417         make/automake don't detect that we're talking about the same
2418         .lo file if I specify the full path to the source files.
2419
2420 2006-02-26  Havoc Pennington  <hp@redhat.com>
2421
2422         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2423
2424         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2425         session bus variable is unset, suggest "man dbus-launch" and "man
2426         dbus-daemon" to figure out how to fix the problem
2427
2428 2006-02-25  Havoc Pennington  <hp@redhat.com>
2429
2430         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2431         should make this thing use the new glib options parser
2432
2433 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2434
2435         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2436         .lo files taking moc sources.
2437
2438 2006-02-25  Havoc Pennington  <hp@redhat.com>
2439
2440         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2441         and install it as a public header
2442
2443 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2444
2445         * Released 0.61
2446
2447 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2448         
2449         * proxies.py: Fix the callchain
2450
2451 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2452         
2453         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2454
2455         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2456         dbus/dbus-sysdeps.c
2457
2458         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2459         call _dbus_group_info_free_allocated which causes infinite loop,
2460         correctly call _dbus_group_info_free
2461
2462 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2463
2464         * qt/qdbusinterface_p.h:
2465         * qt/qdbusinterface.cpp: Use the standard
2466         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2467         calls instead of creating one for us.
2468
2469         * qt/qdbusconnection_p.h:
2470         * qt/qdbusintegrator.cpp: Remove debugging code.
2471
2472         * qt/qdbusintegrator.cpp:
2473         * qt/qdbusmessage.cpp:
2474         * qt/qdbusmessage_p.h:
2475         * qt/qdbusmessage.h: Change the behaviour of automatic
2476         reply-sending: now a reply is always sent, unless the caller
2477         didn't request one or if the user slot has already sent one.
2478
2479 2006-02-16  Robert McQueen  <robot101@debian.org>
2480
2481         * configure.in: Patch from Debian packages by Sjoerd Simons
2482         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2483         arguments so it's possible to build both bindings in the
2484         same tree.
2485
2486         * qt/Makefile.am: Fix truncated value so that make dist works.
2487
2488 2006-02-16  Robert McQueen  <robot101@debian.org>
2489
2490         * acinclude.m4, configure.in: Patch from Brad Hards
2491         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2492         improving quoting, re-ordering a few checks, and a few other
2493         aesthetic tidy-ups.
2494
2495 2006-02-16  Robert McQueen  <robot101@debian.org>
2496
2497         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2498         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2499         assertion that the next element to read from the iter is fixed in
2500         size. This is not the case when you are at the end of the iter,
2501         because the next element type is INVALID.
2502
2503         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2504         a bogus assert which means that you may not initialise a 0-length
2505         string unless you provide a non-NULL pointer. This prevented
2506         you from marshalling messages containing zero-length arrays in
2507         some cases.
2508
2509         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2510         from Rob to correct bogus asserts when trying to demarshal an
2511         array and get_fixed_array got you 0 elements. Append nothing to
2512         the GArray in this case.
2513
2514         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2515         an empty array via the glib bindings. Without all of the above
2516         patches, this new test fails.
2517
2518 2006-02-16  Robert McQueen  <robot101@debian.org>
2519
2520         * glib/dbus-gmain.c: Make the previous commit compile.
2521
2522         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2523         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2524         specify sender_keyword="foo", path_keyword="bar" when adding
2525         a signal listener, so that you can bind to signals generically
2526         but still do something useful in your callback.
2527
2528         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2529         chars so that they're not cast to chars and made negative. Thanks
2530         to Jakub Stachowski for reporting this and testing the fix.
2531
2532 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2533
2534         * dbus/dbus-glib.h:
2535         * glib/dbus-gmain.h:
2536         (dbus_g_connection_open): new method for openning
2537         a connection to an arbitrary address in the glib bindings
2538
2539         * ChangeLog: checkin last entry which doesn't seem to be commited
2540
2541 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2542
2543         * tools/dbus-launch.c: Fixed sh syntax output
2544
2545 2006-02-13  Robert McQueen  <robot101@debian.org>
2546
2547         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2548         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2549         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2550         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2551         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2552         missing piece of the glib bindings jigsaw puzzle. This modifies
2553         the existing specialised types to have N type parameters (rather
2554         than the current 1 or 2 for arrays and dictionaries respectively).
2555         You can then use this to get a glib type to represent any arbitrary
2556         D-Bus struct type using dbus_g_type_get_struct. The only
2557         implementation of these types is with GValueArrays as before,
2558         but it's now possible to store these in arrays, emit them in
2559         signals, etc.
2560
2561 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2562
2563         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2564         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2565         <thiago.macieira at trolltech.com>
2566
2567 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2568
2569         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2570         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2571
2572 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2573
2574         * bus/connection.c (bus_connections_expect_reply): Make
2575         pending reply limit not common to all connections (Bug #5416)
2576         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2577
2578 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2579
2580         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2581
2582 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2583
2584         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2585         patch from Doug Goldstein <cardoe at gentoo.org>
2586
2587 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2588
2589         * mono/Arguments.cs: Fix a magic number in the mono bindings
2590         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2591
2592 2006-01-27  Robert McQueen  <robot101@debian.org>
2593
2594         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2595         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2596         when generating the client-side methods, instead of overloading
2597         CSymbol which broke everything horribly. My apologies.
2598
2599 2006-01-27  Robert McQueen  <robot101@debian.org>
2600
2601         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2602         by me and Rob Taylor to add a simple_free function to D-Bus map
2603         and collection types, which allows those types which can be freed
2604         with a GDestroyNotify (such as GHashTables and GArrays, but not
2605         GPtrArrays) to be stored as the values in hashtables.
2606
2607         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2608         Patch by Rob Taylor to add nested dicts to the glib tests to check
2609         the above code works, and appears not to leak when called repeatedly.
2610
2611 2006-01-27  Robert McQueen  <robot101@debian.org>
2612
2613         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2614         to free a D-Bus allocated string with dbus_free () instead of
2615         g_free ().
2616
2617 2006-01-27  Iain Holmes  <iain@openedhand.com>
2618
2619         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2620         method from being called multiple times.
2621
2622 2006-01-19  Robert McQueen  <robot101@debian.org>
2623
2624         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2625         <rob.taylor@collabora.co.uk> to add support for generating bindings
2626         to arrays that are represented as GPtrArrays rather than GArrays (ie
2627         size-variable things, such as strings, objects, structs, etc).
2628
2629 2006-01-05  Robert McQueen  <robot101@debian.org>
2630
2631         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2632         <ricardo.kekki@movial.fi> to make it possible to inherit from
2633         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2634         a private part, and moving the setting of the DBusGProxyManager into a
2635         connection property, allowing proper GObject construction.
2636
2637 2006-01-05  Robert McQueen  <robot101@debian.org>
2638
2639         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2640         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2641         annotations when generating glib client bindings.
2642
2643 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2644
2645         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2646
2647         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2648
2649 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2650
2651         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2652
2653 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2654
2655         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2656
2657 2005-12-19  Ross Burton  <ross@openedhand.com>
2658
2659         * doc/dbus-tutorial.xml:
2660         Document the Glib client-side bindings, and list all possible annotations.
2661
2662 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2663
2664         * dbus/bus.c (dbus_bus_release_name): Add documentation
2665
2666 2005-12-06  Robert McQueen  <robot101@debian.org>
2667
2668         * python/service.py: s/sucessful/successful/ so we're allocating to
2669         and reading from the same variable. Oops.
2670
2671 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2672
2673         * Released 0.60
2674
2675 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2676
2677         * test/qt/Makefile.am: build from srcdir
2678
2679         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2680         Note - this code is wrong and needs to be fixed by the Qt binding
2681         developers.  The flags should be treated as bitfields and not enums.
2682
2683         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2684
2685 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2686
2687         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2688           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2689           in production code
2690
2691 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2692
2693         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2694         method for getting messages off the bus in the absence of a
2695         mainloop.  This method is much like 
2696         dbus_connection_read_write_dispatch except it does not dispatch
2697         the messages to a registered filter function.  Instead it
2698         allows a developer to process messages by directly popping
2699         them off the bus.
2700
2701 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2702
2703         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2704         the parser to continue instead of returning error
2705         (bus_desktop_file_load): Do not free parser data when
2706         parse_section_start or parse_key_value fails because it was 
2707         already freed by parser_free (patch from Carlos Garcia Campos  
2708         <carlosgc at gnome.org>)
2709
2710 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2711
2712         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2713         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2714         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2715         test/test-segfault.c, test/test-utils.c,
2716         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2717         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2718         Various cleanup of dead code and compiler warnings (patch from
2719         Kjartan Maraas <kmaraas at gnome.org>) 
2720
2721 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2722
2723         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2724         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2725
2726 2005-11-27  Robert McQueen  <robot101@debian.org>
2727
2728         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2729         part of the preceding one. Oops. Merge patch by Johan Hedberg
2730         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2731         on big-endian platforms.
2732
2733         * test/python/test-client.py: Add some 16-bit integers to the test
2734         values.
2735
2736 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2737
2738         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2739         method return message for property getters
2740
2741 2005-11-27  Robert McQueen  <robot101@debian.org>
2742
2743         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2744         with type v of an instance of dbus.Variant(foo, type='x') caused
2745         it to be boxed twice before sending over the bus.
2746
2747         * python/dbus_bindings.pyx, python/service.py,
2748         test/python/test-client.py: Update the constants for the new
2749         request_name flags, and update comments/test cases now that queueing
2750         is the default action.
2751
2752 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2753
2754         * configure.in:
2755         - Change version to 0.60 for impending release
2756         - upped the sonames because of ABI and API breakage
2757
2758 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2759
2760         * configure.in: Add test/name-test/Makefile to the generated
2761         Makefile list
2762
2763         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2764         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2765         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2766         not to queue an ower if it can't be the primary owner
2767
2768         * bus/bus.h: Add new internal BusOwner struct
2769
2770         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2771         to bus_registry_ensure and don't set the prohibit_replacement flag
2772         since they are now set per BusOwner and not per name.
2773         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2774         that returns the list of connections in a name's connection queue
2775         
2776         * bus/services.c (struct BusService): remove prohibit_replacement field
2777         (struct BusOwner): new struct for keeping track of queued connections
2778         and their associated flags for the queue
2779         (struct BusRegistry): add a BusOwner memory pool
2780         (bus_registry_new): initialize the BusOwner memory pool
2781         (bus_registry_unref): free the BusOwner memory pool
2782         (_bus_service_find_owner_link): new internal method for
2783         searching the queue for a specific connection
2784         (bus_owner_set_flags): new method for adding setting the flags on a
2785         bus owner
2786         (bus_owner_new): new method that creates a BusOwner object from the
2787         pool and sets its flags
2788         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2789         (bus_registry_ensure): Add the flags parameter
2790         (bus_registry_acquire_service): Switch from using raw connections to
2791         using the BusOwner struct
2792         Add new state machine for dealing with the new set of flags
2793         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2794         cancel_ownership, free_ownership_cancel_data, 
2795         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2796         restore_ownership, free_ownership_restore_data, 
2797         add_restore_ownership_to_transaction): Switch to using BusOwner 
2798         instead of raw connections
2799         (bus_service_add_owner): Add flags parameter
2800         Switch to using BusOwner instead of raw connections
2801         Add state machine for dealing with the new set of flags
2802         (bus_service_swap_owner): Swaps the first and second owners in the
2803         queue.  Used to make sure proper signals are sent when a service looses 
2804         or gains primary ownership.  We never insert an owner at the top of the
2805         queue.  Instead we insert it in the second position and then swap.
2806         (bus_service_remove_owner): Remove the owner from the queue sending
2807         out the NameLost and NameOwnerChanged signals if the we were the 
2808         primary owner
2809         (bus_service_get_primary_owners_connection): New method that extracts
2810         the connection from the primary owner
2811         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2812         connection
2813         (bus_service_get_allow_replacement): Changed from the old 
2814         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2815         primary owner and returns if it can be replaced or not
2816         (bus_service_set_prohibit_replacement): removed
2817         (bus_service_has_owner): returns TRUE if and owner with
2818         the specified connection exists in the queue
2819         
2820         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2821         method that only compiles if tests are enabled.  Allows us to get the 
2822         unique name of a connection so we can check it against the queue when
2823         doing regression tests
2824
2825         * bus/activation.c (bus_activation_send_pending_auto_activate),
2826         bus/dispatch.c (bus_dispatch),  
2827         bus/driver.c (bus_driver_handle_get_service_owner, 
2828         bus_driver_handle_get_connection_unix_user, 
2829         bus_driver_handle_get_connection_unix_process_id,
2830         bus_driver_handle_get_connection_selinux_security_context),
2831         bus/signals.c (connection_is_primary_owner): 
2832         use bus_service_get_primary_owners_connection instead of
2833         bus_service_get_primary_owner
2834
2835         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2836         _dbus_listen_unix_socket): Calculate the length of the socket
2837         path and use that instead of using a fixed length which was
2838         causing socket names to contain many trailing Nul bytes.
2839
2840         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2841         (dbus_g_method_get_sender): New method for extracting the sender 
2842         from a DBusGMethodInvocation
2843         (dbus_g_method_return_get_reply): changed name to 
2844         dbus_g_method_get_reply
2845         (dbus_g_method_return_send_reply): changed name to
2846         dbus_g_method_send reply
2847
2848         * doc/dbus-specification.xml: New docs that describe how the new
2849         queueing system works and talks about the changes to the how
2850         we specify socket names
2851
2852         * glib/examples/example-service.c, 
2853         glib/examples/example-signal-emitter.c,
2854         glib/examples/statemachine/statemachine-server.c:
2855         Changed the RequestName flags to the new system
2856
2857         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2858         regression test suite for testing various states of the new
2859         queueing system
2860         
2861 2005-11-15  Robert McQueen  <robot101@debian.org>
2862
2863         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2864         Taylor to add two methods, dbus_g_method_return_get_reply and
2865         dbus_g_method_return_send_reply, to allow you to get the reply
2866         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2867         and send it. The GLib bindings can't marshal a return value of
2868         something like a(s) if the array is empty - ultimately they should be
2869         made to heed the signature of the out arguments as the Python bindings
2870         now can, but this is a workable interim solution which might have
2871         other applications.
2872
2873 2005-11-15  Robert McQueen  <robot101@debian.org>
2874
2875         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2876         method to org.freedesktop.DBus to release a bus name or give up
2877         waiting in the queue for it.
2878
2879         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2880         dbus_bus_release_name method to send the ReleaseName method calls.
2881         Add constants for the return values to dbus/dbus-shared.h.
2882
2883         * doc/dbus-specification.xml: Document the new ReleaseName method
2884         in the specification.
2885
2886         * python/dbus_bindings.pyx: Add a low-level python binding for the
2887         release name method.
2888
2889         * python/exceptions.py, python/service.py: Make freeing BusName
2890         objects release the name. Add a NameExistsException, and fix a
2891         bug with creating UnknownMethodException.
2892
2893         * test/python/test-client.py: Add tests for freeing BusName
2894         objects causing names to be released.
2895
2896 2005-11-14  Robert McQueen  <robot101@debian.org>
2897
2898         * python/service.py: Include the traceback in the error reply when we
2899         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2900
2901 2005-11-14  David Zeuthen  <davidz@redhat.com>
2902
2903         Patch from Timo Hoenig <thoenig@suse.de>.
2904
2905         * bus/bus.c: I've recently investigated why the automatic reload
2906         of configuration files does not work as expected.
2907
2908         Currently, reloading configuration files does only work when
2909         running dbus-daemon with --nodaemon.  If we are running as daemon
2910         we're hitting a dnotify bug once we fork the process.
2911
2912         We're initializing the dnotify fds before calling fork().  Once
2913         the child process forked it does still have the fds (and they
2914         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2915         getting SIGIO as changes are made to the configuration files.
2916
2917         The attached patch moves the initialization of the dnotify fds to
2918         process_config_postinit().  This is safe for all current code
2919         paths and solves the dnotify disfunction.  If we're running
2920         dbus-daemon as daemon the fds for dnotify are now being
2921         initialized after fork() for the child process.
2922
2923         * configure.in: The current configure.in check for dnotify probes
2924         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2925         match for 'xlinux', too. Additionally I have adapted the configure
2926         option's style to match with the others.
2927
2928 2005-11-14  Robert McQueen  <robot101@debian.org>
2929
2930         * python/decorators.py, python/service.py: Add a new argument to the
2931         dbus.service.method decorator called sender_keyword, which if set,
2932         specifies the name of an argument which will be provided the bus
2933         name of the method caller.
2934
2935         * test/python/test-client.py, test/python/test-service.py: Add a
2936         method and test to check the sender_keyword functionality.
2937
2938 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2939
2940         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2941         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2942         Simons <sjoerd at luon.net>)
2943
2944         * AUTHORS: Add Robert McQueen for his work on the Python
2945         Bindings and other parts of D-Bus
2946
2947 2005-11-07  Robert McQueen  <robot101@debian.org>
2948
2949         * python/decorators.py: Change emit_signal function to use the
2950         signature annotation of the signal when marhsalling the arguments from
2951         the service. Fix a bug where the code checking signature length
2952         against argument length referenced the wrong variable.
2953
2954         * python/introspect_parser.py: Avoid adding the type signature of
2955         signal arguments to any methods which occur after them in the
2956         introspection data (!) by making the parser a little more careful
2957         about its current state.
2958
2959         * python/service.py: Remove debug prints from last commit (again :D).
2960
2961         * test/python/test-client.py, test/python/test-service.py: Add test
2962         signals with signature decorators to test the strict marshalling code
2963         gives errors at the right time. Could do with checking the signals
2964         actually get emitted too, given that the test does nothing with
2965         signals at the moment...
2966
2967 2005-11-07  Robert McQueen  <robot101@debian.org>
2968
2969         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2970         instances to stop madness of creating new instances representing
2971         the same bus connection all the time, rendering any tracking of
2972         match rules and bus names quite meaningless. Caught a bug where
2973         the private argument to SessionBus() and friends was being passed
2974         in as use_default_mainloop by mistake. Still some problems with
2975         multiple dbus_binding.Connection instances representing the same
2976         low-level connection (eg when you use both SessionBus() and
2977         StarterBus() in same process), but it's a lot better now than it
2978         was.
2979
2980         * python/dbus_bindings.pyx: Add constants with the return values
2981         for bus_request_name().
2982
2983         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2984         and retrieve the same instances for the same name, so deletion can be
2985         done with refcounting. Also now throws some kind of error if you
2986         don't actually get the name you requested, unlike previously...
2987
2988         * test/python/test-client.py: Add tests for instance caching of buses
2989         and bus name objects.
2990
2991 2005-11-04  Robert McQueen  <robot101@debian.org>
2992
2993         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2994         marshalling of boolean values. Add some booleans to the values in
2995         the test client.
2996
2997         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2998         argument to the dbus.service.method decorator, which allows you to
2999         name arguments to take two callback functions for replying with
3000         return values or an exception.
3001
3002         * test/python/test-client.py, test/python/test-service.py: Add test
3003         case using asynchronous method reply functions, both return values and
3004         errors, and from within both the function itself and from a mainloop
3005         callback.
3006
3007         * python/decorators.py, python/service.py: Perform checking that the
3008         number of method/signal arguments matches the number of types in the
3009         signature at class loading time, not when you first introspect the
3010         class.
3011
3012         * python/service.py: Remove debug print left by the last commit.
3013
3014 2005-11-03  Robert McQueen  <robot101@debian.org>
3015
3016         * python/service.py: Heavy refactoring of method invocation, with
3017         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3018         in favour of a new _message_cb that uses seperate functions for
3019         looking up the method to call, marshalling the return values, and
3020         sending exceptions as errors, and is easier to follow as a
3021         consequence.  Fixes some corner cases about returning things that
3022         don't match your declared out_signature, allows exceptions to define
3023         _dbus_error_name and have it be sent over the bus as the error name,
3024         and paves the way for cool stuff like heeding the message no reply
3025         flag, asynchronous method implementations, informing the method of the
3026         sender, and including backtraces in the error messages.
3027
3028         * test/python/test-client.py: Catch and print exceptions thrown in the
3029         async callback tests, rather than passing them to the low-level
3030         bindings to be ignored in a noisy and frustrating manner.
3031
3032 2005-11-03  Robert McQueen  <robot101@debian.org>
3033
3034         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3035         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3036         tweak others to be consistent.
3037
3038         * test/python/test-client.py: Tweak output of testInheritance.
3039
3040 2005-10-29  Robert McQueen  <robot101@debian.org>
3041
3042         * python/service.py: Major changes to allow multiple inheritance
3043         from classes that define D-Bus interfaces:
3044         
3045          1. Create a new Interface class which is the parent class of
3046             Object, and make the ObjectType metaclass into InterfaceType.
3047         
3048          2. Patch written with Rob Taylor to replace use of method_vtable
3049             with code that walks the class's __MRO__ (method resolution order)
3050             to behave like Python does when invoking methods and allow
3051             overriding as you'd expect. Code is quite tricky because
3052             we have to find two methods, the one to invoke which has the
3053             right name and isn't decorated with the /wrong/ interface,
3054             and the one to pick up the signatures from which is decorated
3055             with the right interface.
3056         
3057             The same caveats apply as to normal multiple inheritance -
3058             this has undefined behaviour if you try and inherit from two
3059             classes that define a method with the same name but are
3060             decorated with different interfaces. You should decorate
3061             your overriding method with the interface you want.
3062         
3063          3. Replace grungy introspection XML generation code in the metaclass
3064             with dictionaries that cope correctly with multiple inheritance
3065             and the overriding of methods. This also uses the signature
3066             decorations to provide correct introspection data, including
3067             the debut appearance of the types of your return values. :D
3068
3069         * test/python/test-client.py, test/python/test-service.py: Add a test
3070         case to try invoking an method that overrides one inherited from a
3071         D-Bus interface class.
3072
3073 2005-10-29  Robert McQueen  <robot101@debian.org>
3074
3075         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3076         Add checking for the end of struct character when marshalling a
3077         struct in MessageIter.append_strict.
3078
3079         * python/examples/example-service.py,
3080         python/examples/gconf-proxy-service.py,
3081         python/examples/gconf-proxy-service2.py: Update to use gobject
3082         mainloop directly rather than appearing to depend on gtk.
3083
3084         * python/test/test-client.py, python/test/test-server.py: Remove
3085         obsolete and broken test scripts for old bindings. We have up to date
3086         and working tests in test/python/.
3087
3088 2005-10-29  Robert McQueen  <robot101@debian.org>
3089
3090         * python/decorators.py: Add optional arguments to the method and
3091         signal decorators to allow you to specify the signature of arguments
3092         and return values. Preserve the doc strings of signal functions in the
3093         decorated version, for pydoc and friends.
3094
3095         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3096         parse_signature_block function with an iterable dbus.Signature()
3097         type. Fix a bug in MessageIter.append_strict where you could append
3098         anything by claiming it was a string.
3099
3100         * python/service.py: Use the out_signature decoration on methods to
3101         marshal return values, meaning you no longer require dbus.Array()
3102         or dbus.Dictionary() to indicate the type when returning empty
3103         arrays or dictionaries. Fix a bug where exceptions which are defined
3104         in __main__ are not turned into error replies.
3105
3106         * test/python/test-client.py, test/python/test-service.py: Add test
3107         for correct marshalling of return values according to out_signature.
3108         Fix a bug in the async call test where the error_handler is missing a
3109         self argument.
3110
3111 2005-10-29  Robert McQueen  <robot101@debian.org>
3112
3113         * glib/Makefile.am, glib/examples/Makefile.am,
3114         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3115         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3116
3117         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3118
3119         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3120         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3121         the command line.
3122
3123 2005-10-27  Ross Burton  <ross@openedhand.com>
3124
3125         * dbus/dbus-marshal-header.c:
3126         Remove dead code.
3127
3128         * glib/dbus-gobject.c:
3129         Stop compiler warning.
3130
3131 2005-10-25  Ross Burton  <ross@openedhand.com>
3132
3133         * dbus/dbus-auth.c:
3134         * dbus/dbus-server-unix.c:
3135         * dbus/dbus-transport-unix.c:
3136         * glib/dbus-gmain.c:
3137         * glib/dbus-gobject.c:
3138         Add some const keywords.
3139
3140 2005-10-25  Ross Burton  <ross@openedhand.com>
3141
3142         * doc/dbus-specification.xml:
3143         Document the NoReply annotation.
3144
3145         * glib/dbus-binding-tool-glib.h:
3146         * glib/dbus-binding-tool-glib.c:
3147         Respect the NoReply annotation.
3148
3149 2005-10-24  Robert McQueen <robot101@debian.org>
3150
3151         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3152         derive from unicode instead of str, and encode/decode UTF-8 when
3153         marshalling/unmarshalling bus messages
3154
3155         * python/introspect_parser.py: encode introspection data as UTF-8
3156         before passing the buffer into libxml2
3157
3158         * test/python/test-client.py: add unicode test strings
3159
3160         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3161         ignore generated python test files
3162
3163 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3164
3165         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3166         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3167         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3168
3169         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3170         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3171         when constructing struct signatures
3172
3173         * python/_dbus.py (Bus): handle private connections using the
3174         private keyword in the constructor. defaults to private=False
3175         (Bus::close): new method to close a connection to the bus
3176
3177         * python/dbus_bindings.pyx (Connection::close): renamed method
3178         was previously called disconnect
3179         (bus_get): now supports getting a private connection
3180
3181         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3182         keyword is set to True.  if it is, execute the method without waiting
3183         for a reply
3184         (ProxyObject::_introspect_execute_queue): new method for executing
3185         all the pending methods that were waiting for the introspect to
3186         finish.  this is called when introspect either succeeds or fails
3187         (ProxyObject::_introspect_error_handler): call queued methods
3188
3189 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3190
3191         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3192         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3193
3194         * python/service.py (Object::_message_cb): handle exceptions correctly
3195         by sending them over the wire to the calling app.  This makes sure
3196         the client returns immediately instead of waiting the 15 seconds to
3197         timeout.
3198
3199         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3200         Add a test to benchmark how long it takes to introspect a service and 
3201         call a method which returns a large element (pretty fast)
3202
3203         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3204         method which pushes a lot of data
3205
3206 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3207
3208         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3209         reclaim memory outside of the loop and use del istead of just setting
3210         the key to None
3211
3212 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3213
3214         * python/service.py (ObjectType::_reflect_on_signal): Always close
3215         signal tag even when there are no arguments
3216
3217 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3218
3219         * configure.in: Set mono, mono-docs and Qt3 to default
3220         to no instead of auto when building.  These bindings do not
3221         have full time maintainers and will not be supported for the
3222         1.0 release.
3223
3224 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3225
3226         patches from Michael Krivoruchko <misha at sun.com>: 
3227         
3228         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3229         _dbus_connection_message_sent, 
3230         _dbus_connection_send_preallocated_unlocked_no_update, 
3231         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3232         is NULL when calling _dbus_verbose
3233
3234         * configure.in: check for functions getpeerucred and getpeereid
3235
3236         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3237         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3238         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3239         Patch was only tested on Solaris 10 x86 so it might be issues
3240         with other platforms (i.e. BSDs and MacOSX)
3241         
3242
3243 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3244
3245         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3246         instead of marshal basic so we can handle recursive types in a variant
3247
3248         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3249         in variants
3250
3251         * test/glib/test-service-glib.c, test-service-glib.xml
3252         (my_object_echo_variant [EchoVariant], 
3253         my_object_process_variant_of_array_of_ints123
3254         [ProcessVariantOfArrayOfInts123]): 
3255         Add two test methods
3256
3257         * python/introspect_parser.py: New module for parsing introspect
3258         data.
3259
3260         * python/dbus_bindings.pyx:
3261         (various places): when throwing errors fix to use errormsg instead 
3262         of message local variable because Pyrex can get confused with other 
3263         message variables (initial patch by Robert McQueen 
3264         <robert.mcqueen at collabora.co.uk>)
3265         (MessageIter::parse_signature_block): new method for getting the next
3266         block in a signiture.
3267         (MessageIter::append_strict): new method for appending values strictly
3268         using the passed in signature instead of guessing at the type
3269         (MessageItter:: append_dict, append_struct, append_array): use 
3270         signatures to marshal children if the signature is available
3271         
3272         * python/exceptions.py (IntrospectionParserException): new exception
3273
3274         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3275         introspected signatures if available, else we fall back to the
3276         old way of doing things.
3277         (ProxyObject::_introspect_reply_handler ): parse introspection data
3278         
3279         * python/service.py (ObjectType::_reflect_on_method): Properly
3280         terminate <method> if there are no args in the reflection data
3281
3282         * test/python/test-client.py: add tests for talking with the GLib
3283         test server.  This gives us better coverage for introspection since
3284         python to python will always generate arguments as variants.  It also
3285         allows us to test the robustness of the GLib bindings and interlanguage
3286         communications.
3287
3288         
3289 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3290
3291         * bus/driver.c (bus_driver_handle_introspect): Add signals
3292         to the introspect data. (patch from Daniel P. Berrange 
3293         <dan at berrange.com>)
3294
3295         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3296         
3297         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3298         _dbus_connection_run_builtin_filters): Changed these to
3299         be unlock_no_update functions and call 
3300         _dbus_connection_send_unlocked_no_update instead of
3301         dbus_connection_send to avoid locking errors.
3302         
3303         * doc/TODO: Removed the make Ping test TODO
3304         
3305 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3306
3307         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3308         We now copy the message from a DBusError and then free 
3309         the error object befor throwing the error
3310
3311         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3312         DBusBindingOutputMode enum which was causing a warning.
3313         #include <time.h> so using time_t is explicitly defined
3314
3315 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3316
3317         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3318         - dbus/dbus-bus.c
3319         (internal_bus_get): new method that take over the heavy lifting
3320         of dbus_bus_get and adds the ability to get a private connection
3321         to the bus
3322         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3323         interface as in previous versions
3324         (dbus_bus_get_private): new method that is a wrapper to 
3325         internal_bus_get to get a private connection to the bus
3326
3327         - dbus/dbus-bus.h
3328         (dbus_bus_get_private): add as a public libdbus interface
3329
3330         - dbus-1.pc.in: output system_bus_default_address and 
3331         sysconfdir variables so apps can use them when compiling
3332
3333 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3334         * dbus/qt: New Qt bindings
3335
3336 2005-09-12  Waldo Bastian  <bastian@kde.org>
3337
3338         * dbus/dbus-marshal-validate.c,
3339         doc/dbus-specification.xml, test/Makefile.am,
3340         test/test-names.c: allow hyphens in bus names.
3341
3342 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3343
3344         * test/data/auth/fallback.auth-script: we don't
3345         retry the EXTERNAL method when we know its going
3346         to fail anymore.
3347
3348 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3349
3350         * dbus/dbus-connection-internal.h: rename
3351         (add|remove|toggle)_(watch|timeout) to unlocked()
3352         
3353         * dbus/dbus-connection.c: ditto.
3354         
3355         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3356         Update some callers for the renaming.
3357
3358 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3359
3360         * dbus/dbus-auth.c: (record_mechanisms): don't
3361         retry the first auth mechanism because we know
3362         we're just going to get rejected again.
3363         
3364         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3365         Fix thinko ... and what a nasty little bugger to
3366         track down you were ...
3367
3368         * dbus/dbus-connection.c:
3369         (_dbus_connection_add_watch),
3370         (_dbus_connection_remove_watch): add note about
3371         these needing the connection to be locked.
3372         (_dbus_connection_get_dispatch_status_unlocked):
3373         set status to DATA_REMAINS when we queue the
3374         disconnected message.
3375         
3376         * bus/dispatch.c:
3377         (bus_dispatch): fix warning.
3378         (check_existent_service_no_auto_start):
3379         Expect ChildSignaled error too.
3380         (check_existent_hello_from_self): fix another
3381         couple of warnings.
3382         
3383 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3384
3385         Patches from James Willcox <snorp@snorp.net>
3386
3387         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3388
3389         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3390         support array "out" parameters.
3391
3392         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3393         for 16-bit int support.
3394
3395 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3396
3397         * Released 0.50
3398
3399         * Patch from Steve Grubb:
3400         - bus/activation.c (bus_activation_service_reload_test): clean up
3401         some indentation
3402         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3403         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3404         buffer overflows in the test suite.  This is non critical because
3405         it can not be exploited and this code is only run when doing a 
3406         make check.
3407
3408         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3409         - configure.in: Don't check and link against kdecore, only qt headers
3410         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3411         - gcj/org/freedesktop/dbus/Makefile.am:
3412         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3413         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3414         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3415         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3416         - tools/Makefile.am: Add platform extentions to binaries 
3417         (i.e. .exe on windows)
3418
3419         * configure.in: 
3420         - Make it so if no suitable version of python is found we only 
3421         disable building python instead of exiting the configure script
3422         - Require version 2.4 of glib for glib bindings
3423         - Up version to 0.50
3424
3425         * python/__init__.py: Sync version with libdbus to (0,50,0)
3426         
3427 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3428
3429         * dbus/dbus-object-tree.c (find_subtree_recurse):
3430         a couple of optimizations (bug #710):
3431         - do a binary search in the tree
3432         - insert a new child at the right place directly, no need for
3433           qsort anymore
3434         - do the "double alloc" thing when allocating children
3435
3436 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3437
3438         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3439
3440         * python/dbus_bindings.pyx: Memory management foo
3441         (global): remove hacky _user_data_references global list
3442         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3443         tuples. Unref user_data
3444         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3445         (Connection::__del__): Remove and replace with __dealloc__ method
3446         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3447         to keep tuple from being deallocated instead of the global var hack
3448         (Connection::register_object_path): Stuff user_data into a tuple.
3449         Use Py_INCREF to keep tuple from being deallocated instead of the 
3450         global var hack
3451         (Connection::register_fallback): Stuff user_data into a tuple.
3452         Use Py_INCREF to keep tuple from being deallocated instead of the 
3453         global var hack
3454         (GIL_safe_pending_call_notification): Don't unref the message
3455         because it gets unreffed when going out of scope.  Py_XDECREF
3456         the user_data
3457         (PendingCall::__del__): Remove and replace with __dealloc__ method
3458         (PendingCall::set_notify): ref the pending call because we will
3459         need it to stick around for when the notify callback gets called
3460         (Message::__del__): Remove and replace with __dealloc__ method
3461
3462         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3463         gthreads_init to match up with the dbus call
3464
3465         * python/glib.py (init_threads): Changed to threads_init to match
3466         up with gobject.threads_init().  init_threads is kept for backwards
3467         compat but will most likely be deprecated in the future
3468
3469         * test/python/test-client.py: 
3470         - revamp to use Python's unittest functionality
3471         - add async call tests
3472         - setup threads in glib and dbus so we make sure locks are working
3473         
3474 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3475
3476         * python/dbus_bindings.pyx 
3477         (_pending_call_notification, cunregister_function_handler, 
3478         cmessage_function_handler): All callback functions have been rearranged 
3479         to workaround a bug in Pyrex when working with the GIL which is Python's 
3480         global lock when dealing with threads.  They have been split into
3481         a wrapper function (which assumes the name of the old function) and
3482         a _GIL_safe_<function name> function which contains the functionality
3483         of the old function.  This ensures that Pyrex does not write code
3484         the lock is released.
3485         
3486
3487 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3488
3489         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3490         GIL global lock when calling back into Python
3491
3492 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3493
3494         * Release 0.36.2
3495
3496         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3497
3498         * bus/policy.c (bus_policy_allow_user): change default "user is
3499         allowed" to be "user has same uid as the bus itself"; any
3500         allow/deny rules will override.
3501
3502         * bus/session.conf.in: don't allow all users, since now by default
3503         the user that ran the bus can connect.
3504
3505 2005-08-26  Colin Walters  <walters@verbum.org>
3506
3507         * tools/dbus-print-message.c (print_message): Flush stdout
3508         after printing a message, so that redirecting to a file, then
3509         hitting Ctrl-C works.
3510
3511 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3512
3513         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3514         (EmptyMessage): new class that subclasses Message.  This is a workaround
3515         to a Pyrex bug that fails to call __del__ when the Message object goes out
3516         of scope.  For some reason subclassing Message fixes this bug
3517         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3518         - s/Message(_create=0)/EmptyMessage everywhere else
3519         
3520         * test/python/test-{server|client}.py: add the python/.libs directory
3521         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3522         get picked up from the system
3523
3524 2005-08-25  Colin Walters  <walters@verbum.org>
3525
3526         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3527         to Ryan Lortie for the suggestion.
3528
3529 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3530
3531         * test/python: Add python regression test
3532
3533         * configure.in: Add test/python/Makefile
3534
3535         * test/Makefile.am: Add the python directory to SUBDIRS
3536
3537 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3538
3539         * Release 0.36.1
3540
3541         * python/_dbus.py: 
3542         (Interface::connect_to_signal): propigate keywords for match on args
3543         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3544
3545         * python/proxies.py (ProxyObject::connect_to_signal):
3546         propigate keywords for match on args
3547
3548         * Makefile.am: point everything to pyexecdir since python borks
3549         on multilib
3550
3551 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3552
3553         * Release 0.36
3554
3555 2005-08-23  Colin Walters  <walters@verbum.org>
3556
3557         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3558
3559 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3560
3561         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3562         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3563         of defining DBusConnection ourselves.
3564
3565 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3566
3567         * python/dbus.pth: New path file to fix up problems when installing
3568         c libraries to lib64 and python files to lib.
3569
3570         * python/Makefile.am: install dbus.pth in the correct spot
3571
3572 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3573         * ChangeLog: clean up my last entry a bit
3574
3575         * doc/introspect.xsl: New stylesheet for converting introspection data
3576         into browser renderable xhtml. Contributed by Lennart Poettering.
3577
3578         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3579         Poettering.
3580
3581         * doc/dbus-tutorial.xml: 
3582         - Add Colin Walter to the Authors section for authoring the GLib
3583         section
3584         - Add descriptions of the new signature and type functionality
3585         in the Python complex type mapping section
3586         - Add a sidenote on the new args matching functionality in 
3587         the Python bindings
3588         - Fixed up some of the examples to use the gobject.MainLoop
3589         instead of gtk.main
3590         
3591         * python/_dbus.py:
3592         (Bus::_create_args_dict): New. Converts a hash of arg matches
3593         to a more useable format
3594         (Bus::add_signal_receiver): add a **keywords parameter for catching
3595         arg match parameters
3596         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3597         arg match parameters
3598         
3599         * python/matchrules.py:
3600         (MatchTree::exec_matches): Check for arg matches
3601         (SignalMatchRule::add_args_match): New method
3602         (SignalMatchRule::execute): Added args_list parameter as an optimization
3603         so we don't have to marshal the args more than once
3604         (SignalMatchRule::match_args_from_list): New method that checks to see
3605         if the rule's arg matches match an argument list.  Only arguments
3606         set in the rule are checked.
3607         (SignalMatchRule::match_args_from_rule): New method that checks to see
3608         if the rule's arg matches match another rule's.  All args have to match
3609         in order for this method to return true.  If either rule has more args
3610         then it is not a match.
3611         (SignalMatchRule::is_match): Add args match
3612         (SignalMatchRule::repr): Add args to the final output if they exist
3613
3614 2005-08-17  Ross Burton  <ross@burtonini.com>
3615
3616         * glib/dbus-gproxy.c:
3617         (dbus_g_proxy_call_no_reply): unref the message once sent.
3618         (dbus_g_proxy_call): protect against NULL proxy.
3619
3620 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3621
3622         * python/__init__.py: Version updated (0, 43, 0)
3623         
3624         * python/dbus_bindings.pyx: 
3625         - Fixed type objects to have self passed into __init__
3626         - Added the Variant type
3627         - Add the ability to specify types or signatures for Array, Variant 
3628         and Dictionary
3629         (Connection::send_with_reply_handlers): return a PendingCall object
3630         (_pending_call_notification): handle the case when an error is returned 
3631         without an error message in the body
3632         (MessageIter::get_boolean): return True or False instead of an integer
3633         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3634         and add checks for objects with embeded signatures or types (Array, 
3635         Variant and Dictionary)
3636         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3637         (MessageIter::append_dict): handle embeded types or signatures
3638         (MessageIter::append_array): handle embeded types or signatures
3639         (MessageIter::append_variant): new method
3640         
3641         * python/proxies.py:
3642         (DeferedMethod): New. Dummy executable object used when queuing calls 
3643         blocking on introspection data
3644         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3645         or shorter timeouts for method calls
3646         (ProxyObject): Add first pass at an introspection state machine
3647         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3648         introspection. 
3649         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3650         the usual mechanisms for sending messages.  This is to avoid a deadlock
3651         where the Intospect call would be queued waiting for the Introspect 
3652         call to finish ;-)
3653         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3654         when introspection returns with no error
3655         (ProxyObject::_introspect_error_handler): New.  This method is called 
3656         when introspection encounters an error
3657         (ProxyObject::__getattr__): Code to handle different introspection 
3658         states.  Queue async calls or block blocking calls if we are 
3659         introspecting.  Pass through as normal if we are not or are done with 
3660         introspecting.
3661         
3662         * python/service.py: Import signal and method from decorators.py
3663
3664         * python/types.py: Add Variant type
3665
3666 2005-08-16  Colin Walters  <walters@verbum.org>
3667
3668         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3669         DBusError message is NULL.
3670
3671 2005-08-09  Havoc Pennington  <hp@redhat.com>
3672
3673         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3674         malloc'd copy of the name parameter
3675
3676 2005-08-09  Havoc Pennington  <hp@redhat.com>
3677
3678         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3679         warning if the reply serial is set to 0
3680
3681 2005-08-04  Colin Walters  <walters@verbum.org>
3682
3683         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3684         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3685         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3686         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3687         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3688         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3689         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3690         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3691         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3692         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3693         
3694         Prefix name with _ to ensure they're not exported.  All callers
3695         updated.
3696
3697         * glib/dbus-gvalue.c (typecode_to_gtype)
3698         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3699         (signature_iter_to_g_type_dict)
3700         (signature_iter_to_g_type_array)
3701         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3702         (dbus_gtypes_from_arg_signature):
3703         Move to dbus-gsignature.c.
3704
3705         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3706         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3707         (dbus_binding_tool_output_glib_client): Ditto.
3708
3709         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3710         and dbus-gsignature.h
3711
3712         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3713         unused variable.
3714
3715 2005-08-03  Colin Walters  <walters@verbum.org>
3716
3717         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3718         catch any incompatible changes accidentally made.
3719
3720 2005-08-03  Havoc Pennington  <hp@redhat.com>
3721
3722         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3723         typo, from Julien Puydt
3724
3725         * bus/connection.c (bus_connection_disconnected): we were always
3726         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3727
3728 2005-08-01  Colin Walters  <walters@verbum.org>
3729
3730         Patch from Joe Markus Clarke:   
3731         
3732         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3733         use-after-free.
3734
3735 2005-08-01  Colin Walters  <walters@verbum.org>
3736         
3737         Patch from Joe Markus Clarke:   
3738         
3739         * tools/dbus-send.c (main): 
3740         
3741         Don't use C99 style initializers (bug #3933).
3742         
3743 2005-08-01  Colin Walters  <walters@verbum.org>
3744
3745         Patch from Joe Markus Clarke:   
3746
3747         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3748         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3749         * glib/dbus-gobject.c (write_interface):
3750
3751         Don't use C99 style initializers (bug #3933).
3752
3753 2005-07-31  Havoc Pennington  <hp@redhat.com>
3754
3755         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3756         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3757
3758 2005-07-30  Havoc Pennington  <hp@redhat.com>
3759
3760         * fix a bunch of Doxygen warnings and mistakes
3761
3762 2005-07-30  Havoc Pennington  <hp@redhat.com>
3763
3764         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3765         DBUS_BUILD_TESTS since it's now used in production code
3766
3767 2005-07-29  Havoc Pennington  <hp@redhat.com>
3768
3769         * test/glib/test-profile.c (write_junk): initialize the junk
3770         buffer so valgrind doesn't have a breakdown
3771
3772 2005-07-29  Havoc Pennington  <hp@redhat.com>
3773
3774         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3775         (match_rule_matches): remove unused arg
3776         (test_matching): add tests for match_rule_matches()
3777
3778         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3779         do arg0='foo' arg5='bar' in the match rules
3780         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3781
3782         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3783
3784 2005-07-29  Ross Burton  <ross@openedhand.com>
3785
3786         * dbus/dbus-connection.c:
3787         Don't create a DBusCondVar which is never used.
3788
3789 2005-07-27  Ross Burton  <ross@openedhand.com>
3790
3791         * dbus/dbus-message.c:
3792         Reduce the size of the maximum cached message to 10K.
3793
3794 2005-07-25  Ross Burton  <ross@openedhand.com>
3795
3796         * glib/dbus-gproxy.c:
3797         Remove matches when all proxies are unregistered.
3798
3799 2005-07-24  Colin Walters  <walters@verbum.org>
3800
3801         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3802         typedata; recursive arrays won't have it.
3803
3804         * test/glib/test-dbus-glib.c:
3805         * test/glib/test-service-glib.c:
3806         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3807         
3808 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3809
3810         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3811         proxies.py, service.py: Cleanup of code after running it through the
3812         pyflakes code checker mostly dealing with undefined names.  
3813         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3814
3815 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3816
3817         * NEWS: Update to 0.35.2
3818
3819 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3820
3821         * python/_dbus.py: Remove import of the dbus.services
3822         module as it no longer exists (patch from Dimitur Kirov)
3823
3824         * python/service.py (Object::__init__): Fixed typo
3825         s/name/bus_name (patch from Dimitur Kirov)
3826
3827         * python/examples/example-signal-emitter.py: import dbus.glib
3828         to get the main loop and use glib mainloop instead of gtk so
3829         X doesn't have to be running.
3830
3831         * python/examples/example-signal-recipient.py: import dbus.glib
3832         to get the main loop and use glib mainloop instead of gtk so
3833         X doesn't have to be running. Import the decorators module
3834         directly.
3835
3836         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3837         didn't pick up on but are needed to build
3838
3839         * configure.in: upped version to 0.35.2
3840
3841         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3842         added Colin Walters' SELinux API rename patch from head 
3843         s/unix sercurity context/selinux security context/
3844
3845 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3846
3847         * python/Makefile.am: dbus_binding.pxd.in should be included 
3848         in EXTRA_DIST not dbus_binding.pxd
3849         fix up $(srcdir) hopefully for the last time
3850
3851         * NEWS: Update to 0.35.1
3852
3853 2005-07-16  Colin Walters  <walters@verbum.org>
3854
3855         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3856         from bus_driver_handle_get_connection_unix_security_context.  Update for
3857         error usage.
3858         (message_handlers): Update for renames.
3859
3860         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3861         _dbus_string_init failure correctly.
3862         (bus_selinux_append_context): Convert SID to context.  Append it
3863         as a byte array.
3864         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3865         hasn't been called.
3866
3867         * bus/selinux.h: Update prototype.
3868
3869         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3870         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3871
3872 2005-07-15  Colin Walters  <walters@verbum.org>
3873
3874         * doc/TODO: Add note about convenience wrappers.
3875
3876 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3877
3878         * NEWS: Update to 0.35
3879
3880 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3881
3882         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3883         so distcheck doesn't fail
3884
3885         * glib/examples/Makefile.am: Add example-service.xml and 
3886         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3887
3888         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3889         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3890
3891         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3892         compiler looks in the right places during distcheck
3893
3894 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3895
3896         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3897         to fail
3898
3899 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3900
3901         * python/examples/example-service.py,
3902         python/examples/example-signal-emitter.py: Fixed up examples
3903         for API changes
3904
3905 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3906
3907         * python/__init__.py: Upped to version (0,42,0) because of
3908         the API change
3909
3910 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3911
3912         * ChangeLog: fix date in last entry
3913
3914         * configure.in, bus/system.conf.in: add the ability to configure 
3915         the system bus user at compiletime with the --with-dbus-user flag
3916         (patch from Kristof Vansant)
3917
3918 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3919
3920         * bus/dispatch.c, test/test-service.c: Add testcase
3921         for sending messages to oneself (TODO item).
3922
3923         * python/service.py (class Object): Swap ordering of bus_name 
3924         and object_path parameters to better support inheritance.
3925
3926         * doc/dbus-tutorial.xml: change Python docs to reflect change
3927         in parameter ordering and fix the inheritance section.
3928
3929         * doc/TODO: remove sending message to oneself TODO item
3930
3931 2005-07-15  Ross Burton  <ross@openedhand.com>
3932
3933         * glib/dbus-gproxy.c:
3934         Fix a leak when calling methods via the proxy.
3935
3936 2005-07-15  Colin Walters  <walters@verbum.org>
3937
3938         * bus/selinux.c (bus_selinux_append_context): Wrap in
3939         HAVE_SELINUX.
3940
3941 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3942
3943         * python/_dbus.py (Bus::remove_signal_receiver):
3944         don't add a callback to the match if none has been passed in
3945         
3946         * python/matchrules.py (SignalMatchTree::remove): if the rule
3947         being matched does not have a callback treat it as a wildcard
3948         fix matching logic
3949
3950         * doc/dbus-tutorial.xml: Add Python tutorial
3951
3952 2005-07-14  Colin Walters  <walters@verbum.org>
3953
3954         * bus/driver.c
3955         (bus_driver_handle_get_connection_unix_security_context): New function.
3956         (message_handlers): Add.
3957
3958         * bus/selinux.c (bus_selinux_append_context): New function; appends
3959         security context to message.
3960
3961         * bus/selinux.h: Prototype.
3962
3963         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3964
3965 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3966
3967         * bus/activation.c: clean up all tabs to be 8 spaces 
3968         (bus_activation_activate_service): make sure we clean up
3969         if activation fails
3970
3971         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3972         (check_shell_fail_service_auto_start): New function
3973         tests to make sure we get fail properly when trying to auto start a service
3974         with a faulty command line
3975         (check_shell_service_success_auto_start): New function tests to make sure
3976         auto started services get the arguments on the command line
3977
3978         * test/test-shell-service.c: Added service for testing auto-starting with 
3979         command line arguments
3980
3981         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3982         test/data/valid-service-files/debug-shell-echo-success.service.in:
3983         Added service files for testing auto-starting with command line arguments
3984
3985         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3986
3987 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3988
3989         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3990         
3991         * dbus/Makefile.am: added new files to build.
3992
3993         * bus/activation.c (bus_activation_activate_service): support
3994         activation commands with parameters.
3995
3996         * test/shell-test.c: added test program for the shell parsing
3997         code.
3998
3999 2005-07-13  David Zeuthen  <davidz@redhat.com>
4000
4001         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4002         64 bit signed and unsigned parameters
4003
4004 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4005
4006         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4007
4008         * python/service.py (class Name): renamed BusName to make it clearer
4009         what the object is for (a name on the bus)
4010
4011         * python/examples/example-service.py,
4012         python/examples/example-signal-emitter.py: change the Name object to
4013         BusName
4014
4015 2005-07-12  Colin Walters  <walters@verbum.org>
4016
4017         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4018
4019         * tools/dbus-launch.c: Include sys/select.h.
4020
4021 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4022         * python/dbus_bindings.pyx.in: removed
4023
4024         * python/dbus_bindings.pyx: Added.
4025         - Fixed some memleaks (patch from 
4026         Sean Meiners <sean.meiners@linspireinc.com>)
4027         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4028         own pxd file (Pyrex definition)
4029         - Broke out glib dependancies into its own pyx module
4030         
4031         * python/dbus_bindings.pdx: Added.
4032         - Defines C class Connection for exporting to other modules
4033
4034         * python/dbus_glib_bindings.pyx: Added.
4035         - New module to handle lowlevel dbus-glib mainloop integration
4036
4037         * python/glib.py: Added.
4038         - Registers the glib mainloop when you import this module
4039
4040         * python/services.py: Removed (renamed to service.py)
4041         
4042         * python/service.py: Added.
4043         - (class Server): renamed Name
4044
4045         * python/__init__.py: Bump ro version (0,41,0)
4046         -don't import the decorators or service module
4047         by default.  These now reside in the dbus.service namespace
4048
4049         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4050         setup function on creation 
4051
4052         * python/examples/example-service.py,
4053         python/examples/example-signal-emitter.py: update examples
4054
4055         * python/examples/gconf-proxy-service.py,
4056         python/examples/gconf-proxy-service2.py: TODO fix these up
4057
4058         * doc/TODO: Addition
4059         - Added a Python Bindings 1.0 section
4060         - added "Add match on args or match on details to match rules"
4061
4062
4063 2005-07-12  Colin Walters  <walters@verbum.org>
4064
4065         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4066         (statemachine-glue.h): 
4067         * glib/examples/Makefile.am (example-service-glue.h) 
4068         (example-signal-emitter-glue.h): 
4069         * glib/Makefile.am (dbus-glib-error-switch.h): 
4070         Add libtool --mode=execute so we use the built library instead
4071         of any installed one.
4072
4073 2005-07-11  Colin Walters  <walters@verbum.org>
4074
4075         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4076         (dbus_g_value_types_init): Remove assertion.
4077         (dbus_g_value_get_g_type, dbus_g_value_open)
4078         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4079         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4080         functions related to DBusGValue.  Now we marshal/demarshal
4081         structures as GValueArray.
4082         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4083         structures.
4084         (signature_iter_to_g_type_array): Don't call
4085         signature_iter_to_g_type_struct.
4086         (signature_iter_to_g_type_struct): Delete.
4087         (dbus_gvalue_to_signature): Delete.
4088         (dbus_gvalue_to_signature): New function with same name as other
4089         one; we can convert structures to signatures.
4090         (demarshal_valuearray): New function.
4091         (get_type_demarshaller): Use it.
4092         (demarshal_recurse): Delete.
4093         (marshal_proxy): New function.
4094         (marshal_map): Warn if we can't determine signature from type.
4095         (marshal_collection_ptrarray): Ditto.
4096         (marshal_collection_array): Ditto.
4097         (get_type_marshaller): Use marshal_valuearray.
4098         (marshal_recurse): Delete.
4099         (_dbus_gvalue_test): Add some tests.
4100
4101         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4102         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4103         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4104         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4105         (dbus_g_value_free): Remove prototypes.
4106
4107         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4108         G_TYPE_VALUE_ARRAY.
4109
4110         * glib/examples/example-service.c:
4111         * glib/examples/example-client.c: Implement GetTuple.
4112
4113         * test/glib/test-dbus-glib.c:
4114         * test/glib/test-service-glib.c:
4115         * test/glib/test-service-glib.xml: Add structure tests.
4116
4117 2005-07-10  Colin Walters  <walters@verbum.org>
4118
4119         * doc/TODO: Knock off some GLib items with this patch.
4120
4121         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4122         (_dbus_gvalue_signals_error): New functions.
4123
4124         * glib/dbus-gvalue-utils.h: Prototype them.
4125
4126         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4127         and change to not output const/retval flags for input args.  All
4128         callers updated.
4129         (invoke_object_method): Refactor to handle return values.  Add
4130         some more comments in various places.  Remove debug g_print.
4131
4132         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4133
4134         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4135         Handle G_TYPE_NONE.
4136         (compute_gsignature): New function; refactored from code from
4137         compute_marshaller and compute_marshaller_name.  Enhance to
4138         handle return values and async ops more cleanly.  Update for
4139         async ops returning NONE instead of BOOLEAN.
4140         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4141         and output appropriate string.
4142         (generate_glue): Handle return value annotation.  Also don't dump
4143         constness flag for input arguments.
4144
4145         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4146         files shared between installed library and utilities.
4147         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4148         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4149         binding tool can access gtype utility functions.
4150
4151         * test/glib/test-service-glib.c: 
4152         * test/glib/test-service-glib.xml: 
4153         * test/glib/test-dbus-glib.c: Add some tests for return values.
4154
4155 2005-07-09  Colin Walters  <walters@verbum.org>
4156
4157         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4158         argument if available, not method.
4159
4160         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4161         (invoke_object_method): First, remove some redundant
4162         GValues (object_value, error_value) in favor of working on
4163         array directly.  Second, rework constness to be less buggy.
4164         Now we iterate directly over the argument metadata instead
4165         of parallel iterating over output signature and metadata.
4166
4167         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4168
4169         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4170         annotation on input args.
4171         
4172 2005-07-09  Colin Walters  <walters@verbum.org>
4173
4174         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4175         Define.
4176
4177         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4178         annotation.
4179
4180         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4181         (method_dir_signature_from_object_info): Handle arg_iterate change.
4182         (write_interface): Ditto.
4183         (lookup_object_info): Don't barf if format_version is > 0.
4184         (invoke_object_method): Handle arg constness.
4185
4186         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4187         (arg_info_new): Create.
4188         (arg_info_unref): Destroy.
4189         (arg_info_get_annotations, arg_info_get_annotation) 
4190         (arg_info_add_annotation): New functions.
4191
4192         * glib/dbus-gidl.h: Prototype them.
4193
4194         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4195         args, disallow them in properties.
4196         (parse_annotation): Handle arg annotations.
4197
4198         * test/glib/test-service-glib.xml: 
4199         * test/glib/test-service-glib.c: Update to make some methods
4200         const.
4201
4202 2005-07-08  Colin Walters  <walters@verbum.org>
4203
4204         * test/glib/test-service-glib.xml: 
4205         * test/glib/test-service-glib.c:
4206         * test/glib/test-dbus-glib.c: Test a{sv}.
4207
4208         * glib/examples/statemachine/statemachine.c:
4209         * glib/examples/statemachine/statemachine-server.c:
4210         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4211         add progress bar, etc.
4212
4213         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4214         needed anymore due to generic array/map marshalling.
4215         (dbus_g_value_types_init): Don't register basic arrays or the
4216         string/string hash.
4217         (dbus_gtype_from_signature_iter): Don't try to recurse into
4218         variants.
4219         (dbus_gtype_to_signature): Check collection/map before type
4220         metadata.
4221         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4222         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4223         generic map creation/append functions instead of hash table
4224         specifically.
4225         (get_type_demarshaller): Handle maps.
4226         (demarshal_collection): Dispatch on collection type to either
4227         demarshal_collection_ptrarray or demarshal_collection_array.
4228         (get_type_marshaller): Handle maps.
4229         (marshal_collection): Dispatch collection type to either
4230         marshal_collection_ptrarray or marshal_collection_array.
4231         (_dbus_gvalue_test): New test.
4232
4233         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4234         (hash_free_from_gtype): Use it to free GValues.
4235         (hashtable_append): New function.
4236         (ptrarray_append): Fix prototype.
4237         (slist_append): Ditto.
4238         (_dbus_gvalue_utils_test): Extend tests.
4239
4240         * glib/dbus-gtype-specialized.c
4241         (dbus_g_type_specialized_init_append): Renamed from
4242         dbus_g_type_specialized_collection_init_append.  Remove const from
4243         value, since we steal it.
4244         (dbus_g_type_specialized_map_append): New function.
4245
4246         * glib/dbus-gtype-specialized.h: Update prototypes.
4247         Add DBusGTypeSpecializedMapAppendFunc.
4248
4249         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4250         _dbus_gvalue_test.
4251         
4252         * glib/dbus-gtest.h: Prototype it.
4253
4254 2005-07-08  Ross Burton  <ross@openedhand.com>
4255
4256         * dbus/dbus-glib.h:
4257         Add DBysGAsyncData for the async bindings.
4258
4259         * glib/dbus-binding-tool-glib.c:
4260         Re-enable the async bindings.
4261
4262         * test/glib/test-dbus-glib.c:
4263         Add a test for the generated async bindings.
4264
4265 2005-07-08  Colin Walters  <walters@verbum.org>
4266
4267         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4268         connection concept.
4269         
4270 2005-07-08  Colin Walters  <walters@verbum.org>
4271         
4272         * tools/Makefile.am: Kill of print-introspect in favor of using
4273         dbus-send --print-reply=literal.
4274
4275         * test/glib/test-service-glib.xml: 
4276         * test/glib/test-service-glib.c (my_object_get_objs): New test
4277         for "ao".
4278
4279         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4280         (main): Test GetObjs.
4281
4282         * glib/examples/statemachine/Makefile.am:
4283         * glib/examples/statemachine/sm-marshal.list:
4284         * glib/examples/statemachine/statemachine-client.c:
4285         * glib/examples/statemachine/statemachine-server.c:
4286         * glib/examples/statemachine/statemachine-server.xml:
4287         * glib/examples/statemachine/statemachine.c:
4288         * glib/examples/statemachine/statemachine.h:
4289         * glib/examples/statemachine/statemachine.xml:
4290
4291         New example.
4292
4293         * glib/examples/example-service.c (main): Move invocation
4294         of dbus_g_object_type_install_info earlier, to emphasize it
4295         should only be done once.
4296
4297         * glib/examples/example-signal-emitter.c (main): Ditto.
4298
4299         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4300
4301         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4302         (dbus_gvalue_marshal): Update prototypes.
4303
4304         * glib/dbus-gvalue.c: Update all marshalling functions to take
4305         const GValue instead of GValue.
4306         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4307         types.
4308         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4309         change.
4310         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4311         Return a newly-allocated string.
4312         (demarshal_proxy, demarshal_object_path, demarshal_object)
4313         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4314         we get the wrong types from message.
4315         (get_type_demarshaller): New function, extracted from
4316         dbus_gvalue_demarshal.
4317         (demarshal_collection): New function, demarshals generic
4318         collection.
4319         (dbus_gvalue_demarshal): Just invoke result of
4320         get_type_demarshaller.  Throw error if we don't have one.
4321         (marshal_garray_basic): Abort on OOM.
4322         (get_type_marshaller): New function, extracted from
4323         dbus_gvalue_marshal.
4324         (collection_marshal_iterator, marshal_collection): New functions;
4325         implements generic marshalling for an iteratable specialized
4326         collection.
4327         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4328
4329         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4330         G_TYPE_STRING.
4331         (ptrarray_value_from_gvalue): Ditto.
4332         (ptrarray_append, ptrarray_free): New functions.
4333         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4334         (slist_append, slist_end_append, slist_free): New functions.
4335         (dbus_g_type_specialized_builtins_init): Add append fuctions
4336         for GPtrArray and GSList.  Register GSList.
4337         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4338
4339         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4340         New.
4341         (dbus_g_type_specialized_collection_init_append)
4342         (dbus_g_type_specialized_collection_append)
4343         (dbus_g_type_specialized_collection_end_append): Prototype.
4344         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4345         end_append_func.
4346
4347         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4348         (dbus_g_type_specialized_collection_append) 
4349         (dbus_g_type_specialized_collection_end_append): New functions.
4350         (dbus_g_type_map_value_iterate): Take const GValue.
4351         (dbus_g_type_collection_value_iterate): Ditto.
4352
4353         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4354         _dbus_gvalue_utils_test.
4355         
4356         * glib/dbus-gtest.h: Prototype it.
4357
4358         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4359         using uninitialized owner_list.
4360         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4361         public API.
4362         (dbus_g_proxy_end_call_internal): Update to use error set
4363         from dbus_gvalue_demarshal instead of setting it here.
4364         (dbus_g_proxy_begin_call): Move return_if_fail here.
4365
4366         * glib/dbus-gobject.c (write_interface): Update for
4367         dbus_gtype_to_signature returning new string.
4368
4369         * configure.in: Add glib/examples/statemachine.
4370
4371 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4372
4373         * configure.in: Add a configure option, --with-console-auth-dir
4374         
4375         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4376         new setting.  Patch from Kay Sievers.
4377
4378 2005-07-06  Colin Walters  <walters@verbum.org>
4379
4380         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4381         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4382         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4383         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4384         Delete in favor of dbus_g_proxy_begin_call and
4385         dbus_g_proxy_cancel_call.
4386         (DBusGProxyCall, DBusGProxyCallNotify): New.
4387         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4388         data, and destroy function.  This replaces
4389         dbus_g_pending_call_set_notify.
4390         (dbus_g_proxy_cancel_call): Prototype.
4391         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4392
4393         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4394         pending_calls map.
4395         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4396         internal proxy for calls to the bus. Remove
4397         pending_nameowner_calls, now the internal proxy keeps track.
4398         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4399         pending_nameowner_calls.
4400         (got_name_owner_cb): Update prototype, and use
4401         dbus_g_proxy_end_call.
4402         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4403         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4404         favor of using internal proxy.
4405         (dbus_g_proxy_manager_unregister): Update to use
4406         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4407         (dbus_g_proxy_init): Initialize pending calls map.
4408         (dbus_g_proxy_constructor): New.
4409         (dbus_g_proxy_class_init): Add get/set property functions,
4410         constructor, and add NAME, PATH, and INTERFACE properties.
4411         (cancel_pending_call): New function.
4412         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4413         cancel them.
4414         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4415         (GPendingNotifyClosure): New structure.
4416         (d_pending_call_notify, d_pending_call_free): Moved here from
4417         dbus-glib.c.
4418         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4419         ordering.
4420         (manager_begin_bus_call): New internal function for talking to
4421         internal bus proxy.
4422         (dbus_g_proxy_new): Construct object using GObjet properties.
4423         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4424         Create closure of same, and insert call into map of pending calls.
4425         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4426         call.  Look up pending call in current set.  Remove it when we've
4427         completed.
4428         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4429         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4430         and destroy function directly.
4431         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4432         (dbus_g_proxy_call): Invoke with NULL callback.
4433         (dbus_g_proxy_cancel_call): New function, replaces
4434         dbus_g_pending_call_cancel.
4435
4436         * glib/dbus-gparser.c (validate_signature): Fix call to
4437         dbus_set_g_error.
4438
4439         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4440         New quark for attaching metadata to GType.
4441         (info_hash): Delete.
4442         (lookup_object_info): Look up using quark.
4443         (dbus_g_object_type_install_info): Check that a type is classed,
4444         not that it's an object.  Also just install type data using quark
4445         instead of using global hash.
4446
4447         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4448         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4449         (GPendingNotifyClosure): Delete.
4450         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4451         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4452
4453         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4454         client method generation until we can fix it...
4455         
4456         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4457         (load_from_service_thread_func): Ditto.
4458
4459         * tools/dbus-names-model.c (struct NamesModel): Hold
4460         DBusGProxyCall.
4461         (have_names_notify): Update prototype, use
4462         dbus_g_proxy_cancel_call.
4463         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4464
4465         * tools/dbus-monitor.c (filter_func): Update for print_message
4466         API change.
4467
4468         * test/glib/test-dbus-glib.c: Add more tests for async
4469         invocations.  Update many begin_call/end_call pairs to just use
4470         dbus_g_proxy_call.
4471
4472         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4473         allows us to dump print-introspect.c.
4474
4475         * tools/dbus-print-message.h (print_message): Add literal argument
4476         to print_message which is intended to allow printing arguments without
4477         metadata like "string=".
4478
4479         * tools/dbus-print-message.c (print_iter): Add literal argument.
4480         (print_message): Allow printing string messages literally.
4481
4482 2005-07-05  Colin Walters  <walters@verbum.org>
4483
4484         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4485         Remove value refcount leak, original patch from Jorn Baayen
4486         <jorn@openedhand.com>.  Also remove useless extra value in favor
4487         of prepending to value array directly.
4488
4489 2005-07-02  Colin Walters  <walters@verbum.org>
4490
4491         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4492
4493 2005-07-01  Colin Walters  <walters@verbum.org>
4494
4495         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4496         
4497         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4498         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4499         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4500         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4501
4502 2005-06-30  Colin Walters  <walters@verbum.org>
4503
4504         * test/glib/test-dbus-glib.c:
4505         * test/glib/test-service-glib.c:
4506         * test/glib/test-service-glib.xml: Update tests for new error
4507         setting bits, also add async tests (patch from Ross Burton).
4508
4509         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4510         DBUS_GLIB_THREADS_LIBS.
4511
4512         * glib/dbus-gproxy.c (get_name_owner)
4513         (dbus_g_pending_call_end_valist): Ditto.
4514
4515         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4516         domain (GQuark) to DBusGErrorInfo.  
4517         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4518         quark in error_metadata.  Take message interface as default
4519         error message interface.
4520         (gerror_to_dbus_error_message): Pass message interface.
4521         (dbus_set_g_error): Resurrected.
4522         (dbus_g_error_info_free): New function.
4523         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4524         of _peek to actually create the object class if it hasn't been
4525         created yet.
4526         (dbus_g_error_domain_register): New function.
4527
4528         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4529
4530         * glib/dbus-gparser.c (validate_signature): Ditto.
4531
4532         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4533         (dbus_g_error_domain_register): Prototype.
4534
4535         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4536         Update tests.
4537
4538 2005-06-29  Colin Walters  <walters@verbum.org>
4539
4540         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4541         DBUS_TYPE_G_OBJECT_PATH.
4542
4543         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4544         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4545         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4546         (dbus_g_object_path_get_g_type): New function.
4547         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4548         to DBUS_TYPE_G_OBJECT_PATH by default.
4549         (demarshal_proxy): Remove unused name variable.
4550         (demarshal_object_path, marshal_object_path): New functions.
4551         (demarshal_proxy_array, marshal_proxy_array): Delete.
4552         
4553         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4554         DBUS_TYPE_G_OBJECT_PATH to char *.
4555         (dbus_g_type_get_lookup_function): Map builtin
4556         DBUS_TYPE_G_OBJECT_PATH.
4557
4558         * test/glib/test-dbus-glib.c
4559         * test/glib/test-service-glib.c (my_object_objpath): 
4560         Adapt tests to new object path marshalling.
4561
4562 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4563
4564         * configure.in: force check for Python >= 2.4
4565
4566 2005-06-29  Colin Walters  <walters@verbum.org>
4567         
4568         Patch from Ross Burton <ross@openedhand.com>
4569         
4570         * glib/dbus-gobject.c (invoke_object_method): Unset object
4571         value in all cases, not only in async case.
4572
4573 2005-06-29  Colin Walters  <walters@verbum.org>
4574
4575         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4576         name_call for keeping track of any outgoing GetNameOwner call.
4577         Also add for_owner and associated.
4578         (struct _DBusGProxyManager): Add owner_names, which is hash table
4579         that maps a base name to a list of names it owns (that we're
4580         interested in).  Add pending_nameowner_calls which is a list of
4581         all outstanding GetNameOwner; avoids us having to iterate over
4582         every proxy.  Add unassociated_proxies which keeps track of name
4583         proxies with no associated name owner.
4584         (dbus_g_proxy_manager_unref): Destroy owner_names.
4585         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4586         name refcounts.
4587         (find_name_in_info, name_owner_foreach)
4588         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4589         (dbus_g_proxy_manager_monitor_name_owner)
4590         (dbus_g_proxy_manager_unmonitor_name_owner)
4591         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4592         New functions; they manipulate the owner_names mapping.
4593         (got_name_owner_cb): New function.
4594         (get_name_owner): New function, extracted from
4595         dbus_g_proxy_new_for_name_owner.
4596         (dbus_g_proxy_manager_register): For now we need to keep track of
4597         all NameOwnerChanged.  Also if the proxy is for a name, if we
4598         don't already know the name owner, queue a new GetNameOwner
4599         request and add it to our list of unassociated proxies.  Otherwise
4600         inc the refcount.
4601         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4602         cancel any pending GetNameOwner call, etc.
4603         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4604         the owner_names mapping to look up the current names for the
4605         signal source, and dispatch to any proxies for that name.
4606         (dbus_g_proxy_new): Initialize new members.
4607         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4608         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4609         (dbus_g_pending_call_end_valist): New function, extracted from
4610         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4611         but want to use the GLib infrastructure.  Also note how many
4612         arguments in reply were over.
4613         (dbus_g_pending_call_end): New function, just call
4614         dbus_g_pending_call_end_valist.
4615         (dbus_g_proxy_end_call_internal): Just call
4616         dbus_g_pending_call_end_valist.
4617
4618         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4619         of builtin marshaller for STRING_STRING_STRING.
4620
4621         * test/glib/test-dbus-glib.c: 
4622         * test/glib/test-service-glib.c:
4623         * test/glib/test-service-glib.xml:
4624         Extend tests to cover name proxies, destruction of owner proxies,
4625         etc.
4626         
4627         * glib/examples/example-signal-recipient.c
4628         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4629         
4630         * tools/dbus-send.c (main): Print D-BUS error name in addition
4631         to message.
4632
4633 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4634
4635         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4636         cmessage_function_handler): Patch from 
4637         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4638         by using the Py_GILState_Ensure/Release to synchronize with the
4639         python runtime.
4640         
4641 2005-06-28  Ray Strode  <rstrode@redhat.com>
4642
4643         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4644         babysitter helper process on last unref, bug #2813.
4645
4646 2005-06-27  Colin Walters  <walters@verbum.org>
4647
4648         * test/glib/test-dbus-glib.c: 
4649         * test/glib/test-service-glib.c:
4650         * test/glib/test-service-glib.xml:
4651         Test hash table signal emitting.
4652
4653         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4654         types to their fundamental basis types, since this is what
4655         marshallers operate on.  Also add an entry for VOID__BOXED.
4656         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4657
4658 2005-06-26  Havoc Pennington  <hp@redhat.com>
4659
4660         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4661         from Don Park
4662
4663 2005-06-26  Colin Walters  <walters@verbum.org>
4664
4665         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4666         (dbus_g_error_set): New public function from its ashes; used by
4667         both service-side method implementation and GLib bindings
4668         internals.
4669         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4670         (_dbus_glib_test): Add some tests.
4671
4672         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4673
4674         * test/glib/test-service-glib.c (my_object_throw_error): Use
4675         dbus_g_error_set.
4676
4677         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4678         errors thrown by dbus_g_error_set.
4679
4680         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4681
4682         * glib/dbus-gparser.c (validate_signature): Ditto.
4683
4684         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4685         (dbus_g_proxy_end_call_internal): Ditto.
4686
4687         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4688         converts DBUS_ERROR_x to DBUS_GERROR_x.
4689         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4690
4691         * doc/TODO: Remove error TODO.
4692
4693         * doc/dbus-tutorial.xml: Update with documentation about error
4694         handling.
4695
4696         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4697         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4698         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4699
4700 2005-06-22  Colin Walters  <walters@verbum.org>
4701         
4702         Patch from Ross Burton <ross@openedhand.com>
4703
4704         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4705
4706 2005-06-20  Colin Walters  <walters@verbum.org>
4707
4708         * configure.in: Add glib/examples.
4709
4710         * glib/Makefile.am: Add examples/
4711
4712         * glib/examples/.cvsignore
4713         * glib/examples/Makefile.am
4714         * glib/examples/example-client.c
4715         * glib/examples/example-service.c
4716         * glib/examples/example-service.xml
4717         * glib/examples/example-signal-emitter.c
4718         * glib/examples/example-signal-emitter.xml
4719         * glib/examples/example-signal-recipient.c:
4720         New files; GLib binding examples, ported from
4721         python/examples.
4722
4723 2005-06-20  Colin Walters  <walters@verbum.org>
4724
4725         * dbus/dbus-glib.h: 
4726         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4727         dbus_g_proxy_call.
4728
4729         * glib/dbus-binding-tool-glib.c: 
4730         * doc/dbus-tutorial.xml: 
4731         * test/glib/test-dbus-glib.c: Update for rename.
4732         
4733 2005-06-20  Colin Walters  <walters@verbum.org>
4734
4735         Patch suggested by Ross Burton <ross@openedhand.com>
4736
4737         * glib/dbus-gobject.c (export_signals): Free signal name.
4738         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4739         memory leak.  Add a bit of documentation.
4740         (dbus_g_method_return_error): Free context, and note we do
4741         so.
4742
4743 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4744
4745         * dbus/dbus-glib.h:
4746         * glib/dbus-gobject.c:
4747         * glib/dbus-gproxy.c:
4748         * glib/dbus-gvalue.c: Predeclare structs as 
4749         typedef struct _Something Something instead of 
4750         typedef struct Something Something, so we can 
4751         redeclare the prototypes. Other GNOME libraries 
4752         do this already.
4753
4754 2005-06-17  Colin Walters  <walters@verbum.org>
4755
4756         * tools/dbus-names-model.c (have_names_notify): Fix call
4757         to dbus_g_proxy_end_call.
4758         
4759 2005-06-17  Colin Walters  <walters@verbum.org>
4760
4761         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4762         spew warnings if we get malformed remote signals.
4763
4764         * glib/dbus-gobject.c (propsig_iterate): New function.
4765         (lookup_object_info): New function, extracted from
4766         lookup_object_and_method.
4767         (introspect_properties, introspect_signals): Delete; these
4768         are merged into write_interface.
4769         (write_interface): Write out signals and properties here;
4770         dump the org.gtk.object stuff and use the interface given
4771         in the introspection data blob.  Also fix up property XML.
4772         (lookup_values): New function.
4773         (introspect_interfaces): Gather a mapping from interface to a
4774         list of its methods, signals, and properties, then write out
4775         each interface.
4776         (lookup_object_and_method): Use lookup_object_info.
4777         (struct DBusGSignalClosure): Add interface.
4778         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4779         we can just use the constant data.
4780         (dbus_g_signal_closure_finalize): Don't free signal name.
4781         (signal_emitter_marshaller): Use interface from signal closure.
4782         (export_signals): Only export signals mentioned in introspection
4783         blob.
4784         (dbus_g_connection_register_g_object): Warn if we have no
4785         introspection data for an object.
4786         (funcsig_equal): Remove unused variable.
4787         (dbus_g_object_register_marshaller): Take varargs instead of
4788         list.
4789         (dbus_g_object_register_marshaller_array): New function,
4790         extracted from old dbus_g_object_register_marshaller.
4791
4792         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4793         signals and property data.
4794         (write_quoted_string): New function, extracted from generate_glue.
4795         (generate_glue): Write signals and properties to introspection
4796         blob.
4797
4798         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4799         exported_signals and exported_properties.
4800         (dbus_g_object_register_marshaller): Update prototype.
4801         (dbus_g_object_register_marshaller_array): Prototype.
4802         
4803         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4804
4805         * test/glib/test-service-glib.c: Add new test signals and method
4806         to emit them.
4807
4808         * test/glib/test-service-glib.xml: Add some test signals.
4809
4810         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4811         and my-object-marshal.h
4812         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4813         my-object-marshal.c.
4814         (my-object-marshal.c, my-object-marshal.h): Implement.
4815
4816         * test/glib/.cvsignore: Update.
4817
4818         * doc/TODO: Remove two GLib TODO items fixed by this
4819         patch.
4820
4821 2005-06-16  Colin Walters  <walters@verbum.org>
4822
4823         * doc/TODO: Update for GLib bindings.
4824         
4825 2005-06-16  Colin Walters  <walters@verbum.org>
4826
4827         * glib/dbus-binding-tool-glib.c:
4828         * glib/dbus-gobject.c:
4829         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4830         from Ross Burton, for his GLib bindings work.
4831
4832 2005-06-16  Colin Walters  <walters@verbum.org>
4833
4834         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4835         to iterate instead of walking to G_TYPE_INVALID.
4836
4837         Patch based on a patch from Ryan Gammon.
4838
4839 2005-06-16  Colin Walters  <walters@verbum.org>
4840
4841         * bus/bus.c (bus_context_new): Set parser to NULL
4842         after we unref it (Patch from Chris Boscolo, #2174).
4843         
4844 2005-06-16  Colin Walters  <walters@verbum.org>
4845
4846         * python/dbus_bindings.pyx.in: Import size_t,
4847         __int64_t, __uint64_t, and __signed.
4848
4849         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4850         Define cmsg struct, output it.
4851         (_dbus_read_credentials_unix_socket):
4852         Use cmsg struct.
4853         
4854         Patch from Joe Markus Clarke for FreeBSD support.
4855         
4856 2005-06-16  Colin Walters  <walters@verbum.org>
4857
4858         * tools/dbus-send.c (append_array): Use strtok.
4859         (append_dict): New function.
4860         (type_from_name): New function, extracted from main.
4861         (main): Handle sending dicts.
4862
4863         * tools/dbus-print-message.c (print_iter): Print dict
4864         entries.
4865         
4866 2005-06-16  Colin Walters  <walters@verbum.org>
4867
4868         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4869         values as the empty string (#2948).
4870         
4871 2005-06-16  Colin Walters  <walters@verbum.org>
4872
4873         * dbus/Makefile.am:
4874         * mono/doc/Makefile.am:
4875         * test/glib/Makefile.am:
4876
4877         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4878
4879 2005-06-16  Colin Walters  <walters@verbum.org>
4880
4881         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4882         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4883
4884         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4885         Increment pointer after swapping fixed array.  Add assertion
4886         for array length.
4887                 
4888 2005-06-15  Colin Walters  <walters@verbum.org>
4889
4890         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4891         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4892         
4893 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4894
4895         * NEWS: Update to 0.34
4896
4897 2005-06-15  David Zeuthen  <davidz@redhat.com>
4898
4899         * configure.in (LT_CURRENT): Revert back to 1 as the library
4900         hasn't changed and we've certainly not committed to protocol
4901         stability yet.  All this does is to break ABI. See commit note
4902         from hp@redhat.com 2005-05-05 for details.
4903         
4904 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4905
4906         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4907         (_dbus_connection_run_builtin_filters): New method
4908         (dbus_connection_dispatch): Run the builtin filters which in turn
4909         runs the peer filter which handles Ping messages.
4910
4911         * doc/TODO: 
4912          - Ping isn't handled: This patch fixes it
4913          
4914          - Add a test case for the Ping message: added TODO item
4915
4916 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4917
4918         * dbus/dbus-message.c:
4919         (dbus_message_has_path): New method
4920         (dbus_message_has_interface): New method
4921         (dbus_message_has_member): New method
4922
4923         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4924         New method
4925
4926         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4927         the keyring directory is private to the user
4928
4929         * doc/TODO:
4930          - The convenience functions in dbus-bus.h should perhaps have
4931          the signatures that they would have if they were autogenerated
4932          stubs. e.g. the acquire service function. We should also evaluate
4933          which of these functions to include, in light of the fact that
4934          GLib/Qt native stubs will probably also exist.: Punted
4935
4936          - add dbus_message_has_path(), maybe has_member/interface:
4937          fixed in this patch
4938
4939          - in dbus-keyring.c, enforce that the keyring dir is not
4940          world readable/writable: Fixed in this patch
4941
4942 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4943
4944         * dbus/dbus-marshal-validate.h: Added a new validation
4945         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4946         out of memory errors when validating signitures
4947
4948         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4949         in places where we previously used DBUS_VALID and a FALSE return 
4950         value to indicate OOM
4951         
4952         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4953         Use a stack to track the number of elements inside containers.  The 
4954         stack values are then used to validate that dict entries have only two
4955         elements within them.
4956         (validate_body_helper): check the reason for failure when validating
4957         varients
4958         
4959         * dbus/dbus-message.c (load_message): use 
4960         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4961         DBUS_VALID and a FALSE return value to indicate OOM
4962
4963         * doc/TODO: remove "- validate dict entry number of fields" as this
4964         patch fixes it
4965
4966 2005-06-14  David Zeuthen  <davidz@redhat.com>
4967
4968         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4969         watches (if applicable) and add new watches
4970
4971         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4972         (main): Setup SIGIO signal handler if using D_NOTIFY
4973
4974         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4975
4976         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4977         (merge_included): Also merge conf_dirs list
4978         (bus_config_parser_unref): Clear conf_dirs list
4979         (include_dir): Add directory to conf_dirs list
4980         (bus_config_parser_get_conf_dirs): New function
4981
4982         * bus/dir-watch.[ch]: New files
4983
4984         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4985
4986         * configure.in: Add checks for D_NOTIFY on Linux
4987
4988 2005-06-14  Colin Walters  <walters@verbum.org>
4989
4990         * glib/dbus-binding-tool-glib.c:
4991         * glib/dbus-gobject.c:
4992         * glib/dbus-gvalue.c: Fix indentation and brace style.
4993         
4994 2005-06-14  Ross Burton <ross@openedhand.com>.
4995
4996         * glib/dbus-glib.h: Make DBusGMethodInvocation
4997         a private structure.  Rearrange prototypes a bit.
4998         
4999         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5000         documentation for first_arg_type.
5001         
5002         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5003         here, add documentation.  Move dbus_g_method_return
5004         and dbus_g_method_return_error into public API
5005         section.
5006
5007 2005-06-14  Colin Walters  <walters@verbum.org>
5008
5009         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5010         Add missing return statements, noticed by Ross Burton.
5011         
5012 2005-06-13  Ross Burton <ross@openedhand.com>.
5013
5014         * glib/dbus-gobject.c: Handle errors on message
5015         demarshalling by sending error message back.
5016         * glib/dbus-gvalue.c: Initialize return variables.
5017
5018 2005-06-13  Colin Walters  <walters@verbum.org>
5019
5020         * glib/Makefile.am: Fix thinko in last patch.
5021
5022 2005-06-13  Colin Walters  <walters@verbum.org>
5023
5024         * glib/Makefile.am: Move dbus-gtype-specialized.c
5025         and dbus-gtype-specialized.h into a _HEADERS variable,
5026         install them.
5027
5028 2005-06-12  Colin Walters  <walters@verbum.org>
5029
5030         Async signals and various bugfixes and testing by
5031         Ross Burton <ross@openedhand.com>.
5032
5033         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5034         (dbus_gvalue_genmarshal_name_from_type)
5035         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5036         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5037         (dbus_g_value_types_init, dbus_gtype_from_signature)
5038         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5039         (dbus_gtypes_from_arg_signature): New function prototypes.
5040         (dbus_gvalue_demarshal): Take context and error arguments.
5041         (dbus_gvalue_demarshal_variant): New function.
5042         (dbus_gvalue_demarshal_message): New function.
5043         (dbus_gvalue_store): Delete.
5044
5045         * glib/dbus-gvalue.c:
5046
5047         File has been almost entirely rewritten; now we special-case
5048         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5049         hash tables correctly, etc.  Full support for recursive values
5050         is not yet complete.
5051
5052         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5053         argument of signal to G_TYPE_POINTER since we now pass a
5054         structure.
5055         (lookup_g_marshaller): Delete in favor of
5056         _dbus_gobject_lookup_marshaller.
5057         (marshal_dbus_message_to_g_marshaller): Use
5058         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5059         to handle remote signal callbacks.
5060         (dbus_g_proxy_new_from_proxy): New function; creates a new
5061         DBusGProxy by copying an existing one.
5062         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5063         (dbus_g_proxy_get_path): New functions.
5064         (dbus_g_proxy_marshal_args_to_message): New function;
5065         factored out of existing code.
5066         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5067         from a varargs array.
5068         (dbus_g_proxy_begin_call_internal): New function.
5069         (dbus_g_proxy_end_call_internal): New function.
5070         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5071         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5072         after collecting args into value array.
5073         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5074         invoke dbus_g_proxy_end_call_internal.
5075         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5076         end_call_internal.
5077         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5078         types.
5079         (array_free_all): New function.
5080         (dbus_g_proxy_add_signal): Take GTypes.
5081
5082         * glib/dbus-gobject.h:
5083         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5084         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5085         Prototype.
5086
5087         * glib/dbus-gobject.c: Add a global marshal_table hash which
5088         stores mappings from type signatures to marshallers.  Change lots
5089         of invocations of dbus_gtype_to_dbus_type to
5090         dbus_gtype_to_signature.
5091         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5092         (introspect_signals): Fix test for query.return_type.
5093         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5094         (invoke_object_method): Many changes.  Handle asynchronous
5095         invocations.  Convert arguments with
5096         dbus_gvalue_demarshal_message.  Handle errors.  Use
5097         DBusSignatureIter instead of strlen on args. Handle all arguments
5098         generically.  Special-case variants.
5099         (dbus_g_method_return, dbus_g_method_return_error): New function.
5100         (DBusGSignalClosure): New structure, closes over signal
5101         information.
5102         (dbus_g_signal_closure_new): New function.
5103         (dbus_g_signal_closure_finalize): New function.
5104         (signal_emitter_marshaller): New function; is special marshaller
5105         which emits signals on bus.
5106         (export_signals): New function; introspects object signals and
5107         connects to them.
5108         (dbus_g_object_type_install_info): Take GType instead of
5109         GObjectClass.
5110         (dbus_g_connection_register_g_object): Invoke export_signals.
5111         (dbus_g_connection_lookup_g_object): New function.
5112         (DBusGFuncSignature) New structure; used for mapping type
5113         signatures to marshallers.
5114         (funcsig_hash): New function; hashes DBusGFuncSignature.
5115         (funcsig_equal): New function; compares DBusGFuncSignature.
5116         (_dbus_gobject_lookup_marshaller): New function.
5117         (dbus_g_object_register_marshaller): New function; used to
5118         register a marshaller at runtime for a particular signature.
5119
5120         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5121
5122         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5123         which notes a server method implementation should be
5124         asynchronous.
5125
5126         * glib/dbus-binding-tool-glib.c
5127         (dbus_binding_tool_output_glib_server): Call
5128         dbus_g_value_types_init.
5129         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5130         variants specially.
5131         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5132         of a lookup function.
5133         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5134         (write_untyped_out_args): New method; write output arguments.
5135         (write_formal_declarations_for_direction): Function for
5136         writing prototypes.
5137         (write_formal_parameters_for_direction): Function for
5138         writing implementations.
5139         (write_typed_args_for_direction): Function for writing
5140         arguments prefixed with GTypes.
5141         (write_async_method_client): Write out async version
5142         of method.
5143
5144         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5145         (dbus_g_type_get_marshal_name): Move mapping from GType
5146         to marshal name into here.
5147         (dbus_g_type_get_c_name): Move into here.
5148         (compute_marshaller): Convert signature to type with
5149         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5150         (compute_marshaller_name): Ditto.
5151         (compute_marshaller): Handle async signal annotations.
5152         (gather_marshallers): Return if we don't have a known
5153         prefix.
5154         (generate_glue): Collect introspection blob here, and
5155         write all of the blob at the end.  This allows an object
5156         with multiple interfaces to work.
5157         Mark async methods in introspection blob.
5158
5159         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5160         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5161         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5162
5163         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5164         avoids people accidentally using DBUS_TYPE_* which should
5165         not be necessary anymore.
5166         Do include dbus-gtype-specialized.h, which are utilities
5167         for GLib container types.
5168         Add various #defines for types such as
5169         DBUS_TYPE_G_BOOLEAN_ARRAY.
5170         (DBusGValueIterator, DBusGValue): Define, not fully used
5171         yet.
5172         (dbus_g_value_get_g_type): Type for recursive value.
5173         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5174         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5175         (dbus_g_value_free): Prototypes.
5176         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5177         (dbus_g_proxy_set_interface): Prototype.
5178         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5179         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5180         types.
5181         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5182         Accessors.
5183         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5184         doing async invocations.
5185         (dbus_g_method_return, dbus_g_method_return_error):
5186         Prototypes.
5187         * doc/dbus-tutorial.xml: Update GLib section.
5188         
5189         * tools/dbus-viewer.c (load_child_nodes): Update
5190         for new invocation type of dbus_g_proxy_end_call.
5191         (load_from_service_thread_func): Ditto.
5192
5193         * tools/print-introspect.c (main): Ditto.
5194
5195         * tools/dbus-names-model.c (have_names_notify)
5196         (names_model_reload, names_model_set_connection)
5197         Use GTypes.
5198
5199         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5200         needed since Python bindings use GLib bindings.
5201
5202         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5203         Add --prefix argument.
5204
5205         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5206         unneeded --ignore-unsupported arg.
5207         
5208         * test/glib/test-service-glib.c: 
5209         * test/glib/test-service-glib.xml:
5210         * test/glib/test-dbus-glib.c: Add many more tests.
5211
5212 2005-06-06  David Zeuthen  <davidz@redhat.com>
5213
5214         * doc/TODO: Add item about need to remove deprecated functions.
5215
5216         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5217
5218         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5219         to repair the ABI which was broken with the last commit.
5220
5221 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5222
5223         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5224         (dbus_connection_disconnect): renamed to dbus_connection_close 
5225         for API symmetry with dbus_connection_open
5226         (_dbus_connection_open_internal): 
5227         s/dbus_connection_disconnect/dbus_connection_close
5228
5229         * dbus/dbus-bus.c (dbus_bus_get):
5230         s/dbus_connection_disconnect/dbus_connection_close
5231
5232         * bus/connection.c (bus_connections_unref, 
5233         bus_connections_setup_connection, bus_connections_expire_incomplete):
5234         s/dbus_connection_disconnect/dbus_connection_close
5235
5236         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5237         kill_client_connection_unchecked, check_hello_connection):
5238         s/dbus_connection_disconnect/dbus_connection_close
5239
5240         * bus/bus.c (new_connection_callback):
5241         s/dbus_connection_disconnect/dbus_connection_close
5242
5243         * tools/dbus-send.c (main):
5244         s/dbus_connection_disconnect/dbus_connection_close
5245
5246         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5247         s/dbus_connection_disconnect/dbus_connection_close
5248         
5249         * test/test-service.c (path_message_func, filter_func):
5250         s/dbus_connection_disconnect/dbus_connection_close
5251         
5252         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5253         
5254 2005-05-25  Colin Walters  <walters@verbum.org>
5255
5256         * dbus/dbus-protocol.h: Move various bus service #defines such
5257           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5258           dbus/dbus-shared.h.
5259         * dbus/dbus-shared.h: Various defines moved here.
5260         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5261
5262 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5263
5264         * python/__init__.py: Python bindings deserve a minor version
5265         update.  Upped to (0, 40, 2)
5266
5267 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5268
5269         * python/decorators.py: add explicitly_pass_message decorator
5270         for passing in the dbus message as keyword for edge case signal
5271         handling
5272
5273         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5274         to conform with what dbus expects for match rules
5275         (SignalMatchRule.execute): add the dbus message as a keyword
5276         if the signal handler has requested it
5277
5278         * python/examples/example/signal-recipient.py: added some more
5279         examples on how to hook up to signals
5280
5281 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5282
5283         * python/decorators.py: import dbus_bindings
5284
5285         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5286         SignalMatchNode): new classes that implement wildcard signal
5287         callback matching using a tree lookup. Heavily modified from a
5288         patch sent by Celso Pinto (fd.o bug #3241)
5289
5290         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5291         use new match classes to handle signals.
5292
5293 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5294         
5295         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5296
5297 2005-05-18  Havoc Pennington  <hp@redhat.com>
5298
5299         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5300         gettext. Not really worth requiring yet perhaps, but any
5301         production quality 1.0 would require it so we should go ahead and
5302         get things set up. We do have a couple token calls to
5303         bindtextdomain in the code already.
5304
5305 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5306
5307         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5308         when using recursive g_main_loops
5309
5310         * python/_dbus.py (class Bus): add the ProxyObjectClass
5311         alias for ProxyObject to make it easier for the Twisted 
5312         networking framework to integrate dbus.
5313
5314         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5315         alias for ProxyMethod to make it easier for the Twisted 
5316         networking framework to integrate dbus. 
5317
5318 2005-05-11  Ross Burton  <ross@openedhand.com>
5319
5320         * glib/dbus-glib-tool.c: Add --prefix argument.
5321         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5322         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5323         Add prefix argument.
5324         (generate_glue): Pass prefix argument down.
5325         (dbus_binding_tool_output_glib_server): Pass prefix to
5326         glib-genmarshal.
5327         
5328 2005-05-11  Colin Walters  <walters@verbum.org>
5329
5330         * tools/dbus-send.c (append_array): New function.
5331         (append_arg): Broken out from main.
5332         (main): Add cheesy hack to send arrays and variants.
5333         (usage): Update.
5334         * tools/dbus-print-message.c (print_iter): Broken out
5335         from main.
5336
5337 2005-05-11  Colin Walters  <walters@verbum.org>
5338
5339         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5340         New function, returns signature string for signature iter.
5341         * dbus/dbus-signature.h: Prototype it.
5342         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5343         New function, returns signature string for message iter.
5344         (dbus_message_iter_get_array_len): New function, returns
5345         length of array.
5346         (dbus_message_iter_get_fixed_array): Fix assertion; this
5347         function should be used when the iter is pointing to the
5348         contents of an array
5349         * dbus/dbus-message.h: Prototypes.
5350         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5351         New function; returns length of an array.
5352         * dbus/dbus-marshal-recursive.h: Prototype it.
5353         
5354 2005-05-11  Colin Walters  <walters@verbum.org>
5355
5356         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5357         compilation error.
5358         
5359 2005-05-08  Havoc Pennington  <hp@redhat.com>
5360
5361         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5362         daemon's pid, not the parent's pid, to the file descriptor.
5363         Reported by Taj Morton.
5364
5365 2005-05-05  Havoc Pennington  <hp@redhat.com>
5366
5367         * configure.in (LT_*): add notes on how the libtool versioning
5368         works to save thinking. Increment soname to indicate protocol
5369         breakage (though really the library interface hasn't changed I
5370         guess)
5371
5372         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5373         verify the GUID received from server matches what we were
5374         expecting, if we had an expectation
5375
5376         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5377         (_dbus_auth_get_guid_from_server): new function
5378         (send_begin): parse the OK args
5379
5380         * doc/dbus-specification.xml: add GUID to the auth protocol
5381
5382 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5383
5384         * Fix my name in previous changelog ;)
5385
5386         * python/proxies.py (ProxyObject.__getattr__): add further patch
5387         from Anthony Baxter to throw an AttributeError when python 
5388         __special__ functions are called instead of marshling them over 
5389         the bus (Bug#1685 comment 3).
5390
5391 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5392
5393         * python/Makefile.am: changed to use pyexecdir for the binding
5394         shared libraries (Bug#2494)
5395
5396         * python/exceptions.py: bring exceptions over from the bindings
5397         so they can be used in applications (Bug#2036)
5398         Make all exceptions derive from DBusException
5399
5400         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5401         of classes so that print obj doesn't throw an exception (Bug #1685)
5402
5403 2005-05-03  Ross Burton  <ross@openedhand.com>
5404
5405         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5406         Return if we get an error during registration.  Set up a
5407         weak reference on object to unregister if object is destroyed.
5408         (unregister_gobject): New function.
5409         
5410 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5411
5412         * python/dbus_bindings.pyx.in: 
5413         - added new type classes for hinting to the marashaler what type 
5414         to send over the wire
5415         - added int16 and uint16 marshalers
5416         - Fixed a bug in the type constants that caused int32 to go out
5417         as uint16 over the wire
5418         * python/dbus.py: split up into different files and renamed _dbus.py
5419         * python/__init__.py, python/_util.py, python/decorators.py, 
5420         python/exceptions.py, python/proxies.py, python/services.py,
5421         python/types.py: new files split off from dbus.py
5422         * python/Makefile.am: Add new files, remove dbus.py and 
5423         install all python files to <python module dir>/dbus
5424         * python/examples/*: Added #!/usr/bin/env python to the top of
5425         every example.  Patch provided by Tatavarty Kalyan
5426
5427 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5428
5429         * NEWS: Update to 0.33
5430
5431 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5432
5433         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5434         method for doing async calls
5435         (_pending_call_notification): New C function for handling pendning call
5436         callbacks
5437         (set_notify): New method for setting pending call notification
5438         
5439         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5440         Async capabilities added to remote method calls
5441         (Sender): class removed
5442         (RemoteService): class removed
5443         (ObjectTree): class removed for now
5444         (RemoteObject): Renamed to ProxyObject
5445         (RemoteMethod): Renamed to ProxyMethod
5446         (method): Decorator added for decorating python methods as dbus methods
5447         (signal): Decorator added for decorating python methods as signal emitters
5448         (ObjectType): Metaclass added for generating introspection data and the
5449         method callback vtable
5450         (Interface): Wrapper class added to wrap objects in a dbus interface
5451         (Object): Uses ObjectType as its metaclass and exports Introspect
5452         of the org.freedesktop.DBus.Introspectable interface
5453         (ValidationException, UnknownMethodException): new exceptions
5454
5455         * python/examples/*: Modified to fit with the new bindings
5456
5457 2005-04-23  Havoc Pennington  <hp@redhat.com>
5458
5459         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5460         reported by Tony Houghton
5461
5462         * test/test-service.c (main): test
5463         dbus_connection_get_object_path_data()
5464
5465         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5466         the exact_match
5467         (_dbus_object_tree_get_user_data_unlocked): new function used by
5468         dbus_connection_get_object_path_data()
5469         (do_register): add assertion test for get_user_data_unlocked
5470         (object_tree_test_iteration): more tests
5471
5472         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5473         new function from Dan Reed to let you get the user data from 
5474         dbus_connection_register_object_path()
5475
5476 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5477
5478         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5479         in numerous places that did not account for the NULL terminator
5480         (signature_from_seed): changed the manual string copy loop to 
5481         just use strcpy instead
5482         make check should now pass
5483
5484 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5485
5486         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5487         so that it allows messages that are not signals to pass in 
5488         NULL as the interface.
5489
5490 2005-04-18  David Zeuthen  <davidz@redhat.com>
5491
5492         * glib/dbus-gmain.c (io_handler_destroy_source): 
5493         (timeout_handler_destroy_source, connection_setup_free): 
5494         Also unref the source to avoid memory leaks.
5495
5496 2005-04-13  David Zeuthen  <davidz@redhat.com>
5497
5498         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5499         more reasonable, yet still totally arbitrary, value :-). 
5500
5501 2005-04-13  David Zeuthen  <davidz@redhat.com>
5502
5503         * doc/TODO: Added an "important for 1.0" item about selinux
5504         allow/deny messages
5505
5506 2005-04-13  David Zeuthen  <davidz@redhat.com>
5507
5508         * bus/selinux.c: Add c-file-style to top of file
5509         (log_audit_callback): Don't free the data here anymore
5510         (bus_selinux_check): Don't take spid and tpid since appending
5511         that to auxdata may OOM.
5512         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5513         to the caller if we are OOM by taking an error object.
5514         (bus_selinux_allows_send): -do-
5515
5516         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5517         and bus_selinux_allows_send
5518
5519         * bus/bus.c (bus_context_check_security_policy): Pass error and
5520         pass on OOM thrown by bus_selinux_allows_send()
5521
5522         * bus/services.c (bus_registry_acquire_service): Pass error and
5523         pass on OOM thrown by bus_selinux_allows_acquire_service()
5524
5525 2005-04-13  Havoc Pennington  <hp@redhat.com>
5526
5527         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5528         message at a time to avoid monopolizing the main loop, bug 
5529         #2953 from Benjamin Otte
5530
5531 2005-04-09  Havoc Pennington  <hp@redhat.com>
5532
5533         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5534         possible overlap, fix from Daniel Reed
5535         (fixup_alignment): fix signedness warnings
5536         (_dbus_string_append_unichar): ditto
5537
5538 2005-04-09  Havoc Pennington  <hp@redhat.com>
5539
5540         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5541
5542         * glib/dbus-glib-tool.c (main): fix warning
5543
5544         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5545
5546         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5547         add a new function that can be used in simple applications that
5548         don't have a main loop and are willing to block
5549
5550 2005-04-05  David Zeuthen  <davidz@redhat.com>
5551
5552         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5553
5554         * glib/dbus-gmain.c:
5555         (io_handler_destroy_source): Remove from list of IO handlers
5556         of the ConnectionSetup object
5557         (timeout_handler_destroy_source): -do- for timeout handlers
5558         (io_handler_source_finalized): Don't remove from list since
5559         we now do that in io_handler_destroy_source(). Renamed from
5560         io_handler_source_destroyed
5561         (timeout_handler_source_destroyed): -do- for timeout handlers
5562         (connection_setup_free): It is now safe to iterate over all
5563         IO and timeout handlers as the _destroy_source removes them
5564         from the list synchronously
5565
5566 2005-03-30  Havoc Pennington  <hp@redhat.com>
5567
5568         * configure.in: change check to gtk 2.4
5569
5570         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5571         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5572         to 2.4
5573
5574 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5575
5576         * News: Update 0.32
5577
5578         * HACKING: Fixed realease instructions.  configure.in should be updated to
5579           the next release by the person who made the last release.
5580
5581 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5582
5583         * python/lvalue_cast_post_process.py - removed.  Patch has been
5584           submitted to Pyrex maintainers that fixes gcc4.0 errors
5585
5586         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5587
5588 2005-03-24  Daniel Reed  <n@ml.org>
5589
5590         * tools/Makefile.am: Make print-introspect and
5591         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5592
5593 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5594
5595         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5596
5597         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5598           had in Red Hat packages for a while but for some reason never 
5599           got merged upstream
5600           (_dbus_is_a_number): New checks if a string
5601           can be converted to a number and does the conversion if it can
5602           (_dbus_user_database_lookup): Add check to see if the given username
5603           is a udi.  This allows udi's to be used instead of usernames in the
5604           config file.
5605           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5606           is a gdi.  This allows gdi's to be used instead of groupnames in the
5607           config file.
5608
5609 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5610
5611         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5612           code so that it compiles with gcc4.0
5613
5614         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5615           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5616           results back to dbus_binding.c
5617
5618 2005-03-20  Colin Walters  <walters@verbum.org>
5619
5620         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5621
5622         * configure.in: Require GTK+ 2.6.
5623         
5624 2005-03-20  Colin Walters  <walters@verbum.org>
5625
5626         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5627
5628 2005-03-17  Tom Parker  <palfrey@tevp.net>
5629
5630         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5631         print DBUS_UID_UNSET; instead print passed username.  Also
5632         be sure to actually use gid looked up in cache.
5633         
5634         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5635         for DBUS_GID_UNSET and groupname.
5636
5637 2005-03-17  Colin Walters  <walters@verbum.org>
5638
5639         * bus/print-introspect.c: Move to tools/.
5640         * bus/run-with-tmp-session-bus.sh: Ditto.
5641         
5642         * glib/Makefile.am (dbus-glib-bindings.h): Move
5643         generation to tools/Makefile.am.
5644
5645         * test/glib/run-test.sh: Update to handle move
5646         of run-with-tmp-session-bus.sh.
5647
5648         * test/glib/test-service-glib.c: Update to handle
5649         move of dbus-glib-bindings.h.
5650
5651         * tools/print-introspect.c: Moved here
5652         from bus/, and ported to GLib bindings.
5653
5654         * tools/run-with-tmp-session-bus.sh: Moved here
5655         from bus/.
5656
5657         * tools/Makefile.am: Generate dbus-glib-bindings.h
5658         and dbus-bus-introspect.xml here.
5659
5660         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5661         Update.
5662
5663 2005-03-17  Colin Walters  <walters@verbum.org>
5664
5665         * bus/driver.c (write_args_for_direction): Use
5666         _dbus_string_get_const_data to retrieve string;
5667         _dbus_string_get_const_data_len doesn't actually return
5668         a NULL-terminated substring.
5669
5670         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5671         (main): Change to use org_freedesktop_DBus_request_name
5672         instead of using g_proxy_begin_call/end_call.
5673
5674 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5675
5676         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5677         generating the finalizer.  Fixes from Ben Maurer.
5678
5679 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5680
5681         * mono/BusDriver.cs: Update method names: ListServices
5682         becomes ListNames; GetOwner becomes GetNameOwner.
5683
5684         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5685         onto the eval stack when removing the delegate.
5686
5687 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5688
5689         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5690         LT_CURRENT.  Set it to the autoconf variable.
5691                                                                                 
5692         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5693         classes that disconnects the signal handler delegate from the
5694         service object.  Fixes a big leak of proxy objects on the
5695         client side of things.  Patch from Ben Maurer
5696         <bmaurer@ximian.com>
5697
5698 2005-03-12  Colin Walters  <walters@verbum.org>
5699
5700         * bus/driver.c (write_args_for_direction): New function,
5701         parses a type signature into arguments and outputs to
5702         XML.
5703         (bus_driver_handle_introspect): Use it instead of
5704         hardcoding XML for certain signatures.
5705         
5706         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5707         dependency on dbus-daemon.
5708
5709         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5710         argument, pass it to dbus_binding_tool_output_glib_client.
5711
5712         * glib/dbus-binding-tool-glib.c
5713         (generate_client_glue): Protect against multiple inclusion.
5714         (dbus_binding_tool_output_glib_client): Add
5715         G_BEGIN_DECLS/G_END_DECLS.
5716
5717         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5718         Change to just take iface prefix directly.
5719         (write_formal_parameters): Clarify error message.
5720         (check_supported_parameters): New function; checks to see type
5721         signatures of method parameters are supported.
5722         (generate_client_glue): Handle ignore_unsupported flag.
5723         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5724         parameter.
5725
5726         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5727         --ignore-unsupported by default until glib bindings
5728         support arrays.
5729
5730 2005-03-11  Colin Walters  <walters@verbum.org>
5731
5732         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5733         install it.
5734
5735         * bus/print-introspect.c: New file; prints introspection
5736         data for a given name and object path.
5737
5738         * bus/run-with-tmp-session-bus.sh: New file, refactored
5739         from test/glib/run-test.sh.  Creates a temporary session
5740         bus and runs another program.
5741
5742         * test/glib/run-test.sh: Refactor to invoke
5743         run-with-tmp-session-bus.sh.
5744
5745         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5746         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5747         macros instead of hardcoding.
5748
5749         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5750
5751 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5752
5753         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5754         this unref; it doesn't match up evenly in some codepaths.
5755         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5756         this evenly matches with the ref near the top of this function.
5757
5758 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5759
5760         * dbus/dbus-object-tree.c
5761         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5762         and we try to unregister a path that's not registered, still go
5763         through the process of unlocking and don't just return.
5764
5765 2005-03-09  Colin Walters  <walters@verbum.org>
5766
5767         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5768         to this are generated for client-side wrappers.  Invokes a
5769         D-BUS method and returns reply values.  
5770
5771         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5772         function; writes signature string for argument direction.
5773         (write_args_for_direction): Change to pass input values directly
5774         instead of via address, and fix indentation.
5775         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5776         make generated wrappers inlineable.
5777
5778         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5779         note about using dbus_type_is_fixed.
5780
5781         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5782         dbus/dbus-signature.c as dbus_type_is_fixed.
5783
5784         All callers updated.
5785
5786         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5787         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5788
5789         * dbus/dbus-signature.h: Prototype.
5790
5791         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5792         error printf code.
5793
5794         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5795         appropriate instead of just freeing it.
5796         (main): Free returned strings using g_free.
5797
5798         * test/glib/Makefile.am (test-service-glib-glue.h)
5799         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5800
5801         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5802         simply maps a simple D-BUS type to GType.
5803         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5804         GType.
5805         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5806         initialize the value with it.
5807         (dbus_gvalue_binding_type_from_type): Unused, delete.
5808         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5809         various types instead of unmarshalling to value data directly.
5810         Remove can_convert boolean.
5811         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5812         returning directly instead of using can_convert boolean.
5813         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5814         Stores a GValue in a pointer to a value of its corresponding C
5815         type.
5816
5817         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5818         add dbus_gvalue_store.
5819
5820 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5821
5822         Fix a bunch of lifecycle and memory management problems
5823         in the mono bindings.
5824
5825         * mono/Arguments.cs (Arguments): Implement IDisposable
5826
5827         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5828         strictly a static class.
5829
5830         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5831         delegates into this file.
5832         (Connection): Implement IDisposable.
5833         (Dispose): Disconnect the connection and set the raw connection
5834         pointer to IntPtr.Zero.
5835         (~Connection): Call Dispose().
5836         (RegisterObjectPath): Added.  Manages the registration of object
5837         paths so we can cleanly disconnect them at dispose/finalize time.
5838         (UnregisterObjectPath): Ditto.
5839         (set_RawConnection): Unregister all of the object paths when
5840         changing the underlying DBusConnection.  Add them back onto the
5841         new connection, if any.
5842
5843         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5844         more unmanaged resources anymore, so it's not necessary.  Move all
5845         the DBusObjectPathVTable stuff out of here.
5846         (Handler): Save references to our delegates so that they don't get
5847         finalized.  Call Connection.RegisterObjectPath() instead of
5848         dbus_connection_register_object_path() directly.
5849         (Message_Called): Dispose the message after we're finished with
5850         it.
5851
5852         * mono/Message.cs (Message): Implement IDisposable.
5853         (Dispose): Dispose the Arguments, and set the RawMessage to
5854         IntPtr.Zero.
5855         (SendWithReplyAndBlock): We own the ref to the reply that comes
5856         back from dbus_connection_send_with_reply_and_block() so add a
5857         comment about that and unref it after we've constructed a managed
5858         MethodReturn class around it.  Fixes a big, big leak.
5859
5860         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5861         method.
5862         (BuildSignalHandler): After we've sent the Signal message, dispose
5863         of it.
5864         (BuildMethod): Dispose of the method call and reply messages after
5865         we've sent the message and extracted the data we want from the
5866         reply.
5867
5868         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5869         anymore.
5870         (Service_FilterCalled): Dispose of the message after we're
5871         finished with it.
5872
5873 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5874
5875         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5876         After we attach our pending call to the connection, unref
5877         it.  Fixes a leak.
5878  
5879         * mono/Connection.cs (set_RawConnection): Disconnect our
5880         filter and match callbacks from the old connection and
5881         reconnect them to the new connection, if any.
5882
5883         * mono/DBusType/Array.cs: "Code" is a static member, so
5884         don't use "this" to refer to it.  Fix for stricter checking
5885         in Mono 1.1.4.
5886  
5887         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5888         object path that we pass into unmanaged code.
5889  
5890         * mono/DBusType/String.cs (Append): Don't leak the string
5891         that we pass into unmanged code.
5892
5893 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5894         * NEWS: Update for 0.31
5895
5896         * configure.in: Release 0.31
5897         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5898
5899         * qt/Makefile.am: fixed build
5900
5901         * dbus/Makefile.am: soname bump for libdbus
5902
5903         * glib/Makefile.am: soname bump for libdbus-glib
5904
5905 2005-03-05  Havoc Pennington  <hp@redhat.com>
5906
5907         * dbus/dbus-sysdeps.c:
5908         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5909         value
5910         (_dbus_generate_random_bytes_buffer): fix return value
5911
5912         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5913         checks actually work, from Tom Parker <fdo@tevp.net>
5914
5915 2005-03-01  Colin Walters  <walters@verbum.org>
5916
5917         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5918         functions copied from dbus-glib-tool.c.
5919         (main): Convert lots of error code to use them.
5920         Also add some testing for introspection bits.
5921
5922 2005-03-01  Colin Walters  <walters@verbum.org>
5923         
5924         * doc/TODO: Remove introspection signature TODO.
5925
5926 2005-02-27  Colin Walters  <walters@verbum.org>
5927
5928         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5929         Change return value to const char * instead of int so we can do
5930         full signatures.
5931         (struct PropertyInfo, struct ArgInfo): Store char *.
5932         (property_info_new, arg_info_new): Update parameters, strdup.
5933         (property_info_unref, arg_info_unref): Free.
5934
5935         * glib/dbus-gidl.h: Update prototypes.
5936
5937         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5938         (validate_signature): New function, just validates signature and
5939         sets GError.
5940         (parse_property, parse_arg): Invoke validate_signature.  Store
5941         signature instead of just type code.
5942
5943         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5944         function to return a primary type for a signature, dropping
5945         information about types in container types.
5946         (dbus_gvalue_genmarshal_name_from_type)
5947         (dbus_gvalue_binding_type_from_type)
5948         (dbus_gvalue_ctype_from_type): Update to take full signature
5949          instead of type code.
5950         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5951
5952         * glib/dbus-gvalue.h: Update prototypes for above.
5953
5954         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5955         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5956         (introspect_properties, introspect_signals, write_interface):
5957         Update to handle signatures, and remove usage of
5958         _dbus_gutils_type_to_string.
5959         (handle_introspect): Print out type codes instead of e.g. "string"
5960         in hardcoded introspection XML; also use x_AS_STRING constants
5961         instead of hardcoding in string.
5962
5963         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5964         to string.  Remove usage of _dbus_gutils_type_to_string.
5965
5966         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5967
5968         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5969         deletion.
5970         
5971         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5972         (compute_marshaller_name, generate_glue): Handle signature change
5973         to string.
5974         (write_formal_parameters, write_args_for_direction): Ditto, and
5975         remove FIXME.
5976
5977         * tools/dbus-tree-view.c (type_to_string): Delete.
5978         (info_set_func_text): Update to print full signatures.
5979
5980         * test/glib/test-service-glib.xml: Change types to new
5981         introspection format.
5982
5983 2005-02-26  Havoc Pennington  <hp@redhat.com>
5984
5985         * doc/TODO: remove the "guid" item
5986
5987         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5988         (with_bus_thread_func): use open_private
5989
5990         * dbus/dbus-connection.c (dbus_connection_open_private): new
5991         function that works like the old dbus_connection_open()
5992         (dbus_connection_open): now returns an existing connection if
5993         possible
5994
5995         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5996         through the GUID to the transport
5997
5998         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5999         GUID in hex-encoded form.
6000
6001         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6002         pass GUID argument in to the transport
6003
6004         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6005         guid argument
6006
6007         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6008
6009         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6010
6011 2005-02-25  Havoc Pennington  <hp@redhat.com>
6012
6013         * doc/dbus-specification.xml: document the GUID thing
6014
6015         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6016         globally unique ID for the server, and put a "guid=hexencoded"
6017         field in the address
6018
6019         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6020
6021         * dbus/dbus-message.c: ditto
6022
6023         * dbus/dbus-dataslot.c: ditto
6024
6025         * dbus/dbus-list.c: ditto
6026
6027         * dbus/dbus-internals.h: wait, just include
6028         dbus-threads-internal.h here
6029         
6030         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6031         use in main library
6032
6033         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6034
6035 2005-02-24  Colin Walters  <walters@verbum.org>
6036
6037         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6038
6039 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6040
6041         * glib/Makefile.am: added dbus-gobject.h to sources list
6042         so distcheck doesn't fail
6043         
6044 2005-02-24  Havoc Pennington  <hp@redhat.com>
6045
6046         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6047         you must disconnect before unref, since locking and other things
6048         are screwed up otherwise. Fix assorted other locking stuff.
6049
6050         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6051         fix compilation
6052
6053         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6054         into a private header and don't export from the library
6055
6056         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6057
6058 2005-02-24  Colin Walters  <walters@verbum.org>
6059         
6060         * dbus/dbus-signature.c: New file; implements various functions
6061         related to type signatures.  Includes an interator for parsing,
6062         validation functions.
6063         (dbus_type_is_basic): Moved here from
6064         dbus-marshal-basic.c:_dbus_type_is_basic.
6065         (dbus_type_is_container): Moved here from
6066         dbus-marshal-basic.c:_dbus_type_is_container.
6067
6068         All callers of _dbus_type_is_container and _dbus_type_is_basic
6069         updated, and include dbus-signature.h.
6070
6071         * dbus/dbus-signature.h: New file; prototypes for the above.
6072
6073         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6074         dbus-signature.h.
6075
6076         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6077         function factored out of _dbus_first_type_in_signature.
6078         (_dbus_first_type_in_signature_c_str): New function; returns first
6079         type code for a type signature character.
6080
6081         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6082         handle function moves.
6083
6084         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6085
6086         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6087         function; skips to next complete type in type signature.
6088         Implemented using previous skip_one_complete_type.  Now
6089         skip_one_complete_type just delegates to
6090         _dbus_type_signature_next.
6091
6092         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6093         to dbus-signature.c
6094         (_dbus_type_is_container): Ditto.
6095
6096         * doc/dbus-specification.xml: Update introspection sample to
6097         use real type signatures.
6098
6099         * dbus/dbus-test.h: Prototype signature test.
6100
6101         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6102         signature tests.
6103
6104         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6105
6106 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6107
6108         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6109         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6110
6111 2005-02-21  Colin Walters  <walters@verbum.org>
6112
6113         * dbus/dbus-test-main.c (main): Take optional specific test
6114         argument.
6115
6116         * dbus/dbus-test.c (run_test): New function, runs a test function
6117         with no data directory.
6118         (run_data_test): Like above, but takes data directory.
6119         (dbus_internal_do_not_use_run_tests): Take
6120         specific test argument.  Replace lots of cut n' paste code
6121         with run_test and run_data_test.
6122
6123         * dbus/dbus-test.h: Update prototype for
6124         dbus_internal_do_not_use_run_tests.
6125
6126 2005-02-20  Havoc Pennington  <hp@redhat.com>
6127
6128         Fix bugs reported by Daniel P. Berrange
6129         
6130         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6131         (protected_change_watch): new function
6132         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6133         (_dbus_server_add_watch): change to work like the
6134         dbus-connection.c equivalents; like those, probably kind of
6135         busted, but should at least mostly work for now
6136         (dbus_server_disconnect): drop the lock if we were already
6137         disconnected, patch from Daniel P. Berrange
6138
6139         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6140         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6141         same stuff
6142
6143         * doc/TODO: todo about unscrewing this mess
6144
6145 2005-02-19  Colin Walters  <walters@verbum.org>
6146
6147         * glib/dbus-binding-tool-glib.c
6148         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6149
6150         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6151         as errno.h and sys/stat.h.
6152         (lose): New function, prints error with
6153         newline and exits.
6154         (lose_gerror): Similar, but takes GError for message.
6155         (main): Add --output argument to specify output file to write to,
6156         instead of always printing to stdout.  In this mode, determine
6157         timestamps on source files to see whether any are newer than the
6158         target file.  If not, exit.  Also convert a number of error
6159         messages to use lose (since it's shorter), and switch to using
6160         g_io_channel_shutdown.
6161
6162 2005-02-19  Havoc Pennington  <hp@redhat.com>
6163
6164         * glib/dbus-gobject.c
6165         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6166
6167         * glib/dbus-glib.c: fix doxygen warnings
6168
6169         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6170         is found on an <arg>
6171
6172 2005-02-17  Colin Walters  <walters@verbum.org>
6173
6174         * glib/dbus-gobject.h: Don't export
6175         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6176         
6177         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6178         (invoke_object_method): Handle it.
6179
6180         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6181         Handle rename.
6182         
6183 2005-02-17  Colin Walters  <walters@verbum.org>
6184
6185         * bus/.cvsignore, doc/.cvsignore
6186         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6187         Update.
6188
6189 2005-02-17  Colin Walters  <walters@verbum.org>
6190         
6191         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6192         Rename to DBUS_SERVICE_DBUS.
6193         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6194         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6195         Change the value from "org.freedesktop.Local"
6196         to "org.freedesktop.DBus.Local".
6197         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6198         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6199         DBUS_INTERFACE_INTROSPECTABLE.
6200         Change the value from "org.freedesktop.Introspectable"
6201         to "org.freedesktop.DBus.Introspectable".
6202         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6203         DBUS_INTERFACE_PROPERTIES.
6204         Change the value from "org.freedesktop.Properties"
6205         to "org.freedesktop.DBus.Properties".
6206         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6207         DBUS_INTERFACE_PEER.
6208         Change the value from "org.freedesktop.Peer"
6209         to "org.freedesktop.DBus.Peer".
6210         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6211         DBUS_INTERFACE_LOCAL.
6212         Change the value from "org.freedesktop.Local"
6213         to "org.freedesktop.DBus.Local".
6214
6215         All other users of those constants have been changed.
6216
6217         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6218
6219         * glib/dbus-gobject.c (handle_introspect): Use constants.
6220
6221         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6222
6223 2005-02-17  Colin Walters  <walters@verbum.org>
6224
6225         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6226         (parse_node, parse_interface, parse_method, parse_signal)
6227         (parse_property, parse_annotation): Lose if we're currently in an
6228         annotation.
6229         (parse_annotation): New function.
6230         (parser_start_element, parser_end_element): Handle annotation.
6231         (parse_method, parse_interface): Remove support for c_name attribute,
6232         switch to annotations.
6233
6234         * glib/dbus-gidl.h (interface_info_get_binding_names)
6235         (method_info_get_binding_names)
6236         (interface_info_get_binding_name, method_info_get_binding_name)
6237         (interface_info_set_binding_name, method_info_set_binding_name):
6238         Remove.
6239         (interface_info_get_annotations, method_info_get_annotations)
6240         (interface_info_get_annotation, method_info_get_annotation)
6241         (interface_info_add_annotation, method_info_add_annotation):
6242         Prototype.
6243
6244         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6245         for "bindings".
6246         (struct MethodInfo): Ditto.
6247         Straightfoward conversion of binding methods into annotation methods
6248         as prototyped.
6249
6250         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6251
6252         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6253
6254         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6255         Use new annotation API.
6256
6257         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6258         annotation element.
6259         
6260         * doc/dbus-specification.xml: Discuss introspection annotations,
6261         include list of well-known annotations.
6262
6263         * test/glib/test-service-glib.xml: Make validate against new DTD.
6264
6265 2005-02-17  Colin Walters  <walters@verbum.org>
6266
6267         This patch is based on initial work from
6268         Paul Kuliniewicz <kuliniew@purdue.edu>.
6269
6270         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6271         initialization of GValue from dbus type to here.
6272         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6273         for the "glib-genmarshal" program from a DBus type.
6274         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6275         into the C name for it we use in the glib bindings.
6276         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6277         glib C type (not GValue).
6278         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6279
6280         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6281         from dbus-gobject.c.
6282
6283         * glib/dbus-gutils.h: Prototype it.
6284
6285         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6286         (marshal_dbus_message_to_g_marshaller): Use new shared function
6287         dbus_glib_marshal_dbus_message_to_gvalue_array.
6288
6289         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6290         Will be changed once we have annotations.
6291
6292         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6293         GStaticRWLock.  Callers updated.
6294         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6295         (string_table_next): New function for iterating over zero-terminated
6296         string value array.
6297         (string_table_lookup): New function; retrieves specific entry in
6298         array.
6299         (get_method_data): New function; look up method data in object data chunk.
6300         (object_error_domain_prefix_from_object_info)
6301         (object_error_code_from_object_info): New functions, but not implemented yet.
6302         (method_interface_from_object_info): New function; retrieve interface name.
6303         (method_name_from_object_info): New function; retrieve method name.
6304         (method_arg_info_from_object_info): New function; retrieve argument data.
6305         (arg_iterate): New function; iterates over serialized argument data.
6306         (method_dir_signature_from_object_info): New function; returns a
6307         GString holding type signature for arguments for just one
6308         direction (input or output).
6309         (method_input_signature_from_object_info)
6310         (method_output_signature_from_object_info): New functions.
6311         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6312         converts dbus message arguments into a GValue array.  Used for both
6313         signal handling and method invocation.
6314         (struct DBusGlibWriteIterfaceData): New utility structure.
6315         (write_interface): New function; generate introspection XML for
6316         an interface.
6317         (introspect_interfaces): New function; gathers all interface->methods,
6318         generates introspection XML for them.
6319         (handle_introspect): Invoke introspect_interfaces.
6320         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6321         (lookup_object_and_method): New function; examines an incoming message
6322         and attempts to match it up (via interface, method name, and argument
6323         signature) with a known object and method.
6324         (gerror_domaincode_to_dbus_error_name): New function; converts a
6325         GError domain and code into a DBus error name.  Needs GError data
6326         added to object introspection to work well.
6327         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6328         GError.
6329         (invoke_object_method): New function to invoke an object method
6330         looked up via lookup_object_and_method.  Parses the incoming
6331         message, turns it into a GValue array, then invokes the marshaller
6332         specified in the DBusGMethodInfo.  Creates a new message with
6333         either return values or error message as appropriate.
6334         (gobject_message_function): Invoke lookup_object_and_method and
6335         invoke_object_method.
6336
6337         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6338         (enum DBusBindingOutputMode): New enum for binding output modes.
6339         (pretty_print): Print binding names.
6340         (dbus_binding_tool_error_quark): GError bits.
6341         (version): Fix typo.
6342         (main): Create GIOChannel for output.  Parse new --mode argument,
6343         possible values are "pretty-print", "glib-server", "glib-client".
6344         Use mode to invoke appropriate function.
6345         
6346         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6347
6348         * glib/dbus-glib-tool.h: New header, just includes GError bits
6349         for now.
6350
6351         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6352         maps binding style to name.
6353         (struct MethodInfo): Ditto.
6354         (get_hash_keys, get_hash_key): Utility function, returns keys for
6355         a GHashTable.
6356         (interface_info_new, method_info_new): Initialize bindings.
6357         (interface_info_unref, method_info_unref): Destroy bindings.
6358         (method_info_get_binding_names, method_info_get_binding_name)
6359         (interface_info_get_binding_names, interface_info_get_binding_name):
6360         Functions for retrieving binding names.
6361         (method_info_set_binding_name, interface_info_set_binding_name):
6362         Functions for setting binding names.
6363
6364         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6365         for glib binding generation.
6366
6367         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6368         and client-side glib glue generation.
6369
6370         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6371         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6372         dbus-glib-tool.h.
6373
6374         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6375         of using GClosureMarshal directly.
6376         (struct DBusGObjectInfo): Add n_infos member.
6377
6378         * test/glib/test-service-glib.xml: New file; contains introspection data
6379         for MyTestObject used in test-service-glib.c.
6380
6381         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6382         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6383         (my_object_uppercase, my_object_many_args): New test methods.
6384         (main): Use dbus_g_object_class_install_info to include generated object
6385         info.
6386
6387         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6388         as well as client-side bindings.
6389
6390         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6391         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6392         using both the dbus_gproxy stuff directly as well as the generated bindings.
6393
6394 2005-02-15  Havoc Pennington  <hp@redhat.com>
6395
6396         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6397         complete a pending call, don't run filters first.
6398
6399         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6400         dbus_pending_call_steal_reply
6401
6402         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6403         _dbus_connection_block_pending_call
6404         (dbus_pending_call_get_reply): change to steal_reply and return a
6405         ref
6406
6407         * dbus/dbus-connection.c
6408         (dbus_connection_send_with_reply_and_block): port to work in terms
6409         of DBusPendingCall
6410         (_dbus_connection_block_pending_call): replace block_for_reply
6411         with this
6412
6413 2005-02-14  Havoc Pennington  <hp@redhat.com>
6414
6415         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6416         properly handle looking up group information by name; fix 
6417         from j@bootlab.org
6418
6419 2005-02-13  Havoc Pennington  <hp@redhat.com>
6420
6421         * dbus/dbus-connection.c (dbus_connection_return_message) 
6422         (dbus_connection_borrow_message): hold dispatch lock while message
6423         is outstanding
6424         (_dbus_connection_block_for_reply): hold dispatch lock while we
6425         block for the reply, so nobody steals our reply
6426         (dbus_connection_pop_message): hold the dispatch lock while we
6427         pluck the message
6428
6429 2005-02-13  Havoc Pennington  <hp@redhat.com>
6430
6431         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6432         (_dbus_connection_release_dispatch)
6433         (_dbus_connection_acquire_io_path)
6434         (_dbus_connection_release_io_path): make the mutex and condvar
6435         control access to the "acquired" flag. Drop the connection lock
6436         while waiting on the condvar. Hopefully these are baby steps in
6437         roughly the right direction.
6438
6439 2005-02-13  Havoc Pennington  <hp@redhat.com>
6440
6441         * dbus/dbus-connection.c: use separate mutexes for the condition
6442         variables; this is some kind of baseline for sanity, but the
6443         condition variables still aren't used correctly afaict
6444
6445 2005-02-13  Havoc Pennington  <hp@redhat.com>
6446
6447         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6448         fix a double-unlock
6449
6450         * dbus/dbus-connection.c
6451         (_dbus_connection_detach_pending_call_unlocked): add this
6452
6453         Initial semi-correct pass through to fix thread locking; there are
6454         still some issues with the condition variable paths I'm pretty
6455         sure
6456         
6457         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6458         lock/unlock calls
6459
6460         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6461         rename to add _unlocked
6462         (struct DBusConnection): move "dispatch_acquired" and
6463         "io_path_acquired" to use only one bit each.
6464         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6465         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6466         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6467         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6468         (_dbus_connection_remove_timeout) 
6469         (_dbus_connection_toggle_timeout): drop lock when calling out to
6470         user functions; done in a hacky/bad way.
6471         (_dbus_connection_send_and_unlock): add a missing unlock
6472         (_dbus_connection_block_for_reply): add a missing unlock
6473
6474         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6475         drop lock in a hacky probably unsafe way to call out to user
6476         function
6477
6478 2005-02-12  Havoc Pennington  <hp@redhat.com>
6479
6480         * tools/dbus-tree-view.c (info_set_func_text): display more
6481         details on args
6482
6483         * bus/driver.c (bus_driver_handle_list_services): list the bus
6484         driver
6485
6486         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6487
6488         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6489         (method_info_get_n_args): new function
6490
6491 2005-02-12  Havoc Pennington  <hp@redhat.com>
6492
6493         * bus/driver.c (bus_driver_handle_introspect): add introspection
6494         for bus driver
6495
6496 2005-02-12  Havoc Pennington  <hp@redhat.com>
6497
6498         * bus/driver.c: put the signature of each bus driver method in the
6499         table of handlers and check it on incoming calls; this isn't
6500         really useful, but going to add introspect support in a minute.
6501
6502 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6503
6504         * mono/Connection.cs: The unpredictability of finalizers in mono
6505         prevents us from deterministically disconnecting the filters from
6506         the Service class's finalizer, so move tracking of filters and
6507         matches here.  Add API for that.
6508
6509         * mono/Service.cs: Remove the code, add code which calls the
6510         methods now on the Connection class.
6511
6512 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6513
6514         * python/dbus.py (class Sender): added to support dbus signals better
6515         (Bus::add_signal_receiver): added expand_args parameter which defaults
6516         to True.  When expand args is True the signal handler will pass the 
6517         message arguments as parameters to the signal handler.  If False
6518         revert to previous behavior where the signal handler must get the
6519         argument list from the message.  This is to help port applications
6520         like HAL that have a tendancy to send variable length argument lists.
6521         self._match_rule_to_receivers is now a dict of dicts.
6522         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6523         removing it from a list
6524         (Bus::_signal_func): change signal handlers so that interface,
6525         signal_name, service, path and message are packed into a Sender
6526         object and that is passed to the handler.  If expand_args is True
6527         extract the args list from the message and append it to the parameter
6528         list
6529         
6530         * python/dbus_bindings.pyx.in (class Signature): added to support 
6531         signiature types
6532         (MessageIter::__init__): changed iteration limit to match D-BUS
6533         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6534         STRUCT and VARIENT type support
6535         (MessageIter::python_value_to_dbus_sig): made recursive to support
6536         recursive types
6537         (MessageIter::append*): added Signature, dict, tuple 
6538         support
6539
6540         * python/examples/example-client.py: added examples of getting tuples
6541         and dicts
6542
6543         * python/examples/example-service.py: added examples of sending tuples
6544         and dicts
6545
6546         * python/examples/example-signal-recipient.py: Fixed to handle new
6547         signal callback format
6548
6549 2005-02-10  Havoc Pennington  <hp@redhat.com>
6550
6551         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6552         (call dbus_g_proxy_add_signal)
6553
6554         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6555         escape the hostname
6556         (_dbus_server_new_for_domain_socket): escape the path
6557
6558         * dbus/dbus-address.c (dbus_address_escape_value): new
6559         (dbus_address_unescape_value): new
6560         (dbus_parse_address): unescape values
6561
6562         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6563
6564         * doc/dbus-specification.xml: explain how to escape values in
6565         addresses
6566
6567 2005-02-10  Havoc Pennington  <hp@redhat.com>
6568
6569         * dbus/dbus-message-factory.c (generate_special): modify test to
6570         avoid using a non-basic dict key
6571
6572         * dbus/dbus-marshal-validate-util.c: add test for the below
6573
6574         * doc/dbus-specification.xml: require that dict keys are a basic
6575         type
6576
6577         * dbus/dbus-marshal-validate.c
6578         (_dbus_validate_signature_with_reason): require that dict key is a
6579         basic type
6580
6581 2005-02-10  Havoc Pennington  <hp@redhat.com>
6582
6583         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6584         change to be _and_unlock instead of _unlocked
6585
6586         * dbus/dbus-connection.c
6587         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6588         have no_update so we can find this bug quickly in future
6589
6590 2005-02-10  Havoc Pennington  <hp@redhat.com>
6591
6592         * dbus/dbus-message-util.c (verify_test_message): tests for string
6593         array
6594
6595         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6596         support for arrays of string/signature/path
6597
6598 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6599
6600         * dbus/dbus-connection.c
6601         (_dbus_connection_queue_received_message_link,
6602         _dbus_connection_message_sent): Add the path to
6603         the verbose output.
6604         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6605         _dbus_connection_send_preallocated_unlocked(), updated the
6606         dispatch status, and unlocks.  Fixes a bug where certain
6607         situations (like a broken pipe) could cause a Disconnect message
6608         to not be sent, tricking the bus into thinking a service was still
6609         there when the process had quit.
6610         (_dbus_connection_send_preallocated): Call
6611         _dbus_connection_send_preallocated_and_unlock().
6612         (_dbus_connection_send_and_unlock): Added.  Calls
6613         _dbus_connection_send_preallocated_and_unlock().
6614         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6615         (dbus_connection_send_with_reply): Update the dispatch status and
6616         unlock.
6617
6618         * mono/Service.cs (~Service): Added.  Removes the filter so that
6619         we don't get unmanaged code calling back into a GCed delegate.
6620         (RemoveFilter); Added.
6621
6622 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6623
6624         * dbus/dbus-message.c (dbus_message_iter_open_container):
6625         - Removed check for iterator type being an array because
6626         get_arg_type does not work with writer iterators
6627         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6628
6629 2005-02-07  Havoc Pennington  <hp@redhat.com>
6630
6631         * doc/dbus-specification.xml: some more language cleanups; add
6632         stuff about how to deal with invalid protocol and extension
6633         points; add _ to allowed chars in auth commands; add EXTENSION_
6634         auth command prefix
6635
6636 2005-02-06  Havoc Pennington  <hp@redhat.com>
6637
6638         * s/expected/required/ in a couple places for clarity
6639
6640 2005-02-07  Colin Walters  <walters@verbum.org>
6641
6642         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6643         sender or proposed_recipient.
6644
6645 2005-02-06  Havoc Pennington  <hp@redhat.com>
6646
6647         * dbus/dbus-message-factory.c (generate_special): more tests
6648
6649         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6650         array length that exceeds the maximum
6651
6652 2005-02-05  Havoc Pennington  <hp@redhat.com>
6653
6654         * dbus/dbus-message-factory.c (generate_special): more test cases,
6655         increasing coverage
6656
6657         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6658         reason why a signature was invalid
6659
6660         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6661         skip the length of the string before we look at it in validation
6662
6663         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6664         equal_substring
6665
6666         * dbus/dbus-message.c (_dbus_message_loader_new): default
6667         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6668
6669 2005-02-05  Havoc Pennington  <hp@redhat.com>
6670
6671         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6672         if the signature of a variant was empty
6673         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6674         struct with no element type)
6675
6676         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6677         mangled messages to break things
6678
6679 2005-02-04  Havoc Pennington  <hp@redhat.com>
6680
6681         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6682         g_quark_try_string() so it actually can return 0
6683         (dbus_g_proxy_connect_signal): ditto
6684
6685 2005-02-04  Havoc Pennington  <hp@redhat.com>
6686
6687         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6688         bogus warning
6689         (tristring_from_message): assert cleanly on null path/interface
6690         (should not be possible though I decided later)
6691         (dbus_g_proxy_dispose): move proxy manager unregistration here
6692         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6693         g_return_if_fail() checks
6694
6695 2005-02-04  Havoc Pennington  <hp@redhat.com>
6696
6697         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6698
6699         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6700         (with some minor changes)
6701
6702         * doc/dbus-specification.xml: add deprecated attribute to
6703         introspection format
6704
6705 2005-01-31  Havoc Pennington  <hp@redhat.com>
6706
6707         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6708         think it's sort of right
6709
6710 2005-01-30  Havoc Pennington  <hp@redhat.com>
6711
6712         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6713
6714 2005-01-30  Havoc Pennington  <hp@redhat.com>
6715
6716         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6717
6718         * autogen.sh: change to autotools 1.9
6719
6720         * glib/dbus-gproxy.c: completely change how signals work
6721         (dbus_g_proxy_add_signal): new function to specify signature of a
6722         signal
6723         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6724         and g_warning if the incoming message has the wrong signature.
6725
6726 2005-01-30  Havoc Pennington  <hp@redhat.com>
6727
6728         * tools/dbus-names-model.c (have_names_notify): fix this
6729
6730         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6731         up the string array handling a bit 
6732
6733 2005-01-30  Havoc Pennington  <hp@redhat.com>
6734
6735         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6736         (dbus_g_pending_call_cancel): new function
6737
6738         * dbus/dbus-glib.h: move GType decls for connection/message here;
6739         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6740         here, just kind of rationalizing how we handle all that
6741
6742         * tools/dbus-names-model.c: new file for a tree model listing the
6743         services on a bus
6744
6745         * tools/dbus-tree-view.c (model_new): use proper typing on the
6746         model rows
6747
6748 2005-01-30  Havoc Pennington  <hp@redhat.com>
6749
6750         * glib/dbus-gmain.c: add a custom GSource back that just checks
6751         whether the message queue has anything in it; otherwise, there are 
6752         cases where we won't see messages in the queue since there was no 
6753         IO visible to the glib main loop
6754
6755         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6756         increase default message timeout to 25 seconds
6757
6758 2005-01-30  Havoc Pennington  <hp@redhat.com>
6759
6760         * test/glib/test-profile.c (no_bus_stop_server): remove the
6761         warning about the g_warning that I just fixed
6762
6763         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6764         custom source, seems to be a lot easier to understand and work
6765         better.
6766
6767 2005-01-30  Havoc Pennington  <hp@redhat.com>
6768
6769         I think this main loop thing is conceptually broken, but here are 
6770         some band aids. I'll maybe rewrite it in a minute.
6771         
6772         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6773         custom GSource, so don't pass it in; confusing
6774         (gsource_server_finalize, gsource_connection_finalize): add
6775         finalize handlers that remove all the watches.  
6776
6777 2005-01-30  Havoc Pennington  <hp@redhat.com>
6778
6779         * glib/dbus-gobject.c (introspect_properties): fix the XML
6780         generated
6781
6782         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6783         which effectively detects the use of freed messages
6784
6785         * glib/dbus-gobject.c (handle_introspect): modify and return the
6786         reply message instead of the incoming message
6787
6788         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6789         gee, maybe it should SEND THE XML instead of just making a string
6790         and freeing it again ;-)
6791
6792         * tools/dbus-print-message.c (print_message): improve printing of
6793         messages
6794
6795         * configure.in: add debug-glib.service to the output
6796
6797 2005-01-30  Havoc Pennington  <hp@redhat.com>
6798
6799         dbus-viewer introspected and displayed the bus driver
6800         
6801         * dbus/dbus-object-tree.c 
6802         (object_tree_test_iteration): add tests for a handler registered on "/"
6803
6804         * dbus/dbus-object-tree.c
6805         (_dbus_decompose_path): fix to handle path "/" properly
6806         (run_decompose_tests): add tests for path decomposition
6807         
6808         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6809         properly
6810
6811         * glib/dbus-gobject.c (handle_introspect): fix quotes
6812
6813         * test/glib/run-test.sh: support launching the bus, then running
6814         dbus-viewer
6815
6816         * test/glib/test-service-glib.c (main): put in a trivial gobject
6817         subclass and register it on the connection
6818
6819         * bus/driver.c (bus_driver_handle_introspect): implement
6820         introspection of the bus driver service
6821
6822         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6823         identifiers, doctype decl
6824
6825         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6826         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6827         returning the service unchanged.
6828         (bus_driver_handle_message): remove old check for reply_serial in
6829         method calls, now the message type deals with that
6830         (bus_driver_handle_message): handle NULL interface
6831
6832         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6833
6834         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6835         -1 for len
6836
6837         * tools/dbus-viewer.c: add support for introspecting a service on
6838         a bus
6839
6840         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6841         (dbus_g_pending_call_unref): add
6842
6843 2005-01-29  Havoc Pennington  <hp@redhat.com>
6844
6845         * tools/dbus-tree-view.c: add support for displaying properties.
6846         (run dbus-viewer with an introspect xml file as arg, then resize
6847         the window so the tree elements show up, not sure what that is)
6848
6849         * glib/dbus-gobject.c (handle_introspect): return
6850         org.freedesktop.Properties and org.freedesktop.Introspectable
6851         interfaces when we are introspected.
6852
6853         * doc/dbus-specification.xml: allow empty interface name when 
6854         Get/Set a property
6855
6856 2005-01-29  Havoc Pennington  <hp@redhat.com>
6857
6858         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6859         though it uses glib, it could be extended for any binding in
6860         principle
6861
6862         * glib/dbus-gobject.c (gobject_message_function): change to the
6863         new way properties work
6864
6865         * dbus/dbus-protocol.h: add the new interfaces
6866
6867         * doc/dbus-specification.xml: document the introspection format,
6868         Introspectable interface, and add an org.freedesktop.Properties
6869         interface.
6870
6871         * glib/dbus-gparser.c: add support for a <property> element
6872
6873         * glib/dbus-gidl.c: add PropertyInfo
6874
6875         * glib/dbus-gobject.c (handle_introspect): put the outermost
6876         <node> outside the signal and property descriptions.
6877         (introspect_properties): export properties as <property> rather
6878         than as method calls
6879
6880 2005-01-28  Havoc Pennington  <hp@redhat.com>
6881
6882         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6883         related to authentication protocol
6884
6885 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6886
6887         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6888                 - BUS_ACTIVATION -> BUS_STARTER
6889                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6890                 - class MessageIter (__init__): Added recursion checking 
6891                 so we throw a nice error instead of just disconnecting from the
6892                 bus.
6893                 (get): Added arg_type parameter for recursion.
6894                 Removed the nil type
6895                 Added signiture type placeholder (not implemented)
6896                 Added struct type placeholder (not implemented)
6897                 Added varient type placeholder (not implemented)
6898                 Commented out dict type for now     
6899                 (get_element_type): renamed from get_array_type
6900                 (get_*): changed to use the dbus_message_iter_get_basic API
6901                 (get_*_array): removed in favor of recursive get_array method
6902                 (get_array): new recursive method which calls get to marshal
6903                 the elements of the array
6904                 (value_to_dbus_sig): New method returns the corrasponding
6905                 dbus signiture to a python value
6906                 (append): Comment out dict handling for now
6907                 Handle lists with the new recursive API
6908                 Comment out None handling for now
6909                 (append_nil): removed
6910                 (append_*): changed to use dbus_message_iter_append_basic API
6911                 (append_*_array): removed in favor of recursive append_array 
6912                 method
6913                 (__str__): Make it easier to print out recursive iterators
6914                 for debugging
6915                 - class Message (__str__): moved type inspection to the
6916                 MessageIter class' __str__ method
6917                 (get_iter): Added an append parameter wich defaults to False
6918                 If True use the new API's to create an append iterator
6919
6920         * python/dbus.py: Update to use new bindings API
6921                 - TYPE_ACTIVATION -> TYPE_STARTER
6922                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6923                 - class ActivationBus -> class StarterBus
6924                 - class RemoteObject (__call__): get an append iterator
6925                 - (_dispatch_dbus_method_call): get an append iterator
6926                 - class Object (emit_signal): get an append iterator
6927
6928         * python/examples/: Fixed up the examples to work with the new API
6929                 
6930 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6931
6932         * configure.in: Bump version up to 0.30.
6933
6934         * HACKING: Add a release item to bump the version number up after 
6935         a release.
6936
6937 2005-01-28  Havoc Pennington  <hp@redhat.com>
6938
6939         * doc/dbus-specification.xml: update to describe 16-bit types and
6940         dict entries
6941
6942         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6943         assertion
6944
6945         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6946         type
6947
6948         * dbus/dbus-marshal-recursive.c: implement
6949
6950 2005-01-27  Havoc Pennington  <hp@redhat.com>
6951
6952         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6953
6954         * configure.in: find the right type for 16 and 32 bit ints as well
6955         as 64
6956
6957         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6958         the 16-bit types so people don't have to stuff them in 32-bit or
6959         byte arrays.
6960
6961 2005-01-27  Havoc Pennington  <hp@redhat.com>
6962
6963         * dbus/dbus-message.c: byteswap the message if you init an
6964         iterator to read/write from it
6965         
6966         * dbus/dbus-marshal-byteswap.c: new file implementing 
6967         _dbus_marshal_byteswap()
6968
6969         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6970
6971 2005-01-26  Havoc Pennington  <hp@redhat.com>
6972         
6973         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6974         build, apparently - nobody noticed?)
6975         
6976 2005-01-26  Havoc Pennington  <hp@redhat.com>
6977
6978         * dbus/dbus-marshal-recursive.h: remove todo comment
6979
6980 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6981
6982         * Land the mono binding changes to conform to the new APIs.
6983
6984         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6985         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6986
6987         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6988         type code as a string.
6989         (InitAppending): Rename dbus_message_append_iter_init() to
6990         dbus_message_iter_init_append().
6991
6992         * mono/BusDriver.cs: Rename ServiceEventHandler to
6993         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6994         Rename ServiceOwnerChanged to NameOwnerChanged.
6995
6996         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6997         underlying C call.
6998
6999         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7000
7001         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7002         dbus_bus_acquire_service() to dbus_bus_request_name().
7003
7004         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7005         of Type.UnderlyingSystemType to get the correct element type for
7006         the array.
7007         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7008         dbus_message_get_{element|arg}_type() instead of
7009         dbus_message_iter_init_array_iterator().
7010         (Append): Replace dbus_message_iter_append_array() with
7011         dbus_message_iter_open_container() and
7012         dbus_message_iter_close_container().
7013
7014         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7015         types have been removed.
7016         
7017         * mono/DBusType/*.cs: Replace calls of
7018         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7019         but specify the type in the DllImport extern declaration.  Ditto
7020         for dbus_message_iter_append_[type]() ->
7021         dbus_message_iter_append_basic().
7022
7023         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7024         NameOwnerChangedHandler.
7025
7026 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7027
7028         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7029                 - get_base_service -> get_unique_name
7030                 - bus_get_base_service -> bus_get_unique_name
7031                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7032                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7033                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7034                 - bus_activate_service -> bus_start_service_by_name
7035                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7036                 - bus_acquire_service -> bus_request_name
7037                 - dbus_bus_acquire_service -> dbus_bus_request_name
7038                 - bus_service_exists -> bus_name_has_owner
7039                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7040
7041         * python/dbus.py: Rename of methods
7042                 - activate_service -> start_service_by_name
7043                 - bus_acquire_service -> bus_request_name
7044                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7045                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7046
7047         
7048 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7049
7050         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7051         signature for the method that can't be found.
7052
7053         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7054         the message has any arguments, we need to call
7055         _dbus_type_reader_get_current_type(), not
7056         _dbus_type_reader_has_next().
7057
7058 2005-01-24  Havoc Pennington  <hp@redhat.com>
7059
7060         * dbus/dbus-message-factory.c: more testing of message validation
7061
7062         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7063         header
7064
7065 2005-01-23  Havoc Pennington  <hp@redhat.com>
7066
7067         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7068         get this all working, not many tests in the framework yet though
7069
7070 2005-01-22  Havoc Pennington  <hp@redhat.com>
7071
7072         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7073         tutorial, based on work from David Wheeler.
7074
7075 2005-01-21  Havoc Pennington  <hp@redhat.com>
7076
7077         * dbus/dbus-bus.c: add more return_if_fail checks
7078
7079         * dbus/dbus-message.c (load_message): have the "no validation"
7080         mode (have to edit the code to toggle the mode for now though)
7081
7082         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7083         skips all validation; I want to use this at least for benchmark
7084         baseline, I'm not sure if it should be a publicly-available switch.
7085
7086 2005-01-21  Havoc Pennington  <hp@redhat.com>
7087
7088         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7089         toplevel doxygen group as the low-level API stuff
7090
7091         * dbus/dbus.h: note that libdbus is the low-level API
7092
7093 2005-01-20  Havoc Pennington  <hp@redhat.com>
7094
7095         * update-dbus-docs.sh: script to update docs on the web site, only
7096         works for me though. neener.
7097
7098 2005-01-20  Havoc Pennington  <hp@redhat.com>
7099
7100         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7101         code can reveal bugs in it
7102
7103 2005-01-20  Havoc Pennington  <hp@redhat.com>
7104
7105         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7106         select() version, patches from Tor Lillqvist
7107
7108 2005-01-20  Havoc Pennington  <hp@redhat.com>
7109
7110         * doc/dbus-tutorial.xml: replace > with &gt;
7111
7112         * bus/services.c (bus_registry_acquire_service): validate the name
7113         and return a better error if it's no good.
7114
7115         * doc/dbus-specification.xml: note NO_AUTO_START change
7116
7117         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7118         from AUTO_START, we're toggling the default
7119
7120         * bus/dispatch.c: adapt the tests to change of auto-start default
7121
7122 2005-01-18  Havoc Pennington  <hp@redhat.com>
7123
7124         * rename dbus-daemon-1 to dbus-daemon throughout
7125
7126 2005-01-18  Havoc Pennington  <hp@redhat.com>
7127
7128         * Throughout, grand renaming to strip out the use of "service",
7129         just say "name" instead (or "bus name" when ambiguous).  Did not
7130         change the internal code of the message bus itself, only the
7131         programmer-facing API and messages.
7132         
7133         * doc/dbus-specification.xml: further update the message bus section
7134         
7135         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7136         in error case
7137
7138 2005-01-17  Havoc Pennington  <hp@redhat.com>
7139
7140         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7141         ever
7142
7143         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7144         "invalid name character" not only non-ASCII
7145
7146         * doc/dbus-specification.xml: further update spec, message bus 
7147         parts are still out-of-date but the marshaling etc. stuff is now
7148         accurate-ish
7149
7150 2005-01-17  Havoc Pennington  <hp@redhat.com>
7151
7152         * doc/dbus-specification.xml: partially update spec
7153
7154 2005-01-17  Havoc Pennington  <hp@redhat.com>
7155
7156         * Throughout, align variant bodies according to the contained
7157         type, rather than always to 8. Should save a fair bit of space in
7158         message headers.
7159         
7160         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7161         fix handling of case where p == end
7162
7163         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7164
7165 2005-01-17  Havoc Pennington  <hp@redhat.com>
7166
7167         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7168
7169         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7170         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7171         are marshaling/unmarshaling a boolean.
7172
7173 2005-01-16  Havoc Pennington  <hp@redhat.com>
7174
7175         This is about it on what can be disabled/deleted from libdbus
7176         easily, back below 150K anyhow. Deeper cuts are more work than 
7177         just turning the code off as I've done here.
7178         
7179         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7180         signed int convenience funcs
7181
7182         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7183         verbose mode
7184
7185         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7186         things out of libdbus
7187
7188         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7189         
7190         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7191         tests-enabled-only, though it should probably be deleted)
7192
7193         * dbus/dbus-message-util.c: same stuff
7194
7195         * dbus/dbus-auth-util.c: same stuff
7196
7197 2005-01-16  Havoc Pennington  <hp@redhat.com>
7198
7199         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7200
7201         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7202         way for stripping down dbus-userdb.c stuff included in libdbus.
7203         Rename _dbus_parse_uid for consistency.
7204
7205 2005-01-16  Havoc Pennington  <hp@redhat.com>
7206
7207         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7208         name the assertion failed in
7209
7210         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7211         (_dbus_return_val_if_fail): assert that the name of the function
7212         containing the check doesn't start with '_', since we only want to 
7213         use checks on public functions
7214         
7215         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7216         checks to assertions
7217
7218         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7219         change checks to asserts for private function
7220
7221         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7222         to asserts for private function
7223
7224         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7225         broken assertion that was breaking make check
7226         (_dbus_type_reader_array_is_empty): remove this rather than fix
7227         it, was only used in assertions
7228
7229 2005-01-16  Havoc Pennington  <hp@redhat.com>
7230
7231         * test/unused-code-gc.py: hacky script to find code that's used
7232         only by the bus (not libdbus) or used only by tests or not used at
7233         all. It has some false alarms, but looks like we can clean up a
7234         lot of size from libdbus.
7235
7236         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7237         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7238         
7239 2005-01-16  Havoc Pennington  <hp@redhat.com>
7240
7241         * Add and fix docs according to Doxygen warnings throughout
7242         source.
7243         
7244         * dbus/dbus-marshal-recursive.c
7245         (_dbus_type_reader_array_is_empty): change this to just call
7246         array_reader_get_array_len() and make it static
7247
7248         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7249         from get_array_type
7250         (dbus_message_iter_init_append): rename from append_iter_init
7251
7252         * dbus/dbus-marshal-recursive.c
7253         (_dbus_type_reader_get_element_type): rename from
7254         _dbus_type_reader_get_array_type
7255
7256 2005-01-15  Havoc Pennington  <hp@redhat.com>
7257
7258         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7259
7260         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7261         when DBUS_DISABLE_ASSERT
7262         (_dbus_marshal_set_basic): be sure we align for the string length
7263
7264         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7265         this look faster
7266
7267         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7268         inline macro version
7269         (_dbus_string_set_byte): provide inline macro version
7270
7271 2005-01-15  Havoc Pennington  <hp@redhat.com>
7272
7273         * Land the new message args API and type system.
7274
7275         This patch is huge, but the public API change is not 
7276         really large. The set of D-BUS types has changed somewhat, 
7277         and the arg "getters" are more geared toward language bindings;
7278         they don't make a copy, etc.
7279
7280         There are also some known issues. See these emails for details
7281         on this huge patch:
7282         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7283         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7284         
7285         * dbus/dbus-marshal-*: all the new stuff
7286
7287         * dbus/dbus-message.c: basically rewritten
7288
7289         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7290         freed blocks to be all non-nul bytes so using freed memory is less
7291         likely to work right
7292
7293         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7294         DBUS_FAIL_MALLOC=N environment variable, so you can do
7295         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7296         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7297         thorough.
7298
7299         * qt/message.cpp: port to the new message args API
7300         (operator<<): use str.utf8() rather than str.unicode()
7301         (pretty sure this is right from the Qt docs?)
7302
7303         * glib/dbus-gvalue.c: port to the new message args API
7304
7305         * bus/dispatch.c, bus/driver.c: port to the new message args API
7306
7307         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7308         "locked" flag to TRUE and align_offset to 0; I guess we never
7309         looked at these anyhow, but seems cleaner.
7310
7311         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7312         move allocation padding macro to this header; use it to implement
7313         (_DBUS_STRING_STATIC): ability to declare a static string.
7314
7315         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7316         change to return TRUE if the interface is not set.
7317
7318         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7319         to dbus-marshal-validate.[hc]
7320
7321         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7322         dbus-internals.c
7323
7324         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7325         to dbus-marshal-*.[hc]
7326
7327         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7328         function here from dbus-marshal.c
7329
7330 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7331
7332         * NEWS: Update for 0.23.
7333
7334         * configure.in: Release 0.23.
7335
7336 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7337
7338         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7339         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7340         behind.
7341
7342         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7343         uninstall"
7344
7345         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7346         is an enum, get the enum's underlying type.  Another mono
7347         1.1.3 fix.
7348
7349 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7350
7351         Patch from Sjoerd Simons <sjoerd@luon.net>
7352
7353         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7354         DESTDIR.  It breaks stuff.
7355
7356 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7357
7358         Patch from Tambet Ingo <tambet@ximian.com>
7359
7360         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7361         calling type.GetElementType().  The code previously depended on
7362         broken Mono behavior, which was fixed in Mono 1.1.3.
7363
7364         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7365         Activator.CreateInstance() so that the class's constructor is
7366         called with the right parameters.
7367
7368 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7369
7370         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7371
7372         * dbus/dbus-connection.c
7373         (_dbus_connection_queue_received_message_link): Call
7374         _dbus_connection_remove_timeout() instead of the _locked()
7375         variant, since it's always called from
7376         _dbus_connection_handle_watch(), which handles the locking.
7377         Removed the _locked() variant since it's no longer used.
7378
7379 2005-01-03  Havoc Pennington  <hp@redhat.com>
7380
7381         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7382         return
7383         
7384 2004-12-26  Havoc Pennington  <hp@redhat.com>
7385
7386         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7387
7388 2005-01-03  Havoc Pennington  <hp@redhat.com>
7389
7390         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7391         floating point
7392
7393         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7394
7395 2005-01-02  Havoc Pennington  <hp@redhat.com>
7396
7397         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7398
7399 2005-01-01  Havoc Pennington  <hp@redhat.com>
7400
7401         * configure.in: add -Wfloat-equal
7402
7403 2005-01-01  Havoc Pennington  <hp@redhat.com>
7404
7405         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7406         for a variety of reasons '==' doesn't do this.
7407
7408 2004-12-31  Havoc Pennington  <hp@redhat.com>
7409
7410         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7411         I keep wishing I had
7412
7413 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7414
7415         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7416
7417 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7418
7419         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7420         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7421         dbus-protocol.h.  Because they are defines and not enums they are not
7422         autogenerated.
7423
7424 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7425
7426         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7427         dbus_bus_activate_service
7428
7429         * python/dbus.py (Bus.activate_service): activate a service on the
7430         bus.
7431
7432 2004-12-24  Havoc Pennington  <hp@redhat.com>
7433
7434         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7435         file format has also changed and I haven't adapted to that yet
7436         
7437         * Makefile.am: load .gcno files from latest gcc
7438
7439 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7440         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7441
7442         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7443         lowlevel binding
7444
7445         * python/dbus.py (get_unix_user): Added binding to 
7446         call dbus_bindings.bus_get_unix_user
7447
7448         * python/extract.py: Modified the proto_pat regex to
7449         handle unsigned long
7450
7451 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7452
7453         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7454         better POSIX compliance.
7455
7456 2004-12-19  Havoc Pennington  <hp@redhat.com>
7457
7458         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7459         (_dbus_string_insert_8_aligned): new functions
7460
7461         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7462
7463 2004-12-18  Havoc Pennington  <hp@redhat.com>
7464
7465         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7466         macro
7467
7468         * dbus/dbus-message.c: fix a comment, and add a still-unused
7469         not-implemented function
7470
7471         * dbus/dbus-marshal.h: fix comment
7472
7473         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7474
7475 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7476
7477         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7478         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7479         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7480         Type.UnderlyingSystemType to get the actual system type
7481         underneath.  This code previously depended on the broken Mono
7482         behavior, which was fixed in 1.1.3.
7483
7484 2004-11-27  Havoc Pennington  <hp@redhat.com>
7485
7486         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7487         are disabled
7488         (_dbus_string_get_const_data): inline when asserts are disabled
7489
7490         * dbus/dbus-message.c: record the _dbus_current_generation of
7491         creation so we can complain if dbus_shutdown() is used improperly.
7492         Do this only if checks are enabled.
7493
7494         * dbus/dbus-connection.c: ditto
7495         
7496 2004-11-26  Havoc Pennington  <hp@redhat.com>
7497
7498         * test/glib/test-profile.c: add with_bus mode to profile echoes
7499         that go through the bus.
7500
7501         * test/glib/run-test.sh: add ability to run test-profile
7502
7503         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7504         config file reload.
7505
7506 2004-11-26  Havoc Pennington  <hp@redhat.com>
7507
7508         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7509         thing was implemented
7510
7511 2004-11-26  Havoc Pennington  <hp@redhat.com>
7512
7513         * test/glib/test-profile.c: tweak a bit, add support for some
7514         made-up minimal malloc overhead with plain sockets, since in 
7515         real life some sort of buffers are unavoidable thus we could 
7516         count them in the theoretical best case
7517
7518 2004-11-26  Havoc Pennington  <hp@redhat.com>
7519
7520         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7521         where I was trying to cache one too many messages
7522
7523 2004-11-26  Havoc Pennington  <hp@redhat.com>
7524
7525         * dbus/dbus-message.c: reimplement message cache as an array which 
7526         makes the cache about twice as fast and saves maybe 1.5% overall
7527
7528 2004-11-26  Havoc Pennington  <hp@redhat.com>
7529
7530         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7531         message cache lock here
7532
7533 2004-11-26  Havoc Pennington  <hp@redhat.com>
7534
7535         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7536         the "char byte_order" next to each other to save 4 bytes
7537         (dbus_message_new_empty_header): reduce preallocation, since the
7538         message cache should achieve a similar effect
7539         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7540         message cache that keeps a few DBusMessage around in a pool,
7541         another 8% speedup or so.
7542
7543         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7544
7545 2004-11-25  Havoc Pennington  <hp@redhat.com>
7546
7547         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7548         to write, without reading or blocking, try it before the poll()
7549         and skip the poll() if nothing remains to write. This is about a
7550         3% speedup in the echo client/server
7551
7552 2004-11-25  Havoc Pennington  <hp@redhat.com>
7553
7554         The primary change here is to always write() once before adding
7555         the write watch, which gives us about a 10% performance increase.
7556         
7557         * dbus/dbus-transport-unix.c: a number of modifications to cope
7558         with removing messages_pending
7559         (check_write_watch): properly handle
7560         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7561         messages_pending stuff
7562         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7563         AUTHENTICATED cases
7564         (unix_handle_watch): after writing, see if the write watch can be
7565         removed
7566         (unix_do_iteration): assert that write_watch/read_watch are
7567         non-NULL rather than testing that they aren't, since they 
7568         aren't allowed to be NULL. check_write_watch() at the end so 
7569         we add the watch if we did not finish writing (e.g. got EAGAIN)
7570
7571         * dbus/dbus-transport-protected.h: remove messages_pending call,
7572         since it resulted in too much inefficient watch adding/removing; 
7573         instead we now require that the transport user does an iteration 
7574         after queueing outgoing messages, and after trying the first
7575         write() we add a write watch if we got EAGAIN or exceeded our 
7576         max bytes to write per iteration setting
7577
7578         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7579         function
7580
7581         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7582         freed and then accessed, valgrind flagged this bug, fix it
7583
7584         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7585         as the last valid field plus 1, where really it is equal to the
7586         last valid field. Corrects some message corruption issues.
7587
7588         * dbus/dbus-mainloop.c: verbosity changes
7589
7590         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7591         instead of aborting in one of the test codepaths
7592
7593         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7594         caused not printing the pid ever again if a verbose was missing
7595         the newline at the end
7596         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7597
7598         * dbus/dbus-connection.c: verbosity changes; 
7599         (dbus_connection_has_messages_to_send): new function
7600         (_dbus_connection_message_sent): no longer call transport->messages_pending
7601         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7602         try to write() immediately, so we can avoid the write watch. This
7603         is the core purpose of this patchset
7604         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7605         dump the outgoing message queue, so nobody will get confused
7606         trying to send them or thinking stuff is pending to be sent
7607
7608         * bus/test.c: verbosity changes
7609
7610         * bus/driver.c: verbosity/assertion changes
7611
7612         * bus/dispatch.c: a bunch of little tweaks to get it working again
7613         because this patchset changes when/where you need to block.
7614
7615 2004-11-23  Havoc Pennington  <hp@redhat.com>
7616
7617         * test/glib/test-profile.c: modify to accept a plain_sockets
7618         argument in which case it will bench plain sockets instead of
7619         libdbus, for comparison purposes.
7620
7621 2004-11-22  Havoc Pennington  <hp@redhat.com>
7622
7623         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7624         threads for more time, so sysprof can get a grip on it.
7625
7626         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7627         pointless variable
7628
7629 2004-11-13  Havoc Pennington  <hp@redhat.com>
7630
7631         * test/glib/test-profile.c: fix this thing up a bit
7632
7633         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7634         preallocation sizes by a fair bit; not sure if this will be an
7635         overall performance win or not, but it does reduce reallocs.
7636
7637         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7638         the test hack that forced constant realloc if asserts are
7639         disabled, so we can profile sanely. Sprinkle in some
7640         _DBUS_UNLIKELY() which are probably pointless, but before I
7641         noticed the real performance problem I put them in.
7642         (_dbus_string_validate_utf8): micro-optimize this thing a little
7643         bit, though callgrind says it didn't help; then special-case
7644         ascii, which did help a lot; then be sure we detect nul bytes as
7645         invalid, which is a bugfix.
7646         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7647         superstition; use memset to nul the padding instead of a manual
7648         loop.
7649         (_dbus_string_get_length): inline this as a
7650         macro; it showed up in the profile because it's used for loop
7651         tests and so forth
7652
7653 2004-11-10  Colin Walters  <walters@verbum.org>
7654
7655         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7656         for extra paranoia.
7657
7658 2004-11-09  Colin Walters  <walters@verbum.org>
7659
7660         * dbus/dbus-string.c (_dbus_string_get_length): New
7661         function, writes DBusString to C buffer.
7662
7663         * dbus/dbus-string.h: Prototype it.
7664
7665         * dbus/dbus-message.c (dbus_message_type_to_string): New
7666         function, converts message type into C string.
7667
7668         * dbus/dbus-message.h: Prototype it.
7669
7670         * bus/selinux.c (bus_selinux_check): Take source pid,
7671         target pid, and audit data.  Pass audit data to
7672         avc_has_perm.
7673         (log_audit_callback): New function, appends extra
7674         audit information.
7675         (bus_selinux_allows_acquire_service): Also take
7676         service name, add it to audit data.
7677         (bus_selinux_allows_send): Also take message
7678         type, interface, method member, error name,
7679         and destination, and add them to audit data.
7680         (log_cb): Initialize func_audit.
7681         
7682         * bus/selinux.h (bus_selinux_allows_acquire_service)
7683         (bus_selinux_allows_send): Update prototypes 
7684
7685         * bus/services.c (bus_registry_acquire_service): Pass
7686         service name to bus_selinux_allows_acquire_service.
7687
7688         * bus/bus.c (bus_context_check_security_policy): Pass
7689         additional audit data.  Move assignment of dest
7690         to its own line.
7691
7692 2004-11-07  Colin Walters  <walters@verbum.org>
7693
7694         * dbus/dbus-transport-unix.c (do_authentication): Always
7695         initialize auth_completed.
7696         
7697 2004-11-07  Colin Walters  <walters@verbum.org>
7698
7699         * bus/bus.c (load_config): Break into three
7700         separate functions: process_config_first_time_only,
7701         process_config_every_time, and process_config_postinit.
7702         (process_config_every_time): Move call of
7703         bus_registry_set_service_context_table into
7704         process_config_postinit.
7705         (process_config_postinit): New function, does
7706         any processing that needs to happen late
7707         in initialization (and also on reload).
7708         (bus_context_new): Instead of calling load_config,
7709         open config parser here and call process_config_first_time_only
7710         and process_config_every_time directly.  Later, after
7711         we have forked but before changing UID,
7712         invoke bus_selinux_full_init, and then call
7713         process_config_postinit.
7714         (bus_context_reload_config): As in bus_context_new,
7715         load parse file inside here, and call process_config_every_time
7716         and process_config_postinit.
7717
7718         * bus/services.h, bus/services.c
7719         (bus_registry_set_service_context_table): Rename
7720         from bus_registry_set_sid_table.  Take string hash from config
7721         parser, and convert them here into SIDs.
7722
7723         * bus/config-parser.c (struct BusConfigParser): Have
7724         config parser only store a mapping of service->context
7725         string.
7726         (merge_service_context_hash): New function.
7727         (merge_included): Merge context string hashes instead
7728         of using bus_selinux_id_table_union.
7729         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7730         simply create a new string hash.
7731         (bus_config_parser_unref): Unref it.
7732         (start_selinux_child): Simply insert strings into hash,
7733         don't call bus_selinux_id_table_copy_over.
7734
7735         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7736         (bus_selinux_id_table_copy_over): Delete.
7737
7738 2004-11-03  Colin Walters  <walters@verbum.org>
7739
7740         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7741         variables.
7742         
7743 2004-11-03  Colin Walters  <walters@verbum.org>
7744
7745         * bus/test-main.c (test_pre_hook): Fix test logic,
7746         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7747
7748 2004-11-02  Colin Walters  <walters@redhat.com>
7749
7750         * bus/selinux.c (bus_selinux_init): Split into two functions,
7751         bus_selinux_pre_init and bus_selinux_post_init.
7752         (bus_selinux_pre_init): Just determine whether SELinux is
7753         enabled.
7754         (bus_selinux_post_init): Do everything else.
7755
7756         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7757         config file, and bus_selinux_post_init after.  This ensures that
7758         we don't lose the policyreload notification thread that
7759         bus_selinux_init created before forking previously.
7760         
7761         * bus/test-main.c (test_pre_hook): Update for split.
7762
7763 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7764
7765         Patch from Johan Fischer <linux@fischaz.com>
7766         
7767         * mono/doc/Makefile.am (install-data-local): Added directory
7768         install for DESTDIR
7769
7770 2004-10-29  Colin Walters  <walters@redhat.com>
7771
7772         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7773         parameter for fd to write pid to.       
7774
7775         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7776         
7777         * bus/bus.c (bus_context_new): Pass print_pid_fd
7778         to _dbus_become_daemon (bug #1720)
7779
7780 2004-10-29  Colin Walters  <walters@redhat.com>
7781
7782         Patch from Ed Catmur <ed@catmur.co.uk>
7783
7784         * mono/doc/Makefile.am (install-data-local): Handle
7785         DESTDIR.
7786
7787 2004-10-29  Colin Walters  <walters@redhat.com>
7788
7789         * bus/.cvsignore, qt/.cvsignore: Update.
7790
7791 2004-10-29  Colin Walters  <walters@redhat.com>
7792
7793         Patch from Kristof Vansant <de_lupus@pandora.be>
7794
7795         * configure.in: Detect Slackware.
7796         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7797         * bus/rc.messagebus.in: New file.
7798
7799 2004-10-29  Colin Walters  <walters@redhat.com>
7800
7801         * tools/dbus-monitor.c (filter_func): Return
7802         DBUS_HANDLER_RESULT_HANDLED in filter function
7803         for now.  See:
7804         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7805
7806 2004-10-29  Colin Walters  <walters@redhat.com>
7807
7808         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7809
7810         * bus/services.c (bus_registry_acquire_service): 
7811         Correctly retrieve service name from DBusString
7812         for printing.
7813
7814 2004-10-29  Colin Walters  <walters@redhat.com>
7815
7816         * dbus/dbus-glib.h: Update documentation to not
7817         refer to internal APIs.
7818
7819 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7820
7821         * mono/Arguments.cs (GetDBusTypeConstructor):
7822         type.UnderlyingSystemType will return "System.Byte" if you do it
7823         on "byte[]", which is not what we want.  So check the type.IsArray
7824         property and use System.Array instead.
7825
7826 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7827
7828         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7829         the DBusUserInfo structure since this is passed into the function.
7830         This would cause a double free when the function that allocated
7831         the structure would try to free it when an error occured.
7832
7833         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7834         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7835         for service activation to avoid 32bit/64bit parallel install issues
7836
7837 2004-10-21  Colin Walters  <walters@verbum.org>
7838
7839         * AUTHORS: Fix my email address, the @gnu.org one
7840         has been bouncing for some time.  Also add J5.
7841         
7842 2004-10-21  Colin Walters  <walters@verbum.org>
7843
7844         * dbus/dbus-transport-unix.c (do_authentication): Return
7845         authentication status to callers.
7846         (unix_handle_watch): If we completed authentication this round,
7847         don't do another read.  Instead wait until the next iteration,
7848         after we've read any pending data in the auth buffer.
7849         (unix_do_iteration): Ditto.
7850         (unix_handle_watch): Updated for new do_authentication prototype.
7851
7852 2004-10-18  Colin Walters  <walters@verbum.org>
7853
7854         * bus/selinux.c (bus_selinux_enabled): Handle
7855         --disable-selinux case.
7856         
7857 2004-10-18  Colin Walters  <walters@verbum.org>
7858
7859         * bus/selinux.h: Add bus_selinux_enabled.
7860         
7861         * bus/selinux.c (bus_selinux_enabled): Implement it.
7862         
7863         * bus/config-parser.c (struct include): Add
7864         if_selinux_enabled member.
7865         (start_busconfig_child): Parse if_selinux_enabled
7866         attribute for include.
7867         (bus_config_parser_content): Handle it.
7868
7869         * bus/session.conf.in, bus/system.conf.in: Add
7870         inclusion of context mapping to default config files;
7871         conditional on SELinux being enabled.
7872         
7873         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7874         
7875         * test/data/invalid-config-files/badselinux-1.conf, 
7876         test/data/invalid-config-files/badselinux-2.conf:
7877         Test files for bad syntax.
7878         
7879 2004-10-17  Colin Walters  <walters@verbum.org>
7880
7881         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7882         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7883         format specifier mismatches.
7884
7885 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7886
7887         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7888         format string.
7889
7890         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7891         pointer (bug #1540, Leonardo Boiko).
7892
7893 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7894
7895         * mono/BusDriver.cs: Changed BusDriver struct to remove
7896         the ServiceCreated and ServiceDeleted events and replace them
7897         with the new ServiceOwnerChanged event.
7898
7899         * mono/example/BusListener.cs: Added a new example program,
7900         which listens for and reports any ServiceOwnerChanged events
7901         on the bus driver.
7902
7903         * mono/example/Makefile.am (DESTDIR): Build changes for the
7904         new BusListener.cs example.
7905
7906 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7907
7908         * bus/signals.c (bus_match_rule_parse): validate the components of
7909         match rules (bug #1439).
7910
7911         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7912
7913 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7914
7915         * doc/dbus-specification.xml: document ServiceOwnerChanged
7916         signal.
7917         
7918         * bus/driver.c, bus/driver.h, bus/services.c: Use
7919         ServiceOwnerChanged signal instead of ServiceCreated and
7920         ServiceDeleted.
7921         
7922         * bus/dispatch.c: update testcase for the new signal.
7923
7924 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7925
7926         Patch from Nat Friedman <nat@novell.com>
7927
7928         * mono/Makefile.am: A number of small build fixes to allow "make
7929         distcheck" to succeed.
7930
7931         * mono/example/Makefile.am: "make distcheck" fixes.
7932
7933         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7934         key in @srcdir@.
7935
7936         * test/Makefile.am: "make distcheck" fixes.
7937
7938 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7939
7940         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7941
7942         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7943
7944         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7945         messages after the first one (bug #1389).
7946         
7947         * bus/dispatch.c (check_double_hello_message): add a test case for
7948         the double hello message bug.
7949         (check_existent_service_activation): fix check of spawning error.
7950         
7951 2004-09-16  David Zeuthen  <david@fubar.dk>
7952
7953         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7954
7955 2004-09-12  David Zeuthen  <david@fubar.dk>
7956
7957         Patch from Kay Sievers <kay.sievers@vrfy.org>
7958
7959         * bus/bus.c (bus_context_new):
7960         * bus/bus.h:
7961         * bus/main.c (usage)
7962         (main):
7963         Add commandline option --nofork to override configuration file
7964         setting.
7965
7966 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7967
7968         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7969         compilers don't like it (bug #974).
7970
7971 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7972
7973         * qt/connection.*: Applied patch by Jérôme Lodewyck
7974         <lodewyck@clipper.ens.fr> to integrate an existing
7975         connection into the Qt eventloop
7976
7977 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7978
7979         * mono/BusDriver.cs: Added.  This is a class for interacting with
7980         the org.freedesktop.DBus service.
7981
7982         * mono/Message.cs: Added a mechanism to expose the message that is
7983         currently being dispatched via the static Message.Current
7984         property.  Added Message.Sender and Message.Destination
7985         properties.
7986
7987         * mono/Handler.cs: Expose the dispatched message via
7988         Message.Current when handling method calls.
7989
7990         * mono/Service.cs: Expose the dispatched message via
7991         Message.Current when handling signal emissions.
7992         
7993         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7994         Connection.BaseService property.
7995
7996 2004-08-28  Havoc Pennington  <hp@redhat.com>
7997
7998         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7999
8000         More fixes from Steve Grubb
8001         
8002         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8003         (_dbus_listen_tcp_socket): fix fd leak
8004
8005         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8006         EINTR to a bit lower in the code
8007
8008 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8009
8010         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8011         TRUE if we are inquiring about the existence of the built-in
8012         org.freedesktop.DBus service.
8013
8014 2004-08-25  John Palmieri  <johnp@redhat.com>
8015         * bus/config-parser.c:
8016         (struct PolicyType): Add POLICY_CONSOLE
8017         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8018         (start_busconfig_child): Sets up console element when
8019         <policy at_console=""> is encountered in a policy file
8020         (append_rule_from_element): Convert console elements to console
8021         rules.
8022
8023         * bus/policy.c: 
8024         (bus_policy_create_client_policy): Add console rules to the client
8025         policy based on if the client is at the console
8026         (bus_policy_append_console_rule): New function for adding a
8027         console rule to a policy
8028         (bus_policy_merge): Handle console rule merging
8029
8030         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8031         where we check for console user files
8032         
8033         * dbus/dbus-sysdeps.c:
8034         (_dbus_file_exists): New function which checks if the given
8035         file exists
8036         (_dbus_user_at_console): New function which does the system
8037         specific process of checking if the user is at the console
8038
8039         * dbus/dbus-userdb.c:
8040         (_dbus_is_console_user): New function converts a UID to user name
8041         and then calls the system specific _dbus_user_at_console to 
8042         see if the user is at the console and therefor a console user
8043
8044 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8045
8046         * bus/config-parser.c (set_limit):
8047         * bus/dbus-daemon-1.1.in:
8048         * test/data/valid-config-files/many-rules.conf: set the
8049         max_match_rules_per_connection limt from the config file. 
8050
8051         * doc/busconfig.dtd: update the DTD.
8052
8053         * bus/driver.c: remove some unused variables.
8054
8055 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8056
8057         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8058         it's been replaced by dbus_g_bus_get
8059
8060 2004-08-23  Colin Walters  <walters@redhat.com>
8061
8062         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8063
8064         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8065
8066         * bus/selinux.c: Create a thread for policy reload notification.
8067         (bus_selinux_get_policy_root): Implement.
8068
8069         * bus/config-parser.c (start_busconfig_child)
8070         (bus_config_parser_content): Support SELinux-root relative
8071         inclusion.
8072
8073         * configure.in <HAVE_SELINUX>: Add -lpthread.
8074         
8075         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8076         (test_post_hook): Move memory checking into here.
8077         (test_pre_hook, test_post_hook): Move SELinux checks in
8078         here, but conditional on a DBUS_TEST_SELINUX environment
8079         variable.  Unfortunately we can't run the SELinux checks
8080         as a normal user, since they won't have any permissions
8081         for /selinux.  So this will have to be tested manually
8082         for now, until we have virtualization for most of
8083         libselinux.
8084         
8085 2004-08-23  Havoc Pennington  <hp@redhat.com>
8086
8087         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8088         drop supplementary groups, suggested by Steve Grubb
8089
8090 2004-08-20  Colin Walters  <walters@redhat.com>
8091
8092         * bus/config-parser.c (start_busconfig_child): Remove some unused
8093         variables.
8094         
8095         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8096         warning.
8097
8098 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8099
8100         * configure.in: If --enable-mono is passed in, if we can't find
8101         mono error out.
8102
8103         * mono/Makefile.am: Use /gacutil to install assemblies into the
8104         GAC and not /root.
8105
8106 2004-08-12  Havoc Pennington  <hp@redhat.com>
8107
8108         * NEWS: update for 0.22
8109
8110         * configure.in: release 0.22
8111
8112 2004-08-11  Colin Walters  <walters@redhat.com>
8113
8114         * tools/dbus-send.c (main, usage): Add --reply-timeout
8115         argument.
8116
8117 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8118
8119         * bus/bus.c (process_config_first_time_only): get rid of an unused
8120         DBusError that was causing a memoy leak (bug #989).
8121
8122         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8123         fix compilation on Solaris/Forte C (bug #974)
8124
8125         * bus/main.c (main): plug two minuscule memleaks.
8126
8127 2004-08-10  Havoc Pennington  <hp@redhat.com>
8128
8129         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8130
8131 2004-08-09  Havoc Pennington  <hp@redhat.com>
8132
8133         * COPYING: switch to Academic Free License version 2.1 instead of
8134         2.0, to resolve complaints about patent termination clause.
8135
8136 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8137
8138         * README: added documentation for the --enable-python 
8139         configure switch.
8140
8141 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8142
8143         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8144         _unref in the SELinux support.
8145
8146         * doc/busconfig.dtd: update DTD for SELinux support.
8147
8148         * bus/config-loader-libxml.c: fix error handler and parser
8149         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8150
8151         * configure.in: remove the warning about libxml2.
8152
8153         * dbus/dbus-bus.c: silence doxygen warning.
8154
8155 2004-07-31  Colin Walters  <walters@redhat.com>
8156
8157         * configure.in: Move #error in SELinux check to its own line.
8158
8159 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8160
8161         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8162         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8163         dbus_error_set.
8164
8165         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8166         broken by the change in the _SET_OOM macros.
8167
8168 2004-07-31  Colin Walters  <walters@redhat.com>
8169
8170         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8171         BUS_SET_OOM.
8172
8173 2004-07-31  Colin Walters  <walters@redhat.com>
8174
8175         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8176         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8177         AC_MSG_CHECKING.
8178
8179 2004-07-24  Havoc Pennington  <hp@redhat.com>
8180
8181         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8182
8183         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8184         functionality
8185
8186         * configure.in: add --enable-selinux
8187         
8188         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8189
8190         * bus/main.c (main): initialize and shut down selinux
8191
8192         * bus/connection.c: store SELinux ID on each connection, to avoid 
8193         repeated getting of the string context and converting it into 
8194         an ID
8195
8196         * bus/bus.c (bus_context_get_policy): new accessor, though it
8197         isn't used
8198         (bus_context_check_security_policy): check whether the security
8199         context of sender connection can send to the security context of
8200         recipient connection
8201
8202         * bus/config-parser.c: add parsing for <selinux> and <associate>
8203         
8204         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8205         implement dbus_connection_get_unix_fd()
8206
8207         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8208         function, used by the selinux stuff
8209         
8210 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8211
8212         * bus/config-loader-libxml.c: complete the implementation of
8213         libxml backend for config file loader. Doesn't work with full OOM
8214         test yet. 
8215         
8216         * configure.in: change error when selecting libxml into a warning.
8217         
8218         * test/data/invalid-config-files: add two non-well-formed XML
8219         files. 
8220         
8221         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8222         
8223         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8224         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8225         be necessary to read all the buffer. (bug #894)
8226
8227         * bus/activation.c (bus_activation_activate_service): fix a
8228         potential assertion failure (bug #896). Small optimization in the
8229         case of auto-activation messages.
8230
8231         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8232         add test case for byte-through-vararg bug (#901). patch by Kimmo
8233         Hämäläinen. 
8234
8235 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8236
8237         * python/dbus.py:
8238         * python/dbus_bindings.pyx.in:
8239         Add dbus.init_gthreads (), allow emit_signal to pass
8240         arguments to the signal.
8241         
8242 2004-07-24  Havoc Pennington  <hp@redhat.com>
8243
8244         * AUTHORS: add some people, not really comprehensively, let me
8245         know if I missed you
8246
8247 2004-07-24  Havoc Pennington  <hp@redhat.com>
8248
8249         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8250         Owen
8251
8252         * test/Makefile.am (DIST_SUBDIRS): here also
8253
8254 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8255
8256         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8257         breaking build on Solaris, reported by Farhad Saberi on the ML.
8258
8259         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8260         va_arg invocation to account for integer promotion in the case of
8261         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8262
8263         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8264         _dbus_list_get_first_link, not _dbus_list_get_first.
8265
8266         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8267
8268         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8269         handler functions so that the asserts in _dbus_object_subtree_unref
8270         do not fail.
8271
8272         * dbus/dbus-transport-unix.c (do_reading):
8273         _dbus_transport_queue_messages return value is of type
8274         dbus_bool_t, not DBusDispatchStatus.
8275         
8276 2004-07-19  David Zeuthen  <david@fubar.dk>
8277
8278         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8279
8280         * bus/dispatch.c:
8281         (check_get_connection_unix_user): Debug says GetProperty; but the
8282         method is called GetConnectionUnixUser
8283         (check_get_connection_unix_process_id): New function
8284         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8285         also call check_get_connection_unix_process_id()
8286         
8287         * bus/driver.c:
8288         (bus_driver_handle_get_connection_unix_process_id): New function,
8289         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8290         interface
8291         
8292         * dbus/dbus-auth.c:
8293         (handle_server_data_external_mech): Set pid from the credentials
8294         obtained from the socket
8295         
8296         * dbus/dbus-connection.c:
8297         (dbus_connection_get_unix_process_id): New function
8298         
8299         * dbus/dbus-connection.h: 
8300         Add prototype for dbus_connection_get_unix_process_id
8301         
8302         * dbus/dbus-transport.c:
8303         (_dbus_transport_get_unix_process_id): New function
8304         
8305         * dbus/dbus-transport.h:
8306         Add prototype for _dbus_transport_get_unix_process_id
8307         
8308 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8309
8310         * dbus/dbus-message.c: Message counter fix, patch by Christian
8311         Hammond <chipx86@gnupdate.org>
8312
8313 2004-07-18  Seth Nickell  <seth@gnome.org>
8314
8315         * python/dbus.py:
8316         * python/dbus_bindings.pyx.in:
8317         * python/tests/test-client.py:
8318
8319         Add dbus.ByteArray and dbus_bindings.ByteArray
8320         types so that byte streams can be passed back.
8321
8322         Give jdahlin the heaps of credit that are so
8323         rightfully his.
8324         
8325 2004-07-12  Seth Nickell  <seth@gnome.org>
8326
8327         * python/dbus.py:
8328
8329         Add message argument to the default object_method_handler
8330         function.
8331         
8332         * python/dbus_bindings.pyx.in:
8333
8334         Automatically return NIL when passed an empty list
8335         (we can't pass back a list since lists are typed
8336         and we don't have any idea what type the the client
8337         intended the list to be... :-( )
8338         
8339 2004-07-10  Seth Nickell  <seth@gnome.org>
8340
8341         * python/examples/Makefile.am:
8342
8343         Fix distcheck breakage caused by new examples.
8344
8345 2004-07-10  Seth Nickell  <seth@gnome.org>
8346
8347         * python/dbus.py:
8348
8349         Add "message" argument to service-side dbus.Object
8350         methods. This will break existing services written
8351         using the python bindings, but will allow extraction
8352         of all the message information (e.g. who its from).
8353
8354         Add improved "object oriented" signal handling/emission.
8355         
8356         * python/examples/example-service.py:
8357
8358         Nix this example.
8359         
8360         * python/examples/example-signal-emitter.py:
8361         * python/examples/example-signal-recipient.py:
8362
8363         Two new examples that show how to emit and receive
8364         signals using the new APIs.
8365         
8366         * python/examples/example-signals.py:
8367         * python/examples/gconf-proxy-service.py:
8368         * python/examples/gconf-proxy-service2.py:
8369
8370         Add "message" argument to service methods.
8371
8372 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8373
8374         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8375         * dbus/bus.c (dbus_bus_get_unix_user)
8376         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8377         method of org.freedesktop.DBus interface.
8378
8379         * bus/dispatch.c: test case
8380
8381 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8382
8383         * python/Makefile.am: switched include directory from glib/ to dbus/
8384         since dbus-glib.h moved
8385  
8386 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8387
8388         * configure.in: prevent building the gcj stuff and libxml loader
8389         since they are broken.
8390
8391 2004-06-20  Havoc Pennington  <hp@redhat.com>
8392
8393         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8394         codes from the dbus error names
8395         
8396         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8397         as dbus/dbus-glib.h and that breakage is now visible due to 
8398         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8399         
8400         * glib/dbus-glib.h: s/gproxy/g_proxy/
8401
8402         * dbus/dbus-shared.h: new header to hold stuff shared with
8403         binding APIs
8404         
8405         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8406         than dbus-errors.h
8407
8408         * glib/dbus-glib.h (dbus_set_g_error): move to
8409         dbus-glib-lowlevel.h
8410
8411         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8412         of stuff to enable this
8413
8414         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8415
8416         * a bunch of other changes with the same basic "separate glib 
8417         bindings from dbus.h" theme
8418         
8419 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8420
8421         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8422
8423         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8424
8425 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8426
8427         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8428         the reply value of the ServiceExists message.
8429
8430 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8431
8432         * python/dbus_bindings.pyx.in: No longer need to parse path
8433         elements and pass them as arrays of strings.  The C API now
8434         accepts plain path strings.
8435         (_build_parsed_path): removed 
8436
8437 2004-06-07  Havoc Pennington  <hp@redhat.com>
8438
8439         * doc/TODO: remove auto-activation item since it's done; sort
8440         items by importance/milestone
8441
8442 2004-06-07  Havoc Pennington  <hp@redhat.com>
8443
8444         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8445         random signature when using REQUIRED_FIELDS (this hack won't work
8446         in the long term)
8447
8448         * dbus/dbus-message.c: change the signature to be a header field,
8449         instead of message->signature special-case string. Incremental
8450         step forward. Then we can fix up code to send the signature in the
8451         message, then fix up code to validate said signature, then fix up
8452         code to not put the typecodes inline, etc.
8453         (load_one_message): don't make up the signature after the fact
8454         (decode_header_data): require signature field for the known
8455         message types
8456
8457         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8458
8459         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8460
8461 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8462
8463         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8464
8465         * mono/Handler.cs: Updated to follow new path argument for
8466         (un-)registering objects.
8467
8468         * mono/example/Makefile.am:
8469         * mono/Makefile.am:
8470         * configure.in: Bumped required version for mono and use new -pkg
8471         syntax for deps
8472
8473 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8474
8475         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8476         registration functions take the path argument as char* instead of
8477         char**.
8478
8479         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8480         split off the path decompostion part of
8481         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8482         warnings. 
8483
8484         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8485         
8486 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8487  
8488         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8489         machine approach.  A state is implemented as a function that
8490         handles incoming events as specified for that state.
8491         
8492         * doc/dbus-specification.xml: Update auth protocol state machine
8493         specification to match implementation.  Remove some leftover
8494         base64 examples.
8495
8496 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8497
8498         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8499         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8500         quiet doxygen.
8501
8502         * Doxyfile.in: remove deprecated options.
8503
8504         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8505         glib/test-thread.h, glib/test-thread-client.c,
8506         glib/test-thread-server.c, glib/test-profile.c,
8507         glib/test-dbus-glib.c: remove these unused files.
8508
8509 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8510
8511         * dbus/dbus-object-tree.c
8512         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8513         non-fallback handlers (bug #684).
8514         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8515         (find_subtree_recurse): report wether the returned subtree is an
8516         exact match or a "fallback" match higher up in the tree.
8517         (object_tree_test_iteration): update test case.
8518
8519 2004-06-01  Seth Nickell  <seth@gnome.org>
8520
8521         * python/dbus_bindings.pyx.in:
8522         * python/tests/test-client.py:
8523
8524         Round off basic type support. Add dicts (yay!), and 
8525         remaining array types.
8526
8527         Make MessageIter more general so it works for dicts too.
8528
8529         Mark all loop variables as C integers.
8530         
8531 2004-05-31  Havoc Pennington  <hp@redhat.com>
8532
8533         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8534         "in" before "out"
8535
8536         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8537
8538         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8539         option that runs the tests, and start filling in some code
8540         including for starters just dumping the interfaces to stdout
8541
8542         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8543
8544         * test/data/valid-introspection-files/lots-of-types.xml: test of
8545         an example introspection file
8546
8547         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8548         "node" (I think...)
8549
8550 2004-05-31  Seth Nickell  <seth@gnome.org>
8551
8552         * python/dbus_bindings.pyx.in:
8553         * python/tests/test-client.py:
8554
8555         Test Suite: 1
8556         Python Bindings: 0
8557
8558         Fix string array memory trashing bug... oops...
8559
8560 2004-05-30  Seth Nickell  <seth@gnome.org>
8561
8562         * python/dbus.py:
8563
8564         Add a nicer-but-less-flexible alternate API for handling 
8565         calls to virtual objects in dbus.ObjectTree.
8566
8567         Screw up the argument order to the dbus.Object constructor
8568         for consistency with dbus.ObjectTree (and to make dbus_methods
8569         optional for future extension)
8570         
8571         * python/examples/Makefile.am:
8572         * python/examples/gconf-proxy-service.py:
8573         * python/examples/gconf-proxy-service2.py:
8574
8575         Alternate implementation of gconf-proxy-service using the
8576         nicer dbus.ObjectTree API.
8577         
8578         * python/examples/example-service.py:
8579         * python/tests/test-server.py
8580
8581         Reverse the argument order to deal with dbus.Object constructor
8582         changes.
8583         
8584 2004-05-30  Seth Nickell  <seth@gnome.org>
8585
8586         * python/examples/example-client.py:
8587         * python/examples/example-service.py:
8588
8589         Take it back. Lists seem to work but they're broken
8590         in the test suite. Make the base examples use
8591         lists (works fine).
8592
8593 2004-05-30  Seth Nickell  <seth@gnome.org>
8594
8595         * python/dbus_bindings.pyx.in:
8596         * python/tests/test-client.py:
8597
8598         Add some more tests and fix errors that crop up.
8599         Unfortunately, currently it seems like marshalling
8600         and unmarshalling of lists is completely broken :-(
8601
8602 2004-05-30  Seth Nickell  <seth@gnome.org>
8603
8604         * python/dbus_bindings.pyx.in:
8605
8606         Add support for ObjectPath type.
8607
8608         * python/dbus.py:
8609
8610         Refactor message handling code to a common function.
8611         
8612         * python/tests/test-client.py:
8613         * python/tests/test-server.py:
8614
8615         Add tests that check to make sure values of all types
8616         can be echoed from a service w/o mangling.
8617         
8618 2004-05-29  Seth Nickell  <seth@gnome.org>
8619
8620         * python/dbus.py:
8621
8622         Add ObjectTree class which allows implementation
8623         of trees of "virtual" objects. Basically the python
8624         wrapper for "register_fallback".
8625         
8626         * python/examples/Makefile.am
8627         * python/examples/gconf-proxy-client.py:
8628         * python/examples/gconf-proxy-service.py:
8629
8630         Implement a simple GConf proxy service that supports
8631         get/set on string and int GConf keys using the ObjectTree.
8632         
8633 2004-05-29  Seth Nickell  <seth@gnome.org>
8634
8635         * python/dbus.py:
8636         * python/examples/example-client.py:
8637         * python/examples/example-service.py:
8638         * python/examples/list-system-services.py:
8639
8640         Add SessionBus, SystemBus and ActivationBus classes
8641         so you don't need to know the special little BUS_TYPE
8642         flag.
8643         
8644 2004-05-29  Havoc Pennington  <hp@redhat.com>
8645
8646         * bus/config-parser.c (process_test_valid_subdir): temporarily
8647         stop testing config parser OOM handling, since expat has issues
8648         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8649
8650         * bus/dbus-daemon-1.1.in: change requested_reply to
8651         send_requested_reply/receive_requested_reply so we can send the
8652         replies, not just receive them.
8653
8654         * bus/config-parser.c: parse the new
8655         send_requested_reply/receive_requested_reply
8656
8657         * bus/policy.c (bus_client_policy_check_can_send): add
8658         requested_reply argument and use it
8659
8660         * bus/bus.c (bus_context_check_security_policy): pass through
8661         requested_reply status to message send check
8662
8663         * bus/system.conf.in: adapt to requested_reply change
8664         
8665 2004-05-28  Havoc Pennington  <hp@redhat.com>
8666
8667         * test/glib/test-service-glib.c (main): remove unused variable
8668
8669         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8670
8671         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8672         from the enum, no longer in use.
8673
8674         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8675         works right.
8676
8677         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8678         whether error_name passed in is a valid error name.
8679
8680 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8681
8682         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8683         OBJECT_PATH and OBJECT_PATH_ARRAY
8684
8685 2004-05-28  Seth Nickell  <seth@gnome.org>
8686
8687         * python/examples/Makefile.am:
8688
8689         Forget to add Makefile.am. Do not pass go.
8690
8691 2004-05-28  Michael Meeks  <michael@ximian.com>
8692
8693         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8694         fix no int64 case.
8695
8696         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8697
8698         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8699         (_dbus_message_iter_get_basic_type_array): impl.
8700         drastically simplify ~all relevant _get methods to use these.
8701         (_dbus_message_iter_append_basic_array),
8702         (dbus_message_iter_append_basic): impl
8703         drastically simplify ~all relevant _append methods to use these.
8704
8705         * dbus/dbus-message-builder.c (parse_basic_type) 
8706         (parse_basic_array, lookup_basic_type): impl.
8707         (_dbus_message_data_load): prune scads of duplicate /
8708         cut & paste coding.
8709
8710         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8711         (_dbus_demarshal_basic_type): implement,
8712         (demarshal_and_validate_len/arg): beef up debug.
8713         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8714
8715 2004-05-27  Seth Nickell  <seth@gnome.org>
8716
8717         * configure.in:
8718         * python/Makefile.am:
8719
8720         Include the example python apps in the tarball.
8721         
8722         * python/examples/list-system-services.py
8723
8724         Add a python new example that fetches the list of services
8725         from the system bus.
8726         
8727 2004-05-27  Seth Nickell  <seth@gnome.org>
8728
8729         * python/dbus.py:
8730         * python/dbus_bindings.pyx.in:
8731
8732         Fix failure to notify that a signal was not handled,
8733         resulted in hung functions.
8734         
8735 2004-05-25  Colin Walters  <walters@redhat.com>
8736
8737         * tools/dbus-monitor.c (main): Monitor all types of messages.
8738
8739 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8740
8741         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8742         which unregisters the object path and disposes the handler.
8743
8744 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8745  
8746         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8747          
8748         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8749         operands to && so we call dbus_message_iter_next () for the last
8750         argument also.
8751
8752 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8753
8754         * dbus/dbus-object-tree.c
8755         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8756         children even if the requested path isn't registered.
8757         (object_tree_test_iteration): test object_tree_list_registered.
8758
8759         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8760         it to 0.
8761         
8762 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8763
8764         * doc/TODO: Remove resolved items.
8765
8766         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8767         field.
8768         
8769         * bus/connection.c (bus_connections_expect_reply): Enforce the
8770         per-connection limit on pending replies.
8771         
8772         Patch from Jon Trowbridge <trow@ximian.com>:
8773  
8774         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8775         up a watch that triggers a config reload when one end of the pipe
8776         becomes readable.
8777         (signal_handler): Instead of doing the config reload in our SIGHUP
8778         handler, just write to the reload pipe and let the associated
8779         watch handle the reload when control returns to the main loop.
8780  
8781         * bus/driver.c (bus_driver_handle_reload_config): Added.
8782         Implements a ReloadConfig method for requesting a configuration
8783         file reload via the bus driver.
8784  
8785 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8786
8787         * HACKING: Updated release instructions concerning the wiki page.
8788
8789 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8790
8791         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8792         filter against auth->allowed_mechs; we only add allowed mechs in
8793         record_mechanisms().
8794  
8795         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8796         ALLOWED_MECHS to auth-script format so we can set the list of
8797         allowed mechanisms.
8798  
8799         * data/auth/client-out-of-mechanisms.auth-script: New test to
8800         check client disconnects when it is out of mechanisms to try.
8801  
8802         * dbus/dbus-auth.c (process_command): Remove check for lines
8803         longer that 1 MB; we only buffer up maximum 16 kB.
8804  
8805         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8806         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8807         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8808         assume there might be unused bytes.
8809  
8810         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8811         client-out-of-mechs, it is handled in process_reject(). Move check
8812         for max failures to send_rejected(), as it's a server-only thing.
8813
8814         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8815         send_auth(), send_data(), send_rejected(), send_error(),
8816         send_ok(), send_begin() and send_cancel().
8817
8818 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8819
8820         Remove base64 encoding, replace with hex encoding. Original patch
8821         from trow@ximian.com, added error handling.
8822
8823         * dbus/dbus-string.c (_dbus_string_base64_encode)
8824         (_dbus_string_base64_decode): Remove.
8825         (_dbus_string_hex_decode): Add end_return argument so we can
8826         distinguish between OOM and invalid hex encoding.
8827         (_dbus_string_test): Remove base64 tests and add test case for
8828         invalid hex.
8829
8830         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8831         Replace base64 with hex.
8832
8833         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8834         for invalid hex encoded data in auth protocol.
8835
8836 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8837
8838         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8839         leak.
8840
8841 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8842
8843         * mono/dbus-sharp.dll.config.in: Added for GAC
8844         * mono/dbus-sharp.snk: Added for GAC
8845         * mono/Assembly.cs.in: Added for GAC
8846         * mono/Makefile.am: Changes for GAC installation        
8847         * configure.in: Added refs for dbus-sharp.dll.config.in and
8848         Assembly.cs.in. More fixes for mono testing
8849         * mono/example/Makefile.am: Changed var to CSC
8850         * Makefile.am: Changed flag name to DBUS_USE_CSC
8851
8852 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8853
8854         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8855         * mono/doc/*: Added documentation framework
8856         * configure.in: Added monodoc check
8857         * README: Added description of mono configure flags
8858
8859 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8860
8861         * doc/dbus-specification.xml: Added a "Required" column to the 
8862         header fields table and changed the "zero or more" verbage in
8863         the above paragraph to read "The header must contain the required 
8864         named header fields and zero or more of the optional named header 
8865         fields".
8866         * test/data/invalid-messages/*.message: Added the required PATH 
8867         named header field to the tests so that they don't fail on 
8868         'Missing path field'
8869
8870 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8871
8872         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8873         the stack by implicitly defining variable and parameter types and
8874         removing the hack of defining C pointers as python objects and later
8875         casting them.
8876
8877 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8878
8879         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8880
8881 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8882
8883         * mono/DBusType/Dict.cs: Handle empty dicts
8884         * mono/DBusType/Array.cs: Handle empty arrays
8885         * mono/Arguments.cs: Handle empty arguments
8886
8887 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8888
8889         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8890         field
8891
8892 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8893
8894         * test/data/valid-messages/standard-*.message: Update message
8895         test scripts to new header field names.
8896
8897 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8898
8899         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8900         overflow to times_we_did_each_thing array which would chop off the
8901         first character of the failure_dir string. Increased the size of
8902         the array to 7 to reflect the number of random mutation functions
8903         we have.
8904
8905 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8906
8907         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8908         unix_server->watch here, it is unreffed in disconnect.
8909         (_dbus_server_new_for_tcp_socket): convert NULL host to
8910         "localhost" here so we don't append NULL to address.
8911         
8912         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8913         various addresses, including tcp with no explicit host.
8914
8915 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8916
8917         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8918         fix incorrect setting of .name_offset in the HeaderField (it was
8919         off by two bytes, positioned right after the name and typecode)
8920
8921         * bus/bus.c (bus_context_new, bus_context_unref): test before
8922         calling dbus_server_free_data_slot and _dbus_user_database_unref
8923         in case of an error.
8924
8925         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8926         by libdbus-gtool.
8927
8928 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8929
8930         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8931         _dbus_poll() instead of select().
8932
8933 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8934
8935         * bus/main.c (signal_handler): Reload the configuration files
8936         on SIGHUP.
8937         (main): Set up our SIGHUP handler.
8938
8939         * bus/bus.c (struct BusContext): Store the config file, user and
8940         fork flag in the BusContext.
8941         (process_config_first_time_only): Added.  Contains the code
8942         (previously in bus_context_new) for setting up the BusContext from
8943         the BusConfigParser that should only be run the first time the
8944         config files are read.
8945         (process_config_every_time): Added.  Contains the code (previously
8946         in bus_context_new) for setting up the BusContext from the
8947         BusConfigParser that should be run every time the config files are
8948         read.
8949         (load_config): Added.  Builds a BusConfigParser from the config
8950         files and passes the resulting structure off to
8951         process_config_first_time_only (assuming this is the first time)
8952         and process_config_every_time.
8953         (bus_context_new): All of the config-related code has been moved
8954         to process_config_first_time_only and process_config_every_time.
8955         Now this function just does the non-config-related initializations
8956         and calls load_config.
8957         (bus_context_reload_config): Added.
8958
8959 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8960
8961         * bus/driver.c (bus_driver_handle_get_service_owner):
8962         implement a GetServiceOwner method.
8963         * doc/dbus-specification.xml: document it.
8964         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8965         
8966         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8967         implement, using the bus GetServiceOwner method.
8968
8969         * test/glib/test-dbus-glib.c:
8970         use dbus_gproxy_new_for_service_owner so that we can receive the
8971         signal. 
8972
8973 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8974
8975         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8976         dbus/dbus-message.c, dbus/dbus-protocol.h
8977         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8978
8979         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8980         dbus/dbus-message.c, dbus/dbus-protocol.h
8981         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8982
8983         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8984         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8985         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8986
8987         * doc/dbus-specification.xml (Header Fields Table):
8988         s/SERVICE/DESTINATION
8989         s/SENDER_SERVICE/SENDER
8990
8991
8992 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8993
8994         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8995         a few seconds.
8996
8997 2004-04-13  Michael Meeks  <michael@ximian.com>
8998
8999         * glib/dbus-gobject.c (handle_introspect): split out
9000         (introspect_properties): this.
9001         (handle_introspect): implement this.
9002
9003         * test/glib/Makefile.am: use the absolute path so the bus
9004         daemon's chdir ("/") doesn't kill us dead.
9005
9006         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9007
9008 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9009
9010         * bus/config-parser.c (struct BusConfigParser): Added
9011         included_files field.
9012         (seen_include): Added.  Checks whether or not a file has already
9013         been included by any parent BusConfigParser.
9014         (bus_config_parser_new): Copy the parent's included_files.
9015         (include_file): Track which files have been included, and fail on
9016         circular inclusions.
9017         (process_test_valid_subdir): Changed printf to report if we are
9018         testing valid or invalid conf files.
9019         (all_are_equiv): Changed printf to be a bit clearer about
9020         what we are actually doing.
9021         (bus_config_parser_test): Test invalid configuration files.
9022
9023 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9024
9025         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9026         argument.  If non-null, the newly-constructed BusConfigParser will
9027         be initialized with the parent's BusLimits instead of the default
9028         values.
9029         (include_file): When including a config file, pass in
9030         the current parser as the parent and then copy the BusLimits
9031         from the included BusConfigParser pack to the current parser.
9032         (process_test_valid_subdir): Renamed from process_test_subdir.
9033         (process_test_equiv_subdir): Added.  Walks through a directory,
9034         descending into each subdirectory and loading the config files
9035         it finds there.  If any subdirectory contains two config files
9036         that don't produce identical BusConfigParser structs, fail.
9037         For now, the BusConfigParser's BusPolicies are not compared.
9038         (bus_config_parser_test): Call both process_test_valid_subdir and
9039         process_test_equiv_subdir.
9040
9041         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9042         argument and pass it along to the call to bus_config_parser_new.
9043         Also made a few small changes to allow this code to compile.
9044
9045         * bus/config-loader-expat.c (bus_config_load): Take a parent
9046         argument and pass it along to the call to bus_config_parser_new.
9047
9048         * bus/bus.c (bus_context_new): Load the config file
9049         with a NULL parent argument.
9050
9051 2004-03-29  Michael Meeks  <michael@ximian.com>
9052
9053         * glib/dbus-gobject.c (introspect_properties): split
9054         out, fix mangled 'while' flow control.
9055         (introspect_signals): implement.
9056         (handle_introspect): update.
9057
9058 2004-03-29  Michael Meeks  <michael@ximian.com>
9059
9060         * glib/dbus-gobject.c (set_object_property): split out / 
9061         re-work, use the property type, and not the message type(!)
9062         (get_object_property): ditto.
9063
9064         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9065         (dbus_gvalue_marshal): make this code re-usable, needed
9066         for signals too, also on both proxy and server side.
9067         Re-write for more efficiency / readability.
9068
9069 2004-03-29  Michael Meeks  <michael@ximian.com>
9070
9071         * dbus/dbus-message.c
9072         (dbus_message_new_error_printf): impl.
9073
9074         * dbus/dbus-connection.c
9075         (dbus_connection_unregister_object_path): fix warning.
9076
9077         * configure.in: fix no-mono-installed situation.
9078
9079 2004-03-27  Havoc Pennington  <hp@redhat.com>
9080
9081         Patch from Timo Teräs:
9082         
9083         * tools/dbus-send.c (main): if --print-reply, assume type is
9084         method call; support boolean type args
9085         
9086         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9087         bunch of memleak and logic bugs
9088         
9089 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9090
9091         * mono/Arguments.cs:
9092         * mono/Introspector.cs:
9093         * mono/Handler.cs:
9094         * mono/InterfaceProxy.cs:
9095         * mono/Message.cs
9096         * mono/ProxyBuilder.cs:
9097         * mono/Service.cs:
9098         Added InterfaceProxy class to avoid building proxies for every
9099         object.
9100
9101         * dbus-message.h:
9102         * dbus-message.c (dbus_message_append_args_valist)
9103         (dbus_message_iter_get_object_path)
9104         (dbus_message_iter_get_object_path_array)
9105         (dbus_message_iter_append_object_path)
9106         (dbus_message_iter_append_object_path_array):
9107         Added object_path iter functions to handle OBJECT_PATH arguments
9108         
9109 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9110
9111         First checkin of mono bindings.
9112         * configure.in:
9113         * Makefile.am:
9114         Build stuff for the bindings
9115         * dbus-sharp.pc.in: Added for pkgconfig
9116         
9117 2004-03-21  Havoc Pennington  <hp@redhat.com>
9118
9119         * test/test-service.c (main): remove debug spew
9120
9121 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9122
9123         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9124         arrays
9125
9126         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9127         (dbus_message_iter_init_array_iterator)
9128         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9129         indicate whether the iterator is empty
9130
9131         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9132         warnings
9133
9134 2004-03-19  Havoc Pennington  <hp@redhat.com>
9135
9136         * NEWS: 0.21 updates
9137
9138         * configure.in: 0.21
9139
9140         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9141         
9142         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9143         you don't need pyrex to make dist
9144
9145         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9146         sources; run moc
9147         
9148 2004-03-18  Richard Hult  <richard@imendio.com>
9149
9150         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9151         (dbus_message_set_auto_activation): Add doxygen docs.
9152
9153 2004-03-16  Richard Hult  <richard@imendio.com>
9154
9155         * bus/activation.c: (bus_activation_service_created),
9156         (bus_activation_send_pending_auto_activation_messages),
9157         (bus_activation_activate_service):
9158         * bus/activation.h:
9159         * bus/dispatch.c: (bus_dispatch),
9160         (check_nonexistent_service_auto_activation),
9161         (check_service_auto_activated),
9162         (check_segfault_service_auto_activation),
9163         (check_existent_service_auto_activation), (bus_dispatch_test):
9164         * bus/driver.c: (bus_driver_handle_activate_service):
9165         * bus/services.c: (bus_registry_acquire_service):
9166         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9167         (dbus_message_get_auto_activation):
9168         * dbus/dbus-message.h:
9169         * dbus/dbus-protocol.h: Implement auto-activation.
9170         
9171         * doc/dbus-specification.xml: Add auto-activation to the spec.
9172
9173 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9174
9175         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9176         fix a bug with CUSTOM types.
9177
9178         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9179         a unit test for this bug (used to fail).
9180
9181 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9182
9183         * bus/activation.c:
9184         (babysitter_watch_callback): notify all pending activations waiting for
9185           the same exec that the activation failed.
9186         (bus_activation_activate_service): shortcut the activation if we 
9187           already waiting for the same executable to start up.
9188
9189 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9190
9191         * bus/activation.c: 
9192         - Added service file reloading. 
9193           Each service files directory is kept in an hash table in 
9194           BusActivation and each BusActivationEntry knows what .service-file it
9195           was read from. So when you try to activate a service the bus will 
9196           check if it's been updated, removed or if new .service-files has 
9197           been installed.
9198         - Test code at the bottom for the service file reloading.
9199         * bus/test-main.c: (main):
9200         * bus/test.h:
9201         - added service reloading test.
9202         * dbus/dbus-sysdeps.c: 
9203         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9204
9205 2004-03-08  Michael Meeks  <michael@ximian.com>
9206
9207         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9208         bail immediately if disconnected, to avoid busy loop.
9209
9210         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9211         cleanup cut/paste/inefficiency.
9212
9213 2004-03-01  David Zeuthen  <david@fubar.dk>
9214
9215         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9216         bug where args were used twice. This bug resulted in a segfault
9217         on a Debian/PPC system when starting the messagebus daemon. Include
9218         dbus-sysdeps.h for DBUS_VA_COPY
9219
9220         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9221
9222         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9223         appropriate va_copy implementation. From GLib
9224         
9225 2004-02-24  Joe Shaw  <joe@ximian.com>
9226
9227         * bus/services.c (bus_registry_acquire_service): We need to pass
9228         in the service name to dbus_set_error() to prevent a crash.
9229
9230 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9231
9232         * AUTHORS: Reveal my True identity.
9233
9234 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9235
9236         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9237         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9238
9239 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9240
9241         * doc/TODO: Added not about better error check of configuration files.
9242
9243 2003-12-02  Richard Hult  <richard@imendio.com>
9244
9245         * Update AFL version to 2.0 throughout the source files to reflect
9246         the update that was done a while ago.
9247
9248 2003-12-02  Richard Hult  <richard@imendio.com>
9249
9250         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9251         wrote_dict_key to FALSE on the iter that the dict is appended to,
9252         just like when appending other types. Fixes a bug where a dict
9253         couldn't be put inside a dict.
9254         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9255         (message_iter_test, _dbus_message_test): Add test case for dict
9256         inside dict.
9257
9258 2003-12-01  David Zeuthen  <david@fubar.dk>
9259
9260         * python/dbus.py: Add the actual message when calling the reciever
9261         of a signal such that parameters can be inspected. Add the method
9262         remove_signal_receiver
9263         
9264 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9265
9266         * bus/*.[ch]:
9267         * dbus/*.[ch]:
9268         * glib/*.[ch]: Made ref functions return the pointer
9269
9270 2003-11-25  Zack Rusin  <zack@kde.org>
9271
9272         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9273
9274         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9275         wrappers,
9276
9277         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9278         the Integrator and to better fit with the server,
9279
9280 2003-11-24  Zack Rusin  <zack@kde.org>
9281
9282         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9283         the integrator handles it now
9284
9285         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9286         since QTimer wasn't really meant to be used the way DBusTimeout is
9287
9288 2003-11-24  Zack Rusin  <zack@kde.org>
9289
9290         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9291         Integrator class which integrates D-BUS with the Qt event loop,
9292
9293         * qt/connection.h, qt/connection.cpp: Move all the code which
9294         was dealing with D-BUS integration to the Integrator class,
9295         and start using Integrator,
9296
9297 2003-11-23  Zack Rusin  <zack@kde.org>
9298
9299         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9300         wrapper
9301
9302         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9303         switching namespaces to DBusQt, reworking the class,
9304
9305         * Makefile.cvs: switching dependencies so that it matches KDE 
9306         schematics,
9307         
9308         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9309         the library
9310
9311 2003-11-19  Havoc Pennington  <hp@redhat.com>
9312
9313         * NEWS: update
9314
9315         * configure.in: bump version to 0.20
9316
9317         * configure.in (have_qt): add yet another place to look for qt
9318         (someone hand trolltech a .pc file...)
9319
9320 2003-11-01  Havoc Pennington  <hp@redhat.com>
9321
9322         * doc/dbus-specification.xml: add state machine docs on the auth
9323         protocol; just a first draft, I'm sure it's wrong.      
9324
9325 2003-10-28  David Zeuthen  <david@fubar.dk>
9326
9327         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9328         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9329         
9330 2003-10-28  Havoc Pennington  <hp@redhat.com>
9331
9332         * dbus/dbus-message.c (get_next_field): delete unused function
9333
9334 2003-10-28  Havoc Pennington  <hp@redhat.com>
9335
9336         * bus/expirelist.c (do_expiration_with_current_time): detect
9337         failure of the expire_func due to OOM
9338
9339         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9340
9341         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9342         NoReply error that's now created by the bus when the service exits
9343
9344 2003-10-28  Havoc Pennington  <hp@redhat.com>
9345
9346         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9347         tests for set_path, set_interface, set_member, etc.
9348
9349         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9350
9351         * dbus/dbus-message.c (set_string_field): always just delete and
9352         re-append the field; accept NULL for deletion
9353         (re_align_fields_recurse): reimplement
9354         
9355 2003-10-26  Havoc Pennington  <hp@redhat.com>
9356
9357         * dbus/dbus-connection.c: fix docs to properly describe the
9358         disconnected message
9359         (_dbus_connection_notify_disconnected): remove this function; 
9360         we can't synchronously add the disconnected message, we have to 
9361         do it after we've queued any remaining real messages
9362         (_dbus_connection_get_dispatch_status_unlocked): queue the
9363         disconnect message only if the transport has finished queueing all
9364         its real messages and is disconnected.
9365         (dbus_connection_disconnect): update the dispatch status here
9366
9367 2003-10-22  Havoc Pennington  <hp@redhat.com>
9368
9369         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9370
9371         * bus/connection.c (bus_transaction_send_from_driver): set the
9372         destination to the connection's base service
9373
9374 2003-10-20  Havoc Pennington  <hp@redhat.com>
9375
9376         hmm, make check is currently not passing.
9377         
9378         * doc/dbus-specification.xml: add requirement that custom type
9379         names follow the same rules as interface names.
9380
9381         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9382         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9383         'map'
9384
9385         * doc/dbus-specification.xml: update type codes to match
9386         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9387         CUSTOM. Add type OBJECT_PATH to the spec.
9388
9389 2003-10-17  Havoc Pennington  <hp@redhat.com>
9390
9391         * bus/driver.c (create_unique_client_name): use "." as separator
9392         in base service names instead of '-'
9393
9394         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9395         byte at the end of the string
9396
9397         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9398         optimization macros since string validation seems to be a slow
9399         point.
9400         
9401         * doc/dbus-specification.xml: restrict valid
9402         service/interface/member/error names. Add test suite code for the
9403         name validation.
9404
9405         * dbus/dbus-string.c: limit service/interface/member/error names 
9406         to [0-9][A-Z][a-z]_
9407
9408         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9409         format arg to verbose spew
9410
9411         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9412         memory, return instead of g_error
9413
9414         * test/test-service.c (path_message_func): support emitting a
9415         signal on request
9416
9417         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9418         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9419         assuming the activation bus was the session bus so that services
9420         started manually will still register.
9421         (init_connections_unlocked): fix so that in OOM situation we get
9422         the same semantics when retrying the function
9423         
9424         * test/test-service.c (main): change to use path registration, to
9425         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9426         than DBUS_BUS_SESSION
9427
9428 2003-10-16  Havoc Pennington  <hp@redhat.com>
9429
9430         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9431
9432         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9433         coverage of the tests
9434         (coverage-report.txt): don't move the .da and .bbg files around
9435
9436 2003-10-16  Havoc Pennington  <hp@redhat.com>
9437
9438         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9439         to put there
9440
9441 2003-10-16  Havoc Pennington  <hp@redhat.com>
9442
9443         * bus/connection.c (bus_pending_reply_expired): either cancel or
9444         execute, not both
9445         (bus_connections_check_reply): use unlink, not remove_link, as we
9446         don't want to free the link; fixes double free mess
9447
9448         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9449         where no reply was received
9450
9451         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9452         fix a refcount leak
9453
9454         * bus/signals.c (match_rule_matches): add special cases for the
9455         bus driver, so you can match on sender/destination for it.
9456
9457         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9458         DBUS_PRINT_BACKTRACE is set
9459
9460         * dbus/dbus-internals.c: add pid to assertion failure messages
9461
9462         * dbus/dbus-connection.c: add message type code to the debug spew
9463
9464         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9465         sender=foo not service=foo
9466
9467         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9468         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9469         DBUS_ACTIVATION_ADDRESS instead
9470
9471         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9472         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9473
9474         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9475         context struct
9476
9477         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9478         (dbus_message_iter_get_object_path_array): new function (half
9479         finished, disabled for the moment)
9480         
9481         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9482         DBUS_MESSAGE_TYPE_ERROR
9483
9484         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9485         avoid redirecting stderr to /dev/null
9486         (babysit): close stdin if not doing the "exit_with_session" thing
9487
9488         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9489         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9490         stdout/stdin, so things don't get confused
9491         
9492         * bus/system.conf.in: fix to allow replies, I modified .conf
9493         instead of .conf.in again.
9494
9495 2003-10-14  David Zeuthen  <david@fubar.dk>
9496
9497         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9498         argtype to arg_type when raising unknown arg type exception.
9499         Changed type list to reflect the changes in dbus-protocol.h so 
9500         the bindings actually work.
9501
9502 2003-10-14  Havoc Pennington  <hp@redhat.com>
9503
9504         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9505         to have a bug keeping it from outputting the .da files sometimes
9506         (string_get_string): don't append garbage nul bytes to the string.
9507
9508 2003-10-15  Seth Nickell  <seth@gnome.org>
9509
9510         * python/Makefile.am:
9511
9512         Include dbus_h_wrapper.h in the dist tarball.
9513
9514 2003-10-14  Havoc Pennington  <hp@redhat.com>
9515
9516         * bus/bus.c (bus_context_check_security_policy): revamp this to
9517         work more sanely with new policy-based requested reply setup
9518
9519         * bus/connection.c (bus_transaction_send_from_driver): set bus
9520         driver messages as no reply
9521
9522         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9523         requested_reply attribute on allow/deny rules
9524
9525         * bus/system.conf: add <allow requested_reply="true"/>
9526
9527         * bus/driver.c (bus_driver_handle_message): fix check for replies
9528         sent to the bus driver, which was backward. How did this ever work
9529         at all though? I think I'm missing something.
9530
9531         * dbus/dbus-message.c (decode_header_data): require error and
9532         method return messages to have a reply serial field to be valid
9533         (_dbus_message_loader_queue_messages): break up this function;
9534         validate that reply serial and plain serial are nonzero; 
9535         clean up the OOM/error handling.
9536         (get_uint_field): don't return -1 from this
9537         (dbus_message_create_header): fix signed/unsigned bug
9538
9539         * bus/connection.c (bus_connections_expect_reply): save serial of
9540         the incoming message, not reply serial
9541
9542 2003-10-14  Havoc Pennington  <hp@redhat.com>
9543
9544         * bus/connection.c: implement pending reply tracking using
9545         BusExpireList
9546
9547         * bus/bus.c (bus_context_check_security_policy): verify that a
9548         reply is pending in order to allow a reply to be sent. Deny 
9549         messages of unknown type.
9550
9551         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9552
9553         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9554         (bus_context_get_reply_timeout): new
9555
9556 2003-10-13  Seth Nickell  <seth@gnome.org>
9557
9558         * python/Makefile.am:
9559
9560         Pass "make distcheck": remove a couple files from DIST_FILES
9561         that weren't included in the final version.
9562
9563 2003-10-12  Havoc Pennington  <hp@pobox.com>
9564
9565         Added test code that 1) starts an actual bus daemon and 2) uses
9566         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9567         more testing possible, but this is the basic framework.
9568         
9569         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9570         empty proxy lists from the proxy list hash
9571
9572         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9573         couple of return_if_fail checks
9574
9575         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9576         to allocate, so everything is cleared to NULL as it should be.
9577
9578         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9579         source as data to dbus_connection_set_timeout_functions() as the 
9580         timeout functions expected
9581
9582         * test/glib/run-test.sh: add a little script to start up a message
9583         bus and run tests using it
9584
9585         * tools/dbus-launch.1: updates
9586
9587         * tools/dbus-launch.c (main): add --config-file option
9588
9589         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9590         that could never be reached.
9591
9592         * dbus/dbus-message.c (dbus_message_new_method_return) 
9593         (dbus_message_new_error, dbus_message_new_signal): set the
9594         no-reply-expected flag on all these. Redundant, but may
9595         as well be consistent.
9596
9597 2003-10-11  Havoc Pennington  <hp@pobox.com>
9598
9599         * test/decode-gcov.c (function_solve_graph): make broken block
9600         graph a nonfatal error since it seems to be broken. Need to debug
9601         this.
9602
9603         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9604         can't just check type > INVALID < LAST anymore
9605
9606         * dbus/dbus-message.c (dbus_message_get_signature): new function
9607         (dbus_message_has_signature): new function
9608         (struct DBusMessage): add signature field (right now it isn't sent
9609         over the wire, just generated on the fly)
9610         (dbus_message_copy): copy the signature, and init strings to
9611         proper length to avoid some reallocs
9612         (dbus_message_iter_init_array_iterator): return void, since it
9613         can't fail
9614         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9615         (_dbus_message_loader_queue_messages): add silly temporary hack to
9616         fill in message->signature on load
9617
9618         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9619         characters, so they are relatively human-readable.
9620
9621 2003-10-11  Havoc Pennington  <hp@pobox.com>
9622
9623         * dbus/dbus-message.c (_dbus_message_test): add more test
9624         coverage, but #if 0 for now since they uncover a bug 
9625         not fixed yet; I think in re_align_field_recurse()
9626         (re_align_field_recurse): add FIXME about broken assertion
9627
9628         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9629
9630         * bus/connection.c: share a couple code bits with expirelist.c
9631
9632         * bus/expirelist.h, bus/expirelist.c: implement a generic
9633         expire-items-after-N-seconds facility, was going to share between
9634         expiring connections and replies, decided not to use for expiring
9635         connections for now.
9636
9637         * COPYING: include AFL 2.0 (still need to change all the file headers)
9638
9639 2003-10-09  Havoc Pennington  <hp@redhat.com>
9640
9641         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9642         gcc 3.3. Not that we do anything about it yet.
9643
9644         * bus/signals.c (bus_match_rule_parse): impose max length on the
9645         match rule text
9646
9647         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9648
9649 2003-10-09  Havoc Pennington  <hp@redhat.com>
9650
9651         Make matching rules theoretically work (add parser).
9652         
9653         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9654         the case where destination is explicitly specified as bus driver
9655         and someone else is eavesdropping.
9656         
9657         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9658         definition of eavesdropping and assertion
9659
9660         * tools/dbus-send.c (main): use dbus_message_type_from_string
9661
9662         * bus/signals.c (bus_match_rule_parse): implement
9663
9664         * dbus/dbus-message.c (dbus_message_type_from_string): new
9665
9666         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9667
9668 2003-10-02  Havoc Pennington  <hp@pobox.com>
9669
9670         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9671         dbus_gproxy_oneway_call
9672
9673         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9674         (dbus_server_setup_with_g_main): fix to allow calling them more
9675         than once on the same args
9676         (dbus_bus_get_with_g_main): new function
9677
9678 2003-10-02  Havoc Pennington  <hp@redhat.com>
9679
9680         * doc/dbus-tutorial.xml: write some stuff
9681
9682 2003-09-29  Havoc Pennington  <hp@pobox.com>
9683
9684         * configure.in: split checks for Doxygen from XML docs, check for
9685         xmlto
9686
9687         * doc/Makefile.am: XML-ify all the docs, and add a blank
9688         dbus-tutorial.xml
9689
9690 2003-09-29  Havoc Pennington  <hp@pobox.com>
9691
9692         * Merge dbus-object-names branch. To see the entire patch 
9693         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9694         it's huuuuge though.
9695         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9696         
9697 2003-09-28  Havoc Pennington  <hp@pobox.com>
9698
9699         * HACKING: update to reflect new server
9700
9701 2003-09-26  Seth Nickell  <seth@gnome.org>
9702
9703         * python/dbus.py:
9704         * python/examples/example-signals.py:
9705
9706         Start implementing some notions of signals. The API
9707         is really terrible, but they sort of work (with the
9708         exception of being able to filter by service, and to
9709         transmit signals *as* a particular service). Need to
9710         figure out how to make messages come from the service
9711         we registered :-(
9712         
9713         * python/dbus_bindings.pyx.in:
9714
9715         Removed duplicate message_handler callbacks.
9716         
9717 2003-09-25  Havoc Pennington  <hp@redhat.com>
9718
9719         * bus/session.conf.in: fix my mess
9720
9721 2003-09-25  Havoc Pennington  <hp@pobox.com>
9722
9723         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9724
9725 2003-09-25  Seth Nickell  <seth@gnome.org>
9726
9727         * python/examples/example-service.py:
9728
9729         Johan notices complete wrong code in example-service, but
9730         completely wrong in a way that works exactly the same (!).
9731         Johan is confused, how could this possibly work? Example
9732         code fails to serve purpose of making things clear.
9733         Seth fixes.
9734
9735 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9736
9737         * doc/dbus-specification.sgml: don't require header fields
9738         to be 4-byte aligned and specify that fields should be
9739         distinguished from padding by the fact that zero is not
9740         a valid field name.
9741         
9742         * doc/TODO: remove re-alignment item and add item to doc
9743         the OBJECT_PATH type.
9744         
9745         * dbus/dbus-message.c:
9746         (HeaderField): rename the original member to value_offset
9747         and introduce a name_offset member to keep track of where
9748         the field actually begins.
9749         (adjust_field_offsets): remove.
9750         (append_int_field), (append_uint_field),
9751         (append_string_field): don't align the start of the header
9752         field to a 4-byte boundary.
9753         (get_next_field): impl finding the next marhsalled field
9754         after a given field.
9755         (re_align_field_recurse): impl re-aligning a number of
9756         already marshalled fields.
9757         (delete_field): impl deleting a field of any type and
9758         re-aligning any following fields.
9759         (delete_int_or_uint_field), (delete_string_field): remove.
9760         (set_int_field), (set_uint_field): no need to re-check
9761         that we have the correct type for the field.
9762         (set_string_field): ditto and impl re-aligning any
9763         following fields.
9764         (decode_header_data): update to take into account that
9765         the fields aren't 4-byte aligned any more and the new
9766         way to distinguish padding from header fields. Also,
9767         don't exit when there is too much header padding.
9768         (process_test_subdir): print the directory.
9769         (_dbus_message_test): add test to make sure a following
9770         field is re-aligned correctly after field deletion.
9771         
9772         * dbus/dbus-string.[ch]:
9773         (_dbus_string_insert_bytes): rename from insert_byte and
9774         allow the insert of multiple bytes.
9775         (_dbus_string_test): test inserting multiple bytes.
9776
9777         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9778         warning note to docs about having to re-align any
9779         marshalled values following the string.
9780         
9781         * dbus/dbus-message-builder.c:
9782         (append_string_field), (_dbus_message_data_load):
9783         don't align the header field.
9784         
9785         * dbus/dbus-auth.c: (process_test_subdir): print the
9786         directory.
9787         
9788         * test/break-loader.c: (randomly_add_one_byte): upd. for
9789         insert_byte change.
9790         
9791         * test/data/invalid-messages/bad-header-field-alignment.message:
9792         new test case.
9793         
9794         * test/data/valid-messages/unknown-header-field.message: shove
9795         a dict in the unknown field.
9796
9797 2003-09-25  Seth Nickell  <seth@gnome.org>
9798
9799         * python/dbus.py:
9800         * python/dbus_bindings.pyx.in:
9801
9802         Handle return values.
9803         
9804         * python/examples/example-client.py:
9805         * python/examples/example-service.py:
9806
9807         Pass back return values from the service to the client.
9808         
9809 2003-09-24  Seth Nickell  <seth@gnome.org>
9810
9811         * python/dbus.py:
9812
9813         Connect Object methods (when you are sharing an object) up... pass
9814         in a list of methods to be shared. Sharing all the methods just
9815         worked out too weird. You can now create nice Services over the
9816         DBus in Python. :-)
9817         
9818         * python/dbus_bindings.pyx.in:
9819
9820         Keep references to user_data tuples passed into C functions so 
9821         Python doesn't garbage collect on us.
9822
9823         Implement MethodReturn and Error subclasses of Message for creating
9824         DBusMessage's of those types.
9825         
9826         * python/examples/example-client.py:
9827         * python/examples/example-service.py:
9828
9829         Simple example code showing both how create DBus services and objects,
9830         and how to use them.
9831
9832 2003-09-23  Havoc Pennington  <hp@pobox.com>
9833
9834         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9835
9836 2003-09-23  Havoc Pennington  <hp@redhat.com>
9837
9838         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9839         (dbus_gproxy_disconnect_signal): implement
9840         (dbus_gproxy_manager_remove_signal_match): implement
9841         (dbus_gproxy_manager_add_signal_match): implement
9842         (dbus_gproxy_oneway_call): implement
9843
9844 2003-09-23  Havoc Pennington  <hp@pobox.com>
9845
9846         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9847         subclass. This means dropping the transparent thread safety of the
9848         proxy; you now need a separate proxy per-thread, or your own
9849         locking on the proxy. Probably right anyway.
9850         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9851
9852 2003-09-22  Havoc Pennington  <hp@redhat.com>
9853
9854         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9855
9856 2003-09-21  Seth Nickell  <seth@gnome.org>
9857
9858         First checkin of the Python bindings.
9859         
9860         * python/.cvsignore:
9861         * python/Makefile.am:
9862         * python/dbus_bindings.pyx.in:
9863         * python/dbus_h_wrapper.h:
9864
9865         Pieces for Pyrex to operate on, building a dbus_bindings.so
9866         python module for low-level access to the DBus APIs.
9867         
9868         * python/dbus.py:
9869
9870         High-level Python module for accessing DBus objects.
9871
9872         * configure.in:
9873         * Makefile.am:
9874
9875         Build stuff for the python bindings.
9876
9877         * acinclude.m4:
9878
9879         Extra macro needed for finding the Python C header files.
9880
9881 2003-09-21  Havoc Pennington  <hp@pobox.com>
9882
9883         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9884         implementing the proxy manager, didn't get very far.
9885
9886         * dbus/dbus-bus.c (dbus_bus_add_match): new
9887         (dbus_bus_remove_match): new
9888
9889         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9890         path_name argument; adjust the other not-yet-implemented 
9891         gproxy constructors to be what I think they should be.
9892
9893 2003-09-21  Havoc Pennington  <hp@pobox.com>
9894
9895         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9896         by default for message bus connections.
9897
9898         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9899         exit_on_disconnect flag is set and we process the disconnected
9900         signal.
9901         (dbus_connection_set_exit_on_disconnect): new function
9902
9903 2003-09-21  Havoc Pennington  <hp@pobox.com>
9904
9905         Get matching rules mostly working in the bus; only actually
9906         parsing the rule text remains. However, the client side of
9907         "signal connections" hasn't been started, this patch is only the
9908         bus side.
9909         
9910         * dbus/dispatch.c: fix for the matching rules changes
9911         
9912         * bus/driver.c (bus_driver_handle_remove_match)
9913         (bus_driver_handle_add_match): send an ack reply from these
9914         method calls
9915
9916         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9917         arguments, reported by Seth Nickell
9918
9919         * bus/config-parser.c (append_rule_from_element): support
9920         eavesdrop=true|false attribute on policies so match rules 
9921         can be prevented from snooping on the system bus.
9922
9923         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9924         and "destination" in attribute names; fix some docs bugs; 
9925         add eavesdrop=true|false attribute
9926
9927         * bus/driver.c (bus_driver_handle_add_match)
9928         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9929         messages
9930
9931         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9932         rid of broadcast service concept, signals are just always broadcast
9933
9934         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9935         mostly implement matching rules stuff (currently only exposed as signal
9936         connections)
9937
9938 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9939
9940         * doc/dbus-specification.sgml: Change the header field name
9941         to be an enum and update the rest of the spec to reference
9942         the fields using the conventinal name.
9943
9944         * dbus/dbus-protocol.h: update to reflect the spec.
9945
9946         * doc/TODO: add item to remove the 4 byte alignment requirement.
9947         
9948         * dbus/dbus-message.c: Remove the code to generalise the
9949         header/body length and serial number header fields as named
9950         header fields so we can reference field names using the 
9951         protocol values.
9952         (append_int_field), (append_uint_field), (append_string_field):
9953         Append the field name as a byte rather than four chars.
9954         (delete_int_or_uint_field), (delete_string_field): reflect the
9955         fact that the field name and typecode now occupy 4 bytes instead
9956         of 8.
9957         (decode_string_field), (decode_header_data): update to reflect
9958         protocol changes and move the field specific encoding from
9959         decode_string_field() back into decode_header_data().
9960         
9961         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9962         Add utility to aid debugging.
9963         
9964         * dbus/dbus-message-builder.c:
9965         (append_string_field), (_dbus_message_data_load): Update to
9966         reflect protocol changes; Change the FIELD_NAME directive
9967         to HEADER_FIELD and allow it to take the field's conventional
9968         name rather than the actual value.
9969         
9970         * test/data/*/*.message: Update to use HEADER_FIELD instead
9971         of FIELD_NAME; Always align the header on an 8 byte boundary
9972         *before* updating the header length.
9973
9974 2003-09-15  Havoc Pennington  <hp@pobox.com>
9975
9976         * dbus/dbus-pending-call.c: add the get/set object data
9977         boilerplate as for DBusConnection, etc. Use generic object data
9978         for the notify callback.
9979
9980         * glib/dbus-gparser.c (parse_node): parse child nodes
9981
9982         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9983         
9984         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9985         contain functions shared between the convenience lib and the
9986         installed lib
9987
9988         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9989         -export-symbols-regex to the GLib library
9990
9991         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9992         fix the locking in here, and add a default handler for
9993         Introspect() that just returns sub-nodes.
9994
9995 2003-09-14  Havoc Pennington  <hp@pobox.com>
9996
9997         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9998         rather than gfoo consistent
9999
10000         * glib/dbus-gproxy.h: delete for now, move contents to
10001         dbus-glib.h, because the include files don't work right since we
10002         aren't in the dbus/ subdir.
10003         
10004         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10005         (dbus_gproxy_end_call): finish
10006         (dbus_gproxy_begin_call): finish
10007
10008         * glib/dbus-gmain.c (dbus_set_g_error): new
10009
10010         * glib/dbus-gobject.c (handle_introspect): include information
10011         about child nodes in the introspection
10012
10013         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10014         function to help in implementation of introspection
10015
10016         * dbus/dbus-object-tree.c
10017         (_dbus_object_tree_list_registered_and_unlock): new function
10018
10019 2003-09-12  Havoc Pennington  <hp@pobox.com>
10020
10021         * glib/dbus-gidl.h: add common base class for all the foo_info
10022         types
10023
10024         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10025         similar to kdcop
10026
10027         * test/Makefile.am: try test srcdir -ef . in addition to test
10028         srcdir = ., one of them should work (yeah lame)
10029         
10030         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10031         library
10032         
10033         * glib/dbus-gparser.h: make description_load routines return
10034         NodeInfo* not Parser*
10035
10036         * Makefile.am (SUBDIRS): build test dir after all library dirs
10037
10038         * configure.in: add GTK+ detection
10039
10040 2003-09-07  Havoc Pennington  <hp@pobox.com>
10041
10042         * Make Doxygen contented.
10043
10044 2003-09-07  Havoc Pennington  <hp@pobox.com>
10045
10046         * doc/dbus-specification.sgml: more updates
10047
10048 2003-09-06  Havoc Pennington  <hp@pobox.com>
10049
10050         * doc/dbus-specification.sgml: partial updates
10051
10052         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10053         zillionth time; hopefully I edited the right file this time.
10054
10055         * bus/config-parser.c (append_rule_from_element): support
10056         send_type, send_path, receive_type, receive_path
10057
10058         * bus/policy.c: add message type and path to the list of things
10059         that can be "firewalled"
10060
10061 2003-09-06  Havoc Pennington  <hp@pobox.com>
10062
10063         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10064         (dbus_connection_register_object_path): make this not handle
10065         messages to paths below the given path
10066
10067 2003-09-03  Havoc Pennington  <hp@pobox.com>
10068
10069         * test/glib/Makefile.am: add this with random glib-linked test
10070         programs
10071
10072         * glib/Makefile.am: remove the random test programs from here,
10073         leave only the unit tests
10074
10075         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10076         uscore/javacaps conversion, and fix     
10077         (get_object_property, set_object_property): change to .NET
10078         convention for mapping props to methods, set_FooBar/get_FooBar, 
10079         since one language has such a convention we may as well copy it. 
10080         Plus real methods in either getFooBar or get_foo_bar style won't 
10081         collide with this convention.
10082
10083 2003-09-01  Havoc Pennington  <hp@pobox.com>
10084
10085         * glib/dbus-gparser.c: implement
10086
10087         * glib/dbus-gobject.c: start implementing skeletons support
10088
10089         * configure.in: when disabling checks/assert, also define
10090         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10091
10092 2003-09-01  Havoc Pennington  <hp@pobox.com>
10093
10094         * glib/Makefile.am: rearrange a bunch of files and get "make
10095         check" framework set up
10096
10097 2003-08-31  Havoc Pennington  <hp@pobox.com>
10098
10099         * fix build with --disable-tests
10100
10101 2003-08-30  Havoc Pennington  <hp@pobox.com>
10102
10103         * dbus/dbus-connection.c: purge DBusMessageHandler
10104
10105         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10106         use callbacks everywhere
10107
10108 2003-08-30  Havoc Pennington  <hp@pobox.com>
10109
10110         * test/data/valid-config-files/system.d/test.conf: change to 
10111         root for the user so warnings don't get printed
10112
10113         * dbus/dbus-message.c: add dbus_message_get_path,
10114         dbus_message_set_path
10115         
10116         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10117         dispatching to a path
10118
10119         * dbus/dbus-string.c (_dbus_string_validate_path): add
10120
10121         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10122         (_dbus_marshal_object_path): implement
10123
10124         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10125         to contain the path to the target object
10126         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10127         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10128
10129 2003-08-30  Havoc Pennington  <hp@pobox.com>
10130
10131         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10132
10133 2003-08-29  Havoc Pennington  <hp@pobox.com>
10134
10135         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10136         registered
10137         (struct DBusObjectSubtree): shrink this
10138         a lot, since we may have a lot of them
10139         (_dbus_object_tree_free_all_unlocked): implement
10140         (_dbus_object_tree_dispatch_and_unlock): implement
10141
10142 2003-08-29  Havoc Pennington  <hp@pobox.com>
10143
10144         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10145
10146 2003-08-28  Havoc Pennington  <hp@pobox.com>
10147
10148         purge DBusObjectID
10149         
10150         * dbus/dbus-connection.c: port to no ObjectID, create a
10151         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10152
10153         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10154         everything except UnregisterFunction and MessageFunction
10155         
10156         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10157         add DBUS_TYPE_OBJECT_PATH
10158         
10159         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10160         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10161         path-based object IDs
10162
10163 2003-08-25  Havoc Pennington  <hp@pobox.com>
10164
10165         Just noticed that dbus_message_test is hosed, I wonder when I
10166         broke that. I thought make check was passing earlier...
10167         
10168         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10169         container tree, will replace most of dbus-object-registry
10170
10171         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10172         screwup
10173
10174 2003-08-19  Havoc Pennington  <hp@pobox.com>
10175
10176         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10177         (dbus_message_is_error): fix this function
10178
10179         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10180         match
10181
10182         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10183         reflect clarified man page
10184         (bus_client_policy_check_can_send): ditto
10185         
10186         * bus/session.conf.in: fixup
10187
10188         * bus/system.conf.in: fixup
10189
10190 2003-08-18  Havoc Pennington  <hp@redhat.com>
10191
10192         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10193
10194         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10195         dumb bug created earlier (wrong order of args to
10196         decode_header_data())
10197         
10198         * tools/dbus-send.c: port
10199
10200         * tools/dbus-print-message.c (print_message): port
10201
10202         * test/data/*messages: port all messages over
10203         
10204         * dbus/dbus-message-builder.c: support including 
10205         message type
10206         
10207         * bus/driver.c: port over
10208         
10209         * bus/dispatch.c: port over to new stuff
10210
10211         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10212         rename disconnect signal to "Disconnected"
10213
10214 2003-08-17  Havoc Pennington  <hp@pobox.com>
10215
10216         This doesn't compile yet, but syncing up so I can hack on it from
10217         work. What are branches for if not broken code? ;-)
10218         
10219         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10220         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10221         DBUS_HEADER_FIELD_ERROR_NAME
10222         
10223         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10224         for the interface+member pairs
10225         (string_hash): change to use g_str_hash algorithm
10226         (find_direct_function, find_string_function): refactor these to
10227         share most code.
10228         
10229         * dbus/dbus-message.c: port all of this over to support 
10230         interface/member fields instead of name field
10231
10232         * dbus/dbus-object-registry.c: port over
10233         
10234         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10235         from _dbus_string_validate_name
10236
10237         * bus/dbus-daemon-1.1: change file format for the 
10238         <deny>/<allow> stuff to match new message naming scheme
10239
10240         * bus/policy.c: port over
10241
10242         * bus/config-parser.c: parse new format
10243         
10244 2003-08-16  Havoc Pennington  <hp@pobox.com>
10245
10246         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10247         broken assertion
10248
10249         * glib/dbus-gproxy.c: some hacking
10250
10251 2003-08-15  Havoc Pennington  <hp@redhat.com>
10252
10253         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10254
10255         * dbus/dbus-connection.c
10256         (dbus_connection_send_with_reply_and_block): factor out internals;
10257         change to convert any error replies to DBusError instead of 
10258         returning them as a message
10259
10260 2003-08-15  Havoc Pennington  <hp@pobox.com>
10261
10262         * dbus/dbus-connection.c, 
10263         dbus/dbus-pending-call.c: Finish the pending call stuff
10264
10265 2003-08-14  Havoc Pennington  <hp@redhat.com>
10266
10267         * dbus/dbus-pending-call.c: start on new object that will replace
10268         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10269         replies
10270
10271         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10272         with remote interfaces
10273
10274         * dbus/dbus-gidl.c: do the boring boilerplate in here
10275         
10276 2003-08-12  Havoc Pennington  <hp@pobox.com>
10277
10278         * bus/dispatch.c (bus_dispatch): make this return proper 
10279         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10280
10281         * dbus/dbus-errors.c (dbus_set_error): use
10282         _dbus_string_append_printf_valist
10283
10284         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10285         (_dbus_string_append_printf): new
10286
10287         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10288         UNKNOWN_METHOD
10289
10290         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10291         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10292         message is unhandled.
10293
10294 2003-08-11  Havoc Pennington  <hp@pobox.com>
10295
10296         * bus/test.c (client_disconnect_handler): change to return
10297         HANDLED (would have been REMOVE_MESSAGE)
10298
10299         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10300         HANDLED/NOT_YET_HANDLED instead of
10301         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10302         should be used.
10303
10304 2003-08-10  Havoc Pennington  <hp@pobox.com>
10305
10306         * tools/dbus-send.c (main): add --type argument, for now
10307         supporting only method_call and signal types.
10308
10309         * tools/dbus-print-message.c: print message type
10310
10311         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10312         init connection->objects
10313
10314         * doc/dbus-specification.sgml: fix sgml
10315
10316         * bus/*.c: port over to object-instance API changes
10317
10318         * test/test-service.c: ditto
10319         
10320         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10321         name, we will have to fix up the rest of the code to also handle
10322         this
10323         (dbus_message_new): generic message-creation call
10324         (set_string_field): allow appending name field
10325
10326 2003-08-06  Havoc Pennington  <hp@pobox.com>
10327
10328         * dbus/dbus-object-registry.c: implement signal connection 
10329         and dispatch
10330
10331         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10332
10333         * dbus/dbus-internals.c (_dbus_memdup): new function
10334
10335 2003-08-02  Havoc Pennington  <hp@pobox.com>
10336
10337         * dbus/dbus-message.c (dbus_message_get_no_reply)
10338         (dbus_message_set_no_reply): add these and remove
10339         set_is_error/get_is_error
10340
10341         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10342         remove the ERROR flag, since there's now an ERROR type
10343
10344 2003-08-01  Havoc Pennington  <hp@pobox.com>
10345
10346         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10347         implement
10348
10349         * dbus/dbus-message.c (dbus_message_get_type): new function
10350
10351         * doc/dbus-specification.sgml: add "type" byte to messages
10352
10353 2003-08-01  Havoc Pennington  <hp@pobox.com>
10354
10355         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10356         a message type enum to distinguish kinds of message
10357         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10358         that need not be replied to
10359
10360 2003-08-01  Havoc Pennington  <hp@pobox.com>
10361
10362         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10363         (unpack_8_octets): fix no-64-bit-int bug
10364
10365         * dbus/dbus-object-registry.c (validate_id): validate the 
10366         connection ID bits, not just the instance ID.
10367
10368         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10369         the connection-global 33 bits of the object ID
10370
10371         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10372         object ID in the new way
10373
10374         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10375         define server/client/instance bits.
10376
10377 2003-07-30  Havoc Pennington  <hp@pobox.com>
10378
10379         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10380         build
10381
10382 2003-07-13  Havoc Pennington  <hp@pobox.com>
10383
10384         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10385         fields to DBusObjectVTable and DBusObjectInfo
10386
10387 2003-07-12  Havoc Pennington  <hp@pobox.com>
10388
10389         * dbus/dbus-object-registry.c: implement unit test,
10390         fix bugs discovered in process
10391
10392         * dbus/dbus-connection.c: remove handler_table and
10393         register_handler(), add DBusObjectRegistry usage
10394
10395         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10396         (dbus_object_id_set_null): new functions
10397
10398 2003-07-08  Havoc Pennington  <hp@pobox.com>
10399
10400         * dbus/dbus-object.c: implement some of this
10401
10402         * dbus/dbus-object-registry.c
10403         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10404         param
10405         (_dbus_object_registry_new): handle OOM
10406
10407 2003-07-08  Havoc Pennington  <hp@pobox.com>
10408
10409         * dbus/dbus-object.h: sketch out an API for registering objects
10410         with a connection, that allows us to use as little as 24 bytes
10411         per object and lets application code represent an object in 
10412         any conceivable way.
10413
10414         * dbus/dbus-object-registry.c: implement the hard bits of the
10415         DBusConnection aspect of object API. Not yet wired up.
10416         
10417 2003-07-06  Havoc Pennington  <hp@pobox.com>
10418
10419         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10420         (_dbus_marshal_object_id): new
10421         (_dbus_demarshal_object_id): new
10422         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10423         consolidate identical switch cases. Don't conditionalize handling
10424         of DBUS_TYPE_UINT64, need to handle the type always.
10425         (_dbus_marshal_validate_arg): consolidate identical cases, and
10426         handle DBUS_TYPE_OBJECT_ID
10427
10428         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10429
10430         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10431
10432 2003-09-28  Havoc Pennington  <hp@pobox.com>
10433
10434         * real 0.13 release
10435
10436 2003-09-28  Havoc Pennington  <hp@pobox.com>
10437
10438         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10439         to work with Debian db2html
10440
10441 2003-09-28  Havoc Pennington  <hp@pobox.com>
10442
10443         * configure.in: 0.13
10444
10445         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10446         stylesheet-images for benefit of Debian
10447         
10448         Change back to using filesystem-linked sockets for the system
10449         bus, so only root can create the default system bus address.
10450         
10451         * bus/system.conf.in: change to use
10452         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10453
10454         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10455         from here.
10456
10457         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10458         here, and AC_DEFINE DBUS_SYSTEM_PATH
10459
10460 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10461
10462         * doc/TODO:
10463         * doc/busconfig.dtd:
10464         Add busconfig DTD.
10465         
10466 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10467
10468         * doc/dbus-specification.sgml:
10469         Add activation reply values.
10470         
10471 2003-08-05  Havoc Pennington  <hp@redhat.com>
10472
10473         * configure.in: 0.12
10474
10475 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10476
10477         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10478         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10479         (add_watch), (remove_watch), (create_source):
10480         Refcount fds, fixes some reentrancy issues.
10481         
10482 2003-07-30  Havoc Pennington  <hp@redhat.com>
10483
10484         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10485         bus address to be abstract if we have abstract sockets
10486
10487         * NEWS: update
10488
10489 2003-07-28  Havoc Pennington  <hp@redhat.com>
10490
10491         * bus/messagebus.in: fix to avoid processname/servicename 
10492         confusion, from Michael Kearey
10493         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10494         
10495 2003-07-23  Havoc Pennington  <hp@pobox.com>
10496
10497         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10498         fix from Andy Hanton to remove broken "+1"
10499
10500 2003-07-16  Havoc Pennington  <hp@pobox.com>
10501
10502         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10503         babysitter process, as suggested by Thomas Leonard, so 
10504         an "eval `dbus-launch --exit-with-session`" will actually 
10505         return
10506
10507 2003-07-16  Havoc Pennington  <hp@pobox.com>
10508
10509         * configure.in: print out EXPANDED_* variables in the summary at
10510         the end; clean up the code that computes EXPANDED_ variables and
10511         get the ones using exec_prefix right. Should make things work
10512         when you build without --prefix
10513
10514 2003-06-29  Havoc Pennington  <hp@pobox.com>
10515
10516         * mono/Test.cs (class Test): fire up a main loop and run it
10517
10518         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10519         done once, the app has to do it
10520
10521 2003-06-26  Havoc Pennington  <hp@pobox.com>
10522
10523         * mono/Connection.cs: set up connection with the glib main loop
10524
10525 2003-07-01  Havoc Pennington  <hp@redhat.com>
10526
10527         * doc/dbus-specification.sgml: clarify the format of a type code,
10528         change suggested by Jim Blandy
10529
10530 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10531
10532         * doc/Makefile.am:
10533         * tools/Makefile.am: Don't assume srcdir == builddir.
10534
10535         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10536         the allocated block.
10537         (_dbus_memory_test): New function.
10538         * dbus/dbus-test.h: Add _dbus_memory_test ().
10539         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10540
10541         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10542         of %c%c%c%c.
10543         (dbus_message_new): Remove obsolete @todo.
10544
10545         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10546         (_dbus_marshal_set_uint64): Fix comment.
10547
10548         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10549         hardcode FIELD_REPLY_SERIAL.
10550
10551         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10552         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10553
10554         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10555         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10556
10557 2003-06-24  Havoc Pennington  <hp@pobox.com>
10558
10559         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10560
10561 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10562
10563         * configure.in:
10564         * gcj/.cvsignore:
10565         * gcj/Hello.java:
10566         * gcj/Makefile.am:
10567         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10568         * gcj/org/.cvsignore:
10569         * gcj/org/Makefile.am:
10570         * gcj/org/freedesktop/.cvsignore:
10571         * gcj/org/freedesktop/Makefile.am:
10572         * gcj/org/freedesktop/dbus/.cvsignore:
10573         * gcj/org/freedesktop/dbus/Makefile.am:
10574         * gcj/org/freedesktop/dbus/Message.java: (Message),
10575         (Message.Message):
10576         * gcj/org/freedesktop/dbus/natMessage.cc:
10577         Fix the build system.
10578
10579 2003-06-22  Havoc Pennington  <hp@pobox.com>
10580
10581         * mono/Connection.cs: add more bindings
10582
10583         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10584         more than once.
10585
10586 2003-06-22  Havoc Pennington  <hp@pobox.com>
10587
10588         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10589         Start wrapping more stuff.
10590
10591 2003-06-22  Havoc Pennington  <hp@pobox.com>
10592
10593         * mono/Message.cs: implement Message.Wrap() that ensures we only
10594         have a single C# wrapper per DBusMessage, assuming it works which
10595         it probably doesn't.
10596
10597         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10598         (dbus_message_free_data_slot): new
10599         (dbus_message_set_data): new
10600         (dbus_message_get_data): new
10601
10602 2003-06-22  Havoc Pennington  <hp@pobox.com>
10603
10604         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10605         (_dbus_data_slot_allocator_alloc): rework these to keep a
10606         reference count on each slot and automatically manage a global
10607         slot ID variable passed in by address
10608
10609         * bus/bus.c: convert to new dataslot API
10610
10611         * dbus/dbus-bus.c: convert to new dataslot API
10612
10613         * dbus/dbus-connection.c: convert to new dataslot API
10614
10615         * dbus/dbus-server.c: convert to new dataslot API
10616
10617         * glib/dbus-gmain.c: ditto
10618
10619         * bus/test.c: ditto
10620
10621         * bus/connection.c: ditto
10622
10623 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10624
10625         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10626         after the gcj checks so that the correct configuration tags
10627         will be added to libtool.
10628
10629         * dbus-glib-1.pc.in: No need to specify any includes since
10630         dbus-1.pc.in has those.
10631
10632 2003-06-22  Havoc Pennington  <hp@pobox.com>
10633
10634         * mono/*, gcj/*, configure.in, Makefile.am:
10635         Check in makefiles and subdirs for mono and gcj bindings.
10636         Neither binding actually exists, just trying to get through
10637         all the build and other boring bits.
10638
10639 2003-06-21  Philip Blundell  <philb@gnu.org>
10640
10641         * tools/dbus-monitor.1: Updated.
10642
10643         * tools/dbus-send.1: Likewise.
10644
10645 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10646
10647         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10648         for hangup and error after checking read so we won't discard
10649         pending data if both hangup and read are set.
10650
10651 2003-06-19  Philip Blundell  <philb@gnu.org>
10652
10653         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10654
10655         * tools/dbus-send.c: Accept both --system and --session.
10656
10657         * tools/dbus-monitor.c: Same here.
10658
10659 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10660
10661         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10662         from C++ (Patch by Miloslav Trmac).
10663
10664 2003-06-15  Joe Shaw  <joe@assbarn.com>
10665
10666         * configure.in: Check for socklen_t.
10667
10668         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10669
10670         * test/test-segfault.c: Add #include <sys/time.h>
10671
10672         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10673         dbus-launch needs it.
10674
10675 2003-06-09  Havoc Pennington  <hp@redhat.com>
10676
10677         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10678         SUN_LEN, it breaks abstract socket usage
10679
10680         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10681         starts of lines.
10682
10683 2003-06-04  Havoc Pennington  <hp@pobox.com>
10684
10685         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10686         using unix:abstract=/foo, and when listening in a tmpdir
10687         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10688
10689         * dbus/dbus-transport.c (_dbus_transport_open): support
10690         unix:abstract=/foo
10691
10692         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10693         support abstract sockets
10694
10695         * dbus/dbus-transport-unix.c
10696         (_dbus_transport_new_for_domain_socket): support abstract sockets
10697
10698         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10699         toggle as an argument, implement abstract namespace support
10700         (_dbus_listen_unix_socket): ditto
10701
10702         * configure.in: add --enable-abstract-sockets and implement
10703         a configure check for autodetection of the right value.
10704
10705 2003-06-01  Havoc Pennington  <hp@pobox.com>
10706
10707         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10708         in /tmp (though on Linux this will end up being useless,
10709         when we add abstract namespace support)
10710
10711         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10712         subst'ing it
10713
10714 2003-05-28  Colin Walters  <walters@verbum.org>
10715
10716         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10717
10718 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10719
10720         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10721
10722 2003-05-17  Colin Walters  <walters@gnu.org>
10723
10724         * tools/dbus-send.c: Don't exit with an error code if --help was
10725         passed.  Default to using the session bus instead of the system
10726         one.
10727
10728         * tools/dbus-launch.c: Ditto.
10729
10730         * tools/dbus-monitor.c: Ditto.
10731
10732         * tools/dbus-send.1: Update with new arguments.
10733
10734         * tools/dbus-launch.c: Emit code to export variables.  New
10735         arguments -s and -c to specify shell syntax, and a bit of code to
10736         autodetect syntax.  Also, allow specifying a program to run.
10737
10738         * tools/dbus-launch.1: Update with new arguments.
10739
10740         * tools/dbus-send.1: Ditto.
10741
10742         * tools/dbus-monitor.1: Ditto.
10743
10744 2003-05-17  Havoc Pennington  <hp@pobox.com>
10745
10746         * bus/config-parser.c (merge_included): merge in policies from
10747         child configuration file.
10748
10749         * bus/policy.c (bus_policy_merge): function to merge two policies
10750         together
10751
10752 2003-05-16  Havoc Pennington  <hp@redhat.com>
10753
10754         * dbus/dbus-connection.c: disable verbose lock spew
10755
10756         * tools/dbus-send.c: add --print-reply command line option
10757
10758         * tools/dbus-print-message.h (print_message): new util function
10759         shared by dbus-send and dbus-monitor
10760
10761         * tools/dbus-monitor.c (handler_func): exit on disconnect
10762
10763         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10764         disconnected, don't try to use the read_watch
10765
10766         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10767         so we can find this bug more easily
10768
10769 2003-05-16  Havoc Pennington  <hp@redhat.com>
10770
10771         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10772         NULL as DBusHashTable is annoyingly likely to do.
10773
10774 2003-05-16  Colin Walters  <walters@verbum.org>
10775
10776         * tools/dbus-monitor.c: Add --session argument and usage()
10777         function.
10778
10779         * tools/dbus-monitor.1: Update with new --session arg.
10780
10781         * bus/Makefile.am (install-data-hook): Create
10782         $(libdir)/dbus-1.0/services so that the session bus is happy.
10783
10784 2003-05-15  Havoc Pennington  <hp@redhat.com>
10785
10786         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10787         on non-x86. ifdef's are evil.
10788
10789 2003-05-15  Havoc Pennington  <hp@redhat.com>
10790
10791         * configure.in: 0.11
10792
10793         * NEWS: update
10794
10795         * bus/Makefile.am (initddir): apparently we are supposed to put
10796         init scripts in /etc/rc.d/init.d not /etc/init.d
10797
10798         * bus/Makefile.am: remove the "you must --enable-tests to make
10799         check" as it broke distcheck
10800
10801         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10802
10803 2003-05-13  James Willcox  <jwillcox@gnome.org>
10804
10805         * configure.in:
10806         * bus/activation.c: (bus_activation_service_created),
10807         (bus_activation_activate_service):
10808         * bus/driver.c: (bus_driver_send_service_deleted),
10809         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10810         (bus_driver_send_service_acquired),
10811         (bus_driver_send_welcome_message),
10812         (bus_driver_handle_list_services):
10813         * bus/session.conf.in:
10814         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10815         (dbus_bus_service_exists), (dbus_bus_activate_service):
10816         * dbus/dbus-bus.h:
10817
10818         Add some convenience API which lets you activate a service, and did a
10819         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10820         and dbus_message_get_args()
10821
10822 2003-05-11  Havoc Pennington  <hp@pobox.com>
10823
10824         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10825         calling _dbus_marshal_validate_arg() for every byte in a byte
10826         array, etc.
10827
10828         * dbus/dbus-message-handler.c: use atomic reference counting to
10829         reduce number of locks slightly; the global lock in here sucks
10830
10831         * dbus/dbus-connection.c
10832         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10833         update_dispatch_status that can be called with lock held; then use
10834         in a couple places to reduce locking/unlocking
10835         (dbus_connection_send): hold the lock over the whole function
10836         instead of acquiring it twice.
10837
10838         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10839
10840         * bus/connection.c (bus_connections_setup_connection): fix access
10841         to already-freed memory.
10842
10843         * dbus/dbus-connection.c: keep a little cache of linked list
10844         nodes, to avoid using the global linked list alloc lock in the
10845         normal send-message case. Instead we just use the connection lock
10846         that we already have to take.
10847
10848         * dbus/dbus-list.c (_dbus_list_find_last): new function
10849
10850         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10851         change to use a struct for the atomic type; fix docs,
10852         they return value before increment, not after increment.
10853
10854         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10855         (_dbus_string_append_8_aligned): new functions to try to
10856         microoptimize this operation.
10857         (reallocate_for_length): break this out of set_length(), to
10858         improve profile info, and also so we can consider inlining the
10859         set_length() part.
10860
10861         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10862         strings with some preallocation, cuts down on our calls to realloc
10863         a fair bit. Though if we can get the "move entire string to empty
10864         string" optimization below to kick in here, it would be better.
10865
10866         * dbus/dbus-string.c (_dbus_string_move): just call
10867         _dbus_string_move_len
10868         (_dbus_string_move_len): add a special case for moving
10869         an entire string into an empty string; we can just
10870         swap the string data instead of doing any reallocs.
10871         (_dbus_string_init_preallocated): new function
10872
10873 2003-05-11  Havoc Pennington  <hp@pobox.com>
10874
10875         Write a "test-profile" that does echo client-server with threads;
10876         profile reveals lock contention, memcpy/realloc of buffers, and
10877         UTF-8 validation as hot spots. 20% of lock contention eliminated
10878         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10879         contention is global mempool locks for GList and DBusList.
10880
10881         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10882         x86 implementation
10883
10884         * dbus/dbus-connection.c (struct DBusConnection): use
10885         dbus_atomic_t for the reference count
10886
10887         * dbus/dbus-message.c (struct DBusMessage): declare
10888         dbus_atomic_t values as volatile
10889
10890         * configure.in: code to detect ability to use atomic integer
10891         operations in assembly, from GLib patch
10892
10893         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10894         time, tired of it being wrong in threads and forked processes
10895
10896         * glib/test-profile.c: a little program to bounce messages back
10897         and forth between threads and eat CPU
10898
10899         * dbus/dbus-connection.c: add debug spew macros for debugging
10900         thread locks; include config.h at top; fix deadlock in
10901         dbus_connection_flush()
10902
10903 2003-05-08  Havoc Pennington  <hp@pobox.com>
10904
10905         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10906         data from getting written, and there wasn't a good reason to
10907         use _exit really.
10908
10909         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10910         dbus_verbose lines in test coverage
10911         (main): add list of functions sorted by # of untested blocks
10912         to the coverage report
10913
10914         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10915
10916         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10917
10918         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10919         extend test coverage
10920
10921         * test/data/auth/cancel.auth-script: test canceling an
10922         authentication
10923
10924         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10925         aren't used. in CVS history if we end up needing them.
10926
10927 2003-05-04  Havoc Pennington  <hp@pobox.com>
10928
10929         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10930         unit test
10931
10932         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10933         function, which assumed length was in # of strings, not bytes
10934
10935         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10936         missing coverage
10937
10938         * dbus/dbus-connection.c
10939         (_dbus_connection_queue_received_message): disable function for
10940         now, we are only using it in test mode
10941
10942         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10943         remove a mistaken FIXME
10944
10945 2003-05-04  Havoc Pennington  <hp@pobox.com>
10946
10947         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10948         unlock mutex on successful return, patch from Anders Gustafsson
10949
10950 2003-05-04  Havoc Pennington  <hp@pobox.com>
10951
10952         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10953         Anders Gustafsson
10954
10955 2003-05-04  Havoc Pennington  <hp@pobox.com>
10956
10957         * tools/dbus-launch.c: implement
10958
10959         * bus/main.c (main), bus/bus.c (bus_context_new):
10960         implement --print-pid and --fork
10961
10962 2003-05-03  Havoc Pennington  <hp@redhat.com>
10963
10964         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10965         the address had no value, and add to test suite. Fix and
10966         regression test from Miloslav Trmac
10967
10968 2003-05-03  Havoc Pennington  <hp@pobox.com>
10969
10970         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10971         watch is invalid when handled
10972
10973         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10974         dbus-launch utility to launch the bus from a shell script.  Didn't
10975         actually implement dbus-launch yet, it's just a placeholder still.
10976
10977 2003-05-03  Havoc Pennington  <hp@pobox.com>
10978
10979         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10980         daemon; also documents daemon config file, so replaces
10981         doc/config-file.txt. Corrected some stuff from config-file.txt in
10982         the process of moving it.
10983
10984 2003-05-03  Havoc Pennington  <hp@pobox.com>
10985
10986         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10987         add some man pages
10988
10989 2003-05-03  Colin Walters  <walters@verbum.org>
10990
10991         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10992         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10993
10994         * Makefile.am: Update to use new .pc versioning scheme.
10995
10996 2003-05-02  Havoc Pennington  <hp@redhat.com>
10997
10998         * bus/system.conf.in: allow send/receive to/from message bus
10999         service
11000
11001 2003-04-30  Havoc Pennington  <hp@redhat.com>
11002
11003         * configure.in: print a note when building with unit tests and
11004         without assertions
11005
11006 2003-04-30  Havoc Pennington  <hp@redhat.com>
11007
11008         * Makefile.am: add a check-local that complains if you didn't
11009         configure with --enable-tests
11010
11011 2003-04-29  Havoc Pennington  <hp@redhat.com>
11012
11013         * glib/dbus-gmain.c: docs cleanups
11014
11015         * dbus/dbus-types.h: add docs on int64 types
11016
11017         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11018         public API docs section
11019
11020 2003-04-29  Havoc Pennington  <hp@redhat.com>
11021
11022         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11023         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11024         parallel install API version, not with the D-BUS package version.
11025
11026         * HACKING: move some of README over here
11027
11028         * README: updates, and document API/ABI policy
11029
11030         * configure.in: reindentation
11031
11032 2003-04-29  Havoc Pennington  <hp@redhat.com>
11033
11034         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11035         to use this library" to be sure people have the right
11036         expectations.
11037
11038 2003-04-28  Havoc Pennington  <hp@redhat.com>
11039
11040         * configure.in: add --enable-docs which by default is auto yes if
11041         doxygen and db2html found, no otherwise; but can be forced on/off
11042
11043         * doc/Makefile.am: conditionalize whether to build docs on
11044         --enable-docs
11045
11046 2003-04-28  Havoc Pennington  <hp@redhat.com>
11047
11048         * configure.in: 0.10
11049
11050         * NEWS: update
11051
11052         * bus/system.conf.in: add <includedir>system.d</includedir>
11053
11054         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11055         username was provided but not uid
11056
11057         * bus/config-parser.c (struct BusConfigParser): keep track of
11058         whether the parser is toplevel or was included; change some
11059         of the error handling if it's included.
11060
11061 2003-04-27  Havoc Pennington  <hp@pobox.com>
11062
11063         Unbreak my code...
11064
11065         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11066         report correct status if we finish processing authentication
11067         inside this function.
11068
11069         * bus/activation.c (try_send_activation_failure): use
11070         bus_transaction_send_error_reply
11071
11072         * bus/connection.c (bus_connection_get_groups): return an error
11073         explaining the problem
11074
11075         * bus/bus.c (bus_context_check_security_policy): implement
11076         restriction here that inactive connections can only send the
11077         hello message. Also, allow bus driver to send anything to
11078         any recipient.
11079
11080         * bus/connection.c (bus_connection_complete): create the
11081         BusClientPolicy here instead of on-demand.
11082         (bus_connection_get_policy): don't return an error
11083
11084         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11085         sender field in message being replied to
11086
11087         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11088         causing it to return FALSE always
11089
11090         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11091         we checked sender rather than destination
11092
11093 2003-04-25  Havoc Pennington  <hp@redhat.com>
11094
11095         test suite is slightly hosed at the moment, will fix soon
11096
11097         * bus/connection.c (bus_connections_expire_incomplete): fix to
11098         properly disable the timeout when required
11099         (bus_connection_set_name): check whether we can remove incomplete
11100         connections timeout after we complete each connection.
11101
11102         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11103         probably still broken.
11104
11105         * bus/services.c (bus_registry_acquire_service): implement max
11106         number of services owned, and honor allow/deny rules on which
11107         services a connection can own.
11108
11109         * bus/connection.c (bus_connection_get_policy): report errors here
11110
11111         * bus/activation.c: implement limit on number of pending
11112         activations
11113
11114 2003-04-25  Havoc Pennington  <hp@redhat.com>
11115
11116         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11117         where we used >= 0 instead of != DBUS_UID_UNSET.
11118
11119 2003-04-25  Havoc Pennington  <hp@redhat.com>
11120
11121         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11122         were toggled without add/remove, fix from Anders Gustafsson
11123
11124 2003-04-24  Havoc Pennington  <hp@redhat.com>
11125
11126         * test/data/valid-config-files/basic.conf: add <limit> tags to
11127         this test
11128
11129         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11130         <limit> tag in configuration file.
11131
11132 2003-04-24  Havoc Pennington  <hp@redhat.com>
11133
11134         * bus/dispatch.c: somehow missed some name_is
11135
11136         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11137         (_dbus_timeout_set_interval): new
11138
11139         * bus/connection.c (bus_connections_setup_connection): record time
11140         when each connection is first set up, and expire them after the
11141         auth timeout passes.
11142
11143 2003-04-24  Havoc Pennington  <hp@redhat.com>
11144
11145         * dbus/dbus-message.c (dbus_message_name_is): rename
11146         (dbus_message_service_is): rename
11147         (dbus_message_sender_is): rename
11148         (dbus_message_get_service): rename
11149
11150 2003-04-24  Havoc Pennington  <hp@redhat.com>
11151
11152         * configure.in: add --enable-checks
11153
11154         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11155
11156         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11157         to use thread locks.
11158         (_dbus_connection_handler_destroyed_locked): move some private
11159         functions into proper docs group
11160
11161         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11162         _dbus_return_val_if_fail
11163
11164         Throughout: use dbus_return_if_fail
11165
11166 2003-04-23  James Willcox  <jwillcox@gnome.org>
11167
11168         * glib/dbus-glib.h:
11169         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11170         (dbus_connection_setup_with_g_main),
11171         (dbus_server_setup_with_g_main):
11172         * glib/test-dbus-glib.c: (main):
11173         * glib/test-thread-client.c: (main):
11174         * glib/test-thread-server.c: (new_connection_callback), (main):
11175         * tools/dbus-monitor.c: (main):
11176
11177         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11178         and dbus_server_setup_with_g_main().
11179
11180 2003-04-20  Havoc Pennington  <hp@pobox.com>
11181
11182         * doc/dbus-specification.sgml: document the restrictions on
11183         message and service names
11184
11185 2003-04-22  Havoc Pennington  <hp@redhat.com>
11186
11187         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11188         support, and do some code cleanups to share more code and
11189         speed up array marshal/demarshal.
11190
11191         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11192
11193         * configure.in: generate dbus-arch-deps.h
11194
11195         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11196         64-bit typecodes
11197
11198 2003-04-22  Havoc Pennington  <hp@redhat.com>
11199
11200         * test/data/valid-messages/opposite-endian.message: fix test
11201         to use proper type for rply field
11202
11203         * test/data/invalid-messages: add tests for below validation
11204
11205         * dbus/dbus-message.c (decode_header_data): validate field types,
11206         and validate that named fields are valid names
11207         (decode_name_field): consider messages in the
11208         org.freedesktop.Local. namespace to be invalid.
11209
11210         * dbus/dbus-string.c (_dbus_string_validate_name): new
11211
11212 2003-04-19  Havoc Pennington  <hp@pobox.com>
11213
11214         * bus/driver.c (bus_driver_handle_hello): check limits and
11215         return an error if they are exceeded.
11216
11217         * bus/connection.c: maintain separate lists of active and inactive
11218         connections, and a count of each. Maintain count of completed
11219         connections per user. Implement code to check connection limits.
11220
11221         * dbus/dbus-list.c (_dbus_list_unlink): export
11222
11223         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11224         number of bytes in the message queue for a connection
11225
11226 2003-04-18  Havoc Pennington  <hp@pobox.com>
11227
11228         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11229
11230         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11231         memleaks
11232
11233         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11234         on realloc be sure to update the pointer in the keyring
11235
11236         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11237         offset to avoid writing to unallocated memory
11238
11239         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11240         try the next mechanism, so we properly handle OOM
11241
11242         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11243         on OOM.
11244         (_dbus_keyring_new): fix OOM bug
11245         (_dbus_keyring_new_homedir): always set error; impose a maximum
11246         number of keys we'll load from the file, mostly to speed up the
11247         test suite and make its OOM checks more useful, but also for
11248         general sanity.
11249
11250         * dbus/dbus-auth.c (process_error_server): reject authentication
11251         if we get an error from the client
11252         (process_cancel): on cancel, send REJECTED, per the spec
11253         (process_error_client): send CANCEL if we get an error from the
11254         server.
11255
11256 2003-04-18  Havoc Pennington  <hp@pobox.com>
11257
11258         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11259         debug spew
11260
11261         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11262         handling problem
11263
11264         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11265         about DBUS_TEST_HOMEDIR once
11266
11267         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11268         the environment
11269
11270         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11271         config file so we test the right thing
11272
11273         Throughout: assorted docs improvements
11274
11275 2003-04-18  Havoc Pennington  <hp@pobox.com>
11276
11277         * glib/dbus-gmain.c: adapt to watch changes
11278
11279         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11280
11281         * dbus/dbus-server.h: remove dbus_server_handle_watch
11282
11283         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11284
11285         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11286         like DBusTimeout, so we don't need dbus_connection_handle_watch
11287         etc.
11288
11289 2003-04-17  Havoc Pennington  <hp@redhat.com>
11290
11291         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11292         database usage so it all goes via the DBusUserDatabase cache.
11293
11294 2003-04-17  Havoc Pennington  <hp@redhat.com>
11295
11296         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11297         there was an OOM watch we skipped, we always return TRUE so we
11298         iterate again to have a look at it again. Fixes test suite hang.
11299         Code rearrangement also lets us lose some memset and only iterate
11300         over callbacks once.
11301
11302         * bus/driver.c (bus_driver_handle_message): sense of test for
11303         reply was backward
11304
11305 2003-04-16  Havoc Pennington  <hp@pobox.com>
11306
11307         * doc/dbus-specification.sgml: make spec say serials are unsigned
11308
11309         * dbus/dbus-message.h: change message serials to unsigned
11310
11311         * dbus/dbus-connection.c: adapt to message serials being unsigned
11312
11313 2003-04-15  Havoc Pennington  <hp@pobox.com>
11314
11315         * bus/bus.c: create and keep around a shared DBusUserDatabase
11316         object.
11317
11318         * bus/connection.c (bus_connection_get_groups): don't cache
11319         groups for user in the connection object, since user database
11320         object now does that.
11321
11322 2003-04-16  Havoc Pennington  <hp@redhat.com>
11323
11324         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11325         list of size counters
11326         (_dbus_message_loader_putback_message_link): put back a popped link
11327
11328         * dbus/dbus-connection.c
11329         (dbus_connection_set_max_live_messages_size): rename
11330         max_received_size
11331         (dbus_connection_get_outgoing_size): get size of outgoing
11332         queue
11333         (_dbus_connection_set_connection_counter): remove this cruft
11334
11335 2003-04-14  Havoc Pennington  <hp@redhat.com>
11336
11337         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11338         caching, but at some point we might want to be able to use a
11339         different database.
11340
11341         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11342         SHA1 conf file to test the sha1 auth mechanism, since the regular
11343         test always uses EXTERNAL when available.
11344
11345         * configure.in,
11346         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11347         add conf file that requires use of sha1 auth
11348
11349 2003-04-13  Havoc Pennington  <hp@pobox.com>
11350
11351         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11352         from Philip Blundell to send messages and monitor them.
11353
11354 2003-04-13  Havoc Pennington  <hp@pobox.com>
11355
11356         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11357         callbacks
11358
11359         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11360         users
11361
11362         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11363         fix to only recover unused bytes if we're already authenticated
11364         (_dbus_transport_get_is_authenticated): fix to still mark us
11365         authenticated if there are unused bytes.
11366
11367         * bus/dispatch.c: implement security policy checking
11368
11369         * bus/connection.c (bus_transaction_send_from_driver): new
11370
11371         * bus/bus.c (bus_context_check_security_policy): new
11372
11373         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11374         now we just set the DBusError and it gets converted to an error
11375         reply.
11376
11377         * bus/connection.c (allow_user_function): enable code using actual
11378         data from the config file
11379
11380         * bus/policy.c (list_allows_user): handle wildcard rules for
11381         user/group connection perms
11382
11383 2003-04-13  Havoc Pennington  <hp@pobox.com>
11384
11385         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11386
11387         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11388
11389         * bus/policy.c (bus_policy_append_mandatory_rule)
11390         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11391         (bus_policy_append_group_rule): new functions
11392
11393 2003-04-12  Havoc Pennington  <hp@pobox.com>
11394
11395         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11396
11397         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11398         the pid/gid/uid, just for paranoia.
11399
11400         * test/break-loader.c (randomly_do_n_things): find a byte
11401         containing a type code, and randomly change it to a different
11402         type code.
11403
11404 2003-04-12  Havoc Pennington  <hp@pobox.com>
11405
11406         * bus/policy.h: change BusPolicy to be the thing from the config
11407         file, and rename old BusPolicy to BusClientPolicy
11408
11409         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11410         match change in how policy works
11411
11412         * dbus/dbus-internals.h: mark assert_not_reached as
11413         __attribute((noreturn))__
11414
11415 2003-04-11  Havoc Pennington  <hp@redhat.com>
11416
11417         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11418         the broadcast service. Use boolean return for ServiceExists.
11419
11420 2003-04-11  Havoc Pennington  <hp@redhat.com>
11421
11422         * configure.in: add another directory to look for qt in.
11423
11424 2003-04-11  Havoc Pennington  <hp@redhat.com>
11425
11426         * AUTHORS: add Colin Walters
11427
11428 2003-04-11  Havoc Pennington  <hp@redhat.com>
11429
11430         * NEWS: update
11431
11432         * configure.in: 0.9
11433
11434 2003-04-11  Havoc Pennington  <hp@redhat.com>
11435
11436         * bus/messagebus.in: remove pid file when stopping the
11437         message bus, since the bus won't have privileges to remove it
11438         itself.
11439
11440 2003-04-11  Havoc Pennington  <hp@redhat.com>
11441
11442         * bus/bus.c (bus_context_new): move credentials change after
11443         creating pidfile
11444
11445 2003-04-11  Havoc Pennington  <hp@pobox.com>
11446
11447         * test/decode-gcov.c: add "below average functions" to the
11448         coverage report, and change how some of the code works.
11449
11450         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11451         not in the coverage stats.
11452
11453         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11454         couple places so running the test suite doesn't result in megaspam.
11455
11456 2003-04-11  Havoc Pennington  <hp@pobox.com>
11457
11458         * bus/dispatch.c (check_existent_service_activation): accept a no
11459         memory error in a place we didn't before
11460
11461         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11462         in case the first one failed," since the test suite is less
11463         broken now.
11464
11465 2003-04-10  Havoc Pennington  <hp@pobox.com>
11466
11467         * bus/dispatch.c (check_segfault_service_activation): add test
11468         for launching an executable that just crashes.
11469
11470         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11471         don't leave a million cores. We'll see how portable this is.
11472
11473 2003-04-10  Havoc Pennington  <hp@pobox.com>
11474
11475         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11476         the possible parent failures before we fork, so that we don't
11477         fail to create a babysitter after creating the child.
11478
11479         * bus/activation.c (bus_activation_activate_service): kill child
11480         if we don't successfully complete the activation.
11481
11482 2003-04-10  Havoc Pennington  <hp@redhat.com>
11483
11484         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11485         the connection if it's disconnected
11486
11487         * bus/activation.c (bus_activation_service_created): use new
11488         transaction features to roll back removal of pending activation if
11489         we don't successfully create the service after all. Don't remove
11490         pending activation if the function fails.
11491
11492         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11493         (_dbus_list_insert_after_link): new code to facilitate
11494         services.c fixes
11495
11496         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11497         new functionality, so we can preallocate the ability to insert
11498         into a hash table.
11499
11500         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11501         allowing us to put custom hooks in a transaction to be used for
11502         cancelling said transaction
11503
11504         * doc/dbus-specification.sgml: add some discussion of secondary
11505         service owners, and disallow zero-length service names
11506
11507         * bus/services.c (bus_registry_acquire_service): new function,
11508         splits out part of bus_driver_handle_acquire_service() and fixes
11509         a bug where we didn't remove the service doing the acquiring
11510         from the secondary queue if we failed to remove the current owner
11511         from the front of the queue.
11512
11513 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11514
11515         * doc/dbus-specification.sgml:
11516         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11517
11518 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11519
11520         * bus/.cvsignore:
11521         * glib/.cvsignore:
11522         * test/.cvsignore:
11523         Added files to cvsignore
11524
11525         * dbus/dbus-message.h:
11526         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11527         Make get_named() take two out argument and return a boolean.
11528         (dbus_message_iter_get_args_valist):
11529         Update usage of get_named().
11530         (dbus_message_iter_append_byte):
11531         Fix typo
11532         (dbus_message_iter_append_named)
11533         Fix typo
11534         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11535         More tests.
11536
11537 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11538
11539         * dbus/dbus-marshal.[ch]:
11540         Add array_type_pos argument to _dbus_marshal_validate_arg.
11541         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11542
11543         * dbus/dbus-message.[ch]:
11544         Multi-dimensional arrays have full type specification in the
11545         outermost array. Iter code re-arranged to handle this.
11546         Added some more iter tests.
11547
11548         * doc/dbus-specification.sgml:
11549         Add me to authors.
11550         Remove old FIXME.
11551         Update new array encoding description.
11552         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11553
11554         * test/data/invalid-messages/array-with-mixed-types.message:
11555         * test/data/valid-messages/array-of-array-of-uint32.message:
11556         Change to the new array format.
11557
11558         * test/data/invalid-messages/too-short-dict.message:
11559         Fix bug in test.
11560
11561         * test/data/valid-messages/recursive-types.message:
11562         Fix up and extend test.
11563
11564 2003-04-10  Havoc Pennington  <hp@pobox.com>
11565
11566         * bus/dispatch.c: lots of fixes
11567
11568         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11569         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11570         that was crack, broke the test service.
11571
11572         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11573         handling to avoid piling up errors if we get a failure on the
11574         first address.
11575
11576         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11577         pid in assertion failures.
11578
11579         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11580         to some fixed size of file descriptor array. Don't return TRUE
11581         anytime a timeout exists, that led to lots of busy loop silliness
11582         in the tests.
11583
11584 2003-04-09  Havoc Pennington  <hp@redhat.com>
11585
11586         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11587         I'd checked this in earlier but hadn't.
11588
11589 2003-04-09  Havoc Pennington  <hp@redhat.com>
11590
11591         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11592         the activation test (man this is getting old!)
11593
11594 2003-04-09  Havoc Pennington  <hp@redhat.com>
11595
11596         * test/test-utils.c: use dispatch status function to fix this up
11597
11598         * bus/connection.c (connection_watch_callback): don't dispatch
11599         from here
11600         (connection_timeout_callback): don't dispatch from here
11601         (bus_connections_setup_connection): set the dispatch status function
11602         (bus_connection_disconnected): unset it
11603
11604         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11605         used to add a connection to be dispatched
11606         (_dbus_loop_iterate): do the dispatching at the end of each
11607         iteration
11608
11609         * dbus/dbus-connection.c
11610         (dbus_connection_set_dispatch_status_function): new function
11611         allowing us to fix up main loop usage
11612         (_dbus_connection_last_unref): free all the various function
11613         user data
11614         (dbus_connection_dispatch): call the DispatchStatusFunction
11615         whenever this function returns
11616         (dbus_connection_handle_watch): call DispatchStatusFunction
11617         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11618         (reply_handler_timeout): call DispatchStatusFunction
11619         (dbus_connection_flush): call DispatchStatusFunction
11620
11621 2003-04-09  Havoc Pennington  <hp@redhat.com>
11622
11623         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11624         a memory leak
11625
11626         * bus/dispatch.c (check_service_activated): fix bug in test
11627
11628         * dbus/dbus-mainloop.c (check_timeout): fix this up
11629
11630         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11631         verbose output so we can sort out output from different processes,
11632         e.g. in the activation case.
11633
11634 2003-04-08  Colin Walters  <walters@gnu.org>
11635
11636         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11637         the pid file.
11638         (bus_context_new): Set it.
11639         (bus_context_unref): Use it to delete the pid file.
11640
11641 2003-04-08  Havoc Pennington  <hp@redhat.com>
11642
11643         * test/data/invalid-messages/array-with-mixed-types.message:
11644         regression test that fails for the moment
11645
11646         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11647         tests for convenience
11648
11649         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11650         array of nil, it broke things.
11651
11652         * test/data/invalid-messages/array-of-nil.message: regression test
11653
11654         * test/data/valid-messages/array-of-array-of-uint32.message:
11655         happened to write this so added it to suite
11656
11657 2003-04-08  Havoc Pennington  <hp@redhat.com>
11658
11659         * bus/driver.c (bus_driver_handle_acquire_service): init
11660         retval/reply before checking name
11661
11662         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11663         recursion depth argument
11664
11665         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11666         in the public struct for future extension
11667
11668         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11669         typo
11670
11671         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11672         message
11673
11674         * doc/dbus-specification.sgml: fix typo
11675
11676 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11677
11678         Implemented recursive types, named types and new-style iters
11679
11680         * bus/driver.c:
11681         * glib/test-thread-client.c: (thread_func):
11682         * glib/test-thread-server.c: (handle_test_message):
11683         * test/test-service.c: (handle_echo):
11684         Update to new api
11685
11686         * dbus/Makefile.am:
11687         * dbus/dbus-dict.c:
11688         * dbus/dbus-dict.h:
11689         * dbus/dbus.h
11690         Remove DBusDict
11691
11692         * dbus/dbus-internals.c: (_dbus_type_to_string):
11693         Update for new types.
11694
11695         * dbus/dbus-marshal.[ch]:
11696         Implement recursive types and the new marshalling format.
11697         Remove hardcoded dict marshalling.
11698         Marshal named types.
11699
11700         * dbus/dbus-message-builder.c:
11701         Add BYTE_ARRAY.
11702         Remove references to old types
11703
11704         * dbus/dbus-message.[ch]:
11705         New non-refcounted iter API that supports recursive iters.
11706         Use iters for appending, including support for recursive
11707         iters.
11708         Add byte and named type support.
11709         Update everything to new marshalling formats.
11710         Add tests for new API.
11711
11712         * dbus/dbus-protocol.h:
11713         Remove old array types.
11714         Add types: BYTE, ARRAY, DICT, NAMED
11715
11716         * dbus/dbus-string.c:
11717         * dbus/dbus-sysdeps.c:
11718         Make parse_double locale safe.
11719
11720         * dbus/dbus-test-main.c:
11721         Call setlocale.
11722
11723         * dbus/dbus-test.c:
11724         Kill dict test
11725
11726         * doc/dbus-specification.sgml:
11727         Update spec
11728
11729         * test/data/incomplete-messages/missing-body.message:
11730         * test/data/invalid-messages/bad-boolean.message:
11731         * test/data/invalid-messages/bad-boolean-array.message:
11732         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11733         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11734         * test/data/invalid-messages/too-short-dict.message:
11735         * test/data/valid-messages/dict-simple.message:
11736         * test/data/valid-messages/dict.message:
11737         * test/data/valid-messages/emptiness.message:
11738         * test/data/valid-messages/lots-of-arguments.message:
11739         * test/data/valid-messages/no-padding.message:
11740         * test/data/valid-messages/recursive-types.message:
11741         Add missing NAME fields
11742         Fix up dicts & arrays
11743
11744         * test/data/invalid-messages/dict-with-nil-value.message:
11745         Removed, this is not invalid anymore.
11746
11747         * test/data/valid-messages/recursive-types.message:
11748         Add new test for deeply recursive types.
11749
11750 2003-04-07  Havoc Pennington  <hp@pobox.com>
11751
11752         * bus/driver.c (bus_driver_handle_acquire_service): return an
11753         error if you try to acquire a service that starts with ':'
11754
11755 2003-04-07  Havoc Pennington  <hp@redhat.com>
11756
11757         * doc/dbus-specification.sgml: require that base service names
11758         start with ':' and that the base service is created/deleted
11759         as first and last things a connection does on the bus
11760
11761         * bus/dispatch.c (check_existent_service_activation): lots more
11762         work on the activation test; it doesn't fully pass yet...
11763
11764         * test/test-service.c (main): fix so we don't memleak the
11765         connection to the message bus
11766         (filter_func): accept a message asking us to exit
11767
11768 2003-04-06  Havoc Pennington  <hp@pobox.com>
11769
11770         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11771         from Colin Walters
11772
11773         * configure.in: fixes to Qt detection from Colin Walters
11774
11775         * doc/Makefile.am: Only remove generated docbook dirs if they
11776         exist, from Colin Walters
11777
11778         * dbus/dbus-bus.c: change how we set well-known connections to
11779         NULL, so that it works if a single connection is stored in
11780         two well-known array slots.
11781
11782         * test/Makefile.am: remove a lot of stuff that isn't immediately
11783         useful, it's in CVS history if we want it.
11784
11785         * test/test-service.c: use dbus-mainloop instead of that
11786         watch.[hc] crack
11787
11788 2003-04-06  Havoc Pennington  <hp@pobox.com>
11789
11790         * dbus/Makefile.am: split lists of sources into stuff that goes in
11791         the library, util functions that go in the lib and are also used
11792         elsewhere, and util functions that are used in tests/daemon but
11793         don't go in the lib.
11794
11795         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11796         here so it can be used in test binaries also
11797
11798 2003-04-06  Havoc Pennington  <hp@pobox.com>
11799
11800         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11801         here in the parent process, so we can return an error if it
11802         fails. Also, move some of the code into the child so the parent
11803         is less hosed if we fail midway through.
11804
11805         * bus/bus.c (bus_context_new): move pidfile detection further up
11806         in the function, before we start overwriting sockets and such.
11807
11808         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11809
11810         * configure.in: add --with-system-pid-file and --with-system-socket
11811
11812 2003-04-06  Colin Walters  <walters@verbum.org>
11813
11814         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11815
11816         * bus/system.conf.in: Declare a pidfile.
11817
11818         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11819         create one (if appropriate).
11820
11821         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11822         (struct BusConfigParser) [pidfile]: New.
11823         (element_type_to_name, merge_included, start_busconfig_child)
11824         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11825         (bus_config_parser_unref): Free it.
11826         (bus_config_parser_get_pidfile): New function.
11827
11828         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11829
11830         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11831
11832         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11833
11834         * dbus/dbus-sysdeps.h: Prototype it.
11835
11836 2003-04-06  Havoc Pennington  <hp@pobox.com>
11837
11838         * bus/bus.c (bus_context_new): print the address in here, rather
11839         than in main(), because we need to do it before forking the daemon
11840
11841         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11842         on the service nonexistent error
11843
11844         * bus/driver.c (bus_driver_handle_acquire_service): set the
11845         sender on the AcquireService reply
11846
11847         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11848         server also listen on a UNIX socket so services can connect to it.
11849
11850 2003-04-06  Havoc Pennington  <hp@pobox.com>
11851
11852         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11853         so it detects deadlocks and also we actually init threads when
11854         debugging.
11855
11856 2003-04-06  Havoc Pennington  <hp@pobox.com>
11857
11858         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11859         save the domain socket name, and unlink it when we disconnect the
11860         server. Means that at least when we exit normally, we won't leave
11861         a bunch of junk in /tmp
11862
11863         * dbus/dbus-transport-unix.c
11864         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11865         memory management). (I was making a real change here but then
11866         didn't)
11867
11868 2003-04-06  Havoc Pennington  <hp@pobox.com>
11869
11870         * bus/bus.c (bus_context_new): fix wrong handling of
11871         server_data_slot_unref() in the error case.
11872
11873         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11874         "(condition) != 0" to _dbus_real_assert so that
11875         "_dbus_assert (pointer)" doesn't cause a warning
11876
11877         * bus/main.c (main): accept --print-address option to print out
11878         the message bus address
11879
11880         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11881
11882         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11883         "tmpdir" option to unix: address on client side
11884
11885         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11886         to unix: address
11887
11888         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11889         we can use to create sockets in the test suite.
11890
11891         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11892         cleanly. To be used for testing.
11893
11894         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11895
11896         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11897
11898         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11899         handle trying to call this when there's no servers active
11900
11901 2003-04-05  Havoc Pennington  <hp@pobox.com>
11902
11903         * NEWS: update
11904
11905         * configure.in: 0.8
11906
11907 2003-04-05  Havoc Pennington  <hp@pobox.com>
11908
11909         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11910         crash on startup. Need to get "try starting the daemon"
11911         in the test suite I guess. ;-)
11912
11913         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11914         tracked the number of open connections; it's better done in
11915         application-specific code as you want it to span all servers etc.
11916
11917 2003-04-05  Havoc Pennington  <hp@pobox.com>
11918
11919         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11920         patch from Colin Walters
11921
11922 2003-04-05  Havoc Pennington  <hp@pobox.com>
11923
11924         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11925         reality; in fact multiple mechanisms are allowed.
11926
11927         * dbus/dbus-internals.c (_dbus_real_assert)
11928         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11929         _dbus_assert_not_reached() into functions, so that they don't show
11930         up in basic block counts for test coverage, and don't use up as
11931         much disk space. Does mean slower execution speed though, so
11932         assumes --disable-asserts is the normal production case.
11933
11934 2003-04-05  Havoc Pennington  <hp@pobox.com>
11935
11936         * test/Makefile.am (dist-hook): also dist *.in files
11937
11938         * NEWS: update
11939
11940         * configure.in: 0.7
11941
11942 2003-04-05  Havoc Pennington  <hp@pobox.com>
11943
11944         * dbus/dbus-string.c: docs warning
11945
11946         * dbus/dbus-spawn.c: missing docs
11947
11948         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11949
11950 2003-04-05  Havoc Pennington  <hp@pobox.com>
11951
11952         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11953         magic from GLib
11954
11955         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11956         to -1 once we've reaped the babysitter
11957         (_dbus_babysitter_handle_watch): do as much work as we can, not
11958         just one go of it
11959
11960         * bus/activation.c: add code using DBusBabysitter so that we
11961         handle it when a service fails to start up properly.
11962         (bus_activation_service_created): don't remove the activation
11963         entries as we go, just let them get removed when we free the pending
11964         activation. Unref reply messages after sending them.
11965
11966 2003-04-05  Havoc Pennington  <hp@pobox.com>
11967
11968         * test/decode-gcov.c (main): print per-directory stats in the report
11969
11970         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11971
11972 2003-04-05  Havoc Pennington  <hp@pobox.com>
11973
11974         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11975
11976         * test/decode-gcov.c: hack up a little program to suck data
11977         out of gcov files. Yes this is sort of silly.
11978
11979         * configure.in: define something in config.h and do an
11980         AM_CONDITIONAL when gcov is enabled
11981
11982 2003-04-04  Havoc Pennington  <hp@redhat.com>
11983
11984         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11985         return a "babysitter" object that is used to monitor the status of
11986         the spawned process and reap it when required.
11987
11988         * test/test-segfault.c, test/test-exit.c,
11989         test/test-sleep-forever.c: binaries that do various lame things,
11990         used in the test suite.
11991
11992         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11993
11994 2003-04-03  Havoc Pennington  <hp@pobox.com>
11995
11996         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11997         in preparation for modifying it, dbus-sysdeps is getting
11998         a bit unmanageable.
11999
12000 2003-04-03  Havoc Pennington  <hp@redhat.com>
12001
12002         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12003         have multiple ones
12004
12005         * bus/*.[hc]: adapt to mainloop change
12006
12007 2003-04-03  Havoc Pennington  <hp@redhat.com>
12008
12009         * bus/activation.c (load_directory): fix up memleaks
12010         (bus_activation_entry_free): free the entry
12011
12012         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12013         we get one from the message bus; fix memleaks.
12014
12015         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12016
12017 2003-04-03  Havoc Pennington  <hp@pobox.com>
12018
12019         * bus/config-parser.c (bus_config_parser_unref): free
12020         list of mechanisms, bug discovered by test suite enhancements
12021         (putting system.conf and session.conf into suite)
12022
12023         * test/Makefile.am, test/test-service.c: add placeholder for a
12024         test service that we'll activate as part of test suite. Doesn't
12025         do anything yet.
12026
12027         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12028         setting NULL value, and use system malloc not dbus_malloc()
12029         when we have unavoidable memleakage.
12030
12031         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12032         didn't work, and support DBUS_BUS_ACTIVATION.
12033
12034         * bus/activation.c (child_setup): pass our well-known bus type to
12035         the child
12036
12037         * bus/config-parser.c: support <type> to specify well-known type
12038
12039         * doc/dbus-specification.sgml: document the env variables to
12040         locate well-known buses and find service activator
12041
12042 2003-04-02  Havoc Pennington  <hp@redhat.com>
12043
12044         * test/Makefile.am (all-local): add a rule to copy tests to
12045         builddir, so we can have generated tests. Use this to remove the
12046         silly hack for testing system.conf and session.conf. Will use this
12047         shortly to generate .service files pointing to test binaries.
12048
12049 2003-04-02  Havoc Pennington  <hp@redhat.com>
12050
12051         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12052         current alloc and needed new length, not max of the doubled
12053         allocation and needed new length. Also, when building tests,
12054         don't do the double-allocation stuff, just realloc every time.
12055
12056 2003-04-02  Havoc Pennington  <hp@redhat.com>
12057
12058         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12059         in error messages
12060         (_dbus_string_get_dirname): new
12061         (_dbus_sysdeps_test): new
12062         (_dbus_directory_open): include dirnames in error messages
12063
12064         * bus/config-parser.c: interpret <include> and <includedir> and
12065         <servicedir> relative to config file location if the given
12066         filename is not absolute.
12067
12068         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12069
12070 2003-04-02  Havoc Pennington  <hp@redhat.com>
12071
12072         * bus/connection.c (bus_transaction_send_error_reply): set sender
12073         service for the error, and unref the reply on success
12074
12075         * bus/activation.c: convert to use BusTransaction so OOM can be
12076         handled correctly
12077         (bus_activation_service_created): set sender of the message
12078
12079 2003-04-01  Havoc Pennington  <hp@redhat.com>
12080
12081         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12082         <includedir> (at least mostly)
12083
12084         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12085         first, then the user ID
12086
12087 2003-04-01  Havoc Pennington  <hp@pobox.com>
12088
12089         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12090         function
12091
12092         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12093
12094         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12095
12096         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12097         socket 0777, and unlink any existing socket.
12098
12099         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12100         the configuration file so specifies; set up auth mechanism
12101         restrictions
12102
12103         * bus/config-parser.c (bus_config_parser_content): add support
12104         for <fork> option and fill in code for <auth>
12105
12106         * bus/system.conf.in: add <fork/> to default configuration,
12107         and limit auth mechanisms to EXTERNAL
12108
12109         * doc/config-file.txt (Elements): add <fork>
12110
12111         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12112         (_dbus_change_identity): new function
12113
12114 2003-03-31  Havoc Pennington  <hp@redhat.com>
12115
12116         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12117         (_dbus_listen_unix_socket): fix off-by-one error in null
12118         termination spotted by Nalin
12119
12120 2003-03-31  Havoc Pennington  <hp@redhat.com>
12121
12122         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12123         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12124         having a real home directory available.
12125
12126 2003-03-31  Havoc Pennington  <hp@redhat.com>
12127
12128         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12129
12130         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12131
12132         * configure.in: add support for specifying a style of init script
12133         to install
12134
12135 2003-03-31  Havoc Pennington  <hp@redhat.com>
12136
12137         Fix some annoying DBusString API and fix all affected code.
12138
12139         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12140         max_length argument
12141         (_dbus_string_get_data): change to return string instead of using
12142         an out param
12143         (_dbus_string_get_const_data): ditto
12144         (_dbus_string_get_data_len): ditto
12145         (_dbus_string_get_const_data_len): ditto
12146
12147 2003-03-31  Havoc Pennington  <hp@redhat.com>
12148
12149         * bus/main.c (main): fix up the command line arguments to be nicer
12150
12151 2003-03-31  Havoc Pennington  <hp@redhat.com>
12152
12153         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12154         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12155         final location that lands in the config file
12156
12157         * bus/config-loader-expat.c (bus_config_load): fix type of
12158         XML_Parser variable
12159
12160         * doc/TODO: remove TODO item for dbus_bus_get()
12161
12162         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12163
12164 2003-03-31  Havoc Pennington  <hp@pobox.com>
12165
12166         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12167         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12168         argument since they are always client side
12169
12170         * dbus/dbus-server.c (dbus_server_get_address): new function
12171
12172         * bus/main.c (main): take the configuration file as an argument.
12173
12174         * test/data/valid-config-files/debug-allow-all.conf: new file to
12175         use with dispatch.c tests for example
12176
12177         * bus/test-main.c (main): require test data dir
12178
12179         * bus/bus.c (bus_context_new): change this to take a
12180         configuration file name as argument
12181
12182         * doc/config-file.txt (Elements): add <servicedir>
12183
12184         * bus/system.conf, bus/session.conf: new files
12185
12186         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12187         well-known socket if none set
12188
12189         * configure.in: create system.conf and session.conf
12190
12191 2003-03-30  Havoc Pennington  <hp@pobox.com>
12192
12193         * bus/config-parser.c: hacking
12194
12195         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12196         to shut down, since it could cause weirdness with the DBusList
12197         lock
12198
12199         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12200         link-oriented stack routines
12201         (alloc_link): free the mempool if the first alloc from it fails
12202
12203         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12204
12205         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12206         from GLib
12207         (_dbus_string_skip_white): new
12208
12209         * doc/config-file.txt (Elements): add <includedir>
12210
12211 2003-03-28  Havoc Pennington  <hp@pobox.com>
12212
12213         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12214         (_dbus_string_copy_data): new functions
12215
12216 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12217
12218         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12219         * dbus/dbus-bus.h:
12220         Add dbus_bus_get.
12221
12222         * dbus/dbus-memory.c:
12223         Fix a doc comment.
12224
12225 2003-03-28  Havoc Pennington  <hp@pobox.com>
12226
12227         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12228         I think it may have just been superstition. Not sure.
12229
12230         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12231         failures that were not being handled.
12232
12233         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12234
12235         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12236         row that will fail on out-of-memory.
12237
12238         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12239         function for testing out-of-memory handling.
12240
12241         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12242         allocation functions, they do map exactly to the expat ones.
12243
12244 2003-03-27  Havoc Pennington  <hp@redhat.com>
12245
12246         * bus/config-loader-libxml.c (bus_config_load): add another error
12247         check
12248
12249 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12250
12251         * doc/TODO:
12252         Add note about automatic service activation.
12253
12254         * doc/dbus-specification.sgml:
12255         Rename the specification and clarify a few things.
12256
12257 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12258
12259         * Doxyfile.in:
12260         * dbus/dbus-address.c:
12261         * dbus/dbus-dict.c:
12262         * dbus/dbus-marshal.c:
12263         * dbus/dbus-server-debug-pipe.c:
12264         * dbus/dbus-transport-unix.c:
12265         Fix documentation warnings.
12266
12267 2003-03-26  Havoc Pennington  <hp@pobox.com>
12268
12269         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12270         after every test so it's quick and easy to see which leaked, and
12271         so we test multiple dbus_shutdown() calls
12272
12273         * configure.in: change configure.in XML stuff to also support
12274         expat
12275
12276         * config-loader-libxml.c: some hacking
12277
12278         * config-loader-expat.c: some hacking
12279
12280         * config-parser.c: some hacking, plus tests
12281
12282 2003-03-25  Havoc Pennington  <hp@redhat.com>
12283
12284         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12285
12286         * configure.in: add --with-xml option to specify XML library,
12287         right now only libxml is supported.
12288
12289         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12290         nonworking code between home and work, still just stubs
12291
12292 2003-03-24  Havoc Pennington  <hp@redhat.com>
12293
12294         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12295         file
12296
12297         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12298         NULL argument for "message" if the error is a well-known one,
12299         fill in a generic message in this case.
12300
12301         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12302         favor of DBusError
12303
12304         * bus/test.c (bus_test_flush_bus): add
12305
12306         * bus/policy.c (bus_policy_test): test code stub
12307
12308 2003-03-24  Havoc Pennington  <hp@pobox.com>
12309
12310         * bus/connection.c (bus_connections_setup_connection): set up
12311         the "can this user connect" function, but it always returns
12312         TRUE until we have a config file parser so we can have a config
12313         file that allows connections.
12314
12315 2003-03-23  Havoc Pennington  <hp@pobox.com>
12316
12317         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12318         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12319         the mutex, so we can check for proper memory management
12320         and OOM handling.
12321
12322         * dbus/dbus-dataslot.c: remove the mutex from
12323         DBusDataSlotAllocator and lock it manually when using it,
12324         to simplify fitting it into the global slots framework.
12325
12326         * dbus/dbus-threads.c (init_static_locks): rework how we're
12327         handling global locks so they are easily shut down.
12328
12329         * bus/policy.c (bus_policy_append_rule): fix
12330
12331         * bus/test-main.c (main): check for memleaks
12332
12333         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12334         test suite check for memleaks
12335
12336         * dbus/dbus-memory.c: add support in test mode for tracking
12337         number of outstanding blocks
12338
12339 2003-03-23  Havoc Pennington  <hp@pobox.com>
12340
12341         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12342         policies code
12343
12344         * dbus/dbus-hash.h: add ULONG hash keys
12345
12346         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12347         (_dbus_get_group_id): new function
12348
12349 2003-03-20  Havoc Pennington  <hp@redhat.com>
12350
12351         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12352         new function
12353         (dbus_connection_get_unix_user): new function
12354
12355 2003-03-20  Havoc Pennington  <hp@pobox.com>
12356
12357         * bus/connection.c (bus_connection_send_oom_error): assert that
12358         message has a sender
12359         (connection_execute_transaction): ditto
12360         (bus_connection_preallocate_oom_error): fix to set the sender, and
12361         set recipient to the destination service, not the bus driver
12362
12363         * bus/policy.c: hacking
12364
12365         * dbus/dbus-message.c (dbus_message_service_is): new function
12366         (dbus_message_sender_is): new
12367
12368 2003-03-19  Havoc Pennington  <hp@redhat.com>
12369
12370         * bus/policy.c: start sketching code for policy restrictions on
12371         what connections can do.
12372
12373 2003-03-18  Havoc Pennington  <hp@redhat.com>
12374
12375         * doc/TODO: some notes on high-level todo items. Little nitpick
12376         stuff is all in @todo, so no need to add it here.
12377
12378         * doc/config-file.txt: some notes on how config file might look
12379
12380 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12381
12382         * configure.in: 0.6
12383
12384         * NEWS: Update.
12385
12386 2003-03-17  Havoc Pennington  <hp@redhat.com>
12387
12388         * dbus/dbus-internals.h: add gcc attributes so that
12389         our printf-style functions warn on bad arguments to
12390         format
12391
12392         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12393         format bug
12394
12395         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12396         printf format bug
12397
12398 2003-03-17  Havoc Pennington  <hp@redhat.com>
12399
12400         * bus/test-main.c (main): make it print something as it runs
12401         so make check doesn't look stuck
12402
12403         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12404         from CVS, now obsolete
12405
12406 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12407
12408         * bus/dispatch.c: (bus_dispatch):
12409         Refetch the service name since it may have been reallocated
12410         when dbus_message_set_sender was called.
12411
12412         * dbus/dbus-sysdeps.c: (_dbus_accept):
12413         Add address and address length variables and use them to stop
12414         valgrind from complaining.
12415
12416 2003-03-17  Havoc Pennington  <hp@pobox.com>
12417
12418         All tests pass, no memleaks, no valgrind complaints.
12419
12420         * bus/test.c: refcount handler_slot
12421
12422         * bus/connection.c (bus_connections_new): refcount
12423         connection_data_slot
12424
12425         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12426         bytes so that auth scripts pass.
12427
12428         * bus/dispatch.c: init message_handler_slot so it gets allocated
12429         properly
12430
12431         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12432
12433         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12434         dealloc server_pipe_hash when no longer used for benefit of
12435         leak checking
12436
12437         * dbus/dbus-auth.c (process_command): memleak fix
12438
12439         * bus/dispatch.c (check_hello_message): memleak fix
12440
12441 2003-03-16  Havoc Pennington  <hp@pobox.com>
12442
12443         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12444
12445 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12446
12447         * bus/activation.c (bus_activation_activate_service): Append
12448         the pending activation entry to the list of pending activations.
12449
12450 2003-03-16  Havoc Pennington  <hp@pobox.com>
12451
12452         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12453         connections
12454
12455         * dbus/dbus-address.c (create_entry): fix OOM handling when
12456         failing to alloc entry->method
12457
12458 2003-03-16  Havoc Pennington  <hp@pobox.com>
12459
12460         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12461         the watch
12462
12463         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12464         add some missing dbus_set_result
12465
12466         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12467         alloc the DBusMessageHandler
12468
12469         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12470         the transport here, since we call this from the finalizer; it
12471         resulted in a double-finalize.
12472
12473         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12474         where we tried to use transport->connection that was NULL,
12475         happened when transport was disconnected early on due to OOM
12476
12477         * bus/*.c: adapt to handle OOM for watches/timeouts
12478
12479         * dbus/dbus-transport-unix.c: port to handle OOM during
12480         watch handling
12481
12482         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12483         reference to unused bytes instead of a copy
12484
12485         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12486         out of memory
12487
12488         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12489         FALSE on OOM
12490
12491         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12492         of memory
12493
12494 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12495
12496         * doc/dbus-specification.sgml:
12497         Document reply message for ActivateService.
12498
12499 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12500
12501         * bus/activation.c: (bus_pending_activation_entry_free),
12502         (bus_pending_activation_free), (bus_activation_new),
12503         (bus_activation_unref), (bus_activation_service_created),
12504         (bus_activation_activate_service):
12505         * bus/activation.h:
12506         * bus/bus.c: (bus_context_new):
12507         * bus/desktop-file.c: (new_section):
12508         * bus/driver.c: (bus_driver_send_service_deleted),
12509         (bus_driver_handle_activate_service):
12510         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12511         * bus/services.h:
12512         * dbus/dbus-connection.c:
12513         (dbus_connection_send_with_reply_and_block):
12514         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12515         * dbus/dbus-protocol.h:
12516         Make activation work better. Now pending activations will be queued
12517         and the daemon won't try to activate services that are already registered.
12518
12519 2003-03-16  Havoc Pennington  <hp@pobox.com>
12520
12521         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12522         connection data
12523
12524         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12525         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12526
12527 2003-03-16  Havoc Pennington  <hp@pobox.com>
12528
12529         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12530         this. always run the test suite before commit...
12531
12532         * bus/*: adapt to DBusConnection API changes
12533
12534         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12535         requires renaming stuff to avoid dbus_connection_dispatch name
12536         conflict.
12537
12538         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12539         function
12540
12541         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12542         separate from _dbus_message_loader_return_buffer()
12543
12544         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12545         this, because it's now always broken to use; the number of
12546         messages in queue vs. the number still buffered by the message
12547         loader is undefined/meaningless. Should use
12548         dbus_connection_get_dispatch_state().
12549         (dbus_connection_dispatch): rename from
12550         dbus_connection_dispatch_message
12551
12552 2003-03-16  Havoc Pennington  <hp@pobox.com>
12553
12554         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12555         implementation
12556
12557 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12558
12559         * dbus/dbus-connection.c:
12560         (dbus_connection_send_with_reply_and_block):
12561         Decrease connection->n_incoming when removing an entry
12562         from the list.
12563         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12564         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12565         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12566         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12567         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12568         (dbus_dict_get_byte_array):
12569         Handle NULL arrays and strings. Also add support for byte arrays.
12570
12571         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12572         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12573         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12574         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12575         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12576         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12577         * dbus/dbus-marshal.h:
12578         Add support for marshalling and demarshalling empty arrays and strings.
12579
12580         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12581         (dbus_message_append_string_array),
12582         (dbus_message_iter_get_boolean),
12583         (dbus_message_iter_get_boolean_array),
12584         (dbus_message_iter_get_int32_array),
12585         (dbus_message_iter_get_uint32_array),
12586         (dbus_message_iter_get_double_array),
12587         (dbus_message_iter_get_byte_array),
12588         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12589         (check_message_handling):
12590         Add support for getting empty arrays and dicts.
12591
12592         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12593         Don't do any validation at all for now, that's better than just checking
12594         for ASCII.
12595
12596         * test/data/valid-messages/emptiness.message:
12597         New test message with lots of empty arrays.
12598
12599 2003-03-16  Havoc Pennington  <hp@pobox.com>
12600
12601         * dbus/dbus-connection.c
12602         (_dbus_connection_queue_received_message_link): new function that
12603         can't fail due to OOM
12604
12605         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12606         new function pops a message together with a list link
12607         containing it.
12608
12609         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12610         message queuing functions to avoid needing to alloc memory
12611
12612 2003-03-16  Havoc Pennington  <hp@pobox.com>
12613
12614         Oops - test code was only testing failure of around 30 of the
12615         mallocs in the test path, but it turns out there are 500+
12616         mallocs. I believe this was due to misguided linking setup such
12617         that there was one copy of dbus_malloc etc. in the daemon and one
12618         in the shared lib, and only daemon mallocs were tested. In any
12619         case, the test case now tests all 500+ mallocs, and doesn't pass
12620         yet, though there are lots of fixes in this patch.
12621
12622         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12623         this so that it doesn't need to allocate memory, since it
12624         has no way of indicating failure due to OOM (and would be
12625         annoying if it did).
12626
12627         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12628
12629         * bus/Makefile.am: rearrange to create two self-contained
12630         libraries, to avoid having libraries with overlapping symbols.
12631         that was resulting in weirdness, e.g. I'm pretty sure there
12632         were two copies of global static variables.
12633
12634         * dbus/dbus-internals.c: move the malloc debug stuff to
12635         dbus-memory.c
12636
12637         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12638         empty.
12639
12640         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12641
12642         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12643         on failure.
12644
12645         * bus/dispatch.c (bus_dispatch_add_connection): free
12646         message_handler_slot when no longer using it, so
12647         memory leak checkers are happy for the test suite.
12648
12649         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12650
12651         * bus/bus.c (new_connection_callback): disconnect in here if
12652         bus_connections_setup_connection fails.
12653
12654         * bus/connection.c (bus_connections_unref): fix to free the
12655         connections
12656         (bus_connections_setup_connection): if this fails, don't
12657         disconnect the connection, just be sure there are no side
12658         effects.
12659
12660         * dbus/dbus-string.c (undo_alignment): unbreak this
12661
12662         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12663         leaking
12664         (_dbus_auth_new): fix the order in which we free strings
12665         on OOM failure
12666
12667         * bus/connection.c (bus_connection_disconnected): fix to
12668         not send ServiceDeleted multiple times in case of memory
12669         allocation failure
12670
12671         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12672         get the base service name
12673         (dbus_bus_register_client): don't return base service name,
12674         instead store it on the DBusConnection and have an accessor
12675         function for it.
12676         (dbus_bus_register_client): rename dbus_bus_register()
12677
12678         * bus/dispatch.c (check_hello_message): verify that other
12679         connections on the bus also got the correct results, not
12680         just the one sending hello
12681
12682 2003-03-15  Havoc Pennington  <hp@pobox.com>
12683
12684         Make it pass the Hello handling test including all OOM codepaths.
12685         Now to do other messages...
12686
12687         * bus/services.c (bus_service_remove_owner): fix crash when
12688         removing owner from an empty list of owners
12689         (bus_registry_ensure): don't leave service in the list of
12690         a connection's owned services if we fail to put the service
12691         in the hash table.
12692
12693         * bus/connection.c (bus_connection_preallocate_oom_error): set
12694         error flag on the OOM error.
12695
12696         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12697         handle _dbus_transport_set_connection failure
12698
12699         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12700         to create watches up front and simply enable/disable them as
12701         needed.
12702         (unix_connection_set): this can now fail on OOM
12703
12704         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12705         of enabling/disabling a watch or timeout.
12706
12707         * bus/loop.c (bus_loop_iterate): don't touch disabled
12708         watches/timeouts
12709
12710         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12711
12712 2003-03-15  Havoc Pennington  <hp@pobox.com>
12713
12714         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12715         write useful test code, after all that futzing around ;-)
12716
12717         Test does not yet pass because we can't handle OOM in
12718         _dbus_transport_messages_pending (basically,
12719         dbus_connection_preallocate_send() does not prealloc the write
12720         watch). To fix this, I think we need to add new stuff to
12721         set_watch_functions, namely a SetEnabled function so we can alloc
12722         the watch earlier, then enable it later.
12723
12724         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12725         dbus-memory.c to the convenience lib
12726
12727         * bus/test.c: rename some static functions to keep them clearly
12728         distinct from stuff in connection.c. Handle client disconnection.
12729
12730 2003-03-14  Havoc Pennington  <hp@pobox.com>
12731
12732         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12733         transport, tests more of the real codepath. Set up clients
12734         with bus_setup_debug_client.
12735
12736         * bus/test.c (bus_setup_debug_client): function to set up debug
12737         "clients" on the main loop
12738
12739         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12740         support
12741
12742         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12743         server type
12744
12745         * dbus/dbus-server-debug.c: support a debug server based on pipes
12746
12747         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12748         (_dbus_close): new function
12749
12750         * configure.in: check for socketpair
12751
12752 2003-03-14  Havoc Pennington  <hp@redhat.com>
12753
12754         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12755         cheesy hack
12756
12757         * dbus/dbus-transport-debug.c: rework this a good bit to be
12758         less complicated. hopefully still works.
12759
12760         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12761         manually
12762
12763         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12764         after running it
12765
12766         * dbus/dbus-message.c (dbus_message_copy): rename from
12767         dbus_message_new_from_message, fix it up to copy
12768         all the message fields, add test case
12769
12770         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12771         not quite passing yet
12772
12773 2003-03-14  Havoc Pennington  <hp@pobox.com>
12774
12775         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12776         until no work remains" in test code. (the large diff here
12777         is just code movement, no actual changes)
12778
12779         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12780         1, no point waiting around for test code.
12781         (_dbus_server_debug_accept_transport): unref the timeout
12782         after adding it (right?)
12783
12784         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12785
12786 2003-03-13  Havoc Pennington  <hp@redhat.com>
12787
12788         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12789         out of memory
12790
12791         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12792         of memory
12793
12794         * dbus/dbus-connection.h: Make AddWatchFunction and
12795         AddTimeoutFunction return a bool so they can fail on out-of-memory
12796
12797         * bus/bus.c (bus_context_new): set up timeout handlers
12798
12799         * bus/connection.c (bus_connections_setup_connection): set up
12800         timeout handlers
12801
12802         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12803         can fail
12804
12805         * bus/bus.c (bus_context_new): adapt to changes
12806
12807         * bus/connection.c: adapt to changes
12808
12809         * test/watch.c: adapt to DBusWatch changes
12810
12811         * bus/dispatch.c (bus_dispatch_test): started adding this but
12812         didn't finish
12813
12814 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12815
12816         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12817
12818 2003-03-13  Havoc Pennington  <hp@pobox.com>
12819
12820         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12821         set up a test framework as for the library
12822
12823 2003-03-12  Havoc Pennington  <hp@pobox.com>
12824
12825         Throughout: purge global variables, introduce BusActivation,
12826         BusConnections, BusRegistry, etc. objects instead.
12827
12828         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12829         message bus object
12830
12831         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12832         going to redo this a bit differently I think
12833
12834 2003-03-12  Havoc Pennington  <hp@redhat.com>
12835
12836         Mega-patch that gets the message bus daemon initially handling
12837         out-of-memory. Work still needed. Also lots of random
12838         moving stuff to DBusError instead of ResultCode.
12839
12840         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12841
12842         * dbus/dbus-connection.c
12843         (dbus_connection_send_with_reply_and_block): use DBusError
12844
12845         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12846         DBusResultCode
12847
12848         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12849         code here, as the only failure possible is OOM.
12850
12851         * bus/connection.c (bus_connection_disconnect):
12852         rename bus_connection_disconnected as it's a notification only
12853
12854         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12855         "name" on get_args failure, should be done by get_args;
12856         don't disconnect client for bad args, just return an error.
12857         (bus_driver_handle_service_exists): ditto
12858
12859         * bus/services.c (bus_services_list): NULL-terminate returned array
12860
12861         * bus/driver.c (bus_driver_send_service_lost)
12862         (bus_driver_send_service_acquired): send messages from driver to a
12863         specific client to the client's unique name, not to the broadcast
12864         service.
12865
12866         * dbus/dbus-message.c (decode_header_data): reject messages that
12867         contain no name field
12868         (_dbus_message_get_client_serial): rename to
12869         dbus_message_get_serial and make public
12870         (_dbus_message_set_serial): rename from set_client_serial
12871         (_dbus_message_set_reply_serial): make public
12872         (_dbus_message_get_reply_serial): make public
12873
12874         * bus/connection.c (bus_connection_foreach): allow stopping
12875         iteration by returning FALSE from foreach function.
12876
12877         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12878         (dbus_connection_free_preallocated_send)
12879         (dbus_connection_preallocate_send): new API for sending a message
12880         without possibility of malloc failure.
12881         (dbus_connection_send_message): rename to just
12882         dbus_connection_send (and same for whole function family)
12883
12884         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12885
12886         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12887
12888         * bus/activation.c: handle/return errors
12889
12890         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12891
12892         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12893         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12894         (_dbus_result_from_errno): move to this file
12895
12896 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12897
12898         * dbus/dbus-marshal.c:
12899         (_dbus_marshal_set_string):
12900         Take a length argument so we can marshal the correct string
12901         length.
12902
12903         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12904         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12905         (_dbus_marshal_test):
12906         * dbus/dbus-marshal.h:
12907         Add support for marshalling and demarshalling dicts.
12908
12909         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12910         Add support for TYPE DICT.
12911
12912         * dbus/dbus-message.c: (set_string_field):
12913         Adjust header padding.
12914
12915         (dbus_message_append_args_valist), (dbus_message_append_dict),
12916         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12917         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12918         (check_message_handling), (check_have_valid_message):
12919         * dbus/dbus-message.h:
12920         Add functions for setting and getting dicts.
12921
12922         * dbus/dbus-protocol.h:
12923         Add DBUS_TYPE_DICT.
12924
12925         * dbus/dbus.h:
12926         Add dbus-dict.h
12927
12928         * doc/dbus-specification.sgml:
12929         Add information about how dicts are marshalled.
12930
12931         * test/data/invalid-messages/dict-with-nil-value.message:
12932         * test/data/invalid-messages/too-short-dict.message:
12933         * test/data/valid-messages/dict-simple.message:
12934         * test/data/valid-messages/dict.message:
12935         Add sample messages containing dicts.
12936
12937 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12938
12939         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12940
12941 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12942
12943         * dbus/Makefile.am:
12944         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12945         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12946         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12947         (dbus_dict_set_double), (dbus_dict_set_string),
12948         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12949         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12950         (dbus_dict_set_string_array), (_dbus_dict_test):
12951         * dbus/dbus-dict.h:
12952         Fix according to comments from Havoc.
12953
12954 2003-03-06  Michael Meeks  <michael@server.home>
12955
12956         * configure.in: if we don't have kde-config, disable have_qt.
12957
12958 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12959
12960         * dbus/Makefile.am:
12961         Add dbus-dict.[ch]
12962
12963         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12964         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12965         (dbus_dict_remove), (dbus_dict_get_value_type),
12966         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12967         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12968         (dbus_dict_put_double), (dbus_dict_put_string),
12969         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12970         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12971         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12972         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12973         (dbus_dict_get_double), (dbus_dict_get_string),
12974         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12975         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12976         (dbus_dict_get_string_array), (_dbus_dict_test):
12977         * dbus/dbus-dict.h:
12978         Add DBusDict implementation
12979
12980         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12981         * dbus/dbus-test.h:
12982         Add _dbus_dict_test
12983
12984 2003-03-04  Havoc Pennington  <hp@pobox.com>
12985
12986         * test/data/auth/*: adapt to changes
12987
12988         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12989         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12990         userid
12991
12992         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12993         more stuff from being in a context name, to make the protocol
12994         simpler to deal with
12995
12996         * dbus/dbus-errors.c (dbus_error_has_name): new function
12997         (dbus_error_is_set): new function
12998
12999         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13000         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13001
13002         * dbus/dbus-connection.c (dbus_connection_flush): also read
13003         messages during a flush operation
13004
13005         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13006
13007 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13008
13009         * configure.in: Check for gethostbyname on Solaris.
13010
13011         * dbus/dbus-transport.c: (_dbus_transport_open):
13012         Remove duplicate "tcp" entry.
13013
13014         * doc/dbus-specification.sgml:
13015         Clarify some things.
13016
13017 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13018
13019         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13020         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13021         (_dbus_keyring_test):
13022         * dbus/dbus-md5.c: (_dbus_md5_compute):
13023         * dbus/dbus-sha.c: (_dbus_sha_compute):
13024         Plug memory leaks.
13025
13026 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13027
13028         * README: Add some things.
13029
13030 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13031
13032         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13033         after case DBUS_TYPE_BOOELAN.
13034
13035 2003-03-02  Havoc Pennington  <hp@pobox.com>
13036
13037         * test/break-loader.c (randomly_set_extreme_ints): add test that
13038         sets really huge and small integers
13039
13040         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13041         that length of boolean array fits in the string, and that
13042         string has room for boolean value in single-bool case.
13043
13044         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13045         optional value to "ALIGN" command which is what to fill the
13046         alignment with.
13047
13048         * test/data/valid-messages/no-padding.message: add regression
13049         test for the message padding problem
13050
13051 2003-03-02  Havoc Pennington  <hp@pobox.com>
13052
13053         * dbus/dbus-message.c (decode_header_data): fix to always init
13054         message_padding, from Benjamin Dauvergne
13055
13056 2003-03-02  Havoc Pennington  <hp@pobox.com>
13057
13058         * configure.in: 0.5
13059
13060         * NEWS: Update.
13061
13062 2003-03-01  Joe Shaw  <joe@assbarn.com>
13063
13064         * configure.in: Check for "struct cmsgcred" and try to access its
13065         members for BSD-like unices.
13066
13067         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13068         _dbus_read_credentials_unix_socket().
13069         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13070         read() for reading the credential byte off the unix socket.  Use
13071         struct cmsgcred on systems that support it.
13072
13073 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13074
13075         * glib/Makefile.am:
13076         * configure.in:
13077         Make gthreads-2.0 dependency optional. Don't build thread test if
13078         its not found.
13079
13080 2003-02-27  Havoc Pennington  <hp@pobox.com>
13081
13082         * dbus/dbus-connection.c
13083         (dbus_connection_send_message_with_reply_and_block): fix doh!
13084         doh! doh! bug that resulted in never removing a reply from the
13085         queue, no wonder we called get_reply_serial so much ;-)
13086
13087         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13088         and client serial instead of demarshaling them every time
13089
13090 2003-02-27  Havoc Pennington  <hp@pobox.com>
13091
13092         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13093         more inlined, using dbus-string-private.h, speeds things up
13094         substantially
13095
13096         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13097         when freeing the string
13098         (_dbus_string_steal_data): fix for align offset
13099         (undo_alignment): new function
13100
13101 2003-02-26  Havoc Pennington  <hp@redhat.com>
13102
13103         All kinds of audit fixes from Owen, plus initial attempt to
13104         handle unaligned memory returned from malloc.
13105
13106         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13107         leave room for align_offset and nul byte
13108         (fixup_alignment): function to track an align_offset and
13109         ensure real->str is aligned
13110         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13111         to allow a nul byte plus align offset
13112         (_dbus_string_lock): fix overflow issue
13113         (_dbus_string_init_const_len): add assertions on sanity of len,
13114         assign allocated to be ALLOCATION_PADDING larger than len
13115         (set_length): fixup the overflow handling
13116         (_dbus_string_get_data_len): fix overflow in assertion
13117         (open_gap): detect overflow in size of gap to be opened
13118         (_dbus_string_lengthen): add overflow check
13119         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13120         (_dbus_string_append): add overflow check
13121         (_dbus_string_append_unichar): overflow
13122         (_dbus_string_delete): fix overflow in assertion
13123         (_dbus_string_copy_len): overflow in assertion
13124         (_dbus_string_replace_len): overflows in assertions
13125         (_dbus_string_find): change to implement in terms of
13126         _dbus_string_find_to
13127         (_dbus_string_find_to): assorted fixage
13128         (_dbus_string_equal_c_str): assert c_str != NULL,
13129         fix logic so the function works
13130         (_dbus_string_ends_with_c_str): fix overflow thingy
13131         (_dbus_string_base64_encode): overflow fix
13132         (_dbus_string_validate_ascii): overflow
13133         (_dbus_string_validate_nul): overflow
13134
13135 2003-02-26  Havoc Pennington  <hp@redhat.com>
13136
13137         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13138
13139 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13140
13141         * configure.in:
13142         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13143
13144         * dbus/dbus-connection.c:
13145         * dbus/dbus-connection.h:
13146         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13147         Add dbus_connection_set_wakeup_main_function and use it when queueing
13148         incoming and outgoing messages.
13149
13150
13151         * dbus/dbus-dataslot.c:
13152         Threadsafe usage of DBusDataSlotAllocator
13153
13154         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13155         dbus_new can fail.
13156
13157         * dbus/dbus-server-unix.c:
13158         Add todo comment
13159
13160         * glib/dbus-gmain.c:
13161         Implement the new wakeup functions for glib.
13162
13163         * glib/Makefile.am:
13164         * glib/test-thread-client.c:
13165         * glib/test-thread-server.c:
13166         * glib/test-thread.h:
13167         Initial cut at some thread test code. Not really done yet.
13168
13169 2003-02-26  Havoc Pennington  <hp@pobox.com>
13170
13171         * dbus/dbus-connection.c
13172         (dbus_connection_send_message_with_reply_and_block): fix crash
13173         where we ref'd the outgoing message instead of the returned reply
13174
13175         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13176         at the end of this function, so if we didn't need to read for
13177         authentication, we reinstall it for receiving messages
13178
13179         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13180         a NULL sender for peer-to-peer case
13181
13182         * dbus/dbus-transport-unix.c (check_read_watch): handle
13183         !authenticated case correctly
13184
13185         * glib/dbus-gmain.c: add support for DBusServer
13186
13187         * dbus/dbus-server.c: add data slot support
13188
13189         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13190         return values and handle errors
13191
13192         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13193         DBusConnection
13194
13195         * Doxyfile.in (INPUT): add glib subdir
13196
13197         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13198         setup_with_g_main instead of hookup_with_g_main; write docs
13199
13200 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13201
13202         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13203         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13204         * dbus/dbus-message.c: (dbus_message_append_boolean),
13205         (dbus_message_append_boolean_array),
13206         (dbus_message_get_args_valist), (_dbus_message_test):
13207         * dbus/dbus-message.h:
13208         * doc/dbus-specification.sgml:
13209         Various fixes as pointed out by Havoc.
13210
13211         * test/data/invalid-messages/bad-boolean-array.message:
13212         * test/data/invalid-messages/bad-boolean.message:
13213         Add invalid boolean value test cases.
13214
13215 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13216
13217         * dbus/dbus-internals.c: (_dbus_type_to_string):
13218         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13219         (_dbus_marshal_validate_arg):
13220         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13221         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13222         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13223         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13224         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13225         (dbus_message_iter_get_double),
13226         (dbus_message_iter_get_boolean_array), (message_iter_test):
13227         * dbus/dbus-message.h:
13228         * dbus/dbus-protocol.h:
13229         * doc/dbus-specification.sgml:
13230         * test/data/valid-messages/lots-of-arguments.message:
13231         Add support for boolean and boolean array types.
13232
13233 2003-02-23  Havoc Pennington  <hp@pobox.com>
13234
13235         * dbus/dbus-keyring.c: finish most of this implementation and
13236         simple unit test
13237
13238         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13239         these barf if the error isn't cleared to NULL
13240
13241         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13242         (_dbus_create_directory): new function
13243
13244         * dbus/dbus-errors.c (dbus_set_error): fix warning
13245
13246         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13247         (_dbus_string_hex_decode): new function
13248         (test_hex_roundtrip): test code
13249
13250         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13251
13252         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13253
13254         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13255         the save-to-temp/rename trick to atomically write the new file
13256         (_dbus_string_parse_uint): new function
13257
13258 2003-02-22  Havoc Pennington  <hp@pobox.com>
13259
13260         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13261
13262 2003-02-22  Havoc Pennington  <hp@pobox.com>
13263
13264         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13265         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13266
13267         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13268
13269         * dbus/test/data/sha-1: add US government test suite for SHA-1
13270
13271 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13272
13273         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13274         Make string arrays NULL-terminated.
13275
13276         * dbus/dbus-memory.c: (dbus_free_string_array):
13277         * dbus/dbus-memory.h:
13278         New function for freeing NULL-terminated string arrays.
13279
13280         * dbus/dbus-message-builder.c: (append_quoted_string),
13281         (_dbus_message_data_load):
13282         Add support for array types.
13283
13284         * dbus/dbus-message.c: (check_message_handling):
13285         Add more types as test cases.
13286
13287         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13288         (_dbus_string_parse_double):
13289         Add the start offset to the end offset.
13290
13291         * test/data/valid-messages/lots-of-arguments.message:
13292         New test message with lots of arguments.
13293
13294 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13295
13296         * dbus/dbus-message.c: (dbus_message_append_nil),
13297         (dbus_message_append_int32), (dbus_message_append_uint32),
13298         (dbus_message_append_double), (dbus_message_append_string),
13299         (dbus_message_append_int32_array),
13300         (dbus_message_append_uint32_array),
13301         (dbus_message_append_double_array),
13302         (dbus_message_append_byte_array),
13303         (dbus_message_append_string_array):
13304         Fix all out-of-memory handling in these functions.
13305
13306 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13307
13308         * dbus/dbus-message.c: (dbus_message_append_nil):
13309         Fix a silly.
13310
13311 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13312
13313         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13314         (dbus_message_append_nil), (dbus_message_append_int32_array),
13315         (dbus_message_append_uint32_array),
13316         (dbus_message_append_double_array),
13317         (dbus_message_append_byte_array),
13318         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13319         (dbus_message_iter_get_int32_array),
13320         (dbus_message_iter_get_uint32_array),
13321         (dbus_message_iter_get_double_array),
13322         (dbus_message_iter_get_byte_array),
13323         (dbus_message_iter_get_string_array):
13324
13325         * dbus/dbus-message.h:
13326         Add functions for appending and getting arrays.
13327
13328 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13329
13330         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13331         element size at least 8 bytes, fixes mempool tests on
13332         64-bit machines.
13333
13334 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13335
13336         * dbus/dbus-transport-unix.c (unix_do_iteration):
13337         Unlock the connection mutex during a blocking select call.
13338         Add todo about how we need a way to wake up the select.
13339
13340         * dbus/dbus-connection-internal.h:
13341         * dbus/dbus-connection.c:
13342         Add _dbus_connection_lock and _dbus_connection_unlock.
13343
13344 2003-02-19  Havoc Pennington  <hp@pobox.com>
13345
13346         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13347         Doxyfile.in, not Doxyfile
13348
13349         * dbus/dbus-keyring.c: do some hacking on this
13350
13351         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13352
13353         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13354         dbus_error_init
13355         (dbus_set_error): remove dbus_error_init, check for message ==
13356         NULL *before* we sprintf into it, and add @todo about including
13357         system headers in this file
13358
13359         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13360
13361         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13362
13363         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13364         get various bits of user information based on either username
13365         or user ID
13366         (_dbus_homedir_from_username): new function
13367
13368 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13369
13370         * configure.in:
13371         Add check for nonposix getpwnam_r
13372
13373         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13374         Align the pool element size to a sizeof (void *) boundary.
13375
13376         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13377         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13378         General Solaris fixes.
13379
13380         * test/data/valid-messages/simplest-manual.message:
13381         Explicitly state that we want little-endian packing.
13382
13383 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13384
13385         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13386
13387         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13388         Added to create a transport connecting using a tcp/ip socket.
13389
13390         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13391         to a tcp socket at given host and port.
13392         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13393         hostname and port.
13394
13395         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13396
13397         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13398         Added to create a server listening on a TCP/IP socket.
13399
13400 2003-02-19  Havoc Pennington  <hp@pobox.com>
13401
13402         Throughout: mop up all the Doxygen warnings and undocumented
13403         stuff.
13404
13405         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13406         to search any paths.
13407
13408         * dbus/dbus-threads.c: move global mutex initializers to
13409         dbus-internals.h, multiple prototypes was confusing doxygen
13410         besides being kind of ugly
13411
13412         * Doxyfile (PREDEFINED): have Doxygen define
13413         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13414         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13415         (do not abuse the feature! it's for stuff like the autogenerated
13416         macros in dbus-md5.c, not just for things you don't feel like
13417         documenting...)
13418
13419 2003-02-18  Havoc Pennington  <hp@pobox.com>
13420
13421         * dbus/dbus-string.c (_dbus_string_zero): new function
13422
13423         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13424         wrap it in some dbus-friendly API
13425
13426         * dbus/dbus-types.h: add 16-bit types
13427
13428 2003-02-18  Joe Shaw  <joe@assbarn.com>
13429
13430         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13431         credentials from our currently running process.
13432         (get_word): Fix a buglet where we were copying the entire length
13433         instead of relative to our position.
13434
13435         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13436         keys on the stack... it's 640k of data.
13437
13438         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13439         read the credentials byte off the socket, even if we don't have
13440         SO_PEERCRED.
13441         (_dbus_poll): Implement poll() using select() for systems which
13442         don't have it.
13443
13444         * glib/test-dbus-glib.c (main): Print out an error if no
13445         parameters are given.
13446
13447         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13448         can fallback to a secondary auth mechanism if the first fails.
13449
13450 2003-02-18  Havoc Pennington  <hp@pobox.com>
13451
13452         * AUTHORS: add Alex
13453
13454 2003-02-17  Havoc Pennington  <hp@pobox.com>
13455
13456         * doc/dbus-specification.sgml: lots of cosmetic
13457         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13458         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13459         s/server/bus/ (except in authentication section). Add a section
13460         "Message Bus Message Routing"
13461
13462 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13463
13464         Release 0.4
13465
13466         * NEWS: Update
13467
13468 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13469
13470         * doc/dbus-specification.sgml:
13471         Specification updates.
13472
13473 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13474
13475         * bus/activation.c: (bus_activation_init), (child_setup),
13476         (bus_activation_activate_service):
13477         * bus/activation.h:
13478         * bus/main.c: (main):
13479         Set DBUS_ADDRESS environment variable.
13480
13481         * dbus/dbus-errors.c: (dbus_set_error):
13482         Don't use va_copy since that's a C99 feature.
13483
13484         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13485         (_dbus_spawn_async):
13486         * dbus/dbus-sysdeps.h:
13487         Add child_setup_func to _dbus_spawn_async.
13488
13489         * doc/dbus-specification.sgml:
13490         Update specification.
13491
13492         * test/spawn-test.c: (setup_func), (main):
13493         Fix test.
13494
13495 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13496
13497         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13498         Added todo.
13499
13500 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13501
13502         * doc/.cvsignore:
13503         * doc/Makefile.am:
13504         * doc/dbus-test-plan.sgml:
13505         Add test plan document.
13506
13507         * test/Makefile.am:
13508         Fix distcheck.
13509
13510 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13511
13512         * dbus/dbus-message.c: (decode_header_data),
13513         (_dbus_message_loader_return_buffer):
13514         Set the header padding amount when loading a message.
13515
13516 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13517
13518         * bus/dispatch.c: (send_one_message):
13519         Only send broadcast messages to registered connections.
13520
13521         * dbus/dbus-message.c: (dbus_message_name_is):
13522         * dbus/dbus-message.h:
13523         New convenience function.
13524
13525         * dbus/dbus-transport-debug.c: (do_reading):
13526         Only dispatch one message per run.
13527
13528         * test/Makefile.am:
13529         * test/bus-test.c: (new_connection_callback), (die),
13530         (test_hello_client1_handler), (test_hello_client2_handler),
13531         (test_hello_replies), (main):
13532
13533         * test/bus-test-loop.[ch]:
13534         Add these.
13535
13536 2003-02-16  Havoc Pennington  <hp@pobox.com>
13537
13538         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13539         backward conditional
13540
13541 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13542
13543         * dbus/dbus-connection.c:
13544         Implement sent_message_with_reply. (with_reply_and block is still
13545         busted).
13546         Made dispatch_message not lose message if OOM.
13547
13548         * dbus/dbus-errors.h:
13549         Add NoReply error (for reply timeouts).
13550
13551 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13552
13553         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13554         Actually free keys and values when destroying hashtable.
13555
13556 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13557
13558         * dbus/dbus-auth.c: (client_try_next_mechanism):
13559         Plug a leak.
13560
13561         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13562         Return TRUE if there's no thread implementation around.
13563
13564         * glib/dbus-gmain.c: (free_source),
13565         (dbus_connection_hookup_with_g_main):
13566         Make sure to remove the GSource when the connection is finalized.
13567
13568 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13569
13570         * bus/dispatch.c: (bus_dispatch_message_handler):
13571         * dbus/dbus-errors.h:
13572         Return an error if someone tries to send a message to a service
13573         that doesn't exist.
13574
13575 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13576
13577         * bus/activation.c: (load_directory), (bus_activation_init),
13578         (bus_activation_activate_service):
13579         * bus/activation.h:
13580         * bus/driver.c:
13581         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13582         More work on the activation handling.
13583
13584         * dbus/dbus-errors.h:
13585         Add some error messages
13586
13587         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13588         * dbus/dbus-message.h:
13589         New function that creates an error message.
13590
13591         * dbus/dbus-protocol.h:
13592         Add ACTIVATE_SERVER message.
13593
13594         * dbus/dbus-server-unix.c: (unix_handle_watch),
13595         (_dbus_server_new_for_domain_socket):
13596         Call _dbus_fd_set_close_on_exec.
13597
13598         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13599         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13600         (_dbus_fd_set_close_on_exec):
13601         * dbus/dbus-sysdeps.h:
13602         Add _dbus_fd_set_close_on exec function. Also add function that checks
13603         that all open fds are set to close-on-exec and warns otherwise.
13604
13605         * dbus/dbus-transport-unix.c:
13606         (_dbus_transport_new_for_domain_socket):
13607         Call _dbus_fd_set_close_on_exec.
13608
13609 2003-02-16  Havoc Pennington  <hp@pobox.com>
13610
13611         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13612         allow people to avoid setting SIGPIPE to SIG_IGN
13613         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13614         we've been asked not to
13615
13616 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13617
13618         * dbus/dbus-list.c: (_dbus_list_append_link),
13619         (_dbus_list_prepend_link):
13620         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13621         (dbus_realloc):
13622         Warning fixes.
13623
13624 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13625
13626         * bus/Makefile.am:
13627         * bus/activation.c: (bus_activation_entry_free),
13628         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13629         * bus/activation.h:
13630         * bus/main.c: (main):
13631         Add simple activation support, doesn't work yet though.
13632
13633 2003-02-15   Zack Rusin  <zack@kde.org>
13634
13635         * qt/dbus-qthread.cpp:  small casting fix
13636
13637 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13638
13639         * dbus/dbus-errors.c: (dbus_set_error):
13640         * dbus/dbus-errors.h:
13641         Add a few errors and make dbus_set_error void.
13642
13643         * dbus/dbus-sysdeps.c:
13644         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13645         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13646         * dbus/dbus-sysdeps.h:
13647         Add _dbus_spawn_async.
13648
13649         * test/spawn-test.c: (main):
13650         Test for _dbus_spawn_async.
13651
13652 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13653
13654         * dbus/dbus-internals.h:
13655         Fix build without tests.
13656
13657         * dbus/dbus-list.c: (alloc_link):
13658         Fix a segfault when a malloc fails.
13659
13660         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13661         (dbus_malloc0), (dbus_realloc):
13662         Add support for malloc debugging.
13663
13664 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13665
13666         * dbus/dbus-threads.c:
13667         * dbus/dbus-threads.h:
13668         Add condvars. Remove static mutext from API.
13669         Implement static mutexes by initializing them from threads_init.
13670
13671         * glib/dbus-gthread.c:
13672         * qt/dbus-qthread.cpp:
13673         Update with the thread api changes.
13674
13675
13676         * dbus/dbus-list.c:
13677         * dbus/dbus-list.h:
13678         Turn StaticMutex into normal mutex + init function.
13679         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13680         _dbus_list_append_link, _dbus_list_prepend_link
13681
13682
13683         * dbus/dbus-sysdeps.c:
13684         * dbus/dbus-sysdeps.h:
13685         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13686         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13687
13688         * dbus/dbus-protocol.h:
13689         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13690
13691         * dbus/dbus-message.c:
13692         Make ref/unref atomic.
13693         Fix some docs.
13694
13695         * dbus/dbus-connection-internal.h:
13696         * dbus/dbus-connection.c:
13697         * dbus/dbus-connection.h:
13698         Make threadsafe.
13699         Change _peek to _borrow,_return & _steal_borrowed.
13700         Change disconnect callback to event.
13701         Make dbus_connection_dispatch_messages reentrant.
13702
13703         * dbus/dbus-transport.c:
13704         Don't ref the connection on calls to the transport
13705         implementation.
13706
13707         * dbus/dbus-message-handler.c:
13708         Make threadsafe.
13709
13710         * glib/dbus-gmain.c:
13711         Don't use peek_message anymore
13712
13713         * test/Makefile.am:
13714         * test/debug-thread.c:
13715         * test/debug-thread.h:
13716         Simple thread implementation that asserts() on deadlocks in
13717         single-threaded code.
13718
13719         * test/bus-test.c:
13720         (main) Call debug_threads_init.
13721
13722         * test/watch.c:
13723         Use disconnect message instead of disconnect callback.
13724
13725         * bus/connection.c:
13726         * bus/connection.h:
13727         Don't call dbus_connection_set_disconnect_function. Instead export
13728         bus_connection_disconnect.
13729
13730         * bus/dispatch.c:
13731         Call bus_connection_disconnect when we get a disconnected message.
13732
13733 2003-02-15  Havoc Pennington  <hp@pobox.com>
13734
13735         * dbus/dbus-message.c (dbus_message_new): fool around with the
13736         docs
13737
13738 2003-02-14  Havoc Pennington  <hp@pobox.com>
13739
13740         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13741
13742         * dbus/dbus-memory.c: fail if the debug functions indicate we
13743         should
13744
13745         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13746         (_dbus_decrement_fail_alloc_counter): debug functions to
13747         simulate memory allocation failures
13748
13749 2003-02-14  Havoc Pennington  <hp@pobox.com>
13750
13751         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13752         to DBusError
13753
13754 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13755
13756         * bus/driver.c: (bus_driver_handle_hello):
13757         * bus/driver.h:
13758         * bus/services.c: (bus_service_lookup):
13759         Reorder message sending so we get a more sane order.
13760
13761         * test/bus-test.c: (message_handler):
13762         Fix tyop.
13763
13764 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13765
13766         * bus/driver.c: (bus_driver_send_service_deleted),
13767         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13768         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13769         (bus_driver_send_welcome_message),
13770         (bus_driver_handle_list_services),
13771         (bus_driver_handle_acquire_service),
13772         (bus_driver_handle_service_exists):
13773         * dbus/dbus-bus.c: (dbus_bus_register_client),
13774         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13775         * dbus/dbus-errors.c: (dbus_result_to_string):
13776         * dbus/dbus-errors.h:
13777         * dbus/dbus-message.c: (dbus_message_append_args),
13778         (dbus_message_append_args_valist), (dbus_message_get_args),
13779         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13780         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13781         (dbus_message_iter_get_byte_array),
13782         (dbus_message_iter_get_string_array), (message_iter_test),
13783         (check_message_handling), (_dbus_message_test):
13784         * dbus/dbus-message.h:
13785         * test/bus-test.c: (main):
13786         Change fields to arguments in messages, so that they won't be
13787         confused with header fields.
13788
13789         * glib/test-dbus-glib.c: (main):
13790         Remove append_fields from hello message.
13791
13792 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13793
13794         * dbus/dbus-errors.c:
13795         * dbus/dbus-message.c:
13796         * dbus/dbus-string.c:
13797         Documentation fixes.
13798
13799 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13800
13801         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13802         (remove_timeout):
13803         Implement support for timeouts in dbus-glib.
13804
13805 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13806
13807         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13808         * dbus/dbus-message.c: (process_test_subdir):
13809         * test/break-loader.c: (find_breaks_based_on):
13810         Plug some memory leaks.
13811
13812 2003-02-13  Richard Hult  <rhult@codefactory.se>
13813
13814         * bus/main.c: Fix build.
13815
13816         * dbus/dbus-errors.h:
13817         * dbus/dbus-errors.c: Fix copyright for Anders.
13818
13819 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13820
13821         * bus/Makefile.am:
13822         Add utils.[ch]
13823
13824         * bus/connection.c: (bus_connection_foreach):
13825         Fix a warning.
13826
13827         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13828         (unescape_string), (new_section), (parse_section_start),
13829         (parse_key_value), (report_error), (bus_desktop_file_load),
13830         (bus_desktop_file_get_string):
13831         * bus/desktop-file.h:
13832         Use DBusError for error reporting.
13833
13834         * bus/dispatch.c: (send_one_message),
13835         (bus_dispatch_message_handler):
13836         * bus/driver.c: (bus_driver_send_service_deleted),
13837         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13838         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13839         (bus_driver_send_welcome_message),
13840         (bus_driver_handle_list_services),
13841         (bus_driver_handle_acquire_service),
13842         (bus_driver_handle_service_exists):
13843         * bus/loop.c: (bus_loop_run):
13844         * bus/main.c:
13845         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13846
13847         * bus/utils.c: (bus_wait_for_memory):
13848         * bus/utils.h:
13849         New files with general utility functions.
13850
13851         * dbus/dbus-internals.h:
13852         Remove _DBUS_HANDLE_OOM.
13853
13854 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13855
13856         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13857         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13858         * dbus/dbus-errors.h:
13859         Add DBusError structure.
13860
13861 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13862
13863         * test/data/valid-messages/standard-acquire-service.message:
13864         * test/data/valid-messages/standard-hello.message:
13865         * test/data/valid-messages/standard-list-services.message:
13866         * test/data/valid-messages/standard-service-exists.message:
13867         Add some standard messages.
13868
13869 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13870
13871         * bus/driver.c: (bus_driver_send_welcome_message),
13872         (bus_driver_handle_list_services),
13873         (bus_driver_handle_acquire_service),
13874         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13875         Update for API changes in libdbus.
13876
13877         * dbus/dbus-message.c: (dbus_message_new_reply):
13878         * dbus/dbus-message.h:
13879         Remove the name argument. The spec states that replies shouldn't
13880         have a name.
13881
13882 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13883
13884         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13885         (report_error), (bus_desktop_file_load), (lookup_section),
13886         (lookup_line), (bus_desktop_file_get_raw),
13887         (bus_desktop_file_get_string):
13888         * bus/desktop-file.h:
13889         Some fixes, and new functions for getting a key value from a section.
13890
13891 2003-02-13  Havoc Pennington  <hp@pobox.com>
13892
13893         * test/data/auth/fail-after-n-attempts.auth-script: new test
13894
13895         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13896         reject the client.
13897
13898 2003-02-13  Havoc Pennington  <hp@pobox.com>
13899
13900         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13901         dbus_credentials_match were backward
13902
13903         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13904         NO_CREDENTIALS and ROOT_CREDENTIALS
13905
13906         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13907         into here. Never process more commands after we've reached an
13908         end state; store further data as unused bytes.
13909
13910         * test/data/auth/*: add more auth tests
13911
13912         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13913         command to match exact string and EXPECT_UNUSED to match unused
13914         bytes
13915
13916         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13917
13918 2003-02-12  Havoc Pennington  <hp@pobox.com>
13919
13920         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13921         \r off of popped lines
13922
13923         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13924         scripts
13925
13926         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13927         SEND, append \r\n
13928
13929 2003-02-12  Havoc Pennington  <hp@pobox.com>
13930
13931         * dbus/Makefile.am: remove break-loader from the build, since it
13932         moved.
13933
13934         * configure.in: add --enable-gcov to turn on coverage profiling
13935         flags and disable optimization
13936
13937 2003-02-10  Havoc Pennington  <hp@pobox.com>
13938
13939         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13940         initial cut at test framework for DBusAuth from laptop.
13941         Doesn't quite work yet but it compiles and I need to get
13942         it off the 266mhz laptop. ;-)
13943
13944         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13945         fix a memleak in error case
13946
13947 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13948
13949         * bus/Makefile.am:
13950         * bus/desktop-file.c:
13951         * bus/desktop-file.h:
13952         Add a desktop file parser.
13953
13954 2003-02-11  Zack Rusin  <zack@kde.org>
13955
13956         * qt/message.[h|cpp]: sample implementation
13957         of the KDE wrapper for DBusMessage
13958
13959 2003-02-09  Zack Rusin  <zack@kde.org>
13960
13961         * test/bus-test.c: make_it_compile
13962         * doc/dbus-specification.sgml: minimal semantic fix
13963
13964 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13965
13966         Release 0.3
13967
13968         * NEWS: Update
13969
13970 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13971
13972         * dbus/Makefile.am:
13973         * dbus/dbus-break-loader.c:
13974         * test/Makefile.am:
13975         * test/break-loader.c:
13976         Move dbus-break-loader to test/ and rename it to break-loader.
13977
13978 2003-02-02  Havoc Pennington  <hp@pobox.com>
13979
13980         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13981         for code to manage cookies in your home directory
13982
13983         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13984
13985         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13986         to authenticate, then disconnect the client.
13987
13988 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13989
13990         * dbus/dbus-message.c (dbus_message_append_fields):
13991         Correct docs.
13992
13993 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13994
13995         * doc/dbus-specification.sgml:
13996         Update address format section.
13997
13998 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13999
14000         * test/Makefile.am:
14001         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14002         (message_handler), (new_connection_callback), (loop_quit),
14003         (loop_run), (main):
14004         Add bus test.
14005
14006 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14007
14008         * bus/driver.c: (bus_driver_handle_service_exists):
14009         Simplify the code a bit.
14010
14011         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14012         Fix a silly.
14013
14014 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14015
14016         * bus/Makefile.am:
14017         Add libdbus-daemon.la and link to it.
14018
14019 2003-02-01  James Willcox  <jwillcox@gnome.org>
14020
14021         * bus/driver.c: (bus_driver_handle_own_service):
14022         Actually include the service reply code in the message.
14023
14024 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14025
14026         * bus/driver.c: (bus_driver_handle_service_exists):
14027         Don't unref the incoming message.
14028
14029 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14030
14031         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14032
14033 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14034
14035         * dbus/dbus-server.c: (dbus_server_listen):
14036         * dbus/dbus-transport.c: (_dbus_transport_open):
14037         ifdef out the calls to the debug transport and server.
14038
14039 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14040
14041         * dbus/dbus-watch.c (dbus_watch_get_flags):
14042         Add note in the docs that ERROR or HANGUP won't be returned
14043         and are assumed always on.
14044
14045         * glib/dbus-gmain.c (add_watch):
14046         Always add IO_ERR | IO_HUP
14047
14048         * dbus/dbus-message.h:
14049         Add semicolon after dbus_message_iter_get_string_array().
14050         Makes qt code build again
14051
14052 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14053
14054         * bus/driver.c: (create_unique_client_name),
14055         (bus_driver_handle_hello):
14056         Don't take a name, just use a numeric id to identify
14057         each client.
14058
14059         * dbus/Makefile.am:
14060         * dbus/dbus-bus.c: (dbus_bus_register_client),
14061         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14062         * dbus/dbus-bus.h:
14063         Add new convenience functions for communicating with the bus.
14064
14065         * dbus/dbus-message.h:
14066
14067         * dbus/dbus-protocol.h:
14068         Fix a typo.
14069
14070 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14071
14072         * dbus/dbus-message.c (dbus_message_append_fields):
14073         Add some more doc comments.
14074
14075 2003-02-01  Havoc Pennington  <hp@pobox.com>
14076
14077         * dbus/dbus-break-loader.c (randomly_modify_length): change
14078         a 4-byte value in the message as if it were a length
14079
14080         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14081         execute bit on saved files
14082
14083 2003-02-01  Havoc Pennington  <hp@pobox.com>
14084
14085         * dbus/dbus-break-loader.c (main): new program to find messages
14086         that break the loader.
14087
14088         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14089         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14090
14091         * dbus/dbus-string.c (_dbus_string_set_byte): new
14092
14093 2003-01-31  Havoc Pennington  <hp@pobox.com>
14094
14095         * dbus/dbus-message.c: refactor the test code to be more general,
14096         in preparation for writing a "randomly permute test cases to
14097         try to break the loader" program.
14098
14099 2003-01-31  Havoc Pennington  <hp@pobox.com>
14100
14101         * doc/dbus-specification.sgml: work on the specification
14102
14103         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14104         the protocol version of the message.
14105
14106         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14107         no longer specifies that.
14108         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14109         1/2/3/4)
14110
14111         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14112         "break" for DBUS_TYPE_NIL, remove @todo
14113
14114 2003-01-31  Havoc Pennington  <hp@pobox.com>
14115
14116         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14117         just set_is_error/get_is_error as this is a commonly-used
14118         function, and write docs.
14119
14120 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14121
14122         * dbus/dbus-address.c: (dbus_address_entry_free):
14123         Free key and value lists.
14124
14125         * dbus/dbus-internals.c: (_dbus_type_to_string):
14126         Add the types we didn't have.
14127
14128         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14129         (_dbus_marshal_validate_arg):
14130         Add NIL types.
14131
14132         * dbus/dbus-message.c: (dbus_message_set_sender):
14133         Remove todo about being able to set sender to NULL.
14134
14135         (dbus_message_set_is_error_reply),
14136         (dbus_message_get_is_error_reply):
14137         * dbus/dbus-message.h:
14138         New functions.
14139
14140         * dbus/dbus-protocol.h:
14141         Add error reply flag.
14142
14143         * test/data/valid-messages/opposite-endian.message:
14144         Add NIL type to test.
14145
14146 2003-01-31  Havoc Pennington  <hp@pobox.com>
14147
14148         * doc/dbus-specification.sgml: fully specify the header.  Add
14149         flags and major protocol version, and change header/body len to
14150         unsigned.
14151
14152         * dbus/dbus-message-builder.c (append_saved_length): append length
14153         as uint32
14154
14155         * dbus/dbus-message.c (dbus_message_create_header): change header
14156         length and body length to unsigned. Add the new fields from the
14157         spec
14158         (_dbus_message_loader_return_buffer): unsigned header/body len
14159
14160 2003-01-30  Havoc Pennington  <hp@pobox.com>
14161
14162         * dbus/dbus-auth.c: rework to use only REJECTED, no
14163         MECHANISMS
14164
14165         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14166         use REJECTED, suggested by Mark McLoughlin
14167
14168 2003-01-30  Havoc Pennington  <hp@pobox.com>
14169
14170         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14171         a better way to report errors here. e.g.  "unix address lacks
14172         path" or something. also "no such file" when the path doesn't
14173         exist, etc.
14174
14175         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14176         leaking list nodes
14177         (dbus_parse_address): add @todo about documenting address format,
14178         and allowing , and ; to be escaped
14179
14180 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14181
14182         * dbus/Makefile.am:
14183         Add dbus-address.[ch]
14184
14185         * dbus/dbus-address.c: (dbus_address_entry_free),
14186         (dbus_address_entries_free), (create_entry),
14187         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14188         (dbus_parse_address), (_dbus_address_test):
14189         * dbus/dbus-address.h:
14190         New files for dealing with address parsing.
14191
14192         * dbus/dbus-connection.c:
14193         Document timeout functions.
14194
14195         * dbus/dbus-message.c:
14196         Document dbus_message_new_from_message.
14197
14198         * dbus/dbus-server-debug.c:
14199         Document.
14200
14201         * dbus/dbus-server.c: (dbus_server_listen):
14202         Parse address and use correct server implementation.
14203
14204         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14205         * dbus/dbus-string.h:
14206         New function with test.
14207
14208         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14209         * dbus/dbus-test.h:
14210         Add address tests.
14211
14212         * dbus/dbus-transport-debug.c:
14213         Document.
14214
14215         * dbus/dbus-transport.c: (_dbus_transport_open):
14216         Parse address and use correct transport implementation.
14217
14218 2003-01-30  Havoc Pennington  <hp@pobox.com>
14219
14220         * dbus/dbus-message.c: use message->byte_order instead of
14221         DBUS_COMPILER_BYTE_ORDER throughout.
14222         (dbus_message_create_header): pad header to align the
14223         start of the body of the message to 8-byte boundary
14224
14225         * dbus/dbus-marshal.h: make all the demarshalers take const
14226         DBusString arguments.
14227
14228         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14229         validate message args here, so we don't have to do slow validation
14230         later, and so we catch bad messages as they are incoming. Also add
14231         better checks on header_len and body_len. Also fill in
14232         message->byte_order
14233
14234         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14235         implemented properly)
14236         (_dbus_string_validate_nul): new function to check all-nul
14237
14238         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14239         get_arg_end_pos and remove all validation
14240         (_dbus_marshal_validate_arg): actually do validation here.
14241
14242 2003-01-29  Havoc Pennington  <hp@pobox.com>
14243
14244         * dbus/dbus-message.c (check_message_handling): fix assertion
14245         failure on set_client_serial
14246
14247 2003-01-28  Havoc Pennington  <hp@pobox.com>
14248
14249         * dbus/dbus-server-debug.c: Add doc section comments
14250
14251         * dbus/dbus-transport-debug.c: add doc section comments
14252
14253 2003-01-28  Havoc Pennington  <hp@redhat.com>
14254
14255         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14256         the reverse order from how I had it
14257         (_dbus_string_base64_encode): reverse encoding order. I was
14258         basically byteswapping everything during encoding.
14259
14260 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14261
14262         * dbus/dbus-connection-internal.h:
14263         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14264         (_dbus_connection_remove_timeout):
14265         Add functions for adding and removing timeouts.
14266
14267         * dbus/dbus-message.c: (dbus_message_new_from_message):
14268         Add new function that takes a message and creates an exact
14269         copy of it, but with the refcount set to 1.
14270         (check_message_handling):
14271         Fix build error.
14272
14273         * dbus/dbus-server-protected.h:
14274         * dbus/dbus-server.c: (_dbus_server_init_base),
14275         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14276         (dbus_server_set_timeout_functions):
14277         (_dbus_server_remove_timeout):
14278         New functions so that a server can add and remove timeouts.
14279
14280         (dbus_server_listen):
14281         Add commented out call to dbus_server_debug_new.
14282
14283         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14284         Actually set the handler, doh.
14285
14286         * dbus/dbus-transport.c: (_dbus_transport_open):
14287         Add commented out call to dbus_transport_debug_client_new.
14288
14289         * dbus/Makefile.am:
14290         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14291
14292 2003-01-28  Havoc Pennington  <hp@pobox.com>
14293
14294         * dbus/dbus-message.c (check_message_handling): function to check
14295         on the loaded message, iterates over it etc.
14296
14297 2003-01-28  Havoc Pennington  <hp@pobox.com>
14298
14299         * test/Makefile.am (dist-hook): fix make distdir
14300
14301         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14302
14303 2003-01-27  Havoc Pennington  <hp@pobox.com>
14304
14305         * dbus/dbus-mempool.c (time_for_size): replace printf with
14306         _dbus_verbose
14307
14308         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14309         empty lines; fix the SAVE_LENGTH stuff to be
14310         START_LENGTH/END_LENGTH so it actually works; couple other
14311         bugfixes
14312
14313         * test/Makefile.am (dist-hook): add dist-hook for .message files
14314
14315         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14316         can be constant or locked.
14317         (_dbus_string_free): allow freeing a const string as
14318         documented/intended
14319
14320         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14321
14322         * dbus/dbus-test-main.c (main): take an argument which is the
14323         directory containing test data
14324
14325         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14326         argument to this and load all the messages in test/data/
14327         checking that they can be loaded or not loaded as appropriate.
14328
14329 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14330
14331         * bus/dispatch.c: (bus_dispatch_message_handler):
14332         Dispatch messages sent to services.
14333
14334         * bus/driver.c: (bus_driver_send_service_deleted),
14335         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14336         (bus_driver_send_service_acquired):
14337         Add helper functions for sending service related messages.
14338
14339         (bus_driver_send_welcome_message):
14340         Send HELLO_REPLY instead of WELCOME.
14341
14342         (bus_driver_handle_list_services):
14343         Send LIST_SERVICES_REPLY instead of SERVICES.
14344
14345         (bus_driver_handle_own_service),
14346         (bus_driver_handle_service_exists):
14347         New message handlers.
14348
14349         (bus_driver_handle_message):
14350         Invoke new message handlers.
14351
14352         (bus_driver_remove_connection):
14353         Don't remove any services here since that's done automatically
14354         by bus_service_remove_owner now.
14355
14356         * bus/driver.h:
14357         New function signatures.
14358
14359         * bus/services.c: (bus_service_add_owner):
14360         Send ServiceAcquired message if we're the only primary owner.
14361
14362         (bus_service_remove_owner):
14363         Send ServiceAcquired/ServiceLost messages.
14364
14365         (bus_service_set_prohibit_replacement),
14366         (bus_service_get_prohibit_replacement):
14367         Functions for setting prohibit replacement.
14368
14369         (bus_service_has_owner):
14370         New function that checks if a connection is in the owner queue of
14371         a certain service.
14372
14373         * bus/services.h:
14374         Add new function signatures.
14375
14376         * dbus/dbus-list.c: (_dbus_list_test):
14377         Add tests for _dbus_list_remove_last and traversing the list backwards.
14378
14379         * dbus/dbus-list.h:
14380         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14381         go any further, so return NULL then.
14382
14383         * dbus/dbus-protocol.h:
14384         Add new messages, service flags and service replies.
14385
14386 2003-01-26  Havoc Pennington  <hp@pobox.com>
14387
14388         * dbus/dbus-message-builder.c: implement, completely untested.
14389
14390         * test/data/*: add data to be used in testing.
14391         ".message" files are our simple loadable text format.
14392         ".message-raw" will be binary dumps of messages.
14393
14394         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14395
14396 2003-01-26  Havoc Pennington  <hp@pobox.com>
14397
14398         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14399
14400         * dbus/dbus-errors.c (dbus_result_to_string): add
14401         file errors
14402
14403         * dbus/dbus-message-builder.c: new file, will contain code to load
14404         up messages from files. Not implemented yet.
14405
14406 2003-01-26  Havoc Pennington  <hp@pobox.com>
14407
14408         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14409         the sender by setting to NULL
14410
14411 2003-01-26  Havoc Pennington  <hp@pobox.com>
14412
14413         The unit tests pass, but otherwise untested.  If it breaks, the
14414         tests should have been better. ;-)
14415
14416         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14417         the connection.
14418
14419         * dbus/dbus-message.c: redo everything so we maintain
14420         message->header as the only copy of the various fields.
14421         This avoids the possibility of out-of-memory in some cases,
14422         for example dbus_message_lock() can't run out of memory anymore,
14423         and avoids extra copying. Figured I may as well go ahead and do
14424         this since it was busted for dbus_message_lock to not return
14425         failure on OOM, and dbus_message_write_header was totally
14426         unchecked for OOM. Also fixed some random other bugs.
14427
14428         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14429         that strings are nul-terminated. Also, end_pos can be equal
14430         to string length just not greater than, I think.
14431         (_dbus_marshal_set_int32): new function
14432         (_dbus_marshal_set_uint32): new function
14433         (_dbus_marshal_set_string): new function
14434
14435         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14436         a warning, init timeout_list to NULL
14437         (dbus_connection_send_message): don't use uninitialized variable
14438         "serial"
14439
14440         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14441
14442 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14443
14444         * bus/driver.c: (bus_driver_handle_hello),
14445         (bus_driver_send_welcome_message):
14446         Plug leaks
14447
14448 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14449
14450         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14451         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14452         (dbus_connection_unref):
14453         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14454         * dbus/dbus-message.c: (dbus_message_unref),
14455         Plug memory leaks.
14456
14457         (dbus_message_get_fields):
14458         Remove debugging printout.
14459
14460         (_dbus_message_loader_return_buffer):
14461         Don't store the header string.
14462
14463         (_dbus_message_test):
14464         Plug leaks.
14465
14466 2003-01-26  Richard Hult  <rhult@codefactory.se>
14467
14468         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14469         the file descriptor list, since it can change under us.
14470
14471 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14472
14473         * glib/dbus-gmain.c: (dbus_connection_prepare),
14474         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14475         (remove_watch), (dbus_connection_hookup_with_g_main):
14476         Rewrite the glib handling to use its own GSource instead of a
14477         GIOChannel so we can catch messages put in the queue while waiting
14478         for a reply.
14479
14480 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14481
14482         * bus/Makefile.am:
14483         * bus/connection.c: (connection_disconnect_handler),
14484         (connection_watch_callback), (bus_connection_setup):
14485         * bus/dispatch.c: (send_one_message),
14486         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14487         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14488         * bus/dispatch.h:
14489         * bus/driver.c: (bus_driver_send_service_deleted),
14490         (bus_driver_send_service_created), (bus_driver_handle_hello),
14491         (bus_driver_send_welcome_message),
14492         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14493         (bus_driver_handle_message):
14494         * bus/driver.h:
14495         Refactor code, put the message dispatching in its own file. Use
14496         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14497         is disconnected.
14498
14499 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14500
14501         * dbus/dbus-internals.h:
14502         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14503
14504         * dbus/dbus-message.c: (dbus_message_get_sender):
14505         * dbus/dbus-message.h:
14506         Implement dbus_message_get_sender.
14507
14508         * dbus/dbus-protocol.h:
14509         Add message and service defines.
14510
14511 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14512
14513         * dbus/dbus-connection.c: (dbus_connection_send_message):
14514         * dbus/dbus-message-internal.h:
14515         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14516         (dbus_message_write_header):
14517         Remove _dbus_messag_unlock and don't set the client serial on a
14518         message if one already exists.
14519
14520 2003-01-24  Havoc Pennington  <hp@pobox.com>
14521
14522         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14523         list_pool
14524
14525         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14526         on OOM
14527
14528 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14529
14530         * dbus/dbus-list.c: (alloc_link), (free_link):
14531         Use a memory pool for the links.
14532
14533 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14534
14535         * bus/connection.c: (bus_connection_foreach):
14536         * bus/connection.h:
14537         Add new bus_connection_foreach function.
14538
14539         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14540         Add function that broadcasts a message to all clients.
14541
14542         (bus_driver_send_service_created), (bus_driver_handle_hello),
14543         (bus_driver_send_welcome_message),
14544         (bus_driver_handle_list_services), (bus_driver_message_handler):
14545         Implement functions that take care of listing services, and notifying
14546         clients when new services are created.
14547
14548         * bus/services.c: (bus_services_list):
14549         * bus/services.h:
14550         Add new function that returns an array of strings with the currently
14551         registered services.
14552
14553         * glib/dbus-glib.h:
14554         * glib/dbus-gmain.c:
14555         Update copyright year.
14556
14557 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14558
14559         * dbus/dbus-connection.c: (dbus_connection_send_message):
14560         Unlock the message in case it was sent earlier.
14561
14562         (dbus_connection_send_message_with_reply_and_block):
14563         Remove the reply message from the list.
14564
14565         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14566         Set array_len and new_pos correctly.
14567
14568         (_dbus_marshal_test):
14569         Remove debug output.
14570
14571         * dbus/dbus-message-internal.h:
14572         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14573         New function that returns the reply serial.
14574
14575         (_dbus_message_unlock):
14576         New function that unlocks a message and resets its header.
14577
14578         (dbus_message_append_string_array),
14579         (dbus_message_get_fields_valist),
14580         (dbus_message_iter_get_field_type),
14581         (dbus_message_iter_get_string_array),
14582         (dbus_message_get_fields),
14583         (dbus_message_append_fields_valist):
14584         Handle string arrays.
14585
14586         (dbus_message_set_sender):
14587         Make this function public since the bus daemon needs it.
14588
14589         (decode_header_data):
14590         Set the reply serial to -1 initially.
14591
14592         * dbus/dbus-message.h:
14593         Add dbus_message_set_sender.
14594
14595 2003-01-24  Havoc Pennington  <hp@pobox.com>
14596
14597         * doc/dbus-specification.sgml: add some stuff
14598
14599 2003-01-22  Havoc Pennington  <hp@pobox.com>
14600
14601         * doc/dbus-specification.sgml: Start to document the protocol.
14602
14603 2003-01-22  Havoc Pennington  <hp@pobox.com>
14604
14605         * dbus/dbus-connection.c
14606         (dbus_connection_send_message_with_reply_and_block): add some @todo
14607
14608         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14609
14610 2003-01-21  Havoc Pennington  <hp@pobox.com>
14611
14612         (patch untested because can't compile)
14613
14614         * bus/driver.c (create_unique_client_name): make this function
14615         never recycle client names. Also, caller should initialize
14616         the DBusString.
14617
14618         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14619
14620 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14621
14622         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14623         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14624         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14625         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14626         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14627         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14628         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14629         * dbus/dbus-marshal.h:
14630         * dbus/dbus-protocol.h:
14631         Add support for marshalling and demarshalling integer, double
14632         and string arrays.
14633
14634 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14635
14636         * bus/Makefile.am:
14637         Add driver.[ch]
14638
14639         * bus/connection.c: (connection_disconnect_handler):
14640         Remove the connection from the bus driver's list.
14641
14642         (connection_watch_callback): Dispatch messages.
14643
14644         (free_connection_data): Free connection name.
14645
14646         (bus_connection_setup): Add connection to the bus driver's list.
14647         (bus_connection_remove_owned_service):
14648         (bus_connection_set_name), (bus_connection_get_name):
14649         Add functions for setting and getting the connection's name.
14650
14651         * bus/connection.h:
14652         Add function headers.
14653
14654         * bus/driver.c: (create_unique_client_name),
14655         (bus_driver_handle_hello_message),
14656         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14657         (bus_driver_add_connection), (bus_driver_remove_connection):
14658         * bus/driver.h:
14659         * bus/main.c:
14660         * bus/services.c: (bus_service_free):
14661         * bus/services.h:
14662         New file that handles communication and registreation with the bus
14663         itself.
14664
14665 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14666
14667         * dbus/dbus-connection.c: (dbus_connection_send_message):
14668         Add a new client_serial parameter.
14669
14670         (dbus_connection_send_message_with_reply):
14671         Remove a @todo since we've implemented the blocking function.
14672
14673         (dbus_connection_send_message_with_reply_and_block):
14674         New function that sends a message and waits for a reply and
14675         then returns the reply.
14676
14677         * dbus/dbus-connection.h:
14678         Add new functions.
14679
14680         * dbus/dbus-errors.c: (dbus_result_to_string):
14681         * dbus/dbus-errors.h:
14682         Add new DBUS_RESULT.
14683
14684         * dbus/dbus-message-internal.h:
14685         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14686         (_dbus_message_set_sender), (dbus_message_write_header),
14687         (dbus_message_new_reply), (decode_header_data),
14688         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14689         * dbus/dbus-message.h:
14690         Add new functions that set the reply serial and sender.
14691         Also marshal and demarshal them correctly and add test.
14692
14693         * dbus/dbus-protocol.h:
14694         Add new DBUS_MESSAGE_TYPE_SENDER.
14695
14696         * glib/dbus-glib.h:
14697         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14698         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14699         (dbus_connection_hookup_with_g_main):
14700         * glib/test-dbus-glib.c: (main):
14701         Rewrite to use GIOChannel and remove the GSource crack.
14702
14703         * test/echo-client.c: (main):
14704         * test/watch.c: (check_messages):
14705         Update for changed APIs
14706
14707 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14708
14709         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14710
14711         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14712         Create a DBusTimeoutList.
14713         (dbus_connection_set_timeout_functions): Add new function to
14714         set timeout callbacks
14715
14716         * dbus/dbus-connection.h: Add public DBusTimeout API.
14717
14718         * dbus/dbus-message.c: (dbus_message_get_service):
14719         * dbus/dbus-message.h:  New function.
14720
14721         * dbus/dbus-server.c: Fix small doc typo.
14722
14723         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14724
14725 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14726
14727         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14728         of the string, just as long as specified.
14729
14730 2003-01-19  Havoc Pennington  <hp@pobox.com>
14731
14732         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14733         new function
14734
14735         * dbus/dbus-server.c (dbus_server_set_max_connections)
14736         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14737         keep track of current number of connections, and add API for
14738         setting a max (but haven't implemented enforcing the max yet)
14739
14740 2003-01-18  Havoc Pennington  <hp@pobox.com>
14741
14742         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14743         reading/writing if read_watch != NULL or write_watch != NULL.
14744
14745         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14746         the message loader code to actually load message->header and
14747         message->body into the newly-created message.
14748
14749         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14750         in OOM case
14751
14752         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14753         (dbus_connection_get_max_message_size)
14754         (dbus_connection_set_max_live_messages_size)
14755         (dbus_connection_get_max_live_messages_size): implement some
14756         resource limitation functions
14757
14758         * dbus/dbus-resources.c: new file implementing some of the
14759         resource limits stuff
14760
14761         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14762         missing docs, add @todo to handle OOM etc.
14763
14764         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14765         docs
14766
14767 2003-01-18  Havoc Pennington  <hp@pobox.com>
14768
14769         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14770         connection if it hasn't been already.
14771
14772         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14773         replace with DisconnectFunction.
14774
14775 2003-01-18  Havoc Pennington  <hp@pobox.com>
14776
14777         Building --disable-verbose-mode --disable-asserts --disable-tests
14778         cuts the library from 112K to 45K or so
14779
14780         * configure.in: check for varargs macro support,
14781         add --enable-verbose-mode, --enable-asserts.
14782
14783         * dbus/dbus-internals.h (_dbus_assert): support
14784         DBUS_DISABLE_ASSERT
14785         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14786
14787 2003-01-18  Havoc Pennington  <hp@pobox.com>
14788
14789         * dbus/dbus-test.c: include config.h so that tests actually run
14790
14791         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14792         so the failure mode when that assumption fails will be plenty
14793         obvious.
14794
14795 2003-01-18  Havoc Pennington  <hp@pobox.com>
14796
14797         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14798
14799         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14800         the distribution
14801
14802         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14803         since we don't want to use those in make check
14804
14805 2003-01-15  Havoc Pennington  <hp@redhat.com>
14806
14807         Release 0.2
14808
14809         * NEWS: update
14810
14811 2003-01-15  Havoc Pennington  <hp@redhat.com>
14812
14813         * test/Makefile.am: fix so that test source code ends up in the
14814         distribution on make distcheck
14815
14816 2003-01-15  Havoc Pennington  <hp@redhat.com>
14817
14818         Release 0.1.
14819
14820         * NEWS: update
14821
14822 2003-01-15  Havoc Pennington  <hp@redhat.com>
14823
14824         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14825         fix build when --disable-tests
14826
14827         * Makefile.am (EXTRA_DIST): put HACKING in here
14828
14829         * HACKING: document procedure for making a tarball release.
14830
14831 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14832
14833         * bus/connection.c: (connection_error_handler),
14834         (bus_connection_setup):
14835         * bus/main.c: (main):
14836         Make sure that the DBusConnectionData struct is NULLed
14837         out to prevent a segfault.
14838
14839         * dbus/dbus-errors.c: (dbus_result_to_string):
14840         * dbus/dbus-errors.h:
14841         * dbus/dbus-message.c: (dbus_message_get_fields),
14842         (dbus_message_get_fields_valist), (_dbus_message_test):
14843         * dbus/dbus-message.h:
14844         Make dbus_message_get_fields return a result code so we can
14845         track invalid fields as well as oom.
14846
14847 2003-01-11  Havoc Pennington  <hp@pobox.com>
14848
14849         * configure.in: change --enable-test/--enable-ansi action-if-given
14850         to enable_foo=$enableval instead of enable_foo=yes
14851
14852 2003-01-08  Havoc Pennington  <hp@pobox.com>
14853
14854         * dbus/dbus-string.c (_dbus_string_align_length): new function
14855
14856         * dbus/dbus-test-main.c: move main() for test app here
14857         * dbus/dbus-test.c
14858         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14859         symbol to run tests, because dbus-test isn't in the main
14860         library
14861
14862         Code review nitpicks.
14863
14864         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14865         for people with narrow emacs ;-). Assert client_serial was filled
14866         in. Assert message->name != NULL.
14867         (dbus_message_append_fields): have "first_field_type" arg separate
14868         from va list, needed for C++ binding that also uses varargs IIRC
14869         and helps with type safety
14870         (dbus_message_new): add @todo about using DBusString to store
14871         service/name internally
14872         (dbus_message_new): don't leak ->service and ->name on OOM later
14873         in the function
14874         (dbus_message_unref): free the service name
14875         (dbus_message_get_fields): same change to varargs
14876         i.e. first_field_type
14877         (_dbus_message_loader_return_buffer): assert that the message data
14878         is aligned (if not it's a bug in our code). Put in verbose griping
14879         about why we set corrupted = TRUE.
14880         (decode_header_data): add FIXME that char* is evil.  Was going to
14881         add FIXME about evil locale-specific string.h strncmp, but just
14882         switched to wacky string-as-uint32 optimization. Move check for
14883         "no room for field name" above get_const_data_len() to avoid
14884         assertion failure in get_const_data_len if we have trailing 2
14885         bytes or the like. Check for service and name fields being
14886         provided twice. Don't leak service/name on error. Require field
14887         names to be aligned to 4 bytes.
14888
14889         * dbus/dbus-marshal.c: move byte swap stuff to header
14890         (_dbus_pack_int32): uscore-prefix
14891         (_dbus_unpack_int32): uscore-prefix
14892         (_dbus_unpack_uint32): export
14893         (_dbus_demarshal_string): add @todo complaining about use of
14894         memcpy()
14895         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14896         handling allowing corrupt data to go unchecked
14897
14898 2003-01-08  Havoc Pennington  <hp@redhat.com>
14899
14900         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14901         to the select() as needed for authentication. (should be using
14902         _dbus_poll() not select, but for another day)
14903
14904         * dbus/dbus.h: include dbus/dbus-protocol.h
14905
14906 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14907
14908         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14909         dbus-connection.h
14910
14911 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14912
14913         * dbus/dbus-internals.c: (_dbus_type_to_string):
14914         New function that returns a string describing a type.
14915
14916         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14917         * dbus/dbus-marshal.h:
14918         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14919         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14920         (dbus_message_iter_get_byte_array):
14921         * dbus/dbus-message.h:
14922         Add new convenience functions for appending and getting message fields.
14923         Also add demarshalling routines for byte arrays.
14924
14925 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14926
14927         * dbus/dbus-connection-internal.h:
14928         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14929         (_dbus_connection_get_next_client_serial),
14930         (dbus_connection_send_message):
14931         * dbus/dbus-internals.h:
14932         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14933         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14934         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14935         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14936         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14937         (_dbus_verbose_bytes), (_dbus_marshal_test):
14938         * dbus/dbus-marshal.h:
14939         * dbus/dbus-message-internal.h:
14940         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14941         (dbus_message_write_header), (_dbus_message_lock),
14942         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14943         (dbus_message_get_name), (dbus_message_append_int32),
14944         (dbus_message_append_uint32), (dbus_message_append_double),
14945         (dbus_message_append_string), (dbus_message_append_byte_array),
14946         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14947         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14948         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14949         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14950         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14951         (decode_header_data), (_dbus_message_loader_return_buffer),
14952         (message_iter_test), (_dbus_message_test):
14953         * dbus/dbus-message.h:
14954         * dbus/dbus-protocol.h:
14955         * dbus/dbus-test.c: (main):
14956         * dbus/dbus-test.h:
14957         * glib/test-dbus-glib.c: (message_handler), (main):
14958         * test/echo-client.c: (main):
14959         * test/watch.c: (check_messages):
14960         Make messages sendable and receivable for real.
14961
14962 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14963
14964         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14965         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14966         * dbus/dbus-message.c: (dbus_message_append_int32),
14967         (dbus_message_append_uint32), (dbus_message_append_double),
14968         (dbus_message_append_string), (dbus_message_append_byte_array):
14969         Handle OOM restoration.
14970
14971 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14972
14973         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14974         (_dbus_demarshal_string), (_dbus_marshal_test):
14975         * dbus/dbus-marshal.h:
14976         * dbus/dbus-message.c: (dbus_message_get_name),
14977         Document these functions.
14978
14979         (dbus_message_append_int32), (dbus_message_append_uint32),
14980         (dbus_message_append_double), (dbus_message_append_string),
14981         (dbus_message_append_byte_array):
14982         * dbus/dbus-message.h:
14983         Add functions for adding message fields of different types.
14984
14985         * dbus/dbus-protocol.h:
14986         Add the different types.
14987
14988 2003-01-05  Havoc Pennington  <hp@pobox.com>
14989
14990         * bus/connection.c: implement routines for handling connections,
14991         first thing is keeping a list of owned services on each connection
14992         and setting up watches etc.
14993
14994         * bus/services.c: implement a mapping from service names to lists
14995         of connections
14996
14997         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14998
14999         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15000         to use static mutexes for global data
15001
15002         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15003         collection of functions to set/get application-specific data
15004         on the DBusConnection.
15005
15006 2003-01-04  Havoc Pennington  <hp@pobox.com>
15007
15008         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15009         (_dbus_poll): new function
15010
15011         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15012         copied from GLib
15013
15014         * bus/loop.c: initial code for the daemon main loop
15015
15016 2003-01-04  Havoc Pennington  <hp@pobox.com>
15017
15018         * test/watch.c (error_handler): make it safe if the error handler
15019         is called multiple times (if we s/error handler/disconnect
15020         handler/ we should just guarantee it's called only once)
15021
15022         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15023         error handler on disconnect (it's quite possible we should
15024         just change the error handler to a "disconnect handler," I'm
15025         not sure we have any other meaningful errors)
15026
15027         * configure.in: check for getpwnam_r
15028
15029         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15030         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15031         mechanism as in SASL spec, using socket credentials
15032
15033         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15034         (_dbus_send_credentials_unix_socket): new function
15035
15036         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15037         dbus_accept()
15038         (_dbus_write): only check errno if <0 returned
15039         (_dbus_write_two): ditto
15040
15041 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15042
15043         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15044         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15045         (_dbus_marshal_test):
15046         * dbus/dbus-marshal.h:
15047         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15048         to _dbus_marshal_utf8_string. Also fix some tests.
15049
15050 2002-12-28  Harri Porten  <porten@kde.org>
15051
15052         * configure.in: added check for C++ compiler and a very cheesy
15053         check for the Qt integration
15054
15055         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15056
15057         * qt/Makefile.am: added
15058
15059         * qt/.cvsignore: added
15060
15061         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15062         latter, added #ifdef QT_THREAD_SUPPORT guard.
15063
15064         * dbus/Makefile.am: added missing headers for make dist
15065
15066 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15067
15068         * dbus/Makefile.am: fixup export-symbols-regex.
15069
15070 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15071
15072         * acinclude.m4: Add this file and put the
15073         PKG_CHECK_MODULE macro in it.
15074
15075 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15076
15077         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15078         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15079         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15080         (_dbus_marshal_test):
15081         Make the demarshalling routines align the pos argument.
15082         Add string marshalling tests and fix the obvious bugs
15083         discovered.
15084
15085 2002-12-26  Havoc Pennington  <hp@pobox.com>
15086
15087         * dbus/dbus-auth.c: fixes fixes fixes
15088
15089         * dbus/dbus-transport-unix.c: wire up support for
15090         encoding/decoding data on the wire
15091
15092         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15093         (_dbus_auth_decode_data): append to target string
15094         instead of nuking it.
15095
15096 2002-12-26  Havoc Pennington  <hp@pobox.com>
15097
15098         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15099         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15100         doh
15101
15102         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15103         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15104         now). Main point is because I wanted unpack_uint32 to implement
15105         _dbus_verbose_bytes
15106         (_dbus_verbose_bytes): new function
15107
15108         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15109
15110         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15111         mechanism to handle a corrupt message stream
15112         (_dbus_message_loader_new): fix preallocation to only prealloc,
15113         not prelengthen
15114
15115         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15116         (_dbus_string_test): enhance tests for copy/move and fix the
15117         functions
15118
15119         * dbus/dbus-transport-unix.c: Hold references in more places to
15120         avoid reentrancy problems
15121
15122         * dbus/dbus-transport.c: ditto
15123
15124         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15125         leak reference count in no-message case
15126
15127         * test/watch.c (do_mainloop): handle adding/removing watches
15128         during iteration over the watches. Also, ref the connection/server
15129         stored on a watch, so we don't try to mangle a destroyed one.
15130
15131         * dbus/dbus-transport-unix.c (do_authentication): perform
15132         authentication
15133
15134         * dbus/dbus-auth.c (get_state): add a state
15135         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15136         (_dbus_auth_get_unused_bytes): append the unused bytes
15137         to the passed in string, rather than prepend
15138
15139         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15140         the auth conversation DBusAuth
15141
15142         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15143         (_dbus_transport_new_for_domain_socket): when creating a
15144         transport, pass in whether it's a client-side or server-side
15145         transport so we know which DBusAuth to create
15146
15147 2002-12-03  Havoc Pennington  <hp@pobox.com>
15148
15149         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15150         _after_ finalizing the derived members
15151         (unix_connection_set): unref watch if we fail to add it
15152
15153         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15154         transport first, so that the connection owned by the
15155         transport will be valid as the transport finalizes.
15156
15157         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15158         if necessary, and remove watches from the connection.
15159
15160         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15161
15162 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15163
15164         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15165         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15166         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15167         (_dbus_marshal_test):
15168         * dbus/dbus-marshal.h:
15169         Add string marshal functions and have the demarshal functions
15170         return the new position.
15171
15172 2002-12-25  Havoc Pennington  <hp@pobox.com>
15173
15174         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15175         it is a simple protocol that just maps directly to SASL.
15176
15177         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15178         initial implementation, not actually used yet.
15179
15180         * dbus/dbus-string.c (_dbus_string_find): new function
15181         (_dbus_string_equal): new function
15182         (_dbus_string_base64_encode): new function
15183         (_dbus_string_base64_decode): new function
15184
15185 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15186
15187         * dbus/Makefile.am:
15188         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15189         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15190         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15191         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15192         * dbus/dbus-marshal.h:
15193         * dbus/dbus-protocol.h:
15194         * dbus/dbus-test.c: (main):
15195         * dbus/dbus-test.h:
15196         Add un-optimized marshalling/demarshalling routines.
15197
15198 2002-12-25  Harri Porten  <porten@kde.org>
15199
15200         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15201
15202 2002-12-24  Zack Rusin  <zack@kde.org>
15203
15204         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15205         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15206         main loop stuff
15207
15208 2002-12-24  Havoc Pennington  <hp@pobox.com>
15209
15210         * glib/dbus-gthread.c: fix include
15211
15212         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15213         I think glib API needs to change, though, as you don't
15214         want to use DBusMessageFunction, you want to use the
15215         DBusMessageHandler object. Probably
15216         dbus_connection_open_with_g_main_loop()
15217         and dbus_connection_setup_g_main_loop() or something like that
15218         (but think of better names...) that just create a connection
15219         that has watch/timeout functions etc. already set up.
15220
15221         * dbus/dbus-connection.c
15222         (dbus_connection_send_message_with_reply): new function just to
15223         show how the message handler helps us deal with replies.
15224
15225         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15226
15227         * dbus/dbus-string.c (_dbus_string_test): free a string that
15228         wasn't
15229
15230         * dbus/dbus-hash.c: use memory pools for the hash entries
15231         (rebuild_table): be more paranoid about overflow, and
15232         shrink table when we can
15233         (_dbus_hash_test): reduce number of sprintfs and write
15234         valid C89. Add tests for case where we grow and then
15235         shrink the hash table.
15236
15237         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15238
15239         * dbus/dbus-connection.c (dbus_connection_register_handler)
15240         (dbus_connection_unregister_handler): new functions
15241
15242         * dbus/dbus-message.c (dbus_message_get_name): new
15243
15244         * dbus/dbus-list.c: fix docs typo
15245
15246         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15247         an object representing a handler for messages.
15248
15249 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15250
15251         * glib/dbus-glib.h:
15252         * glib/dbus-gthread.c: (dbus_gthread_init):
15253         Don't use the gdbus prefix for public functions.
15254
15255 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15256
15257         * Makefile.am:
15258         * configure.in:
15259         Add GLib checks and fixup .pc files
15260
15261         * glib/Makefile.am:
15262         * glib/dbus-glib.h:
15263         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15264         (gdbus_connection_check), (gdbus_connection_dispatch),
15265         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15266         (dbus_connection_gsource_new):
15267         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15268         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15269         * glib/test-dbus-glib.c: (message_handler), (main):
15270         Add GLib support.
15271
15272 2002-12-15  Harri Porten  <porten@kde.org>
15273
15274         * autogen.sh: check for libtoolize before attempting to use it
15275
15276         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15277         struct.
15278
15279         * .cvsignore: ignore more stamp files
15280
15281         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15282
15283         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15284         without make install.
15285
15286 2002-12-15  Havoc Pennington  <hp@pobox.com>
15287
15288         * dbus/dbus-threads.c: add thread stubs that a higher library
15289         layer can fill in. e.g. the GLib wrapper might fill them in with
15290         GThread stuff. We still need to use this thread API to
15291         thread-safe-ize the library.
15292
15293 2002-12-12  Havoc Pennington  <hp@pobox.com>
15294
15295         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15296         below new interfaces and include fewer system headers.
15297
15298         * dbus/dbus-sysdeps.c (_dbus_read): new function
15299         (_dbus_write): new function
15300         (_dbus_write_two): new function
15301         (_dbus_connect_unix_socket): new function
15302         (_dbus_listen_unix_socket): new function
15303
15304         * dbus/dbus-message-internal.h: change interfaces to use
15305         DBusString
15306
15307 2002-12-11  Havoc Pennington  <hp@pobox.com>
15308
15309         * dbus/dbus-types.h: add dbus_unichar
15310
15311         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15312
15313         * dbus/dbus-connection.c (dbus_connection_send_message): return
15314         TRUE on success
15315
15316         * dbus/dbus-transport.c: include dbus-watch.h
15317
15318         * dbus/dbus-connection.c: include dbus-message-internal.h
15319
15320         * HACKING: add file with coding guidelines stuff.
15321
15322         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15323         handling here, for security purposes (as in vsftpd). Not actually
15324         using this class yet.
15325
15326         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15327         system/libc usage here, as in vsftpd, for ease of auditing (and
15328         should also simplify portability). Haven't actually moved all the
15329         system/libc usage into here yet.
15330
15331 2002-11-25  Havoc Pennington  <hp@pobox.com>
15332
15333         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15334         always print the first verbose message.
15335
15336 2002-11-24  Havoc Pennington  <hp@pobox.com>
15337
15338         * test/echo-client.c, test/echo-server.c: cheesy test
15339         clients.
15340
15341         * configure.in (AC_CHECK_FUNCS): check for writev
15342
15343         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15344         function
15345
15346         * dbus/dbus-list.c (_dbus_list_foreach): new function
15347
15348         * dbus/dbus-internals.c (_dbus_verbose): new function
15349
15350         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15351         representing a server that listens for connections.
15352
15353         * dbus/.cvsignore: create
15354
15355         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15356         public API for reporting errors
15357
15358         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15359         public object representing a connection that
15360         sends/receives messages. (Same object used for
15361         both client and server.)
15362
15363         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15364         Basic abstraction for different kinds of stream
15365         that we might read/write messages from.
15366
15367 2002-11-23  Havoc Pennington  <hp@pobox.com>
15368
15369         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15370         _DBUS_INT_MAX
15371
15372         * dbus/dbus-test.c (main): add list test, and include
15373         dbus-test.h as intended
15374
15375         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15376         (_dbus_hash_table_remove_int): return value indicates
15377         whether the entry existed to remove
15378
15379         * dbus/dbus-list.c: add linked list utility class,
15380         with docs and tests
15381
15382         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15383         array sometimes.
15384
15385 2002-11-23  Havoc Pennington  <hp@pobox.com>
15386
15387         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15388         DBUS_END_DECLS to nothing, that should fix this once and for all
15389
15390         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15391
15392         * dbus/dbus-message.c, dbus/dbus-hash.c:
15393         add some missing @brief
15394
15395 2002-11-23  Havoc Pennington  <hp@pobox.com>
15396
15397         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15398         to avoid confusing Doxygen
15399
15400         * dbus/dbus-hash.c: @} not }@
15401
15402         * dbus/dbus-message.c (struct DBusMessage): split out
15403         internals docs
15404
15405 2002-11-23  Havoc Pennington  <hp@pobox.com>
15406
15407         * configure.in: pile on more warning flags if using gcc
15408
15409         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15410         to document static functions
15411
15412         * configure.in: add summary to end of configure so it
15413         looks nice and attractive
15414
15415         * dbus/dbus-hash.c: finish implementation and write unit
15416         tests and docs
15417
15418         * configure.in: add --enable-tests to enable unit tests
15419
15420         * dbus/dbus-test.c: test program to run unit tests
15421         for all files in dbus/*, initially runs a test for
15422         dbus-hash.c
15423
15424         * dbus/dbus-internals.h: file to hold some internal utility stuff
15425
15426 2002-11-22  Havoc Pennington  <hp@redhat.com>
15427
15428         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15429         "ported" away from Tcl
15430
15431         * dbus/dbus-types.h: header for types such as dbus_bool_t
15432
15433 2002-11-22  Havoc Pennington  <hp@redhat.com>
15434
15435         * dbus/dbus.h: fixups for doc warnings
15436
15437         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15438         macros
15439         (QUIET): make it quiet so we can see warnings
15440
15441         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15442
15443 2002-11-22  Havoc Pennington  <hp@redhat.com>
15444
15445         * Makefile.am: include "Doxyfile" target in all-local
15446
15447         * configure.in: generate the Doxyfile
15448
15449         * Doxyfile.in: move Doxyfile here, so we can use
15450         configure to generate a Doxyfile with the right
15451         version number etc.
15452
15453 2002-11-22  Havoc Pennington  <hp@redhat.com>
15454
15455         * dbus/dbus-message.c: move inline docs into .c file
15456
15457         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15458         so all docs are under doc/
15459         (MAN_EXTENSION): generate man pages. Use extension
15460         ".3dbus" which matches ".3qt" on my system,
15461         I guess this is OK, I don't know really.
15462         (FILE_PATTERNS): look for .c files not .h, makes sense
15463         for plain C I think
15464
15465 2002-11-22  Havoc Pennington  <hp@pobox.com>
15466
15467         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15468         because any app can be a server, and any app can be a client,
15469         the bus is a special kind of server.
15470
15471 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15472
15473         * Doxyfile : adding. Still needs Makefile rules to be generated
15474         automatically (just run "doxygen" in the toplevel dir for now to
15475         generate docs)
15476
15477         * dbus/dbus-message.h : Adding sample docs (javadoc since
15478         resembles gtk-doc a little more)
15479
15480         * dbus/dbus.h : Adding sample docs
15481
15482 2002-11-21  Havoc Pennington  <hp@redhat.com>
15483
15484         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15485         so we can allow ourselves to include files directly,
15486         instead of having to use dbus.h
15487
15488         * dbus/dbus.h: fill in
15489
15490         * dbus/dbus-message.h: sketch out a sample header file.
15491         Include griping if you include it directly instead of
15492         via dbus.h
15493
15494         * dbus/dbus-macros.h: new file with macros for extern "C",
15495         TRUE/FALSE, NULL, etc.
15496
15497         * doc/file-boilerplate.c: put include guards in here
15498
15499 2002-11-21  Havoc Pennington  <hp@redhat.com>
15500
15501         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15502
15503         * COPYING: include the GPL as well, and license code
15504         under both AFL and GPL.
15505
15506 2002-11-21  Havoc Pennington  <hp@redhat.com>
15507
15508         * acconfig.h: get rid of this
15509
15510         * autogen.sh (run_configure): add --no-configure option
15511
15512         * configure.in: remove AC_ARG_PROGRAM to make
15513         autoconf complain less. add AC_PREREQ.
15514         add AC_DEFINE third arg.
15515
15516 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15517
15518         * doc/Makefile.am:
15519         Fix references so we can distcheck.
15520
15521 2002-11-21  Havoc Pennington  <hp@redhat.com>
15522
15523         * Initial module creation
15524