voc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2005-01-01  Havoc Pennington  <hp@redhat.com>
2
3         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4         for a variety of reasons '==' doesn't do this.
5
6 2004-12-31  Havoc Pennington  <hp@redhat.com>
7
8         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
9         I keep wishing I had
10
11 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
12
13         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
14
15 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
16
17         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
18         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
19         dbus-protocol.h.  Because they are defines and not enums they are not
20         autogenerated.
21
22 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
23
24         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
25         dbus_bus_activate_service
26
27         * python/dbus.py (Bus.activate_service): activate a service on the
28         bus.
29
30 2004-12-24  Havoc Pennington  <hp@redhat.com>
31
32         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
33         file format has also changed and I haven't adapted to that yet
34         
35         * Makefile.am: load .gcno files from latest gcc
36
37 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
38         * Patch from Rob Taylor <robtaylor@fastmail.fm>
39
40         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
41         lowlevel binding
42
43         * python/dbus.py (get_unix_user): Added binding to 
44         call dbus_bindings.bus_get_unix_user
45
46         * python/extract.py: Modified the proto_pat regex to
47         handle unsigned long
48
49 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
50
51         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
52         better POSIX compliance.
53
54 2004-12-19  Havoc Pennington  <hp@redhat.com>
55
56         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
57         (_dbus_string_insert_8_aligned): new functions
58
59         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
60
61 2004-12-18  Havoc Pennington  <hp@redhat.com>
62
63         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
64         macro
65
66         * dbus/dbus-message.c: fix a comment, and add a still-unused
67         not-implemented function
68
69         * dbus/dbus-marshal.h: fix comment
70
71         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
72
73 2004-12-17  Joe Shaw  <joeshaw@novell.com>
74
75         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
76         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
77         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
78         Type.UnderlyingSystemType to get the actual system type
79         underneath.  This code previously depended on the broken Mono
80         behavior, which was fixed in 1.1.3.
81
82 2004-11-27  Havoc Pennington  <hp@redhat.com>
83
84         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
85         are disabled
86         (_dbus_string_get_const_data): inline when asserts are disabled
87
88         * dbus/dbus-message.c: record the _dbus_current_generation of
89         creation so we can complain if dbus_shutdown() is used improperly.
90         Do this only if checks are enabled.
91
92         * dbus/dbus-connection.c: ditto
93         
94 2004-11-26  Havoc Pennington  <hp@redhat.com>
95
96         * test/glib/test-profile.c: add with_bus mode to profile echoes
97         that go through the bus.
98
99         * test/glib/run-test.sh: add ability to run test-profile
100
101         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
102         config file reload.
103
104 2004-11-26  Havoc Pennington  <hp@redhat.com>
105
106         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
107         thing was implemented
108
109 2004-11-26  Havoc Pennington  <hp@redhat.com>
110
111         * test/glib/test-profile.c: tweak a bit, add support for some
112         made-up minimal malloc overhead with plain sockets, since in 
113         real life some sort of buffers are unavoidable thus we could 
114         count them in the theoretical best case
115
116 2004-11-26  Havoc Pennington  <hp@redhat.com>
117
118         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
119         where I was trying to cache one too many messages
120
121 2004-11-26  Havoc Pennington  <hp@redhat.com>
122
123         * dbus/dbus-message.c: reimplement message cache as an array which 
124         makes the cache about twice as fast and saves maybe 1.5% overall
125
126 2004-11-26  Havoc Pennington  <hp@redhat.com>
127
128         * dbus/dbus-threads.c (init_global_locks): forgot to put the
129         message cache lock here
130
131 2004-11-26  Havoc Pennington  <hp@redhat.com>
132
133         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
134         the "char byte_order" next to each other to save 4 bytes
135         (dbus_message_new_empty_header): reduce preallocation, since the
136         message cache should achieve a similar effect
137         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
138         message cache that keeps a few DBusMessage around in a pool,
139         another 8% speedup or so.
140
141         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
142
143 2004-11-25  Havoc Pennington  <hp@redhat.com>
144
145         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
146         to write, without reading or blocking, try it before the poll()
147         and skip the poll() if nothing remains to write. This is about a
148         3% speedup in the echo client/server
149
150 2004-11-25  Havoc Pennington  <hp@redhat.com>
151
152         The primary change here is to always write() once before adding
153         the write watch, which gives us about a 10% performance increase.
154         
155         * dbus/dbus-transport-unix.c: a number of modifications to cope
156         with removing messages_pending
157         (check_write_watch): properly handle
158         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
159         messages_pending stuff
160         (check_read_watch): properly handle WAITING_FOR_MEMORY and
161         AUTHENTICATED cases
162         (unix_handle_watch): after writing, see if the write watch can be
163         removed
164         (unix_do_iteration): assert that write_watch/read_watch are
165         non-NULL rather than testing that they aren't, since they 
166         aren't allowed to be NULL. check_write_watch() at the end so 
167         we add the watch if we did not finish writing (e.g. got EAGAIN)
168
169         * dbus/dbus-transport-protected.h: remove messages_pending call,
170         since it resulted in too much inefficient watch adding/removing; 
171         instead we now require that the transport user does an iteration 
172         after queueing outgoing messages, and after trying the first
173         write() we add a write watch if we got EAGAIN or exceeded our 
174         max bytes to write per iteration setting
175
176         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
177         function
178
179         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
180         freed and then accessed, valgrind flagged this bug, fix it
181
182         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
183         as the last valid field plus 1, where really it is equal to the
184         last valid field. Corrects some message corruption issues.
185
186         * dbus/dbus-mainloop.c: verbosity changes
187
188         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
189         instead of aborting in one of the test codepaths
190
191         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
192         caused not printing the pid ever again if a verbose was missing
193         the newline at the end
194         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
195
196         * dbus/dbus-connection.c: verbosity changes; 
197         (dbus_connection_has_messages_to_send): new function
198         (_dbus_connection_message_sent): no longer call transport->messages_pending
199         (_dbus_connection_send_preallocated_unlocked): do one iteration to
200         try to write() immediately, so we can avoid the write watch. This
201         is the core purpose of this patchset
202         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
203         dump the outgoing message queue, so nobody will get confused
204         trying to send them or thinking stuff is pending to be sent
205
206         * bus/test.c: verbosity changes
207
208         * bus/driver.c: verbosity/assertion changes
209
210         * bus/dispatch.c: a bunch of little tweaks to get it working again
211         because this patchset changes when/where you need to block.
212
213 2004-11-23  Havoc Pennington  <hp@redhat.com>
214
215         * test/glib/test-profile.c: modify to accept a plain_sockets
216         argument in which case it will bench plain sockets instead of
217         libdbus, for comparison purposes.
218
219 2004-11-22  Havoc Pennington  <hp@redhat.com>
220
221         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
222         threads for more time, so sysprof can get a grip on it.
223
224         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
225         pointless variable
226
227 2004-11-13  Havoc Pennington  <hp@redhat.com>
228
229         * test/glib/test-profile.c: fix this thing up a bit
230
231         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
232         preallocation sizes by a fair bit; not sure if this will be an
233         overall performance win or not, but it does reduce reallocs.
234
235         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
236         the test hack that forced constant realloc if asserts are
237         disabled, so we can profile sanely. Sprinkle in some
238         _DBUS_UNLIKELY() which are probably pointless, but before I
239         noticed the real performance problem I put them in.
240         (_dbus_string_validate_utf8): micro-optimize this thing a little
241         bit, though callgrind says it didn't help; then special-case
242         ascii, which did help a lot; then be sure we detect nul bytes as
243         invalid, which is a bugfix.
244         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
245         superstition; use memset to nul the padding instead of a manual
246         loop.
247         (_dbus_string_get_length): inline this as a
248         macro; it showed up in the profile because it's used for loop
249         tests and so forth
250
251 2004-11-10  Colin Walters  <walters@verbum.org>
252
253         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
254         for extra paranoia.
255
256 2004-11-09  Colin Walters  <walters@verbum.org>
257
258         * dbus/dbus-string.c (_dbus_string_get_length): New
259         function, writes DBusString to C buffer.
260
261         * dbus/dbus-string.h: Prototype it.
262
263         * dbus/dbus-message.c (dbus_message_type_to_string): New
264         function, converts message type into C string.
265
266         * dbus/dbus-message.h: Prototype it.
267
268         * bus/selinux.c (bus_selinux_check): Take source pid,
269         target pid, and audit data.  Pass audit data to
270         avc_has_perm.
271         (log_audit_callback): New function, appends extra
272         audit information.
273         (bus_selinux_allows_acquire_service): Also take
274         service name, add it to audit data.
275         (bus_selinux_allows_send): Also take message
276         type, interface, method member, error name,
277         and destination, and add them to audit data.
278         (log_cb): Initialize func_audit.
279         
280         * bus/selinux.h (bus_selinux_allows_acquire_service)
281         (bus_selinux_allows_send): Update prototypes 
282
283         * bus/services.c (bus_registry_acquire_service): Pass
284         service name to bus_selinux_allows_acquire_service.
285
286         * bus/bus.c (bus_context_check_security_policy): Pass
287         additional audit data.  Move assignment of dest
288         to its own line.
289
290 2004-11-07  Colin Walters  <walters@verbum.org>
291
292         * dbus/dbus-transport-unix.c (do_authentication): Always
293         initialize auth_completed.
294         
295 2004-11-07  Colin Walters  <walters@verbum.org>
296
297         * bus/bus.c (load_config): Break into three
298         separate functions: process_config_first_time_only,
299         process_config_every_time, and process_config_postinit.
300         (process_config_every_time): Move call of
301         bus_registry_set_service_context_table into
302         process_config_postinit.
303         (process_config_postinit): New function, does
304         any processing that needs to happen late
305         in initialization (and also on reload).
306         (bus_context_new): Instead of calling load_config,
307         open config parser here and call process_config_first_time_only
308         and process_config_every_time directly.  Later, after
309         we have forked but before changing UID,
310         invoke bus_selinux_full_init, and then call
311         process_config_postinit.
312         (bus_context_reload_config): As in bus_context_new,
313         load parse file inside here, and call process_config_every_time
314         and process_config_postinit.
315
316         * bus/services.h, bus/services.c
317         (bus_registry_set_service_context_table): Rename
318         from bus_registry_set_sid_table.  Take string hash from config
319         parser, and convert them here into SIDs.
320
321         * bus/config-parser.c (struct BusConfigParser): Have
322         config parser only store a mapping of service->context
323         string.
324         (merge_service_context_hash): New function.
325         (merge_included): Merge context string hashes instead
326         of using bus_selinux_id_table_union.
327         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
328         simply create a new string hash.
329         (bus_config_parser_unref): Unref it.
330         (start_selinux_child): Simply insert strings into hash,
331         don't call bus_selinux_id_table_copy_over.
332
333         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
334         (bus_selinux_id_table_copy_over): Delete.
335
336 2004-11-03  Colin Walters  <walters@verbum.org>
337
338         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
339         variables.
340         
341 2004-11-03  Colin Walters  <walters@verbum.org>
342
343         * bus/test-main.c (test_pre_hook): Fix test logic,
344         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
345
346 2004-11-02  Colin Walters  <walters@redhat.com>
347
348         * bus/selinux.c (bus_selinux_init): Split into two functions,
349         bus_selinux_pre_init and bus_selinux_post_init.
350         (bus_selinux_pre_init): Just determine whether SELinux is
351         enabled.
352         (bus_selinux_post_init): Do everything else.
353
354         * bus/main.c (main): Call bus_selinux_pre_init before parsing
355         config file, and bus_selinux_post_init after.  This ensures that
356         we don't lose the policyreload notification thread that
357         bus_selinux_init created before forking previously.
358         
359         * bus/test-main.c (test_pre_hook): Update for split.
360
361 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
362
363         Patch from Johan Fischer <linux@fischaz.com>
364         
365         * mono/doc/Makefile.am (install-data-local): Added directory
366         install for DESTDIR
367
368 2004-10-29  Colin Walters  <walters@redhat.com>
369
370         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
371         parameter for fd to write pid to.       
372
373         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
374         
375         * bus/bus.c (bus_context_new): Pass print_pid_fd
376         to _dbus_become_daemon (bug #1720)
377
378 2004-10-29  Colin Walters  <walters@redhat.com>
379
380         Patch from Ed Catmur <ed@catmur.co.uk>
381
382         * mono/doc/Makefile.am (install-data-local): Handle
383         DESTDIR.
384
385 2004-10-29  Colin Walters  <walters@redhat.com>
386
387         * bus/.cvsignore, qt/.cvsignore: Update.
388
389 2004-10-29  Colin Walters  <walters@redhat.com>
390
391         Patch from Kristof Vansant <de_lupus@pandora.be>
392
393         * configure.in: Detect Slackware.
394         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
395         * bus/rc.messagebus.in: New file.
396
397 2004-10-29  Colin Walters  <walters@redhat.com>
398
399         * tools/dbus-monitor.c (filter_func): Return
400         DBUS_HANDLER_RESULT_HANDLED in filter function
401         for now.  See:
402         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
403
404 2004-10-29  Colin Walters  <walters@redhat.com>
405
406         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
407
408         * bus/services.c (bus_registry_acquire_service): 
409         Correctly retrieve service name from DBusString
410         for printing.
411
412 2004-10-29  Colin Walters  <walters@redhat.com>
413
414         * dbus/dbus-glib.h: Update documentation to not
415         refer to internal APIs.
416
417 2004-10-27  Joe Shaw  <joeshaw@novell.com>
418
419         * mono/Arguments.cs (GetDBusTypeConstructor):
420         type.UnderlyingSystemType will return "System.Byte" if you do it
421         on "byte[]", which is not what we want.  So check the type.IsArray
422         property and use System.Array instead.
423
424 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
425
426         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
427         the DBusUserInfo structure since this is passed into the function.
428         This would cause a double free when the function that allocated
429         the structure would try to free it when an error occured.
430
431         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
432         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
433         for service activation to avoid 32bit/64bit parallel install issues
434
435 2004-10-21  Colin Walters  <walters@verbum.org>
436
437         * AUTHORS: Fix my email address, the @gnu.org one
438         has been bouncing for some time.  Also add J5.
439         
440 2004-10-21  Colin Walters  <walters@verbum.org>
441
442         * dbus/dbus-transport-unix.c (do_authentication): Return
443         authentication status to callers.
444         (unix_handle_watch): If we completed authentication this round,
445         don't do another read.  Instead wait until the next iteration,
446         after we've read any pending data in the auth buffer.
447         (unix_do_iteration): Ditto.
448         (unix_handle_watch): Updated for new do_authentication prototype.
449
450 2004-10-18  Colin Walters  <walters@verbum.org>
451
452         * bus/selinux.c (bus_selinux_enabled): Handle
453         --disable-selinux case.
454         
455 2004-10-18  Colin Walters  <walters@verbum.org>
456
457         * bus/selinux.h: Add bus_selinux_enabled.
458         
459         * bus/selinux.c (bus_selinux_enabled): Implement it.
460         
461         * bus/config-parser.c (struct include): Add
462         if_selinux_enabled member.
463         (start_busconfig_child): Parse if_selinux_enabled
464         attribute for include.
465         (bus_config_parser_content): Handle it.
466
467         * bus/session.conf.in, bus/system.conf.in: Add
468         inclusion of context mapping to default config files;
469         conditional on SELinux being enabled.
470         
471         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
472         
473         * test/data/invalid-config-files/badselinux-1.conf, 
474         test/data/invalid-config-files/badselinux-2.conf:
475         Test files for bad syntax.
476         
477 2004-10-17  Colin Walters  <walters@verbum.org>
478
479         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
480         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
481         format specifier mismatches.
482
483 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
484
485         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
486         format string.
487
488         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
489         pointer (bug #1540, Leonardo Boiko).
490
491 2004-09-28  Jon Trowbridge  <trow@ximian.com>
492
493         * mono/BusDriver.cs: Changed BusDriver struct to remove
494         the ServiceCreated and ServiceDeleted events and replace them
495         with the new ServiceOwnerChanged event.
496
497         * mono/example/BusListener.cs: Added a new example program,
498         which listens for and reports any ServiceOwnerChanged events
499         on the bus driver.
500
501         * mono/example/Makefile.am (DESTDIR): Build changes for the
502         new BusListener.cs example.
503
504 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
505
506         * bus/signals.c (bus_match_rule_parse): validate the components of
507         match rules (bug #1439).
508
509         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
510
511 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
512
513         * doc/dbus-specification.xml: document ServiceOwnerChanged
514         signal.
515         
516         * bus/driver.c, bus/driver.h, bus/services.c: Use
517         ServiceOwnerChanged signal instead of ServiceCreated and
518         ServiceDeleted.
519         
520         * bus/dispatch.c: update testcase for the new signal.
521
522 2004-09-20  Jon Trowbridge  <trow@ximian.com>
523
524         Patch from Nat Friedman <nat@novell.com>
525
526         * mono/Makefile.am: A number of small build fixes to allow "make
527         distcheck" to succeed.
528
529         * mono/example/Makefile.am: "make distcheck" fixes.
530
531         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
532         key in @srcdir@.
533
534         * test/Makefile.am: "make distcheck" fixes.
535
536 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
537
538         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
539
540         * doc/busconfig.dtd: update the DTD for the at_console attribute.
541
542         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
543         messages after the first one (bug #1389).
544         
545         * bus/dispatch.c (check_double_hello_message): add a test case for
546         the double hello message bug.
547         (check_existent_service_activation): fix check of spawning error.
548         
549 2004-09-16  David Zeuthen  <david@fubar.dk>
550
551         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
552
553 2004-09-12  David Zeuthen  <david@fubar.dk>
554
555         Patch from Kay Sievers <kay.sievers@vrfy.org>
556
557         * bus/bus.c (bus_context_new):
558         * bus/bus.h:
559         * bus/main.c (usage)
560         (main):
561         Add commandline option --nofork to override configuration file
562         setting.
563
564 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
565
566         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
567         compilers don't like it (bug #974).
568
569 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
570
571         * qt/connection.*: Applied patch by Jérôme Lodewyck
572         <lodewyck@clipper.ens.fr> to integrate an existing
573         connection into the Qt eventloop
574
575 2004-08-30  Jon Trowbridge  <trow@ximian.com>
576
577         * mono/BusDriver.cs: Added.  This is a class for interacting with
578         the org.freedesktop.DBus service.
579
580         * mono/Message.cs: Added a mechanism to expose the message that is
581         currently being dispatched via the static Message.Current
582         property.  Added Message.Sender and Message.Destination
583         properties.
584
585         * mono/Handler.cs: Expose the dispatched message via
586         Message.Current when handling method calls.
587
588         * mono/Service.cs: Expose the dispatched message via
589         Message.Current when handling signal emissions.
590         
591         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
592         Connection.BaseService property.
593
594 2004-08-28  Havoc Pennington  <hp@redhat.com>
595
596         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
597
598         More fixes from Steve Grubb
599         
600         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
601         (_dbus_listen_tcp_socket): fix fd leak
602
603         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
604         EINTR to a bit lower in the code
605
606 2004-08-26  Jon Trowbridge  <trow@ximian.com>
607
608         * bus/driver.c (bus_driver_handle_service_exists): Respond with
609         TRUE if we are inquiring about the existence of the built-in
610         org.freedesktop.DBus service.
611
612 2004-08-25  John Palmieri  <johnp@redhat.com>
613         * bus/config-parser.c:
614         (struct PolicyType): Add POLICY_CONSOLE
615         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
616         (start_busconfig_child): Sets up console element when
617         <policy at_console=""> is encountered in a policy file
618         (append_rule_from_element): Convert console elements to console
619         rules.
620
621         * bus/policy.c: 
622         (bus_policy_create_client_policy): Add console rules to the client
623         policy based on if the client is at the console
624         (bus_policy_append_console_rule): New function for adding a
625         console rule to a policy
626         (bus_policy_merge): Handle console rule merging
627
628         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
629         where we check for console user files
630         
631         * dbus/dbus-sysdeps.c:
632         (_dbus_file_exists): New function which checks if the given
633         file exists
634         (_dbus_user_at_console): New function which does the system
635         specific process of checking if the user is at the console
636
637         * dbus/dbus-userdb.c:
638         (_dbus_is_console_user): New function converts a UID to user name
639         and then calls the system specific _dbus_user_at_console to 
640         see if the user is at the console and therefor a console user
641
642 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
643
644         * bus/config-parser.c (set_limit):
645         * bus/dbus-daemon-1.1.in:
646         * test/data/valid-config-files/many-rules.conf: set the
647         max_match_rules_per_connection limt from the config file. 
648
649         * doc/busconfig.dtd: update the DTD.
650
651         * bus/driver.c: remove some unused variables.
652
653 2004-08-24  Mikael Hallendal  <micke@imendio.com>
654
655         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
656         it's been replaced by dbus_g_bus_get
657
658 2004-08-23  Colin Walters  <walters@redhat.com>
659
660         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
661
662         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
663
664         * bus/selinux.c: Create a thread for policy reload notification.
665         (bus_selinux_get_policy_root): Implement.
666
667         * bus/config-parser.c (start_busconfig_child)
668         (bus_config_parser_content): Support SELinux-root relative
669         inclusion.
670
671         * configure.in <HAVE_SELINUX>: Add -lpthread.
672         
673         * bus/test-main.c (test_pre_hook, test_post_hook): New.
674         (test_post_hook): Move memory checking into here.
675         (test_pre_hook, test_post_hook): Move SELinux checks in
676         here, but conditional on a DBUS_TEST_SELINUX environment
677         variable.  Unfortunately we can't run the SELinux checks
678         as a normal user, since they won't have any permissions
679         for /selinux.  So this will have to be tested manually
680         for now, until we have virtualization for most of
681         libselinux.
682         
683 2004-08-23  Havoc Pennington  <hp@redhat.com>
684
685         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
686         drop supplementary groups, suggested by Steve Grubb
687
688 2004-08-20  Colin Walters  <walters@redhat.com>
689
690         * bus/config-parser.c (start_busconfig_child): Remove some unused
691         variables.
692         
693         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
694         warning.
695
696 2004-08-17  Joe Shaw  <joeshaw@novell.com>
697
698         * configure.in: If --enable-mono is passed in, if we can't find
699         mono error out.
700
701         * mono/Makefile.am: Use /gacutil to install assemblies into the
702         GAC and not /root.
703
704 2004-08-12  Havoc Pennington  <hp@redhat.com>
705
706         * NEWS: update for 0.22
707
708         * configure.in: release 0.22
709
710 2004-08-11  Colin Walters  <walters@redhat.com>
711
712         * tools/dbus-send.c (main, usage): Add --reply-timeout
713         argument.
714
715 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
716
717         * bus/bus.c (process_config_first_time_only): get rid of an unused
718         DBusError that was causing a memoy leak (bug #989).
719
720         * dbus/dbus-keyring.c, dbus/dbus-message.c:
721         fix compilation on Solaris/Forte C (bug #974)
722
723         * bus/main.c (main): plug two minuscule memleaks.
724
725 2004-08-10  Havoc Pennington  <hp@redhat.com>
726
727         * doc/dbus-tutorial.xml: add some more info on GLib bindings
728
729 2004-08-09  Havoc Pennington  <hp@redhat.com>
730
731         * COPYING: switch to Academic Free License version 2.1 instead of
732         2.0, to resolve complaints about patent termination clause.
733
734 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
735
736         * README: added documentation for the --enable-python 
737         configure switch.
738
739 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
740
741         * bus/config-parser.c (bus_config_parser_new): fix an invalid
742         _unref in the SELinux support.
743
744         * doc/busconfig.dtd: update DTD for SELinux support.
745
746         * bus/config-loader-libxml.c: fix error handler and parser
747         initialisation/cleanup. OOM test now works with libxml2 HEAD.
748
749         * configure.in: remove the warning about libxml2.
750
751         * dbus/dbus-bus.c: silence doxygen warning.
752
753 2004-07-31  Colin Walters  <walters@redhat.com>
754
755         * configure.in: Move #error in SELinux check to its own line.
756
757 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
758
759         * dbus/dbus-internals.h (_DBUS_SET_OOM):
760         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
761         dbus_error_set.
762
763         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
764         broken by the change in the _SET_OOM macros.
765
766 2004-07-31  Colin Walters  <walters@redhat.com>
767
768         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
769         BUS_SET_OOM.
770
771 2004-07-31  Colin Walters  <walters@redhat.com>
772
773         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
774         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
775         AC_MSG_CHECKING.
776
777 2004-07-24  Havoc Pennington  <hp@redhat.com>
778
779         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
780
781         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
782         functionality
783
784         * configure.in: add --enable-selinux
785         
786         * bus/policy.c (bus_policy_merge): add FIXME to a comment
787
788         * bus/main.c (main): initialize and shut down selinux
789
790         * bus/connection.c: store SELinux ID on each connection, to avoid 
791         repeated getting of the string context and converting it into 
792         an ID
793
794         * bus/bus.c (bus_context_get_policy): new accessor, though it
795         isn't used
796         (bus_context_check_security_policy): check whether the security
797         context of sender connection can send to the security context of
798         recipient connection
799
800         * bus/config-parser.c: add parsing for <selinux> and <associate>
801         
802         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
803         implement dbus_connection_get_unix_fd()
804
805         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
806         function, used by the selinux stuff
807         
808 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
809
810         * bus/config-loader-libxml.c: complete the implementation of
811         libxml backend for config file loader. Doesn't work with full OOM
812         test yet. 
813         
814         * configure.in: change error when selecting libxml into a warning.
815         
816         * test/data/invalid-config-files: add two non-well-formed XML
817         files. 
818         
819         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
820         
821         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
822         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
823         be necessary to read all the buffer. (bug #894)
824
825         * bus/activation.c (bus_activation_activate_service): fix a
826         potential assertion failure (bug #896). Small optimization in the
827         case of auto-activation messages.
828
829         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
830         add test case for byte-through-vararg bug (#901). patch by Kimmo
831         Hämäläinen. 
832
833 2004-07-28  Anders Carlsson  <andersca@gnome.org>
834
835         * python/dbus.py:
836         * python/dbus_bindings.pyx.in:
837         Add dbus.init_gthreads (), allow emit_signal to pass
838         arguments to the signal.
839         
840 2004-07-24  Havoc Pennington  <hp@redhat.com>
841
842         * AUTHORS: add some people, not really comprehensively, let me
843         know if I missed you
844
845 2004-07-24  Havoc Pennington  <hp@redhat.com>
846
847         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
848         Owen
849
850         * test/Makefile.am (DIST_SUBDIRS): here also
851
852 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
853
854         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
855         breaking build on Solaris, reported by Farhad Saberi on the ML.
856
857         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
858         va_arg invocation to account for integer promotion in the case of
859         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
860
861         * bus/services.c (bus_service_remove_owner): fix bug #902, use
862         _dbus_list_get_first_link, not _dbus_list_get_first.
863
864         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
865
866         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
867         handler functions so that the asserts in _dbus_object_subtree_unref
868         do not fail.
869
870         * dbus/dbus-transport-unix.c (do_reading):
871         _dbus_transport_queue_messages return value is of type
872         dbus_bool_t, not DBusDispatchStatus.
873         
874 2004-07-19  David Zeuthen  <david@fubar.dk>
875
876         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
877
878         * bus/dispatch.c:
879         (check_get_connection_unix_user): Debug says GetProperty; but the
880         method is called GetConnectionUnixUser
881         (check_get_connection_unix_process_id): New function
882         (bus_dispatch_test): Actually call check_get_connection_unix_user();
883         also call check_get_connection_unix_process_id()
884         
885         * bus/driver.c:
886         (bus_driver_handle_get_connection_unix_process_id): New function,
887         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
888         interface
889         
890         * dbus/dbus-auth.c:
891         (handle_server_data_external_mech): Set pid from the credentials
892         obtained from the socket
893         
894         * dbus/dbus-connection.c:
895         (dbus_connection_get_unix_process_id): New function
896         
897         * dbus/dbus-connection.h: 
898         Add prototype for dbus_connection_get_unix_process_id
899         
900         * dbus/dbus-transport.c:
901         (_dbus_transport_get_unix_process_id): New function
902         
903         * dbus/dbus-transport.h:
904         Add prototype for _dbus_transport_get_unix_process_id
905         
906 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
907
908         * dbus/dbus-message.c: Message counter fix, patch by Christian
909         Hammond <chipx86@gnupdate.org>
910
911 2004-07-18  Seth Nickell  <seth@gnome.org>
912
913         * python/dbus.py:
914         * python/dbus_bindings.pyx.in:
915         * python/tests/test-client.py:
916
917         Add dbus.ByteArray and dbus_bindings.ByteArray
918         types so that byte streams can be passed back.
919
920         Give jdahlin the heaps of credit that are so
921         rightfully his.
922         
923 2004-07-12  Seth Nickell  <seth@gnome.org>
924
925         * python/dbus.py:
926
927         Add message argument to the default object_method_handler
928         function.
929         
930         * python/dbus_bindings.pyx.in:
931
932         Automatically return NIL when passed an empty list
933         (we can't pass back a list since lists are typed
934         and we don't have any idea what type the the client
935         intended the list to be... :-( )
936         
937 2004-07-10  Seth Nickell  <seth@gnome.org>
938
939         * python/examples/Makefile.am:
940
941         Fix distcheck breakage caused by new examples.
942
943 2004-07-10  Seth Nickell  <seth@gnome.org>
944
945         * python/dbus.py:
946
947         Add "message" argument to service-side dbus.Object
948         methods. This will break existing services written
949         using the python bindings, but will allow extraction
950         of all the message information (e.g. who its from).
951
952         Add improved "object oriented" signal handling/emission.
953         
954         * python/examples/example-service.py:
955
956         Nix this example.
957         
958         * python/examples/example-signal-emitter.py:
959         * python/examples/example-signal-recipient.py:
960
961         Two new examples that show how to emit and receive
962         signals using the new APIs.
963         
964         * python/examples/example-signals.py:
965         * python/examples/gconf-proxy-service.py:
966         * python/examples/gconf-proxy-service2.py:
967
968         Add "message" argument to service methods.
969
970 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
971
972         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
973         * dbus/bus.c (dbus_bus_get_unix_user)
974         * doc/dbus-specification.xml: implement GetConnectionUnixUser
975         method of org.freedesktop.DBus interface.
976
977         * bus/dispatch.c: test case
978
979 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
980
981         * python/Makefile.am: switched include directory from glib/ to dbus/
982         since dbus-glib.h moved
983  
984 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
985
986         * configure.in: prevent building the gcj stuff and libxml loader
987         since they are broken.
988
989 2004-06-20  Havoc Pennington  <hp@redhat.com>
990
991         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
992         codes from the dbus error names
993         
994         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
995         as dbus/dbus-glib.h and that breakage is now visible due to 
996         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
997         
998         * glib/dbus-glib.h: s/gproxy/g_proxy/
999
1000         * dbus/dbus-shared.h: new header to hold stuff shared with
1001         binding APIs
1002         
1003         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
1004         than dbus-errors.h
1005
1006         * glib/dbus-glib.h (dbus_set_g_error): move to
1007         dbus-glib-lowlevel.h
1008
1009         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
1010         of stuff to enable this
1011
1012         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
1013
1014         * a bunch of other changes with the same basic "separate glib 
1015         bindings from dbus.h" theme
1016         
1017 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
1018
1019         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
1020
1021         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
1022
1023 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1024
1025         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
1026         the reply value of the ServiceExists message.
1027
1028 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
1029
1030         * python/dbus_bindings.pyx.in: No longer need to parse path
1031         elements and pass them as arrays of strings.  The C API now
1032         accepts plain path strings.
1033         (_build_parsed_path): removed 
1034
1035 2004-06-07  Havoc Pennington  <hp@redhat.com>
1036
1037         * doc/TODO: remove auto-activation item since it's done; sort
1038         items by importance/milestone
1039
1040 2004-06-07  Havoc Pennington  <hp@redhat.com>
1041
1042         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
1043         random signature when using REQUIRED_FIELDS (this hack won't work
1044         in the long term)
1045
1046         * dbus/dbus-message.c: change the signature to be a header field,
1047         instead of message->signature special-case string. Incremental
1048         step forward. Then we can fix up code to send the signature in the
1049         message, then fix up code to validate said signature, then fix up
1050         code to not put the typecodes inline, etc.
1051         (load_one_message): don't make up the signature after the fact
1052         (decode_header_data): require signature field for the known
1053         message types
1054
1055         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
1056
1057         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
1058
1059 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
1060
1061         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
1062
1063         * mono/Handler.cs: Updated to follow new path argument for
1064         (un-)registering objects.
1065
1066         * mono/example/Makefile.am:
1067         * mono/Makefile.am:
1068         * configure.in: Bumped required version for mono and use new -pkg
1069         syntax for deps
1070
1071 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1072
1073         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
1074         registration functions take the path argument as char* instead of
1075         char**.
1076
1077         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
1078         split off the path decompostion part of
1079         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
1080         warnings. 
1081
1082         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
1083         
1084 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
1085  
1086         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
1087         machine approach.  A state is implemented as a function that
1088         handles incoming events as specified for that state.
1089         
1090         * doc/dbus-specification.xml: Update auth protocol state machine
1091         specification to match implementation.  Remove some leftover
1092         base64 examples.
1093
1094 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
1095
1096         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
1097         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
1098         quiet doxygen.
1099
1100         * Doxyfile.in: remove deprecated options.
1101
1102         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
1103         glib/test-thread.h, glib/test-thread-client.c,
1104         glib/test-thread-server.c, glib/test-profile.c,
1105         glib/test-dbus-glib.c: remove these unused files.
1106
1107 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1108
1109         * dbus/dbus-object-tree.c
1110         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
1111         non-fallback handlers (bug #684).
1112         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
1113         (find_subtree_recurse): report wether the returned subtree is an
1114         exact match or a "fallback" match higher up in the tree.
1115         (object_tree_test_iteration): update test case.
1116
1117 2004-06-01  Seth Nickell  <seth@gnome.org>
1118
1119         * python/dbus_bindings.pyx.in:
1120         * python/tests/test-client.py:
1121
1122         Round off basic type support. Add dicts (yay!), and 
1123         remaining array types.
1124
1125         Make MessageIter more general so it works for dicts too.
1126
1127         Mark all loop variables as C integers.
1128         
1129 2004-05-31  Havoc Pennington  <hp@redhat.com>
1130
1131         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
1132         "in" before "out"
1133
1134         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
1135
1136         * glib/dbus-glib-tool.c (main): set up to have a --self-test
1137         option that runs the tests, and start filling in some code
1138         including for starters just dumping the interfaces to stdout
1139
1140         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
1141
1142         * test/data/valid-introspection-files/lots-of-types.xml: test of
1143         an example introspection file
1144
1145         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
1146         "node" (I think...)
1147
1148 2004-05-31  Seth Nickell  <seth@gnome.org>
1149
1150         * python/dbus_bindings.pyx.in:
1151         * python/tests/test-client.py:
1152
1153         Test Suite: 1
1154         Python Bindings: 0
1155
1156         Fix string array memory trashing bug... oops...
1157
1158 2004-05-30  Seth Nickell  <seth@gnome.org>
1159
1160         * python/dbus.py:
1161
1162         Add a nicer-but-less-flexible alternate API for handling 
1163         calls to virtual objects in dbus.ObjectTree.
1164
1165         Screw up the argument order to the dbus.Object constructor
1166         for consistency with dbus.ObjectTree (and to make dbus_methods
1167         optional for future extension)
1168         
1169         * python/examples/Makefile.am:
1170         * python/examples/gconf-proxy-service.py:
1171         * python/examples/gconf-proxy-service2.py:
1172
1173         Alternate implementation of gconf-proxy-service using the
1174         nicer dbus.ObjectTree API.
1175         
1176         * python/examples/example-service.py:
1177         * python/tests/test-server.py
1178
1179         Reverse the argument order to deal with dbus.Object constructor
1180         changes.
1181         
1182 2004-05-30  Seth Nickell  <seth@gnome.org>
1183
1184         * python/examples/example-client.py:
1185         * python/examples/example-service.py:
1186
1187         Take it back. Lists seem to work but they're broken
1188         in the test suite. Make the base examples use
1189         lists (works fine).
1190
1191 2004-05-30  Seth Nickell  <seth@gnome.org>
1192
1193         * python/dbus_bindings.pyx.in:
1194         * python/tests/test-client.py:
1195
1196         Add some more tests and fix errors that crop up.
1197         Unfortunately, currently it seems like marshalling
1198         and unmarshalling of lists is completely broken :-(
1199
1200 2004-05-30  Seth Nickell  <seth@gnome.org>
1201
1202         * python/dbus_bindings.pyx.in:
1203
1204         Add support for ObjectPath type.
1205
1206         * python/dbus.py:
1207
1208         Refactor message handling code to a common function.
1209         
1210         * python/tests/test-client.py:
1211         * python/tests/test-server.py:
1212
1213         Add tests that check to make sure values of all types
1214         can be echoed from a service w/o mangling.
1215         
1216 2004-05-29  Seth Nickell  <seth@gnome.org>
1217
1218         * python/dbus.py:
1219
1220         Add ObjectTree class which allows implementation
1221         of trees of "virtual" objects. Basically the python
1222         wrapper for "register_fallback".
1223         
1224         * python/examples/Makefile.am
1225         * python/examples/gconf-proxy-client.py:
1226         * python/examples/gconf-proxy-service.py:
1227
1228         Implement a simple GConf proxy service that supports
1229         get/set on string and int GConf keys using the ObjectTree.
1230         
1231 2004-05-29  Seth Nickell  <seth@gnome.org>
1232
1233         * python/dbus.py:
1234         * python/examples/example-client.py:
1235         * python/examples/example-service.py:
1236         * python/examples/list-system-services.py:
1237
1238         Add SessionBus, SystemBus and ActivationBus classes
1239         so you don't need to know the special little BUS_TYPE
1240         flag.
1241         
1242 2004-05-29  Havoc Pennington  <hp@redhat.com>
1243
1244         * bus/config-parser.c (process_test_valid_subdir): temporarily
1245         stop testing config parser OOM handling, since expat has issues
1246         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
1247
1248         * bus/dbus-daemon-1.1.in: change requested_reply to
1249         send_requested_reply/receive_requested_reply so we can send the
1250         replies, not just receive them.
1251
1252         * bus/config-parser.c: parse the new
1253         send_requested_reply/receive_requested_reply
1254
1255         * bus/policy.c (bus_client_policy_check_can_send): add
1256         requested_reply argument and use it
1257
1258         * bus/bus.c (bus_context_check_security_policy): pass through
1259         requested_reply status to message send check
1260
1261         * bus/system.conf.in: adapt to requested_reply change
1262         
1263 2004-05-28  Havoc Pennington  <hp@redhat.com>
1264
1265         * test/glib/test-service-glib.c (main): remove unused variable
1266
1267         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
1268
1269         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
1270         from the enum, no longer in use.
1271
1272         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
1273         works right.
1274
1275         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
1276         whether error_name passed in is a valid error name.
1277
1278 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
1279
1280         * dbus/dbus-message.c (dbus_message_get_args): Added support for
1281         OBJECT_PATH and OBJECT_PATH_ARRAY
1282
1283 2004-05-28  Seth Nickell  <seth@gnome.org>
1284
1285         * python/examples/Makefile.am:
1286
1287         Forget to add Makefile.am. Do not pass go.
1288
1289 2004-05-28  Michael Meeks  <michael@ximian.com>
1290
1291         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
1292         fix no int64 case.
1293
1294         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
1295
1296         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
1297         (_dbus_message_iter_get_basic_type_array): impl.
1298         drastically simplify ~all relevant _get methods to use these.
1299         (_dbus_message_iter_append_basic_array),
1300         (dbus_message_iter_append_basic): impl
1301         drastically simplify ~all relevant _append methods to use these.
1302
1303         * dbus/dbus-message-builder.c (parse_basic_type) 
1304         (parse_basic_array, lookup_basic_type): impl.
1305         (_dbus_message_data_load): prune scads of duplicate /
1306         cut & paste coding.
1307
1308         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
1309         (_dbus_demarshal_basic_type): implement,
1310         (demarshal_and_validate_len/arg): beef up debug.
1311         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
1312
1313 2004-05-27  Seth Nickell  <seth@gnome.org>
1314
1315         * configure.in:
1316         * python/Makefile.am:
1317
1318         Include the example python apps in the tarball.
1319         
1320         * python/examples/list-system-services.py
1321
1322         Add a python new example that fetches the list of services
1323         from the system bus.
1324         
1325 2004-05-27  Seth Nickell  <seth@gnome.org>
1326
1327         * python/dbus.py:
1328         * python/dbus_bindings.pyx.in:
1329
1330         Fix failure to notify that a signal was not handled,
1331         resulted in hung functions.
1332         
1333 2004-05-25  Colin Walters  <walters@redhat.com>
1334
1335         * tools/dbus-monitor.c (main): Monitor all types of messages.
1336
1337 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
1338
1339         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
1340         which unregisters the object path and disposes the handler.
1341
1342 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
1343  
1344         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
1345          
1346         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
1347         operands to && so we call dbus_message_iter_next () for the last
1348         argument also.
1349
1350 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1351
1352         * dbus/dbus-object-tree.c
1353         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
1354         children even if the requested path isn't registered.
1355         (object_tree_test_iteration): test object_tree_list_registered.
1356
1357         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
1358         it to 0.
1359         
1360 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
1361
1362         * doc/TODO: Remove resolved items.
1363
1364         * bus/expirelist.h (struct BusExpireList): remove unused n_items
1365         field.
1366         
1367         * bus/connection.c (bus_connections_expect_reply): Enforce the
1368         per-connection limit on pending replies.
1369         
1370         Patch from Jon Trowbridge <trow@ximian.com>:
1371  
1372         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
1373         up a watch that triggers a config reload when one end of the pipe
1374         becomes readable.
1375         (signal_handler): Instead of doing the config reload in our SIGHUP
1376         handler, just write to the reload pipe and let the associated
1377         watch handle the reload when control returns to the main loop.
1378  
1379         * bus/driver.c (bus_driver_handle_reload_config): Added.
1380         Implements a ReloadConfig method for requesting a configuration
1381         file reload via the bus driver.
1382  
1383 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
1384
1385         * HACKING: Updated release instructions concerning the wiki page.
1386
1387 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
1388
1389         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
1390         filter against auth->allowed_mechs; we only add allowed mechs in
1391         record_mechanisms().
1392  
1393         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
1394         ALLOWED_MECHS to auth-script format so we can set the list of
1395         allowed mechanisms.
1396  
1397         * data/auth/client-out-of-mechanisms.auth-script: New test to
1398         check client disconnects when it is out of mechanisms to try.
1399  
1400         * dbus/dbus-auth.c (process_command): Remove check for lines
1401         longer that 1 MB; we only buffer up maximum 16 kB.
1402  
1403         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
1404         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
1405         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
1406         assume there might be unused bytes.
1407  
1408         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
1409         client-out-of-mechs, it is handled in process_reject(). Move check
1410         for max failures to send_rejected(), as it's a server-only thing.
1411
1412         * dbus/dbus-auth.c: Factor out protocol reply code into functions
1413         send_auth(), send_data(), send_rejected(), send_error(),
1414         send_ok(), send_begin() and send_cancel().
1415
1416 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
1417
1418         Remove base64 encoding, replace with hex encoding. Original patch
1419         from trow@ximian.com, added error handling.
1420
1421         * dbus/dbus-string.c (_dbus_string_base64_encode)
1422         (_dbus_string_base64_decode): Remove.
1423         (_dbus_string_hex_decode): Add end_return argument so we can
1424         distinguish between OOM and invalid hex encoding.
1425         (_dbus_string_test): Remove base64 tests and add test case for
1426         invalid hex.
1427
1428         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
1429         Replace base64 with hex.
1430
1431         * test/data/auth/invalid-hex-encoding.auth-script: New test case
1432         for invalid hex encoded data in auth protocol.
1433
1434 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1435
1436         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
1437         leak.
1438
1439 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
1440
1441         * mono/dbus-sharp.dll.config.in: Added for GAC
1442         * mono/dbus-sharp.snk: Added for GAC
1443         * mono/Assembly.cs.in: Added for GAC
1444         * mono/Makefile.am: Changes for GAC installation        
1445         * configure.in: Added refs for dbus-sharp.dll.config.in and
1446         Assembly.cs.in. More fixes for mono testing
1447         * mono/example/Makefile.am: Changed var to CSC
1448         * Makefile.am: Changed flag name to DBUS_USE_CSC
1449
1450 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
1451
1452         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
1453         * mono/doc/*: Added documentation framework
1454         * configure.in: Added monodoc check
1455         * README: Added description of mono configure flags
1456
1457 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
1458
1459         * doc/dbus-specification.xml: Added a "Required" column to the 
1460         header fields table and changed the "zero or more" verbage in
1461         the above paragraph to read "The header must contain the required 
1462         named header fields and zero or more of the optional named header 
1463         fields".
1464         * test/data/invalid-messages/*.message: Added the required PATH 
1465         named header field to the tests so that they don't fail on 
1466         'Missing path field'
1467
1468 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
1469
1470         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
1471         the stack by implicitly defining variable and parameter types and
1472         removing the hack of defining C pointers as python objects and later
1473         casting them.
1474
1475 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
1476
1477         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
1478
1479 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
1480
1481         * mono/DBusType/Dict.cs: Handle empty dicts
1482         * mono/DBusType/Array.cs: Handle empty arrays
1483         * mono/Arguments.cs: Handle empty arguments
1484
1485 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
1486
1487         * dbus-sharp.pc.in: Modified to include include Libs and Requires
1488         field
1489
1490 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
1491
1492         * test/data/valid-messages/standard-*.message: Update message
1493         test scripts to new header field names.
1494
1495 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
1496
1497         * test/break-loader.c (randomly_do_n_things): tracked down buffer
1498         overflow to times_we_did_each_thing array which would chop off the
1499         first character of the failure_dir string. Increased the size of
1500         the array to 7 to reflect the number of random mutation functions
1501         we have.
1502
1503 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
1504
1505         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
1506         unix_server->watch here, it is unreffed in disconnect.
1507         (_dbus_server_new_for_tcp_socket): convert NULL host to
1508         "localhost" here so we don't append NULL to address.
1509         
1510         * dbus/dbus-server.c (_dbus_server_test): Add test case for
1511         various addresses, including tcp with no explicit host.
1512
1513 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1514
1515         * dbus/dbus-message.c (decode_header_data, decode_string_field):
1516         fix incorrect setting of .name_offset in the HeaderField (it was
1517         off by two bytes, positioned right after the name and typecode)
1518
1519         * bus/bus.c (bus_context_new, bus_context_unref): test before
1520         calling dbus_server_free_data_slot and _dbus_user_database_unref
1521         in case of an error.
1522
1523         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
1524         by libdbus-gtool.
1525
1526 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
1527
1528         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
1529         _dbus_poll() instead of select().
1530
1531 2004-04-15  Jon Trowbridge  <trow@ximian.com>
1532
1533         * bus/main.c (signal_handler): Reload the configuration files
1534         on SIGHUP.
1535         (main): Set up our SIGHUP handler.
1536
1537         * bus/bus.c (struct BusContext): Store the config file, user and
1538         fork flag in the BusContext.
1539         (process_config_first_time_only): Added.  Contains the code
1540         (previously in bus_context_new) for setting up the BusContext from
1541         the BusConfigParser that should only be run the first time the
1542         config files are read.
1543         (process_config_every_time): Added.  Contains the code (previously
1544         in bus_context_new) for setting up the BusContext from the
1545         BusConfigParser that should be run every time the config files are
1546         read.
1547         (load_config): Added.  Builds a BusConfigParser from the config
1548         files and passes the resulting structure off to
1549         process_config_first_time_only (assuming this is the first time)
1550         and process_config_every_time.
1551         (bus_context_new): All of the config-related code has been moved
1552         to process_config_first_time_only and process_config_every_time.
1553         Now this function just does the non-config-related initializations
1554         and calls load_config.
1555         (bus_context_reload_config): Added.
1556
1557 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1558
1559         * bus/driver.c (bus_driver_handle_get_service_owner):
1560         implement a GetServiceOwner method.
1561         * doc/dbus-specification.xml: document it.
1562         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
1563         
1564         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
1565         implement, using the bus GetServiceOwner method.
1566
1567         * test/glib/test-dbus-glib.c:
1568         use dbus_gproxy_new_for_service_owner so that we can receive the
1569         signal. 
1570
1571 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
1572
1573         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1574         dbus/dbus-message.c, dbus/dbus-protocol.h
1575         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
1576
1577         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1578         dbus/dbus-message.c, dbus/dbus-protocol.h
1579         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
1580
1581         * dbus/dbus-internals.c (_dbus_header_field_to_string):
1582         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
1583         DBUS_HEADER_FIELD_SENDER resolves to "sender"
1584
1585         * doc/dbus-specification.xml (Header Fields Table):
1586         s/SERVICE/DESTINATION
1587         s/SENDER_SERVICE/SENDER
1588
1589
1590 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1591
1592         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
1593         a few seconds.
1594
1595 2004-04-13  Michael Meeks  <michael@ximian.com>
1596
1597         * glib/dbus-gobject.c (handle_introspect): split out
1598         (introspect_properties): this.
1599         (handle_introspect): implement this.
1600
1601         * test/glib/Makefile.am: use the absolute path so the bus
1602         daemon's chdir ("/") doesn't kill us dead.
1603
1604         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
1605
1606 2004-04-12  Jon Trowbridge  <trow@ximian.com>
1607
1608         * bus/config-parser.c (struct BusConfigParser): Added
1609         included_files field.
1610         (seen_include): Added.  Checks whether or not a file has already
1611         been included by any parent BusConfigParser.
1612         (bus_config_parser_new): Copy the parent's included_files.
1613         (include_file): Track which files have been included, and fail on
1614         circular inclusions.
1615         (process_test_valid_subdir): Changed printf to report if we are
1616         testing valid or invalid conf files.
1617         (all_are_equiv): Changed printf to be a bit clearer about
1618         what we are actually doing.
1619         (bus_config_parser_test): Test invalid configuration files.
1620
1621 2004-04-09  Jon Trowbridge  <trow@ximian.com>
1622
1623         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
1624         argument.  If non-null, the newly-constructed BusConfigParser will
1625         be initialized with the parent's BusLimits instead of the default
1626         values.
1627         (include_file): When including a config file, pass in
1628         the current parser as the parent and then copy the BusLimits
1629         from the included BusConfigParser pack to the current parser.
1630         (process_test_valid_subdir): Renamed from process_test_subdir.
1631         (process_test_equiv_subdir): Added.  Walks through a directory,
1632         descending into each subdirectory and loading the config files
1633         it finds there.  If any subdirectory contains two config files
1634         that don't produce identical BusConfigParser structs, fail.
1635         For now, the BusConfigParser's BusPolicies are not compared.
1636         (bus_config_parser_test): Call both process_test_valid_subdir and
1637         process_test_equiv_subdir.
1638
1639         * bus/config-loader-libxml.c (bus_config_load): Take a parent
1640         argument and pass it along to the call to bus_config_parser_new.
1641         Also made a few small changes to allow this code to compile.
1642
1643         * bus/config-loader-expat.c (bus_config_load): Take a parent
1644         argument and pass it along to the call to bus_config_parser_new.
1645
1646         * bus/bus.c (bus_context_new): Load the config file
1647         with a NULL parent argument.
1648
1649 2004-03-29  Michael Meeks  <michael@ximian.com>
1650
1651         * glib/dbus-gobject.c (introspect_properties): split
1652         out, fix mangled 'while' flow control.
1653         (introspect_signals): implement.
1654         (handle_introspect): update.
1655
1656 2004-03-29  Michael Meeks  <michael@ximian.com>
1657
1658         * glib/dbus-gobject.c (set_object_property): split out / 
1659         re-work, use the property type, and not the message type(!)
1660         (get_object_property): ditto.
1661
1662         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
1663         (dbus_gvalue_marshal): make this code re-usable, needed
1664         for signals too, also on both proxy and server side.
1665         Re-write for more efficiency / readability.
1666
1667 2004-03-29  Michael Meeks  <michael@ximian.com>
1668
1669         * dbus/dbus-message.c
1670         (dbus_message_new_error_printf): impl.
1671
1672         * dbus/dbus-connection.c
1673         (dbus_connection_unregister_object_path): fix warning.
1674
1675         * configure.in: fix no-mono-installed situation.
1676
1677 2004-03-27  Havoc Pennington  <hp@redhat.com>
1678
1679         Patch from Timo Teräs:
1680         
1681         * tools/dbus-send.c (main): if --print-reply, assume type is
1682         method call; support boolean type args
1683         
1684         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
1685         bunch of memleak and logic bugs
1686         
1687 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
1688
1689         * mono/Arguments.cs:
1690         * mono/Introspector.cs:
1691         * mono/Handler.cs:
1692         * mono/InterfaceProxy.cs:
1693         * mono/Message.cs
1694         * mono/ProxyBuilder.cs:
1695         * mono/Service.cs:
1696         Added InterfaceProxy class to avoid building proxies for every
1697         object.
1698
1699         * dbus-message.h:
1700         * dbus-message.c (dbus_message_append_args_valist)
1701         (dbus_message_iter_get_object_path)
1702         (dbus_message_iter_get_object_path_array)
1703         (dbus_message_iter_append_object_path)
1704         (dbus_message_iter_append_object_path_array):
1705         Added object_path iter functions to handle OBJECT_PATH arguments
1706         
1707 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
1708
1709         First checkin of mono bindings.
1710         * configure.in:
1711         * Makefile.am:
1712         Build stuff for the bindings
1713         * dbus-sharp.pc.in: Added for pkgconfig
1714         
1715 2004-03-21  Havoc Pennington  <hp@redhat.com>
1716
1717         * test/test-service.c (main): remove debug spew
1718
1719 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1720
1721         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
1722         arrays
1723
1724         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
1725         (dbus_message_iter_init_array_iterator)
1726         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
1727         indicate whether the iterator is empty
1728
1729         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
1730         warnings
1731
1732 2004-03-19  Havoc Pennington  <hp@redhat.com>
1733
1734         * NEWS: 0.21 updates
1735
1736         * configure.in: 0.21
1737
1738         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
1739         
1740         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
1741         you don't need pyrex to make dist
1742
1743         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
1744         sources; run moc
1745         
1746 2004-03-18  Richard Hult  <richard@imendio.com>
1747
1748         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
1749         (dbus_message_set_auto_activation): Add doxygen docs.
1750
1751 2004-03-16  Richard Hult  <richard@imendio.com>
1752
1753         * bus/activation.c: (bus_activation_service_created),
1754         (bus_activation_send_pending_auto_activation_messages),
1755         (bus_activation_activate_service):
1756         * bus/activation.h:
1757         * bus/dispatch.c: (bus_dispatch),
1758         (check_nonexistent_service_auto_activation),
1759         (check_service_auto_activated),
1760         (check_segfault_service_auto_activation),
1761         (check_existent_service_auto_activation), (bus_dispatch_test):
1762         * bus/driver.c: (bus_driver_handle_activate_service):
1763         * bus/services.c: (bus_registry_acquire_service):
1764         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
1765         (dbus_message_get_auto_activation):
1766         * dbus/dbus-message.h:
1767         * dbus/dbus-protocol.h: Implement auto-activation.
1768         
1769         * doc/dbus-specification.xml: Add auto-activation to the spec.
1770
1771 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1772
1773         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
1774         fix a bug with CUSTOM types.
1775
1776         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
1777         a unit test for this bug (used to fail).
1778
1779 2004-03-12  Mikael Hallendal  <micke@imendio.com>
1780
1781         * bus/activation.c:
1782         (babysitter_watch_callback): notify all pending activations waiting for
1783           the same exec that the activation failed.
1784         (bus_activation_activate_service): shortcut the activation if we 
1785           already waiting for the same executable to start up.
1786
1787 2004-03-12  Mikael Hallendal  <micke@imendio.com>
1788
1789         * bus/activation.c: 
1790         - Added service file reloading. 
1791           Each service files directory is kept in an hash table in 
1792           BusActivation and each BusActivationEntry knows what .service-file it
1793           was read from. So when you try to activate a service the bus will 
1794           check if it's been updated, removed or if new .service-files has 
1795           been installed.
1796         - Test code at the bottom for the service file reloading.
1797         * bus/test-main.c: (main):
1798         * bus/test.h:
1799         - added service reloading test.
1800         * dbus/dbus-sysdeps.c: 
1801         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
1802
1803 2004-03-08  Michael Meeks  <michael@ximian.com>
1804
1805         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
1806         bail immediately if disconnected, to avoid busy loop.
1807
1808         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
1809         cleanup cut/paste/inefficiency.
1810
1811 2004-03-01  David Zeuthen  <david@fubar.dk>
1812
1813         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
1814         bug where args were used twice. This bug resulted in a segfault
1815         on a Debian/PPC system when starting the messagebus daemon. Include
1816         dbus-sysdeps.h for DBUS_VA_COPY
1817
1818         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
1819
1820         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
1821         appropriate va_copy implementation. From GLib
1822         
1823 2004-02-24  Joe Shaw  <joe@ximian.com>
1824
1825         * bus/services.c (bus_registry_acquire_service): We need to pass
1826         in the service name to dbus_set_error() to prevent a crash.
1827
1828 2003-12-26  Anders Carlsson  <andersca@gnome.org>
1829
1830         * AUTHORS: Reveal my True identity.
1831
1832 2003-12-17  Mikael Hallendal  <micke@imendio.com>
1833
1834         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
1835         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
1836
1837 2003-12-13  Mikael Hallendal  <micke@imendio.com>
1838
1839         * doc/TODO: Added not about better error check of configuration files.
1840
1841 2003-12-02  Richard Hult  <richard@imendio.com>
1842
1843         * Update AFL version to 2.0 throughout the source files to reflect
1844         the update that was done a while ago.
1845
1846 2003-12-02  Richard Hult  <richard@imendio.com>
1847
1848         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
1849         wrote_dict_key to FALSE on the iter that the dict is appended to,
1850         just like when appending other types. Fixes a bug where a dict
1851         couldn't be put inside a dict.
1852         (dbus_message_iter_append_dict_key): Fix typo in warning message.
1853         (message_iter_test, _dbus_message_test): Add test case for dict
1854         inside dict.
1855
1856 2003-12-01  David Zeuthen  <david@fubar.dk>
1857
1858         * python/dbus.py: Add the actual message when calling the reciever
1859         of a signal such that parameters can be inspected. Add the method
1860         remove_signal_receiver
1861         
1862 2003-11-26  Mikael Hallendal  <micke@imendio.com>
1863
1864         * bus/*.[ch]:
1865         * dbus/*.[ch]:
1866         * glib/*.[ch]: Made ref functions return the pointer
1867
1868 2003-11-25  Zack Rusin  <zack@kde.org>
1869
1870         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
1871
1872         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
1873         wrappers,
1874
1875         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
1876         the Integrator and to better fit with the server,
1877
1878 2003-11-24  Zack Rusin  <zack@kde.org>
1879
1880         * qt/connection.h, qt/connection.cpp: removing initDbus method since
1881         the integrator handles it now
1882
1883         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
1884         since QTimer wasn't really meant to be used the way DBusTimeout is
1885
1886 2003-11-24  Zack Rusin  <zack@kde.org>
1887
1888         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
1889         Integrator class which integrates D-BUS with the Qt event loop,
1890
1891         * qt/connection.h, qt/connection.cpp: Move all the code which
1892         was dealing with D-BUS integration to the Integrator class,
1893         and start using Integrator,
1894
1895 2003-11-23  Zack Rusin  <zack@kde.org>
1896
1897         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
1898         wrapper
1899
1900         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
1901         switching namespaces to DBusQt, reworking the class,
1902
1903         * Makefile.cvs: switching dependencies so that it matches KDE 
1904         schematics,
1905         
1906         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
1907         the library
1908
1909 2003-11-19  Havoc Pennington  <hp@redhat.com>
1910
1911         * NEWS: update
1912
1913         * configure.in: bump version to 0.20
1914
1915         * configure.in (have_qt): add yet another place to look for qt
1916         (someone hand trolltech a .pc file...)
1917
1918 2003-11-01  Havoc Pennington  <hp@redhat.com>
1919
1920         * doc/dbus-specification.xml: add state machine docs on the auth
1921         protocol; just a first draft, I'm sure it's wrong.      
1922
1923 2003-10-28  David Zeuthen  <david@fubar.dk>
1924
1925         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
1926         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
1927         
1928 2003-10-28  Havoc Pennington  <hp@redhat.com>
1929
1930         * dbus/dbus-message.c (get_next_field): delete unused function
1931
1932 2003-10-28  Havoc Pennington  <hp@redhat.com>
1933
1934         * bus/expirelist.c (do_expiration_with_current_time): detect
1935         failure of the expire_func due to OOM
1936
1937         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
1938
1939         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
1940         NoReply error that's now created by the bus when the service exits
1941
1942 2003-10-28  Havoc Pennington  <hp@redhat.com>
1943
1944         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
1945         tests for set_path, set_interface, set_member, etc.
1946
1947         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
1948
1949         * dbus/dbus-message.c (set_string_field): always just delete and
1950         re-append the field; accept NULL for deletion
1951         (re_align_fields_recurse): reimplement
1952         
1953 2003-10-26  Havoc Pennington  <hp@redhat.com>
1954
1955         * dbus/dbus-connection.c: fix docs to properly describe the
1956         disconnected message
1957         (_dbus_connection_notify_disconnected): remove this function; 
1958         we can't synchronously add the disconnected message, we have to 
1959         do it after we've queued any remaining real messages
1960         (_dbus_connection_get_dispatch_status_unlocked): queue the
1961         disconnect message only if the transport has finished queueing all
1962         its real messages and is disconnected.
1963         (dbus_connection_disconnect): update the dispatch status here
1964
1965 2003-10-22  Havoc Pennington  <hp@redhat.com>
1966
1967         * bus/bus.c (bus_context_check_security_policy): fix up assertion
1968
1969         * bus/connection.c (bus_transaction_send_from_driver): set the
1970         destination to the connection's base service
1971
1972 2003-10-20  Havoc Pennington  <hp@redhat.com>
1973
1974         hmm, make check is currently not passing.
1975         
1976         * doc/dbus-specification.xml: add requirement that custom type
1977         names follow the same rules as interface names.
1978
1979         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
1980         duplication and allow 'c' to be 'custom'; dict is now 'm' for
1981         'map'
1982
1983         * doc/dbus-specification.xml: update type codes to match
1984         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
1985         CUSTOM. Add type OBJECT_PATH to the spec.
1986
1987 2003-10-17  Havoc Pennington  <hp@redhat.com>
1988
1989         * bus/driver.c (create_unique_client_name): use "." as separator
1990         in base service names instead of '-'
1991
1992         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
1993         byte at the end of the string
1994
1995         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
1996         optimization macros since string validation seems to be a slow
1997         point.
1998         
1999         * doc/dbus-specification.xml: restrict valid
2000         service/interface/member/error names. Add test suite code for the
2001         name validation.
2002
2003         * dbus/dbus-string.c: limit service/interface/member/error names 
2004         to [0-9][A-Z][a-z]_
2005
2006         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
2007         format arg to verbose spew
2008
2009         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
2010         memory, return instead of g_error
2011
2012         * test/test-service.c (path_message_func): support emitting a
2013         signal on request
2014
2015         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
2016         activation bus type if DBUS_BUS_ACTIVATION was set; default to
2017         assuming the activation bus was the session bus so that services
2018         started manually will still register.
2019         (init_connections_unlocked): fix so that in OOM situation we get
2020         the same semantics when retrying the function
2021         
2022         * test/test-service.c (main): change to use path registration, to
2023         test those codepaths; register with DBUS_BUS_ACTIVATION rather
2024         than DBUS_BUS_SESSION
2025
2026 2003-10-16  Havoc Pennington  <hp@redhat.com>
2027
2028         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
2029
2030         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
2031         coverage of the tests
2032         (coverage-report.txt): don't move the .da and .bbg files around
2033
2034 2003-10-16  Havoc Pennington  <hp@redhat.com>
2035
2036         * bus/bus.c (struct BusContext): remove struct field I didn't mean
2037         to put there
2038
2039 2003-10-16  Havoc Pennington  <hp@redhat.com>
2040
2041         * bus/connection.c (bus_pending_reply_expired): either cancel or
2042         execute, not both
2043         (bus_connections_check_reply): use unlink, not remove_link, as we
2044         don't want to free the link; fixes double free mess
2045
2046         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
2047         where no reply was received
2048
2049         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
2050         fix a refcount leak
2051
2052         * bus/signals.c (match_rule_matches): add special cases for the
2053         bus driver, so you can match on sender/destination for it.
2054
2055         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
2056         DBUS_PRINT_BACKTRACE is set
2057
2058         * dbus/dbus-internals.c: add pid to assertion failure messages
2059
2060         * dbus/dbus-connection.c: add message type code to the debug spew
2061
2062         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
2063         sender=foo not service=foo
2064
2065         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
2066         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
2067         DBUS_ACTIVATION_ADDRESS instead
2068
2069         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
2070         DBUS_SYSTEM_BUS_ADDRESS if appropriate
2071
2072         * bus/bus.c (bus_context_new): handle OOM copying bus type into
2073         context struct
2074
2075         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
2076         (dbus_message_iter_get_object_path_array): new function (half
2077         finished, disabled for the moment)
2078         
2079         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
2080         DBUS_MESSAGE_TYPE_ERROR
2081
2082         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
2083         avoid redirecting stderr to /dev/null
2084         (babysit): close stdin if not doing the "exit_with_session" thing
2085
2086         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
2087         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
2088         stdout/stdin, so things don't get confused
2089         
2090         * bus/system.conf.in: fix to allow replies, I modified .conf
2091         instead of .conf.in again.
2092
2093 2003-10-14  David Zeuthen  <david@fubar.dk>
2094
2095         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
2096         argtype to arg_type when raising unknown arg type exception.
2097         Changed type list to reflect the changes in dbus-protocol.h so 
2098         the bindings actually work.
2099
2100 2003-10-14  Havoc Pennington  <hp@redhat.com>
2101
2102         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
2103         to have a bug keeping it from outputting the .da files sometimes
2104         (string_get_string): don't append garbage nul bytes to the string.
2105
2106 2003-10-15  Seth Nickell  <seth@gnome.org>
2107
2108         * python/Makefile.am:
2109
2110         Include dbus_h_wrapper.h in the dist tarball.
2111
2112 2003-10-14  Havoc Pennington  <hp@redhat.com>
2113
2114         * bus/bus.c (bus_context_check_security_policy): revamp this to
2115         work more sanely with new policy-based requested reply setup
2116
2117         * bus/connection.c (bus_transaction_send_from_driver): set bus
2118         driver messages as no reply
2119
2120         * bus/policy.c (bus_client_policy_check_can_receive): handle a
2121         requested_reply attribute on allow/deny rules
2122
2123         * bus/system.conf: add <allow requested_reply="true"/>
2124
2125         * bus/driver.c (bus_driver_handle_message): fix check for replies
2126         sent to the bus driver, which was backward. How did this ever work
2127         at all though? I think I'm missing something.
2128
2129         * dbus/dbus-message.c (decode_header_data): require error and
2130         method return messages to have a reply serial field to be valid
2131         (_dbus_message_loader_queue_messages): break up this function;
2132         validate that reply serial and plain serial are nonzero; 
2133         clean up the OOM/error handling.
2134         (get_uint_field): don't return -1 from this
2135         (dbus_message_create_header): fix signed/unsigned bug
2136
2137         * bus/connection.c (bus_connections_expect_reply): save serial of
2138         the incoming message, not reply serial
2139
2140 2003-10-14  Havoc Pennington  <hp@redhat.com>
2141
2142         * bus/connection.c: implement pending reply tracking using
2143         BusExpireList
2144
2145         * bus/bus.c (bus_context_check_security_policy): verify that a
2146         reply is pending in order to allow a reply to be sent. Deny 
2147         messages of unknown type.
2148
2149         * bus/dbus-daemon-1.1.in: update to mention new resource limits
2150
2151         * bus/bus.c (bus_context_get_max_replies_per_connection): new
2152         (bus_context_get_reply_timeout): new
2153
2154 2003-10-13  Seth Nickell  <seth@gnome.org>
2155
2156         * python/Makefile.am:
2157
2158         Pass "make distcheck": remove a couple files from DIST_FILES
2159         that weren't included in the final version.
2160
2161 2003-10-12  Havoc Pennington  <hp@pobox.com>
2162
2163         Added test code that 1) starts an actual bus daemon and 2) uses
2164         DBusGProxy; fixed bugs that were revealed by the test. Lots 
2165         more testing possible, but this is the basic framework.
2166         
2167         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
2168         empty proxy lists from the proxy list hash
2169
2170         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
2171         couple of return_if_fail checks
2172
2173         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
2174         to allocate, so everything is cleared to NULL as it should be.
2175
2176         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
2177         source as data to dbus_connection_set_timeout_functions() as the 
2178         timeout functions expected
2179
2180         * test/glib/run-test.sh: add a little script to start up a message
2181         bus and run tests using it
2182
2183         * tools/dbus-launch.1: updates
2184
2185         * tools/dbus-launch.c (main): add --config-file option
2186
2187         * tools/dbus-launch.c (main): remove confusing else if (runprog)
2188         that could never be reached.
2189
2190         * dbus/dbus-message.c (dbus_message_new_method_return) 
2191         (dbus_message_new_error, dbus_message_new_signal): set the
2192         no-reply-expected flag on all these. Redundant, but may
2193         as well be consistent.
2194
2195 2003-10-11  Havoc Pennington  <hp@pobox.com>
2196
2197         * test/decode-gcov.c (function_solve_graph): make broken block
2198         graph a nonfatal error since it seems to be broken. Need to debug
2199         this.
2200
2201         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
2202         can't just check type > INVALID < LAST anymore
2203
2204         * dbus/dbus-message.c (dbus_message_get_signature): new function
2205         (dbus_message_has_signature): new function
2206         (struct DBusMessage): add signature field (right now it isn't sent
2207         over the wire, just generated on the fly)
2208         (dbus_message_copy): copy the signature, and init strings to
2209         proper length to avoid some reallocs
2210         (dbus_message_iter_init_array_iterator): return void, since it
2211         can't fail
2212         (dbus_message_iter_init_dict_iterator): return void since it can't fail
2213         (_dbus_message_loader_queue_messages): add silly temporary hack to
2214         fill in message->signature on load
2215
2216         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
2217         characters, so they are relatively human-readable.
2218
2219 2003-10-11  Havoc Pennington  <hp@pobox.com>
2220
2221         * dbus/dbus-message.c (_dbus_message_test): add more test
2222         coverage, but #if 0 for now since they uncover a bug 
2223         not fixed yet; I think in re_align_field_recurse()
2224         (re_align_field_recurse): add FIXME about broken assertion
2225
2226         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
2227
2228         * bus/connection.c: share a couple code bits with expirelist.c
2229
2230         * bus/expirelist.h, bus/expirelist.c: implement a generic
2231         expire-items-after-N-seconds facility, was going to share between
2232         expiring connections and replies, decided not to use for expiring
2233         connections for now.
2234
2235         * COPYING: include AFL 2.0 (still need to change all the file headers)
2236
2237 2003-10-09  Havoc Pennington  <hp@redhat.com>
2238
2239         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
2240         gcc 3.3. Not that we do anything about it yet.
2241
2242         * bus/signals.c (bus_match_rule_parse): impose max length on the
2243         match rule text
2244
2245         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
2246
2247 2003-10-09  Havoc Pennington  <hp@redhat.com>
2248
2249         Make matching rules theoretically work (add parser).
2250         
2251         * bus/bus.c (bus_context_check_security_policy): fix up to handle
2252         the case where destination is explicitly specified as bus driver
2253         and someone else is eavesdropping.
2254         
2255         * bus/policy.c (bus_client_policy_check_can_receive): fix up
2256         definition of eavesdropping and assertion
2257
2258         * tools/dbus-send.c (main): use dbus_message_type_from_string
2259
2260         * bus/signals.c (bus_match_rule_parse): implement
2261
2262         * dbus/dbus-message.c (dbus_message_type_from_string): new
2263
2264         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
2265
2266 2003-10-02  Havoc Pennington  <hp@pobox.com>
2267
2268         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
2269         dbus_gproxy_oneway_call
2270
2271         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
2272         (dbus_server_setup_with_g_main): fix to allow calling them more
2273         than once on the same args
2274         (dbus_bus_get_with_g_main): new function
2275
2276 2003-10-02  Havoc Pennington  <hp@redhat.com>
2277
2278         * doc/dbus-tutorial.xml: write some stuff
2279
2280 2003-09-29  Havoc Pennington  <hp@pobox.com>
2281
2282         * configure.in: split checks for Doxygen from XML docs, check for
2283         xmlto
2284
2285         * doc/Makefile.am: XML-ify all the docs, and add a blank
2286         dbus-tutorial.xml
2287
2288 2003-09-29  Havoc Pennington  <hp@pobox.com>
2289
2290         * Merge dbus-object-names branch. To see the entire patch 
2291         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
2292         it's huuuuge though.
2293         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
2294         
2295 2003-09-28  Havoc Pennington  <hp@pobox.com>
2296
2297         * HACKING: update to reflect new server
2298
2299 2003-09-26  Seth Nickell  <seth@gnome.org>
2300
2301         * python/dbus.py:
2302         * python/examples/example-signals.py:
2303
2304         Start implementing some notions of signals. The API
2305         is really terrible, but they sort of work (with the
2306         exception of being able to filter by service, and to
2307         transmit signals *as* a particular service). Need to
2308         figure out how to make messages come from the service
2309         we registered :-(
2310         
2311         * python/dbus_bindings.pyx.in:
2312
2313         Removed duplicate message_handler callbacks.
2314         
2315 2003-09-25  Havoc Pennington  <hp@redhat.com>
2316
2317         * bus/session.conf.in: fix my mess
2318
2319 2003-09-25  Havoc Pennington  <hp@pobox.com>
2320
2321         * bus/session.conf.in: fix security policy, reported by Seth Nickell
2322
2323 2003-09-25  Seth Nickell  <seth@gnome.org>
2324
2325         * python/examples/example-service.py:
2326
2327         Johan notices complete wrong code in example-service, but
2328         completely wrong in a way that works exactly the same (!).
2329         Johan is confused, how could this possibly work? Example
2330         code fails to serve purpose of making things clear.
2331         Seth fixes.
2332
2333 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
2334
2335         * doc/dbus-specification.sgml: don't require header fields
2336         to be 4-byte aligned and specify that fields should be
2337         distinguished from padding by the fact that zero is not
2338         a valid field name.
2339         
2340         * doc/TODO: remove re-alignment item and add item to doc
2341         the OBJECT_PATH type.
2342         
2343         * dbus/dbus-message.c:
2344         (HeaderField): rename the original member to value_offset
2345         and introduce a name_offset member to keep track of where
2346         the field actually begins.
2347         (adjust_field_offsets): remove.
2348         (append_int_field), (append_uint_field),
2349         (append_string_field): don't align the start of the header
2350         field to a 4-byte boundary.
2351         (get_next_field): impl finding the next marhsalled field
2352         after a given field.
2353         (re_align_field_recurse): impl re-aligning a number of
2354         already marshalled fields.
2355         (delete_field): impl deleting a field of any type and
2356         re-aligning any following fields.
2357         (delete_int_or_uint_field), (delete_string_field): remove.
2358         (set_int_field), (set_uint_field): no need to re-check
2359         that we have the correct type for the field.
2360         (set_string_field): ditto and impl re-aligning any
2361         following fields.
2362         (decode_header_data): update to take into account that
2363         the fields aren't 4-byte aligned any more and the new
2364         way to distinguish padding from header fields. Also,
2365         don't exit when there is too much header padding.
2366         (process_test_subdir): print the directory.
2367         (_dbus_message_test): add test to make sure a following
2368         field is re-aligned correctly after field deletion.
2369         
2370         * dbus/dbus-string.[ch]:
2371         (_dbus_string_insert_bytes): rename from insert_byte and
2372         allow the insert of multiple bytes.
2373         (_dbus_string_test): test inserting multiple bytes.
2374
2375         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
2376         warning note to docs about having to re-align any
2377         marshalled values following the string.
2378         
2379         * dbus/dbus-message-builder.c:
2380         (append_string_field), (_dbus_message_data_load):
2381         don't align the header field.
2382         
2383         * dbus/dbus-auth.c: (process_test_subdir): print the
2384         directory.
2385         
2386         * test/break-loader.c: (randomly_add_one_byte): upd. for
2387         insert_byte change.
2388         
2389         * test/data/invalid-messages/bad-header-field-alignment.message:
2390         new test case.
2391         
2392         * test/data/valid-messages/unknown-header-field.message: shove
2393         a dict in the unknown field.
2394
2395 2003-09-25  Seth Nickell  <seth@gnome.org>
2396
2397         * python/dbus.py:
2398         * python/dbus_bindings.pyx.in:
2399
2400         Handle return values.
2401         
2402         * python/examples/example-client.py:
2403         * python/examples/example-service.py:
2404
2405         Pass back return values from the service to the client.
2406         
2407 2003-09-24  Seth Nickell  <seth@gnome.org>
2408
2409         * python/dbus.py:
2410
2411         Connect Object methods (when you are sharing an object) up... pass
2412         in a list of methods to be shared. Sharing all the methods just
2413         worked out too weird. You can now create nice Services over the
2414         DBus in Python. :-)
2415         
2416         * python/dbus_bindings.pyx.in:
2417
2418         Keep references to user_data tuples passed into C functions so 
2419         Python doesn't garbage collect on us.
2420
2421         Implement MethodReturn and Error subclasses of Message for creating
2422         DBusMessage's of those types.
2423         
2424         * python/examples/example-client.py:
2425         * python/examples/example-service.py:
2426
2427         Simple example code showing both how create DBus services and objects,
2428         and how to use them.
2429
2430 2003-09-23  Havoc Pennington  <hp@pobox.com>
2431
2432         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
2433
2434 2003-09-23  Havoc Pennington  <hp@redhat.com>
2435
2436         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
2437         (dbus_gproxy_disconnect_signal): implement
2438         (dbus_gproxy_manager_remove_signal_match): implement
2439         (dbus_gproxy_manager_add_signal_match): implement
2440         (dbus_gproxy_oneway_call): implement
2441
2442 2003-09-23  Havoc Pennington  <hp@pobox.com>
2443
2444         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
2445         subclass. This means dropping the transparent thread safety of the
2446         proxy; you now need a separate proxy per-thread, or your own
2447         locking on the proxy. Probably right anyway.
2448         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
2449
2450 2003-09-22  Havoc Pennington  <hp@redhat.com>
2451
2452         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
2453
2454 2003-09-21  Seth Nickell  <seth@gnome.org>
2455
2456         First checkin of the Python bindings.
2457         
2458         * python/.cvsignore:
2459         * python/Makefile.am:
2460         * python/dbus_bindings.pyx.in:
2461         * python/dbus_h_wrapper.h:
2462
2463         Pieces for Pyrex to operate on, building a dbus_bindings.so
2464         python module for low-level access to the DBus APIs.
2465         
2466         * python/dbus.py:
2467
2468         High-level Python module for accessing DBus objects.
2469
2470         * configure.in:
2471         * Makefile.am:
2472
2473         Build stuff for the python bindings.
2474
2475         * acinclude.m4:
2476
2477         Extra macro needed for finding the Python C header files.
2478
2479 2003-09-21  Havoc Pennington  <hp@pobox.com>
2480
2481         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
2482         implementing the proxy manager, didn't get very far.
2483
2484         * dbus/dbus-bus.c (dbus_bus_add_match): new
2485         (dbus_bus_remove_match): new
2486
2487         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
2488         path_name argument; adjust the other not-yet-implemented 
2489         gproxy constructors to be what I think they should be.
2490
2491 2003-09-21  Havoc Pennington  <hp@pobox.com>
2492
2493         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
2494         by default for message bus connections.
2495
2496         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
2497         exit_on_disconnect flag is set and we process the disconnected
2498         signal.
2499         (dbus_connection_set_exit_on_disconnect): new function
2500
2501 2003-09-21  Havoc Pennington  <hp@pobox.com>
2502
2503         Get matching rules mostly working in the bus; only actually
2504         parsing the rule text remains. However, the client side of
2505         "signal connections" hasn't been started, this patch is only the
2506         bus side.
2507         
2508         * dbus/dispatch.c: fix for the matching rules changes
2509         
2510         * bus/driver.c (bus_driver_handle_remove_match)
2511         (bus_driver_handle_add_match): send an ack reply from these
2512         method calls
2513
2514         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
2515         arguments, reported by Seth Nickell
2516
2517         * bus/config-parser.c (append_rule_from_element): support
2518         eavesdrop=true|false attribute on policies so match rules 
2519         can be prevented from snooping on the system bus.
2520
2521         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
2522         and "destination" in attribute names; fix some docs bugs; 
2523         add eavesdrop=true|false attribute
2524
2525         * bus/driver.c (bus_driver_handle_add_match)
2526         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
2527         messages
2528
2529         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
2530         rid of broadcast service concept, signals are just always broadcast
2531
2532         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
2533         mostly implement matching rules stuff (currently only exposed as signal
2534         connections)
2535
2536 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
2537
2538         * doc/dbus-specification.sgml: Change the header field name
2539         to be an enum and update the rest of the spec to reference
2540         the fields using the conventinal name.
2541
2542         * dbus/dbus-protocol.h: update to reflect the spec.
2543
2544         * doc/TODO: add item to remove the 4 byte alignment requirement.
2545         
2546         * dbus/dbus-message.c: Remove the code to generalise the
2547         header/body length and serial number header fields as named
2548         header fields so we can reference field names using the 
2549         protocol values.
2550         (append_int_field), (append_uint_field), (append_string_field):
2551         Append the field name as a byte rather than four chars.
2552         (delete_int_or_uint_field), (delete_string_field): reflect the
2553         fact that the field name and typecode now occupy 4 bytes instead
2554         of 8.
2555         (decode_string_field), (decode_header_data): update to reflect
2556         protocol changes and move the field specific encoding from
2557         decode_string_field() back into decode_header_data().
2558         
2559         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
2560         Add utility to aid debugging.
2561         
2562         * dbus/dbus-message-builder.c:
2563         (append_string_field), (_dbus_message_data_load): Update to
2564         reflect protocol changes; Change the FIELD_NAME directive
2565         to HEADER_FIELD and allow it to take the field's conventional
2566         name rather than the actual value.
2567         
2568         * test/data/*/*.message: Update to use HEADER_FIELD instead
2569         of FIELD_NAME; Always align the header on an 8 byte boundary
2570         *before* updating the header length.
2571
2572 2003-09-15  Havoc Pennington  <hp@pobox.com>
2573
2574         * dbus/dbus-pending-call.c: add the get/set object data
2575         boilerplate as for DBusConnection, etc. Use generic object data
2576         for the notify callback.
2577
2578         * glib/dbus-gparser.c (parse_node): parse child nodes
2579
2580         * tools/dbus-viewer.c: more hacking on the dbus-viewer
2581         
2582         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
2583         contain functions shared between the convenience lib and the
2584         installed lib
2585
2586         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
2587         -export-symbols-regex to the GLib library
2588
2589         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
2590         fix the locking in here, and add a default handler for
2591         Introspect() that just returns sub-nodes.
2592
2593 2003-09-14  Havoc Pennington  <hp@pobox.com>
2594
2595         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
2596         rather than gfoo consistent
2597
2598         * glib/dbus-gproxy.h: delete for now, move contents to
2599         dbus-glib.h, because the include files don't work right since we
2600         aren't in the dbus/ subdir.
2601         
2602         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
2603         (dbus_gproxy_end_call): finish
2604         (dbus_gproxy_begin_call): finish
2605
2606         * glib/dbus-gmain.c (dbus_set_g_error): new
2607
2608         * glib/dbus-gobject.c (handle_introspect): include information
2609         about child nodes in the introspection
2610
2611         * dbus/dbus-connection.c (dbus_connection_list_registered): new
2612         function to help in implementation of introspection
2613
2614         * dbus/dbus-object-tree.c
2615         (_dbus_object_tree_list_registered_and_unlock): new function
2616
2617 2003-09-12  Havoc Pennington  <hp@pobox.com>
2618
2619         * glib/dbus-gidl.h: add common base class for all the foo_info
2620         types
2621
2622         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
2623         similar to kdcop
2624
2625         * test/Makefile.am: try test srcdir -ef . in addition to test
2626         srcdir = ., one of them should work (yeah lame)
2627         
2628         * glib/Makefile.am: build the "idl" parser stuff as a convenience
2629         library
2630         
2631         * glib/dbus-gparser.h: make description_load routines return
2632         NodeInfo* not Parser*
2633
2634         * Makefile.am (SUBDIRS): build test dir after all library dirs
2635
2636         * configure.in: add GTK+ detection
2637
2638 2003-09-07  Havoc Pennington  <hp@pobox.com>
2639
2640         * Make Doxygen contented.
2641
2642 2003-09-07  Havoc Pennington  <hp@pobox.com>
2643
2644         * doc/dbus-specification.sgml: more updates
2645
2646 2003-09-06  Havoc Pennington  <hp@pobox.com>
2647
2648         * doc/dbus-specification.sgml: partial updates
2649
2650         * bus/dbus-daemon-1.1.in: fix the config file docs for the
2651         zillionth time; hopefully I edited the right file this time.
2652
2653         * bus/config-parser.c (append_rule_from_element): support
2654         send_type, send_path, receive_type, receive_path
2655
2656         * bus/policy.c: add message type and path to the list of things
2657         that can be "firewalled"
2658
2659 2003-09-06  Havoc Pennington  <hp@pobox.com>
2660
2661         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
2662         (dbus_connection_register_object_path): make this not handle
2663         messages to paths below the given path
2664
2665 2003-09-03  Havoc Pennington  <hp@pobox.com>
2666
2667         * test/glib/Makefile.am: add this with random glib-linked test
2668         programs
2669
2670         * glib/Makefile.am: remove the random test programs from here,
2671         leave only the unit tests
2672
2673         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
2674         uscore/javacaps conversion, and fix     
2675         (get_object_property, set_object_property): change to .NET
2676         convention for mapping props to methods, set_FooBar/get_FooBar, 
2677         since one language has such a convention we may as well copy it. 
2678         Plus real methods in either getFooBar or get_foo_bar style won't 
2679         collide with this convention.
2680
2681 2003-09-01  Havoc Pennington  <hp@pobox.com>
2682
2683         * glib/dbus-gparser.c: implement
2684
2685         * glib/dbus-gobject.c: start implementing skeletons support
2686
2687         * configure.in: when disabling checks/assert, also define
2688         G_DISABLE_ASSERT and G_DISABLE_CHECKS
2689
2690 2003-09-01  Havoc Pennington  <hp@pobox.com>
2691
2692         * glib/Makefile.am: rearrange a bunch of files and get "make
2693         check" framework set up
2694
2695 2003-08-31  Havoc Pennington  <hp@pobox.com>
2696
2697         * fix build with --disable-tests
2698
2699 2003-08-30  Havoc Pennington  <hp@pobox.com>
2700
2701         * dbus/dbus-connection.c: purge DBusMessageHandler
2702
2703         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
2704         use callbacks everywhere
2705
2706 2003-08-30  Havoc Pennington  <hp@pobox.com>
2707
2708         * test/data/valid-config-files/system.d/test.conf: change to 
2709         root for the user so warnings don't get printed
2710
2711         * dbus/dbus-message.c: add dbus_message_get_path,
2712         dbus_message_set_path
2713         
2714         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
2715         dispatching to a path
2716
2717         * dbus/dbus-string.c (_dbus_string_validate_path): add
2718
2719         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
2720         (_dbus_marshal_object_path): implement
2721
2722         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
2723         to contain the path to the target object
2724         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
2725         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
2726
2727 2003-08-30  Havoc Pennington  <hp@pobox.com>
2728
2729         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
2730
2731 2003-08-29  Havoc Pennington  <hp@pobox.com>
2732
2733         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
2734         registered
2735         (struct DBusObjectSubtree): shrink this
2736         a lot, since we may have a lot of them
2737         (_dbus_object_tree_free_all_unlocked): implement
2738         (_dbus_object_tree_dispatch_and_unlock): implement
2739
2740 2003-08-29  Havoc Pennington  <hp@pobox.com>
2741
2742         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
2743
2744 2003-08-28  Havoc Pennington  <hp@pobox.com>
2745
2746         purge DBusObjectID
2747         
2748         * dbus/dbus-connection.c: port to no ObjectID, create a
2749         DBusObjectTree, rename ObjectTree to ObjectPath in public API
2750
2751         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
2752         everything except UnregisterFunction and MessageFunction
2753         
2754         * dbus/dbus-marshal.c: port away from DBusObjectID, 
2755         add DBUS_TYPE_OBJECT_PATH
2756         
2757         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
2758         dbus/dbus-objectid.[hc]: remove these, we are moving to 
2759         path-based object IDs
2760
2761 2003-08-25  Havoc Pennington  <hp@pobox.com>
2762
2763         Just noticed that dbus_message_test is hosed, I wonder when I
2764         broke that. I thought make check was passing earlier...
2765         
2766         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
2767         container tree, will replace most of dbus-object-registry
2768
2769         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
2770         screwup
2771
2772 2003-08-19  Havoc Pennington  <hp@pobox.com>
2773
2774         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
2775         (dbus_message_is_error): fix this function
2776
2777         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
2778         match
2779
2780         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
2781         reflect clarified man page
2782         (bus_client_policy_check_can_send): ditto
2783         
2784         * bus/session.conf.in: fixup
2785
2786         * bus/system.conf.in: fixup
2787
2788 2003-08-18  Havoc Pennington  <hp@redhat.com>
2789
2790         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
2791
2792         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
2793         dumb bug created earlier (wrong order of args to
2794         decode_header_data())
2795         
2796         * tools/dbus-send.c: port
2797
2798         * tools/dbus-print-message.c (print_message): port
2799
2800         * test/data/*messages: port all messages over
2801         
2802         * dbus/dbus-message-builder.c: support including 
2803         message type
2804         
2805         * bus/driver.c: port over
2806         
2807         * bus/dispatch.c: port over to new stuff
2808
2809         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2810         rename disconnect signal to "Disconnected"
2811
2812 2003-08-17  Havoc Pennington  <hp@pobox.com>
2813
2814         This doesn't compile yet, but syncing up so I can hack on it from
2815         work. What are branches for if not broken code? ;-)
2816         
2817         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
2818         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
2819         DBUS_HEADER_FIELD_ERROR_NAME
2820         
2821         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
2822         for the interface+member pairs
2823         (string_hash): change to use g_str_hash algorithm
2824         (find_direct_function, find_string_function): refactor these to
2825         share most code.
2826         
2827         * dbus/dbus-message.c: port all of this over to support 
2828         interface/member fields instead of name field
2829
2830         * dbus/dbus-object-registry.c: port over
2831         
2832         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
2833         from _dbus_string_validate_name
2834
2835         * bus/dbus-daemon-1.1: change file format for the 
2836         <deny>/<allow> stuff to match new message naming scheme
2837
2838         * bus/policy.c: port over
2839
2840         * bus/config-parser.c: parse new format
2841         
2842 2003-08-16  Havoc Pennington  <hp@pobox.com>
2843
2844         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
2845         broken assertion
2846
2847         * glib/dbus-gproxy.c: some hacking
2848
2849 2003-08-15  Havoc Pennington  <hp@redhat.com>
2850
2851         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
2852
2853         * dbus/dbus-connection.c
2854         (dbus_connection_send_with_reply_and_block): factor out internals;
2855         change to convert any error replies to DBusError instead of 
2856         returning them as a message
2857
2858 2003-08-15  Havoc Pennington  <hp@pobox.com>
2859
2860         * dbus/dbus-connection.c, 
2861         dbus/dbus-pending-call.c: Finish the pending call stuff
2862
2863 2003-08-14  Havoc Pennington  <hp@redhat.com>
2864
2865         * dbus/dbus-pending-call.c: start on new object that will replace
2866         DBusMessageHandler and ReplyHandlerData for tracking outstanding
2867         replies
2868
2869         * dbus/dbus-gproxy.c: start on proxy object used to communicate
2870         with remote interfaces
2871
2872         * dbus/dbus-gidl.c: do the boring boilerplate in here
2873         
2874 2003-08-12  Havoc Pennington  <hp@pobox.com>
2875
2876         * bus/dispatch.c (bus_dispatch): make this return proper 
2877         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
2878
2879         * dbus/dbus-errors.c (dbus_set_error): use
2880         _dbus_string_append_printf_valist
2881
2882         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
2883         (_dbus_string_append_printf): new
2884
2885         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
2886         UNKNOWN_METHOD
2887
2888         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
2889         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
2890         message is unhandled.
2891
2892 2003-08-11  Havoc Pennington  <hp@pobox.com>
2893
2894         * bus/test.c (client_disconnect_handler): change to return
2895         HANDLED (would have been REMOVE_MESSAGE)
2896
2897         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
2898         HANDLED/NOT_YET_HANDLED instead of
2899         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
2900         should be used.
2901
2902 2003-08-10  Havoc Pennington  <hp@pobox.com>
2903
2904         * tools/dbus-send.c (main): add --type argument, for now
2905         supporting only method_call and signal types.
2906
2907         * tools/dbus-print-message.c: print message type
2908
2909         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2910         init connection->objects
2911
2912         * doc/dbus-specification.sgml: fix sgml
2913
2914         * bus/*.c: port over to object-instance API changes
2915
2916         * test/test-service.c: ditto
2917         
2918         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
2919         name, we will have to fix up the rest of the code to also handle
2920         this
2921         (dbus_message_new): generic message-creation call
2922         (set_string_field): allow appending name field
2923
2924 2003-08-06  Havoc Pennington  <hp@pobox.com>
2925
2926         * dbus/dbus-object-registry.c: implement signal connection 
2927         and dispatch
2928
2929         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
2930
2931         * dbus/dbus-internals.c (_dbus_memdup): new function
2932
2933 2003-08-02  Havoc Pennington  <hp@pobox.com>
2934
2935         * dbus/dbus-message.c (dbus_message_get_no_reply)
2936         (dbus_message_set_no_reply): add these and remove
2937         set_is_error/get_is_error
2938
2939         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
2940         remove the ERROR flag, since there's now an ERROR type
2941
2942 2003-08-01  Havoc Pennington  <hp@pobox.com>
2943
2944         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
2945         implement
2946
2947         * dbus/dbus-message.c (dbus_message_get_type): new function
2948
2949         * doc/dbus-specification.sgml: add "type" byte to messages
2950
2951 2003-08-01  Havoc Pennington  <hp@pobox.com>
2952
2953         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
2954         a message type enum to distinguish kinds of message
2955         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
2956         that need not be replied to
2957
2958 2003-08-01  Havoc Pennington  <hp@pobox.com>
2959
2960         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
2961         (unpack_8_octets): fix no-64-bit-int bug
2962
2963         * dbus/dbus-object-registry.c (validate_id): validate the 
2964         connection ID bits, not just the instance ID.
2965
2966         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
2967         the connection-global 33 bits of the object ID
2968
2969         * dbus/dbus-object-registry.c (info_from_entry): fill in 
2970         object ID in the new way
2971
2972         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
2973         define server/client/instance bits.
2974
2975 2003-07-30  Havoc Pennington  <hp@pobox.com>
2976
2977         * dbus/dbus-connection.c (dbus_connection_register_object): fix
2978         build
2979
2980 2003-07-13  Havoc Pennington  <hp@pobox.com>
2981
2982         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
2983         fields to DBusObjectVTable and DBusObjectInfo
2984
2985 2003-07-12  Havoc Pennington  <hp@pobox.com>
2986
2987         * dbus/dbus-object-registry.c: implement unit test,
2988         fix bugs discovered in process
2989
2990         * dbus/dbus-connection.c: remove handler_table and
2991         register_handler(), add DBusObjectRegistry usage
2992
2993         * dbus/dbus-objectid.c (dbus_object_id_is_null)
2994         (dbus_object_id_set_null): new functions
2995
2996 2003-07-08  Havoc Pennington  <hp@pobox.com>
2997
2998         * dbus/dbus-object.c: implement some of this
2999
3000         * dbus/dbus-object-registry.c
3001         (_dbus_object_registry_add_and_unlock): fill in the object_id out
3002         param
3003         (_dbus_object_registry_new): handle OOM
3004
3005 2003-07-08  Havoc Pennington  <hp@pobox.com>
3006
3007         * dbus/dbus-object.h: sketch out an API for registering objects
3008         with a connection, that allows us to use as little as 24 bytes
3009         per object and lets application code represent an object in 
3010         any conceivable way.
3011
3012         * dbus/dbus-object-registry.c: implement the hard bits of the
3013         DBusConnection aspect of object API. Not yet wired up.
3014         
3015 2003-07-06  Havoc Pennington  <hp@pobox.com>
3016
3017         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
3018         (_dbus_marshal_object_id): new
3019         (_dbus_demarshal_object_id): new
3020         (_dbus_marshal_get_arg_end_pos): support object ID type, and
3021         consolidate identical switch cases. Don't conditionalize handling
3022         of DBUS_TYPE_UINT64, need to handle the type always.
3023         (_dbus_marshal_validate_arg): consolidate identical cases, and
3024         handle DBUS_TYPE_OBJECT_ID
3025
3026         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
3027
3028         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
3029
3030 2003-09-28  Havoc Pennington  <hp@pobox.com>
3031
3032         * real 0.13 release
3033
3034 2003-09-28  Havoc Pennington  <hp@pobox.com>
3035
3036         * doc/Makefile.am (dbus-specification.html): testing a funky hack
3037         to work with Debian db2html
3038
3039 2003-09-28  Havoc Pennington  <hp@pobox.com>
3040
3041         * configure.in: 0.13
3042
3043         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
3044         stylesheet-images for benefit of Debian
3045         
3046         Change back to using filesystem-linked sockets for the system
3047         bus, so only root can create the default system bus address.
3048         
3049         * bus/system.conf.in: change to use
3050         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3051
3052         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
3053         from here.
3054
3055         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3056         here, and AC_DEFINE DBUS_SYSTEM_PATH
3057
3058 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
3059
3060         * doc/TODO:
3061         * doc/busconfig.dtd:
3062         Add busconfig DTD.
3063         
3064 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
3065
3066         * doc/dbus-specification.sgml:
3067         Add activation reply values.
3068         
3069 2003-08-05  Havoc Pennington  <hp@redhat.com>
3070
3071         * configure.in: 0.12
3072
3073 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
3074
3075         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
3076         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
3077         (add_watch), (remove_watch), (create_source):
3078         Refcount fds, fixes some reentrancy issues.
3079         
3080 2003-07-30  Havoc Pennington  <hp@redhat.com>
3081
3082         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
3083         bus address to be abstract if we have abstract sockets
3084
3085         * NEWS: update
3086
3087 2003-07-28  Havoc Pennington  <hp@redhat.com>
3088
3089         * bus/messagebus.in: fix to avoid processname/servicename 
3090         confusion, from Michael Kearey
3091         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
3092         
3093 2003-07-23  Havoc Pennington  <hp@pobox.com>
3094
3095         * dbus/dbus-message.c (dbus_message_iter_get_named): 
3096         fix from Andy Hanton to remove broken "+1"
3097
3098 2003-07-16  Havoc Pennington  <hp@pobox.com>
3099
3100         * tools/dbus-launch.c (babysit): close stdout/stderr in the
3101         babysitter process, as suggested by Thomas Leonard, so 
3102         an "eval `dbus-launch --exit-with-session`" will actually 
3103         return
3104
3105 2003-07-16  Havoc Pennington  <hp@pobox.com>
3106
3107         * configure.in: print out EXPANDED_* variables in the summary at
3108         the end; clean up the code that computes EXPANDED_ variables and
3109         get the ones using exec_prefix right. Should make things work
3110         when you build without --prefix
3111
3112 2003-06-29  Havoc Pennington  <hp@pobox.com>
3113
3114         * mono/Test.cs (class Test): fire up a main loop and run it
3115
3116         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
3117         done once, the app has to do it
3118
3119 2003-06-26  Havoc Pennington  <hp@pobox.com>
3120
3121         * mono/Connection.cs: set up connection with the glib main loop
3122
3123 2003-07-01  Havoc Pennington  <hp@redhat.com>
3124
3125         * doc/dbus-specification.sgml: clarify the format of a type code,
3126         change suggested by Jim Blandy
3127
3128 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
3129
3130         * doc/Makefile.am:
3131         * tools/Makefile.am: Don't assume srcdir == builddir.
3132
3133         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
3134         the allocated block.
3135         (_dbus_memory_test): New function.
3136         * dbus/dbus-test.h: Add _dbus_memory_test ().
3137         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
3138
3139         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
3140         of %c%c%c%c.
3141         (dbus_message_new): Remove obsolete @todo.
3142
3143         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
3144         (_dbus_marshal_set_uint64): Fix comment.
3145
3146         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
3147         hardcode FIELD_REPLY_SERIAL.
3148
3149         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
3150         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
3151
3152         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
3153         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
3154
3155 2003-06-24  Havoc Pennington  <hp@pobox.com>
3156
3157         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
3158
3159 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
3160
3161         * configure.in:
3162         * gcj/.cvsignore:
3163         * gcj/Hello.java:
3164         * gcj/Makefile.am:
3165         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
3166         * gcj/org/.cvsignore:
3167         * gcj/org/Makefile.am:
3168         * gcj/org/freedesktop/.cvsignore:
3169         * gcj/org/freedesktop/Makefile.am:
3170         * gcj/org/freedesktop/dbus/.cvsignore:
3171         * gcj/org/freedesktop/dbus/Makefile.am:
3172         * gcj/org/freedesktop/dbus/Message.java: (Message),
3173         (Message.Message):
3174         * gcj/org/freedesktop/dbus/natMessage.cc:
3175         Fix the build system.
3176
3177 2003-06-22  Havoc Pennington  <hp@pobox.com>
3178
3179         * mono/Connection.cs: add more bindings
3180
3181         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
3182         more than once.
3183
3184 2003-06-22  Havoc Pennington  <hp@pobox.com>
3185
3186         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
3187         Start wrapping more stuff.
3188
3189 2003-06-22  Havoc Pennington  <hp@pobox.com>
3190
3191         * mono/Message.cs: implement Message.Wrap() that ensures we only
3192         have a single C# wrapper per DBusMessage, assuming it works which
3193         it probably doesn't.
3194
3195         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
3196         (dbus_message_free_data_slot): new
3197         (dbus_message_set_data): new
3198         (dbus_message_get_data): new
3199
3200 2003-06-22  Havoc Pennington  <hp@pobox.com>
3201
3202         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
3203         (_dbus_data_slot_allocator_alloc): rework these to keep a
3204         reference count on each slot and automatically manage a global
3205         slot ID variable passed in by address
3206
3207         * bus/bus.c: convert to new dataslot API
3208
3209         * dbus/dbus-bus.c: convert to new dataslot API
3210
3211         * dbus/dbus-connection.c: convert to new dataslot API
3212
3213         * dbus/dbus-server.c: convert to new dataslot API
3214
3215         * glib/dbus-gmain.c: ditto
3216
3217         * bus/test.c: ditto
3218
3219         * bus/connection.c: ditto
3220
3221 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
3222
3223         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
3224         after the gcj checks so that the correct configuration tags
3225         will be added to libtool.
3226
3227         * dbus-glib-1.pc.in: No need to specify any includes since
3228         dbus-1.pc.in has those.
3229
3230 2003-06-22  Havoc Pennington  <hp@pobox.com>
3231
3232         * mono/*, gcj/*, configure.in, Makefile.am:
3233         Check in makefiles and subdirs for mono and gcj bindings.
3234         Neither binding actually exists, just trying to get through
3235         all the build and other boring bits.
3236
3237 2003-06-21  Philip Blundell  <philb@gnu.org>
3238
3239         * tools/dbus-monitor.1: Updated.
3240
3241         * tools/dbus-send.1: Likewise.
3242
3243 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
3244
3245         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
3246         for hangup and error after checking read so we won't discard
3247         pending data if both hangup and read are set.
3248
3249 2003-06-19  Philip Blundell  <philb@gnu.org>
3250
3251         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
3252
3253         * tools/dbus-send.c: Accept both --system and --session.
3254
3255         * tools/dbus-monitor.c: Same here.
3256
3257 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
3258
3259         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
3260         from C++ (Patch by Miloslav Trmac).
3261
3262 2003-06-15  Joe Shaw  <joe@assbarn.com>
3263
3264         * configure.in: Check for socklen_t.
3265
3266         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
3267
3268         * test/test-segfault.c: Add #include <sys/time.h>
3269
3270         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
3271         dbus-launch needs it.
3272
3273 2003-06-09  Havoc Pennington  <hp@redhat.com>
3274
3275         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
3276         SUN_LEN, it breaks abstract socket usage
3277
3278         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
3279         starts of lines.
3280
3281 2003-06-04  Havoc Pennington  <hp@pobox.com>
3282
3283         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
3284         using unix:abstract=/foo, and when listening in a tmpdir
3285         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
3286
3287         * dbus/dbus-transport.c (_dbus_transport_open): support
3288         unix:abstract=/foo
3289
3290         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3291         support abstract sockets
3292
3293         * dbus/dbus-transport-unix.c
3294         (_dbus_transport_new_for_domain_socket): support abstract sockets
3295
3296         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
3297         toggle as an argument, implement abstract namespace support
3298         (_dbus_listen_unix_socket): ditto
3299
3300         * configure.in: add --enable-abstract-sockets and implement
3301         a configure check for autodetection of the right value.
3302
3303 2003-06-01  Havoc Pennington  <hp@pobox.com>
3304
3305         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
3306         in /tmp (though on Linux this will end up being useless,
3307         when we add abstract namespace support)
3308
3309         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
3310         subst'ing it
3311
3312 2003-05-28  Colin Walters  <walters@verbum.org>
3313
3314         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
3315
3316 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
3317
3318         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
3319
3320 2003-05-17  Colin Walters  <walters@gnu.org>
3321
3322         * tools/dbus-send.c: Don't exit with an error code if --help was
3323         passed.  Default to using the session bus instead of the system
3324         one.
3325
3326         * tools/dbus-launch.c: Ditto.
3327
3328         * tools/dbus-monitor.c: Ditto.
3329
3330         * tools/dbus-send.1: Update with new arguments.
3331
3332         * tools/dbus-launch.c: Emit code to export variables.  New
3333         arguments -s and -c to specify shell syntax, and a bit of code to
3334         autodetect syntax.  Also, allow specifying a program to run.
3335
3336         * tools/dbus-launch.1: Update with new arguments.
3337
3338         * tools/dbus-send.1: Ditto.
3339
3340         * tools/dbus-monitor.1: Ditto.
3341
3342 2003-05-17  Havoc Pennington  <hp@pobox.com>
3343
3344         * bus/config-parser.c (merge_included): merge in policies from
3345         child configuration file.
3346
3347         * bus/policy.c (bus_policy_merge): function to merge two policies
3348         together
3349
3350 2003-05-16  Havoc Pennington  <hp@redhat.com>
3351
3352         * dbus/dbus-connection.c: disable verbose lock spew
3353
3354         * tools/dbus-send.c: add --print-reply command line option
3355
3356         * tools/dbus-print-message.h (print_message): new util function
3357         shared by dbus-send and dbus-monitor
3358
3359         * tools/dbus-monitor.c (handler_func): exit on disconnect
3360
3361         * dbus/dbus-transport-unix.c (do_reading): if the transport is
3362         disconnected, don't try to use the read_watch
3363
3364         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
3365         so we can find this bug more easily
3366
3367 2003-05-16  Havoc Pennington  <hp@redhat.com>
3368
3369         * bus/policy.c (free_rule_list_func): avoid a crash when passed
3370         NULL as DBusHashTable is annoyingly likely to do.
3371
3372 2003-05-16  Colin Walters  <walters@verbum.org>
3373
3374         * tools/dbus-monitor.c: Add --session argument and usage()
3375         function.
3376
3377         * tools/dbus-monitor.1: Update with new --session arg.
3378
3379         * bus/Makefile.am (install-data-hook): Create
3380         $(libdir)/dbus-1.0/services so that the session bus is happy.
3381
3382 2003-05-15  Havoc Pennington  <hp@redhat.com>
3383
3384         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
3385         on non-x86. ifdef's are evil.
3386
3387 2003-05-15  Havoc Pennington  <hp@redhat.com>
3388
3389         * configure.in: 0.11
3390
3391         * NEWS: update
3392
3393         * bus/Makefile.am (initddir): apparently we are supposed to put
3394         init scripts in /etc/rc.d/init.d not /etc/init.d
3395
3396         * bus/Makefile.am: remove the "you must --enable-tests to make
3397         check" as it broke distcheck
3398
3399         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
3400
3401 2003-05-13  James Willcox  <jwillcox@gnome.org>
3402
3403         * configure.in:
3404         * bus/activation.c: (bus_activation_service_created),
3405         (bus_activation_activate_service):
3406         * bus/driver.c: (bus_driver_send_service_deleted),
3407         (bus_driver_send_service_created), (bus_driver_send_service_lost),
3408         (bus_driver_send_service_acquired),
3409         (bus_driver_send_welcome_message),
3410         (bus_driver_handle_list_services):
3411         * bus/session.conf.in:
3412         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
3413         (dbus_bus_service_exists), (dbus_bus_activate_service):
3414         * dbus/dbus-bus.h:
3415
3416         Add some convenience API which lets you activate a service, and did a
3417         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
3418         and dbus_message_get_args()
3419
3420 2003-05-11  Havoc Pennington  <hp@pobox.com>
3421
3422         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
3423         calling _dbus_marshal_validate_arg() for every byte in a byte
3424         array, etc.
3425
3426         * dbus/dbus-message-handler.c: use atomic reference counting to
3427         reduce number of locks slightly; the global lock in here sucks
3428
3429         * dbus/dbus-connection.c
3430         (_dbus_connection_update_dispatch_status_and_unlock): variant of
3431         update_dispatch_status that can be called with lock held; then use
3432         in a couple places to reduce locking/unlocking
3433         (dbus_connection_send): hold the lock over the whole function
3434         instead of acquiring it twice.
3435
3436         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
3437
3438         * bus/connection.c (bus_connections_setup_connection): fix access
3439         to already-freed memory.
3440
3441         * dbus/dbus-connection.c: keep a little cache of linked list
3442         nodes, to avoid using the global linked list alloc lock in the
3443         normal send-message case. Instead we just use the connection lock
3444         that we already have to take.
3445
3446         * dbus/dbus-list.c (_dbus_list_find_last): new function
3447
3448         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
3449         change to use a struct for the atomic type; fix docs,
3450         they return value before increment, not after increment.
3451
3452         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
3453         (_dbus_string_append_8_aligned): new functions to try to
3454         microoptimize this operation.
3455         (reallocate_for_length): break this out of set_length(), to
3456         improve profile info, and also so we can consider inlining the
3457         set_length() part.
3458
3459         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
3460         strings with some preallocation, cuts down on our calls to realloc
3461         a fair bit. Though if we can get the "move entire string to empty
3462         string" optimization below to kick in here, it would be better.
3463
3464         * dbus/dbus-string.c (_dbus_string_move): just call
3465         _dbus_string_move_len
3466         (_dbus_string_move_len): add a special case for moving
3467         an entire string into an empty string; we can just
3468         swap the string data instead of doing any reallocs.
3469         (_dbus_string_init_preallocated): new function
3470
3471 2003-05-11  Havoc Pennington  <hp@pobox.com>
3472
3473         Write a "test-profile" that does echo client-server with threads;
3474         profile reveals lock contention, memcpy/realloc of buffers, and
3475         UTF-8 validation as hot spots. 20% of lock contention eliminated
3476         with dbus_atomic_inc/dec implementation on x86.  Much remaining
3477         contention is global mempool locks for GList and DBusList.
3478
3479         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
3480         x86 implementation
3481
3482         * dbus/dbus-connection.c (struct DBusConnection): use
3483         dbus_atomic_t for the reference count
3484
3485         * dbus/dbus-message.c (struct DBusMessage): declare
3486         dbus_atomic_t values as volatile
3487
3488         * configure.in: code to detect ability to use atomic integer
3489         operations in assembly, from GLib patch
3490
3491         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
3492         time, tired of it being wrong in threads and forked processes
3493
3494         * glib/test-profile.c: a little program to bounce messages back
3495         and forth between threads and eat CPU
3496
3497         * dbus/dbus-connection.c: add debug spew macros for debugging
3498         thread locks; include config.h at top; fix deadlock in
3499         dbus_connection_flush()
3500
3501 2003-05-08  Havoc Pennington  <hp@pobox.com>
3502
3503         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
3504         data from getting written, and there wasn't a good reason to
3505         use _exit really.
3506
3507         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
3508         dbus_verbose lines in test coverage
3509         (main): add list of functions sorted by # of untested blocks
3510         to the coverage report
3511
3512         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
3513
3514         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
3515
3516         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
3517         extend test coverage
3518
3519         * test/data/auth/cancel.auth-script: test canceling an
3520         authentication
3521
3522         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
3523         aren't used. in CVS history if we end up needing them.
3524
3525 2003-05-04  Havoc Pennington  <hp@pobox.com>
3526
3527         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
3528         unit test
3529
3530         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
3531         function, which assumed length was in # of strings, not bytes
3532
3533         * dbus/dbus-message.c (_dbus_message_test): add tests for some
3534         missing coverage
3535
3536         * dbus/dbus-connection.c
3537         (_dbus_connection_queue_received_message): disable function for
3538         now, we are only using it in test mode
3539
3540         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3541         remove a mistaken FIXME
3542
3543 2003-05-04  Havoc Pennington  <hp@pobox.com>
3544
3545         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
3546         unlock mutex on successful return, patch from Anders Gustafsson
3547
3548 2003-05-04  Havoc Pennington  <hp@pobox.com>
3549
3550         * dbus-glib-1.pc.in (Requires): fix dependencies, from
3551         Anders Gustafsson
3552
3553 2003-05-04  Havoc Pennington  <hp@pobox.com>
3554
3555         * tools/dbus-launch.c: implement
3556
3557         * bus/main.c (main), bus/bus.c (bus_context_new):
3558         implement --print-pid and --fork
3559
3560 2003-05-03  Havoc Pennington  <hp@redhat.com>
3561
3562         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
3563         the address had no value, and add to test suite. Fix and
3564         regression test from Miloslav Trmac
3565
3566 2003-05-03  Havoc Pennington  <hp@pobox.com>
3567
3568         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
3569         watch is invalid when handled
3570
3571         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
3572         dbus-launch utility to launch the bus from a shell script.  Didn't
3573         actually implement dbus-launch yet, it's just a placeholder still.
3574
3575 2003-05-03  Havoc Pennington  <hp@pobox.com>
3576
3577         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
3578         daemon; also documents daemon config file, so replaces
3579         doc/config-file.txt. Corrected some stuff from config-file.txt in
3580         the process of moving it.
3581
3582 2003-05-03  Havoc Pennington  <hp@pobox.com>
3583
3584         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
3585         add some man pages
3586
3587 2003-05-03  Colin Walters  <walters@verbum.org>
3588
3589         * dbus/dbus-sysdeps.c (fill_user_info): Test against
3590         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
3591
3592         * Makefile.am: Update to use new .pc versioning scheme.
3593
3594 2003-05-02  Havoc Pennington  <hp@redhat.com>
3595
3596         * bus/system.conf.in: allow send/receive to/from message bus
3597         service
3598
3599 2003-04-30  Havoc Pennington  <hp@redhat.com>
3600
3601         * configure.in: print a note when building with unit tests and
3602         without assertions
3603
3604 2003-04-30  Havoc Pennington  <hp@redhat.com>
3605
3606         * Makefile.am: add a check-local that complains if you didn't
3607         configure with --enable-tests
3608
3609 2003-04-29  Havoc Pennington  <hp@redhat.com>
3610
3611         * glib/dbus-gmain.c: docs cleanups
3612
3613         * dbus/dbus-types.h: add docs on int64 types
3614
3615         * dbus/dbus-memory.c: fix docs to avoid putting private API in
3616         public API docs section
3617
3618 2003-04-29  Havoc Pennington  <hp@redhat.com>
3619
3620         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
3621         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
3622         parallel install API version, not with the D-BUS package version.
3623
3624         * HACKING: move some of README over here
3625
3626         * README: updates, and document API/ABI policy
3627
3628         * configure.in: reindentation
3629
3630 2003-04-29  Havoc Pennington  <hp@redhat.com>
3631
3632         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
3633         to use this library" to be sure people have the right
3634         expectations.
3635
3636 2003-04-28  Havoc Pennington  <hp@redhat.com>
3637
3638         * configure.in: add --enable-docs which by default is auto yes if
3639         doxygen and db2html found, no otherwise; but can be forced on/off
3640
3641         * doc/Makefile.am: conditionalize whether to build docs on
3642         --enable-docs
3643
3644 2003-04-28  Havoc Pennington  <hp@redhat.com>
3645
3646         * configure.in: 0.10
3647
3648         * NEWS: update
3649
3650         * bus/system.conf.in: add <includedir>system.d</includedir>
3651
3652         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
3653         username was provided but not uid
3654
3655         * bus/config-parser.c (struct BusConfigParser): keep track of
3656         whether the parser is toplevel or was included; change some
3657         of the error handling if it's included.
3658
3659 2003-04-27  Havoc Pennington  <hp@pobox.com>
3660
3661         Unbreak my code...
3662
3663         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3664         report correct status if we finish processing authentication
3665         inside this function.
3666
3667         * bus/activation.c (try_send_activation_failure): use
3668         bus_transaction_send_error_reply
3669
3670         * bus/connection.c (bus_connection_get_groups): return an error
3671         explaining the problem
3672
3673         * bus/bus.c (bus_context_check_security_policy): implement
3674         restriction here that inactive connections can only send the
3675         hello message. Also, allow bus driver to send anything to
3676         any recipient.
3677
3678         * bus/connection.c (bus_connection_complete): create the
3679         BusClientPolicy here instead of on-demand.
3680         (bus_connection_get_policy): don't return an error
3681
3682         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
3683         sender field in message being replied to
3684
3685         * bus/bus.c (bus_context_check_security_policy): fix silly typo
3686         causing it to return FALSE always
3687
3688         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
3689         we checked sender rather than destination
3690
3691 2003-04-25  Havoc Pennington  <hp@redhat.com>
3692
3693         test suite is slightly hosed at the moment, will fix soon
3694
3695         * bus/connection.c (bus_connections_expire_incomplete): fix to
3696         properly disable the timeout when required
3697         (bus_connection_set_name): check whether we can remove incomplete
3698         connections timeout after we complete each connection.
3699
3700         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
3701         probably still broken.
3702
3703         * bus/services.c (bus_registry_acquire_service): implement max
3704         number of services owned, and honor allow/deny rules on which
3705         services a connection can own.
3706
3707         * bus/connection.c (bus_connection_get_policy): report errors here
3708
3709         * bus/activation.c: implement limit on number of pending
3710         activations
3711
3712 2003-04-25  Havoc Pennington  <hp@redhat.com>
3713
3714         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
3715         where we used >= 0 instead of != DBUS_UID_UNSET.
3716
3717 2003-04-25  Havoc Pennington  <hp@redhat.com>
3718
3719         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
3720         were toggled without add/remove, fix from Anders Gustafsson
3721
3722 2003-04-24  Havoc Pennington  <hp@redhat.com>
3723
3724         * test/data/valid-config-files/basic.conf: add <limit> tags to
3725         this test
3726
3727         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
3728         <limit> tag in configuration file.
3729
3730 2003-04-24  Havoc Pennington  <hp@redhat.com>
3731
3732         * bus/dispatch.c: somehow missed some name_is
3733
3734         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
3735         (_dbus_timeout_set_interval): new
3736
3737         * bus/connection.c (bus_connections_setup_connection): record time
3738         when each connection is first set up, and expire them after the
3739         auth timeout passes.
3740
3741 2003-04-24  Havoc Pennington  <hp@redhat.com>
3742
3743         * dbus/dbus-message.c (dbus_message_name_is): rename
3744         (dbus_message_service_is): rename
3745         (dbus_message_sender_is): rename
3746         (dbus_message_get_service): rename
3747
3748 2003-04-24  Havoc Pennington  <hp@redhat.com>
3749
3750         * configure.in: add --enable-checks
3751
3752         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
3753
3754         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
3755         to use thread locks.
3756         (_dbus_connection_handler_destroyed_locked): move some private
3757         functions into proper docs group
3758
3759         * dbus/dbus-internals.h: add _dbus_return_if_fail,
3760         _dbus_return_val_if_fail
3761
3762         Throughout: use dbus_return_if_fail
3763
3764 2003-04-23  James Willcox  <jwillcox@gnome.org>
3765
3766         * glib/dbus-glib.h:
3767         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
3768         (dbus_connection_setup_with_g_main),
3769         (dbus_server_setup_with_g_main):
3770         * glib/test-dbus-glib.c: (main):
3771         * glib/test-thread-client.c: (main):
3772         * glib/test-thread-server.c: (new_connection_callback), (main):
3773         * tools/dbus-monitor.c: (main):
3774
3775         Added a GMainContext argument to dbus_connection_setup_with_g_main()
3776         and dbus_server_setup_with_g_main().
3777
3778 2003-04-20  Havoc Pennington  <hp@pobox.com>
3779
3780         * doc/dbus-specification.sgml: document the restrictions on
3781         message and service names
3782
3783 2003-04-22  Havoc Pennington  <hp@redhat.com>
3784
3785         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
3786         support, and do some code cleanups to share more code and
3787         speed up array marshal/demarshal.
3788
3789         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
3790
3791         * configure.in: generate dbus-arch-deps.h
3792
3793         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
3794         64-bit typecodes
3795
3796 2003-04-22  Havoc Pennington  <hp@redhat.com>
3797
3798         * test/data/valid-messages/opposite-endian.message: fix test
3799         to use proper type for rply field
3800
3801         * test/data/invalid-messages: add tests for below validation
3802
3803         * dbus/dbus-message.c (decode_header_data): validate field types,
3804         and validate that named fields are valid names
3805         (decode_name_field): consider messages in the
3806         org.freedesktop.Local. namespace to be invalid.
3807
3808         * dbus/dbus-string.c (_dbus_string_validate_name): new
3809
3810 2003-04-19  Havoc Pennington  <hp@pobox.com>
3811
3812         * bus/driver.c (bus_driver_handle_hello): check limits and
3813         return an error if they are exceeded.
3814
3815         * bus/connection.c: maintain separate lists of active and inactive
3816         connections, and a count of each. Maintain count of completed
3817         connections per user. Implement code to check connection limits.
3818
3819         * dbus/dbus-list.c (_dbus_list_unlink): export
3820
3821         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
3822         number of bytes in the message queue for a connection
3823
3824 2003-04-18  Havoc Pennington  <hp@pobox.com>
3825
3826         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
3827
3828         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
3829         memleaks
3830
3831         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
3832         on realloc be sure to update the pointer in the keyring
3833
3834         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
3835         offset to avoid writing to unallocated memory
3836
3837         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
3838         try the next mechanism, so we properly handle OOM
3839
3840         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
3841         on OOM.
3842         (_dbus_keyring_new): fix OOM bug
3843         (_dbus_keyring_new_homedir): always set error; impose a maximum
3844         number of keys we'll load from the file, mostly to speed up the
3845         test suite and make its OOM checks more useful, but also for
3846         general sanity.
3847
3848         * dbus/dbus-auth.c (process_error_server): reject authentication
3849         if we get an error from the client
3850         (process_cancel): on cancel, send REJECTED, per the spec
3851         (process_error_client): send CANCEL if we get an error from the
3852         server.
3853
3854 2003-04-18  Havoc Pennington  <hp@pobox.com>
3855
3856         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
3857         debug spew
3858
3859         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
3860         handling problem
3861
3862         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
3863         about DBUS_TEST_HOMEDIR once
3864
3865         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
3866         the environment
3867
3868         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
3869         config file so we test the right thing
3870
3871         Throughout: assorted docs improvements
3872
3873 2003-04-18  Havoc Pennington  <hp@pobox.com>
3874
3875         * glib/dbus-gmain.c: adapt to watch changes
3876
3877         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
3878
3879         * dbus/dbus-server.h: remove dbus_server_handle_watch
3880
3881         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
3882
3883         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
3884         like DBusTimeout, so we don't need dbus_connection_handle_watch
3885         etc.
3886
3887 2003-04-17  Havoc Pennington  <hp@redhat.com>
3888
3889         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
3890         database usage so it all goes via the DBusUserDatabase cache.
3891
3892 2003-04-17  Havoc Pennington  <hp@redhat.com>
3893
3894         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
3895         there was an OOM watch we skipped, we always return TRUE so we
3896         iterate again to have a look at it again. Fixes test suite hang.
3897         Code rearrangement also lets us lose some memset and only iterate
3898         over callbacks once.
3899
3900         * bus/driver.c (bus_driver_handle_message): sense of test for
3901         reply was backward
3902
3903 2003-04-16  Havoc Pennington  <hp@pobox.com>
3904
3905         * doc/dbus-specification.sgml: make spec say serials are unsigned
3906
3907         * dbus/dbus-message.h: change message serials to unsigned
3908
3909         * dbus/dbus-connection.c: adapt to message serials being unsigned
3910
3911 2003-04-15  Havoc Pennington  <hp@pobox.com>
3912
3913         * bus/bus.c: create and keep around a shared DBusUserDatabase
3914         object.
3915
3916         * bus/connection.c (bus_connection_get_groups): don't cache
3917         groups for user in the connection object, since user database
3918         object now does that.
3919
3920 2003-04-16  Havoc Pennington  <hp@redhat.com>
3921
3922         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
3923         list of size counters
3924         (_dbus_message_loader_putback_message_link): put back a popped link
3925
3926         * dbus/dbus-connection.c
3927         (dbus_connection_set_max_live_messages_size): rename
3928         max_received_size
3929         (dbus_connection_get_outgoing_size): get size of outgoing
3930         queue
3931         (_dbus_connection_set_connection_counter): remove this cruft
3932
3933 2003-04-14  Havoc Pennington  <hp@redhat.com>
3934
3935         * dbus/dbus-userdb.c: user database abstraction, mostly to get
3936         caching, but at some point we might want to be able to use a
3937         different database.
3938
3939         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
3940         SHA1 conf file to test the sha1 auth mechanism, since the regular
3941         test always uses EXTERNAL when available.
3942
3943         * configure.in,
3944         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
3945         add conf file that requires use of sha1 auth
3946
3947 2003-04-13  Havoc Pennington  <hp@pobox.com>
3948
3949         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
3950         from Philip Blundell to send messages and monitor them.
3951
3952 2003-04-13  Havoc Pennington  <hp@pobox.com>
3953
3954         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
3955         callbacks
3956
3957         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
3958         users
3959
3960         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3961         fix to only recover unused bytes if we're already authenticated
3962         (_dbus_transport_get_is_authenticated): fix to still mark us
3963         authenticated if there are unused bytes.
3964
3965         * bus/dispatch.c: implement security policy checking
3966
3967         * bus/connection.c (bus_transaction_send_from_driver): new
3968
3969         * bus/bus.c (bus_context_check_security_policy): new
3970
3971         * bus/dispatch.c (send_service_nonexistent_error): delete this,
3972         now we just set the DBusError and it gets converted to an error
3973         reply.
3974
3975         * bus/connection.c (allow_user_function): enable code using actual
3976         data from the config file
3977
3978         * bus/policy.c (list_allows_user): handle wildcard rules for
3979         user/group connection perms
3980
3981 2003-04-13  Havoc Pennington  <hp@pobox.com>
3982
3983         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
3984
3985         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
3986
3987         * bus/policy.c (bus_policy_append_mandatory_rule)
3988         (bus_policy_append_default_rule, bus_policy_append_user_rule)
3989         (bus_policy_append_group_rule): new functions
3990
3991 2003-04-12  Havoc Pennington  <hp@pobox.com>
3992
3993         * bus/config-parser.c (bus_config_parser_new): fix a memleak
3994
3995         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
3996         the pid/gid/uid, just for paranoia.
3997
3998         * test/break-loader.c (randomly_do_n_things): find a byte
3999         containing a type code, and randomly change it to a different
4000         type code.
4001
4002 2003-04-12  Havoc Pennington  <hp@pobox.com>
4003
4004         * bus/policy.h: change BusPolicy to be the thing from the config
4005         file, and rename old BusPolicy to BusClientPolicy
4006
4007         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
4008         match change in how policy works
4009
4010         * dbus/dbus-internals.h: mark assert_not_reached as
4011         __attribute((noreturn))__
4012
4013 2003-04-11  Havoc Pennington  <hp@redhat.com>
4014
4015         * doc/dbus-specification.sgml: fix a spot with the wrong name for
4016         the broadcast service. Use boolean return for ServiceExists.
4017
4018 2003-04-11  Havoc Pennington  <hp@redhat.com>
4019
4020         * configure.in: add another directory to look for qt in.
4021
4022 2003-04-11  Havoc Pennington  <hp@redhat.com>
4023
4024         * AUTHORS: add Colin Walters
4025
4026 2003-04-11  Havoc Pennington  <hp@redhat.com>
4027
4028         * NEWS: update
4029
4030         * configure.in: 0.9
4031
4032 2003-04-11  Havoc Pennington  <hp@redhat.com>
4033
4034         * bus/messagebus.in: remove pid file when stopping the
4035         message bus, since the bus won't have privileges to remove it
4036         itself.
4037
4038 2003-04-11  Havoc Pennington  <hp@redhat.com>
4039
4040         * bus/bus.c (bus_context_new): move credentials change after
4041         creating pidfile
4042
4043 2003-04-11  Havoc Pennington  <hp@pobox.com>
4044
4045         * test/decode-gcov.c: add "below average functions" to the
4046         coverage report, and change how some of the code works.
4047
4048         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
4049         not in the coverage stats.
4050
4051         * test/test-service.c (main): use _dbus_verbose not fprintf in a
4052         couple places so running the test suite doesn't result in megaspam.
4053
4054 2003-04-11  Havoc Pennington  <hp@pobox.com>
4055
4056         * bus/dispatch.c (check_existent_service_activation): accept a no
4057         memory error in a place we didn't before
4058
4059         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
4060         in case the first one failed," since the test suite is less
4061         broken now.
4062
4063 2003-04-10  Havoc Pennington  <hp@pobox.com>
4064
4065         * bus/dispatch.c (check_segfault_service_activation): add test
4066         for launching an executable that just crashes.
4067
4068         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
4069         don't leave a million cores. We'll see how portable this is.
4070
4071 2003-04-10  Havoc Pennington  <hp@pobox.com>
4072
4073         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
4074         the possible parent failures before we fork, so that we don't
4075         fail to create a babysitter after creating the child.
4076
4077         * bus/activation.c (bus_activation_activate_service): kill child
4078         if we don't successfully complete the activation.
4079
4080 2003-04-10  Havoc Pennington  <hp@redhat.com>
4081
4082         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
4083         the connection if it's disconnected
4084
4085         * bus/activation.c (bus_activation_service_created): use new
4086         transaction features to roll back removal of pending activation if
4087         we don't successfully create the service after all. Don't remove
4088         pending activation if the function fails.
4089
4090         * dbus/dbus-list.c (_dbus_list_insert_before_link)
4091         (_dbus_list_insert_after_link): new code to facilitate
4092         services.c fixes
4093
4094         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
4095         new functionality, so we can preallocate the ability to insert
4096         into a hash table.
4097
4098         * bus/connection.c (bus_transaction_add_cancel_hook): new function
4099         allowing us to put custom hooks in a transaction to be used for
4100         cancelling said transaction
4101
4102         * doc/dbus-specification.sgml: add some discussion of secondary
4103         service owners, and disallow zero-length service names
4104
4105         * bus/services.c (bus_registry_acquire_service): new function,
4106         splits out part of bus_driver_handle_acquire_service() and fixes
4107         a bug where we didn't remove the service doing the acquiring
4108         from the secondary queue if we failed to remove the current owner
4109         from the front of the queue.
4110
4111 2003-04-10  Alexander Larsson  <alexl@redhat.com>
4112
4113         * doc/dbus-specification.sgml:
4114         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
4115
4116 2003-04-10  Alexander Larsson  <alexl@redhat.com>
4117
4118         * bus/.cvsignore:
4119         * glib/.cvsignore:
4120         * test/.cvsignore:
4121         Added files to cvsignore
4122
4123         * dbus/dbus-message.h:
4124         * dbus/dbus-message.c: (dbus_message_iter_get_named):
4125         Make get_named() take two out argument and return a boolean.
4126         (dbus_message_iter_get_args_valist):
4127         Update usage of get_named().
4128         (dbus_message_iter_append_byte):
4129         Fix typo
4130         (dbus_message_iter_append_named)
4131         Fix typo
4132         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
4133         More tests.
4134
4135 2003-04-10  Alexander Larsson  <alexl@redhat.com>
4136
4137         * dbus/dbus-marshal.[ch]:
4138         Add array_type_pos argument to _dbus_marshal_validate_arg.
4139         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
4140
4141         * dbus/dbus-message.[ch]:
4142         Multi-dimensional arrays have full type specification in the
4143         outermost array. Iter code re-arranged to handle this.
4144         Added some more iter tests.
4145
4146         * doc/dbus-specification.sgml:
4147         Add me to authors.
4148         Remove old FIXME.
4149         Update new array encoding description.
4150         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
4151
4152         * test/data/invalid-messages/array-with-mixed-types.message:
4153         * test/data/valid-messages/array-of-array-of-uint32.message:
4154         Change to the new array format.
4155
4156         * test/data/invalid-messages/too-short-dict.message:
4157         Fix bug in test.
4158
4159         * test/data/valid-messages/recursive-types.message:
4160         Fix up and extend test.
4161
4162 2003-04-10  Havoc Pennington  <hp@pobox.com>
4163
4164         * bus/dispatch.c: lots of fixes
4165
4166         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
4167         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
4168         that was crack, broke the test service.
4169
4170         * dbus/dbus-transport.c (_dbus_transport_open): fix error
4171         handling to avoid piling up errors if we get a failure on the
4172         first address.
4173
4174         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
4175         pid in assertion failures.
4176
4177         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
4178         to some fixed size of file descriptor array. Don't return TRUE
4179         anytime a timeout exists, that led to lots of busy loop silliness
4180         in the tests.
4181
4182 2003-04-09  Havoc Pennington  <hp@redhat.com>
4183
4184         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
4185         I'd checked this in earlier but hadn't.
4186
4187 2003-04-09  Havoc Pennington  <hp@redhat.com>
4188
4189         * bus/dispatch.c (bus_dispatch_test): get a bit further through
4190         the activation test (man this is getting old!)
4191
4192 2003-04-09  Havoc Pennington  <hp@redhat.com>
4193
4194         * test/test-utils.c: use dispatch status function to fix this up
4195
4196         * bus/connection.c (connection_watch_callback): don't dispatch
4197         from here
4198         (connection_timeout_callback): don't dispatch from here
4199         (bus_connections_setup_connection): set the dispatch status function
4200         (bus_connection_disconnected): unset it
4201
4202         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
4203         used to add a connection to be dispatched
4204         (_dbus_loop_iterate): do the dispatching at the end of each
4205         iteration
4206
4207         * dbus/dbus-connection.c
4208         (dbus_connection_set_dispatch_status_function): new function
4209         allowing us to fix up main loop usage
4210         (_dbus_connection_last_unref): free all the various function
4211         user data
4212         (dbus_connection_dispatch): call the DispatchStatusFunction
4213         whenever this function returns
4214         (dbus_connection_handle_watch): call DispatchStatusFunction
4215         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
4216         (reply_handler_timeout): call DispatchStatusFunction
4217         (dbus_connection_flush): call DispatchStatusFunction
4218
4219 2003-04-09  Havoc Pennington  <hp@redhat.com>
4220
4221         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
4222         a memory leak
4223
4224         * bus/dispatch.c (check_service_activated): fix bug in test
4225
4226         * dbus/dbus-mainloop.c (check_timeout): fix this up
4227
4228         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
4229         verbose output so we can sort out output from different processes,
4230         e.g. in the activation case.
4231
4232 2003-04-08  Colin Walters  <walters@gnu.org>
4233
4234         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
4235         the pid file.
4236         (bus_context_new): Set it.
4237         (bus_context_unref): Use it to delete the pid file.
4238
4239 2003-04-08  Havoc Pennington  <hp@redhat.com>
4240
4241         * test/data/invalid-messages/array-with-mixed-types.message:
4242         regression test that fails for the moment
4243
4244         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
4245         tests for convenience
4246
4247         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
4248         array of nil, it broke things.
4249
4250         * test/data/invalid-messages/array-of-nil.message: regression test
4251
4252         * test/data/valid-messages/array-of-array-of-uint32.message:
4253         happened to write this so added it to suite
4254
4255 2003-04-08  Havoc Pennington  <hp@redhat.com>
4256
4257         * bus/driver.c (bus_driver_handle_acquire_service): init
4258         retval/reply before checking name
4259
4260         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
4261         recursion depth argument
4262
4263         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
4264         in the public struct for future extension
4265
4266         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
4267         typo
4268
4269         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
4270         message
4271
4272         * doc/dbus-specification.sgml: fix typo
4273
4274 2003-04-08  Alexander Larsson  <alexl@redhat.com>
4275
4276         Implemented recursive types, named types and new-style iters
4277
4278         * bus/driver.c:
4279         * glib/test-thread-client.c: (thread_func):
4280         * glib/test-thread-server.c: (handle_test_message):
4281         * test/test-service.c: (handle_echo):
4282         Update to new api
4283
4284         * dbus/Makefile.am:
4285         * dbus/dbus-dict.c:
4286         * dbus/dbus-dict.h:
4287         * dbus/dbus.h
4288         Remove DBusDict
4289
4290         * dbus/dbus-internals.c: (_dbus_type_to_string):
4291         Update for new types.
4292
4293         * dbus/dbus-marshal.[ch]:
4294         Implement recursive types and the new marshalling format.
4295         Remove hardcoded dict marshalling.
4296         Marshal named types.
4297
4298         * dbus/dbus-message-builder.c:
4299         Add BYTE_ARRAY.
4300         Remove references to old types
4301
4302         * dbus/dbus-message.[ch]:
4303         New non-refcounted iter API that supports recursive iters.
4304         Use iters for appending, including support for recursive
4305         iters.
4306         Add byte and named type support.
4307         Update everything to new marshalling formats.
4308         Add tests for new API.
4309
4310         * dbus/dbus-protocol.h:
4311         Remove old array types.
4312         Add types: BYTE, ARRAY, DICT, NAMED
4313
4314         * dbus/dbus-string.c:
4315         * dbus/dbus-sysdeps.c:
4316         Make parse_double locale safe.
4317
4318         * dbus/dbus-test-main.c:
4319         Call setlocale.
4320
4321         * dbus/dbus-test.c:
4322         Kill dict test
4323
4324         * doc/dbus-specification.sgml:
4325         Update spec
4326
4327         * test/data/incomplete-messages/missing-body.message:
4328         * test/data/invalid-messages/bad-boolean.message:
4329         * test/data/invalid-messages/bad-boolean-array.message:
4330         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
4331         * test/data/invalid-messages/boolean-has-no-value.message-raw:
4332         * test/data/invalid-messages/too-short-dict.message:
4333         * test/data/valid-messages/dict-simple.message:
4334         * test/data/valid-messages/dict.message:
4335         * test/data/valid-messages/emptiness.message:
4336         * test/data/valid-messages/lots-of-arguments.message:
4337         * test/data/valid-messages/no-padding.message:
4338         * test/data/valid-messages/recursive-types.message:
4339         Add missing NAME fields
4340         Fix up dicts & arrays
4341
4342         * test/data/invalid-messages/dict-with-nil-value.message:
4343         Removed, this is not invalid anymore.
4344
4345         * test/data/valid-messages/recursive-types.message:
4346         Add new test for deeply recursive types.
4347
4348 2003-04-07  Havoc Pennington  <hp@pobox.com>
4349
4350         * bus/driver.c (bus_driver_handle_acquire_service): return an
4351         error if you try to acquire a service that starts with ':'
4352
4353 2003-04-07  Havoc Pennington  <hp@redhat.com>
4354
4355         * doc/dbus-specification.sgml: require that base service names
4356         start with ':' and that the base service is created/deleted
4357         as first and last things a connection does on the bus
4358
4359         * bus/dispatch.c (check_existent_service_activation): lots more
4360         work on the activation test; it doesn't fully pass yet...
4361
4362         * test/test-service.c (main): fix so we don't memleak the
4363         connection to the message bus
4364         (filter_func): accept a message asking us to exit
4365
4366 2003-04-06  Havoc Pennington  <hp@pobox.com>
4367
4368         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
4369         from Colin Walters
4370
4371         * configure.in: fixes to Qt detection from Colin Walters
4372
4373         * doc/Makefile.am: Only remove generated docbook dirs if they
4374         exist, from Colin Walters
4375
4376         * dbus/dbus-bus.c: change how we set well-known connections to
4377         NULL, so that it works if a single connection is stored in
4378         two well-known array slots.
4379
4380         * test/Makefile.am: remove a lot of stuff that isn't immediately
4381         useful, it's in CVS history if we want it.
4382
4383         * test/test-service.c: use dbus-mainloop instead of that
4384         watch.[hc] crack
4385
4386 2003-04-06  Havoc Pennington  <hp@pobox.com>
4387
4388         * dbus/Makefile.am: split lists of sources into stuff that goes in
4389         the library, util functions that go in the lib and are also used
4390         elsewhere, and util functions that are used in tests/daemon but
4391         don't go in the lib.
4392
4393         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
4394         here so it can be used in test binaries also
4395
4396 2003-04-06  Havoc Pennington  <hp@pobox.com>
4397
4398         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
4399         here in the parent process, so we can return an error if it
4400         fails. Also, move some of the code into the child so the parent
4401         is less hosed if we fail midway through.
4402
4403         * bus/bus.c (bus_context_new): move pidfile detection further up
4404         in the function, before we start overwriting sockets and such.
4405
4406         * bus/messagebus.in: adjust this a bit, not sure if it will work.
4407
4408         * configure.in: add --with-system-pid-file and --with-system-socket
4409
4410 2003-04-06  Colin Walters  <walters@verbum.org>
4411
4412         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
4413
4414         * bus/system.conf.in: Declare a pidfile.
4415
4416         * bus/bus.c (bus_context_new): Test for an existing pid file, and
4417         create one (if appropriate).
4418
4419         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
4420         (struct BusConfigParser) [pidfile]: New.
4421         (element_type_to_name, merge_included, start_busconfig_child)
4422         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
4423         (bus_config_parser_unref): Free it.
4424         (bus_config_parser_get_pidfile): New function.
4425
4426         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
4427
4428         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
4429
4430         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
4431
4432         * dbus/dbus-sysdeps.h: Prototype it.
4433
4434 2003-04-06  Havoc Pennington  <hp@pobox.com>
4435
4436         * bus/bus.c (bus_context_new): print the address in here, rather
4437         than in main(), because we need to do it before forking the daemon
4438
4439         * bus/dispatch.c (send_service_nonexistent_error): set the sender
4440         on the service nonexistent error
4441
4442         * bus/driver.c (bus_driver_handle_acquire_service): set the
4443         sender on the AcquireService reply
4444
4445         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
4446         server also listen on a UNIX socket so services can connect to it.
4447
4448 2003-04-06  Havoc Pennington  <hp@pobox.com>
4449
4450         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
4451         so it detects deadlocks and also we actually init threads when
4452         debugging.
4453
4454 2003-04-06  Havoc Pennington  <hp@pobox.com>
4455
4456         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
4457         save the domain socket name, and unlink it when we disconnect the
4458         server. Means that at least when we exit normally, we won't leave
4459         a bunch of junk in /tmp
4460
4461         * dbus/dbus-transport-unix.c
4462         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
4463         memory management). (I was making a real change here but then
4464         didn't)
4465
4466 2003-04-06  Havoc Pennington  <hp@pobox.com>
4467
4468         * bus/bus.c (bus_context_new): fix wrong handling of
4469         server_data_slot_unref() in the error case.
4470
4471         * dbus/dbus-internals.h (_dbus_assert): change so it passes
4472         "(condition) != 0" to _dbus_real_assert so that
4473         "_dbus_assert (pointer)" doesn't cause a warning
4474
4475         * bus/main.c (main): accept --print-address option to print out
4476         the message bus address
4477
4478         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
4479
4480         * dbus/dbus-transport.c (_dbus_transport_open): special error for
4481         "tmpdir" option to unix: address on client side
4482
4483         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
4484         to unix: address
4485
4486         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
4487         we can use to create sockets in the test suite.
4488
4489         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
4490         cleanly. To be used for testing.
4491
4492         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
4493
4494         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
4495
4496         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4497         handle trying to call this when there's no servers active
4498
4499 2003-04-05  Havoc Pennington  <hp@pobox.com>
4500
4501         * NEWS: update
4502
4503         * configure.in: 0.8
4504
4505 2003-04-05  Havoc Pennington  <hp@pobox.com>
4506
4507         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
4508         crash on startup. Need to get "try starting the daemon"
4509         in the test suite I guess. ;-)
4510
4511         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
4512         tracked the number of open connections; it's better done in
4513         application-specific code as you want it to span all servers etc.
4514
4515 2003-04-05  Havoc Pennington  <hp@pobox.com>
4516
4517         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
4518         patch from Colin Walters
4519
4520 2003-04-05  Havoc Pennington  <hp@pobox.com>
4521
4522         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
4523         reality; in fact multiple mechanisms are allowed.
4524
4525         * dbus/dbus-internals.c (_dbus_real_assert)
4526         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
4527         _dbus_assert_not_reached() into functions, so that they don't show
4528         up in basic block counts for test coverage, and don't use up as
4529         much disk space. Does mean slower execution speed though, so
4530         assumes --disable-asserts is the normal production case.
4531
4532 2003-04-05  Havoc Pennington  <hp@pobox.com>
4533
4534         * test/Makefile.am (dist-hook): also dist *.in files
4535
4536         * NEWS: update
4537
4538         * configure.in: 0.7
4539
4540 2003-04-05  Havoc Pennington  <hp@pobox.com>
4541
4542         * dbus/dbus-string.c: docs warning
4543
4544         * dbus/dbus-spawn.c: missing docs
4545
4546         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
4547
4548 2003-04-05  Havoc Pennington  <hp@pobox.com>
4549
4550         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
4551         magic from GLib
4552
4553         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
4554         to -1 once we've reaped the babysitter
4555         (_dbus_babysitter_handle_watch): do as much work as we can, not
4556         just one go of it
4557
4558         * bus/activation.c: add code using DBusBabysitter so that we
4559         handle it when a service fails to start up properly.
4560         (bus_activation_service_created): don't remove the activation
4561         entries as we go, just let them get removed when we free the pending
4562         activation. Unref reply messages after sending them.
4563
4564 2003-04-05  Havoc Pennington  <hp@pobox.com>
4565
4566         * test/decode-gcov.c (main): print per-directory stats in the report
4567
4568         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
4569
4570 2003-04-05  Havoc Pennington  <hp@pobox.com>
4571
4572         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
4573
4574         * test/decode-gcov.c: hack up a little program to suck data
4575         out of gcov files. Yes this is sort of silly.
4576
4577         * configure.in: define something in config.h and do an
4578         AM_CONDITIONAL when gcov is enabled
4579
4580 2003-04-04  Havoc Pennington  <hp@redhat.com>
4581
4582         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
4583         return a "babysitter" object that is used to monitor the status of
4584         the spawned process and reap it when required.
4585
4586         * test/test-segfault.c, test/test-exit.c,
4587         test/test-sleep-forever.c: binaries that do various lame things,
4588         used in the test suite.
4589
4590         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
4591
4592 2003-04-03  Havoc Pennington  <hp@pobox.com>
4593
4594         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
4595         in preparation for modifying it, dbus-sysdeps is getting
4596         a bit unmanageable.
4597
4598 2003-04-03  Havoc Pennington  <hp@redhat.com>
4599
4600         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
4601         have multiple ones
4602
4603         * bus/*.[hc]: adapt to mainloop change
4604
4605 2003-04-03  Havoc Pennington  <hp@redhat.com>
4606
4607         * bus/activation.c (load_directory): fix up memleaks
4608         (bus_activation_entry_free): free the entry
4609
4610         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
4611         we get one from the message bus; fix memleaks.
4612
4613         * dbus/dbus-message.c (dbus_set_error_from_message): new function
4614
4615 2003-04-03  Havoc Pennington  <hp@pobox.com>
4616
4617         * bus/config-parser.c (bus_config_parser_unref): free
4618         list of mechanisms, bug discovered by test suite enhancements
4619         (putting system.conf and session.conf into suite)
4620
4621         * test/Makefile.am, test/test-service.c: add placeholder for a
4622         test service that we'll activate as part of test suite. Doesn't
4623         do anything yet.
4624
4625         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
4626         setting NULL value, and use system malloc not dbus_malloc()
4627         when we have unavoidable memleakage.
4628
4629         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
4630         didn't work, and support DBUS_BUS_ACTIVATION.
4631
4632         * bus/activation.c (child_setup): pass our well-known bus type to
4633         the child
4634
4635         * bus/config-parser.c: support <type> to specify well-known type
4636
4637         * doc/dbus-specification.sgml: document the env variables to
4638         locate well-known buses and find service activator
4639
4640 2003-04-02  Havoc Pennington  <hp@redhat.com>
4641
4642         * test/Makefile.am (all-local): add a rule to copy tests to
4643         builddir, so we can have generated tests. Use this to remove the
4644         silly hack for testing system.conf and session.conf. Will use this
4645         shortly to generate .service files pointing to test binaries.
4646
4647 2003-04-02  Havoc Pennington  <hp@redhat.com>
4648
4649         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
4650         current alloc and needed new length, not max of the doubled
4651         allocation and needed new length. Also, when building tests,
4652         don't do the double-allocation stuff, just realloc every time.
4653
4654 2003-04-02  Havoc Pennington  <hp@redhat.com>
4655
4656         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
4657         in error messages
4658         (_dbus_string_get_dirname): new
4659         (_dbus_sysdeps_test): new
4660         (_dbus_directory_open): include dirnames in error messages
4661
4662         * bus/config-parser.c: interpret <include> and <includedir> and
4663         <servicedir> relative to config file location if the given
4664         filename is not absolute.
4665
4666         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
4667
4668 2003-04-02  Havoc Pennington  <hp@redhat.com>
4669
4670         * bus/connection.c (bus_transaction_send_error_reply): set sender
4671         service for the error, and unref the reply on success
4672
4673         * bus/activation.c: convert to use BusTransaction so OOM can be
4674         handled correctly
4675         (bus_activation_service_created): set sender of the message
4676
4677 2003-04-01  Havoc Pennington  <hp@redhat.com>
4678
4679         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
4680         <includedir> (at least mostly)
4681
4682         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
4683         first, then the user ID
4684
4685 2003-04-01  Havoc Pennington  <hp@pobox.com>
4686
4687         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
4688         function
4689
4690         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
4691
4692         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
4693
4694         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
4695         socket 0777, and unlink any existing socket.
4696
4697         * bus/bus.c (bus_context_new): change our UID/GID and fork if
4698         the configuration file so specifies; set up auth mechanism
4699         restrictions
4700
4701         * bus/config-parser.c (bus_config_parser_content): add support
4702         for <fork> option and fill in code for <auth>
4703
4704         * bus/system.conf.in: add <fork/> to default configuration,
4705         and limit auth mechanisms to EXTERNAL
4706
4707         * doc/config-file.txt (Elements): add <fork>
4708
4709         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
4710         (_dbus_change_identity): new function
4711
4712 2003-03-31  Havoc Pennington  <hp@redhat.com>
4713
4714         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
4715         (_dbus_listen_unix_socket): fix off-by-one error in null
4716         termination spotted by Nalin
4717
4718 2003-03-31  Havoc Pennington  <hp@redhat.com>
4719
4720         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
4721         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
4722         having a real home directory available.
4723
4724 2003-03-31  Havoc Pennington  <hp@redhat.com>
4725
4726         * bus/Makefile.am (install-data-hook): create /var/run/dbus
4727
4728         * bus/messagebus.in: add init script for Red Hat /etc/init.d
4729
4730         * configure.in: add support for specifying a style of init script
4731         to install
4732
4733 2003-03-31  Havoc Pennington  <hp@redhat.com>
4734
4735         Fix some annoying DBusString API and fix all affected code.
4736
4737         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
4738         max_length argument
4739         (_dbus_string_get_data): change to return string instead of using
4740         an out param
4741         (_dbus_string_get_const_data): ditto
4742         (_dbus_string_get_data_len): ditto
4743         (_dbus_string_get_const_data_len): ditto
4744
4745 2003-03-31  Havoc Pennington  <hp@redhat.com>
4746
4747         * bus/main.c (main): fix up the command line arguments to be nicer
4748
4749 2003-03-31  Havoc Pennington  <hp@redhat.com>
4750
4751         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
4752         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
4753         final location that lands in the config file
4754
4755         * bus/config-loader-expat.c (bus_config_load): fix type of
4756         XML_Parser variable
4757
4758         * doc/TODO: remove TODO item for dbus_bus_get()
4759
4760         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
4761
4762 2003-03-31  Havoc Pennington  <hp@pobox.com>
4763
4764         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
4765         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
4766         argument since they are always client side
4767
4768         * dbus/dbus-server.c (dbus_server_get_address): new function
4769
4770         * bus/main.c (main): take the configuration file as an argument.
4771
4772         * test/data/valid-config-files/debug-allow-all.conf: new file to
4773         use with dispatch.c tests for example
4774
4775         * bus/test-main.c (main): require test data dir
4776
4777         * bus/bus.c (bus_context_new): change this to take a
4778         configuration file name as argument
4779
4780         * doc/config-file.txt (Elements): add <servicedir>
4781
4782         * bus/system.conf, bus/session.conf: new files
4783
4784         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
4785         well-known socket if none set
4786
4787         * configure.in: create system.conf and session.conf
4788
4789 2003-03-30  Havoc Pennington  <hp@pobox.com>
4790
4791         * bus/config-parser.c: hacking
4792
4793         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
4794         to shut down, since it could cause weirdness with the DBusList
4795         lock
4796
4797         * dbus/dbus-list.c (_dbus_list_test): add tests for the
4798         link-oriented stack routines
4799         (alloc_link): free the mempool if the first alloc from it fails
4800
4801         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
4802
4803         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
4804         from GLib
4805         (_dbus_string_skip_white): new
4806
4807         * doc/config-file.txt (Elements): add <includedir>
4808
4809 2003-03-28  Havoc Pennington  <hp@pobox.com>
4810
4811         * dbus/dbus-string.c (_dbus_string_copy_data_len)
4812         (_dbus_string_copy_data): new functions
4813
4814 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
4815
4816         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
4817         * dbus/dbus-bus.h:
4818         Add dbus_bus_get.
4819
4820         * dbus/dbus-memory.c:
4821         Fix a doc comment.
4822
4823 2003-03-28  Havoc Pennington  <hp@pobox.com>
4824
4825         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
4826         I think it may have just been superstition. Not sure.
4827
4828         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
4829         failures that were not being handled.
4830
4831         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
4832
4833         * dbus/dbus-memory.c: add ability to set number of mallocs in a
4834         row that will fail on out-of-memory.
4835
4836         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
4837         function for testing out-of-memory handling.
4838
4839         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
4840         allocation functions, they do map exactly to the expat ones.
4841
4842 2003-03-27  Havoc Pennington  <hp@redhat.com>
4843
4844         * bus/config-loader-libxml.c (bus_config_load): add another error
4845         check
4846
4847 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
4848
4849         * doc/TODO:
4850         Add note about automatic service activation.
4851
4852         * doc/dbus-specification.sgml:
4853         Rename the specification and clarify a few things.
4854
4855 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
4856
4857         * Doxyfile.in:
4858         * dbus/dbus-address.c:
4859         * dbus/dbus-dict.c:
4860         * dbus/dbus-marshal.c:
4861         * dbus/dbus-server-debug-pipe.c:
4862         * dbus/dbus-transport-unix.c:
4863         Fix documentation warnings.
4864
4865 2003-03-26  Havoc Pennington  <hp@pobox.com>
4866
4867         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
4868         after every test so it's quick and easy to see which leaked, and
4869         so we test multiple dbus_shutdown() calls
4870
4871         * configure.in: change configure.in XML stuff to also support
4872         expat
4873
4874         * config-loader-libxml.c: some hacking
4875
4876         * config-loader-expat.c: some hacking
4877
4878         * config-parser.c: some hacking, plus tests
4879
4880 2003-03-25  Havoc Pennington  <hp@redhat.com>
4881
4882         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
4883
4884         * configure.in: add --with-xml option to specify XML library,
4885         right now only libxml is supported.
4886
4887         * bus/config-loader-libxml.c, config-parser.c: sync some minor
4888         nonworking code between home and work, still just stubs
4889
4890 2003-03-24  Havoc Pennington  <hp@redhat.com>
4891
4892         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
4893         file
4894
4895         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
4896         NULL argument for "message" if the error is a well-known one,
4897         fill in a generic message in this case.
4898
4899         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
4900         favor of DBusError
4901
4902         * bus/test.c (bus_test_flush_bus): add
4903
4904         * bus/policy.c (bus_policy_test): test code stub
4905
4906 2003-03-24  Havoc Pennington  <hp@pobox.com>
4907
4908         * bus/connection.c (bus_connections_setup_connection): set up
4909         the "can this user connect" function, but it always returns
4910         TRUE until we have a config file parser so we can have a config
4911         file that allows connections.
4912
4913 2003-03-23  Havoc Pennington  <hp@pobox.com>
4914
4915         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
4916         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
4917         the mutex, so we can check for proper memory management
4918         and OOM handling.
4919
4920         * dbus/dbus-dataslot.c: remove the mutex from
4921         DBusDataSlotAllocator and lock it manually when using it,
4922         to simplify fitting it into the global slots framework.
4923
4924         * dbus/dbus-threads.c (init_static_locks): rework how we're
4925         handling global locks so they are easily shut down.
4926
4927         * bus/policy.c (bus_policy_append_rule): fix
4928
4929         * bus/test-main.c (main): check for memleaks
4930
4931         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
4932         test suite check for memleaks
4933
4934         * dbus/dbus-memory.c: add support in test mode for tracking
4935         number of outstanding blocks
4936
4937 2003-03-23  Havoc Pennington  <hp@pobox.com>
4938
4939         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
4940         policies code
4941
4942         * dbus/dbus-hash.h: add ULONG hash keys
4943
4944         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
4945         (_dbus_get_group_id): new function
4946
4947 2003-03-20  Havoc Pennington  <hp@redhat.com>
4948
4949         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
4950         new function
4951         (dbus_connection_get_unix_user): new function
4952
4953 2003-03-20  Havoc Pennington  <hp@pobox.com>
4954
4955         * bus/connection.c (bus_connection_send_oom_error): assert that
4956         message has a sender
4957         (connection_execute_transaction): ditto
4958         (bus_connection_preallocate_oom_error): fix to set the sender, and
4959         set recipient to the destination service, not the bus driver
4960
4961         * bus/policy.c: hacking
4962
4963         * dbus/dbus-message.c (dbus_message_service_is): new function
4964         (dbus_message_sender_is): new
4965
4966 2003-03-19  Havoc Pennington  <hp@redhat.com>
4967
4968         * bus/policy.c: start sketching code for policy restrictions on
4969         what connections can do.
4970
4971 2003-03-18  Havoc Pennington  <hp@redhat.com>
4972
4973         * doc/TODO: some notes on high-level todo items. Little nitpick
4974         stuff is all in @todo, so no need to add it here.
4975
4976         * doc/config-file.txt: some notes on how config file might look
4977
4978 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
4979
4980         * configure.in: 0.6
4981
4982         * NEWS: Update.
4983
4984 2003-03-17  Havoc Pennington  <hp@redhat.com>
4985
4986         * dbus/dbus-internals.h: add gcc attributes so that
4987         our printf-style functions warn on bad arguments to
4988         format
4989
4990         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
4991         format bug
4992
4993         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
4994         printf format bug
4995
4996 2003-03-17  Havoc Pennington  <hp@redhat.com>
4997
4998         * bus/test-main.c (main): make it print something as it runs
4999         so make check doesn't look stuck
5000
5001         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
5002         from CVS, now obsolete
5003
5004 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
5005
5006         * bus/dispatch.c: (bus_dispatch):
5007         Refetch the service name since it may have been reallocated
5008         when dbus_message_set_sender was called.
5009
5010         * dbus/dbus-sysdeps.c: (_dbus_accept):
5011         Add address and address length variables and use them to stop
5012         valgrind from complaining.
5013
5014 2003-03-17  Havoc Pennington  <hp@pobox.com>
5015
5016         All tests pass, no memleaks, no valgrind complaints.
5017
5018         * bus/test.c: refcount handler_slot
5019
5020         * bus/connection.c (bus_connections_new): refcount
5021         connection_data_slot
5022
5023         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
5024         bytes so that auth scripts pass.
5025
5026         * bus/dispatch.c: init message_handler_slot so it gets allocated
5027         properly
5028
5029         * bus/dispatch.c (message_handler_slot_ref): fix memleak
5030
5031         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
5032         dealloc server_pipe_hash when no longer used for benefit of
5033         leak checking
5034
5035         * dbus/dbus-auth.c (process_command): memleak fix
5036
5037         * bus/dispatch.c (check_hello_message): memleak fix
5038
5039 2003-03-16  Havoc Pennington  <hp@pobox.com>
5040
5041         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
5042
5043 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
5044
5045         * bus/activation.c (bus_activation_activate_service): Append
5046         the pending activation entry to the list of pending activations.
5047
5048 2003-03-16  Havoc Pennington  <hp@pobox.com>
5049
5050         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
5051         connections
5052
5053         * dbus/dbus-address.c (create_entry): fix OOM handling when
5054         failing to alloc entry->method
5055
5056 2003-03-16  Havoc Pennington  <hp@pobox.com>
5057
5058         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
5059         the watch
5060
5061         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5062         add some missing dbus_set_result
5063
5064         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
5065         alloc the DBusMessageHandler
5066
5067         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
5068         the transport here, since we call this from the finalizer; it
5069         resulted in a double-finalize.
5070
5071         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
5072         where we tried to use transport->connection that was NULL,
5073         happened when transport was disconnected early on due to OOM
5074
5075         * bus/*.c: adapt to handle OOM for watches/timeouts
5076
5077         * dbus/dbus-transport-unix.c: port to handle OOM during
5078         watch handling
5079
5080         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
5081         reference to unused bytes instead of a copy
5082
5083         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
5084         out of memory
5085
5086         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
5087         FALSE on OOM
5088
5089         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
5090         of memory
5091
5092 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
5093
5094         * doc/dbus-specification.sgml:
5095         Document reply message for ActivateService.
5096
5097 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
5098
5099         * bus/activation.c: (bus_pending_activation_entry_free),
5100         (bus_pending_activation_free), (bus_activation_new),
5101         (bus_activation_unref), (bus_activation_service_created),
5102         (bus_activation_activate_service):
5103         * bus/activation.h:
5104         * bus/bus.c: (bus_context_new):
5105         * bus/desktop-file.c: (new_section):
5106         * bus/driver.c: (bus_driver_send_service_deleted),
5107         (bus_driver_handle_activate_service):
5108         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
5109         * bus/services.h:
5110         * dbus/dbus-connection.c:
5111         (dbus_connection_send_with_reply_and_block):
5112         * dbus/dbus-message.c: (dbus_message_append_args_valist):
5113         * dbus/dbus-protocol.h:
5114         Make activation work better. Now pending activations will be queued
5115         and the daemon won't try to activate services that are already registered.
5116
5117 2003-03-16  Havoc Pennington  <hp@pobox.com>
5118
5119         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
5120         connection data
5121
5122         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
5123         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
5124
5125 2003-03-16  Havoc Pennington  <hp@pobox.com>
5126
5127         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
5128         this. always run the test suite before commit...
5129
5130         * bus/*: adapt to DBusConnection API changes
5131
5132         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
5133         requires renaming stuff to avoid dbus_connection_dispatch name
5134         conflict.
5135
5136         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
5137         function
5138
5139         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5140         separate from _dbus_message_loader_return_buffer()
5141
5142         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
5143         this, because it's now always broken to use; the number of
5144         messages in queue vs. the number still buffered by the message
5145         loader is undefined/meaningless. Should use
5146         dbus_connection_get_dispatch_state().
5147         (dbus_connection_dispatch): rename from
5148         dbus_connection_dispatch_message
5149
5150 2003-03-16  Havoc Pennington  <hp@pobox.com>
5151
5152         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
5153         implementation
5154
5155 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
5156
5157         * dbus/dbus-connection.c:
5158         (dbus_connection_send_with_reply_and_block):
5159         Decrease connection->n_incoming when removing an entry
5160         from the list.
5161         * dbus/dbus-dict.c: (dbus_dict_entry_free),
5162         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5163         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5164         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
5165         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
5166         (dbus_dict_get_byte_array):
5167         Handle NULL arrays and strings. Also add support for byte arrays.
5168
5169         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
5170         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
5171         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5172         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5173         (_dbus_demarshal_dict), (demarshal_and_validate_len),
5174         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
5175         * dbus/dbus-marshal.h:
5176         Add support for marshalling and demarshalling empty arrays and strings.
5177
5178         * dbus/dbus-message.c: (dbus_message_append_args_valist),
5179         (dbus_message_append_string_array),
5180         (dbus_message_iter_get_boolean),
5181         (dbus_message_iter_get_boolean_array),
5182         (dbus_message_iter_get_int32_array),
5183         (dbus_message_iter_get_uint32_array),
5184         (dbus_message_iter_get_double_array),
5185         (dbus_message_iter_get_byte_array),
5186         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
5187         (check_message_handling):
5188         Add support for getting empty arrays and dicts.
5189
5190         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
5191         Don't do any validation at all for now, that's better than just checking
5192         for ASCII.
5193
5194         * test/data/valid-messages/emptiness.message:
5195         New test message with lots of empty arrays.
5196
5197 2003-03-16  Havoc Pennington  <hp@pobox.com>
5198
5199         * dbus/dbus-connection.c
5200         (_dbus_connection_queue_received_message_link): new function that
5201         can't fail due to OOM
5202
5203         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
5204         new function pops a message together with a list link
5205         containing it.
5206
5207         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
5208         message queuing functions to avoid needing to alloc memory
5209
5210 2003-03-16  Havoc Pennington  <hp@pobox.com>
5211
5212         Oops - test code was only testing failure of around 30 of the
5213         mallocs in the test path, but it turns out there are 500+
5214         mallocs. I believe this was due to misguided linking setup such
5215         that there was one copy of dbus_malloc etc. in the daemon and one
5216         in the shared lib, and only daemon mallocs were tested. In any
5217         case, the test case now tests all 500+ mallocs, and doesn't pass
5218         yet, though there are lots of fixes in this patch.
5219
5220         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5221         this so that it doesn't need to allocate memory, since it
5222         has no way of indicating failure due to OOM (and would be
5223         annoying if it did).
5224
5225         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
5226
5227         * bus/Makefile.am: rearrange to create two self-contained
5228         libraries, to avoid having libraries with overlapping symbols.
5229         that was resulting in weirdness, e.g. I'm pretty sure there
5230         were two copies of global static variables.
5231
5232         * dbus/dbus-internals.c: move the malloc debug stuff to
5233         dbus-memory.c
5234
5235         * dbus/dbus-list.c (free_link): free list mempool if it becomes
5236         empty.
5237
5238         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
5239
5240         * dbus/dbus-address.c (dbus_parse_address): free list nodes
5241         on failure.
5242
5243         * bus/dispatch.c (bus_dispatch_add_connection): free
5244         message_handler_slot when no longer using it, so
5245         memory leak checkers are happy for the test suite.
5246
5247         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
5248
5249         * bus/bus.c (new_connection_callback): disconnect in here if
5250         bus_connections_setup_connection fails.
5251
5252         * bus/connection.c (bus_connections_unref): fix to free the
5253         connections
5254         (bus_connections_setup_connection): if this fails, don't
5255         disconnect the connection, just be sure there are no side
5256         effects.
5257
5258         * dbus/dbus-string.c (undo_alignment): unbreak this
5259
5260         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
5261         leaking
5262         (_dbus_auth_new): fix the order in which we free strings
5263         on OOM failure
5264
5265         * bus/connection.c (bus_connection_disconnected): fix to
5266         not send ServiceDeleted multiple times in case of memory
5267         allocation failure
5268
5269         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
5270         get the base service name
5271         (dbus_bus_register_client): don't return base service name,
5272         instead store it on the DBusConnection and have an accessor
5273         function for it.
5274         (dbus_bus_register_client): rename dbus_bus_register()
5275
5276         * bus/dispatch.c (check_hello_message): verify that other
5277         connections on the bus also got the correct results, not
5278         just the one sending hello
5279
5280 2003-03-15  Havoc Pennington  <hp@pobox.com>
5281
5282         Make it pass the Hello handling test including all OOM codepaths.
5283         Now to do other messages...
5284
5285         * bus/services.c (bus_service_remove_owner): fix crash when
5286         removing owner from an empty list of owners
5287         (bus_registry_ensure): don't leave service in the list of
5288         a connection's owned services if we fail to put the service
5289         in the hash table.
5290
5291         * bus/connection.c (bus_connection_preallocate_oom_error): set
5292         error flag on the OOM error.
5293
5294         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5295         handle _dbus_transport_set_connection failure
5296
5297         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
5298         to create watches up front and simply enable/disable them as
5299         needed.
5300         (unix_connection_set): this can now fail on OOM
5301
5302         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
5303         of enabling/disabling a watch or timeout.
5304
5305         * bus/loop.c (bus_loop_iterate): don't touch disabled
5306         watches/timeouts
5307
5308         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
5309
5310 2003-03-15  Havoc Pennington  <hp@pobox.com>
5311
5312         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
5313         write useful test code, after all that futzing around ;-)
5314
5315         Test does not yet pass because we can't handle OOM in
5316         _dbus_transport_messages_pending (basically,
5317         dbus_connection_preallocate_send() does not prealloc the write
5318         watch). To fix this, I think we need to add new stuff to
5319         set_watch_functions, namely a SetEnabled function so we can alloc
5320         the watch earlier, then enable it later.
5321
5322         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
5323         dbus-memory.c to the convenience lib
5324
5325         * bus/test.c: rename some static functions to keep them clearly
5326         distinct from stuff in connection.c. Handle client disconnection.
5327
5328 2003-03-14  Havoc Pennington  <hp@pobox.com>
5329
5330         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
5331         transport, tests more of the real codepath. Set up clients
5332         with bus_setup_debug_client.
5333
5334         * bus/test.c (bus_setup_debug_client): function to set up debug
5335         "clients" on the main loop
5336
5337         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
5338         support
5339
5340         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
5341         server type
5342
5343         * dbus/dbus-server-debug.c: support a debug server based on pipes
5344
5345         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
5346         (_dbus_close): new function
5347
5348         * configure.in: check for socketpair
5349
5350 2003-03-14  Havoc Pennington  <hp@redhat.com>
5351
5352         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
5353         cheesy hack
5354
5355         * dbus/dbus-transport-debug.c: rework this a good bit to be
5356         less complicated. hopefully still works.
5357
5358         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
5359         manually
5360
5361         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
5362         after running it
5363
5364         * dbus/dbus-message.c (dbus_message_copy): rename from
5365         dbus_message_new_from_message, fix it up to copy
5366         all the message fields, add test case
5367
5368         * bus/dispatch.c (bus_dispatch_test): add some more test code,
5369         not quite passing yet
5370
5371 2003-03-14  Havoc Pennington  <hp@pobox.com>
5372
5373         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
5374         until no work remains" in test code. (the large diff here
5375         is just code movement, no actual changes)
5376
5377         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
5378         1, no point waiting around for test code.
5379         (_dbus_server_debug_accept_transport): unref the timeout
5380         after adding it (right?)
5381
5382         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
5383
5384 2003-03-13  Havoc Pennington  <hp@redhat.com>
5385
5386         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
5387         out of memory
5388
5389         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
5390         of memory
5391
5392         * dbus/dbus-connection.h: Make AddWatchFunction and
5393         AddTimeoutFunction return a bool so they can fail on out-of-memory
5394
5395         * bus/bus.c (bus_context_new): set up timeout handlers
5396
5397         * bus/connection.c (bus_connections_setup_connection): set up
5398         timeout handlers
5399
5400         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
5401         can fail
5402
5403         * bus/bus.c (bus_context_new): adapt to changes
5404
5405         * bus/connection.c: adapt to changes
5406
5407         * test/watch.c: adapt to DBusWatch changes
5408
5409         * bus/dispatch.c (bus_dispatch_test): started adding this but
5410         didn't finish
5411
5412 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
5413
5414         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
5415
5416 2003-03-13  Havoc Pennington  <hp@pobox.com>
5417
5418         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
5419         set up a test framework as for the library
5420
5421 2003-03-12  Havoc Pennington  <hp@pobox.com>
5422
5423         Throughout: purge global variables, introduce BusActivation,
5424         BusConnections, BusRegistry, etc. objects instead.
5425
5426         * bus/bus.h, bus/bus.c: introduce BusContext as a global
5427         message bus object
5428
5429         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
5430         going to redo this a bit differently I think
5431
5432 2003-03-12  Havoc Pennington  <hp@redhat.com>
5433
5434         Mega-patch that gets the message bus daemon initially handling
5435         out-of-memory. Work still needed. Also lots of random
5436         moving stuff to DBusError instead of ResultCode.
5437
5438         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
5439
5440         * dbus/dbus-connection.c
5441         (dbus_connection_send_with_reply_and_block): use DBusError
5442
5443         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
5444         DBusResultCode
5445
5446         * dbus/dbus-connection.c (dbus_connection_send): drop the result
5447         code here, as the only failure possible is OOM.
5448
5449         * bus/connection.c (bus_connection_disconnect):
5450         rename bus_connection_disconnected as it's a notification only
5451
5452         * bus/driver.c (bus_driver_handle_acquire_service): don't free
5453         "name" on get_args failure, should be done by get_args;
5454         don't disconnect client for bad args, just return an error.
5455         (bus_driver_handle_service_exists): ditto
5456
5457         * bus/services.c (bus_services_list): NULL-terminate returned array
5458
5459         * bus/driver.c (bus_driver_send_service_lost)
5460         (bus_driver_send_service_acquired): send messages from driver to a
5461         specific client to the client's unique name, not to the broadcast
5462         service.
5463
5464         * dbus/dbus-message.c (decode_header_data): reject messages that
5465         contain no name field
5466         (_dbus_message_get_client_serial): rename to
5467         dbus_message_get_serial and make public
5468         (_dbus_message_set_serial): rename from set_client_serial
5469         (_dbus_message_set_reply_serial): make public
5470         (_dbus_message_get_reply_serial): make public
5471
5472         * bus/connection.c (bus_connection_foreach): allow stopping
5473         iteration by returning FALSE from foreach function.
5474
5475         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
5476         (dbus_connection_free_preallocated_send)
5477         (dbus_connection_preallocate_send): new API for sending a message
5478         without possibility of malloc failure.
5479         (dbus_connection_send_message): rename to just
5480         dbus_connection_send (and same for whole function family)
5481
5482         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
5483
5484         * dbus/dbus-sysdeps.c (_dbus_exit): new function
5485
5486         * bus/activation.c: handle/return errors
5487
5488         * dbus/dbus-errors.h: add more DBUS_ERROR #define
5489
5490         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
5491         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
5492         (_dbus_result_from_errno): move to this file
5493
5494 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
5495
5496         * dbus/dbus-marshal.c:
5497         (_dbus_marshal_set_string):
5498         Take a length argument so we can marshal the correct string
5499         length.
5500
5501         (_dbus_marshal_dict), (_dbus_demarshal_dict),
5502         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
5503         (_dbus_marshal_test):
5504         * dbus/dbus-marshal.h:
5505         Add support for marshalling and demarshalling dicts.
5506
5507         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5508         Add support for TYPE DICT.
5509
5510         * dbus/dbus-message.c: (set_string_field):
5511         Adjust header padding.
5512
5513         (dbus_message_append_args_valist), (dbus_message_append_dict),
5514         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
5515         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
5516         (check_message_handling), (check_have_valid_message):
5517         * dbus/dbus-message.h:
5518         Add functions for setting and getting dicts.
5519
5520         * dbus/dbus-protocol.h:
5521         Add DBUS_TYPE_DICT.
5522
5523         * dbus/dbus.h:
5524         Add dbus-dict.h
5525
5526         * doc/dbus-specification.sgml:
5527         Add information about how dicts are marshalled.
5528
5529         * test/data/invalid-messages/dict-with-nil-value.message:
5530         * test/data/invalid-messages/too-short-dict.message:
5531         * test/data/valid-messages/dict-simple.message:
5532         * test/data/valid-messages/dict.message:
5533         Add sample messages containing dicts.
5534
5535 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
5536
5537         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
5538
5539 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
5540
5541         * dbus/Makefile.am:
5542         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5543         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
5544         (dbus_dict_set_int32), (dbus_dict_set_uint32),
5545         (dbus_dict_set_double), (dbus_dict_set_string),
5546         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5547         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5548         (dbus_dict_set_string_array), (_dbus_dict_test):
5549         * dbus/dbus-dict.h:
5550         Fix according to comments from Havoc.
5551
5552 2003-03-06  Michael Meeks  <michael@server.home>
5553
5554         * configure.in: if we don't have kde-config, disable have_qt.
5555
5556 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
5557
5558         * dbus/Makefile.am:
5559         Add dbus-dict.[ch]
5560
5561         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5562         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
5563         (dbus_dict_remove), (dbus_dict_get_value_type),
5564         (dbus_dict_get_keys), (dbus_dict_put_boolean),
5565         (dbus_dict_put_int32), (dbus_dict_put_uint32),
5566         (dbus_dict_put_double), (dbus_dict_put_string),
5567         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
5568         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
5569         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
5570         (dbus_dict_get_int32), (dbus_dict_get_uint32),
5571         (dbus_dict_get_double), (dbus_dict_get_string),
5572         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
5573         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
5574         (dbus_dict_get_string_array), (_dbus_dict_test):
5575         * dbus/dbus-dict.h:
5576         Add DBusDict implementation
5577
5578         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
5579         * dbus/dbus-test.h:
5580         Add _dbus_dict_test
5581
5582 2003-03-04  Havoc Pennington  <hp@pobox.com>
5583
5584         * test/data/auth/*: adapt to changes
5585
5586         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
5587         USERID_BASE64 and change USERNAME_BASE64 to put in username not
5588         userid
5589
5590         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
5591         more stuff from being in a context name, to make the protocol
5592         simpler to deal with
5593
5594         * dbus/dbus-errors.c (dbus_error_has_name): new function
5595         (dbus_error_is_set): new function
5596
5597         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
5598         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
5599
5600         * dbus/dbus-connection.c (dbus_connection_flush): also read
5601         messages during a flush operation
5602
5603         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
5604
5605 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
5606
5607         * configure.in: Check for gethostbyname on Solaris.
5608
5609         * dbus/dbus-transport.c: (_dbus_transport_open):
5610         Remove duplicate "tcp" entry.
5611
5612         * doc/dbus-specification.sgml:
5613         Clarify some things.
5614
5615 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
5616
5617         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
5618         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
5619         (_dbus_keyring_test):
5620         * dbus/dbus-md5.c: (_dbus_md5_compute):
5621         * dbus/dbus-sha.c: (_dbus_sha_compute):
5622         Plug memory leaks.
5623
5624 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
5625
5626         * README: Add some things.
5627
5628 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
5629
5630         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
5631         after case DBUS_TYPE_BOOELAN.
5632
5633 2003-03-02  Havoc Pennington  <hp@pobox.com>
5634
5635         * test/break-loader.c (randomly_set_extreme_ints): add test that
5636         sets really huge and small integers
5637
5638         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
5639         that length of boolean array fits in the string, and that
5640         string has room for boolean value in single-bool case.
5641
5642         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
5643         optional value to "ALIGN" command which is what to fill the
5644         alignment with.
5645
5646         * test/data/valid-messages/no-padding.message: add regression
5647         test for the message padding problem
5648
5649 2003-03-02  Havoc Pennington  <hp@pobox.com>
5650
5651         * dbus/dbus-message.c (decode_header_data): fix to always init
5652         message_padding, from Benjamin Dauvergne
5653
5654 2003-03-02  Havoc Pennington  <hp@pobox.com>
5655
5656         * configure.in: 0.5
5657
5658         * NEWS: Update.
5659
5660 2003-03-01  Joe Shaw  <joe@assbarn.com>
5661
5662         * configure.in: Check for "struct cmsgcred" and try to access its
5663         members for BSD-like unices.
5664
5665         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
5666         _dbus_read_credentials_unix_socket().
5667         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
5668         read() for reading the credential byte off the unix socket.  Use
5669         struct cmsgcred on systems that support it.
5670
5671 2003-02-27  Alexander Larsson  <alexl@redhat.com>
5672
5673         * glib/Makefile.am:
5674         * configure.in:
5675         Make gthreads-2.0 dependency optional. Don't build thread test if
5676         its not found.
5677
5678 2003-02-27  Havoc Pennington  <hp@pobox.com>
5679
5680         * dbus/dbus-connection.c
5681         (dbus_connection_send_message_with_reply_and_block): fix doh!
5682         doh! doh! bug that resulted in never removing a reply from the
5683         queue, no wonder we called get_reply_serial so much ;-)
5684
5685         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
5686         and client serial instead of demarshaling them every time
5687
5688 2003-02-27  Havoc Pennington  <hp@pobox.com>
5689
5690         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
5691         more inlined, using dbus-string-private.h, speeds things up
5692         substantially
5693
5694         * dbus/dbus-string.c (_dbus_string_free): apply align offset
5695         when freeing the string
5696         (_dbus_string_steal_data): fix for align offset
5697         (undo_alignment): new function
5698
5699 2003-02-26  Havoc Pennington  <hp@redhat.com>
5700
5701         All kinds of audit fixes from Owen, plus initial attempt to
5702         handle unaligned memory returned from malloc.
5703
5704         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
5705         leave room for align_offset and nul byte
5706         (fixup_alignment): function to track an align_offset and
5707         ensure real->str is aligned
5708         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
5709         to allow a nul byte plus align offset
5710         (_dbus_string_lock): fix overflow issue
5711         (_dbus_string_init_const_len): add assertions on sanity of len,
5712         assign allocated to be ALLOCATION_PADDING larger than len
5713         (set_length): fixup the overflow handling
5714         (_dbus_string_get_data_len): fix overflow in assertion
5715         (open_gap): detect overflow in size of gap to be opened
5716         (_dbus_string_lengthen): add overflow check
5717         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
5718         (_dbus_string_append): add overflow check
5719         (_dbus_string_append_unichar): overflow
5720         (_dbus_string_delete): fix overflow in assertion
5721         (_dbus_string_copy_len): overflow in assertion
5722         (_dbus_string_replace_len): overflows in assertions
5723         (_dbus_string_find): change to implement in terms of
5724         _dbus_string_find_to
5725         (_dbus_string_find_to): assorted fixage
5726         (_dbus_string_equal_c_str): assert c_str != NULL,
5727         fix logic so the function works
5728         (_dbus_string_ends_with_c_str): fix overflow thingy
5729         (_dbus_string_base64_encode): overflow fix
5730         (_dbus_string_validate_ascii): overflow
5731         (_dbus_string_validate_nul): overflow
5732
5733 2003-02-26  Havoc Pennington  <hp@redhat.com>
5734
5735         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
5736
5737 2003-02-26  Alexander Larsson  <alexl@redhat.com>
5738
5739         * configure.in:
5740         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
5741
5742         * dbus/dbus-connection.c:
5743         * dbus/dbus-connection.h:
5744         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
5745         Add dbus_connection_set_wakeup_main_function and use it when queueing
5746         incoming and outgoing messages.
5747
5748
5749         * dbus/dbus-dataslot.c:
5750         Threadsafe usage of DBusDataSlotAllocator
5751
5752         * dbus/dbus-message.c: (dbus_message_get_args_iter):
5753         dbus_new can fail.
5754
5755         * dbus/dbus-server-unix.c:
5756         Add todo comment
5757
5758         * glib/dbus-gmain.c:
5759         Implement the new wakeup functions for glib.
5760
5761         * glib/Makefile.am:
5762         * glib/test-thread-client.c:
5763         * glib/test-thread-server.c:
5764         * glib/test-thread.h:
5765         Initial cut at some thread test code. Not really done yet.
5766
5767 2003-02-26  Havoc Pennington  <hp@pobox.com>
5768
5769         * dbus/dbus-connection.c
5770         (dbus_connection_send_message_with_reply_and_block): fix crash
5771         where we ref'd the outgoing message instead of the returned reply
5772
5773         * dbus/dbus-transport-unix.c (do_authentication): check read watch
5774         at the end of this function, so if we didn't need to read for
5775         authentication, we reinstall it for receiving messages
5776
5777         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
5778         a NULL sender for peer-to-peer case
5779
5780         * dbus/dbus-transport-unix.c (check_read_watch): handle
5781         !authenticated case correctly
5782
5783         * glib/dbus-gmain.c: add support for DBusServer
5784
5785         * dbus/dbus-server.c: add data slot support
5786
5787         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
5788         return values and handle errors
5789
5790         * dbus/dbus-dataslot.c: factor out the data slot stuff from
5791         DBusConnection
5792
5793         * Doxyfile.in (INPUT): add glib subdir
5794
5795         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
5796         setup_with_g_main instead of hookup_with_g_main; write docs
5797
5798 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
5799
5800         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
5801         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5802         * dbus/dbus-message.c: (dbus_message_append_boolean),
5803         (dbus_message_append_boolean_array),
5804         (dbus_message_get_args_valist), (_dbus_message_test):
5805         * dbus/dbus-message.h:
5806         * doc/dbus-specification.sgml:
5807         Various fixes as pointed out by Havoc.
5808
5809         * test/data/invalid-messages/bad-boolean-array.message:
5810         * test/data/invalid-messages/bad-boolean.message:
5811         Add invalid boolean value test cases.
5812
5813 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
5814
5815         * dbus/dbus-internals.c: (_dbus_type_to_string):
5816         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
5817         (_dbus_marshal_validate_arg):
5818         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5819         * dbus/dbus-message.c: (dbus_message_append_args_valist),
5820         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
5821         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
5822         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
5823         (dbus_message_iter_get_double),
5824         (dbus_message_iter_get_boolean_array), (message_iter_test):
5825         * dbus/dbus-message.h:
5826         * dbus/dbus-protocol.h:
5827         * doc/dbus-specification.sgml:
5828         * test/data/valid-messages/lots-of-arguments.message:
5829         Add support for boolean and boolean array types.
5830
5831 2003-02-23  Havoc Pennington  <hp@pobox.com>
5832
5833         * dbus/dbus-keyring.c: finish most of this implementation and
5834         simple unit test
5835
5836         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
5837         these barf if the error isn't cleared to NULL
5838
5839         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
5840         (_dbus_create_directory): new function
5841
5842         * dbus/dbus-errors.c (dbus_set_error): fix warning
5843
5844         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
5845         (_dbus_string_hex_decode): new function
5846         (test_hex_roundtrip): test code
5847
5848         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
5849
5850         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
5851
5852         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
5853         the save-to-temp/rename trick to atomically write the new file
5854         (_dbus_string_parse_uint): new function
5855
5856 2003-02-22  Havoc Pennington  <hp@pobox.com>
5857
5858         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
5859
5860 2003-02-22  Havoc Pennington  <hp@pobox.com>
5861
5862         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
5863         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
5864
5865         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
5866
5867         * dbus/test/data/sha-1: add US government test suite for SHA-1
5868
5869 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
5870
5871         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5872         Make string arrays NULL-terminated.
5873
5874         * dbus/dbus-memory.c: (dbus_free_string_array):
5875         * dbus/dbus-memory.h:
5876         New function for freeing NULL-terminated string arrays.
5877
5878         * dbus/dbus-message-builder.c: (append_quoted_string),
5879         (_dbus_message_data_load):
5880         Add support for array types.
5881
5882         * dbus/dbus-message.c: (check_message_handling):
5883         Add more types as test cases.
5884
5885         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
5886         (_dbus_string_parse_double):
5887         Add the start offset to the end offset.
5888
5889         * test/data/valid-messages/lots-of-arguments.message:
5890         New test message with lots of arguments.
5891
5892 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
5893
5894         * dbus/dbus-message.c: (dbus_message_append_nil),
5895         (dbus_message_append_int32), (dbus_message_append_uint32),
5896         (dbus_message_append_double), (dbus_message_append_string),
5897         (dbus_message_append_int32_array),
5898         (dbus_message_append_uint32_array),
5899         (dbus_message_append_double_array),
5900         (dbus_message_append_byte_array),
5901         (dbus_message_append_string_array):
5902         Fix all out-of-memory handling in these functions.
5903
5904 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
5905
5906         * dbus/dbus-message.c: (dbus_message_append_nil):
5907         Fix a silly.
5908
5909 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
5910
5911         * dbus/dbus-message.c: (dbus_message_append_args_valist),
5912         (dbus_message_append_nil), (dbus_message_append_int32_array),
5913         (dbus_message_append_uint32_array),
5914         (dbus_message_append_double_array),
5915         (dbus_message_append_byte_array),
5916         (dbus_message_append_string_array), (dbus_message_get_args_valist),
5917         (dbus_message_iter_get_int32_array),
5918         (dbus_message_iter_get_uint32_array),
5919         (dbus_message_iter_get_double_array),
5920         (dbus_message_iter_get_byte_array),
5921         (dbus_message_iter_get_string_array):
5922
5923         * dbus/dbus-message.h:
5924         Add functions for appending and getting arrays.
5925
5926 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
5927
5928         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
5929         element size at least 8 bytes, fixes mempool tests on
5930         64-bit machines.
5931
5932 2003-02-20  Alexander Larsson  <alexl@redhat.com>
5933
5934         * dbus/dbus-transport-unix.c (unix_do_iteration):
5935         Unlock the connection mutex during a blocking select call.
5936         Add todo about how we need a way to wake up the select.
5937
5938         * dbus/dbus-connection-internal.h:
5939         * dbus/dbus-connection.c:
5940         Add _dbus_connection_lock and _dbus_connection_unlock.
5941
5942 2003-02-19  Havoc Pennington  <hp@pobox.com>
5943
5944         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
5945         Doxyfile.in, not Doxyfile
5946
5947         * dbus/dbus-keyring.c: do some hacking on this
5948
5949         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
5950
5951         * dbus/dbus-errors.c (dbus_set_error_const): do not call
5952         dbus_error_init
5953         (dbus_set_error): remove dbus_error_init, check for message ==
5954         NULL *before* we sprintf into it, and add @todo about including
5955         system headers in this file
5956
5957         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
5958
5959         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
5960
5961         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
5962         get various bits of user information based on either username
5963         or user ID
5964         (_dbus_homedir_from_username): new function
5965
5966 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
5967
5968         * configure.in:
5969         Add check for nonposix getpwnam_r
5970
5971         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
5972         Align the pool element size to a sizeof (void *) boundary.
5973
5974         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
5975         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
5976         General Solaris fixes.
5977
5978         * test/data/valid-messages/simplest-manual.message:
5979         Explicitly state that we want little-endian packing.
5980
5981 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
5982
5983         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5984
5985         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
5986         Added to create a transport connecting using a tcp/ip socket.
5987
5988         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
5989         to a tcp socket at given host and port.
5990         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
5991         hostname and port.
5992
5993         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5994
5995         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5996         Added to create a server listening on a TCP/IP socket.
5997
5998 2003-02-19  Havoc Pennington  <hp@pobox.com>
5999
6000         Throughout: mop up all the Doxygen warnings and undocumented
6001         stuff.
6002
6003         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
6004         to search any paths.
6005
6006         * dbus/dbus-threads.c: move global mutex initializers to
6007         dbus-internals.h, multiple prototypes was confusing doxygen
6008         besides being kind of ugly
6009
6010         * Doxyfile (PREDEFINED): have Doxygen define
6011         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
6012         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
6013         (do not abuse the feature! it's for stuff like the autogenerated
6014         macros in dbus-md5.c, not just for things you don't feel like
6015         documenting...)
6016
6017 2003-02-18  Havoc Pennington  <hp@pobox.com>
6018
6019         * dbus/dbus-string.c (_dbus_string_zero): new function
6020
6021         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
6022         wrap it in some dbus-friendly API
6023
6024         * dbus/dbus-types.h: add 16-bit types
6025
6026 2003-02-18  Joe Shaw  <joe@assbarn.com>
6027
6028         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
6029         credentials from our currently running process.
6030         (get_word): Fix a buglet where we were copying the entire length
6031         instead of relative to our position.
6032
6033         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
6034         keys on the stack... it's 640k of data.
6035
6036         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
6037         read the credentials byte off the socket, even if we don't have
6038         SO_PEERCRED.
6039         (_dbus_poll): Implement poll() using select() for systems which
6040         don't have it.
6041
6042         * glib/test-dbus-glib.c (main): Print out an error if no
6043         parameters are given.
6044
6045         * test/data/auth/fallback.auth-script: Added.  Tests that a client
6046         can fallback to a secondary auth mechanism if the first fails.
6047
6048 2003-02-18  Havoc Pennington  <hp@pobox.com>
6049
6050         * AUTHORS: add Alex
6051
6052 2003-02-17  Havoc Pennington  <hp@pobox.com>
6053
6054         * doc/dbus-specification.sgml: lots of cosmetic
6055         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
6056         env variable to DBUS_BUS_ADDRESS, s/client/application/,
6057         s/server/bus/ (except in authentication section). Add a section
6058         "Message Bus Message Routing"
6059
6060 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
6061
6062         Release 0.4
6063
6064         * NEWS: Update
6065
6066 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6067
6068         * doc/dbus-specification.sgml:
6069         Specification updates.
6070
6071 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6072
6073         * bus/activation.c: (bus_activation_init), (child_setup),
6074         (bus_activation_activate_service):
6075         * bus/activation.h:
6076         * bus/main.c: (main):
6077         Set DBUS_ADDRESS environment variable.
6078
6079         * dbus/dbus-errors.c: (dbus_set_error):
6080         Don't use va_copy since that's a C99 feature.
6081
6082         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
6083         (_dbus_spawn_async):
6084         * dbus/dbus-sysdeps.h:
6085         Add child_setup_func to _dbus_spawn_async.
6086
6087         * doc/dbus-specification.sgml:
6088         Update specification.
6089
6090         * test/spawn-test.c: (setup_func), (main):
6091         Fix test.
6092
6093 2003-02-17  Alexander Larsson  <alexl@redhat.com>
6094
6095         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
6096         Added todo.
6097
6098 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6099
6100         * doc/.cvsignore:
6101         * doc/Makefile.am:
6102         * doc/dbus-test-plan.sgml:
6103         Add test plan document.
6104
6105         * test/Makefile.am:
6106         Fix distcheck.
6107
6108 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6109
6110         * dbus/dbus-message.c: (decode_header_data),
6111         (_dbus_message_loader_return_buffer):
6112         Set the header padding amount when loading a message.
6113
6114 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6115
6116         * bus/dispatch.c: (send_one_message):
6117         Only send broadcast messages to registered connections.
6118
6119         * dbus/dbus-message.c: (dbus_message_name_is):
6120         * dbus/dbus-message.h:
6121         New convenience function.
6122
6123         * dbus/dbus-transport-debug.c: (do_reading):
6124         Only dispatch one message per run.
6125
6126         * test/Makefile.am:
6127         * test/bus-test.c: (new_connection_callback), (die),
6128         (test_hello_client1_handler), (test_hello_client2_handler),
6129         (test_hello_replies), (main):
6130
6131         * test/bus-test-loop.[ch]:
6132         Add these.
6133
6134 2003-02-16  Havoc Pennington  <hp@pobox.com>
6135
6136         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
6137         backward conditional
6138
6139 2003-02-16  Alexander Larsson  <alexl@redhat.com>
6140
6141         * dbus/dbus-connection.c:
6142         Implement sent_message_with_reply. (with_reply_and block is still
6143         busted).
6144         Made dispatch_message not lose message if OOM.
6145
6146         * dbus/dbus-errors.h:
6147         Add NoReply error (for reply timeouts).
6148
6149 2003-02-16  Alexander Larsson  <alexl@redhat.com>
6150
6151         * dbus/dbus-hash.c (_dbus_hash_table_unref):
6152         Actually free keys and values when destroying hashtable.
6153
6154 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6155
6156         * dbus/dbus-auth.c: (client_try_next_mechanism):
6157         Plug a leak.
6158
6159         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
6160         Return TRUE if there's no thread implementation around.
6161
6162         * glib/dbus-gmain.c: (free_source),
6163         (dbus_connection_hookup_with_g_main):
6164         Make sure to remove the GSource when the connection is finalized.
6165
6166 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6167
6168         * bus/dispatch.c: (bus_dispatch_message_handler):
6169         * dbus/dbus-errors.h:
6170         Return an error if someone tries to send a message to a service
6171         that doesn't exist.
6172
6173 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6174
6175         * bus/activation.c: (load_directory), (bus_activation_init),
6176         (bus_activation_activate_service):
6177         * bus/activation.h:
6178         * bus/driver.c:
6179         (bus_driver_handle_activate_service), (bus_driver_handle_message):
6180         More work on the activation handling.
6181
6182         * dbus/dbus-errors.h:
6183         Add some error messages
6184
6185         * dbus/dbus-message.c: (dbus_message_new_error_reply):
6186         * dbus/dbus-message.h:
6187         New function that creates an error message.
6188
6189         * dbus/dbus-protocol.h:
6190         Add ACTIVATE_SERVER message.
6191
6192         * dbus/dbus-server-unix.c: (unix_handle_watch),
6193         (_dbus_server_new_for_domain_socket):
6194         Call _dbus_fd_set_close_on_exec.
6195
6196         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
6197         (_dbus_spawn_async), (_dbus_disable_sigpipe),
6198         (_dbus_fd_set_close_on_exec):
6199         * dbus/dbus-sysdeps.h:
6200         Add _dbus_fd_set_close_on exec function. Also add function that checks
6201         that all open fds are set to close-on-exec and warns otherwise.
6202
6203         * dbus/dbus-transport-unix.c:
6204         (_dbus_transport_new_for_domain_socket):
6205         Call _dbus_fd_set_close_on_exec.
6206
6207 2003-02-16  Havoc Pennington  <hp@pobox.com>
6208
6209         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
6210         allow people to avoid setting SIGPIPE to SIG_IGN
6211         (_dbus_connection_new_for_transport): disable SIGPIPE unless
6212         we've been asked not to
6213
6214 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6215
6216         * dbus/dbus-list.c: (_dbus_list_append_link),
6217         (_dbus_list_prepend_link):
6218         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
6219         (dbus_realloc):
6220         Warning fixes.
6221
6222 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6223
6224         * bus/Makefile.am:
6225         * bus/activation.c: (bus_activation_entry_free),
6226         (add_desktop_file_entry), (load_directory), (bus_activation_init):
6227         * bus/activation.h:
6228         * bus/main.c: (main):
6229         Add simple activation support, doesn't work yet though.
6230
6231 2003-02-15   Zack Rusin  <zack@kde.org>
6232
6233         * qt/dbus-qthread.cpp:  small casting fix
6234
6235 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6236
6237         * dbus/dbus-errors.c: (dbus_set_error):
6238         * dbus/dbus-errors.h:
6239         Add a few errors and make dbus_set_error void.
6240
6241         * dbus/dbus-sysdeps.c:
6242         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
6243         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
6244         * dbus/dbus-sysdeps.h:
6245         Add _dbus_spawn_async.
6246
6247         * test/spawn-test.c: (main):
6248         Test for _dbus_spawn_async.
6249
6250 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6251
6252         * dbus/dbus-internals.h:
6253         Fix build without tests.
6254
6255         * dbus/dbus-list.c: (alloc_link):
6256         Fix a segfault when a malloc fails.
6257
6258         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
6259         (dbus_malloc0), (dbus_realloc):
6260         Add support for malloc debugging.
6261
6262 2003-02-15  Alexander Larsson  <alexl@redhat.com>
6263
6264         * dbus/dbus-threads.c:
6265         * dbus/dbus-threads.h:
6266         Add condvars. Remove static mutext from API.
6267         Implement static mutexes by initializing them from threads_init.
6268
6269         * glib/dbus-gthread.c:
6270         * qt/dbus-qthread.cpp:
6271         Update with the thread api changes.
6272
6273
6274         * dbus/dbus-list.c:
6275         * dbus/dbus-list.h:
6276         Turn StaticMutex into normal mutex + init function.
6277         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
6278         _dbus_list_append_link, _dbus_list_prepend_link
6279
6280
6281         * dbus/dbus-sysdeps.c:
6282         * dbus/dbus-sysdeps.h:
6283         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
6284         _dbus_atomic_dec. Only slow fallback implementation at the moment.
6285
6286         * dbus/dbus-protocol.h:
6287         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
6288
6289         * dbus/dbus-message.c:
6290         Make ref/unref atomic.
6291         Fix some docs.
6292
6293         * dbus/dbus-connection-internal.h:
6294         * dbus/dbus-connection.c:
6295         * dbus/dbus-connection.h:
6296         Make threadsafe.
6297         Change _peek to _borrow,_return & _steal_borrowed.
6298         Change disconnect callback to event.
6299         Make dbus_connection_dispatch_messages reentrant.
6300
6301         * dbus/dbus-transport.c:
6302         Don't ref the connection on calls to the transport
6303         implementation.
6304
6305         * dbus/dbus-message-handler.c:
6306         Make threadsafe.
6307
6308         * glib/dbus-gmain.c:
6309         Don't use peek_message anymore
6310
6311         * test/Makefile.am:
6312         * test/debug-thread.c:
6313         * test/debug-thread.h:
6314         Simple thread implementation that asserts() on deadlocks in
6315         single-threaded code.
6316
6317         * test/bus-test.c:
6318         (main) Call debug_threads_init.
6319
6320         * test/watch.c:
6321         Use disconnect message instead of disconnect callback.
6322
6323         * bus/connection.c:
6324         * bus/connection.h:
6325         Don't call dbus_connection_set_disconnect_function. Instead export
6326         bus_connection_disconnect.
6327
6328         * bus/dispatch.c:
6329         Call bus_connection_disconnect when we get a disconnected message.
6330
6331 2003-02-15  Havoc Pennington  <hp@pobox.com>
6332
6333         * dbus/dbus-message.c (dbus_message_new): fool around with the
6334         docs
6335
6336 2003-02-14  Havoc Pennington  <hp@pobox.com>
6337
6338         * dbus/dbus-mempool.c: fail if the debug functions so indicate
6339
6340         * dbus/dbus-memory.c: fail if the debug functions indicate we
6341         should
6342
6343         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
6344         (_dbus_decrement_fail_alloc_counter): debug functions to
6345         simulate memory allocation failures
6346
6347 2003-02-14  Havoc Pennington  <hp@pobox.com>
6348
6349         * dbus/dbus-errors.h (struct DBusError): add a word of padding
6350         to DBusError
6351
6352 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6353
6354         * bus/driver.c: (bus_driver_handle_hello):
6355         * bus/driver.h:
6356         * bus/services.c: (bus_service_lookup):
6357         Reorder message sending so we get a more sane order.
6358
6359         * test/bus-test.c: (message_handler):
6360         Fix tyop.
6361
6362 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6363
6364         * bus/driver.c: (bus_driver_send_service_deleted),
6365         (bus_driver_send_service_created), (bus_driver_send_service_lost),
6366         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6367         (bus_driver_send_welcome_message),
6368         (bus_driver_handle_list_services),
6369         (bus_driver_handle_acquire_service),
6370         (bus_driver_handle_service_exists):
6371         * dbus/dbus-bus.c: (dbus_bus_register_client),
6372         (dbus_bus_acquire_service), (dbus_bus_service_exists):
6373         * dbus/dbus-errors.c: (dbus_result_to_string):
6374         * dbus/dbus-errors.h:
6375         * dbus/dbus-message.c: (dbus_message_append_args),
6376         (dbus_message_append_args_valist), (dbus_message_get_args),
6377         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
6378         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
6379         (dbus_message_iter_get_byte_array),
6380         (dbus_message_iter_get_string_array), (message_iter_test),
6381         (check_message_handling), (_dbus_message_test):
6382         * dbus/dbus-message.h:
6383         * test/bus-test.c: (main):
6384         Change fields to arguments in messages, so that they won't be
6385         confused with header fields.
6386
6387         * glib/test-dbus-glib.c: (main):
6388         Remove append_fields from hello message.
6389
6390 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6391
6392         * dbus/dbus-errors.c:
6393         * dbus/dbus-message.c:
6394         * dbus/dbus-string.c:
6395         Documentation fixes.
6396
6397 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6398
6399         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
6400         (remove_timeout):
6401         Implement support for timeouts in dbus-glib.
6402
6403 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6404
6405         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6406         * dbus/dbus-message.c: (process_test_subdir):
6407         * test/break-loader.c: (find_breaks_based_on):
6408         Plug some memory leaks.
6409
6410 2003-02-13  Richard Hult  <rhult@codefactory.se>
6411
6412         * bus/main.c: Fix build.
6413
6414         * dbus/dbus-errors.h:
6415         * dbus/dbus-errors.c: Fix copyright for Anders.
6416
6417 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6418
6419         * bus/Makefile.am:
6420         Add utils.[ch]
6421
6422         * bus/connection.c: (bus_connection_foreach):
6423         Fix a warning.
6424
6425         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
6426         (unescape_string), (new_section), (parse_section_start),
6427         (parse_key_value), (report_error), (bus_desktop_file_load),
6428         (bus_desktop_file_get_string):
6429         * bus/desktop-file.h:
6430         Use DBusError for error reporting.
6431
6432         * bus/dispatch.c: (send_one_message),
6433         (bus_dispatch_message_handler):
6434         * bus/driver.c: (bus_driver_send_service_deleted),
6435         (bus_driver_send_service_created), (bus_driver_send_service_lost),
6436         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6437         (bus_driver_send_welcome_message),
6438         (bus_driver_handle_list_services),
6439         (bus_driver_handle_acquire_service),
6440         (bus_driver_handle_service_exists):
6441         * bus/loop.c: (bus_loop_run):
6442         * bus/main.c:
6443         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
6444
6445         * bus/utils.c: (bus_wait_for_memory):
6446         * bus/utils.h:
6447         New files with general utility functions.
6448
6449         * dbus/dbus-internals.h:
6450         Remove _DBUS_HANDLE_OOM.
6451
6452 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6453
6454         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
6455         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
6456         * dbus/dbus-errors.h:
6457         Add DBusError structure.
6458
6459 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6460
6461         * test/data/valid-messages/standard-acquire-service.message:
6462         * test/data/valid-messages/standard-hello.message:
6463         * test/data/valid-messages/standard-list-services.message:
6464         * test/data/valid-messages/standard-service-exists.message:
6465         Add some standard messages.
6466
6467 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6468
6469         * bus/driver.c: (bus_driver_send_welcome_message),
6470         (bus_driver_handle_list_services),
6471         (bus_driver_handle_acquire_service),
6472         (bus_driver_handle_service_exists), (bus_driver_handle_message):
6473         Update for API changes in libdbus.
6474
6475         * dbus/dbus-message.c: (dbus_message_new_reply):
6476         * dbus/dbus-message.h:
6477         Remove the name argument. The spec states that replies shouldn't
6478         have a name.
6479
6480 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6481
6482         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
6483         (report_error), (bus_desktop_file_load), (lookup_section),
6484         (lookup_line), (bus_desktop_file_get_raw),
6485         (bus_desktop_file_get_string):
6486         * bus/desktop-file.h:
6487         Some fixes, and new functions for getting a key value from a section.
6488
6489 2003-02-13  Havoc Pennington  <hp@pobox.com>
6490
6491         * test/data/auth/fail-after-n-attempts.auth-script: new test
6492
6493         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
6494         reject the client.
6495
6496 2003-02-13  Havoc Pennington  <hp@pobox.com>
6497
6498         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
6499         dbus_credentials_match were backward
6500
6501         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
6502         NO_CREDENTIALS and ROOT_CREDENTIALS
6503
6504         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
6505         into here. Never process more commands after we've reached an
6506         end state; store further data as unused bytes.
6507
6508         * test/data/auth/*: add more auth tests
6509
6510         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
6511         command to match exact string and EXPECT_UNUSED to match unused
6512         bytes
6513
6514         * test/Makefile.am (dist-hook): fix to dist all the test stuff
6515
6516 2003-02-12  Havoc Pennington  <hp@pobox.com>
6517
6518         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
6519         \r off of popped lines
6520
6521         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
6522         scripts
6523
6524         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
6525         SEND, append \r\n
6526
6527 2003-02-12  Havoc Pennington  <hp@pobox.com>
6528
6529         * dbus/Makefile.am: remove break-loader from the build, since it
6530         moved.
6531
6532         * configure.in: add --enable-gcov to turn on coverage profiling
6533         flags and disable optimization
6534
6535 2003-02-10  Havoc Pennington  <hp@pobox.com>
6536
6537         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
6538         initial cut at test framework for DBusAuth from laptop.
6539         Doesn't quite work yet but it compiles and I need to get
6540         it off the 266mhz laptop. ;-)
6541
6542         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
6543         fix a memleak in error case
6544
6545 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
6546
6547         * bus/Makefile.am:
6548         * bus/desktop-file.c:
6549         * bus/desktop-file.h:
6550         Add a desktop file parser.
6551
6552 2003-02-11  Zack Rusin  <zack@kde.org>
6553
6554         * qt/message.[h|cpp]: sample implementation
6555         of the KDE wrapper for DBusMessage
6556
6557 2003-02-09  Zack Rusin  <zack@kde.org>
6558
6559         * test/bus-test.c: make_it_compile
6560         * doc/dbus-specification.sgml: minimal semantic fix
6561
6562 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
6563
6564         Release 0.3
6565
6566         * NEWS: Update
6567
6568 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
6569
6570         * dbus/Makefile.am:
6571         * dbus/dbus-break-loader.c:
6572         * test/Makefile.am:
6573         * test/break-loader.c:
6574         Move dbus-break-loader to test/ and rename it to break-loader.
6575
6576 2003-02-02  Havoc Pennington  <hp@pobox.com>
6577
6578         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
6579         for code to manage cookies in your home directory
6580
6581         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
6582
6583         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
6584         to authenticate, then disconnect the client.
6585
6586 2003-02-03  Alexander Larsson  <alexl@redhat.com>
6587
6588         * dbus/dbus-message.c (dbus_message_append_fields):
6589         Correct docs.
6590
6591 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
6592
6593         * doc/dbus-specification.sgml:
6594         Update address format section.
6595
6596 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
6597
6598         * test/Makefile.am:
6599         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
6600         (message_handler), (new_connection_callback), (loop_quit),
6601         (loop_run), (main):
6602         Add bus test.
6603
6604 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
6605
6606         * bus/driver.c: (bus_driver_handle_service_exists):
6607         Simplify the code a bit.
6608
6609         * dbus/dbus-bus.c: (dbus_bus_service_exists):
6610         Fix a silly.
6611
6612 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
6613
6614         * bus/Makefile.am:
6615         Add libdbus-daemon.la and link to it.
6616
6617 2003-02-01  James Willcox  <jwillcox@gnome.org>
6618
6619         * bus/driver.c: (bus_driver_handle_own_service):
6620         Actually include the service reply code in the message.
6621
6622 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
6623
6624         * bus/driver.c: (bus_driver_handle_service_exists):
6625         Don't unref the incoming message.
6626
6627 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
6628
6629         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
6630
6631 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
6632
6633         * dbus/dbus-server.c: (dbus_server_listen):
6634         * dbus/dbus-transport.c: (_dbus_transport_open):
6635         ifdef out the calls to the debug transport and server.
6636
6637 2003-02-02  Alexander Larsson  <alexl@redhat.com>
6638
6639         * dbus/dbus-watch.c (dbus_watch_get_flags):
6640         Add note in the docs that ERROR or HANGUP won't be returned
6641         and are assumed always on.
6642
6643         * glib/dbus-gmain.c (add_watch):
6644         Always add IO_ERR | IO_HUP
6645
6646         * dbus/dbus-message.h:
6647         Add semicolon after dbus_message_iter_get_string_array().
6648         Makes qt code build again
6649
6650 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
6651
6652         * bus/driver.c: (create_unique_client_name),
6653         (bus_driver_handle_hello):
6654         Don't take a name, just use a numeric id to identify
6655         each client.
6656
6657         * dbus/Makefile.am:
6658         * dbus/dbus-bus.c: (dbus_bus_register_client),
6659         (dbus_bus_acquire_service), (dbus_bus_service_exists):
6660         * dbus/dbus-bus.h:
6661         Add new convenience functions for communicating with the bus.
6662
6663         * dbus/dbus-message.h:
6664
6665         * dbus/dbus-protocol.h:
6666         Fix a typo.
6667
6668 2003-02-01  Alexander Larsson  <alexl@redhat.com>
6669
6670         * dbus/dbus-message.c (dbus_message_append_fields):
6671         Add some more doc comments.
6672
6673 2003-02-01  Havoc Pennington  <hp@pobox.com>
6674
6675         * dbus/dbus-break-loader.c (randomly_modify_length): change
6676         a 4-byte value in the message as if it were a length
6677
6678         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
6679         execute bit on saved files
6680
6681 2003-02-01  Havoc Pennington  <hp@pobox.com>
6682
6683         * dbus/dbus-break-loader.c (main): new program to find messages
6684         that break the loader.
6685
6686         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
6687         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
6688
6689         * dbus/dbus-string.c (_dbus_string_set_byte): new
6690
6691 2003-01-31  Havoc Pennington  <hp@pobox.com>
6692
6693         * dbus/dbus-message.c: refactor the test code to be more general,
6694         in preparation for writing a "randomly permute test cases to
6695         try to break the loader" program.
6696
6697 2003-01-31  Havoc Pennington  <hp@pobox.com>
6698
6699         * doc/dbus-specification.sgml: work on the specification
6700
6701         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
6702         the protocol version of the message.
6703
6704         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
6705         no longer specifies that.
6706         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
6707         1/2/3/4)
6708
6709         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
6710         "break" for DBUS_TYPE_NIL, remove @todo
6711
6712 2003-01-31  Havoc Pennington  <hp@pobox.com>
6713
6714         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
6715         just set_is_error/get_is_error as this is a commonly-used
6716         function, and write docs.
6717
6718 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
6719
6720         * dbus/dbus-address.c: (dbus_address_entry_free):
6721         Free key and value lists.
6722
6723         * dbus/dbus-internals.c: (_dbus_type_to_string):
6724         Add the types we didn't have.
6725
6726         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6727         (_dbus_marshal_validate_arg):
6728         Add NIL types.
6729
6730         * dbus/dbus-message.c: (dbus_message_set_sender):
6731         Remove todo about being able to set sender to NULL.
6732
6733         (dbus_message_set_is_error_reply),
6734         (dbus_message_get_is_error_reply):
6735         * dbus/dbus-message.h:
6736         New functions.
6737
6738         * dbus/dbus-protocol.h:
6739         Add error reply flag.
6740
6741         * test/data/valid-messages/opposite-endian.message:
6742         Add NIL type to test.
6743
6744 2003-01-31  Havoc Pennington  <hp@pobox.com>
6745
6746         * doc/dbus-specification.sgml: fully specify the header.  Add
6747         flags and major protocol version, and change header/body len to
6748         unsigned.
6749
6750         * dbus/dbus-message-builder.c (append_saved_length): append length
6751         as uint32
6752
6753         * dbus/dbus-message.c (dbus_message_create_header): change header
6754         length and body length to unsigned. Add the new fields from the
6755         spec
6756         (_dbus_message_loader_return_buffer): unsigned header/body len
6757
6758 2003-01-30  Havoc Pennington  <hp@pobox.com>
6759
6760         * dbus/dbus-auth.c: rework to use only REJECTED, no
6761         MECHANISMS
6762
6763         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
6764         use REJECTED, suggested by Mark McLoughlin
6765
6766 2003-01-30  Havoc Pennington  <hp@pobox.com>
6767
6768         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
6769         a better way to report errors here. e.g.  "unix address lacks
6770         path" or something. also "no such file" when the path doesn't
6771         exist, etc.
6772
6773         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
6774         leaking list nodes
6775         (dbus_parse_address): add @todo about documenting address format,
6776         and allowing , and ; to be escaped
6777
6778 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
6779
6780         * dbus/Makefile.am:
6781         Add dbus-address.[ch]
6782
6783         * dbus/dbus-address.c: (dbus_address_entry_free),
6784         (dbus_address_entries_free), (create_entry),
6785         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
6786         (dbus_parse_address), (_dbus_address_test):
6787         * dbus/dbus-address.h:
6788         New files for dealing with address parsing.
6789
6790         * dbus/dbus-connection.c:
6791         Document timeout functions.
6792
6793         * dbus/dbus-message.c:
6794         Document dbus_message_new_from_message.
6795
6796         * dbus/dbus-server-debug.c:
6797         Document.
6798
6799         * dbus/dbus-server.c: (dbus_server_listen):
6800         Parse address and use correct server implementation.
6801
6802         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
6803         * dbus/dbus-string.h:
6804         New function with test.
6805
6806         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
6807         * dbus/dbus-test.h:
6808         Add address tests.
6809
6810         * dbus/dbus-transport-debug.c:
6811         Document.
6812
6813         * dbus/dbus-transport.c: (_dbus_transport_open):
6814         Parse address and use correct transport implementation.
6815
6816 2003-01-30  Havoc Pennington  <hp@pobox.com>
6817
6818         * dbus/dbus-message.c: use message->byte_order instead of
6819         DBUS_COMPILER_BYTE_ORDER throughout.
6820         (dbus_message_create_header): pad header to align the
6821         start of the body of the message to 8-byte boundary
6822
6823         * dbus/dbus-marshal.h: make all the demarshalers take const
6824         DBusString arguments.
6825
6826         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
6827         validate message args here, so we don't have to do slow validation
6828         later, and so we catch bad messages as they are incoming. Also add
6829         better checks on header_len and body_len. Also fill in
6830         message->byte_order
6831
6832         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
6833         implemented properly)
6834         (_dbus_string_validate_nul): new function to check all-nul
6835
6836         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
6837         get_arg_end_pos and remove all validation
6838         (_dbus_marshal_validate_arg): actually do validation here.
6839
6840 2003-01-29  Havoc Pennington  <hp@pobox.com>
6841
6842         * dbus/dbus-message.c (check_message_handling): fix assertion
6843         failure on set_client_serial
6844
6845 2003-01-28  Havoc Pennington  <hp@pobox.com>
6846
6847         * dbus/dbus-server-debug.c: Add doc section comments
6848
6849         * dbus/dbus-transport-debug.c: add doc section comments
6850
6851 2003-01-28  Havoc Pennington  <hp@redhat.com>
6852
6853         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
6854         the reverse order from how I had it
6855         (_dbus_string_base64_encode): reverse encoding order. I was
6856         basically byteswapping everything during encoding.
6857
6858 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
6859
6860         * dbus/dbus-connection-internal.h:
6861         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
6862         (_dbus_connection_remove_timeout):
6863         Add functions for adding and removing timeouts.
6864
6865         * dbus/dbus-message.c: (dbus_message_new_from_message):
6866         Add new function that takes a message and creates an exact
6867         copy of it, but with the refcount set to 1.
6868         (check_message_handling):
6869         Fix build error.
6870
6871         * dbus/dbus-server-protected.h:
6872         * dbus/dbus-server.c: (_dbus_server_init_base),
6873         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
6874         (dbus_server_set_timeout_functions):
6875         (_dbus_server_remove_timeout):
6876         New functions so that a server can add and remove timeouts.
6877
6878         (dbus_server_listen):
6879         Add commented out call to dbus_server_debug_new.
6880
6881         * dbus/dbus-timeout.c: (_dbus_timeout_new):
6882         Actually set the handler, doh.
6883
6884         * dbus/dbus-transport.c: (_dbus_transport_open):
6885         Add commented out call to dbus_transport_debug_client_new.
6886
6887         * dbus/Makefile.am:
6888         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
6889
6890 2003-01-28  Havoc Pennington  <hp@pobox.com>
6891
6892         * dbus/dbus-message.c (check_message_handling): function to check
6893         on the loaded message, iterates over it etc.
6894
6895 2003-01-28  Havoc Pennington  <hp@pobox.com>
6896
6897         * test/Makefile.am (dist-hook): fix make distdir
6898
6899         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
6900
6901 2003-01-27  Havoc Pennington  <hp@pobox.com>
6902
6903         * dbus/dbus-mempool.c (time_for_size): replace printf with
6904         _dbus_verbose
6905
6906         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
6907         empty lines; fix the SAVE_LENGTH stuff to be
6908         START_LENGTH/END_LENGTH so it actually works; couple other
6909         bugfixes
6910
6911         * test/Makefile.am (dist-hook): add dist-hook for .message files
6912
6913         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
6914         can be constant or locked.
6915         (_dbus_string_free): allow freeing a const string as
6916         documented/intended
6917
6918         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
6919
6920         * dbus/dbus-test-main.c (main): take an argument which is the
6921         directory containing test data
6922
6923         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
6924         argument to this and load all the messages in test/data/
6925         checking that they can be loaded or not loaded as appropriate.
6926
6927 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
6928
6929         * bus/dispatch.c: (bus_dispatch_message_handler):
6930         Dispatch messages sent to services.
6931
6932         * bus/driver.c: (bus_driver_send_service_deleted),
6933         (bus_driver_send_service_created), (bus_driver_send_service_lost),
6934         (bus_driver_send_service_acquired):
6935         Add helper functions for sending service related messages.
6936
6937         (bus_driver_send_welcome_message):
6938         Send HELLO_REPLY instead of WELCOME.
6939
6940         (bus_driver_handle_list_services):
6941         Send LIST_SERVICES_REPLY instead of SERVICES.
6942
6943         (bus_driver_handle_own_service),
6944         (bus_driver_handle_service_exists):
6945         New message handlers.
6946
6947         (bus_driver_handle_message):
6948         Invoke new message handlers.
6949
6950         (bus_driver_remove_connection):
6951         Don't remove any services here since that's done automatically
6952         by bus_service_remove_owner now.
6953
6954         * bus/driver.h:
6955         New function signatures.
6956
6957         * bus/services.c: (bus_service_add_owner):
6958         Send ServiceAcquired message if we're the only primary owner.
6959
6960         (bus_service_remove_owner):
6961         Send ServiceAcquired/ServiceLost messages.
6962
6963         (bus_service_set_prohibit_replacement),
6964         (bus_service_get_prohibit_replacement):
6965         Functions for setting prohibit replacement.
6966
6967         (bus_service_has_owner):
6968         New function that checks if a connection is in the owner queue of
6969         a certain service.
6970
6971         * bus/services.h:
6972         Add new function signatures.
6973
6974         * dbus/dbus-list.c: (_dbus_list_test):
6975         Add tests for _dbus_list_remove_last and traversing the list backwards.
6976
6977         * dbus/dbus-list.h:
6978         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
6979         go any further, so return NULL then.
6980
6981         * dbus/dbus-protocol.h:
6982         Add new messages, service flags and service replies.
6983
6984 2003-01-26  Havoc Pennington  <hp@pobox.com>
6985
6986         * dbus/dbus-message-builder.c: implement, completely untested.
6987
6988         * test/data/*: add data to be used in testing.
6989         ".message" files are our simple loadable text format.
6990         ".message-raw" will be binary dumps of messages.
6991
6992         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
6993
6994 2003-01-26  Havoc Pennington  <hp@pobox.com>
6995
6996         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
6997
6998         * dbus/dbus-errors.c (dbus_result_to_string): add
6999         file errors
7000
7001         * dbus/dbus-message-builder.c: new file, will contain code to load
7002         up messages from files. Not implemented yet.
7003
7004 2003-01-26  Havoc Pennington  <hp@pobox.com>
7005
7006         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
7007         the sender by setting to NULL
7008
7009 2003-01-26  Havoc Pennington  <hp@pobox.com>
7010
7011         The unit tests pass, but otherwise untested.  If it breaks, the
7012         tests should have been better. ;-)
7013
7014         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
7015         the connection.
7016
7017         * dbus/dbus-message.c: redo everything so we maintain
7018         message->header as the only copy of the various fields.
7019         This avoids the possibility of out-of-memory in some cases,
7020         for example dbus_message_lock() can't run out of memory anymore,
7021         and avoids extra copying. Figured I may as well go ahead and do
7022         this since it was busted for dbus_message_lock to not return
7023         failure on OOM, and dbus_message_write_header was totally
7024         unchecked for OOM. Also fixed some random other bugs.
7025
7026         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
7027         that strings are nul-terminated. Also, end_pos can be equal
7028         to string length just not greater than, I think.
7029         (_dbus_marshal_set_int32): new function
7030         (_dbus_marshal_set_uint32): new function
7031         (_dbus_marshal_set_string): new function
7032
7033         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
7034         a warning, init timeout_list to NULL
7035         (dbus_connection_send_message): don't use uninitialized variable
7036         "serial"
7037
7038         * dbus/dbus-string.c (_dbus_string_replace_len): new function
7039
7040 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
7041
7042         * bus/driver.c: (bus_driver_handle_hello),
7043         (bus_driver_send_welcome_message):
7044         Plug leaks
7045
7046 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
7047
7048         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
7049         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7050         (dbus_connection_unref):
7051         * dbus/dbus-marshal.c: (_dbus_marshal_test):
7052         * dbus/dbus-message.c: (dbus_message_unref),
7053         Plug memory leaks.
7054
7055         (dbus_message_get_fields):
7056         Remove debugging printout.
7057
7058         (_dbus_message_loader_return_buffer):
7059         Don't store the header string.
7060
7061         (_dbus_message_test):
7062         Plug leaks.
7063
7064 2003-01-26  Richard Hult  <rhult@codefactory.se>
7065
7066         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
7067         the file descriptor list, since it can change under us.
7068
7069 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7070
7071         * glib/dbus-gmain.c: (dbus_connection_prepare),
7072         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
7073         (remove_watch), (dbus_connection_hookup_with_g_main):
7074         Rewrite the glib handling to use its own GSource instead of a
7075         GIOChannel so we can catch messages put in the queue while waiting
7076         for a reply.
7077
7078 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7079
7080         * bus/Makefile.am:
7081         * bus/connection.c: (connection_disconnect_handler),
7082         (connection_watch_callback), (bus_connection_setup):
7083         * bus/dispatch.c: (send_one_message),
7084         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
7085         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
7086         * bus/dispatch.h:
7087         * bus/driver.c: (bus_driver_send_service_deleted),
7088         (bus_driver_send_service_created), (bus_driver_handle_hello),
7089         (bus_driver_send_welcome_message),
7090         (bus_driver_handle_list_services), (bus_driver_remove_connection),
7091         (bus_driver_handle_message):
7092         * bus/driver.h:
7093         Refactor code, put the message dispatching in its own file. Use
7094         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
7095         is disconnected.
7096
7097 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7098
7099         * dbus/dbus-internals.h:
7100         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
7101
7102         * dbus/dbus-message.c: (dbus_message_get_sender):
7103         * dbus/dbus-message.h:
7104         Implement dbus_message_get_sender.
7105
7106         * dbus/dbus-protocol.h:
7107         Add message and service defines.
7108
7109 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7110
7111         * dbus/dbus-connection.c: (dbus_connection_send_message):
7112         * dbus/dbus-message-internal.h:
7113         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
7114         (dbus_message_write_header):
7115         Remove _dbus_messag_unlock and don't set the client serial on a
7116         message if one already exists.
7117
7118 2003-01-24  Havoc Pennington  <hp@pobox.com>
7119
7120         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
7121         list_pool
7122
7123         * bus/driver.c (bus_driver_handle_list_services): fix a leak
7124         on OOM
7125
7126 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7127
7128         * dbus/dbus-list.c: (alloc_link), (free_link):
7129         Use a memory pool for the links.
7130
7131 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7132
7133         * bus/connection.c: (bus_connection_foreach):
7134         * bus/connection.h:
7135         Add new bus_connection_foreach function.
7136
7137         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
7138         Add function that broadcasts a message to all clients.
7139
7140         (bus_driver_send_service_created), (bus_driver_handle_hello),
7141         (bus_driver_send_welcome_message),
7142         (bus_driver_handle_list_services), (bus_driver_message_handler):
7143         Implement functions that take care of listing services, and notifying
7144         clients when new services are created.
7145
7146         * bus/services.c: (bus_services_list):
7147         * bus/services.h:
7148         Add new function that returns an array of strings with the currently
7149         registered services.
7150
7151         * glib/dbus-glib.h:
7152         * glib/dbus-gmain.c:
7153         Update copyright year.
7154
7155 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7156
7157         * dbus/dbus-connection.c: (dbus_connection_send_message):
7158         Unlock the message in case it was sent earlier.
7159
7160         (dbus_connection_send_message_with_reply_and_block):
7161         Remove the reply message from the list.
7162
7163         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7164         Set array_len and new_pos correctly.
7165
7166         (_dbus_marshal_test):
7167         Remove debug output.
7168
7169         * dbus/dbus-message-internal.h:
7170         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
7171         New function that returns the reply serial.
7172
7173         (_dbus_message_unlock):
7174         New function that unlocks a message and resets its header.
7175
7176         (dbus_message_append_string_array),
7177         (dbus_message_get_fields_valist),
7178         (dbus_message_iter_get_field_type),
7179         (dbus_message_iter_get_string_array),
7180         (dbus_message_get_fields),
7181         (dbus_message_append_fields_valist):
7182         Handle string arrays.
7183
7184         (dbus_message_set_sender):
7185         Make this function public since the bus daemon needs it.
7186
7187         (decode_header_data):
7188         Set the reply serial to -1 initially.
7189
7190         * dbus/dbus-message.h:
7191         Add dbus_message_set_sender.
7192
7193 2003-01-24  Havoc Pennington  <hp@pobox.com>
7194
7195         * doc/dbus-specification.sgml: add some stuff
7196
7197 2003-01-22  Havoc Pennington  <hp@pobox.com>
7198
7199         * doc/dbus-specification.sgml: Start to document the protocol.
7200
7201 2003-01-22  Havoc Pennington  <hp@pobox.com>
7202
7203         * dbus/dbus-connection.c
7204         (dbus_connection_send_message_with_reply_and_block): add some @todo
7205
7206         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
7207
7208 2003-01-21  Havoc Pennington  <hp@pobox.com>
7209
7210         (patch untested because can't compile)
7211
7212         * bus/driver.c (create_unique_client_name): make this function
7213         never recycle client names. Also, caller should initialize
7214         the DBusString.
7215
7216         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
7217
7218 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
7219
7220         * dbus/dbus-marshal.c: (_dbus_marshal_double),
7221         (_dbus_marshal_int32), (_dbus_marshal_uint32),
7222         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
7223         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
7224         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7225         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7226         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
7227         * dbus/dbus-marshal.h:
7228         * dbus/dbus-protocol.h:
7229         Add support for marshalling and demarshalling integer, double
7230         and string arrays.
7231
7232 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
7233
7234         * bus/Makefile.am:
7235         Add driver.[ch]
7236
7237         * bus/connection.c: (connection_disconnect_handler):
7238         Remove the connection from the bus driver's list.
7239
7240         (connection_watch_callback): Dispatch messages.
7241
7242         (free_connection_data): Free connection name.
7243
7244         (bus_connection_setup): Add connection to the bus driver's list.
7245         (bus_connection_remove_owned_service):
7246         (bus_connection_set_name), (bus_connection_get_name):
7247         Add functions for setting and getting the connection's name.
7248
7249         * bus/connection.h:
7250         Add function headers.
7251
7252         * bus/driver.c: (create_unique_client_name),
7253         (bus_driver_handle_hello_message),
7254         (bus_driver_send_welcome_message), (bus_driver_message_handler),
7255         (bus_driver_add_connection), (bus_driver_remove_connection):
7256         * bus/driver.h:
7257         * bus/main.c:
7258         * bus/services.c: (bus_service_free):
7259         * bus/services.h:
7260         New file that handles communication and registreation with the bus
7261         itself.
7262
7263 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
7264
7265         * dbus/dbus-connection.c: (dbus_connection_send_message):
7266         Add a new client_serial parameter.
7267
7268         (dbus_connection_send_message_with_reply):
7269         Remove a @todo since we've implemented the blocking function.
7270
7271         (dbus_connection_send_message_with_reply_and_block):
7272         New function that sends a message and waits for a reply and
7273         then returns the reply.
7274
7275         * dbus/dbus-connection.h:
7276         Add new functions.
7277
7278         * dbus/dbus-errors.c: (dbus_result_to_string):
7279         * dbus/dbus-errors.h:
7280         Add new DBUS_RESULT.
7281
7282         * dbus/dbus-message-internal.h:
7283         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
7284         (_dbus_message_set_sender), (dbus_message_write_header),
7285         (dbus_message_new_reply), (decode_header_data),
7286         (_dbus_message_loader_return_buffer), (_dbus_message_test):
7287         * dbus/dbus-message.h:
7288         Add new functions that set the reply serial and sender.
7289         Also marshal and demarshal them correctly and add test.
7290
7291         * dbus/dbus-protocol.h:
7292         Add new DBUS_MESSAGE_TYPE_SENDER.
7293
7294         * glib/dbus-glib.h:
7295         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
7296         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
7297         (dbus_connection_hookup_with_g_main):
7298         * glib/test-dbus-glib.c: (main):
7299         Rewrite to use GIOChannel and remove the GSource crack.
7300
7301         * test/echo-client.c: (main):
7302         * test/watch.c: (check_messages):
7303         Update for changed APIs
7304
7305 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
7306
7307         * dbus/Makefile.am: Add dbus-timeout.[cħ]
7308
7309         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
7310         Create a DBusTimeoutList.
7311         (dbus_connection_set_timeout_functions): Add new function to
7312         set timeout callbacks
7313
7314         * dbus/dbus-connection.h: Add public DBusTimeout API.
7315
7316         * dbus/dbus-message.c: (dbus_message_get_service):
7317         * dbus/dbus-message.h:  New function.
7318
7319         * dbus/dbus-server.c: Fix small doc typo.
7320
7321         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
7322
7323 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
7324
7325         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
7326         of the string, just as long as specified.
7327
7328 2003-01-19  Havoc Pennington  <hp@pobox.com>
7329
7330         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
7331         new function
7332
7333         * dbus/dbus-server.c (dbus_server_set_max_connections)
7334         (dbus_server_get_max_connections, dbus_server_get_n_connections):
7335         keep track of current number of connections, and add API for
7336         setting a max (but haven't implemented enforcing the max yet)
7337
7338 2003-01-18  Havoc Pennington  <hp@pobox.com>
7339
7340         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
7341         reading/writing if read_watch != NULL or write_watch != NULL.
7342
7343         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
7344         the message loader code to actually load message->header and
7345         message->body into the newly-created message.
7346
7347         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
7348         in OOM case
7349
7350         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
7351         (dbus_connection_get_max_message_size)
7352         (dbus_connection_set_max_live_messages_size)
7353         (dbus_connection_get_max_live_messages_size): implement some
7354         resource limitation functions
7355
7356         * dbus/dbus-resources.c: new file implementing some of the
7357         resource limits stuff
7358
7359         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
7360         missing docs, add @todo to handle OOM etc.
7361
7362         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
7363         docs
7364
7365 2003-01-18  Havoc Pennington  <hp@pobox.com>
7366
7367         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
7368         connection if it hasn't been already.
7369
7370         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
7371         replace with DisconnectFunction.
7372
7373 2003-01-18  Havoc Pennington  <hp@pobox.com>
7374
7375         Building --disable-verbose-mode --disable-asserts --disable-tests
7376         cuts the library from 112K to 45K or so
7377
7378         * configure.in: check for varargs macro support,
7379         add --enable-verbose-mode, --enable-asserts.
7380
7381         * dbus/dbus-internals.h (_dbus_assert): support
7382         DBUS_DISABLE_ASSERT
7383         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
7384
7385 2003-01-18  Havoc Pennington  <hp@pobox.com>
7386
7387         * dbus/dbus-test.c: include config.h so that tests actually run
7388
7389         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
7390         so the failure mode when that assumption fails will be plenty
7391         obvious.
7392
7393 2003-01-18  Havoc Pennington  <hp@pobox.com>
7394
7395         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
7396
7397         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
7398         the distribution
7399
7400         * test/Makefile.am: don't use special variable "TESTS" for echo-*
7401         since we don't want to use those in make check
7402
7403 2003-01-15  Havoc Pennington  <hp@redhat.com>
7404
7405         Release 0.2
7406
7407         * NEWS: update
7408
7409 2003-01-15  Havoc Pennington  <hp@redhat.com>
7410
7411         * test/Makefile.am: fix so that test source code ends up in the
7412         distribution on make distcheck
7413
7414 2003-01-15  Havoc Pennington  <hp@redhat.com>
7415
7416         Release 0.1.
7417
7418         * NEWS: update
7419
7420 2003-01-15  Havoc Pennington  <hp@redhat.com>
7421
7422         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
7423         fix build when --disable-tests
7424
7425         * Makefile.am (EXTRA_DIST): put HACKING in here
7426
7427         * HACKING: document procedure for making a tarball release.
7428
7429 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
7430
7431         * bus/connection.c: (connection_error_handler),
7432         (bus_connection_setup):
7433         * bus/main.c: (main):
7434         Make sure that the DBusConnectionData struct is NULLed
7435         out to prevent a segfault.
7436
7437         * dbus/dbus-errors.c: (dbus_result_to_string):
7438         * dbus/dbus-errors.h:
7439         * dbus/dbus-message.c: (dbus_message_get_fields),
7440         (dbus_message_get_fields_valist), (_dbus_message_test):
7441         * dbus/dbus-message.h:
7442         Make dbus_message_get_fields return a result code so we can
7443         track invalid fields as well as oom.
7444
7445 2003-01-11  Havoc Pennington  <hp@pobox.com>
7446
7447         * configure.in: change --enable-test/--enable-ansi action-if-given
7448         to enable_foo=$enableval instead of enable_foo=yes
7449
7450 2003-01-08  Havoc Pennington  <hp@pobox.com>
7451
7452         * dbus/dbus-string.c (_dbus_string_align_length): new function
7453
7454         * dbus/dbus-test-main.c: move main() for test app here
7455         * dbus/dbus-test.c
7456         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
7457         symbol to run tests, because dbus-test isn't in the main
7458         library
7459
7460         Code review nitpicks.
7461
7462         * dbus/dbus-message.c (dbus_message_write_header): add newlines
7463         for people with narrow emacs ;-). Assert client_serial was filled
7464         in. Assert message->name != NULL.
7465         (dbus_message_append_fields): have "first_field_type" arg separate
7466         from va list, needed for C++ binding that also uses varargs IIRC
7467         and helps with type safety
7468         (dbus_message_new): add @todo about using DBusString to store
7469         service/name internally
7470         (dbus_message_new): don't leak ->service and ->name on OOM later
7471         in the function
7472         (dbus_message_unref): free the service name
7473         (dbus_message_get_fields): same change to varargs
7474         i.e. first_field_type
7475         (_dbus_message_loader_return_buffer): assert that the message data
7476         is aligned (if not it's a bug in our code). Put in verbose griping
7477         about why we set corrupted = TRUE.
7478         (decode_header_data): add FIXME that char* is evil.  Was going to
7479         add FIXME about evil locale-specific string.h strncmp, but just
7480         switched to wacky string-as-uint32 optimization. Move check for
7481         "no room for field name" above get_const_data_len() to avoid
7482         assertion failure in get_const_data_len if we have trailing 2
7483         bytes or the like. Check for service and name fields being
7484         provided twice. Don't leak service/name on error. Require field
7485         names to be aligned to 4 bytes.
7486
7487         * dbus/dbus-marshal.c: move byte swap stuff to header
7488         (_dbus_pack_int32): uscore-prefix
7489         (_dbus_unpack_int32): uscore-prefix
7490         (_dbus_unpack_uint32): export
7491         (_dbus_demarshal_string): add @todo complaining about use of
7492         memcpy()
7493         (_dbus_marshal_get_field_end_pos): add @todo about bad error
7494         handling allowing corrupt data to go unchecked
7495
7496 2003-01-08  Havoc Pennington  <hp@redhat.com>
7497
7498         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
7499         to the select() as needed for authentication. (should be using
7500         _dbus_poll() not select, but for another day)
7501
7502         * dbus/dbus.h: include dbus/dbus-protocol.h
7503
7504 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
7505
7506         * dbus/Makefile.am (dbusinclude_HEADERS): Install
7507         dbus-connection.h
7508
7509 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
7510
7511         * dbus/dbus-internals.c: (_dbus_type_to_string):
7512         New function that returns a string describing a type.
7513
7514         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
7515         * dbus/dbus-marshal.h:
7516         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
7517         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
7518         (dbus_message_iter_get_byte_array):
7519         * dbus/dbus-message.h:
7520         Add new convenience functions for appending and getting message fields.
7521         Also add demarshalling routines for byte arrays.
7522
7523 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
7524
7525         * dbus/dbus-connection-internal.h:
7526         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7527         (_dbus_connection_get_next_client_serial),
7528         (dbus_connection_send_message):
7529         * dbus/dbus-internals.h:
7530         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
7531         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
7532         (_dbus_marshal_uint32), (_dbus_demarshal_double),
7533         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
7534         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
7535         (_dbus_verbose_bytes), (_dbus_marshal_test):
7536         * dbus/dbus-marshal.h:
7537         * dbus/dbus-message-internal.h:
7538         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
7539         (dbus_message_write_header), (_dbus_message_lock),
7540         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
7541         (dbus_message_get_name), (dbus_message_append_int32),
7542         (dbus_message_append_uint32), (dbus_message_append_double),
7543         (dbus_message_append_string), (dbus_message_append_byte_array),
7544         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
7545         (dbus_message_iter_unref), (dbus_message_iter_has_next),
7546         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
7547         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
7548         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
7549         (decode_header_data), (_dbus_message_loader_return_buffer),
7550         (message_iter_test), (_dbus_message_test):
7551         * dbus/dbus-message.h:
7552         * dbus/dbus-protocol.h:
7553         * dbus/dbus-test.c: (main):
7554         * dbus/dbus-test.h:
7555         * glib/test-dbus-glib.c: (message_handler), (main):
7556         * test/echo-client.c: (main):
7557         * test/watch.c: (check_messages):
7558         Make messages sendable and receivable for real.
7559
7560 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
7561
7562         * dbus/dbus-marshal.c: (_dbus_marshal_double),
7563         (_dbus_marshal_string), (_dbus_marshal_byte_array):
7564         * dbus/dbus-message.c: (dbus_message_append_int32),
7565         (dbus_message_append_uint32), (dbus_message_append_double),
7566         (dbus_message_append_string), (dbus_message_append_byte_array):
7567         Handle OOM restoration.
7568
7569 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
7570
7571         * dbus/dbus-marshal.c: (_dbus_marshal_string),
7572         (_dbus_demarshal_string), (_dbus_marshal_test):
7573         * dbus/dbus-marshal.h:
7574         * dbus/dbus-message.c: (dbus_message_get_name),
7575         Document these functions.
7576
7577         (dbus_message_append_int32), (dbus_message_append_uint32),
7578         (dbus_message_append_double), (dbus_message_append_string),
7579         (dbus_message_append_byte_array):
7580         * dbus/dbus-message.h:
7581         Add functions for adding message fields of different types.
7582
7583         * dbus/dbus-protocol.h:
7584         Add the different types.
7585
7586 2003-01-05  Havoc Pennington  <hp@pobox.com>
7587
7588         * bus/connection.c: implement routines for handling connections,
7589         first thing is keeping a list of owned services on each connection
7590         and setting up watches etc.
7591
7592         * bus/services.c: implement a mapping from service names to lists
7593         of connections
7594
7595         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
7596
7597         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
7598         to use static mutexes for global data
7599
7600         * dbus/dbus-connection.c (dbus_connection_set_data): add new
7601         collection of functions to set/get application-specific data
7602         on the DBusConnection.
7603
7604 2003-01-04  Havoc Pennington  <hp@pobox.com>
7605
7606         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
7607         (_dbus_poll): new function
7608
7609         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
7610         copied from GLib
7611
7612         * bus/loop.c: initial code for the daemon main loop
7613
7614 2003-01-04  Havoc Pennington  <hp@pobox.com>
7615
7616         * test/watch.c (error_handler): make it safe if the error handler
7617         is called multiple times (if we s/error handler/disconnect
7618         handler/ we should just guarantee it's called only once)
7619
7620         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
7621         error handler on disconnect (it's quite possible we should
7622         just change the error handler to a "disconnect handler," I'm
7623         not sure we have any other meaningful errors)
7624
7625         * configure.in: check for getpwnam_r
7626
7627         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7628         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
7629         mechanism as in SASL spec, using socket credentials
7630
7631         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
7632         (_dbus_send_credentials_unix_socket): new function
7633
7634         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
7635         dbus_accept()
7636         (_dbus_write): only check errno if <0 returned
7637         (_dbus_write_two): ditto
7638
7639 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
7640
7641         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
7642         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
7643         (_dbus_marshal_test):
7644         * dbus/dbus-marshal.h:
7645         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
7646         to _dbus_marshal_utf8_string. Also fix some tests.
7647
7648 2002-12-28  Harri Porten  <porten@kde.org>
7649
7650         * configure.in: added check for C++ compiler and a very cheesy
7651         check for the Qt integration
7652
7653         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
7654
7655         * qt/Makefile.am: added
7656
7657         * qt/.cvsignore: added
7658
7659         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
7660         latter, added #ifdef QT_THREAD_SUPPORT guard.
7661
7662         * dbus/Makefile.am: added missing headers for make dist
7663
7664 2002-12-28  Kristian Rietveld  <kris@gtk.org>
7665
7666         * dbus/Makefile.am: fixup export-symbols-regex.
7667
7668 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
7669
7670         * acinclude.m4: Add this file and put the
7671         PKG_CHECK_MODULE macro in it.
7672
7673 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
7674
7675         * dbus/dbus-marshal.c: (_dbus_marshal_string),
7676         (_dbus_demarshal_double), (_dbus_demarshal_int32),
7677         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7678         (_dbus_marshal_test):
7679         Make the demarshalling routines align the pos argument.
7680         Add string marshalling tests and fix the obvious bugs
7681         discovered.
7682
7683 2002-12-26  Havoc Pennington  <hp@pobox.com>
7684
7685         * dbus/dbus-auth.c: fixes fixes fixes
7686
7687         * dbus/dbus-transport-unix.c: wire up support for
7688         encoding/decoding data on the wire
7689
7690         * dbus/dbus-auth.c (_dbus_auth_encode_data)
7691         (_dbus_auth_decode_data): append to target string
7692         instead of nuking it.
7693
7694 2002-12-26  Havoc Pennington  <hp@pobox.com>
7695
7696         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
7697         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
7698         doh
7699
7700         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
7701         avoid swap_bytes() overhead (ignoring possible assembly stuff for
7702         now). Main point is because I wanted unpack_uint32 to implement
7703         _dbus_verbose_bytes
7704         (_dbus_verbose_bytes): new function
7705
7706         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
7707
7708         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
7709         mechanism to handle a corrupt message stream
7710         (_dbus_message_loader_new): fix preallocation to only prealloc,
7711         not prelengthen
7712
7713         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
7714         (_dbus_string_test): enhance tests for copy/move and fix the
7715         functions
7716
7717         * dbus/dbus-transport-unix.c: Hold references in more places to
7718         avoid reentrancy problems
7719
7720         * dbus/dbus-transport.c: ditto
7721
7722         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
7723         leak reference count in no-message case
7724
7725         * test/watch.c (do_mainloop): handle adding/removing watches
7726         during iteration over the watches. Also, ref the connection/server
7727         stored on a watch, so we don't try to mangle a destroyed one.
7728
7729         * dbus/dbus-transport-unix.c (do_authentication): perform
7730         authentication
7731
7732         * dbus/dbus-auth.c (get_state): add a state
7733         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
7734         (_dbus_auth_get_unused_bytes): append the unused bytes
7735         to the passed in string, rather than prepend
7736
7737         * dbus/dbus-transport.c (_dbus_transport_init_base): create
7738         the auth conversation DBusAuth
7739
7740         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
7741         (_dbus_transport_new_for_domain_socket): when creating a
7742         transport, pass in whether it's a client-side or server-side
7743         transport so we know which DBusAuth to create
7744
7745 2002-12-03  Havoc Pennington  <hp@pobox.com>
7746
7747         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
7748         _after_ finalizing the derived members
7749         (unix_connection_set): unref watch if we fail to add it
7750
7751         * dbus/dbus-connection.c (dbus_connection_unref): delete the
7752         transport first, so that the connection owned by the
7753         transport will be valid as the transport finalizes.
7754
7755         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
7756         if necessary, and remove watches from the connection.
7757
7758         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
7759
7760 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
7761
7762         * dbus/dbus-marshal.c: (_dbus_marshal_string),
7763         (_dbus_demarshal_double), (_dbus_demarshal_int32),
7764         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7765         (_dbus_marshal_test):
7766         * dbus/dbus-marshal.h:
7767         Add string marshal functions and have the demarshal functions
7768         return the new position.
7769
7770 2002-12-25  Havoc Pennington  <hp@pobox.com>
7771
7772         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
7773         it is a simple protocol that just maps directly to SASL.
7774
7775         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
7776         initial implementation, not actually used yet.
7777
7778         * dbus/dbus-string.c (_dbus_string_find): new function
7779         (_dbus_string_equal): new function
7780         (_dbus_string_base64_encode): new function
7781         (_dbus_string_base64_decode): new function
7782
7783 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
7784
7785         * dbus/Makefile.am:
7786         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
7787         (_dbus_marshal_int32), (_dbus_marshal_uint32),
7788         (_dbus_demarshal_double), (_dbus_demarshal_int32),
7789         (_dbus_demarshal_uint32), (_dbus_marshal_test):
7790         * dbus/dbus-marshal.h:
7791         * dbus/dbus-protocol.h:
7792         * dbus/dbus-test.c: (main):
7793         * dbus/dbus-test.h:
7794         Add un-optimized marshalling/demarshalling routines.
7795
7796 2002-12-25  Harri Porten  <porten@kde.org>
7797
7798         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
7799
7800 2002-12-24  Zack Rusin  <zack@kde.org>
7801
7802         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
7803         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
7804         main loop stuff
7805
7806 2002-12-24  Havoc Pennington  <hp@pobox.com>
7807
7808         * glib/dbus-gthread.c: fix include
7809
7810         * glib/dbus-glib.h: rename DBusMessageHandler for now.
7811         I think glib API needs to change, though, as you don't
7812         want to use DBusMessageFunction, you want to use the
7813         DBusMessageHandler object. Probably
7814         dbus_connection_open_with_g_main_loop()
7815         and dbus_connection_setup_g_main_loop() or something like that
7816         (but think of better names...) that just create a connection
7817         that has watch/timeout functions etc. already set up.
7818
7819         * dbus/dbus-connection.c
7820         (dbus_connection_send_message_with_reply): new function just to
7821         show how the message handler helps us deal with replies.
7822
7823         * dbus/dbus-list.c (_dbus_list_remove_last): new function
7824
7825         * dbus/dbus-string.c (_dbus_string_test): free a string that
7826         wasn't
7827
7828         * dbus/dbus-hash.c: use memory pools for the hash entries
7829         (rebuild_table): be more paranoid about overflow, and
7830         shrink table when we can
7831         (_dbus_hash_test): reduce number of sprintfs and write
7832         valid C89. Add tests for case where we grow and then
7833         shrink the hash table.
7834
7835         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
7836
7837         * dbus/dbus-connection.c (dbus_connection_register_handler)
7838         (dbus_connection_unregister_handler): new functions
7839
7840         * dbus/dbus-message.c (dbus_message_get_name): new
7841
7842         * dbus/dbus-list.c: fix docs typo
7843
7844         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
7845         an object representing a handler for messages.
7846
7847 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
7848
7849         * glib/dbus-glib.h:
7850         * glib/dbus-gthread.c: (dbus_gthread_init):
7851         Don't use the gdbus prefix for public functions.
7852
7853 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
7854
7855         * Makefile.am:
7856         * configure.in:
7857         Add GLib checks and fixup .pc files
7858
7859         * glib/Makefile.am:
7860         * glib/dbus-glib.h:
7861         * glib/dbus-gmain.c: (gdbus_connection_prepare),
7862         (gdbus_connection_check), (gdbus_connection_dispatch),
7863         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
7864         (dbus_connection_gsource_new):
7865         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
7866         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
7867         * glib/test-dbus-glib.c: (message_handler), (main):
7868         Add GLib support.
7869
7870 2002-12-15  Harri Porten  <porten@kde.org>
7871
7872         * autogen.sh: check for libtoolize before attempting to use it
7873
7874         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
7875         struct.
7876
7877         * .cvsignore: ignore more stamp files
7878
7879         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
7880
7881         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
7882         without make install.
7883
7884 2002-12-15  Havoc Pennington  <hp@pobox.com>
7885
7886         * dbus/dbus-threads.c: add thread stubs that a higher library
7887         layer can fill in. e.g. the GLib wrapper might fill them in with
7888         GThread stuff. We still need to use this thread API to
7889         thread-safe-ize the library.
7890
7891 2002-12-12  Havoc Pennington  <hp@pobox.com>
7892
7893         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
7894         below new interfaces and include fewer system headers.
7895
7896         * dbus/dbus-sysdeps.c (_dbus_read): new function
7897         (_dbus_write): new function
7898         (_dbus_write_two): new function
7899         (_dbus_connect_unix_socket): new function
7900         (_dbus_listen_unix_socket): new function
7901
7902         * dbus/dbus-message-internal.h: change interfaces to use
7903         DBusString
7904
7905 2002-12-11  Havoc Pennington  <hp@pobox.com>
7906
7907         * dbus/dbus-types.h: add dbus_unichar
7908
7909         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
7910
7911         * dbus/dbus-connection.c (dbus_connection_send_message): return
7912         TRUE on success
7913
7914         * dbus/dbus-transport.c: include dbus-watch.h
7915
7916         * dbus/dbus-connection.c: include dbus-message-internal.h
7917
7918         * HACKING: add file with coding guidelines stuff.
7919
7920         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
7921         handling here, for security purposes (as in vsftpd). Not actually
7922         using this class yet.
7923
7924         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
7925         system/libc usage here, as in vsftpd, for ease of auditing (and
7926         should also simplify portability). Haven't actually moved all the
7927         system/libc usage into here yet.
7928
7929 2002-11-25  Havoc Pennington  <hp@pobox.com>
7930
7931         * dbus/dbus-internals.c (_dbus_verbose): fix to not
7932         always print the first verbose message.
7933
7934 2002-11-24  Havoc Pennington  <hp@pobox.com>
7935
7936         * test/echo-client.c, test/echo-server.c: cheesy test
7937         clients.
7938
7939         * configure.in (AC_CHECK_FUNCS): check for writev
7940
7941         * dbus/dbus-message.c (_dbus_message_get_network_data): new
7942         function
7943
7944         * dbus/dbus-list.c (_dbus_list_foreach): new function
7945
7946         * dbus/dbus-internals.c (_dbus_verbose): new function
7947
7948         * dbus/dbus-server.c, dbus/dbus-server.h: public object
7949         representing a server that listens for connections.
7950
7951         * dbus/.cvsignore: create
7952
7953         * dbus/dbus-errors.h, dbus/dbus-errors.c:
7954         public API for reporting errors
7955
7956         * dbus/dbus-connection.h, dbus/dbus-connection.c:
7957         public object representing a connection that
7958         sends/receives messages. (Same object used for
7959         both client and server.)
7960
7961         * dbus/dbus-transport.h, dbus/dbus-transport.c:
7962         Basic abstraction for different kinds of stream
7963         that we might read/write messages from.
7964
7965 2002-11-23  Havoc Pennington  <hp@pobox.com>
7966
7967         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
7968         _DBUS_INT_MAX
7969
7970         * dbus/dbus-test.c (main): add list test, and include
7971         dbus-test.h as intended
7972
7973         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
7974         (_dbus_hash_table_remove_int): return value indicates
7975         whether the entry existed to remove
7976
7977         * dbus/dbus-list.c: add linked list utility class,
7978         with docs and tests
7979
7980         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
7981         array sometimes.
7982
7983 2002-11-23  Havoc Pennington  <hp@pobox.com>
7984
7985         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
7986         DBUS_END_DECLS to nothing, that should fix this once and for all
7987
7988         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
7989
7990         * dbus/dbus-message.c, dbus/dbus-hash.c:
7991         add some missing @brief
7992
7993 2002-11-23  Havoc Pennington  <hp@pobox.com>
7994
7995         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
7996         to avoid confusing Doxygen
7997
7998         * dbus/dbus-hash.c: @} not }@
7999
8000         * dbus/dbus-message.c (struct DBusMessage): split out
8001         internals docs
8002
8003 2002-11-23  Havoc Pennington  <hp@pobox.com>
8004
8005         * configure.in: pile on more warning flags if using gcc
8006
8007         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
8008         to document static functions
8009
8010         * configure.in: add summary to end of configure so it
8011         looks nice and attractive
8012
8013         * dbus/dbus-hash.c: finish implementation and write unit
8014         tests and docs
8015
8016         * configure.in: add --enable-tests to enable unit tests
8017
8018         * dbus/dbus-test.c: test program to run unit tests
8019         for all files in dbus/*, initially runs a test for
8020         dbus-hash.c
8021
8022         * dbus/dbus-internals.h: file to hold some internal utility stuff
8023
8024 2002-11-22  Havoc Pennington  <hp@redhat.com>
8025
8026         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
8027         "ported" away from Tcl
8028
8029         * dbus/dbus-types.h: header for types such as dbus_bool_t
8030
8031 2002-11-22  Havoc Pennington  <hp@redhat.com>
8032
8033         * dbus/dbus.h: fixups for doc warnings
8034
8035         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
8036         macros
8037         (QUIET): make it quiet so we can see warnings
8038
8039         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
8040
8041 2002-11-22  Havoc Pennington  <hp@redhat.com>
8042
8043         * Makefile.am: include "Doxyfile" target in all-local
8044
8045         * configure.in: generate the Doxyfile
8046
8047         * Doxyfile.in: move Doxyfile here, so we can use
8048         configure to generate a Doxyfile with the right
8049         version number etc.
8050
8051 2002-11-22  Havoc Pennington  <hp@redhat.com>
8052
8053         * dbus/dbus-message.c: move inline docs into .c file
8054
8055         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
8056         so all docs are under doc/
8057         (MAN_EXTENSION): generate man pages. Use extension
8058         ".3dbus" which matches ".3qt" on my system,
8059         I guess this is OK, I don't know really.
8060         (FILE_PATTERNS): look for .c files not .h, makes sense
8061         for plain C I think
8062
8063 2002-11-22  Havoc Pennington  <hp@pobox.com>
8064
8065         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
8066         because any app can be a server, and any app can be a client,
8067         the bus is a special kind of server.
8068
8069 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
8070
8071         * Doxyfile : adding. Still needs Makefile rules to be generated
8072         automatically (just run "doxygen" in the toplevel dir for now to
8073         generate docs)
8074
8075         * dbus/dbus-message.h : Adding sample docs (javadoc since
8076         resembles gtk-doc a little more)
8077
8078         * dbus/dbus.h : Adding sample docs
8079
8080 2002-11-21  Havoc Pennington  <hp@redhat.com>
8081
8082         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
8083         so we can allow ourselves to include files directly,
8084         instead of having to use dbus.h
8085
8086         * dbus/dbus.h: fill in
8087
8088         * dbus/dbus-message.h: sketch out a sample header file.
8089         Include griping if you include it directly instead of
8090         via dbus.h
8091
8092         * dbus/dbus-macros.h: new file with macros for extern "C",
8093         TRUE/FALSE, NULL, etc.
8094
8095         * doc/file-boilerplate.c: put include guards in here
8096
8097 2002-11-21  Havoc Pennington  <hp@redhat.com>
8098
8099         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
8100
8101         * COPYING: include the GPL as well, and license code
8102         under both AFL and GPL.
8103
8104 2002-11-21  Havoc Pennington  <hp@redhat.com>
8105
8106         * acconfig.h: get rid of this
8107
8108         * autogen.sh (run_configure): add --no-configure option
8109
8110         * configure.in: remove AC_ARG_PROGRAM to make
8111         autoconf complain less. add AC_PREREQ.
8112         add AC_DEFINE third arg.
8113
8114 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
8115
8116         * doc/Makefile.am:
8117         Fix references so we can distcheck.
8118
8119 2002-11-21  Havoc Pennington  <hp@redhat.com>
8120
8121         * Initial module creation
8122