Original DBUS bindings for TQt
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

13662 lines
458KB

  1. 2006-06-14 Ross Burton <ross@openedhand.com>
  2. * glib/dbus-gobject.c:
  3. Free a leaking GArray (surely not!) in dbus_g_method_return.
  4. 2006-06-14 Ross Burton <ross@openedhand.com>
  5. * tools/Makefile.am:
  6. * tools/dbus-monitor.c:
  7. Don't use the GLib bindings in dbus-monitor (patch from Ralf
  8. Habacker).
  9. 2006-06-14 Ross Burton <ross@openedhand.com>
  10. * tools/dbus-print-message.c:
  11. Also print the object path when outputting Q_SIGNALS or method calls.
  12. 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
  13. * qt/src/Makefile.am: install the qdbus.h header.
  14. This allows people to actually use the installed code.
  15. 2006-06-12 Ross Burton <ross@openedhand.com>
  16. * glib/dbus-gproxy.c:
  17. Don't leak a GArray when firing Q_SIGNALS (thank Rob Taylor for review).
  18. 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
  19. * Released 0.62
  20. 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
  21. * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
  22. break pedantic builds. Closes bug 6043 (patch approved by
  23. Havoc back in February).
  24. 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
  25. * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
  26. that took a QDBusMessage parameter.
  27. * qt/src/qdbusbus.h: Add a default flag for RequestName.
  28. * qt/tools/dbus.cpp: Don't use automatic call because we might
  29. be calling an async method: request a reply.
  30. 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
  31. * test/qt/*: Update the testcases, including testing the new
  32. functionality of sending null QByteArray and QString over the
  33. bus. Add new headertest test and restore the old
  34. qdbusxmlparser test.
  35. 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
  36. * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
  37. * qt/tools/dbusidl2cpp.cpp: Add missing newline.
  38. * qt/examples/Makefile.am:
  39. * qt/examples/chat.h: Use UI-generated files with the ui_*.h
  40. form.
  41. * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
  42. QByteArray() (nulls) over the bus.
  43. * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
  44. the one that has the signature suffix stripped.
  45. * qt/src/qdbusreply.h: Make some methods const.
  46. 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
  47. Patch from Timo Hoenig <thoenig@suse.de>.
  48. * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
  49. required during build to EXTRA_DIST.
  50. * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
  51. * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
  52. * configure.in: Fix "make dist", take care that the Makefile for
  53. qt/dbus is being generated.
  54. 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
  55. * bus/bus.c: Fix eavesdropping on method calls
  56. 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
  57. * configure.in:
  58. * dbus/dbus-userdb-util.c:
  59. Add Solaris console owner patch from Artem Kachitchkine
  60. 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
  61. * qt/Makfile.am:
  62. * qt/src/Makefile.am: Fix the EXTRA_DIST after the
  63. reorganisation. Thanks to Timo Hoenig for pointing this out.
  64. 2006-06-06 Robert McQueen <robot101@debian.org>
  65. * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
  66. call to dbus_g_type_get_struct.
  67. 2006-06-06 Robert McQueen <robot101@debian.org>
  68. * glib/dbus-gvalue-utils.c: Fix the failing test where static string
  69. pointers were put into a GPtrArray-based specialised collection, and
  70. then freed along with the array. GValues which you add into
  71. collections or maps which have the NOCOPY flag set are assumed to not
  72. belong to the caller, so rather than the existing pointer-stealing
  73. semantics, they are copied instead. Given that the main consumers of
  74. this abstraction are the bindings themselves, I don't think this is
  75. too bad, but others should watch their choice of take vs set_static.
  76. 2006-06-06 Robert McQueen <robot101@debian.org>
  77. * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
  78. of g_slist_prepend not being used. Fixed copying of slist-based
  79. specialised collections, then wrote a test case and found that it was
  80. all broken. Went on to fix iterating and appending too. Good thing
  81. nobody uses this code yet.
  82. 2006-06-06 Robert McQueen <robot101@debian.org>
  83. * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
  84. the iterators use gvalue_take_ptrarray_value (the GValues themselves
  85. are discarded without unsetting, so it makes no difference whether
  86. we take or set_static). Remove cases for G_TYPE_POINTER because
  87. there really is nothing useful we can do with them in our
  88. specialised types - we *need* boxed copy/free functions at the very
  89. least.
  90. 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
  91. * qt/dbus: Add directory. I had forgotten to add this
  92. yesterday after the move...
  93. * qt/examples/Makefile.am:
  94. * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
  95. * qt/tools/Makefile.am:
  96. * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
  97. Added feature to get and set properties.
  98. Added validation of service, object path and interface names.
  99. * qt/tools/dbusidl2cpp.cpp: Two new features:
  100. 1) Allow specifying both the header and the source file names,
  101. by separating them with a colon.
  102. 2) Don't write an interface output if the -p switch wasn't
  103. given, but the -a was.
  104. * qt/src/*: Fix usage of Iterators and ConstIterators.
  105. Fix shadowing of variables by other variables (-Wshadow).
  106. Fix keyword-cleanliness in headers.
  107. Fix ASCII-cast (QLatin1String, QLatin1Char).
  108. Fix validation of member names.
  109. Add extra checking of introspection data during XML parsing.
  110. Various bug fixes.
  111. 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
  112. * dbus/Makefile.am:
  113. * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
  114. qt/dbus/qdbus.h now.
  115. 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
  116. * configure.in: Make --disable-qt actually do
  117. something. Patch inspired by Zack Rusin.
  118. 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
  119. * qt/: Update to Subversion r548032.
  120. This includes a big reorganisation of the files inside the
  121. subdir.
  122. 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
  123. * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
  124. clear:
  125. "Failed to connect to socket <host>:<port> <error>" instead of
  126. "Failed to connect to socket <host>: <error>:<port>"
  127. * dbus/dbus-transport-unix.c: Fix crash when no host option is given
  128. for a tcp transport.
  129. 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
  130. * qt/*: Update the QtDBus bindings up to revision 546310 in
  131. Subversion.
  132. This adds the dbuscpp2xml tool, that parses a C++ header and
  133. outputs a D-BUS Introspection XML.
  134. 2006-05-21 Havoc Pennington <hp@redhat.com>
  135. * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
  136. is not NULL when it shouldn't be. Also a couple of possible fixes
  137. for #4637 though I don't understand why the bug happens, to be
  138. honest... also the object constructor has an assert name != NULL
  139. and the name is only currently NULL for peer-to-peer proxies that
  140. I don't think anyone uses? So it should be asserting.
  141. Anyway, for now at least see if we get an earlier assertion failure.
  142. * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
  143. apparently broken code to be sure the tests fail and someone
  144. will fix them...
  145. 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
  146. * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
  147. and arrays when they had a single element: has_next returns
  148. false, even before you read the element. So, instead, check
  149. the array length.
  150. 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
  151. * qt/qdbusmessage.cpp:
  152. * qt/qdbustypehelper_p.h:
  153. * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
  154. the list is a const-reference
  155. 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
  156. * Adding old doc patch that never got applied
  157. * dbus/bus.c (dbus_bus_add_match): Add documentation
  158. * doc/dbus-specification.xml: Add documentation for the match rules
  159. and the AddMatch and RemoveMatch methods
  160. 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
  161. * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
  162. call (r535506)
  163. * qt/dbusidl2cpp.cpp:
  164. * qt/qdbusabstractadaptor.cpp:
  165. * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
  166. sibling of the QDBusAbstractAdaptor objects instead of the
  167. parent. (r535848)
  168. * qt/dbusidl2cpp.cpp:
  169. * qt/qdbusabstractinterface.cpp:
  170. * qt/qdbusabstractinterface.h:
  171. * qt/qdbusabstractinterface_p.h:
  172. * qt/qdbusinterface.cpp: Make properties in interfaces
  173. actually work. The code that was generated would not compile,
  174. due to moc calls to functions that did not exist. They now
  175. shall. (r536571)
  176. 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
  177. * Makefile.am:
  178. * configure.in:
  179. * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
  180. Thanks to Brad Hards for providing the patch
  181. 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
  182. * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
  183. call. (r535506)
  184. 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
  185. * qt/examples/dbus.cpp: Enhance error messages and use
  186. QDBusInterfacePtr.
  187. 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
  188. * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
  189. and disable the copy operators. (r533772, r534746)
  190. * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
  191. * qt/qdbusabstractinterface.cpp:
  192. * qt/qdbusabstractinterface.h: Change the default call mode to
  193. not use the event loop. Add convenience call() methods that
  194. take a CallMode parameter. (r534042)
  195. * qt/qdbusconnection.h: Change the default call mode to not
  196. use the event loop. (r534042)
  197. * qt/qdbusinterface.cpp:
  198. * qt/qdbusinterface.h: Add a method to tell us if the
  199. interface is valid (since we don't return a null pointer
  200. anymore) (r534099)
  201. * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
  202. (r534101)
  203. * qt/qdbusinternalfilters.cpp: Decouple the introspection
  204. function in two so taht we get the chance to introspect
  205. without having a QDBusMessage (r534102)
  206. * qt/qdbusbus.h:
  207. * qt/qdbusconnection.cpp:
  208. * qt/qdbusconnection_p.h:
  209. * qt/qdbusintegrator.cpp: Keep a list of our own names to
  210. avoid a round-trip to the server when attempting to introspect
  211. one of our own objects. Also make sure the filter functions
  212. match the empty interface as well. (r534108)
  213. Don't keep the connection names. Instead, trust the unique
  214. connection name (r534111)
  215. Remove event loop usage (r534112)
  216. 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
  217. * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
  218. Brad Hards.
  219. 2006-04-28 Robert McQueen <robot101@debian.org>
  220. * glib/dbus-gproxy.c: Fix properties so that they can be given in
  221. any order, making it easier for people who inherit from this
  222. object.
  223. 2006-04-28 Robert McQueen <robot101@debian.org>
  224. * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
  225. of memory from within pointer arrays and lists. Fixes bug #6300.
  226. 2006-04-28 Robert McQueen <robot101@debian.org>
  227. * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
  228. generating struct signatures. Fixes bug #6083.
  229. 2006-04-28 Robert McQueen <robot101@debian.org>
  230. * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
  231. to qdbusconnection_p.moc.
  232. 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
  233. * README, INSTALL: Doc fixes
  234. Patch from Brad Hards <bradh at frogmouth.net>
  235. 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
  236. * qt/examples/dbus.cpp: Use the new merged-interface mode for
  237. the dynamic meta object. No need to guess which interface to
  238. call.
  239. 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
  240. * qt/qdbusconnection_p.h:
  241. * qt/qdbusmetaobject.cpp:
  242. * qt/qdbusmetaobject_p.h:
  243. * qt/qdbusintegrator.cpp: Use the new merged-interface mode
  244. for the dynamic meta object. No need to guess which
  245. interface to call.
  246. * qt/qdbusabstractinterface_p.h:
  247. * qt/qdbusconnection.cpp:
  248. * qt/qdbusintegrator.cpp:
  249. * qt/qdbusinterface.cpp:
  250. * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
  251. Add a QDBusRef that looks and behaves like DCOPRef.
  252. 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
  253. * dbus/dbus-connection.c: Interfaces are optional in method
  254. calls, so don't give up if the interface parameter is NULL.
  255. Patch reviewed by Havoc Pennington.
  256. 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
  257. * qt/qdbusreply.h: Add default constructor and operator=
  258. (r532625)
  259. * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
  260. in public headers (r532952)
  261. * qt/qdbusabstractinterface.cpp:
  262. * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
  263. make it the default (r532951)
  264. 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
  265. * dbus/dbus-connection.c: Fix asserts
  266. Patch from Tim Moloney <t.moloney at verizon.net>
  267. 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
  268. * mono/Connection.cs, mono/Message.cs: Check Target type
  269. Patch from Aaron Bockover (abockover at novell.com)
  270. 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
  271. * INSTALL: fine-tune the requirements for the Qt4 binding.
  272. 2006-04-16 Daniel P. Berrange <dan@berrange.com>
  273. * tools/dbus-print-message.c: Added support for printing of all
  274. remaining data types. Fixed logic for indentation of compound
  275. data types.
  276. 2006-04-15 Daniel P. Berrange <dan@berrange.com>
  277. * INSTALL: fill out content of file providing DBus specific
  278. build installations, followed by generic Auto* INSTALL file
  279. content
  280. 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
  281. * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
  282. Patch by Stefan Eilers. (r529537)
  283. 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
  284. * qt/qdbusinternalfilters.cpp: Don't show the parent's
  285. contents (r528208)
  286. 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
  287. * qt/Makefile.am: fix the dependency for
  288. qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
  289. not in qdbusconnection.cpp.
  290. Thanks to Jakub Stachowski <stachowski@hypair.net> for
  291. spotting this.
  292. 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
  293. * qt/examples/listnames.cpp:
  294. * qt/examples/Makefile.am: Three ways to list the names on the
  295. bus.
  296. 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
  297. * test/qt/tst_hal.cpp: Remove the waiting, since it's not
  298. needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
  299. 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
  300. Merge from Subversion:
  301. * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
  302. something that exists (r526315)
  303. * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
  304. Q_SLOTS/Q_SIGNALS (r526316)
  305. * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
  306. also return an unknown-method error if the parameters don't
  307. match for org.freedesktop.DBus.Properties. (r526842)
  308. * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
  309. * qt/qdbusintegrator.cpp: Restore the proper order of
  310. delivery: don't make method returns be delivered on priority
  311. (r528150)
  312. 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
  313. * configure.in qt/Makefile.am: add qt/examples
  314. * qt/examples: Add QtDBus example programs:
  315. - hello: Hello, World
  316. - ping: Simple method-calling program
  317. - pong: Simple object-exporting program (not using adaptors)
  318. - complexping: Interactive method-calling program
  319. (also gets and sets properties).
  320. - complexpong: Sample program exporting methods, Q_SIGNALS and
  321. properties, using adaptors.
  322. - dbus: Simple implementation of a generic method-calling
  323. program, similar to 'dbus-send', but with semantics
  324. similar to 'dcop'.
  325. - chat: Simplistic chat program, implemented using Q_SIGNALS
  326. and the system bus. Looks like IRC.
  327. 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
  328. * configure.in: Detect QtGui (necessary for one of the
  329. example programs). Note: this increases the minimum required
  330. version of Qt to 4.1.3.
  331. 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
  332. * test/qt/*: Sync with KDE Subversion revision 523647.
  333. Update the testcases to the new API. Remove testcases for
  334. classes that are no longer public or have been removed.
  335. 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
  336. * qt/*:
  337. * dbus/qdbus.h: Sync with KDE Subversion revision
  338. 523647. Hopefully, this will be the last of the
  339. source-incompatible changes. Documentation has been improved;
  340. support for QList<basic-types> has been added; QDBusObject is
  341. gone; QDBus(Abstract)Interface is now a QObject with
  342. auto-generated meta-object; QDBusIntrospection is marked
  343. private, since QMetaObject can be used now; lots of bugfixes.
  344. 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
  345. Patch from Milosz Derezynski <internalerror at gmail.com>
  346. * configure.in:
  347. Output the service directory in the configure summary
  348. * dbus-1.pc.in:
  349. Add session_bus_services_dir
  350. 2006-03-10 Ross Burton <ross@openedhand.com>
  351. * tools/dbus-print-message.c:
  352. Add support for object paths and signatures.
  353. 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
  354. * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
  355. config reload.
  356. * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
  357. information caches
  358. * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
  359. * dbus/dbus-hash.h: Add function to remove all entries from a hash table
  360. * dbus/dbus-userdb.c: (_dbus_user_database_flush):
  361. * dbus/dbus-userdb.h: Add function to flush all user/group information
  362. caches.
  363. 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
  364. * qt/dbusidl2cpp.cpp:
  365. * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
  366. for dcopidl2cpp, found in the KDE installations (or the more
  367. modern kalyptus): generate Qt4 C++ code for the input XML
  368. introspection. Currently no IDL parsing.
  369. 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
  370. * test/qt/*: Update the self-tests.
  371. 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
  372. * qt/*:
  373. * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
  374. represents the first feature-complete version of the Qt4
  375. bindings since I took ove maintainership.
  376. 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
  377. * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
  378. dir. This is C++, so we can't use the DBus ones.
  379. 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
  380. * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
  381. (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
  382. 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
  383. * dbus/dbus-connection.c:
  384. (_dbus_connection_block_pending_call):
  385. Check to see if our data has already been read off the connection
  386. by another blocking pending call before we block in poll.
  387. (check_for_reply_and_update_dispatch_unlocked):
  388. Code taken from _dbus_connection_block_pending_call - checks for
  389. an already read reply and updates the dispatch if there is one.
  390. * test/name-test/test-pending-call-dispatch.c:
  391. New test for making sure we don't get stuck polling a
  392. dbus connection which has no data on the socket when
  393. blocking out of order on two or more pending calls.
  394. 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
  395. * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
  396. make/automake don't detect that we're talking about the same
  397. .lo file if I specify the full path to the source files.
  398. 2006-02-26 Havoc Pennington <hp@redhat.com>
  399. * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
  400. * dbus/dbus-bus.c (internal_bus_get): in the error message if the
  401. session bus variable is unset, suggest "man dbus-launch" and "man
  402. dbus-daemon" to figure out how to fix the problem
  403. 2006-02-25 Havoc Pennington <hp@redhat.com>
  404. * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
  405. should make this thing use the new glib options parser
  406. 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
  407. * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
  408. .lo files taking moc sources.
  409. 2006-02-25 Havoc Pennington <hp@redhat.com>
  410. * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
  411. and install it as a public header
  412. 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
  413. * Released 0.61
  414. 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
  415. * proxies.py: Fix the callchain
  416. 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
  417. * patch from Sjoerd Simons <sjoerd at debian.org>:
  418. * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
  419. dbus/dbus-sysdeps.c
  420. * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
  421. call _dbus_group_info_free_allocated which causes infinite loop,
  422. correctly call _dbus_group_info_free
  423. 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
  424. * qt/qdbusinterface_p.h:
  425. * qt/qdbusinterface.cpp: Use the standard
  426. org.freedesktop.DBus.Method.NoReply annotation for the "async"
  427. calls instead of creating one for us.
  428. * qt/qdbusconnection_p.h:
  429. * qt/qdbusintegrator.cpp: Remove debugging code.
  430. * qt/qdbusintegrator.cpp:
  431. * qt/qdbusmessage.cpp:
  432. * qt/qdbusmessage_p.h:
  433. * qt/qdbusmessage.h: Change the behaviour of automatic
  434. reply-sending: now a reply is always sent, unless the caller
  435. didn't request one or if the user slot has already sent one.
  436. 2006-02-16 Robert McQueen <robot101@debian.org>
  437. * configure.in: Patch from Debian packages by Sjoerd Simons
  438. <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
  439. arguments so it's possible to build both bindings in the
  440. same tree.
  441. * qt/Makefile.am: Fix truncated value so that make dist works.
  442. 2006-02-16 Robert McQueen <robot101@debian.org>
  443. * acinclude.m4, configure.in: Patch from Brad Hards
  444. <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
  445. improving quoting, re-ordering a few checks, and a few other
  446. aesthetic tidy-ups.
  447. 2006-02-16 Robert McQueen <robot101@debian.org>
  448. * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
  449. Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
  450. assertion that the next element to read from the iter is fixed in
  451. size. This is not the case when you are at the end of the iter,
  452. because the next element type is INVALID.
  453. * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
  454. a bogus assert which means that you may not initialise a 0-length
  455. string unless you provide a non-NULL pointer. This prevented
  456. you from marshalling messages containing zero-length arrays in
  457. some cases.
  458. * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
  459. from Rob to correct bogus asserts when trying to demarshal an
  460. array and get_fixed_array got you 0 elements. Append nothing to
  461. the GArray in this case.
  462. * test/glib/test-dbus-glib.c: Add a test case for round-tripping
  463. an empty array via the glib bindings. Without all of the above
  464. patches, this new test fails.
  465. 2006-02-16 Robert McQueen <robot101@debian.org>
  466. * glib/dbus-gmain.c: Make the previous commit compile.
  467. * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
  468. Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
  469. specify sender_keyword="foo", path_keyword="bar" when adding
  470. a signal listener, so that you can bind to Q_SIGNALS generically
  471. but still do something useful in your callback.
  472. * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
  473. chars so that they're not cast to chars and made negative. Thanks
  474. to Jakub Stachowski for reporting this and testing the fix.
  475. 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
  476. * dbus/dbus-glib.h:
  477. * glib/dbus-gmain.h:
  478. (dbus_g_connection_open): new method for openning
  479. a connection to an arbitrary address in the glib bindings
  480. * ChangeLog: checkin last entry which doesn't seem to be commited
  481. 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
  482. * tools/dbus-launch.c: Fixed sh syntax output
  483. 2006-02-13 Robert McQueen <robot101@debian.org>
  484. * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
  485. glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
  486. glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
  487. glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
  488. Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
  489. missing piece of the glib bindings jigsaw puzzle. This modifies
  490. the existing specialised types to have N type parameters (rather
  491. than the current 1 or 2 for arrays and dictionaries respectively).
  492. You can then use this to get a glib type to represent any arbitrary
  493. D-Bus struct type using dbus_g_type_get_struct. The only
  494. implementation of these types is with GValueArrays as before,
  495. but it's now possible to store these in arrays, emit them in
  496. Q_SIGNALS, etc.
  497. 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
  498. * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
  499. deal with nested arrays (Bug #5823) Patch by Thiago Macieira
  500. <thiago.macieira at trolltech.com>
  501. 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
  502. * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
  503. (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
  504. 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
  505. * bus/connection.c (bus_connections_expect_reply): Make
  506. pending reply limit not common to all connections (Bug #5416)
  507. Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
  508. 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
  509. * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
  510. 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
  511. * gcj/Makefile.am: point to correct jar command (Bug #4529)
  512. patch from Doug Goldstein <cardoe at gentoo.org>
  513. 2006-02-09 Joe Shaw <joeshaw@novell.com>
  514. * mono/Arguments.cs: Fix a magic number in the mono bindings
  515. that doesn't work on 64 bit arches. Patch from Peter Johanson.
  516. 2006-01-27 Robert McQueen <robot101@debian.org>
  517. * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
  518. patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
  519. when generating the client-side methods, instead of overloading
  520. CSymbol which broke everything horribly. My apologies.
  521. 2006-01-27 Robert McQueen <robot101@debian.org>
  522. * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
  523. by me and Rob Taylor to add a simple_free function to D-Bus map
  524. and collection types, which allows those types which can be freed
  525. with a GDestroyNotify (such as GHashTables and GArrays, but not
  526. GPtrArrays) to be stored as the values in hashtables.
  527. * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
  528. Patch by Rob Taylor to add nested dicts to the glib tests to check
  529. the above code works, and appears not to leak when called repeatedly.
  530. 2006-01-27 Robert McQueen <robot101@debian.org>
  531. * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
  532. to free a D-Bus allocated string with dbus_free () instead of
  533. g_free ().
  534. 2006-01-27 Iain Holmes <iain@openedhand.com>
  535. * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
  536. method from being called multiple times.
  537. 2006-01-19 Robert McQueen <robot101@debian.org>
  538. * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
  539. <rob.taylor@collabora.co.uk> to add support for generating bindings
  540. to arrays that are represented as GPtrArrays rather than GArrays (ie
  541. size-variable things, such as strings, objects, structs, etc).
  542. 2006-01-05 Robert McQueen <robot101@debian.org>
  543. * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
  544. <ricardo.kekki@movial.fi> to make it possible to inherit from
  545. DBusGProxy, by splitting the DBusGProxy struct into a public part and
  546. a private part, and moving the setting of the DBusGProxyManager into a
  547. connection property, allowing proper GObject construction.
  548. 2006-01-05 Robert McQueen <robot101@debian.org>
  549. * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
  550. <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
  551. annotations when generating glib client bindings.
  552. 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
  553. * dbus/dbus-shared.h: Call it shared constants instead of shared macros
  554. * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
  555. 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
  556. * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
  557. 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
  558. * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
  559. 2005-12-19 Ross Burton <ross@openedhand.com>
  560. * doc/dbus-tutorial.xml:
  561. Document the Glib client-side bindings, and list all possible annotations.
  562. 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
  563. * dbus/bus.c (dbus_bus_release_name): Add documentation
  564. 2005-12-06 Robert McQueen <robot101@debian.org>
  565. * python/service.py: s/sucessful/successful/ so we're allocating to
  566. and reading from the same variable. Oops.
  567. 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
  568. * Released 0.60
  569. 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
  570. * test/qt/Makefile.am: build from srcdir
  571. * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
  572. Note - this code is wrong and needs to be fixed by the Qt binding
  573. developers. The flags should be treated as bitfields and not enums.
  574. * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
  575. 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
  576. * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
  577. link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
  578. in production code
  579. 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
  580. * dbus/dbus-connection.c (dbus_connection_read_write): Add new
  581. method for getting messages off the bus in the absence of a
  582. mainloop. This method is much like
  583. dbus_connection_read_write_dispatch except it does not dispatch
  584. the messages to a registered filter function. Instead it
  585. allows a developer to process messages by directly popping
  586. them off the bus.
  587. 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
  588. * bus/desktop-file.c (parse_key_value): Ignore locales allowing
  589. the parser to continue instead of returning error
  590. (bus_desktop_file_load): Do not free parser data when
  591. parse_section_start or parse_key_value fails because it was
  592. already freed by parser_free (patch from Carlos Garcia Campos
  593. <carlosgc at gnome.org>)
  594. 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
  595. * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
  596. dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
  597. glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
  598. test/test-segfault.c, test/test-utils.c,
  599. test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
  600. tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
  601. Various cleanup of dead code and compiler warnings (patch from
  602. Kjartan Maraas <kmaraas at gnome.org>)
  603. 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
  604. * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
  605. (patch from Carlos Garnacho Parro <carlosg at gnome.org>
  606. 2005-11-27 Robert McQueen <robot101@debian.org>
  607. * python/dbus_bindings.pyx: Repair my previous commit which reverted
  608. part of the preceding one. Oops. Merge patch by Johan Hedberg
  609. <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
  610. on big-endian platforms.
  611. * test/python/test-client.py: Add some 16-bit integers to the test
  612. values.
  613. 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
  614. * glib/dbus-gobject.c: Append a GValue instead of a basic type in
  615. method return message for property getters
  616. 2005-11-27 Robert McQueen <robot101@debian.org>
  617. * python/dbus_bindings.pyx: Fix a bug where doing a strict append
  618. with type v of an instance of dbus.Variant(foo, type='x') caused
  619. it to be boxed twice before sending over the bus.
  620. * python/dbus_bindings.pyx, python/service.py,
  621. test/python/test-client.py: Update the constants for the new
  622. request_name flags, and update comments/test cases now that queueing
  623. is the default action.
  624. 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
  625. * configure.in:
  626. - Change version to 0.60 for impending release
  627. - upped the sonames because of ABI and API breakage
  628. 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
  629. * configure.in: Add test/name-test/Makefile to the generated
  630. Makefile list
  631. * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
  632. New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
  633. (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
  634. not to queue an ower if it can't be the primary owner
  635. * bus/bus.h: Add new internal BusOwner struct
  636. * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
  637. to bus_registry_ensure and don't set the prohibit_replacement flag
  638. since they are now set per BusOwner and not per name.
  639. (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
  640. that returns the list of connections in a name's connection queue
  641. * bus/services.c (struct BusService): remove prohibit_replacement field
  642. (struct BusOwner): new struct for keeping track of queued connections
  643. and their associated flags for the queue
  644. (struct BusRegistry): add a BusOwner memory pool
  645. (bus_registry_new): initialize the BusOwner memory pool
  646. (bus_registry_unref): free the BusOwner memory pool
  647. (_bus_service_find_owner_link): new internal method for
  648. searching the queue for a specific connection
  649. (bus_owner_set_flags): new method for adding setting the flags on a
  650. bus owner
  651. (bus_owner_new): new method that creates a BusOwner object from the
  652. pool and sets its flags
  653. (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
  654. (bus_registry_ensure): Add the flags parameter
  655. (bus_registry_acquire_service): Switch from using raw connections to
  656. using the BusOwner struct
  657. Add new state machine for dealing with the new set of flags
  658. (bus_registry_set_service_context_table, struct OwnershipCancelData,
  659. cancel_ownership, free_ownership_cancel_data,
  660. add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
  661. restore_ownership, free_ownership_restore_data,
  662. add_restore_ownership_to_transaction): Switch to using BusOwner
  663. instead of raw connections
  664. (bus_service_add_owner): Add flags parameter
  665. Switch to using BusOwner instead of raw connections
  666. Add state machine for dealing with the new set of flags
  667. (bus_service_swap_owner): Swaps the first and second owners in the
  668. queue. Used to make sure proper Q_SIGNALS are sent when a service looses
  669. or gains primary ownership. We never insert an owner at the top of the
  670. queue. Instead we insert it in the second position and then swap.
  671. (bus_service_remove_owner): Remove the owner from the queue sending
  672. out the NameLost and NameOwnerChanged Q_SIGNALS if the we were the
  673. primary owner
  674. (bus_service_get_primary_owners_connection): New method that extracts
  675. the connection from the primary owner
  676. (bus_service_get_primary_owner): Returns the BusOwner instead of the
  677. connection
  678. (bus_service_get_allow_replacement): Changed from the old
  679. bus_service_get_prohibit_replacement method. Checks the flags of the
  680. primary owner and returns if it can be replaced or not
  681. (bus_service_set_prohibit_replacement): removed
  682. (bus_service_has_owner): returns TRUE if and owner with
  683. the specified connection exists in the queue
  684. * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
  685. method that only compiles if tests are enabled. Allows us to get the
  686. unique name of a connection so we can check it against the queue when
  687. doing regression tests
  688. * bus/activation.c (bus_activation_send_pending_auto_activate),
  689. bus/dispatch.c (bus_dispatch),
  690. bus/driver.c (bus_driver_handle_get_service_owner,
  691. bus_driver_handle_get_connection_unix_user,
  692. bus_driver_handle_get_connection_unix_process_id,
  693. bus_driver_handle_get_connection_selinux_security_context),
  694. bus/Q_SIGNALS.c (connection_is_primary_owner):
  695. use bus_service_get_primary_owners_connection instead of
  696. bus_service_get_primary_owner
  697. * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
  698. _dbus_listen_unix_socket): Calculate the length of the socket
  699. path and use that instead of using a fixed length which was
  700. causing socket names to contain many trailing Nul bytes.
  701. * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
  702. (dbus_g_method_get_sender): New method for extracting the sender
  703. from a DBusGMethodInvocation
  704. (dbus_g_method_return_get_reply): changed name to
  705. dbus_g_method_get_reply
  706. (dbus_g_method_return_send_reply): changed name to
  707. dbus_g_method_send reply
  708. * doc/dbus-specification.xml: New docs that describe how the new
  709. queueing system works and talks about the changes to the how
  710. we specify socket names
  711. * glib/examples/example-service.c,
  712. glib/examples/example-signal-emitter.c,
  713. glib/examples/statemachine/statemachine-server.c:
  714. Changed the RequestName flags to the new system
  715. * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
  716. regression test suite for testing various states of the new
  717. queueing system
  718. 2005-11-15 Robert McQueen <robot101@debian.org>
  719. * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
  720. Taylor to add two methods, dbus_g_method_return_get_reply and
  721. dbus_g_method_return_send_reply, to allow you to get the reply
  722. message from a DBusGMethodInvocation, append arbitrary stuff to it,
  723. and send it. The GLib bindings can't marshal a return value of
  724. something like a(s) if the array is empty - ultimately they should be
  725. made to heed the signature of the out arguments as the Python bindings
  726. now can, but this is a workable interim solution which might have
  727. other applications.
  728. 2005-11-15 Robert McQueen <robot101@debian.org>
  729. * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
  730. method to org.freedesktop.DBus to release a bus name or give up
  731. waiting in the queue for it.
  732. * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
  733. dbus_bus_release_name method to send the ReleaseName method calls.
  734. Add constants for the return values to dbus/dbus-shared.h.
  735. * doc/dbus-specification.xml: Document the new ReleaseName method
  736. in the specification.
  737. * python/dbus_bindings.pyx: Add a low-level python binding for the
  738. release name method.
  739. * python/exceptions.py, python/service.py: Make freeing BusName
  740. objects release the name. Add a NameExistsException, and fix a
  741. bug with creating UnknownMethodException.
  742. * test/python/test-client.py: Add tests for freeing BusName
  743. objects causing names to be released.
  744. 2005-11-14 Robert McQueen <robot101@debian.org>
  745. * python/service.py: Include the traceback in the error reply when we
  746. send an exception over the bus. _BEST_ _PATCH_ _EVER_
  747. 2005-11-14 David Zeuthen <davidz@redhat.com>
  748. Patch from Timo Hoenig <thoenig@suse.de>.
  749. * bus/bus.c: I've recently investigated why the automatic reload
  750. of configuration files does not work as expected.
  751. Currently, reloading configuration files does only work when
  752. running dbus-daemon with --nodaemon. If we are running as daemon
  753. we're hitting a dnotify bug once we fork the process.
  754. We're initializing the dnotify fds before calling fork(). Once
  755. the child process forked it does still have the fds (and they
  756. still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
  757. getting SIGIO as changes are made to the configuration files.
  758. The attached patch moves the initialization of the dnotify fds to
  759. process_config_postinit(). This is safe for all current code
  760. paths and solves the dnotify disfunction. If we're running
  761. dbus-daemon as daemon the fds for dnotify are now being
  762. initialized after fork() for the child process.
  763. * configure.in: The current configure.in check for dnotify probes
  764. 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
  765. match for 'xlinux', too. Additionally I have adapted the configure
  766. option's style to match with the others.
  767. 2005-11-14 Robert McQueen <robot101@debian.org>
  768. * python/decorators.py, python/service.py: Add a new argument to the
  769. dbus.service.method decorator called sender_keyword, which if set,
  770. specifies the name of an argument which will be provided the bus
  771. name of the method caller.
  772. * test/python/test-client.py, test/python/test-service.py: Add a
  773. method and test to check the sender_keyword functionality.
  774. 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
  775. * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
  776. empty reply so blocking calls don't block forever (Patch from Sjoerd
  777. Simons <sjoerd at luon.net>)
  778. * AUTHORS: Add Robert McQueen for his work on the Python
  779. Bindings and other parts of D-Bus
  780. 2005-11-07 Robert McQueen <robot101@debian.org>
  781. * python/decorators.py: Change emit_signal function to use the
  782. signature annotation of the signal when marhsalling the arguments from
  783. the service. Fix a bug where the code checking signature length
  784. against argument length referenced the wrong variable.
  785. * python/introspect_parser.py: Avoid adding the type signature of
  786. signal arguments to any methods which occur after them in the
  787. introspection data (!) by making the parser a little more careful
  788. about its current state.
  789. * python/service.py: Remove debug prints from last commit (again :D).
  790. * test/python/test-client.py, test/python/test-service.py: Add test
  791. Q_SIGNALS with signature decorators to test the strict marshalling code
  792. gives errors at the right time. Could do with checking the Q_SIGNALS
  793. actually get emitted too, given that the test does nothing with
  794. Q_SIGNALS at the moment...
  795. 2005-11-07 Robert McQueen <robot101@debian.org>
  796. * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
  797. instances to stop madness of creating new instances representing
  798. the same bus connection all the time, rendering any tracking of
  799. match rules and bus names quite meaningless. Caught a bug where
  800. the private argument to SessionBus() and friends was being passed
  801. in as use_default_mainloop by mistake. Still some problems with
  802. multiple dbus_binding.Connection instances representing the same
  803. low-level connection (eg when you use both SessionBus() and
  804. StarterBus() in same process), but it's a lot better now than it
  805. was.
  806. * python/dbus_bindings.pyx: Add constants with the return values
  807. for bus_request_name().
  808. * python/service.py: Store bus name instances in a per-dbus.Bus cache
  809. and retrieve the same instances for the same name, so deletion can be
  810. done with refcounting. Also now throws some kind of error if you
  811. don't actually get the name you requested, unlike previously...
  812. * test/python/test-client.py: Add tests for instance caching of buses
  813. and bus name objects.
  814. 2005-11-04 Robert McQueen <robot101@debian.org>
  815. * python/dbus_bindings.pyx, test/python/test-client.py: Fix
  816. marshalling of boolean values. Add some booleans to the values in
  817. the test client.
  818. * python/decorators.py, python/service.py: Add an 'async_callbacks'
  819. argument to the dbus.service.method decorator, which allows you to
  820. name arguments to take two callback functions for replying with
  821. return values or an exception.
  822. * test/python/test-client.py, test/python/test-service.py: Add test
  823. case using asynchronous method reply functions, both return values and
  824. errors, and from within both the function itself and from a mainloop
  825. callback.
  826. * python/decorators.py, python/service.py: Perform checking that the
  827. number of method/signal arguments matches the number of types in the
  828. signature at class loading time, not when you first introspect the
  829. class.
  830. * python/service.py: Remove debug print left by the last commit.
  831. 2005-11-03 Robert McQueen <robot101@debian.org>
  832. * python/service.py: Heavy refactoring of method invocation, with
  833. hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
  834. in favour of a new _message_cb that uses seperate functions for
  835. looking up the method to call, marshalling the return values, and
  836. sending exceptions as errors, and is easier to follow as a
  837. consequence. Fixes some corner cases about returning things that
  838. don't match your declared out_signature, allows exceptions to define
  839. _dbus_error_name and have it be sent over the bus as the error name,
  840. and paves the way for cool stuff like heeding the message no reply
  841. flag, asynchronous method implementations, informing the method of the
  842. sender, and including backtraces in the error messages.
  843. * test/python/test-client.py: Catch and print exceptions thrown in the
  844. async callback tests, rather than passing them to the low-level
  845. bindings to be ignored in a noisy and frustrating manner.
  846. 2005-11-03 Robert McQueen <robot101@debian.org>
  847. * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
  848. functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
  849. tweak others to be consistent.
  850. * test/python/test-client.py: Tweak output of testInheritance.
  851. 2005-10-29 Robert McQueen <robot101@debian.org>
  852. * python/service.py: Major changes to allow multiple inheritance
  853. from classes that define D-Bus interfaces:
  854. 1. Create a new Interface class which is the parent class of
  855. Object, and make the ObjectType metaclass into InterfaceType.
  856. 2. Patch written with Rob Taylor to replace use of method_vtable
  857. with code that walks the class's __MRO__ (method resolution order)
  858. to behave like Python does when invoking methods and allow
  859. overriding as you'd expect. Code is quite tricky because
  860. we have to find two methods, the one to invoke which has the
  861. right name and isn't decorated with the /wrong/ interface,
  862. and the one to pick up the signatures from which is decorated
  863. with the right interface.
  864. The same caveats apply as to normal multiple inheritance -
  865. this has undefined behaviour if you try and inherit from two
  866. classes that define a method with the same name but are
  867. decorated with different interfaces. You should decorate
  868. your overriding method with the interface you want.
  869. 3. Replace grungy introspection XML generation code in the metaclass
  870. with dictionaries that cope correctly with multiple inheritance
  871. and the overriding of methods. This also uses the signature
  872. decorations to provide correct introspection data, including
  873. the debut appearance of the types of your return values. :D
  874. * test/python/test-client.py, test/python/test-service.py: Add a test
  875. case to try invoking an method that overrides one inherited from a
  876. D-Bus interface class.
  877. 2005-10-29 Robert McQueen <robot101@debian.org>
  878. * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
  879. Add checking for the end of struct character when marshalling a
  880. struct in MessageIter.append_strict.
  881. * python/examples/example-service.py,
  882. python/examples/gconf-proxy-service.py,
  883. python/examples/gconf-proxy-service2.py: Update to use gobject
  884. mainloop directly rather than appearing to depend on gtk.
  885. * python/test/test-client.py, python/test/test-server.py: Remove
  886. obsolete and broken test scripts for old bindings. We have up to date
  887. and working tests in test/python/.
  888. 2005-10-29 Robert McQueen <robot101@debian.org>
  889. * python/decorators.py: Add optional arguments to the method and
  890. signal decorators to allow you to specify the signature of arguments
  891. and return values. Preserve the doc strings of signal functions in the
  892. decorated version, for pydoc and friends.
  893. * python/dbus_bindings.pyx, python/proxies.py: Replace the
  894. parse_signature_block function with an iterable dbus.Signature()
  895. type. Fix a bug in MessageIter.append_strict where you could append
  896. anything by claiming it was a string.
  897. * python/service.py: Use the out_signature decoration on methods to
  898. marshal return values, meaning you no longer require dbus.Array()
  899. or dbus.Dictionary() to indicate the type when returning empty
  900. arrays or dictionaries. Fix a bug where exceptions which are defined
  901. in __main__ are not turned into error replies.
  902. * test/python/test-client.py, test/python/test-service.py: Add test
  903. for correct marshalling of return values according to out_signature.
  904. Fix a bug in the async call test where the error_handler is missing a
  905. self argument.
  906. 2005-10-29 Robert McQueen <robot101@debian.org>
  907. * glib/Makefile.am, glib/examples/Makefile.am,
  908. glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
  909. Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
  910. * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
  911. * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
  912. from Ubuntu by Daniel Silverstone to allow specifying match rules on
  913. the command line.
  914. 2005-10-27 Ross Burton <ross@openedhand.com>
  915. * dbus/dbus-marshal-header.c:
  916. Remove dead code.
  917. * glib/dbus-gobject.c:
  918. Stop compiler warning.
  919. 2005-10-25 Ross Burton <ross@openedhand.com>
  920. * dbus/dbus-auth.c:
  921. * dbus/dbus-server-unix.c:
  922. * dbus/dbus-transport-unix.c:
  923. * glib/dbus-gmain.c:
  924. * glib/dbus-gobject.c:
  925. Add some const keywords.
  926. 2005-10-25 Ross Burton <ross@openedhand.com>
  927. * doc/dbus-specification.xml:
  928. Document the NoReply annotation.
  929. * glib/dbus-binding-tool-glib.h:
  930. * glib/dbus-binding-tool-glib.c:
  931. Respect the NoReply annotation.
  932. 2005-10-24 Robert McQueen <robot101@debian.org>
  933. * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
  934. derive from unicode instead of str, and encode/decode UTF-8 when
  935. marshalling/unmarshalling bus messages
  936. * python/introspect_parser.py: encode introspection data as UTF-8
  937. before passing the buffer into libxml2
  938. * test/python/test-client.py: add unicode test strings
  939. * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
  940. ignore generated python test files
  941. 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
  942. * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
  943. and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
  944. (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
  945. * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
  946. DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
  947. when constructing struct signatures
  948. * python/_dbus.py (Bus): handle private connections using the
  949. private keyword in the constructor. defaults to private=False
  950. (Bus::close): new method to close a connection to the bus
  951. * python/dbus_bindings.pyx (Connection::close): renamed method
  952. was previously called disconnect
  953. (bus_get): now supports getting a private connection
  954. * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
  955. keyword is set to True. if it is, execute the method without waiting
  956. for a reply
  957. (ProxyObject::_introspect_execute_queue): new method for executing
  958. all the pending methods that were waiting for the introspect to
  959. finish. this is called when introspect either succeeds or fails
  960. (ProxyObject::_introspect_error_handler): call queued methods
  961. 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
  962. * python/dbus_bindings.pyx (MessageIter::append_strict): check for
  963. STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
  964. * python/service.py (Object::_message_cb): handle exceptions correctly
  965. by sending them over the wire to the calling app. This makes sure
  966. the client returns immediately instead of waiting the 15 seconds to
  967. timeout.
  968. * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
  969. Add a test to benchmark how long it takes to introspect a service and
  970. call a method which returns a large element (pretty fast)
  971. * test/python/test-service.py (TestObject::GetComplexArray): new test
  972. method which pushes a lot of data
  973. 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
  974. * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
  975. reclaim memory outside of the loop and use del istead of just setting
  976. the key to None
  977. 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
  978. * python/service.py (ObjectType::_reflect_on_signal): Always close
  979. signal tag even when there are no arguments
  980. 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
  981. * configure.in: Set mono, mono-docs and Qt3 to default
  982. to no instead of auto when building. These bindings do not
  983. have full time maintainers and will not be supported for the
  984. 1.0 release.
  985. 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
  986. patches from Michael Krivoruchko <misha at sun.com>:
  987. * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
  988. _dbus_connection_message_sent,
  989. _dbus_connection_send_preallocated_unlocked_no_update,
  990. _dbus_connection_pop_message_link_unlocked): handle the case when path
  991. is NULL when calling _dbus_verbose
  992. * configure.in: check for functions getpeerucred and getpeereid
  993. * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
  994. support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
  995. OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
  996. Patch was only tested on Solaris 10 x86 so it might be issues
  997. with other platforms (i.e. BSDs and MacOSX)
  998. 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
  999. * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
  1000. instead of marshal basic so we can handle recursive types in a variant
  1001. * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
  1002. in variants
  1003. * test/glib/test-service-glib.c, test-service-glib.xml
  1004. (my_object_echo_variant [EchoVariant],
  1005. my_object_process_variant_of_array_of_ints123
  1006. [ProcessVariantOfArrayOfInts123]):
  1007. Add two test methods
  1008. * python/introspect_parser.py: New module for parsing introspect
  1009. data.
  1010. * python/dbus_bindings.pyx:
  1011. (various places): when throwing errors fix to use errormsg instead
  1012. of message local variable because Pyrex can get confused with other
  1013. message variables (initial patch by Robert McQueen
  1014. <robert.mcqueen at collabora.co.uk>)
  1015. (MessageIter::parse_signature_block): new method for getting the next
  1016. block in a signiture.
  1017. (MessageIter::append_strict): new method for appending values strictly
  1018. using the passed in signature instead of guessing at the type
  1019. (MessageItter:: append_dict, append_struct, append_array): use
  1020. signatures to marshal children if the signature is available
  1021. * python/exceptions.py (IntrospectionParserException): new exception
  1022. * python/proxies.py (ProxyMethod::__call__): Marshal args with
  1023. introspected signatures if available, else we fall back to the
  1024. old way of doing things.
  1025. (ProxyObject::_introspect_reply_handler ): parse introspection data
  1026. * python/service.py (ObjectType::_reflect_on_method): Properly
  1027. terminate <method> if there are no args in the reflection data
  1028. * test/python/test-client.py: add tests for talking with the GLib
  1029. test server. This gives us better coverage for introspection since
  1030. python to python will always generate arguments as variants. It also
  1031. allows us to test the robustness of the GLib bindings and interlanguage
  1032. communications.
  1033. 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
  1034. * bus/driver.c (bus_driver_handle_introspect): Add Q_SIGNALS
  1035. to the introspect data. (patch from Daniel P. Berrange
  1036. <dan at berrange.com>)
  1037. * bus/dispatch.c (check_existent_ping): Add testcase for Ping
  1038. * dbus/dbus-connection.c (_dbus_connection_peer_filter,
  1039. _dbus_connection_run_builtin_filters): Changed these to
  1040. be unlock_no_update functions and call
  1041. _dbus_connection_send_unlocked_no_update instead of
  1042. dbus_connection_send to avoid locking errors.
  1043. * doc/TODO: Removed the make Ping test TODO
  1044. 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
  1045. * dbus/Python.pyx: Fixed memory leaks when throwing errors.
  1046. We now copy the message from a DBusError and then free
  1047. the error object befor throwing the error
  1048. * glib/dbus-glib-tool.c: removed extra comma at the end of the
  1049. DBusBindingOutputMode enum which was causing a warning.
  1050. #include <time.h> so using time_t is explicitly defined
  1051. 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
  1052. * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
  1053. - dbus/dbus-bus.c
  1054. (internal_bus_get): new method that take over the heavy lifting
  1055. of dbus_bus_get and adds the ability to get a private connection
  1056. to the bus
  1057. (dbus_bus_get): wrapper to internal_bus_get that provides the same
  1058. interface as in previous versions
  1059. (dbus_bus_get_private): new method that is a wrapper to
  1060. internal_bus_get to get a private connection to the bus
  1061. - dbus/dbus-bus.h
  1062. (dbus_bus_get_private): add as a public libdbus interface
  1063. - dbus-1.pc.in: output system_bus_default_address and
  1064. sysconfdir variables so apps can use them when compiling
  1065. 2005-09-23 Harald Fernengel <harry@kdevelop.org>
  1066. * dbus/qt: New Qt bindings
  1067. 2005-09-12 Waldo Bastian <bastian@kde.org>
  1068. * dbus/dbus-marshal-validate.c,
  1069. doc/dbus-specification.xml, test/Makefile.am,
  1070. test/test-names.c: allow hyphens in bus names.
  1071. 2005-09-11 Mark McLoughlin <mark@skynet.ie>
  1072. * test/data/auth/fallback.auth-script: we don't
  1073. retry the EXTERNAL method when we know its going
  1074. to fail anymore.
  1075. 2005-09-11 Mark McLoughlin <mark@skynet.ie>
  1076. * dbus/dbus-connection-internal.h: rename
  1077. (add|remove|toggle)_(watch|timeout) to unlocked()
  1078. * dbus/dbus-connection.c: ditto.
  1079. * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
  1080. Update some callers for the renaming.
  1081. 2005-09-10 Mark McLoughlin <mark@skynet.ie>
  1082. * dbus/dbus-auth.c: (record_mechanisms): don't
  1083. retry the first auth mechanism because we know
  1084. we're just going to get rejected again.
  1085. * dbus/dbus-keyring.c: (_dbus_keyring_reload):
  1086. Fix thinko ... and what a nasty little bugger to
  1087. track down you were ...
  1088. * dbus/dbus-connection.c:
  1089. (_dbus_connection_add_watch),
  1090. (_dbus_connection_remove_watch): add note about
  1091. these needing the connection to be locked.
  1092. (_dbus_connection_get_dispatch_status_unlocked):
  1093. set status to DATA_REMAINS when we queue the
  1094. disconnected message.
  1095. * bus/dispatch.c:
  1096. (bus_dispatch): fix warning.
  1097. (check_existent_service_no_auto_start):
  1098. Expect ChildSignaled error too.
  1099. (check_existent_hello_from_self): fix another
  1100. couple of warnings.
  1101. 2005-09-08 Joe Shaw <joeshaw@novell.com>
  1102. Patches from James Willcox <snorp@snorp.net>
  1103. * mono/Makefile.am: Add Int16.cs and UInt16.cs
  1104. * mono/DBusType/Array.cs: Handle multidimensional arrays, and
  1105. support array "out" parameters.
  1106. * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
  1107. for 16-bit int support.
  1108. 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
  1109. * Released 0.50
  1110. * Patch from Steve Grubb:
  1111. - bus/activation.c (bus_activation_service_reload_test): clean up
  1112. some indentation
  1113. - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
  1114. - dbus/dbus-message-factory.c (generate_special): fix a couple of
  1115. buffer overflows in the test suite. This is non critical because
  1116. it can not be exploited and this code is only run when doing a
  1117. make check.
  1118. * Patch from Yaakov Selkowitz: Build fixes for Cygwin
  1119. - configure.in: Don't check and link against tdecore, only qt headers
  1120. - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
  1121. - gcj/org/freedesktop/dbus/Makefile.am:
  1122. add libdbus_gcj_1_la_LDFLAGS = -no-undefined
  1123. - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
  1124. and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
  1125. - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
  1126. - tools/Makefile.am: Add platform extentions to binaries
  1127. (i.e. .exe on windows)
  1128. * configure.in:
  1129. - Make it so if no suitable version of python is found we only
  1130. disable building python instead of exiting the configure script
  1131. - Require version 2.4 of glib for glib bindings
  1132. - Up version to 0.50
  1133. * python/__init__.py: Sync version with libdbus to (0,50,0)
  1134. 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
  1135. * dbus/dbus-object-tree.c (find_subtree_recurse):
  1136. a couple of optimizations (bug #710):
  1137. - do a binary search in the tree
  1138. - insert a new child at the right place directly, no need for
  1139. qsort anymore
  1140. - do the "double alloc" thing when allocating children
  1141. 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
  1142. * python/Makefile.am: Break on pyrexc errors instead of ignoring them
  1143. * python/dbus_bindings.pyx: Memory management foo
  1144. (global): remove hacky _user_data_references global list
  1145. (GIL_safe_cunregister_function_handler): userdata now stuffed into
  1146. tuples. Unref user_data
  1147. (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
  1148. (Connection::__del__): Remove and replace with __dealloc__ method
  1149. (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
  1150. to keep tuple from being deallocated instead of the global var hack
  1151. (Connection::register_object_path): Stuff user_data into a tuple.
  1152. Use Py_INCREF to keep tuple from being deallocated instead of the
  1153. global var hack
  1154. (Connection::register_fallback): Stuff user_data into a tuple.
  1155. Use Py_INCREF to keep tuple from being deallocated instead of the
  1156. global var hack
  1157. (GIL_safe_pending_call_notification): Don't unref the message
  1158. because it gets unreffed when going out of scope. Py_XDECREF
  1159. the user_data
  1160. (PendingCall::__del__): Remove and replace with __dealloc__ method
  1161. (PendingCall::set_notify): ref the pending call because we will
  1162. need it to stick around for when the notify callback gets called
  1163. (Message::__del__): Remove and replace with __dealloc__ method
  1164. * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
  1165. gthreads_init to match up with the dbus call
  1166. * python/glib.py (init_threads): Changed to threads_init to match
  1167. up with gobject.threads_init(). init_threads is kept for backwards
  1168. compat but will most likely be deprecated in the future
  1169. * test/python/test-client.py:
  1170. - revamp to use Python's unittest functionality
  1171. - add async call tests
  1172. - setup threads in glib and dbus so we make sure locks are working
  1173. 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
  1174. * python/dbus_bindings.pyx
  1175. (_pending_call_notification, cunregister_function_handler,
  1176. cmessage_function_handler): All callback functions have been rearranged
  1177. to workaround a bug in Pyrex when working with the GIL which is Python's
  1178. global lock when dealing with threads. They have been split into
  1179. a wrapper function (which assumes the name of the old function) and
  1180. a _GIL_safe_<function name> function which contains the functionality
  1181. of the old function. This ensures that Pyrex does not write code
  1182. the lock is released.
  1183. 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
  1184. * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
  1185. GIL global lock when calling back into Python
  1186. 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
  1187. * Release 0.36.2
  1188. * Add Havoc's patch that never got applied to HEAD (Bug #2436):
  1189. * bus/policy.c (bus_policy_allow_user): change default "user is
  1190. allowed" to be "user has same uid as the bus itself"; any
  1191. allow/deny rules will override.
  1192. * bus/session.conf.in: don't allow all users, since now by default
  1193. the user that ran the bus can connect.
  1194. 2005-08-26 Colin Walters <walters@verbum.org>
  1195. * tools/dbus-print-message.c (print_message): Flush stdout
  1196. after printing a message, so that redirecting to a file, then
  1197. hitting Ctrl-C works.
  1198. 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
  1199. * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
  1200. (EmptyMessage): new class that subclasses Message. This is a workaround
  1201. to a Pyrex bug that fails to call __del__ when the Message object goes out
  1202. of scope. For some reason subclassing Message fixes this bug
  1203. (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
  1204. - s/Message(_create=0)/EmptyMessage everywhere else
  1205. * test/python/test-{server|client}.py: add the python/.libs directory
  1206. to the lookup path so dbus_bindings and dbus_glib_bindings don't
  1207. get picked up from the system
  1208. 2005-08-25 Colin Walters <walters@verbum.org>
  1209. * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
  1210. to Ryan Lortie for the suggestion.
  1211. 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
  1212. * test/python: Add python regression test
  1213. * configure.in: Add test/python/Makefile
  1214. * test/Makefile.am: Add the python directory to SUBDIRS
  1215. 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
  1216. * Release 0.36.1
  1217. * python/_dbus.py:
  1218. (Interface::connect_to_signal): propigate keywords for match on args
  1219. (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
  1220. * python/proxies.py (ProxyObject::connect_to_signal):
  1221. propigate keywords for match on args
  1222. * Makefile.am: point everything to pyexecdir since python borks
  1223. on multilib
  1224. 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
  1225. * Release 0.36
  1226. 2005-08-23 Colin Walters <walters@verbum.org>
  1227. * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
  1228. 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
  1229. * python/dbus_glib_bindings.pyx: reorder imports and c definitions
  1230. to fix some wranings. We now use dbus_bindings.DBusConnection instead
  1231. of defining DBusConnection ourselves.
  1232. 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
  1233. * python/dbus.pth: New path file to fix up problems when installing
  1234. c libraries to lib64 and python files to lib.
  1235. * python/Makefile.am: install dbus.pth in the correct spot
  1236. 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
  1237. * ChangeLog: clean up my last entry a bit
  1238. * doc/introspect.xsl: New stylesheet for converting introspection data
  1239. into browser renderable xhtml. Contributed by Lennart Poettering.
  1240. * doc/introspect.dtd: Fixups in the introspect format from Lennart
  1241. Poettering.
  1242. * doc/dbus-tutorial.xml:
  1243. - Add Colin Walter to the Authors section for authoring the GLib
  1244. section
  1245. - Add descriptions of the new signature and type functionality
  1246. in the Python complex type mapping section
  1247. - Add a sidenote on the new args matching functionality in
  1248. the Python bindings
  1249. - Fixed up some of the examples to use the gobject.MainLoop
  1250. instead of gtk.main
  1251. * python/_dbus.py:
  1252. (Bus::_create_args_dict): New. Converts a hash of arg matches
  1253. to a more useable format
  1254. (Bus::add_signal_receiver): add a **keywords parameter for catching
  1255. arg match parameters
  1256. (Bus::remove_signal_receiver): add a **keywords parameter for catching
  1257. arg match parameters
  1258. * python/matchrules.py:
  1259. (MatchTree::exec_matches): Check for arg matches
  1260. (SignalMatchRule::add_args_match): New method
  1261. (SignalMatchRule::execute): Added args_list parameter as an optimization
  1262. so we don't have to marshal the args more than once
  1263. (SignalMatchRule::match_args_from_list): New method that checks to see
  1264. if the rule's arg matches match an argument list. Only arguments
  1265. set in the rule are checked.
  1266. (SignalMatchRule::match_args_from_rule): New method that checks to see
  1267. if the rule's arg matches match another rule's. All args have to match
  1268. in order for this method to return true. If either rule has more args
  1269. then it is not a match.
  1270. (SignalMatchRule::is_match): Add args match
  1271. (SignalMatchRule::repr): Add args to the final output if they exist
  1272. 2005-08-17 Ross Burton <ross@burtonini.com>
  1273. * glib/dbus-gproxy.c:
  1274. (dbus_g_proxy_call_no_reply): unref the message once sent.
  1275. (dbus_g_proxy_call): protect against NULL proxy.
  1276. 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
  1277. * python/__init__.py: Version updated (0, 43, 0)
  1278. * python/dbus_bindings.pyx:
  1279. - Fixed type objects to have self passed into __init__
  1280. - Added the Variant type
  1281. - Add the ability to specify types or signatures for Array, Variant
  1282. and Dictionary
  1283. (Connection::send_with_reply_handlers): return a PendingCall object
  1284. (_pending_call_notification): handle the case when an error is returned
  1285. without an error message in the body
  1286. (MessageIter::get_boolean): return True or False instead of an integer
  1287. (MessageIter::python_value_to_dbus_sig): add direct checking of types
  1288. and add checks for objects with embeded signatures or types (Array,
  1289. Variant and Dictionary)
  1290. (MessageIter::append_byte): handle case when the value is a dbus.Byte
  1291. (MessageIter::append_dict): handle embeded types or signatures
  1292. (MessageIter::append_array): handle embeded types or signatures
  1293. (MessageIter::append_variant): new method
  1294. * python/proxies.py:
  1295. (DeferedMethod): New. Dummy executable object used when queuing calls
  1296. blocking on introspection data
  1297. (ProxyMethod::__call__): add the timeout keyword for specifying longer
  1298. or shorter timeouts for method calls
  1299. (ProxyObject): Add first pass at an introspection state machine
  1300. (ProxyObject::__init__): Add introspect keyword for turing off an on
  1301. introspection.
  1302. (ProxyObject::_Introspect): Internal Introspect call that bypasses
  1303. the usual mechanisms for sending messages. This is to avoid a deadlock
  1304. where the Intospect call would be queued waiting for the Introspect
  1305. call to finish ;-)
  1306. (ProxyObject::_introspect_reply_handler): New. This method is called
  1307. when introspection returns with no error
  1308. (ProxyObject::_introspect_error_handler): New. This method is called
  1309. when introspection encounters an error
  1310. (ProxyObject::__getattr__): Code to handle different introspection
  1311. states. Queue async calls or block blocking calls if we are
  1312. introspecting. Pass through as normal if we are not or are done with
  1313. introspecting.
  1314. * python/service.py: Import signal and method from decorators.py
  1315. * python/types.py: Add Variant type
  1316. 2005-08-16 Colin Walters <walters@verbum.org>
  1317. * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
  1318. DBusError message is NULL.
  1319. 2005-08-09 Havoc Pennington <hp@redhat.com>
  1320. * dbus/dbus-errors.c: apply patch from Timo Teras to make a
  1321. malloc'd copy of the name parameter
  1322. 2005-08-09 Havoc Pennington <hp@redhat.com>
  1323. * dbus/dbus-message.c (dbus_message_set_reply_serial): print
  1324. warning if the reply serial is set to 0
  1325. 2005-08-04 Colin Walters <walters@verbum.org>
  1326. * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
  1327. (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
  1328. (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
  1329. (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
  1330. (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
  1331. (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
  1332. (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
  1333. * glib/dbus-gvalue.h (dbus_g_value_types_init)
  1334. (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
  1335. (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
  1336. Prefix name with _ to ensure they're not exported. All callers
  1337. updated.
  1338. * glib/dbus-gvalue.c (typecode_to_gtype)
  1339. (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
  1340. (signature_iter_to_g_type_dict)
  1341. (signature_iter_to_g_type_array)
  1342. (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
  1343. (dbus_gtypes_from_arg_signature):
  1344. Move to dbus-gsignature.c.
  1345. * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
  1346. dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
  1347. (dbus_binding_tool_output_glib_client): Ditto.
  1348. * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
  1349. and dbus-gsignature.h
  1350. * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
  1351. unused variable.
  1352. 2005-08-03 Colin Walters <walters@verbum.org>
  1353. * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
  1354. catch any incompatible changes accidentally made.
  1355. 2005-08-03 Havoc Pennington <hp@redhat.com>
  1356. * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
  1357. typo, from Julien Puydt
  1358. * bus/connection.c (bus_connection_disconnected): we were always
  1359. doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
  1360. 2005-08-01 Colin Walters <walters@verbum.org>
  1361. Patch from Joe Markus Clarke:
  1362. * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
  1363. use-after-free.
  1364. 2005-08-01 Colin Walters <walters@verbum.org>
  1365. Patch from Joe Markus Clarke:
  1366. * tools/dbus-send.c (main):
  1367. Don't use C99 style initializers (bug #3933).
  1368. 2005-08-01 Colin Walters <walters@verbum.org>
  1369. Patch from Joe Markus Clarke:
  1370. * glib/dbus-gvalue.c (dbus_g_value_types_init):
  1371. * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
  1372. * glib/dbus-gobject.c (write_interface):
  1373. Don't use C99 style initializers (bug #3933).
  1374. 2005-07-31 Havoc Pennington <hp@redhat.com>
  1375. * tools/dbus-viewer.c (load_child_nodes): fix invocation of
  1376. dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
  1377. 2005-07-30 Havoc Pennington <hp@redhat.com>
  1378. * fix a bunch of Doxygen warnings and mistakes
  1379. 2005-07-30 Havoc Pennington <hp@redhat.com>
  1380. * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
  1381. DBUS_BUILD_TESTS since it's now used in production code
  1382. 2005-07-29 Havoc Pennington <hp@redhat.com>
  1383. * test/glib/test-profile.c (write_junk): initialize the junk
  1384. buffer so valgrind doesn't have a breakdown
  1385. 2005-07-29 Havoc Pennington <hp@redhat.com>
  1386. * bus/Q_SIGNALS.c (bus_Q_SIGNALS_test): add match_rule_equal() tests
  1387. (match_rule_matches): remove unused arg
  1388. (test_matching): add tests for match_rule_matches()
  1389. * bus/Q_SIGNALS.c (bus_match_rule_parse_arg_match): add ability to
  1390. do arg0='foo' arg5='bar' in the match rules
  1391. (match_rule_matches): don't match if the arg0='foo' doesn't match.
  1392. * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
  1393. 2005-07-29 Ross Burton <ross@openedhand.com>
  1394. * dbus/dbus-connection.c:
  1395. Don't create a DBusCondVar which is never used.
  1396. 2005-07-27 Ross Burton <ross@openedhand.com>
  1397. * dbus/dbus-message.c:
  1398. Reduce the size of the maximum cached message to 10K.
  1399. 2005-07-25 Ross Burton <ross@openedhand.com>
  1400. * glib/dbus-gproxy.c:
  1401. Remove matches when all proxies are unregistered.
  1402. 2005-07-24 Colin Walters <walters@verbum.org>
  1403. * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
  1404. typedata; recursive arrays won't have it.
  1405. * test/glib/test-dbus-glib.c:
  1406. * test/glib/test-service-glib.c:
  1407. * test/glib/test-service-glib.xml: Add recursive arrays tests.
  1408. 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
  1409. * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
  1410. proxies.py, service.py: Cleanup of code after running it through the
  1411. pyflakes code checker mostly dealing with undefined names.
  1412. (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
  1413. 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
  1414. * NEWS: Update to 0.35.2
  1415. 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
  1416. * python/_dbus.py: Remove import of the dbus.services
  1417. module as it no longer exists (patch from Dimitur Kirov)
  1418. * python/service.py (Object::__init__): Fixed typo
  1419. s/name/bus_name (patch from Dimitur Kirov)
  1420. * python/examples/example-signal-emitter.py: import dbus.glib
  1421. to get the main loop and use glib mainloop instead of gtk so
  1422. X doesn't have to be running.
  1423. * python/examples/example-signal-recipient.py: import dbus.glib
  1424. to get the main loop and use glib mainloop instead of gtk so
  1425. X doesn't have to be running. Import the decorators module
  1426. directly.
  1427. * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
  1428. didn't pick up on but are needed to build
  1429. * configure.in: upped version to 0.35.2
  1430. * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
  1431. added Colin Walters' SELinux API rename patch from head
  1432. s/unix sercurity context/selinux security context/
  1433. 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
  1434. * python/Makefile.am: dbus_binding.pxd.in should be included
  1435. in EXTRA_DIST not dbus_binding.pxd
  1436. fix up $(srcdir) hopefully for the last time
  1437. * NEWS: Update to 0.35.1
  1438. 2005-07-16 Colin Walters <walters@verbum.org>
  1439. * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
  1440. from bus_driver_handle_get_connection_unix_security_context. Update for
  1441. error usage.
  1442. (message_handlers): Update for renames.
  1443. * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
  1444. _dbus_string_init failure correctly.
  1445. (bus_selinux_append_context): Convert SID to context. Append it
  1446. as a byte array.
  1447. (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
  1448. hasn't been called.
  1449. * bus/selinux.h: Update prototype.
  1450. * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
  1451. from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
  1452. 2005-07-15 Colin Walters <walters@verbum.org>
  1453. * doc/TODO: Add note about convenience wrappers.
  1454. 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
  1455. * NEWS: Update to 0.35
  1456. 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
  1457. * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
  1458. so distcheck doesn't fail
  1459. * glib/examples/Makefile.am: Add example-service.xml and
  1460. example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
  1461. * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
  1462. statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
  1463. * python/Makefile.am: Preprend $(srcdir)/ to source files so the
  1464. compiler looks in the right places during distcheck
  1465. 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
  1466. * glib/example/Makefile.am: Fix a typo which cause make distcheck
  1467. to fail
  1468. 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
  1469. * python/examples/example-service.py,
  1470. python/examples/example-signal-emitter.py: Fixed up examples
  1471. for API changes
  1472. 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
  1473. * python/__init__.py: Upped to version (0,42,0) because of
  1474. the API change
  1475. 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
  1476. * ChangeLog: fix date in last entry
  1477. * configure.in, bus/system.conf.in: add the ability to configure
  1478. the system bus user at compiletime with the --with-dbus-user flag
  1479. (patch from Kristof Vansant)
  1480. 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
  1481. * bus/dispatch.c, test/test-service.c: Add testcase
  1482. for sending messages to oneself (TODO item).
  1483. * python/service.py (class Object): Swap ordering of bus_name
  1484. and object_path parameters to better support inheritance.
  1485. * doc/dbus-tutorial.xml: change Python docs to reflect change
  1486. in parameter ordering and fix the inheritance section.
  1487. * doc/TODO: remove sending message to oneself TODO item
  1488. 2005-07-15 Ross Burton <ross@openedhand.com>
  1489. * glib/dbus-gproxy.c:
  1490. Fix a leak when calling methods via the proxy.
  1491. 2005-07-15 Colin Walters <walters@verbum.org>
  1492. * bus/selinux.c (bus_selinux_append_context): Wrap in
  1493. HAVE_SELINUX.
  1494. 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
  1495. * python/_dbus.py (Bus::remove_signal_receiver):
  1496. don't add a callback to the match if none has been passed in
  1497. * python/matchrules.py (SignalMatchTree::remove): if the rule
  1498. being matched does not have a callback treat it as a wildcard
  1499. fix matching logic
  1500. * doc/dbus-tutorial.xml: Add Python tutorial
  1501. 2005-07-14 Colin Walters <walters@verbum.org>
  1502. * bus/driver.c
  1503. (bus_driver_handle_get_connection_unix_security_context): New function.
  1504. (message_handlers): Add.
  1505. * bus/selinux.c (bus_selinux_append_context): New function; appends
  1506. security context to message.
  1507. * bus/selinux.h: Prototype.
  1508. * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
  1509. 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
  1510. * bus/activation.c: clean up all tabs to be 8 spaces
  1511. (bus_activation_activate_service): make sure we clean up
  1512. if activation fails
  1513. * bus/dispatch.c: clean up all tabs to be 8 spaces
  1514. (check_shell_fail_service_auto_start): New function
  1515. tests to make sure we get fail properly when trying to auto start a service
  1516. with a faulty command line
  1517. (check_shell_service_success_auto_start): New function tests to make sure
  1518. auto started services get the arguments on the command line
  1519. * test/test-shell-service.c: Added service for testing auto-starting with
  1520. command line arguments
  1521. * test/data/valid-service-files/debug-shell-echo-fail.service.in,
  1522. test/data/valid-service-files/debug-shell-echo-success.service.in:
  1523. Added service files for testing auto-starting with command line arguments
  1524. * */.cvsignore: added a bunch of generated files to various .cvsignore files
  1525. 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
  1526. * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
  1527. * dbus/Makefile.am: added new files to build.
  1528. * bus/activation.c (bus_activation_activate_service): support
  1529. activation commands with parameters.
  1530. * test/shell-test.c: added test program for the shell parsing
  1531. code.
  1532. 2005-07-13 David Zeuthen <davidz@redhat.com>
  1533. * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
  1534. 64 bit signed and unsigned parameters
  1535. 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
  1536. * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
  1537. * python/service.py (class Name): renamed BusName to make it clearer
  1538. what the object is for (a name on the bus)
  1539. * python/examples/example-service.py,
  1540. python/examples/example-signal-emitter.py: change the Name object to
  1541. BusName
  1542. 2005-07-12 Colin Walters <walters@verbum.org>
  1543. Patch from Jim Gettys <Jim.Gettys@hp.com>.
  1544. * tools/dbus-launch.c: Include sys/select.h.
  1545. 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
  1546. * python/dbus_bindings.pyx.in: removed
  1547. * python/dbus_bindings.pyx: Added.
  1548. - Fixed some memleaks (patch from
  1549. Sean Meiners <sean.meiners@linspireinc.com>)
  1550. - Broke out the #include "dbus_h_wrapper.h" and put it in its
  1551. own pxd file (Pyrex definition)
  1552. - Broke out glib dependancies into its own pyx module
  1553. * python/dbus_bindings.pdx: Added.
  1554. - Defines C class Connection for exporting to other modules
  1555. * python/dbus_glib_bindings.pyx: Added.
  1556. - New module to handle lowlevel dbus-glib mainloop integration
  1557. * python/glib.py: Added.
  1558. - Registers the glib mainloop when you import this module
  1559. * python/services.py: Removed (renamed to service.py)
  1560. * python/service.py: Added.
  1561. - (class Server): renamed Name
  1562. * python/__init__.py: Bump ro version (0,41,0)
  1563. -don't import the decorators or service module
  1564. by default. These now reside in the dbus.service namespace
  1565. * python/_dbus.py (Bus::__init__): Add code run the main loop
  1566. setup function on creation
  1567. * python/examples/example-service.py,
  1568. python/examples/example-signal-emitter.py: update examples
  1569. * python/examples/gconf-proxy-service.py,
  1570. python/examples/gconf-proxy-service2.py: TODO fix these up
  1571. * doc/TODO: Addition
  1572. - Added a Python Bindings 1.0 section
  1573. - added "Add match on args or match on details to match rules"
  1574. 2005-07-12 Colin Walters <walters@verbum.org>
  1575. * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
  1576. (statemachine-glue.h):
  1577. * glib/examples/Makefile.am (example-service-glue.h)
  1578. (example-signal-emitter-glue.h):
  1579. * glib/Makefile.am (dbus-glib-error-switch.h):
  1580. Add libtool --mode=execute so we use the built library instead
  1581. of any installed one.
  1582. 2005-07-11 Colin Walters <walters@verbum.org>
  1583. * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
  1584. (dbus_g_value_types_init): Remove assertion.
  1585. (dbus_g_value_get_g_type, dbus_g_value_open)
  1586. (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
  1587. (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
  1588. functions related to DBusGValue. Now we marshal/demarshal
  1589. structures as GValueArray.
  1590. (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
  1591. structures.
  1592. (signature_iter_to_g_type_array): Don't call
  1593. signature_iter_to_g_type_struct.
  1594. (signature_iter_to_g_type_struct): Delete.
  1595. (dbus_gvalue_to_signature): Delete.
  1596. (dbus_gvalue_to_signature): New function with same name as other
  1597. one; we can convert structures to signatures.
  1598. (demarshal_valuearray): New function.
  1599. (get_type_demarshaller): Use it.
  1600. (demarshal_recurse): Delete.
  1601. (marshal_proxy): New function.
  1602. (marshal_map): Warn if we can't determine signature from type.
  1603. (marshal_collection_ptrarray): Ditto.
  1604. (marshal_collection_array): Ditto.
  1605. (get_type_marshaller): Use marshal_valuearray.
  1606. (marshal_recurse): Delete.
  1607. (_dbus_gvalue_test): Add some tests.
  1608. * dbus/dbus-glib.h (struct _DBusGValueIterator):
  1609. (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
  1610. (dbus_g_value_open, dbus_g_value_iterator_get_value)
  1611. (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
  1612. (dbus_g_value_free): Remove prototypes.
  1613. * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
  1614. G_TYPE_VALUE_ARRAY.
  1615. * glib/examples/example-service.c:
  1616. * glib/examples/example-client.c: Implement GetTuple.
  1617. * test/glib/test-dbus-glib.c:
  1618. * test/glib/test-service-glib.c:
  1619. * test/glib/test-service-glib.xml: Add structure tests.
  1620. 2005-07-10 Colin Walters <walters@verbum.org>
  1621. * doc/TODO: Knock off some GLib items with this patch.
  1622. * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
  1623. (_dbus_gvalue_Q_SIGNALS_error): New functions.
  1624. * glib/dbus-gvalue-utils.h: Prototype them.
  1625. * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
  1626. and change to not output const/retval flags for input args. All
  1627. callers updated.
  1628. (invoke_object_method): Refactor to handle return values. Add
  1629. some more comments in various places. Remove debug g_print.
  1630. * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
  1631. * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
  1632. Handle G_TYPE_NONE.
  1633. (compute_gsignature): New function; refactored from code from
  1634. compute_marshaller and compute_marshaller_name. Enhance to
  1635. handle return values and async ops more cleanly. Update for
  1636. async ops returning NONE instead of BOOLEAN.
  1637. (compute_marshaller, compute_marshaller_name): Call compute_gsignature
  1638. and output appropriate string.
  1639. (generate_glue): Handle return value annotation. Also don't dump
  1640. constness flag for input arguments.
  1641. * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
  1642. files shared between installed library and utilities.
  1643. (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
  1644. (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
  1645. binding tool can access gtype utility functions.
  1646. * test/glib/test-service-glib.c:
  1647. * test/glib/test-service-glib.xml:
  1648. * test/glib/test-dbus-glib.c: Add some tests for return values.
  1649. 2005-07-09 Colin Walters <walters@verbum.org>
  1650. * glib/dbus-gparser.c (parse_annotation): Add annotations to
  1651. argument if available, not method.
  1652. * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
  1653. (invoke_object_method): First, remove some redundant
  1654. GValues (object_value, error_value) in favor of working on
  1655. array directly. Second, rework constness to be less buggy.
  1656. Now we iterate directly over the argument metadata instead
  1657. of parallel iterating over output signature and metadata.
  1658. * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
  1659. * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
  1660. annotation on input args.
  1661. 2005-07-09 Colin Walters <walters@verbum.org>
  1662. * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
  1663. Define.
  1664. * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
  1665. annotation.
  1666. * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
  1667. (method_dir_signature_from_object_info): Handle arg_iterate change.
  1668. (write_interface): Ditto.
  1669. (lookup_object_info): Don't barf if format_version is > 0.
  1670. (invoke_object_method): Handle arg constness.
  1671. * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
  1672. (arg_info_new): Create.
  1673. (arg_info_unref): Destroy.
  1674. (arg_info_get_annotations, arg_info_get_annotation)
  1675. (arg_info_add_annotation): New functions.
  1676. * glib/dbus-gidl.h: Prototype them.
  1677. * glib/dbus-gparser.c (parse_annotation): Allow annotations in
  1678. args, disallow them in properties.
  1679. (parse_annotation): Handle arg annotations.
  1680. * test/glib/test-service-glib.xml:
  1681. * test/glib/test-service-glib.c: Update to make some methods
  1682. const.
  1683. 2005-07-08 Colin Walters <walters@verbum.org>
  1684. * test/glib/test-service-glib.xml:
  1685. * test/glib/test-service-glib.c:
  1686. * test/glib/test-dbus-glib.c: Test a{sv}.
  1687. * glib/examples/statemachine/statemachine.c:
  1688. * glib/examples/statemachine/statemachine-server.c:
  1689. * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
  1690. add progress bar, etc.
  1691. * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
  1692. needed anymore due to generic array/map marshalling.
  1693. (dbus_g_value_types_init): Don't register basic arrays or the
  1694. string/string hash.
  1695. (dbus_gtype_from_signature_iter): Don't try to recurse into
  1696. variants.
  1697. (dbus_gtype_to_signature): Check collection/map before type
  1698. metadata.
  1699. (demarshal_garray_basic): Renamed to demarshal_collection_array.
  1700. (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
  1701. generic map creation/append functions instead of hash table
  1702. specifically.
  1703. (get_type_demarshaller): Handle maps.
  1704. (demarshal_collection): Dispatch on collection type to either
  1705. demarshal_collection_ptrarray or demarshal_collection_array.
  1706. (get_type_marshaller): Handle maps.
  1707. (marshal_collection): Dispatch collection type to either
  1708. marshal_collection_ptrarray or marshal_collection_array.
  1709. (_dbus_gvalue_test): New test.
  1710. * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
  1711. (hash_free_from_gtype): Use it to free GValues.
  1712. (hashtable_append): New function.
  1713. (ptrarray_append): Fix prototype.
  1714. (slist_append): Ditto.
  1715. (_dbus_gvalue_utils_test): Extend tests.
  1716. * glib/dbus-gtype-specialized.c
  1717. (dbus_g_type_specialized_init_append): Renamed from
  1718. dbus_g_type_specialized_collection_init_append. Remove const from
  1719. value, since we steal it.
  1720. (dbus_g_type_specialized_map_append): New function.
  1721. * glib/dbus-gtype-specialized.h: Update prototypes.
  1722. Add DBusGTypeSpecializedMapAppendFunc.
  1723. * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
  1724. _dbus_gvalue_test.
  1725. * glib/dbus-gtest.h: Prototype it.
  1726. 2005-07-08 Ross Burton <ross@openedhand.com>
  1727. * dbus/dbus-glib.h:
  1728. Add DBysGAsyncData for the async bindings.
  1729. * glib/dbus-binding-tool-glib.c:
  1730. Re-enable the async bindings.
  1731. * test/glib/test-dbus-glib.c:
  1732. Add a test for the generated async bindings.
  1733. 2005-07-08 Colin Walters <walters@verbum.org>
  1734. * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
  1735. connection concept.
  1736. 2005-07-08 Colin Walters <walters@verbum.org>
  1737. * tools/Makefile.am: Kill of print-introspect in favor of using
  1738. dbus-send --print-reply=literal.
  1739. * test/glib/test-service-glib.xml:
  1740. * test/glib/test-service-glib.c (my_object_get_objs): New test
  1741. for "ao".
  1742. * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
  1743. (main): Test GetObjs.
  1744. * glib/examples/statemachine/Makefile.am:
  1745. * glib/examples/statemachine/sm-marshal.list:
  1746. * glib/examples/statemachine/statemachine-client.c:
  1747. * glib/examples/statemachine/statemachine-server.c:
  1748. * glib/examples/statemachine/statemachine-server.xml:
  1749. * glib/examples/statemachine/statemachine.c:
  1750. * glib/examples/statemachine/statemachine.h:
  1751. * glib/examples/statemachine/statemachine.xml:
  1752. New example.
  1753. * glib/examples/example-service.c (main): Move invocation
  1754. of dbus_g_object_type_install_info earlier, to emphasize it
  1755. should only be done once.
  1756. * glib/examples/example-signal-emitter.c (main): Ditto.
  1757. * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
  1758. * glib/dbus-gvalue.h (dbus_gtype_to_signature)
  1759. (dbus_gvalue_marshal): Update prototypes.
  1760. * glib/dbus-gvalue.c: Update all marshalling functions to take
  1761. const GValue instead of GValue.
  1762. (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
  1763. types.
  1764. (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
  1765. change.
  1766. (dbus_gtype_to_signature): Handle generic collecitons and maps.
  1767. Return a newly-allocated string.
  1768. (demarshal_proxy, demarshal_object_path, demarshal_object)
  1769. (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
  1770. we get the wrong types from message.
  1771. (get_type_demarshaller): New function, extracted from
  1772. dbus_gvalue_demarshal.
  1773. (demarshal_collection): New function, demarshals generic
  1774. collection.
  1775. (dbus_gvalue_demarshal): Just invoke result of
  1776. get_type_demarshaller. Throw error if we don't have one.
  1777. (marshal_garray_basic): Abort on OOM.
  1778. (get_type_marshaller): New function, extracted from
  1779. dbus_gvalue_marshal.
  1780. (collection_marshal_iterator, marshal_collection): New functions;
  1781. implements generic marshalling for an iteratable specialized
  1782. collection.
  1783. (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
  1784. * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
  1785. G_TYPE_STRING.
  1786. (ptrarray_value_from_gvalue): Ditto.
  1787. (ptrarray_append, ptrarray_free): New functions.
  1788. (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
  1789. (slist_append, slist_end_append, slist_free): New functions.
  1790. (dbus_g_type_specialized_builtins_init): Add append fuctions
  1791. for GPtrArray and GSList. Register GSList.
  1792. (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
  1793. * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
  1794. New.
  1795. (dbus_g_type_specialized_collection_init_append)
  1796. (dbus_g_type_specialized_collection_append)
  1797. (dbus_g_type_specialized_collection_end_append): Prototype.
  1798. (DBusGTypeSpecializedCollectionVtable): Add append_func and
  1799. end_append_func.
  1800. * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
  1801. (dbus_g_type_specialized_collection_append)
  1802. (dbus_g_type_specialized_collection_end_append): New functions.
  1803. (dbus_g_type_map_value_iterate): Take const GValue.
  1804. (dbus_g_type_collection_value_iterate): Ditto.
  1805. * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
  1806. _dbus_gvalue_utils_test.
  1807. * glib/dbus-gtest.h: Prototype it.
  1808. * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
  1809. using uninitialized owner_list.
  1810. (dbus_g_proxy_begin_call_internal): Move return_if_fail to
  1811. public API.
  1812. (dbus_g_proxy_end_call_internal): Update to use error set
  1813. from dbus_gvalue_demarshal instead of setting it here.
  1814. (dbus_g_proxy_begin_call): Move return_if_fail here.
  1815. * glib/dbus-gobject.c (write_interface): Update for
  1816. dbus_gtype_to_signature returning new string.
  1817. * configure.in: Add glib/examples/statemachine.
  1818. 2005-07-08 Joe Shaw <joeshaw@novell.com>
  1819. * configure.in: Add a configure option, --with-console-auth-dir
  1820. * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
  1821. new setting. Patch from Kay Sievers.
  1822. 2005-07-06 Colin Walters <walters@verbum.org>
  1823. * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
  1824. (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
  1825. (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
  1826. (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
  1827. Delete in favor of dbus_g_proxy_begin_call and
  1828. dbus_g_proxy_cancel_call.
  1829. (DBusGProxyCall, DBusGProxyCallNotify): New.
  1830. (dbus_g_proxy_begin_call): Change prototype to take callback, user
  1831. data, and destroy function. This replaces
  1832. dbus_g_pending_call_set_notify.
  1833. (dbus_g_proxy_cancel_call): Prototype.
  1834. (DBusGAsyncData): Delete, shouldn't be needed anymore.
  1835. * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
  1836. pending_calls map.
  1837. (struct _DBusGProxyManager): Add bus_proxy member, which is an
  1838. internal proxy for calls to the bus. Remove
  1839. pending_nameowner_calls, now the internal proxy keeps track.
  1840. (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
  1841. pending_nameowner_calls.
  1842. (got_name_owner_cb): Update prototype, and use
  1843. dbus_g_proxy_end_call.
  1844. (got_name_owner_cb): Remove reference to pending_nameowner_calls.
  1845. (dbus_g_proxy_manager_register): Delete directly libdbus code in
  1846. favor of using internal proxy.
  1847. (dbus_g_proxy_manager_unregister): Update to use
  1848. dbus_g_proxy_cancel_call for any pending GetNameOwner call.
  1849. (dbus_g_proxy_init): Initialize pending calls map.
  1850. (dbus_g_proxy_constructor): New.
  1851. (dbus_g_proxy_class_init): Add get/set property functions,
  1852. constructor, and add NAME, PATH, and INTERFACE properties.
  1853. (cancel_pending_call): New function.
  1854. (dbus_g_proxy_dispose): Iterate over any outstanding calls and
  1855. cancel them.
  1856. (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
  1857. (GPendingNotifyClosure): New structure.
  1858. (d_pending_call_notify, d_pending_call_free): Moved here from
  1859. dbus-glib.c.
  1860. (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
  1861. ordering.
  1862. (manager_begin_bus_call): New internal function for talking to
  1863. internal bus proxy.
  1864. (dbus_g_proxy_new): Construct object using GObjet properties.
  1865. (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
  1866. Create closure of same, and insert call into map of pending calls.
  1867. (dbus_g_proxy_end_call_internal): Take call id instead of pending
  1868. call. Look up pending call in current set. Remove it when we've
  1869. completed.
  1870. (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
  1871. (dbus_g_proxy_begin_call): Change API to take callback, user data,
  1872. and destroy function directly.
  1873. (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
  1874. (dbus_g_proxy_call): Invoke with NULL callback.
  1875. (dbus_g_proxy_cancel_call): New function, replaces
  1876. dbus_g_pending_call_cancel.
  1877. * glib/dbus-gparser.c (validate_signature): Fix call to
  1878. dbus_set_g_error.
  1879. * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
  1880. New quark for attaching metadata to GType.
  1881. (info_hash): Delete.
  1882. (lookup_object_info): Look up using quark.
  1883. (dbus_g_object_type_install_info): Check that a type is classed,
  1884. not that it's an object. Also just install type data using quark
  1885. instead of using global hash.
  1886. * glib/dbus-glib.c (dbus_g_pending_call_ref)
  1887. (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
  1888. (GPendingNotifyClosure): Delete.
  1889. (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
  1890. (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
  1891. * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
  1892. client method generation until we can fix it...
  1893. * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
  1894. (load_from_service_thread_func): Ditto.
  1895. * tools/dbus-names-model.c (struct NamesModel): Hold
  1896. DBusGProxyCall.
  1897. (have_names_notify): Update prototype, use
  1898. dbus_g_proxy_cancel_call.
  1899. (names_model_reload): Update for new dbus_g_proxy_begin_call API.
  1900. * tools/dbus-monitor.c (filter_func): Update for print_message
  1901. API change.
  1902. * test/glib/test-dbus-glib.c: Add more tests for async
  1903. invocations. Update many begin_call/end_call pairs to just use
  1904. dbus_g_proxy_call.
  1905. * tools/dbus-send.c (main): Add --print-reply=literal mode. This
  1906. allows us to dump print-introspect.c.
  1907. * tools/dbus-print-message.h (print_message): Add literal argument
  1908. to print_message which is intended to allow printing arguments without
  1909. metadata like "string=".
  1910. * tools/dbus-print-message.c (print_iter): Add literal argument.
  1911. (print_message): Allow printing string messages literally.
  1912. 2005-07-05 Colin Walters <walters@verbum.org>
  1913. * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
  1914. Remove value refcount leak, original patch from Jorn Baayen
  1915. <jorn@openedhand.com>. Also remove useless extra value in favor
  1916. of prepending to value array directly.
  1917. 2005-07-02 Colin Walters <walters@verbum.org>
  1918. * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
  1919. 2005-07-01 Colin Walters <walters@verbum.org>
  1920. Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
  1921. * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
  1922. (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
  1923. G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
  1924. and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
  1925. 2005-06-30 Colin Walters <walters@verbum.org>
  1926. * test/glib/test-dbus-glib.c:
  1927. * test/glib/test-service-glib.c:
  1928. * test/glib/test-service-glib.xml: Update tests for new error
  1929. setting bits, also add async tests (patch from Ross Burton).
  1930. * test/glib/Makefile.am (test_service_glib_LDADD): Add
  1931. DBUS_GLIB_THREADS_LIBS.
  1932. * glib/dbus-gproxy.c (get_name_owner)
  1933. (dbus_g_pending_call_end_valist): Ditto.
  1934. * glib/dbus-gobject.c (error_metadata): New mapping from GError
  1935. domain (GQuark) to DBusGErrorInfo.
  1936. (gerror_domaincode_to_dbus_error_name): Attempt to look up error
  1937. quark in error_metadata. Take message interface as default
  1938. error message interface.
  1939. (gerror_to_dbus_error_message): Pass message interface.
  1940. (dbus_set_g_error): Resurrected.
  1941. (dbus_g_error_info_free): New function.
  1942. (dbus_g_object_type_install_info): Use g_type_class_ref instead
  1943. of _peek to actually create the object class if it hasn't been
  1944. created yet.
  1945. (dbus_g_error_domain_register): New function.
  1946. * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
  1947. * glib/dbus-gparser.c (validate_signature): Ditto.
  1948. * dbus/dbus-glib.h (dbus_g_error_set): Delete.
  1949. (dbus_g_error_domain_register): Prototype.
  1950. * glib/dbus-glib.c (dbus_g_error_set): Delete.
  1951. Update tests.
  1952. 2005-06-29 Colin Walters <walters@verbum.org>
  1953. * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
  1954. DBUS_TYPE_G_OBJECT_PATH.
  1955. * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
  1956. for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
  1957. be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
  1958. (dbus_g_object_path_get_g_type): New function.
  1959. (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
  1960. to DBUS_TYPE_G_OBJECT_PATH by default.
  1961. (demarshal_proxy): Remove unused name variable.
  1962. (demarshal_object_path, marshal_object_path): New functions.
  1963. (demarshal_proxy_array, marshal_proxy_array): Delete.
  1964. * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
  1965. DBUS_TYPE_G_OBJECT_PATH to char *.
  1966. (dbus_g_type_get_lookup_function): Map builtin
  1967. DBUS_TYPE_G_OBJECT_PATH.
  1968. * test/glib/test-dbus-glib.c
  1969. * test/glib/test-service-glib.c (my_object_objpath):
  1970. Adapt tests to new object path marshalling.
  1971. 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
  1972. * configure.in: force check for Python >= 2.4
  1973. 2005-06-29 Colin Walters <walters@verbum.org>
  1974. Patch from Ross Burton <ross@openedhand.com>
  1975. * glib/dbus-gobject.c (invoke_object_method): Unset object
  1976. value in all cases, not only in async case.
  1977. 2005-06-29 Colin Walters <walters@verbum.org>
  1978. * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
  1979. name_call for keeping track of any outgoing GetNameOwner call.
  1980. Also add for_owner and associated.
  1981. (struct _DBusGProxyManager): Add owner_names, which is hash table
  1982. that maps a base name to a list of names it owns (that we're
  1983. interested in). Add pending_nameowner_calls which is a list of
  1984. all outstanding GetNameOwner; avoids us having to iterate over
  1985. every proxy. Add unassociated_proxies which keeps track of name
  1986. proxies with no associated name owner.
  1987. (dbus_g_proxy_manager_unref): Destroy owner_names.
  1988. (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
  1989. name refcounts.
  1990. (find_name_in_info, name_owner_foreach)
  1991. (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
  1992. (dbus_g_proxy_manager_monitor_name_owner)
  1993. (dbus_g_proxy_manager_unmonitor_name_owner)
  1994. (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
  1995. New functions; they manipulate the owner_names mapping.
  1996. (got_name_owner_cb): New function.
  1997. (get_name_owner): New function, extracted from
  1998. dbus_g_proxy_new_for_name_owner.
  1999. (dbus_g_proxy_manager_register): For now we need to keep track of
  2000. all NameOwnerChanged. Also if the proxy is for a name, if we
  2001. don't already know the name owner, queue a new GetNameOwner
  2002. request and add it to our list of unassociated proxies. Otherwise
  2003. inc the refcount.
  2004. (dbus_g_proxy_manager_unregister): If this proxy is for a name,
  2005. cancel any pending GetNameOwner call, etc.
  2006. (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
  2007. the owner_names mapping to look up the current names for the
  2008. signal source, and dispatch to any proxies for that name.
  2009. (dbus_g_proxy_new): Initialize new members.
  2010. (dbus_g_proxy_new_for_name): Delete unused proxy variable.
  2011. (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
  2012. (dbus_g_pending_call_end_valist): New function, extracted from
  2013. dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
  2014. but want to use the GLib infrastructure. Also note how many
  2015. arguments in reply were over.
  2016. (dbus_g_pending_call_end): New function, just call
  2017. dbus_g_pending_call_end_valist.
  2018. (dbus_g_proxy_end_call_internal): Just call
  2019. dbus_g_pending_call_end_valist.
  2020. * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
  2021. of builtin marshaller for STRING_STRING_STRING.
  2022. * test/glib/test-dbus-glib.c:
  2023. * test/glib/test-service-glib.c:
  2024. * test/glib/test-service-glib.xml:
  2025. Extend tests to cover name proxies, destruction of owner proxies,
  2026. etc.
  2027. * glib/examples/example-signal-recipient.c
  2028. (dbus_g_proxy_new_for_name_owner): Create a name proxy.
  2029. * tools/dbus-send.c (main): Print D-BUS error name in addition
  2030. to message.
  2031. 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
  2032. * python/dbus_bindings.pyx.in (cunregister_function_handler,
  2033. cmessage_function_handler): Patch from
  2034. Anthony Baxter <anthony@interlink.com.au> fixes threading problems
  2035. by using the Py_GILState_Ensure/Release to synchronize with the
  2036. python runtime.
  2037. 2005-06-28 Ray Strode <rstrode@redhat.com>
  2038. * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
  2039. babysitter helper process on last unref, bug #2813.
  2040. 2005-06-27 Colin Walters <walters@verbum.org>
  2041. * test/glib/test-dbus-glib.c:
  2042. * test/glib/test-service-glib.c:
  2043. * test/glib/test-service-glib.xml:
  2044. Test hash table signal emitting.
  2045. * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
  2046. types to their fundamental basis types, since this is what
  2047. marshallers operate on. Also add an entry for VOID__BOXED.
  2048. (dbus_g_object_register_marshaller_array): Convert to fundamental.
  2049. 2005-06-26 Havoc Pennington <hp@redhat.com>
  2050. * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
  2051. from Don Park
  2052. 2005-06-26 Colin Walters <walters@verbum.org>
  2053. * glib/dbus-glib.c (dbus_set_g_error): Delete.
  2054. (dbus_g_error_set): New public function from its ashes; used by
  2055. both service-side method implementation and GLib bindings
  2056. internals.
  2057. (dbus_g_error_has_name, dbus_g_error_get_name): New function.
  2058. (_dbus_glib_test): Add some tests.
  2059. * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
  2060. * test/glib/test-service-glib.c (my_object_throw_error): Use
  2061. dbus_g_error_set.
  2062. * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
  2063. errors thrown by dbus_g_error_set.
  2064. * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
  2065. * glib/dbus-gparser.c (validate_signature): Ditto.
  2066. * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
  2067. (dbus_g_proxy_end_call_internal): Ditto.
  2068. * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
  2069. converts DBUS_ERROR_x to DBUS_GERROR_x.
  2070. (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
  2071. * doc/TODO: Remove error TODO.
  2072. * doc/dbus-tutorial.xml: Update with documentation about error
  2073. handling.
  2074. * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
  2075. sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
  2076. GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
  2077. 2005-06-22 Colin Walters <walters@verbum.org>
  2078. Patch from Ross Burton <ross@openedhand.com>
  2079. * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
  2080. 2005-06-20 Colin Walters <walters@verbum.org>
  2081. * configure.in: Add glib/examples.
  2082. * glib/Makefile.am: Add examples/
  2083. * glib/examples/.cvsignore
  2084. * glib/examples/Makefile.am
  2085. * glib/examples/example-client.c
  2086. * glib/examples/example-service.c
  2087. * glib/examples/example-service.xml
  2088. * glib/examples/example-signal-emitter.c
  2089. * glib/examples/example-signal-emitter.xml
  2090. * glib/examples/example-signal-recipient.c:
  2091. New files; GLib binding examples, ported from
  2092. python/examples.
  2093. 2005-06-20 Colin Walters <walters@verbum.org>
  2094. * dbus/dbus-glib.h:
  2095. * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
  2096. dbus_g_proxy_call.
  2097. * glib/dbus-binding-tool-glib.c:
  2098. * doc/dbus-tutorial.xml:
  2099. * test/glib/test-dbus-glib.c: Update for rename.
  2100. 2005-06-20 Colin Walters <walters@verbum.org>
  2101. Patch suggested by Ross Burton <ross@openedhand.com>
  2102. * glib/dbus-gobject.c (export_Q_SIGNALS): Free signal name.
  2103. (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
  2104. memory leak. Add a bit of documentation.
  2105. (dbus_g_method_return_error): Free context, and note we do
  2106. so.
  2107. 2005-06-18 Murray Cumming <murrayc@murrayc.com>
  2108. * dbus/dbus-glib.h:
  2109. * glib/dbus-gobject.c:
  2110. * glib/dbus-gproxy.c:
  2111. * glib/dbus-gvalue.c: Predeclare structs as
  2112. typedef struct _Something Something instead of
  2113. typedef struct Something Something, so we can
  2114. redeclare the prototypes. Other GNOME libraries
  2115. do this already.
  2116. 2005-06-17 Colin Walters <walters@verbum.org>
  2117. * tools/dbus-names-model.c (have_names_notify): Fix call
  2118. to dbus_g_proxy_end_call.
  2119. 2005-06-17 Colin Walters <walters@verbum.org>
  2120. * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
  2121. spew warnings if we get malformed remote Q_SIGNALS.
  2122. * glib/dbus-gobject.c (propsig_iterate): New function.
  2123. (lookup_object_info): New function, extracted from
  2124. lookup_object_and_method.
  2125. (introspect_properties, introspect_Q_SIGNALS): Delete; these
  2126. are merged into write_interface.
  2127. (write_interface): Write out Q_SIGNALS and properties here;
  2128. dump the org.gtk.object stuff and use the interface given
  2129. in the introspection data blob. Also fix up property XML.
  2130. (lookup_values): New function.
  2131. (introspect_interfaces): Gather a mapping from interface to a
  2132. list of its methods, Q_SIGNALS, and properties, then write out
  2133. each interface.
  2134. (lookup_object_and_method): Use lookup_object_info.
  2135. (struct DBusGSignalClosure): Add interface.
  2136. (dbus_g_signal_closure_new): Add interface. Don't dup signame;
  2137. we can just use the constant data.
  2138. (dbus_g_signal_closure_finalize): Don't free signal name.
  2139. (signal_emitter_marshaller): Use interface from signal closure.
  2140. (export_Q_SIGNALS): Only export Q_SIGNALS mentioned in introspection
  2141. blob.
  2142. (dbus_g_connection_register_g_object): Warn if we have no
  2143. introspection data for an object.
  2144. (funcsig_equal): Remove unused variable.
  2145. (dbus_g_object_register_marshaller): Take varargs instead of
  2146. list.
  2147. (dbus_g_object_register_marshaller_array): New function,
  2148. extracted from old dbus_g_object_register_marshaller.
  2149. * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
  2150. Q_SIGNALS and property data.
  2151. (write_quoted_string): New function, extracted from generate_glue.
  2152. (generate_glue): Write Q_SIGNALS and properties to introspection
  2153. blob.
  2154. * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
  2155. exported_Q_SIGNALS and exported_properties.
  2156. (dbus_g_object_register_marshaller): Update prototype.
  2157. (dbus_g_object_register_marshaller_array): Prototype.
  2158. * test/glib/test-dbus-glib.c: Extend testing to cover new Q_SIGNALS.
  2159. * test/glib/test-service-glib.c: Add new test Q_SIGNALS and method
  2160. to emit them.
  2161. * test/glib/test-service-glib.xml: Add some test Q_SIGNALS.
  2162. * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
  2163. and my-object-marshal.h
  2164. (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
  2165. my-object-marshal.c.
  2166. (my-object-marshal.c, my-object-marshal.h): Implement.
  2167. * test/glib/.cvsignore: Update.
  2168. * doc/TODO: Remove two GLib TODO items fixed by this
  2169. patch.
  2170. 2005-06-16 Colin Walters <walters@verbum.org>
  2171. * doc/TODO: Update for GLib bindings.
  2172. 2005-06-16 Colin Walters <walters@verbum.org>
  2173. * glib/dbus-binding-tool-glib.c:
  2174. * glib/dbus-gobject.c:
  2175. * glib/dbus-gproxy.c: Add Nokia copyright; Patch
  2176. from Ross Burton, for his GLib bindings work.
  2177. 2005-06-16 Colin Walters <walters@verbum.org>
  2178. * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
  2179. to iterate instead of walking to G_TYPE_INVALID.
  2180. Patch based on a patch from Ryan Gammon.
  2181. 2005-06-16 Colin Walters <walters@verbum.org>
  2182. * bus/bus.c (bus_context_new): Set parser to NULL
  2183. after we unref it (Patch from Chris Boscolo, #2174).
  2184. 2005-06-16 Colin Walters <walters@verbum.org>
  2185. * python/dbus_bindings.pyx.in: Import size_t,
  2186. __int64_t, __uint64_t, and __signed.
  2187. * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
  2188. Define cmsg struct, output it.
  2189. (_dbus_read_credentials_unix_socket):
  2190. Use cmsg struct.
  2191. Patch from Joe Markus Clarke for FreeBSD support.
  2192. 2005-06-16 Colin Walters <walters@verbum.org>
  2193. * tools/dbus-send.c (append_array): Use strtok.
  2194. (append_dict): New function.
  2195. (type_from_name): New function, extracted from main.
  2196. (main): Handle sending dicts.
  2197. * tools/dbus-print-message.c (print_iter): Print dict
  2198. entries.
  2199. 2005-06-16 Colin Walters <walters@verbum.org>
  2200. * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
  2201. values as the empty string (#2948).
  2202. 2005-06-16 Colin Walters <walters@verbum.org>
  2203. * dbus/Makefile.am:
  2204. * mono/doc/Makefile.am:
  2205. * test/glib/Makefile.am:
  2206. Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
  2207. 2005-06-16 Colin Walters <walters@verbum.org>
  2208. * dbus/dbus-marshal-header.c (_dbus_header_load): Set
  2209. header byte order from expected byte order (Patch from Chris Wilson, #3475).
  2210. * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
  2211. Increment pointer after swapping fixed array. Add assertion
  2212. for array length.
  2213. 2005-06-15 Colin Walters <walters@verbum.org>
  2214. * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
  2215. Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
  2216. 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
  2217. * NEWS: Update to 0.34
  2218. 2005-06-15 David Zeuthen <davidz@redhat.com>
  2219. * configure.in (LT_CURRENT): Revert back to 1 as the library
  2220. hasn't changed and we've certainly not committed to protocol
  2221. stability yet. All this does is to break ABI. See commit note
  2222. from hp@redhat.com 2005-05-05 for details.
  2223. 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
  2224. * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
  2225. (_dbus_connection_run_builtin_filters): New method
  2226. (dbus_connection_dispatch): Run the builtin filters which in turn
  2227. runs the peer filter which handles Ping messages.
  2228. * doc/TODO:
  2229. - Ping isn't handled: This patch fixes it
  2230. - Add a test case for the Ping message: added TODO item
  2231. 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
  2232. * dbus/dbus-message.c:
  2233. (dbus_message_has_path): New method
  2234. (dbus_message_has_interface): New method
  2235. (dbus_message_has_member): New method
  2236. * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
  2237. New method
  2238. * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
  2239. the keyring directory is private to the user
  2240. * doc/TODO:
  2241. - The convenience functions in dbus-bus.h should perhaps have
  2242. the signatures that they would have if they were autogenerated
  2243. stubs. e.g. the acquire service function. We should also evaluate
  2244. which of these functions to include, in light of the fact that
  2245. GLib/Qt native stubs will probably also exist.: Punted
  2246. - add dbus_message_has_path(), maybe has_member/interface:
  2247. fixed in this patch
  2248. - in dbus-keyring.c, enforce that the keyring dir is not
  2249. world readable/writable: Fixed in this patch
  2250. 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
  2251. * dbus/dbus-marshal-validate.h: Added a new validation
  2252. error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
  2253. out of memory errors when validating signitures
  2254. * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
  2255. in places where we previously used DBUS_VALID and a FALSE return
  2256. value to indicate OOM
  2257. * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
  2258. Use a stack to track the number of elements inside containers. The
  2259. stack values are then used to validate that dict entries have only two
  2260. elements within them.
  2261. (validate_body_helper): check the reason for failure when validating
  2262. varients
  2263. * dbus/dbus-message.c (load_message): use
  2264. DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
  2265. DBUS_VALID and a FALSE return value to indicate OOM
  2266. * doc/TODO: remove "- validate dict entry number of fields" as this
  2267. patch fixes it
  2268. 2005-06-14 David Zeuthen <davidz@redhat.com>
  2269. * bus/bus.c (process_config_every_time): Drop existing conf-dir
  2270. watches (if applicable) and add new watches
  2271. * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
  2272. (main): Setup SIGIO signal handler if using D_NOTIFY
  2273. * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
  2274. * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
  2275. (merge_included): Also merge conf_dirs list
  2276. (bus_config_parser_unref): Clear conf_dirs list
  2277. (include_dir): Add directory to conf_dirs list
  2278. (bus_config_parser_get_conf_dirs): New function
  2279. * bus/dir-watch.[ch]: New files
  2280. * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
  2281. * configure.in: Add checks for D_NOTIFY on Linux
  2282. 2005-06-14 Colin Walters <walters@verbum.org>
  2283. * glib/dbus-binding-tool-glib.c:
  2284. * glib/dbus-gobject.c:
  2285. * glib/dbus-gvalue.c: Fix indentation and brace style.
  2286. 2005-06-14 Ross Burton <ross@openedhand.com>.
  2287. * glib/dbus-glib.h: Make DBusGMethodInvocation
  2288. a private structure. Rearrange prototypes a bit.
  2289. * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
  2290. documentation for first_arg_type.
  2291. * glib/dbus-gobject.c: Move DBusGMethodInvocation
  2292. here, add documentation. Move dbus_g_method_return
  2293. and dbus_g_method_return_error into public API
  2294. section.
  2295. 2005-06-14 Colin Walters <walters@verbum.org>
  2296. * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
  2297. Add missing return statements, noticed by Ross Burton.
  2298. 2005-06-13 Ross Burton <ross@openedhand.com>.
  2299. * glib/dbus-gobject.c: Handle errors on message
  2300. demarshalling by sending error message back.
  2301. * glib/dbus-gvalue.c: Initialize return variables.
  2302. 2005-06-13 Colin Walters <walters@verbum.org>
  2303. * glib/Makefile.am: Fix thinko in last patch.
  2304. 2005-06-13 Colin Walters <walters@verbum.org>
  2305. * glib/Makefile.am: Move dbus-gtype-specialized.c
  2306. and dbus-gtype-specialized.h into a _HEADERS variable,
  2307. install them.
  2308. 2005-06-12 Colin Walters <walters@verbum.org>
  2309. Async Q_SIGNALS and various bugfixes and testing by
  2310. Ross Burton <ross@openedhand.com>.
  2311. * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
  2312. (dbus_gvalue_genmarshal_name_from_type)
  2313. (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
  2314. (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
  2315. (dbus_g_value_types_init, dbus_gtype_from_signature)
  2316. (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
  2317. (dbus_gtypes_from_arg_signature): New function prototypes.
  2318. (dbus_gvalue_demarshal): Take context and error arguments.
  2319. (dbus_gvalue_demarshal_variant): New function.
  2320. (dbus_gvalue_demarshal_message): New function.
  2321. (dbus_gvalue_store): Delete.
  2322. * glib/dbus-gvalue.c:
  2323. File has been almost entirely rewritten; now we special-case
  2324. more types such as DBUS_TYPE_SIGNATURE, handle arrays and
  2325. hash tables correctly, etc. Full support for recursive values
  2326. is not yet complete.
  2327. * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
  2328. argument of signal to G_TYPE_POINTER since we now pass a
  2329. structure.
  2330. (lookup_g_marshaller): Delete in favor of
  2331. _dbus_gobject_lookup_marshaller.
  2332. (marshal_dbus_message_to_g_marshaller): Use
  2333. _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
  2334. to handle remote signal callbacks.
  2335. (dbus_g_proxy_new_from_proxy): New function; creates a new
  2336. DBusGProxy by copying an existing one.
  2337. (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
  2338. (dbus_g_proxy_get_path): New functions.
  2339. (dbus_g_proxy_marshal_args_to_message): New function;
  2340. factored out of existing code.
  2341. (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
  2342. from a varargs array.
  2343. (dbus_g_proxy_begin_call_internal): New function.
  2344. (dbus_g_proxy_end_call_internal): New function.
  2345. (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
  2346. as arguments; simply invoke dbus_g_proxy_begin_call_internal
  2347. after collecting args into value array.
  2348. (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
  2349. invoke dbus_g_proxy_end_call_internal.
  2350. (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
  2351. end_call_internal.
  2352. (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
  2353. types.
  2354. (array_free_all): New function.
  2355. (dbus_g_proxy_add_signal): Take GTypes.
  2356. * glib/dbus-gobject.h:
  2357. (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
  2358. (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
  2359. Prototype.
  2360. * glib/dbus-gobject.c: Add a global marshal_table hash which
  2361. stores mappings from type signatures to marshallers. Change lots
  2362. of invocations of dbus_gtype_to_dbus_type to
  2363. dbus_gtype_to_signature.
  2364. (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
  2365. (introspect_Q_SIGNALS): Fix test for query.return_type.
  2366. (set_object_property): Update invocation of dbus_gvalue_demarshal.
  2367. (invoke_object_method): Many changes. Handle asynchronous
  2368. invocations. Convert arguments with
  2369. dbus_gvalue_demarshal_message. Handle errors. Use
  2370. DBusSignatureIter instead of strlen on args. Handle all arguments
  2371. generically. Special-case variants.
  2372. (dbus_g_method_return, dbus_g_method_return_error): New function.
  2373. (DBusGSignalClosure): New structure, closes over signal
  2374. information.
  2375. (dbus_g_signal_closure_new): New function.
  2376. (dbus_g_signal_closure_finalize): New function.
  2377. (signal_emitter_marshaller): New function; is special marshaller
  2378. which emits Q_SIGNALS on bus.
  2379. (export_Q_SIGNALS): New function; introspects object Q_SIGNALS and
  2380. connects to them.
  2381. (dbus_g_object_type_install_info): Take GType instead of
  2382. GObjectClass.
  2383. (dbus_g_connection_register_g_object): Invoke export_Q_SIGNALS.
  2384. (dbus_g_connection_lookup_g_object): New function.
  2385. (DBusGFuncSignature) New structure; used for mapping type
  2386. signatures to marshallers.
  2387. (funcsig_hash): New function; hashes DBusGFuncSignature.
  2388. (funcsig_equal): New function; compares DBusGFuncSignature.
  2389. (_dbus_gobject_lookup_marshaller): New function.
  2390. (dbus_g_object_register_marshaller): New function; used to
  2391. register a marshaller at runtime for a particular signature.
  2392. * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
  2393. * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
  2394. which notes a server method implementation should be
  2395. asynchronous.
  2396. * glib/dbus-binding-tool-glib.c
  2397. (dbus_binding_tool_output_glib_server): Call
  2398. dbus_g_value_types_init.
  2399. (write_formal_parameters): Use dbus_gtype_from_signature. Handle
  2400. variants specially.
  2401. (dbus_g_type_get_lookup_function): Turn GType into an invocation
  2402. of a lookup function.
  2403. (write_args_for_direction): Use dbus_g_type_get_lookup_function.
  2404. (write_untyped_out_args): New method; write output arguments.
  2405. (write_formal_declarations_for_direction): Function for
  2406. writing prototypes.
  2407. (write_formal_parameters_for_direction): Function for
  2408. writing implementations.
  2409. (write_typed_args_for_direction): Function for writing
  2410. arguments prefixed with GTypes.
  2411. (write_async_method_client): Write out async version
  2412. of method.
  2413. * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
  2414. (dbus_g_type_get_marshal_name): Move mapping from GType
  2415. to marshal name into here.
  2416. (dbus_g_type_get_c_name): Move into here.
  2417. (compute_marshaller): Convert signature to type with
  2418. dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
  2419. (compute_marshaller_name): Ditto.
  2420. (compute_marshaller): Handle async signal annotations.
  2421. (gather_marshallers): Return if we don't have a known
  2422. prefix.
  2423. (generate_glue): Collect introspection blob here, and
  2424. write all of the blob at the end. This allows an object
  2425. with multiple interfaces to work.
  2426. Mark async methods in introspection blob.
  2427. * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
  2428. dbus-gtype-specialized.c, dbus-gtype-specialized.h,
  2429. dbus-gvalue-utils.h, dbus-gvalue-utils.c.
  2430. * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
  2431. avoids people accidentally using DBUS_TYPE_* which should
  2432. not be necessary anymore.
  2433. Do include dbus-gtype-specialized.h, which are utilities
  2434. for GLib container types.
  2435. Add various #defines for types such as
  2436. DBUS_TYPE_G_BOOLEAN_ARRAY.
  2437. (DBusGValueIterator, DBusGValue): Define, not fully used
  2438. yet.
  2439. (dbus_g_value_get_g_type): Type for recursive value.
  2440. (dbus_g_value_open, dbus_g_value_iterator_get_value)
  2441. (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
  2442. (dbus_g_value_free): Prototypes.
  2443. (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
  2444. (dbus_g_proxy_set_interface): Prototype.
  2445. (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
  2446. (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
  2447. types.
  2448. (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
  2449. Accessors.
  2450. (DBusGAsyncData, DBusGMethodInvocation): Structures for
  2451. doing async invocations.
  2452. (dbus_g_method_return, dbus_g_method_return_error):
  2453. Prototypes.
  2454. * doc/dbus-tutorial.xml: Update GLib section.
  2455. * tools/dbus-viewer.c (load_child_nodes): Update
  2456. for new invocation type of dbus_g_proxy_end_call.
  2457. (load_from_service_thread_func): Ditto.
  2458. * tools/print-introspect.c (main): Ditto.
  2459. * tools/dbus-names-model.c (have_names_notify)
  2460. (names_model_reload, names_model_set_connection)
  2461. Use GTypes.
  2462. * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
  2463. needed since Python bindings use GLib bindings.
  2464. * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
  2465. Add --prefix argument.
  2466. * tools/Makefile.am: Define DBUS_COMPILATION. Remove
  2467. unneeded --ignore-unsupported arg.
  2468. * test/glib/test-service-glib.c:
  2469. * test/glib/test-service-glib.xml:
  2470. * test/glib/test-dbus-glib.c: Add many more tests.
  2471. 2005-06-06 David Zeuthen <davidz@redhat.com>
  2472. * doc/TODO: Add item about need to remove deprecated functions.
  2473. * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
  2474. * dbus/dbus-connection.c (dbus_connection_disconnect): New function
  2475. to repair the ABI which was broken with the last commit.
  2476. 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
  2477. * dbus/dbus-connection.c, dbus/dbus-connection.h
  2478. (dbus_connection_disconnect): renamed to dbus_connection_close
  2479. for API symmetry with dbus_connection_open
  2480. (_dbus_connection_open_internal):
  2481. s/dbus_connection_disconnect/dbus_connection_close
  2482. * dbus/dbus-bus.c (dbus_bus_get):
  2483. s/dbus_connection_disconnect/dbus_connection_close
  2484. * bus/connection.c (bus_connections_unref,
  2485. bus_connections_setup_connection, bus_connections_expire_incomplete):
  2486. s/dbus_connection_disconnect/dbus_connection_close
  2487. * bus/dispatch.c (bus_dispatch, kill_client_connection,
  2488. kill_client_connection_unchecked, check_hello_connection):
  2489. s/dbus_connection_disconnect/dbus_connection_close
  2490. * bus/bus.c (new_connection_callback):
  2491. s/dbus_connection_disconnect/dbus_connection_close
  2492. * tools/dbus-send.c (main):
  2493. s/dbus_connection_disconnect/dbus_connection_close
  2494. * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
  2495. s/dbus_connection_disconnect/dbus_connection_close
  2496. * test/test-service.c (path_message_func, filter_func):
  2497. s/dbus_connection_disconnect/dbus_connection_close
  2498. * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
  2499. 2005-05-25 Colin Walters <walters@verbum.org>
  2500. * dbus/dbus-protocol.h: Move various bus service #defines such
  2501. as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
  2502. dbus/dbus-shared.h.
  2503. * dbus/dbus-shared.h: Various defines moved here.
  2504. * dbus/dbus-marshal-header.c: Include dbus-shared.h.
  2505. 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
  2506. * python/__init__.py: Python bindings deserve a minor version
  2507. update. Upped to (0, 40, 2)
  2508. 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
  2509. * python/decorators.py: add explicitly_pass_message decorator
  2510. for passing in the dbus message as keyword for edge case signal
  2511. handling
  2512. * python/matchrules.py (SignalMatchRule.__repr__): fix output
  2513. to conform with what dbus expects for match rules
  2514. (SignalMatchRule.execute): add the dbus message as a keyword
  2515. if the signal handler has requested it
  2516. * python/examples/example/signal-recipient.py: added some more
  2517. examples on how to hook up to Q_SIGNALS
  2518. 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
  2519. * python/decorators.py: import dbus_bindings
  2520. * python/matchrules.py (SignalMatchRule, SignalMatchTree,
  2521. SignalMatchNode): new classes that implement wildcard signal
  2522. callback matching using a tree lookup. Heavily modified from a
  2523. patch sent by Celso Pinto (fd.o bug #3241)
  2524. * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
  2525. use new match classes to handle Q_SIGNALS.
  2526. 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
  2527. * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
  2528. 2005-05-18 Havoc Pennington <hp@redhat.com>
  2529. * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
  2530. gettext. Not really worth requiring yet perhaps, but any
  2531. production quality 1.0 would require it so we should go ahead and
  2532. get things set up. We do have a couple token calls to
  2533. bindtextdomain in the code already.
  2534. 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
  2535. * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
  2536. when using recursive g_main_loops
  2537. * python/_dbus.py (class Bus): add the ProxyObjectClass
  2538. alias for ProxyObject to make it easier for the Twisted
  2539. networking framework to integrate dbus.
  2540. * python/proxies.py (class ProxyObject): add the ProxyMethodClass
  2541. alias for ProxyMethod to make it easier for the Twisted
  2542. networking framework to integrate dbus.
  2543. 2005-05-11 Ross Burton <ross@openedhand.com>
  2544. * glib/dbus-glib-tool.c: Add --prefix argument.
  2545. * glib/dbus-binding-tool-glib.h: Add prefix argument.
  2546. * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
  2547. Add prefix argument.
  2548. (generate_glue): Pass prefix argument down.
  2549. (dbus_binding_tool_output_glib_server): Pass prefix to
  2550. glib-genmarshal.
  2551. 2005-05-11 Colin Walters <walters@verbum.org>
  2552. * tools/dbus-send.c (append_array): New function.
  2553. (append_arg): Broken out from main.
  2554. (main): Add cheesy hack to send arrays and variants.
  2555. (usage): Update.
  2556. * tools/dbus-print-message.c (print_iter): Broken out
  2557. from main.
  2558. 2005-05-11 Colin Walters <walters@verbum.org>
  2559. * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
  2560. New function, returns signature string for signature iter.
  2561. * dbus/dbus-signature.h: Prototype it.
  2562. * dbus/dbus-message.c (dbus_message_iter_get_signature):
  2563. New function, returns signature string for message iter.
  2564. (dbus_message_iter_get_array_len): New function, returns
  2565. length of array.
  2566. (dbus_message_iter_get_fixed_array): Fix assertion; this
  2567. function should be used when the iter is pointing to the
  2568. contents of an array
  2569. * dbus/dbus-message.h: Prototypes.
  2570. * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
  2571. New function; returns length of an array.
  2572. * dbus/dbus-marshal-recursive.h: Prototype it.
  2573. 2005-05-11 Colin Walters <walters@verbum.org>
  2574. * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
  2575. compilation error.
  2576. 2005-05-08 Havoc Pennington <hp@redhat.com>
  2577. * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
  2578. daemon's pid, not the parent's pid, to the file descriptor.
  2579. Reported by Taj Morton.
  2580. 2005-05-05 Havoc Pennington <hp@redhat.com>
  2581. * configure.in (LT_*): add notes on how the libtool versioning
  2582. works to save thinking. Increment soname to indicate protocol
  2583. breakage (though really the library interface hasn't changed I
  2584. guess)
  2585. * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
  2586. verify the GUID received from server matches what we were
  2587. expecting, if we had an expectation
  2588. * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
  2589. (_dbus_auth_get_guid_from_server): new function
  2590. (send_begin): parse the OK args
  2591. * doc/dbus-specification.xml: add GUID to the auth protocol
  2592. 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
  2593. * Fix my name in previous changelog ;)
  2594. * python/proxies.py (ProxyObject.__getattr__): add further patch
  2595. from Anthony Baxter to throw an AttributeError when python
  2596. __special__ functions are called instead of marshling them over
  2597. the bus (Bug#1685 comment 3).
  2598. 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
  2599. * python/Makefile.am: changed to use pyexecdir for the binding
  2600. shared libraries (Bug#2494)
  2601. * python/exceptions.py: bring exceptions over from the bindings
  2602. so they can be used in applications (Bug#2036)
  2603. Make all exceptions derive from DBusException
  2604. * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
  2605. of classes so that print obj doesn't throw an exception (Bug #1685)
  2606. 2005-05-03 Ross Burton <ross@openedhand.com>
  2607. * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
  2608. Return if we get an error during registration. Set up a
  2609. weak reference on object to unregister if object is destroyed.
  2610. (unregister_gobject): New function.
  2611. 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
  2612. * python/dbus_bindings.pyx.in:
  2613. - added new type classes for hinting to the marashaler what type
  2614. to send over the wire
  2615. - added int16 and uint16 marshalers
  2616. - Fixed a bug in the type constants that caused int32 to go out
  2617. as uint16 over the wire
  2618. * python/dbus.py: split up into different files and renamed _dbus.py
  2619. * python/__init__.py, python/_util.py, python/decorators.py,
  2620. python/exceptions.py, python/proxies.py, python/services.py,
  2621. python/types.py: new files split off from dbus.py
  2622. * python/Makefile.am: Add new files, remove dbus.py and
  2623. install all python files to <python module dir>/dbus
  2624. * python/examples/*: Added #!/usr/bin/env python to the top of
  2625. every example. Patch provided by Tatavarty Kalyan
  2626. 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
  2627. * NEWS: Update to 0.33
  2628. 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
  2629. * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
  2630. method for doing async calls
  2631. (_pending_call_notification): New C function for handling pendning call
  2632. callbacks
  2633. (set_notify): New method for setting pending call notification
  2634. * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
  2635. Async capabilities added to remote method calls
  2636. (Sender): class removed
  2637. (RemoteService): class removed
  2638. (ObjectTree): class removed for now
  2639. (RemoteObject): Renamed to ProxyObject
  2640. (RemoteMethod): Renamed to ProxyMethod
  2641. (method): Decorator added for decorating python methods as dbus methods
  2642. (signal): Decorator added for decorating python methods as signal emitters
  2643. (ObjectType): Metaclass added for generating introspection data and the
  2644. method callback vtable
  2645. (Interface): Wrapper class added to wrap objects in a dbus interface
  2646. (Object): Uses ObjectType as its metaclass and exports Introspect
  2647. of the org.freedesktop.DBus.Introspectable interface
  2648. (ValidationException, UnknownMethodException): new exceptions
  2649. * python/examples/*: Modified to fit with the new bindings
  2650. 2005-04-23 Havoc Pennington <hp@redhat.com>
  2651. * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
  2652. reported by Tony Houghton
  2653. * test/test-service.c (main): test
  2654. dbus_connection_get_object_path_data()
  2655. * dbus/dbus-object-tree.c (find_handler): be sure we always init
  2656. the exact_match
  2657. (_dbus_object_tree_get_user_data_unlocked): new function used by
  2658. dbus_connection_get_object_path_data()
  2659. (do_register): add assertion test for get_user_data_unlocked
  2660. (object_tree_test_iteration): more tests
  2661. * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
  2662. new function from Dan Reed to let you get the user data from
  2663. dbus_connection_register_object_path()
  2664. 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
  2665. * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
  2666. in numerous places that did not account for the NULL terminator
  2667. (signature_from_seed): changed the manual string copy loop to
  2668. just use strcpy instead
  2669. make check should now pass
  2670. 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
  2671. * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
  2672. so that it allows messages that are not Q_SIGNALS to pass in
  2673. NULL as the interface.
  2674. 2005-04-18 David Zeuthen <davidz@redhat.com>
  2675. * glib/dbus-gmain.c (io_handler_destroy_source):
  2676. (timeout_handler_destroy_source, connection_setup_free):
  2677. Also unref the source to avoid memory leaks.
  2678. 2005-04-13 David Zeuthen <davidz@redhat.com>
  2679. * bus/config-parser.c (bus_config_parser_new): Bump this to a
  2680. more reasonable, yet still totally arbitrary, value :-).
  2681. 2005-04-13 David Zeuthen <davidz@redhat.com>
  2682. * doc/TODO: Added an "important for 1.0" item about selinux
  2683. allow/deny messages
  2684. 2005-04-13 David Zeuthen <davidz@redhat.com>
  2685. * bus/selinux.c: Add c-file-style to top of file
  2686. (log_audit_callback): Don't free the data here anymore
  2687. (bus_selinux_check): Don't take spid and tpid since appending
  2688. that to auxdata may OOM.
  2689. (bus_selinux_allows_acquire_service): Handle OOM and signal back
  2690. to the caller if we are OOM by taking an error object.
  2691. (bus_selinux_allows_send): -do-
  2692. * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
  2693. and bus_selinux_allows_send
  2694. * bus/bus.c (bus_context_check_security_policy): Pass error and
  2695. pass on OOM thrown by bus_selinux_allows_send()
  2696. * bus/services.c (bus_registry_acquire_service): Pass error and
  2697. pass on OOM thrown by bus_selinux_allows_acquire_service()
  2698. 2005-04-13 Havoc Pennington <hp@redhat.com>
  2699. * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
  2700. message at a time to avoid monopolizing the main loop, bug
  2701. #2953 from Benjamin Otte
  2702. 2005-04-09 Havoc Pennington <hp@redhat.com>
  2703. * dbus/dbus-string.c (copy): change a memcpy to memmove due to
  2704. possible overlap, fix from Daniel Reed
  2705. (fixup_alignment): fix signedness warnings
  2706. (_dbus_string_append_unichar): ditto
  2707. 2005-04-09 Havoc Pennington <hp@redhat.com>
  2708. * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
  2709. * glib/dbus-glib-tool.c (main): fix warning
  2710. * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
  2711. * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
  2712. add a new function that can be used in simple applications that
  2713. don't have a main loop and are willing to block
  2714. 2005-04-05 David Zeuthen <davidz@redhat.com>
  2715. Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
  2716. * glib/dbus-gmain.c:
  2717. (io_handler_destroy_source): Remove from list of IO handlers
  2718. of the ConnectionSetup object
  2719. (timeout_handler_destroy_source): -do- for timeout handlers
  2720. (io_handler_source_finalized): Don't remove from list since
  2721. we now do that in io_handler_destroy_source(). Renamed from
  2722. io_handler_source_destroyed
  2723. (timeout_handler_source_destroyed): -do- for timeout handlers
  2724. (connection_setup_free): It is now safe to iterate over all
  2725. IO and timeout handlers as the _destroy_source removes them
  2726. from the list synchronously
  2727. 2005-03-30 Havoc Pennington <hp@redhat.com>
  2728. * configure.in: change check to gtk 2.4
  2729. * tools/dbus-viewer.c (name_combo_changed_callback): remove
  2730. gtk_combo_box_get_active_text() usage to decrement GTK requirement
  2731. to 2.4
  2732. 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
  2733. * News: Update 0.32
  2734. * HACKING: Fixed realease instructions. configure.in should be updated to
  2735. the next release by the person who made the last release.
  2736. 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
  2737. * python/lvalue_cast_post_process.py - removed. Patch has been
  2738. submitted to Pyrex maintainers that fixes gcc4.0 errors
  2739. * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
  2740. 2005-03-24 Daniel Reed <n@ml.org>
  2741. * tools/Makefile.am: Make print-introspect and
  2742. dbus-bus-introspect.xml building conditional on HAVE_GLIB.
  2743. 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
  2744. * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
  2745. * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
  2746. had in Red Hat packages for a while but for some reason never
  2747. got merged upstream
  2748. (_dbus_is_a_number): New checks if a string
  2749. can be converted to a number and does the conversion if it can
  2750. (_dbus_user_database_lookup): Add check to see if the given username
  2751. is a udi. This allows udi's to be used instead of usernames in the
  2752. config file.
  2753. (_dbus_user_database_lookup_group): Add check to see if the given groupname
  2754. is a gdi. This allows gdi's to be used instead of groupnames in the
  2755. config file.
  2756. 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
  2757. * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
  2758. code so that it compiles with gcc4.0
  2759. * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
  2760. run dbus_bindings.c through lvalue_cast_post_process.py and copy the
  2761. results back to dbus_binding.c
  2762. 2005-03-20 Colin Walters <walters@verbum.org>
  2763. Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
  2764. * configure.in: Require GTK+ 2.6.
  2765. 2005-03-20 Colin Walters <walters@verbum.org>
  2766. * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
  2767. 2005-03-17 Tom Parker <palfrey@tevp.net>
  2768. * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
  2769. print DBUS_UID_UNSET; instead print passed username. Also
  2770. be sure to actually use gid looked up in cache.
  2771. * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
  2772. for DBUS_GID_UNSET and groupname.
  2773. 2005-03-17 Colin Walters <walters@verbum.org>
  2774. * bus/print-introspect.c: Move to tools/.
  2775. * bus/run-with-tmp-session-bus.sh: Ditto.
  2776. * glib/Makefile.am (dbus-glib-bindings.h): Move
  2777. generation to tools/Makefile.am.
  2778. * test/glib/run-test.sh: Update to handle move
  2779. of run-with-tmp-session-bus.sh.
  2780. * test/glib/test-service-glib.c: Update to handle
  2781. move of dbus-glib-bindings.h.
  2782. * tools/print-introspect.c: Moved here
  2783. from bus/, and ported to GLib bindings.
  2784. * tools/run-with-tmp-session-bus.sh: Moved here
  2785. from bus/.
  2786. * tools/Makefile.am: Generate dbus-glib-bindings.h
  2787. and dbus-bus-introspect.xml here.
  2788. * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
  2789. Update.
  2790. 2005-03-17 Colin Walters <walters@verbum.org>
  2791. * bus/driver.c (write_args_for_direction): Use
  2792. _dbus_string_get_const_data to retrieve string;
  2793. _dbus_string_get_const_data_len doesn't actually return
  2794. a NULL-terminated substring.
  2795. * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
  2796. (main): Change to use org_freedesktop_DBus_request_name
  2797. instead of using g_proxy_begin_call/end_call.
  2798. 2005-03-15 Joe Shaw <joeshaw@novell.com>
  2799. * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
  2800. generating the finalizer. Fixes from Ben Maurer.
  2801. 2005-03-12 Joe Shaw <joeshaw@novell.com>
  2802. * mono/BusDriver.cs: Update method names: ListServices
  2803. becomes ListNames; GetOwner becomes GetNameOwner.
  2804. * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
  2805. onto the eval stack when removing the delegate.
  2806. 2005-03-12 Joe Shaw <joeshaw@novell.com>
  2807. * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
  2808. LT_CURRENT. Set it to the autoconf variable.
  2809. * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
  2810. classes that disconnects the signal handler delegate from the
  2811. service object. Fixes a big leak of proxy objects on the
  2812. client side of things. Patch from Ben Maurer
  2813. <bmaurer@ximian.com>
  2814. 2005-03-12 Colin Walters <walters@verbum.org>
  2815. * bus/driver.c (write_args_for_direction): New function,
  2816. parses a type signature into arguments and outputs to
  2817. XML.
  2818. (bus_driver_handle_introspect): Use it instead of
  2819. hardcoding XML for certain signatures.
  2820. * bus/Makefile.am (dbus-bus-introspect.xml): Add
  2821. dependency on dbus-daemon.
  2822. * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
  2823. argument, pass it to dbus_binding_tool_output_glib_client.
  2824. * glib/dbus-binding-tool-glib.c
  2825. (generate_client_glue): Protect against multiple inclusion.
  2826. (dbus_binding_tool_output_glib_client): Add
  2827. G_BEGIN_DECLS/G_END_DECLS.
  2828. * glib/dbus-binding-tool-glib.c (compute_client_method_name):
  2829. Change to just take iface prefix directly.
  2830. (write_formal_parameters): Clarify error message.
  2831. (check_supported_parameters): New function; checks to see type
  2832. signatures of method parameters are supported.
  2833. (generate_client_glue): Handle ignore_unsupported flag.
  2834. (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
  2835. parameter.
  2836. * glib/Makefile.am (dbus-glib-bindings.h): Pass
  2837. --ignore-unsupported by default until glib bindings
  2838. support arrays.
  2839. 2005-03-11 Colin Walters <walters@verbum.org>
  2840. * glib/Makefile.am: Generate dbus-glib-bindings.h and
  2841. install it.
  2842. * bus/print-introspect.c: New file; prints introspection
  2843. data for a given name and object path.
  2844. * bus/run-with-tmp-session-bus.sh: New file, refactored
  2845. from test/glib/run-test.sh. Creates a temporary session
  2846. bus and runs another program.
  2847. * test/glib/run-test.sh: Refactor to invoke
  2848. run-with-tmp-session-bus.sh.
  2849. * bus/driver.c (bus_driver_handle_introspect): Fix to print new
  2850. introspection format. Also change to use DBUS_TYPE_x_AS_STRING
  2851. macros instead of hardcoding.
  2852. * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
  2853. 2005-03-11 Joe Shaw <joeshaw@novell.com>
  2854. * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
  2855. this unref; it doesn't match up evenly in some codepaths.
  2856. (_dbus_connection_block_pending_call): Unref at every exitpoint;
  2857. this evenly matches with the ref near the top of this function.
  2858. 2005-03-09 Joe Shaw <joeshaw@novell.com>
  2859. * dbus/dbus-object-tree.c
  2860. (_dbus_object_tree_unregister_and_unlock): If checks are enabled
  2861. and we try to unregister a path that's not registered, still go
  2862. through the process of unlocking and don't just return.
  2863. 2005-03-09 Colin Walters <walters@verbum.org>
  2864. * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
  2865. to this are generated for client-side wrappers. Invokes a
  2866. D-BUS method and returns reply values.
  2867. * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
  2868. function; writes signature string for argument direction.
  2869. (write_args_for_direction): Change to pass input values directly
  2870. instead of via address, and fix indentation.
  2871. (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
  2872. make generated wrappers inlineable.
  2873. * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
  2874. note about using dbus_type_is_fixed.
  2875. * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
  2876. dbus/dbus-signature.c as dbus_type_is_fixed.
  2877. All callers updated.
  2878. * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
  2879. from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
  2880. * dbus/dbus-signature.h: Prototype.
  2881. * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
  2882. error printf code.
  2883. * test/glib/test-dbus-glib.c (main): Be sure to clear error as
  2884. appropriate instead of just freeing it.
  2885. (main): Free returned strings using g_free.
  2886. * test/glib/Makefile.am (test-service-glib-glue.h)
  2887. (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
  2888. * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
  2889. simply maps a simple D-BUS type to GType.
  2890. (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
  2891. GType.
  2892. (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
  2893. initialize the value with it.
  2894. (dbus_gvalue_binding_type_from_type): Unused, delete.
  2895. (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
  2896. various types instead of unmarshalling to value data directly.
  2897. Remove can_convert boolean.
  2898. (dbus_gvalue_marshal): Remove duplicate initialization; switch to
  2899. returning directly instead of using can_convert boolean.
  2900. (dbus_gvalue_store): New function; not related to D-BUS per-se.
  2901. Stores a GValue in a pointer to a value of its corresponding C
  2902. type.
  2903. * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
  2904. add dbus_gvalue_store.
  2905. 2005-03-08 Joe Shaw <joeshaw@novell.com>
  2906. Fix a bunch of lifecycle and memory management problems
  2907. in the mono bindings.
  2908. * mono/Arguments.cs (Arguments): Implement IDisposable
  2909. * mono/Bus.cs (Bus): Don't allow public instantiation. This is
  2910. strictly a static class.
  2911. * mono/Connection.cs: Move the DBusObjectPathVTable and associated
  2912. delegates into this file.
  2913. (Connection): Implement IDisposable.
  2914. (Dispose): Disconnect the connection and set the raw connection
  2915. pointer to IntPtr.Zero.
  2916. (~Connection): Call Dispose().
  2917. (RegisterObjectPath): Added. Manages the registration of object
  2918. paths so we can cleanly disconnect them at dispose/finalize time.
  2919. (UnregisterObjectPath): Ditto.
  2920. (set_RawConnection): Unregister all of the object paths when
  2921. changing the underlying DBusConnection. Add them back onto the
  2922. new connection, if any.
  2923. * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
  2924. more unmanaged resources anymore, so it's not necessary. Move all
  2925. the DBusObjectPathVTable stuff out of here.
  2926. (Handler): Save references to our delegates so that they don't get
  2927. finalized. Call Connection.RegisterObjectPath() instead of
  2928. dbus_connection_register_object_path() directly.
  2929. (Message_Called): Dispose the message after we're finished with
  2930. it.
  2931. * mono/Message.cs (Message): Implement IDisposable.
  2932. (Dispose): Dispose the Arguments, and set the RawMessage to
  2933. IntPtr.Zero.
  2934. (SendWithReplyAndBlock): We own the ref to the reply that comes
  2935. back from dbus_connection_send_with_reply_and_block() so add a
  2936. comment about that and unref it after we've constructed a managed
  2937. MethodReturn class around it. Fixes a big, big leak.
  2938. * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
  2939. method.
  2940. (BuildSignalHandler): After we've sent the Signal message, dispose
  2941. of it.
  2942. (BuildMethod): Dispose of the method call and reply messages after
  2943. we've sent the message and extracted the data we want from the
  2944. reply.
  2945. * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
  2946. anymore.
  2947. (Service_FilterCalled): Dispose of the message after we're
  2948. finished with it.
  2949. 2005-03-08 Joe Shaw <joeshaw@novell.com>
  2950. * dbus/dbus-connection.c (dbus_connection_send_with_reply):
  2951. After we attach our pending call to the connection, unref
  2952. it. Fixes a leak.
  2953. * mono/Connection.cs (set_RawConnection): Disconnect our
  2954. filter and match callbacks from the old connection and
  2955. reconnect them to the new connection, if any.
  2956. * mono/DBusType/Array.cs: "Code" is a static member, so
  2957. don't use "this" to refer to it. Fix for stricter checking
  2958. in Mono 1.1.4.
  2959. * mono/DBusType/ObjectPath.cs (Append): Don't leak the
  2960. object path that we pass into unmanaged code.
  2961. * mono/DBusType/String.cs (Append): Don't leak the string
  2962. that we pass into unmanged code.
  2963. 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
  2964. * NEWS: Update for 0.31
  2965. * configure.in: Release 0.31
  2966. add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
  2967. * qt/Makefile.am: fixed build
  2968. * dbus/Makefile.am: soname bump for libdbus
  2969. * glib/Makefile.am: soname bump for libdbus-glib
  2970. 2005-03-05 Havoc Pennington <hp@redhat.com>
  2971. * dbus/dbus-sysdeps.c:
  2972. (pseudorandom_generate_random_bytes_buffer): fix to have no return
  2973. value
  2974. (_dbus_generate_random_bytes_buffer): fix return value
  2975. * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
  2976. checks actually work, from Tom Parker <fdo@tevp.net>
  2977. 2005-03-01 Colin Walters <walters@verbum.org>
  2978. * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
  2979. functions copied from dbus-glib-tool.c.
  2980. (main): Convert lots of error code to use them.
  2981. Also add some testing for introspection bits.
  2982. 2005-03-01 Colin Walters <walters@verbum.org>
  2983. * doc/TODO: Remove introspection signature TODO.
  2984. 2005-02-27 Colin Walters <walters@verbum.org>
  2985. * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
  2986. Change return value to const char * instead of int so we can do
  2987. full signatures.
  2988. (struct PropertyInfo, struct ArgInfo): Store char *.
  2989. (property_info_new, arg_info_new): Update parameters, strdup.
  2990. (property_info_unref, arg_info_unref): Free.
  2991. * glib/dbus-gidl.h: Update prototypes.
  2992. * glib/dbus-gparser.c (basic_type_from_string): Delete.
  2993. (validate_signature): New function, just validates signature and
  2994. sets GError.
  2995. (parse_property, parse_arg): Invoke validate_signature. Store
  2996. signature instead of just type code.
  2997. * glib/dbus-gvalue.c (base_type_from_signature): New utility
  2998. function to return a primary type for a signature, dropping
  2999. information about types in container types.
  3000. (dbus_gvalue_genmarshal_name_from_type)
  3001. (dbus_gvalue_binding_type_from_type)
  3002. (dbus_gvalue_ctype_from_type): Update to take full signature
  3003. instead of type code.
  3004. (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
  3005. * glib/dbus-gvalue.h: Update prototypes for above.
  3006. * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
  3007. glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
  3008. (introspect_properties, introspect_Q_SIGNALS, write_interface):
  3009. Update to handle signatures, and remove usage of
  3010. _dbus_gutils_type_to_string.
  3011. (handle_introspect): Print out type codes instead of e.g. "string"
  3012. in hardcoded introspection XML; also use x_AS_STRING constants
  3013. instead of hardcoding in string.
  3014. * glib/dbus-glib-tool.c (pretty_print): Handle signature change
  3015. to string. Remove usage of _dbus_gutils_type_to_string.
  3016. * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
  3017. * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
  3018. deletion.
  3019. * glib/dbus-binding-tool-glib.c (compute_marshaller)
  3020. (compute_marshaller_name, generate_glue): Handle signature change
  3021. to string.
  3022. (write_formal_parameters, write_args_for_direction): Ditto, and
  3023. remove FIXME.
  3024. * tools/dbus-tree-view.c (type_to_string): Delete.
  3025. (info_set_func_text): Update to print full signatures.
  3026. * test/glib/test-service-glib.xml: Change types to new
  3027. introspection format.
  3028. 2005-02-26 Havoc Pennington <hp@redhat.com>
  3029. * doc/TODO: remove the "guid" item
  3030. * test/glib/test-profile.c (no_bus_thread_func): use open_private
  3031. (with_bus_thread_func): use open_private
  3032. * dbus/dbus-connection.c (dbus_connection_open_private): new
  3033. function that works like the old dbus_connection_open()
  3034. (dbus_connection_open): now returns an existing connection if
  3035. possible
  3036. * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
  3037. through the GUID to the transport
  3038. * dbus/dbus-server.c (_dbus_server_init_base): keep around the
  3039. GUID in hex-encoded form.
  3040. * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
  3041. pass GUID argument in to the transport
  3042. * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
  3043. guid argument
  3044. * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
  3045. * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
  3046. 2005-02-25 Havoc Pennington <hp@redhat.com>
  3047. * doc/dbus-specification.xml: document the GUID thing
  3048. * dbus/dbus-server.c (_dbus_server_init_base): initialize a
  3049. globally unique ID for the server, and put a "guid=hexencoded"
  3050. field in the address
  3051. * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
  3052. * dbus/dbus-message.c: ditto
  3053. * dbus/dbus-dataslot.c: ditto
  3054. * dbus/dbus-list.c: ditto
  3055. * dbus/dbus-internals.h: wait, just include
  3056. dbus-threads-internal.h here
  3057. * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
  3058. use in main library
  3059. * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
  3060. 2005-02-24 Colin Walters <walters@verbum.org>
  3061. * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
  3062. 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
  3063. * glib/Makefile.am: added dbus-gobject.h to sources list
  3064. so distcheck doesn't fail
  3065. 2005-02-24 Havoc Pennington <hp@redhat.com>
  3066. * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
  3067. you must disconnect before unref, since locking and other things
  3068. are screwed up otherwise. Fix assorted other locking stuff.
  3069. * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
  3070. fix compilation
  3071. * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
  3072. into a private header and don't export from the library
  3073. * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
  3074. 2005-02-24 Colin Walters <walters@verbum.org>
  3075. * dbus/dbus-signature.c: New file; implements various functions
  3076. related to type signatures. Includes an interator for parsing,
  3077. validation functions.
  3078. (dbus_type_is_basic): Moved here from
  3079. dbus-marshal-basic.c:_dbus_type_is_basic.
  3080. (dbus_type_is_container): Moved here from
  3081. dbus-marshal-basic.c:_dbus_type_is_container.
  3082. All callers of _dbus_type_is_container and _dbus_type_is_basic
  3083. updated, and include dbus-signature.h.
  3084. * dbus/dbus-signature.h: New file; prototypes for the above.
  3085. * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
  3086. dbus-signature.h.
  3087. * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
  3088. function factored out of _dbus_first_type_in_signature.
  3089. (_dbus_first_type_in_signature_c_str): New function; returns first
  3090. type code for a type signature character.
  3091. * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
  3092. handle function moves.
  3093. * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
  3094. * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
  3095. function; skips to next complete type in type signature.
  3096. Implemented using previous skip_one_complete_type. Now
  3097. skip_one_complete_type just delegates to
  3098. _dbus_type_signature_next.
  3099. * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
  3100. to dbus-signature.c
  3101. (_dbus_type_is_container): Ditto.
  3102. * doc/dbus-specification.xml: Update introspection sample to
  3103. use real type signatures.
  3104. * dbus/dbus-test.h: Prototype signature test.
  3105. * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
  3106. signature tests.
  3107. * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
  3108. 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
  3109. * python/dbus_bindings.pyx.in (PendingCall::get_reply):
  3110. s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
  3111. 2005-02-21 Colin Walters <walters@verbum.org>
  3112. * dbus/dbus-test-main.c (main): Take optional specific test
  3113. argument.
  3114. * dbus/dbus-test.c (run_test): New function, runs a test function
  3115. with no data directory.
  3116. (run_data_test): Like above, but takes data directory.
  3117. (dbus_internal_do_not_use_run_tests): Take
  3118. specific test argument. Replace lots of cut n' paste code
  3119. with run_test and run_data_test.
  3120. * dbus/dbus-test.h: Update prototype for
  3121. dbus_internal_do_not_use_run_tests.
  3122. 2005-02-20 Havoc Pennington <hp@redhat.com>
  3123. Fix bugs reported by Daniel P. Berrange
  3124. * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
  3125. (protected_change_watch): new function
  3126. (_dbus_server_toggle_watch, _dbus_server_remove_watch)
  3127. (_dbus_server_add_watch): change to work like the
  3128. dbus-connection.c equivalents; like those, probably kind of
  3129. busted, but should at least mostly work for now
  3130. (dbus_server_disconnect): drop the lock if we were already
  3131. disconnected, patch from Daniel P. Berrange
  3132. * dbus/dbus-server.c (_dbus_server_toggle_timeout)
  3133. (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
  3134. same stuff
  3135. * doc/TODO: todo about unscrewing this mess
  3136. 2005-02-19 Colin Walters <walters@verbum.org>
  3137. * glib/dbus-binding-tool-glib.c
  3138. (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
  3139. * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
  3140. as errno.h and sys/stat.h.
  3141. (lose): New function, prints error with
  3142. newline and exits.
  3143. (lose_gerror): Similar, but takes GError for message.
  3144. (main): Add --output argument to specify output file to write to,
  3145. instead of always printing to stdout. In this mode, determine
  3146. timestamps on source files to see whether any are newer than the
  3147. target file. If not, exit. Also convert a number of error
  3148. messages to use lose (since it's shorter), and switch to using
  3149. g_io_channel_shutdown.
  3150. 2005-02-19 Havoc Pennington <hp@redhat.com>
  3151. * glib/dbus-gobject.c
  3152. (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
  3153. * glib/dbus-glib.c: fix doxygen warnings
  3154. * glib/dbus-gparser.c (parse_annotation): error if an annotation
  3155. is found on an <arg>
  3156. 2005-02-17 Colin Walters <walters@verbum.org>
  3157. * glib/dbus-gobject.h: Don't export
  3158. _dbus_glib_marshal_dbus_message_to_gvalue_array.
  3159. * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
  3160. (invoke_object_method): Handle it.
  3161. * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
  3162. Handle rename.
  3163. 2005-02-17 Colin Walters <walters@verbum.org>
  3164. * bus/.cvsignore, doc/.cvsignore
  3165. * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
  3166. Update.
  3167. 2005-02-17 Colin Walters <walters@verbum.org>
  3168. * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
  3169. Rename to DBUS_SERVICE_DBUS.
  3170. (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
  3171. (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
  3172. Change the value from "org.freedesktop.Local"
  3173. to "org.freedesktop.DBus.Local".
  3174. (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
  3175. (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
  3176. DBUS_INTERFACE_INTROSPECTABLE.
  3177. Change the value from "org.freedesktop.Introspectable"
  3178. to "org.freedesktop.DBus.Introspectable".
  3179. (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
  3180. DBUS_INTERFACE_PROPERTIES.
  3181. Change the value from "org.freedesktop.Properties"
  3182. to "org.freedesktop.DBus.Properties".
  3183. (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
  3184. DBUS_INTERFACE_PEER.
  3185. Change the value from "org.freedesktop.Peer"
  3186. to "org.freedesktop.DBus.Peer".
  3187. (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
  3188. DBUS_INTERFACE_LOCAL.
  3189. Change the value from "org.freedesktop.Local"
  3190. to "org.freedesktop.DBus.Local".
  3191. All other users of those constants have been changed.
  3192. * bus/driver.c (bus_driver_handle_introspect): Use constants.
  3193. * glib/dbus-gobject.c (handle_introspect): Use constants.
  3194. * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
  3195. 2005-02-17 Colin Walters <walters@verbum.org>
  3196. * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
  3197. (parse_node, parse_interface, parse_method, parse_signal)
  3198. (parse_property, parse_annotation): Lose if we're currently in an
  3199. annotation.
  3200. (parse_annotation): New function.
  3201. (parser_start_element, parser_end_element): Handle annotation.
  3202. (parse_method, parse_interface): Remove support for c_name attribute,
  3203. switch to annotations.
  3204. * glib/dbus-gidl.h (interface_info_get_binding_names)
  3205. (method_info_get_binding_names)
  3206. (interface_info_get_binding_name, method_info_get_binding_name)
  3207. (interface_info_set_binding_name, method_info_set_binding_name):
  3208. Remove.
  3209. (interface_info_get_annotations, method_info_get_annotations)
  3210. (interface_info_get_annotation, method_info_get_annotation)
  3211. (interface_info_add_annotation, method_info_add_annotation):
  3212. Prototype.
  3213. * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
  3214. for "bindings".
  3215. (struct MethodInfo): Ditto.
  3216. Straightfoward conversion of binding methods into annotation methods
  3217. as prototyped.
  3218. * glib/dbus-glib-tool.c (pretty_print): Print annotations.
  3219. * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
  3220. * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
  3221. Use new annotation API.
  3222. * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
  3223. annotation element.
  3224. * doc/dbus-specification.xml: Discuss introspection annotations,
  3225. include list of well-known annotations.
  3226. * test/glib/test-service-glib.xml: Make validate against new DTD.
  3227. 2005-02-17 Colin Walters <walters@verbum.org>
  3228. This patch is based on initial work from
  3229. Paul Kuliniewicz <kuliniew@purdue.edu>.
  3230. * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
  3231. initialization of GValue from dbus type to here.
  3232. (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
  3233. for the "glib-genmarshal" program from a DBus type.
  3234. (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
  3235. into the C name for it we use in the glib bindings.
  3236. (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
  3237. glib C type (not GValue).
  3238. (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
  3239. * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
  3240. from dbus-gobject.c.
  3241. * glib/dbus-gutils.h: Prototype it.
  3242. * glib/dbus-gproxy.c: Include new dbus-gobject.h.
  3243. (marshal_dbus_message_to_g_marshaller): Use new shared function
  3244. dbus_glib_marshal_dbus_message_to_gvalue_array.
  3245. * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
  3246. Will be changed once we have annotations.
  3247. * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
  3248. GStaticRWLock. Callers updated.
  3249. (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
  3250. (string_table_next): New function for iterating over zero-terminated
  3251. string value array.
  3252. (string_table_lookup): New function; retrieves specific entry in
  3253. array.
  3254. (get_method_data): New function; look up method data in object data chunk.
  3255. (object_error_domain_prefix_from_object_info)
  3256. (object_error_code_from_object_info): New functions, but not implemented yet.
  3257. (method_interface_from_object_info): New function; retrieve interface name.
  3258. (method_name_from_object_info): New function; retrieve method name.
  3259. (method_arg_info_from_object_info): New function; retrieve argument data.
  3260. (arg_iterate): New function; iterates over serialized argument data.
  3261. (method_dir_signature_from_object_info): New function; returns a
  3262. GString holding type signature for arguments for just one
  3263. direction (input or output).
  3264. (method_input_signature_from_object_info)
  3265. (method_output_signature_from_object_info): New functions.
  3266. (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
  3267. converts dbus message arguments into a GValue array. Used for both
  3268. signal handling and method invocation.
  3269. (struct DBusGlibWriteIterfaceData): New utility structure.
  3270. (write_interface): New function; generate introspection XML for
  3271. an interface.
  3272. (introspect_interfaces): New function; gathers all interface->methods,
  3273. generates introspection XML for them.
  3274. (handle_introspect): Invoke introspect_interfaces.
  3275. (get_object_property): Be sure to zero-initalize stack-allocated GValue.
  3276. (lookup_object_and_method): New function; examines an incoming message
  3277. and attempts to match it up (via interface, method name, and argument
  3278. signature) with a known object and method.
  3279. (gerror_domaincode_to_dbus_error_name): New function; converts a
  3280. GError domain and code into a DBus error name. Needs GError data
  3281. added to object introspection to work well.
  3282. (gerror_to_dbus_error_message): Creates a DBusMessage error return from
  3283. GError.
  3284. (invoke_object_method): New function to invoke an object method
  3285. looked up via lookup_object_and_method. Parses the incoming
  3286. message, turns it into a GValue array, then invokes the marshaller
  3287. specified in the DBusGMethodInfo. Creates a new message with
  3288. either return values or error message as appropriate.
  3289. (gobject_message_function): Invoke lookup_object_and_method and
  3290. invoke_object_method.
  3291. * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
  3292. (enum DBusBindingOutputMode): New enum for binding output modes.
  3293. (pretty_print): Print binding names.
  3294. (dbus_binding_tool_error_quark): GError bits.
  3295. (version): Fix typo.
  3296. (main): Create GIOChannel for output. Parse new --mode argument,
  3297. possible values are "pretty-print", "glib-server", "glib-client".
  3298. Use mode to invoke appropriate function.
  3299. * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
  3300. * glib/dbus-glib-tool.h: New header, just includes GError bits
  3301. for now.
  3302. * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
  3303. maps binding style to name.
  3304. (struct MethodInfo): Ditto.
  3305. (get_hash_keys, get_hash_key): Utility function, returns keys for
  3306. a GHashTable.
  3307. (interface_info_new, method_info_new): Initialize bindings.
  3308. (interface_info_unref, method_info_unref): Destroy bindings.
  3309. (method_info_get_binding_names, method_info_get_binding_name)
  3310. (interface_info_get_binding_names, interface_info_get_binding_name):
  3311. Functions for retrieving binding names.
  3312. (method_info_set_binding_name, interface_info_set_binding_name):
  3313. Functions for setting binding names.
  3314. * glib/dbus-binding-tool-glib.h: New file, has prototypes
  3315. for glib binding generation.
  3316. * glib/dbus-binding-tool-glib.c: New file, implements server-side
  3317. and client-side glib glue generation.
  3318. * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
  3319. dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
  3320. dbus-glib-tool.h.
  3321. * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
  3322. of using GClosureMarshal directly.
  3323. (struct DBusGObjectInfo): Add n_infos member.
  3324. * test/glib/test-service-glib.xml: New file; contains introspection data
  3325. for MyTestObject used in test-service-glib.c.
  3326. * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
  3327. (my_object_do_nothing, my_object_increment, my_object_throw_error)
  3328. (my_object_uppercase, my_object_many_args): New test methods.
  3329. (main): Use dbus_g_object_class_install_info to include generated object
  3330. info.
  3331. * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
  3332. as well as client-side bindings.
  3333. * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
  3334. (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
  3335. using both the dbus_gproxy stuff directly as well as the generated bindings.
  3336. 2005-02-15 Havoc Pennington <hp@redhat.com>
  3337. * dbus/dbus-connection.c (dbus_connection_dispatch): always
  3338. complete a pending call, don't run filters first.
  3339. * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
  3340. dbus_pending_call_steal_reply
  3341. * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
  3342. _dbus_connection_block_pending_call
  3343. (dbus_pending_call_get_reply): change to steal_reply and return a
  3344. ref
  3345. * dbus/dbus-connection.c
  3346. (dbus_connection_send_with_reply_and_block): port to work in terms
  3347. of DBusPendingCall
  3348. (_dbus_connection_block_pending_call): replace block_for_reply
  3349. with this
  3350. 2005-02-14 Havoc Pennington <hp@redhat.com>
  3351. * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
  3352. properly handle looking up group information by name; fix
  3353. from j@bootlab.org
  3354. 2005-02-13 Havoc Pennington <hp@redhat.com>
  3355. * dbus/dbus-connection.c (dbus_connection_return_message)
  3356. (dbus_connection_borrow_message): hold dispatch lock while message
  3357. is outstanding
  3358. (_dbus_connection_block_for_reply): hold dispatch lock while we
  3359. block for the reply, so nobody steals our reply
  3360. (dbus_connection_pop_message): hold the dispatch lock while we
  3361. pluck the message
  3362. 2005-02-13 Havoc Pennington <hp@redhat.com>
  3363. * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
  3364. (_dbus_connection_release_dispatch)
  3365. (_dbus_connection_acquire_io_path)
  3366. (_dbus_connection_release_io_path): make the mutex and condvar
  3367. control access to the "acquired" flag. Drop the connection lock
  3368. while waiting on the condvar. Hopefully these are baby steps in
  3369. roughly the right direction.
  3370. 2005-02-13 Havoc Pennington <hp@redhat.com>
  3371. * dbus/dbus-connection.c: use separate mutexes for the condition
  3372. variables; this is some kind of baseline for sanity, but the
  3373. condition variables still aren't used correctly afaict
  3374. 2005-02-13 Havoc Pennington <hp@redhat.com>
  3375. * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
  3376. fix a double-unlock
  3377. * dbus/dbus-connection.c
  3378. (_dbus_connection_detach_pending_call_unlocked): add this
  3379. Initial semi-correct pass through to fix thread locking; there are
  3380. still some issues with the condition variable paths I'm pretty
  3381. sure
  3382. * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
  3383. lock/unlock calls
  3384. * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
  3385. rename to add _unlocked
  3386. (struct DBusConnection): move "dispatch_acquired" and
  3387. "io_path_acquired" to use only one bit each.
  3388. (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
  3389. (dbus_connection_set_watch_functions): hacky fix to reentrancy
  3390. (_dbus_connection_add_watch, _dbus_connection_remove_watch)
  3391. (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
  3392. (_dbus_connection_remove_timeout)
  3393. (_dbus_connection_toggle_timeout): drop lock when calling out to
  3394. user functions; done in a hacky/bad way.
  3395. (_dbus_connection_send_and_unlock): add a missing unlock
  3396. (_dbus_connection_block_for_reply): add a missing unlock
  3397. * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
  3398. drop lock in a hacky probably unsafe way to call out to user
  3399. function
  3400. 2005-02-12 Havoc Pennington <hp@redhat.com>
  3401. * tools/dbus-tree-view.c (info_set_func_text): display more
  3402. details on args
  3403. * bus/driver.c (bus_driver_handle_list_services): list the bus
  3404. driver
  3405. * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
  3406. * glib/dbus-gidl.c (signal_info_get_n_args): new function
  3407. (method_info_get_n_args): new function
  3408. 2005-02-12 Havoc Pennington <hp@redhat.com>
  3409. * bus/driver.c (bus_driver_handle_introspect): add introspection
  3410. for bus driver
  3411. 2005-02-12 Havoc Pennington <hp@redhat.com>
  3412. * bus/driver.c: put the signature of each bus driver method in the
  3413. table of handlers and check it on incoming calls; this isn't
  3414. really useful, but going to add introspect support in a minute.
  3415. 2005-02-11 Joe Shaw <joeshaw@novell.com>
  3416. * mono/Connection.cs: The unpredictability of finalizers in mono
  3417. prevents us from deterministically disconnecting the filters from
  3418. the Service class's finalizer, so move tracking of filters and
  3419. matches here. Add API for that.
  3420. * mono/Service.cs: Remove the code, add code which calls the
  3421. methods now on the Connection class.
  3422. 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
  3423. * python/dbus.py (class Sender): added to support dbus Q_SIGNALS better
  3424. (Bus::add_signal_receiver): added expand_args parameter which defaults
  3425. to True. When expand args is True the signal handler will pass the
  3426. message arguments as parameters to the signal handler. If False
  3427. revert to previous behavior where the signal handler must get the
  3428. argument list from the message. This is to help port applications
  3429. like HAL that have a tendancy to send variable length argument lists.
  3430. self._match_rule_to_receivers is now a dict of dicts.
  3431. (Bus::remove_signal_receiver): pop handler off the dict intead of
  3432. removing it from a list
  3433. (Bus::_signal_func): change signal handlers so that interface,
  3434. signal_name, service, path and message are packed into a Sender
  3435. object and that is passed to the handler. If expand_args is True
  3436. extract the args list from the message and append it to the parameter
  3437. list
  3438. * python/dbus_bindings.pyx.in (class Signature): added to support
  3439. signiature types
  3440. (MessageIter::__init__): changed iteration limit to match D-BUS
  3441. (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
  3442. STRUCT and VARIENT type support
  3443. (MessageIter::python_value_to_dbus_sig): made recursive to support
  3444. recursive types
  3445. (MessageIter::append*): added Signature, dict, tuple
  3446. support
  3447. * python/examples/example-client.py: added examples of getting tuples
  3448. and dicts
  3449. * python/examples/example-service.py: added examples of sending tuples
  3450. and dicts
  3451. * python/examples/example-signal-recipient.py: Fixed to handle new
  3452. signal callback format
  3453. 2005-02-10 Havoc Pennington <hp@redhat.com>
  3454. * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
  3455. (call dbus_g_proxy_add_signal)
  3456. * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
  3457. escape the hostname
  3458. (_dbus_server_new_for_domain_socket): escape the path
  3459. * dbus/dbus-address.c (dbus_address_escape_value): new
  3460. (dbus_address_unescape_value): new
  3461. (dbus_parse_address): unescape values
  3462. * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
  3463. * doc/dbus-specification.xml: explain how to escape values in
  3464. addresses
  3465. 2005-02-10 Havoc Pennington <hp@redhat.com>
  3466. * dbus/dbus-message-factory.c (generate_special): modify test to
  3467. avoid using a non-basic dict key
  3468. * dbus/dbus-marshal-validate-util.c: add test for the below
  3469. * doc/dbus-specification.xml: require that dict keys are a basic
  3470. type
  3471. * dbus/dbus-marshal-validate.c
  3472. (_dbus_validate_signature_with_reason): require that dict key is a
  3473. basic type
  3474. 2005-02-10 Havoc Pennington <hp@redhat.com>
  3475. * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
  3476. change to be _and_unlock instead of _unlocked
  3477. * dbus/dbus-connection.c
  3478. (_dbus_connection_send_preallocated_unlocked_no_update): rename to
  3479. have no_update so we can find this bug quickly in future
  3480. 2005-02-10 Havoc Pennington <hp@redhat.com>
  3481. * dbus/dbus-message-util.c (verify_test_message): tests for string
  3482. array
  3483. * dbus/dbus-message.c (dbus_message_append_args_valist): add
  3484. support for arrays of string/signature/path
  3485. 2005-02-10 Joe Shaw <joeshaw@novell.com>
  3486. * dbus/dbus-connection.c
  3487. (_dbus_connection_queue_received_message_link,
  3488. _dbus_connection_message_sent): Add the path to
  3489. the verbose output.
  3490. (_dbus_connection_send_preallocated_and_unlock): Added. Calls
  3491. _dbus_connection_send_preallocated_unlocked(), updated the
  3492. dispatch status, and unlocks. Fixes a bug where certain
  3493. situations (like a broken pipe) could cause a Disconnect message
  3494. to not be sent, tricking the bus into thinking a service was still
  3495. there when the process had quit.
  3496. (_dbus_connection_send_preallocated): Call
  3497. _dbus_connection_send_preallocated_and_unlock().
  3498. (_dbus_connection_send_and_unlock): Added. Calls
  3499. _dbus_connection_send_preallocated_and_unlock().
  3500. (dbus_connection_send): Call _dbus_connection_send_and_unlock().
  3501. (dbus_connection_send_with_reply): Update the dispatch status and
  3502. unlock.
  3503. * mono/Service.cs (~Service): Added. Removes the filter so that
  3504. we don't get unmanaged code calling back into a GCed delegate.
  3505. (RemoveFilter); Added.
  3506. 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
  3507. * dbus/dbus-message.c (dbus_message_iter_open_container):
  3508. - Removed check for iterator type being an array because
  3509. get_arg_type does not work with writer iterators
  3510. - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
  3511. 2005-02-07 Havoc Pennington <hp@redhat.com>
  3512. * doc/dbus-specification.xml: some more language cleanups; add
  3513. stuff about how to deal with invalid protocol and extension
  3514. points; add _ to allowed chars in auth commands; add EXTENSION_
  3515. auth command prefix
  3516. 2005-02-06 Havoc Pennington <hp@redhat.com>
  3517. * s/expected/required/ in a couple places for clarity
  3518. 2005-02-07 Colin Walters <walters@verbum.org>
  3519. * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
  3520. sender or proposed_recipient.
  3521. 2005-02-06 Havoc Pennington <hp@redhat.com>
  3522. * dbus/dbus-message-factory.c (generate_special): more tests
  3523. * dbus/dbus-marshal-validate.c (validate_body_helper): detect
  3524. array length that exceeds the maximum
  3525. 2005-02-05 Havoc Pennington <hp@redhat.com>
  3526. * dbus/dbus-message-factory.c (generate_special): more test cases,
  3527. increasing coverage
  3528. * dbus/dbus-marshal-validate.c (validate_body_helper): return the
  3529. reason why a signature was invalid
  3530. * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
  3531. skip the length of the string before we look at it in validation
  3532. * dbus/dbus-string-util.c (_dbus_string_test): add tests for
  3533. equal_substring
  3534. * dbus/dbus-message.c (_dbus_message_loader_new): default
  3535. max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
  3536. 2005-02-05 Havoc Pennington <hp@redhat.com>
  3537. * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
  3538. if the signature of a variant was empty
  3539. (_dbus_validate_signature_with_reason): catch "(a)" (array inside
  3540. struct with no element type)
  3541. * dbus/dbus-message-factory.c (generate_uint32_changed): add more
  3542. mangled messages to break things
  3543. 2005-02-04 Havoc Pennington <hp@redhat.com>
  3544. * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
  3545. g_quark_try_string() so it actually can return 0
  3546. (dbus_g_proxy_connect_signal): ditto
  3547. 2005-02-04 Havoc Pennington <hp@redhat.com>
  3548. * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
  3549. bogus warning
  3550. (tristring_from_message): assert cleanly on null path/interface
  3551. (should not be possible though I decided later)
  3552. (dbus_g_proxy_dispose): move proxy manager unregistration here
  3553. (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
  3554. g_return_if_fail() checks
  3555. 2005-02-04 Havoc Pennington <hp@redhat.com>
  3556. * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
  3557. * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
  3558. (with some minor changes)
  3559. * doc/dbus-specification.xml: add deprecated attribute to
  3560. introspection format
  3561. 2005-01-31 Havoc Pennington <hp@redhat.com>
  3562. * glib/dbus-gproxy.c: rewrite how Q_SIGNALS work again, this time I
  3563. think it's sort of right
  3564. 2005-01-30 Havoc Pennington <hp@redhat.com>
  3565. * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
  3566. 2005-01-30 Havoc Pennington <hp@redhat.com>
  3567. * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
  3568. * autogen.sh: change to autotools 1.9
  3569. * glib/dbus-gproxy.c: completely change how Q_SIGNALS work
  3570. (dbus_g_proxy_add_signal): new function to specify signature of a
  3571. signal
  3572. (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
  3573. and g_warning if the incoming message has the wrong signature.
  3574. 2005-01-30 Havoc Pennington <hp@redhat.com>
  3575. * tools/dbus-names-model.c (have_names_notify): fix this
  3576. * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
  3577. up the string array handling a bit
  3578. 2005-01-30 Havoc Pennington <hp@redhat.com>
  3579. * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
  3580. (dbus_g_pending_call_cancel): new function
  3581. * dbus/dbus-glib.h: move GType decls for connection/message here;
  3582. * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
  3583. here, just kind of rationalizing how we handle all that
  3584. * tools/dbus-names-model.c: new file for a tree model listing the
  3585. services on a bus
  3586. * tools/dbus-tree-view.c (model_new): use proper typing on the
  3587. model rows
  3588. 2005-01-30 Havoc Pennington <hp@redhat.com>
  3589. * glib/dbus-gmain.c: add a custom GSource back that just checks
  3590. whether the message queue has anything in it; otherwise, there are
  3591. cases where we won't see messages in the queue since there was no
  3592. IO visible to the glib main loop
  3593. * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
  3594. increase default message timeout to 25 seconds
  3595. 2005-01-30 Havoc Pennington <hp@redhat.com>
  3596. * test/glib/test-profile.c (no_bus_stop_server): remove the
  3597. warning about the g_warning that I just fixed
  3598. * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
  3599. custom source, seems to be a lot easier to understand and work
  3600. better.
  3601. 2005-01-30 Havoc Pennington <hp@redhat.com>
  3602. I think this main loop thing is conceptually broken, but here are
  3603. some band aids. I'll maybe rewrite it in a minute.
  3604. * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
  3605. custom GSource, so don't pass it in; confusing
  3606. (gsource_server_finalize, gsource_connection_finalize): add
  3607. finalize handlers that remove all the watches.
  3608. 2005-01-30 Havoc Pennington <hp@redhat.com>
  3609. * glib/dbus-gobject.c (introspect_properties): fix the XML
  3610. generated
  3611. * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
  3612. which effectively detects the use of freed messages
  3613. * glib/dbus-gobject.c (handle_introspect): modify and return the
  3614. reply message instead of the incoming message
  3615. * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
  3616. gee, maybe it should SEND THE XML instead of just making a string
  3617. and freeing it again ;-)
  3618. * tools/dbus-print-message.c (print_message): improve printing of
  3619. messages
  3620. * configure.in: add debug-glib.service to the output
  3621. 2005-01-30 Havoc Pennington <hp@redhat.com>
  3622. dbus-viewer introspected and displayed the bus driver
  3623. * dbus/dbus-object-tree.c
  3624. (object_tree_test_iteration): add tests for a handler registered on "/"
  3625. * dbus/dbus-object-tree.c
  3626. (_dbus_decompose_path): fix to handle path "/" properly
  3627. (run_decompose_tests): add tests for path decomposition
  3628. * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
  3629. properly
  3630. * glib/dbus-gobject.c (handle_introspect): fix quotes
  3631. * test/glib/run-test.sh: support launching the bus, then running
  3632. dbus-viewer
  3633. * test/glib/test-service-glib.c (main): put in a trivial gobject
  3634. subclass and register it on the connection
  3635. * bus/driver.c (bus_driver_handle_introspect): implement
  3636. introspection of the bus driver service
  3637. * dbus/dbus-protocol.h: add #defines for the XML namespace,
  3638. identifiers, doctype decl
  3639. * bus/driver.c (bus_driver_handle_get_service_owner): handle
  3640. attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
  3641. returning the service unchanged.
  3642. (bus_driver_handle_message): remove old check for reply_serial in
  3643. method calls, now the message type deals with that
  3644. (bus_driver_handle_message): handle NULL interface
  3645. * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
  3646. * glib/dbus-gloader-expat.c (description_load_from_string): allow
  3647. -1 for len
  3648. * tools/dbus-viewer.c: add support for introspecting a service on
  3649. a bus
  3650. * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
  3651. (dbus_g_pending_call_unref): add
  3652. 2005-01-29 Havoc Pennington <hp@redhat.com>
  3653. * tools/dbus-tree-view.c: add support for displaying properties.
  3654. (run dbus-viewer with an introspect xml file as arg, then resize
  3655. the window so the tree elements show up, not sure what that is)
  3656. * glib/dbus-gobject.c (handle_introspect): return
  3657. org.freedesktop.Properties and org.freedesktop.Introspectable
  3658. interfaces when we are introspected.
  3659. * doc/dbus-specification.xml: allow empty interface name when
  3660. Get/Set a property
  3661. 2005-01-29 Havoc Pennington <hp@redhat.com>
  3662. * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
  3663. though it uses glib, it could be extended for any binding in
  3664. principle
  3665. * glib/dbus-gobject.c (gobject_message_function): change to the
  3666. new way properties work
  3667. * dbus/dbus-protocol.h: add the new interfaces
  3668. * doc/dbus-specification.xml: document the introspection format,
  3669. Introspectable interface, and add an org.freedesktop.Properties
  3670. interface.
  3671. * glib/dbus-gparser.c: add support for a <property> element
  3672. * glib/dbus-gidl.c: add PropertyInfo
  3673. * glib/dbus-gobject.c (handle_introspect): put the outermost
  3674. <node> outside the signal and property descriptions.
  3675. (introspect_properties): export properties as <property> rather
  3676. than as method calls
  3677. 2005-01-28 Havoc Pennington <hp@redhat.com>
  3678. * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
  3679. related to authentication protocol
  3680. 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
  3681. * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
  3682. - BUS_ACTIVATION -> BUS_STARTER
  3683. - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
  3684. - class MessageIter (__init__): Added recursion checking
  3685. so we throw a nice error instead of just disconnecting from the
  3686. bus.
  3687. (get): Added arg_type parameter for recursion.
  3688. Removed the nil type
  3689. Added signiture type placeholder (not implemented)
  3690. Added struct type placeholder (not implemented)
  3691. Added varient type placeholder (not implemented)
  3692. Commented out dict type for now
  3693. (get_element_type): renamed from get_array_type
  3694. (get_*): changed to use the dbus_message_iter_get_basic API
  3695. (get_*_array): removed in favor of recursive get_array method
  3696. (get_array): new recursive method which calls get to marshal
  3697. the elements of the array
  3698. (value_to_dbus_sig): New method returns the corrasponding
  3699. dbus signiture to a python value
  3700. (append): Comment out dict handling for now
  3701. Handle lists with the new recursive API
  3702. Comment out None handling for now
  3703. (append_nil): removed
  3704. (append_*): changed to use dbus_message_iter_append_basic API
  3705. (append_*_array): removed in favor of recursive append_array
  3706. method
  3707. (__str__): Make it easier to print out recursive iterators
  3708. for debugging
  3709. - class Message (__str__): moved type inspection to the
  3710. MessageIter class' __str__ method
  3711. (get_iter): Added an append parameter wich defaults to False
  3712. If True use the new API's to create an append iterator
  3713. * python/dbus.py: Update to use new bindings API
  3714. - TYPE_ACTIVATION -> TYPE_STARTER
  3715. - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
  3716. - class ActivationBus -> class StarterBus
  3717. - class RemoteObject (__call__): get an append iterator
  3718. - (_dispatch_dbus_method_call): get an append iterator
  3719. - class Object (emit_signal): get an append iterator
  3720. * python/examples/: Fixed up the examples to work with the new API
  3721. 2005-01-28 Joe Shaw <joeshaw@novell.com>
  3722. * configure.in: Bump version up to 0.30.
  3723. * HACKING: Add a release item to bump the version number up after
  3724. a release.
  3725. 2005-01-28 Havoc Pennington <hp@redhat.com>
  3726. * doc/dbus-specification.xml: update to describe 16-bit types and
  3727. dict entries
  3728. * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
  3729. assertion
  3730. * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
  3731. type
  3732. * dbus/dbus-marshal-recursive.c: implement
  3733. 2005-01-27 Havoc Pennington <hp@redhat.com>
  3734. * dbus/dbus-arch-deps.h.in: add 16/32-bit types
  3735. * configure.in: find the right type for 16 and 32 bit ints as well
  3736. as 64
  3737. * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
  3738. the 16-bit types so people don't have to stuff them in 32-bit or
  3739. byte arrays.
  3740. 2005-01-27 Havoc Pennington <hp@redhat.com>
  3741. * dbus/dbus-message.c: byteswap the message if you init an
  3742. iterator to read/write from it
  3743. * dbus/dbus-marshal-byteswap.c: new file implementing
  3744. _dbus_marshal_byteswap()
  3745. * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
  3746. 2005-01-26 Havoc Pennington <hp@redhat.com>
  3747. * dbus/dbus-marshal-validate-util.c: break this out (and fix
  3748. build, apparently - nobody noticed?)
  3749. 2005-01-26 Havoc Pennington <hp@redhat.com>
  3750. * dbus/dbus-marshal-recursive.h: remove todo comment
  3751. 2005-01-25 Joe Shaw <joeshaw@novell.com>
  3752. * Land the mono binding changes to conform to the new APIs.
  3753. * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
  3754. DBusType/Dict.cs, and DBusType/Nil.cs from the build.
  3755. * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
  3756. type code as a string.
  3757. (InitAppending): Rename dbus_message_append_iter_init() to
  3758. dbus_message_iter_init_append().
  3759. * mono/BusDriver.cs: Rename ServiceEventHandler to
  3760. NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
  3761. Rename ServiceOwnerChanged to NameOwnerChanged.
  3762. * mono/Connection.cs: Rename BaseService to UniqueName, and the
  3763. underlying C call.