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