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