tizen 2.4 release
[external/gupnp.git] / ChangeLog
1 2009-01-05  Ross Burton  <ross@linux.intel.com>
2
3         * libgupnp/gena-protocol.h:
4         * libgupnp/gupnp-service-proxy.c:
5         Don't assume subscription timeout is > 30s.
6
7         Instead choose a random timeout value that is between 1 and half
8         the timeout value given by service (thanks Zeeshan Ali)
9
10 2008-12-08  Ross Burton  <ross@linux.intel.com>
11
12         * libgupnp/gupnp-device-info.c:
13         Don't look for closest icon if there are no icons. Fixes the crash
14         in case of empty iconList nodes in device descriptions. (thanks
15         Zeeshan Ali)
16
17 2008-11-29  Jorn Baayen  <jorn.baayen@collabora.co.uk>
18
19         * libgupnp/gupnp-device.c (gupnp_device_get_device),
20         (gupnp_device_get_service), (gupnp_device_set_property),
21         (gupnp_device_dispose):
22         * libgupnp/gupnp-service.c (gupnp_service_set_property),
23         (gupnp_service_dispose):
24
25         Reference the root device weakly to avoid reference loops when
26         subclassing RootDevice. Based on patch from Zeeshan Ali.
27
28 2008-11-28  Jorn Baayen  <jorn.baayen@collabora.co.uk>
29
30         * libgupnp/gupnp-control-point.c (got_description_url):
31         * libgupnp/gupnp-root-device.c (download_and_parse):
32         * libgupnp/gupnp-service-info.c
33         (gupnp_service_info_get_introspection), (got_scpd_url):
34         * libgupnp/gupnp-service-proxy.c (check_action_response),
35         (server_handler):
36         * libgupnp/gupnp-service.c (control_server_handler):
37
38         Use xmlRecoverMemory instead of xmlParseMemory when parsing xml.
39         Hopefully we now manage better with the masses of über-broken xml
40         out there. (Thanks Jussi for the suggestion)
41
42 2008-11-24  Ross Burton  <ross@linux.intel.com>
43
44         * libgupnp/gupnp-resource-factory.c:
45          Use the correct value to key_equal_func argument of
46          g_hash_table_new_full (thanks Zeeshan Ali)
47
48 2008-11-18  Jorn Baayen  <jorn.baayen@collabora.co.uk>
49
50         * AUTHORS:
51
52         New e-mail address.
53
54         * configure.ac:
55
56         Depend on glib 2.18.
57
58         * libgupnp/gupnp-error-private.h:
59         * libgupnp/gupnp-error.c (_gupnp_error_set_server_error),
60         (_gupnp_error_new_server_error):
61         * libgupnp/gupnp-service-info.c
62         (gupnp_service_info_get_introspection), (got_scpd_url):
63         * libgupnp/gupnp-service-proxy.c (check_action_response):
64
65         Use g_set_error_literal(). (instead of our own home-cooked
66         set_error_literal())
67
68         Mark private error functions as G_GNUC_INTERNAL.
69
70 2008-11-18  Jorn Baayen  <jorn.baayen@collabora.co.uk>
71
72         * libgupnp/gupnp-service-proxy.c (subscribe_got_response):
73         * libgupnp/gupnp-service.c (notify_got_response),
74         (notify_subscriber):
75
76         Use g_error_new_literal() instead of passing literal error
77         messages through "%s". 
78
79         Specify character set (UTF-8) in NOTIFY messages.
80
81 2008-11-18  Ross Burton  <ross@linux.intel.com>
82
83         * tests/test-proxy.c:
84         * tests/test-server.c:
85         * tests/test-browsing.c:
86         * tests/test-introspection.c:
87         * examples/light-client.c:
88         * examples/light-server.c:
89         Don't user g_error but g_printerr (Sven Neumann).
90
91 2008-11-17  Jussi Kukkonen  <jku@linux.intel.com>
92
93         * configure.ac:
94         * NEWS:
95         Version 0.12.4.
96
97 2008-11-14  Ross Burton  <ross@linux.intel.com>
98
99         * libgupnp/gupnp-service-proxy.c:
100         Set the Content Type header correctly (#1257, Zeeshan Ali Khattak)
101
102 2008-11-14  Ross Burton  <ross@linux.intel.com>
103
104         * libgupnp/gupnp-service.c:
105         * libgupnp/gupnp-service-proxy.c:
106         * tests/test-proxy.c:
107         * tests/test-server.c:
108         * tests/test-browsing.c:
109         * tests/test-introspection.c:
110         * examples/light-client.c:
111         * examples/light-server.c:
112         Don't pass arbitrary strings to printf() for security  (thanks Sven Neumann)
113
114 2008-11-14  Ross Burton  <ross@linux.intel.com>
115
116         * libgupnp/gupnp-context.c:
117         Handle fscanf failing in get_default_host_ip (thanks Sven Neumann).
118
119 2008-11-14  Ross Burton  <ross@linux.intel.com>
120
121         * libgupnp/gupnp-service-proxy.c:
122         Fix typos (thanks Sven Neumann)
123
124 2008-11-12  Jussi Kukkonen  <jku@linux.intel.com>
125
126         * doc/glossary.xml:
127         * doc/overview.xml:
128
129         Add DIDL-Lite and SSDP to glossary, mention upnp and dlna specs. 
130
131 2008-11-11  Jussi Kukkonen  <jku@linux.intel.com>
132
133         * README.release:
134
135         Add release instructions for GUPnP components
136
137 2008-11-06  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
138
139         * AUTHORS:
140         * libgupnp/gupnp-resource-factory-private.h:
141         * libgupnp/gupnp-resource-factory.c:
142         * libgupnp/gupnp-resource-factory.h:
143         * libgupnp/gupnp-service-introspection.c:
144         * libgupnp/gupnp-service-introspection.h:
145         * libgupnp/gupnp-types-private.h:
146         * libgupnp/gupnp-types.c:
147         * libgupnp/gupnp-types.h:
148         * tests/test-introspection.c:
149         Replace my non-working "@gstreamer.net" email with "@gnome.org" one.
150
151 2008-10-27  Ross Burton  <ross@linux.intel.com>
152
153         * configure.ac:
154         * NEWS:
155         Version 0.12.3.
156
157 2008-10-27  Ross Burton  <ross@linux.intel.com>
158
159         * Makefile.am:
160         Enable gtk-doc in distcheck.
161
162 2008-10-27  Ross Burton  <ross@linux.intel.com>
163
164         * libgupnp/http-headers.c:
165         Don't use NULL return values from g_get_application_name() (#1176).
166
167 2008-10-22  Jussi Kukkonen  <jku@linux.intel.com>
168
169         * tools/gupnp-binding-tool:
170
171         Use inline functions. 
172         Fix generated code indent, remove trailing whitespace.
173
174 2008-10-20  Jussi Kukkonen  <jku@linux.intel.com>
175
176         * tools/gupnp-binding-tool:
177
178         Don't include specific glib/gupnp headers, use gupnp.h.
179
180 2008-10-17  Jussi Kukkonen  <jku@linux.intel.com>
181
182         * tools/gupnp-binding-tool:
183
184         Add serverside binding generation.
185
186         * doc/client-tutorial.xml
187         * doc/server-tutorial.xml
188         * doc/gupnp-binding-tool.xml
189
190         Update documentation for new binding generation.
191
192 2008-10-17  Jussi Kukkonen <jku@linux.intel.com>
193
194         * tools/gupnp-binding-tool:
195
196         gupnp-binding-tool improvements
197          - add support for all upnp types
198          - add "--prefix" option
199          - prettify binding tool output
200          - make var and function names lower_case, not CamelCase
201          - generate state variable notification bindings
202         This change makes gupnp-binding-tool output incompatible with old one
203
204 2008-10-14  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
205
206        * libgupnp/gupnp-service-introspection.c:
207
208        Add some missing checks for NULL.
209
210 2008-09-27  Jorn Baayen  <jorn@openedhand.com>
211
212         * doc/gupnp-sections.txt:
213         * libgupnp/gupnp-context-private.h:
214         * libgupnp/gupnp-context.c (gupnp_context_get_property),
215         (gupnp_context_class_init), (gupnp_context_get_session):
216         * libgupnp/gupnp-context.h:
217         * libgupnp/gupnp-control-point.c (gupnp_control_point_dispose),
218         (load_description):
219         * libgupnp/gupnp-root-device.c (download_and_parse):
220         * libgupnp/gupnp-service-info.c (gupnp_service_info_dispose),
221         (gupnp_service_info_get_introspection),
222         (gupnp_service_info_get_introspection_async):
223         * libgupnp/gupnp-service-proxy.c (gupnp_service_proxy_dispose),
224         (finish_action_msg), (gupnp_service_proxy_cancel_action),
225         (subscription_expire), (subscribe), (unsubscribe):
226         * libgupnp/gupnp-service.c (subscription_data_free),
227         (notify_got_response), (notify_subscriber):
228
229         Make gupnp_context_get_session() public.
230
231 2008-09-27  Jorn Baayen  <jorn@openedhand.com>
232
233         * configure.ac:
234
235         Increase version number.
236
237 2008-09-27  Jorn Baayen  <jorn@openedhand.com>
238
239         * libgupnp/gupnp-context.c (gupnp_context_init),
240         (gupnp_context_constructor), (gupnp_context_class_init),
241         (gupnp_context_get_server), (host_path_handler):
242         * libgupnp/gupnp-resource-factory.c
243         (gupnp_resource_factory_create_device_proxy),
244         (gupnp_resource_factory_create_device),
245         (gupnp_resource_factory_create_service):
246         * libgupnp/gupnp-root-device.c (gupnp_root_device_constructor):
247         * libgupnp/gupnp-service-proxy.c (gupnp_service_proxy_dispose),
248         (emit_notifications), (server_handler), (subscription_expire),
249         (subscribe_got_response), (unsubscribe):
250         * libgupnp/gupnp-service.c (subscription_data_free), (subscribe),
251         (resubscribe):
252
253         Use the specified GMainContext for timeouts and plug several leaks.
254
255         Based on a patch from Olivier Crete <olivier.crete@collabora.co.uk>.
256
257 2008-08-30  Jorn Baayen  <jorn@openedhand.com>
258
259         * examples/Makefile.am:
260
261         Link examples to gthread.
262
263 2008-08-27  Jorn Baayen  <jorn@openedhand.com>
264
265         * configure.ac:
266         * tests/Makefile.am:
267
268         Link tests to gthread.
269
270 2008-07-14  Jorn Baayen  <jorn@openedhand.com>
271
272         * configure.ac:
273
274         Bump version to 0.12.1.99.
275
276         * libgupnp/gupnp-service.c (finalize_action),
277         (gupnp_service_action_return), (gupnp_service_action_return_error),
278         (control_server_handler), (subscription_server_handler),
279         (gupnp_service_class_init):
280
281         Support returning actions outside of the 'action-invoked' signal
282         handler. Based on a patch from Zeeshan Ali Khattak
283         <zeenix@gstreamer.net>.
284
285 2008-06-30  Jorn Baayen  <jorn@openedhand.com>
286
287         * NEWS:
288         * configure.ac:
289
290         Release 0.12.1.
291
292 2008-06-20  Jorn Baayen  <jorn@openedhand.com>
293
294         * libgupnp/http-headers.c (http_request_get_range):
295         Support Range headers without upper bound.
296
297 2008-06-20  Jorn Baayen  <jorn@openedhand.com>
298
299         * libgupnp/gupnp-context.c (host_path_handler):
300         Remove superfluous free.
301
302 2008-06-16  Jorn Baayen  <jorn@openedhand.com>
303
304         * NEWS:
305         * configure.ac:
306         Release 0.12.
307
308 2008-06-11  Ross Burton  <ross@openedhand.com>
309
310         * doc/server-tutorial.xml:
311         Add *correct* comments about when query-variable is called.
312
313 2008-06-11  Ross Burton  <ross@openedhand.com>
314
315         * doc/server-tutorial.xml:
316         Add comments about when query-variable is called.
317
318 2008-06-10  Ross Burton  <ross@openedhand.com>
319
320         * doc/glossary.xml:
321         Add links to the cross references.
322
323 2008-06-10  Ross Burton  <ross@openedhand.com>
324
325         * doc/client-tutorial.xml:
326         * doc/server-tutorial.xml:
327         Lots of proof reading.
328
329 2008-06-10  Ross Burton  <ross@openedhand.com>
330
331         * examples/BinaryLight1.xml:
332         Use better friendly and model names.
333
334 2008-06-10  Ross Burton  <ross@openedhand.com>
335
336         * doc/glossary.xml:
337         Add UDN, fix acronyms.
338
339 2008-06-10  Ross Burton  <ross@openedhand.com>
340
341         * doc/Makefile.am:
342         * doc/gupnp-docs.sgml:
343         * doc/gupnp-docs.xml:
344         Rename the main document to .xml, this isn't 1980 any more.
345
346 2008-06-10  Ross Burton  <ross@openedhand.com>
347
348         * doc/gupnp-binding-tool.xml:
349         * doc/gupnp-docs.sgml:
350         Don't use entities to get the version, use XInclude.
351
352 2008-06-10  Ross Burton  <ross@openedhand.com>
353
354         * doc/gupnp-binding-tool.xml:
355         * doc/gupnp-docs.sgml:
356         * doc/Makefile.am:
357         Add a refentry for gupnp-binding-tool and add it to the
358         documentation.
359
360 2008-06-10  Ross Burton  <ross@openedhand.com>
361
362         * doc/glossary.xml:
363         Add SCPD and remove baseform attributes.
364
365 2008-06-10  Ross Burton  <ross@openedhand.com>
366
367         * doc/gupnp-docs.sgml:
368         Merge the overview into the tutorial part.
369
370 2008-06-10  Ross Burton  <ross@openedhand.com>
371
372         * doc/gupnp-docs.sgml:
373         Add an index.
374
375 2008-06-10  Ross Burton  <ross@openedhand.com>
376
377         * doc/server-tutorial.xml:
378         Document service description files.
379
380 2008-06-09  Ross Burton  <ross@openedhand.com>
381
382         * doc/server-tutorial.xml:
383         Talk about the UPnP lightbulb instead of a made up interface, so
384         we can refer to the example code.
385
386 2008-06-09  Ross Burton  <ross@openedhand.com>
387
388         * examples/:
389         * Makefile.am:
390         * configure.ac:
391         Add some basic but non-trivial examples.
392
393 2008-06-09  Ross Burton  <ross@openedhand.com>
394
395         * doc/gupnp-docs.sgml:
396         * doc/glossary.xml:
397         * doc/overview.xml:
398         * doc/Makefile.am:
399         Add a basic glossary, and reference the Intel UPnP book.
400
401 2008-06-06  Ross Burton  <ross@openedhand.com>
402
403         * doc/gupnp-docs.sgml:
404         * doc/overview.xml:
405         * doc/Makefile.am:
406         Split the (currently very small) overview out into a separate file.
407
408 2008-06-06  Ross Burton  <ross@openedhand.com>
409
410         * doc/gupnp-docs.sgml:
411         Add more section IDs.
412
413 2008-06-05  Zeeshan Ali Khattak  <zeenix@gmail.com>
414
415         * gupnp/libgupnp/gupnp-service.c:
416
417         Refactor connect_names_to_signal_handlers() function.
418
419 2008-06-05  Jorn Baayen  <jorn@openedhand.com>
420
421         * libgupnp/gupnp-marshal.list:
422         * libgupnp/gupnp-service.c (gupnp_service_class_init):
423         Revert back to G_TYPE_POINTER for GValue argument type. We do not
424         want the GValue to be boxed as it is passed as an outward argument.
425
426         * libgupnp/gupnp-service.c (notify_got_response):
427         Cancel subscription on Precondition Failed.
428
429 2008-06-04  Jorn Baayen  <jorn@openedhand.com>
430
431         * libgupnp/gupnp-root-device.c (download_and_parse),
432         (gupnp_root_device_constructor):
433         Split out description document downloading code into a separate 
434         function.
435
436 2008-06-04  Jorn Baayen  <jorn@openedhand.com>
437
438         * libgupnp/gupnp-context.c (construct_local_path), (append_locale),
439         (redirect_to_folder), (host_path_handler), (host_path_data_new),
440         (host_path_data_free), (gupnp_context_host_path):
441         * libgupnp/gupnp-control-point.c (load_description):
442         * libgupnp/gupnp-root-device.c (gupnp_root_device_constructor):
443         * libgupnp/gupnp-service-info.c
444         (gupnp_service_info_get_introspection),
445         (gupnp_service_info_get_introspection_async):
446         * libgupnp/gupnp-service-proxy.c (begin_action_msg):
447         * libgupnp/gupnp-service.c (gupnp_service_action_get_locales):
448         * libgupnp/http-headers.c (http_language_from_locale),
449         (locale_from_http_language), (http_request_get_range),
450         (http_request_set_accept_language),
451         (http_request_get_accept_locales), (http_request_set_user_agent),
452         (http_response_set_content_locale),
453         (http_response_set_content_type),
454         (http_response_set_content_range):
455         * libgupnp/http-headers.h:
456         Cleanup of hosting logic.
457         Reprefix message_ functions with http_request_/http_response_.
458
459 2008-06-03  Jorn Baayen  <jorn@openedhand.com>
460
461         * libgupnp/gupnp-context.c (host_path_handler):
462         Don't free path_to_open too early.
463
464 2008-06-03  Jorn Baayen  <jorn@openedhand.com>
465
466         * doc/server-tutorial.xml:
467         Update for new gupnp_root_device_new() API.
468
469 2008-06-03  Jorn Baayen  <jorn@openedhand.com>
470
471         * libgupnp/Makefile.am:
472         Bump ABI version.
473
474         * libgupnp/gupnp-context.c (host_path_handler),
475         (gupnp_context_host_path):
476         Fix a couple of bugs regarding Accept-Language handling.
477
478         * libgupnp/gupnp-control-point.c (load_description):
479         * libgupnp/gupnp-service-proxy.c (begin_action_msg),
480         (finish_action_msg), (check_action_response),
481         (gupnp_service_proxy_cancel_action):
482         * libgupnp/gupnp-service.c (gupnp_service_action_get_locales):
483         * libgupnp/http-headers.c (message_get_range),
484         (message_set_accept_language), (message_get_accept_locales):
485         * libgupnp/http-headers.h:
486         Add Accept-Language header to more messages.
487         Some restructuring for clarity.
488
489         * libgupnp/gupnp-root-device.c (gupnp_root_device_finalize),
490         (gupnp_root_device_init), (gupnp_root_device_constructor),
491         (gupnp_root_device_new):
492         * libgupnp/gupnp-root-device.h:
493         Remove xmlDoc argument from gupnp_root_device_new() for simplicity.
494         xmlDocs can still be passed to gupnp_root_device_new_full().
495
496         * tests/test-server.c (main):
497         Update for API change.
498
499 2008-05-30  Ross Burton  <ross@openedhand.com>
500
501         * doc/server-tutorial.xml:
502         Add more content.
503
504 2008-05-29  Ross Burton  <ross@openedhand.com>
505
506         * libgupnp/gupnp-service.c:
507         Add gtk-doc markup to signal names so they are links.
508
509 2008-05-29  Ross Burton  <ross@openedhand.com>
510
511         * doc/client-tutorial.xml:
512         * doc/gupnp-docs.sgml:
513         * doc/Makefile.am:
514         Run the client tutorial through gtk-doc for symbol linking and fix
515         some tags.
516
517 2008-05-29  Ross Burton  <ross@openedhand.com>
518
519         * doc/server-tutorial.xml:
520         * doc/gupnp-docs.sgml:
521         * doc/Makefile.am:
522         Add rather poor first draft of the server guide.
523
524 2008-05-28  Ross Burton  <ross@openedhand.com>
525
526         * doc/gupnp-sections.txt:
527         Add a symbol which somehow decided it wanted to be documented.
528
529 2008-05-27  Ross Burton  <ross@openedhand.com>
530
531         * libgupnp/gupnp-service.c:
532         Fix doc typo.
533
534 2008-05-27  Ross Burton  <ross@openedhand.com>
535
536         * libgupnp/gupnp-control-point.c:
537         * libgupnp/gupnp-root-device.c:
538         * libgupnp/gupnp-context.c:
539         * libgupnp/gupnp-service-info.c:
540         * libgupnp/gupnp-service-introspection.c:
541         * libgupnp/gupnp-service.c:
542         * libgupnp/http-headers.c:
543         * libgupnp/gupnp-service-proxy.c:
544         * libgupnp/gupnp-device-info.c:
545         * libgupnp/gupnp-resource-factory.c:
546         Documentation cleanups.
547
548 2008-05-23  Ross Burton  <ross@openedhand.com>
549
550         * tools/gupnp-binding-tool:
551         Add async wrappers too.
552
553 2008-05-23  Jorn Baayen  <jorn@openedhand.com>
554
555         * libgupnp/gupnp-marshal.list:
556         * libgupnp/gupnp-service.c (gupnp_service_action_get_type),
557         (gupnp_service_class_init):
558         * libgupnp/gupnp-service.h:
559
560         Use G_TYPE_VALUE and GUPNP_TYPE_SERVICE_ACTION in signal declarations
561         where appropriate.
562
563 2008-05-22  Ross Burton  <ross@openedhand.com>
564
565         * tools/gupnp-binding-tool:
566         * tools/Makefile.am:
567         * configure.ac:
568         * Makefile.am:
569         Initial commit of gupnp-binding-tool, to generate convenience C
570         wrappers for GUPnP service definitions.
571
572 2008-05-22  Jorn Baayen  <jorn@openedhand.com>
573
574         * configure.ac:
575
576         Version to 0.10.1.99.
577
578 2008-05-22  Ross Burton  <ross@openedhand.com>
579
580         * libgupnp/gupnp-device-info.[ch]:
581         * doc/gupnp-sections.txt:
582         Add gupnp_device_info_get_presentation_url().
583
584 2008-05-21  Ross Burton  <ross@openedhand.com>
585
586         * libgupnp/gupnp-context.c:
587         When guessing the host's IP address, try and use the default
588         route's interface.
589
590 2008-05-19  Jorn Baayen  <jorn@openedhand.com>
591
592         * NEWS:
593         * configure.ac:
594         * libgupnp/Makefile.am:
595
596         Bump soname, and release 0.10.1.
597
598 2008-05-16  Ross Burton  <ross@openedhand.com>
599
600         * doc/Makefile.am:
601         * doc/device-description.rnc:
602         * doc/service-description.rnc:
603         * doc/gupnp-docs.sgml:
604         Add RELAX NG schemas for the device and service description files,
605         and add them to the reference manual.
606
607 2008-05-16  Ross Burton  <ross@openedhand.com>
608
609         * libgupnp/gupnp-types.c:
610         Last missing bit of documentation, now 100% API coverage.
611
612 2008-05-15  Ross Burton  <ross@openedhand.com>
613
614         * libgupnp/gupnp-context.c:
615         * libgupnp/gupnp-service-info.c:
616         * libgupnp/gupnp-service-introspection.c:
617         * libgupnp/gupnp-types.c:
618         * libgupnp/gupnp-service-proxy.c:
619         * libgupnp/gupnp-device-info.c:
620         * libgupnp/gupnp-error.c:
621         * libgupnp/gupnp-resource-factory.c:
622         * libgupnp/gupnp-error.h:
623         More documentation work, almost at 100% now.
624
625 2008-05-13  Jorn Baayen  <jorn@openedhand.com>
626
627         * NEWS:
628         * configure.ac:
629
630         GUPnP 0.10.
631
632 2008-05-12  Ross Burton  <ross@openedhand.com>
633
634         * libgupnp/gupnp-types.h:
635         Document the special types.
636
637 2008-05-12  Ross Burton  <ross@openedhand.com>
638
639         * libgupnp/gupnp-service-info.c:
640         Complete API documentation.
641
642 2008-05-12  Ross Burton  <ross@openedhand.com>
643
644         * doc/gupnp-docs.sgml:
645         * doc/Makefile.am:
646         * docs/client-tutorial.xml:
647         Add *very basic* first draft at a tutorial.
648
649 2008-05-12  Ross Burton  <ross@openedhand.com>
650
651         * libgupnp/gupnp-control-point.c:
652         Document the search target, and enforce target != NULL.
653
654 2008-05-11  Zeeshan Ali Khattak  <zeenix@gmail.com>
655
656         * libgupnp/gupnp-service.c:
657
658         Emit a warning on failure to retreive requested action argument.
659
660 2008-05-11  Zeeshan Ali Khattak  <zeenix@gmail.com>
661
662         * libgupnp/gupnp-context.c:
663
664         GContentType is not guaranteed to be a mime-type.
665
666 2008-05-10  Jorn Baayen  <jorn@openedhand.com>
667
668         * libgupnp/gupnp-service-proxy.c (server_handler):
669
670         Do not error out if proxy->priv->sid is NIL as the subscription
671         response may not have been processed yet.
672
673 2008-05-09  Jorn Baayen  <jorn@openedhand.com>
674
675         * libgupnp/gupnp-service-proxy.c (emit_notifications),
676         (server_handler):
677
678         Cosmetic: fit into 80 columns.
679
680 2008-05-09  Ross Burton  <ross@openedhand.com>
681
682         * libgupnp/gupnp-service-proxy.c:
683         Emit notifications in an idle handler, because some stacks block
684         when sending the NOTIFY message.
685
686 2008-05-07  Ross Burton  <ross@openedhand.com>
687
688         * libgupnp/gupnp-service.c:
689         Fix typo, remove unused variable.
690
691 2008-05-07  Jorn Baayen  <jorn@openedhand.com>
692
693         * libgupnp/gupnp-service.c (subscription_data_free),
694         (gupnp_service_dispose), (notify_got_response),
695         (notify_subscriber):
696
697         Store pending notifications on the SubscriptionData structure.
698
699 2008-05-07  Ross Burton  <ross@openedhand.com>
700
701         * libgupnp/gvalue-util.c:
702         Fix type marshalling for doubles.
703
704 2008-05-07  Ross Burton  <ross@openedhand.com>
705
706         * libgupnp/gupnp-control-point.c:
707         * libgupnp/gupnp-control-point.h:
708         * libgupnp/gupnp-root-device.c:
709         * libgupnp/gupnp-context.c:
710         * libgupnp/gupnp-root-device.h:
711         * libgupnp/gupnp-context.h:
712         * libgupnp/gupnp-service-info.h:
713         * libgupnp/gupnp-service.c:
714         * libgupnp/gupnp-service-introspection.h:
715         * libgupnp/gupnp-device.h:
716         * libgupnp/gupnp-service.h:
717         * libgupnp/gupnp-service-proxy.c:
718         * libgupnp/gupnp-device-proxy.h:
719         * libgupnp/gupnp-service-proxy.h:
720         * libgupnp/gupnp-resource-factory.c:
721         * libgupnp/gupnp-device-info.h:
722         * libgupnp/gupnp-resource-factory.h:
723         More documentation tweaks, up to 76% now.
724         
725         * doc/Makefile.am:
726         * doc/gupnp-sections.txt:
727         Remove unused sections and ignore private headers.
728
729 2008-05-06  Ross Burton  <ross@openedhand.com>
730
731         * libgupnp/gupnp-context.c:
732         Add the ability to set GUPNP_DEBUG to spew the HTTP messages to
733         the console.
734
735 2008-05-06  Ross Burton  <ross@openedhand.com>
736
737         * libgupnp/gupnp-control-point.c:
738         * libgupnp/gupnp-service-introspection.c:
739         * libgupnp/gupnp-service-proxy.c:
740         * libgupnp/gupnp-error.c:
741         * libgupnp/gupnp-service-proxy.h:
742         Fix small problems which upset gtk-doc.
743
744 2008-05-06  Ross Burton  <ross@openedhand.com>
745
746         * doc/gupnp-sections.txt:
747         Add missing symbols.
748
749 2008-05-06  Ross Burton  <ross@openedhand.com>
750
751         * doc/gupnp.types:
752         Add a .types file so the objects get introspected.
753
754 2008-05-06  Ross Burton  <ross@openedhand.com>
755
756         * configure.ac:
757         Add AC_SYS_LARGEFILE to use 64-bit offsets, thus both fixing
758         32-bit compiles and making the world a better place.
759
760 2008-05-06  Ross Burton  <ross@openedhand.com>
761
762         * libgupnp/gupnp-context.c:
763         Fix some compile warnings.
764
765 2008-04-29  Jorn Baayen  <jorn@openedhand.com>
766
767         * libgupnp/gupnp-context.c (hosting_server_handler):
768         * libgupnp/http-headers.c (range_get):
769         * libgupnp/http-headers.h:
770
771         Support HTTP Range header.
772
773 2008-04-29  Jorn Baayen  <jorn@openedhand.com>
774
775         * libgupnp/gupnp-context.c (hosting_server_handler):
776
777         Use GMappedFile.
778
779 2008-04-15  Jorn Baayen  <jorn@openedhand.com>
780
781         * configure.ac:
782         * libgupnp/Makefile.am:
783         * libgupnp/gupnp-context.c (hosting_server_handler):
784
785         Use GContentType.
786
787         * libgupnp/xdgmime:
788         
789         Removed.
790
791 2008-04-15  Jorn Baayen  <jorn@openedhand.com>
792
793         * libgupnp/gupnp-service-proxy.c (subscribe_got_response):
794         * libgupnp/gupnp-service.c (subscribe), (resubscribe):
795
796         Use g_timeout_add_seconds(). We can because soup 2.4 depends
797         on glib 2.16.
798
799 2008-04-15  Jorn Baayen  <jorn@openedhand.com>
800
801         * libgupnp/gupnp-context.c (hosting_server_handler),
802         (path_data_new), (path_data_free), (gupnp_context_host_path):
803
804         Correct HTTP GET logic.
805
806 2008-04-15  Jorn Baayen  <jorn@openedhand.com>
807
808         * libgupnp/gupnp-service.c (notify_subscriber):
809
810         Set request, not response.
811
812 2008-04-15  Jorn Baayen  <jorn@openedhand.com>
813             Zeeshan Ali Khattak  <zeenix@gmail.com>
814
815         * configure.ac:
816         * gupnp-1.0-uninstalled.pc.in:
817         * gupnp-1.0.pc.in:
818         * libgupnp/gupnp-context.c (gupnp_context_init),
819         (default_server_handler), (gupnp_context_get_server),
820         (hosting_server_handler), (gupnp_context_host_path):
821         * libgupnp/gupnp-control-point.c (gupnp_control_point_dispose),
822         (process_service_list), (process_device_list),
823         (description_loaded), (got_description_url), (load_description):
824         * libgupnp/gupnp-device-info.c (gupnp_device_info_class_init),
825         (gupnp_device_info_get_icon_url):
826         * libgupnp/gupnp-device-info.h:
827         * libgupnp/gupnp-device-proxy.c (gupnp_device_proxy_get_device),
828         (gupnp_device_proxy_get_service):
829         * libgupnp/gupnp-device.c (gupnp_device_get_device),
830         (gupnp_device_get_service):
831         * libgupnp/gupnp-resource-factory-private.h:
832         * libgupnp/gupnp-resource-factory.c
833         (gupnp_resource_factory_create_device_proxy),
834         (gupnp_resource_factory_create_service_proxy),
835         (gupnp_resource_factory_create_device),
836         (gupnp_resource_factory_create_service):
837         * libgupnp/gupnp-root-device.c (gupnp_root_device_constructor):
838         * libgupnp/gupnp-service-info.c (gupnp_service_info_dispose),
839         (gupnp_service_info_class_init),
840         (gupnp_service_info_get_introspection), (got_scpd_url),
841         (gupnp_service_info_get_introspection_async):
842         * libgupnp/gupnp-service-info.h:
843         * libgupnp/gupnp-service-proxy.c (gupnp_service_proxy_dispose),
844         (begin_action_msg), (action_got_response), (finish_action_msg),
845         (write_in_parameter), (gupnp_service_proxy_begin_action_valist),
846         (gupnp_service_proxy_begin_action_hash), (check_action_response),
847         (read_out_parameter), (gupnp_service_proxy_end_action_valist),
848         (gupnp_service_proxy_end_action_hash),
849         (gupnp_service_proxy_cancel_action), (server_handler),
850         (subscription_expire), (subscribe_got_response), (subscribe),
851         (unsubscribe):
852         * libgupnp/gupnp-service.c (control_server_handler),
853         (subscription_response), (subscription_server_handler),
854         (gupnp_service_constructor), (gupnp_service_dispose),
855         (notify_got_response), (notify_subscriber):
856         * libgupnp/http-headers.c (accept_language_get_locales),
857         (message_set_user_agent):
858         * libgupnp/xml-util.c (xml_util_get_child_element_content_uri),
859         (xml_util_get_child_element_content_url):
860         * libgupnp/xml-util.h:
861
862         Port to libsoup 2.4.
863
864 2008-03-19  Jorn Baayen  <jorn@openedhand.com>
865
866         * libgupnp/gupnp-context.c (gupnp_context_init):
867
868         Use SOUP_SESSION_IDLE_TIMEOUT when available.
869
870 2008-03-18  Jorn Baayen  <jorn@openedhand.com>
871
872         * configure.ac:
873         * libgupnp/gupnp-service.c (gupnp_service_signals_autoconnect):
874
875         Release gupnp 0.8.
876
877 2008-03-06  Jorn Baayen  <jorn@openedhand.com>
878
879         * libgupnp/gupnp-device-info.c (resource_type_match):
880
881         Interpret strncmp() return value correctly.
882
883 2008-03-05  Jorn Baayen  <jorn@openedhand.com>
884
885         * doc/gupnp-sections.txt:
886         * libgupnp/gupnp-context-private.h:
887         * libgupnp/gupnp-context.c (gupnp_context_get_property),
888         (gupnp_context_class_init), (gupnp_context_get_server),
889         (make_server_url), (gupnp_context_get_port),
890         (gupnp_context_host_path), (gupnp_context_unhost_path):
891         * libgupnp/gupnp-context.h:
892         * libgupnp/gupnp-service-proxy.c (subscribe_got_response),
893         (subscribe), (unsubscribe):
894         * libgupnp/gupnp-service.c (gupnp_service_constructor):
895
896         Make gupnp_context_get_server() public.
897         Fixes #832.
898
899 2008-03-05  Jorn Baayen  <jorn@openedhand.com>
900
901         * libgupnp/gupnp-device-info.c (resource_type_match),
902         (gupnp_device_info_get_device), (gupnp_device_info_get_service):
903
904         Return subresources with version greater or equal than
905         requested version.
906
907         * libgupnp/gupnp-root-device.c
908         (add_resource_with_earlier_versions), (fill_resource_group):
909
910         Announce all earlier versions of resources in addition to the
911         implemented version.
912
913 2008-03-04  Jorn Baayen  <jorn@openedhand.com>
914
915         * libgupnp/gupnp-device-info.c (gupnp_device_info_get_device),
916         (gupnp_device_info_get_service):
917
918         Allow version-agnostic subresource retrieval.
919
920 2008-02-29  Zeeshan Ali Khattak  <zeenix@gmail.com>
921
922         * libgupnp/gupnp-service-proxy.c:
923
924         Critical bug fix: Don't free the action in check_action_response().
925
926 2008-02-26  Jorn Baayen  <jorn@openedhand.com>
927
928         * autogen.sh:
929
930         Don't call glib-gettextize.
931
932 2008-02-23  Jorn Baayen  <jorn@openedhand.com>
933
934         * libgupnp/gupnp-service-proxy.c:
935         (gupnp_service_proxy_action_free),
936         (gupnp_service_proxy_send_action_valist),
937         (gupnp_service_proxy_send_action_hash), (begin_action_msg),
938         (action_got_response), (gupnp_service_proxy_begin_action_valist),
939         (gupnp_service_proxy_begin_action_hash),
940         (gupnp_service_proxy_end_action_valist),
941         (gupnp_service_proxy_end_action_hash),
942         (gupnp_service_proxy_cancel_action):
943         * libgupnp/gupnp-service-proxy.h:
944
945         Remove error argument from begin_action() method series. The
946         error is now saved and returned by end_action().
947
948 2008-02-23  Jorn Baayen  <jorn@openedhand.com>
949
950         * libgupnp/http-headers.c: (message_set_user_agent):
951
952         Add DLNA string.
953
954 2008-02-09  Jorn Baayen  <jorn@openedhand.com>
955
956         * libgupnp/Makefile.am:
957         * libgupnp/accept-language.c:
958         * libgupnp/accept-language.h:
959         * libgupnp/gupnp-context.c:
960         * libgupnp/gupnp-control-point.c: (load_description):
961         * libgupnp/gupnp-service-info.c:
962         (gupnp_service_info_get_introspection),
963         (gupnp_service_info_get_introspection_async):
964         * libgupnp/gupnp-service-proxy.c: (begin_action_msg),
965         (gupnp_service_proxy_get_subscribed):
966         * libgupnp/gupnp-service.c:
967         * libgupnp/http-headers.c:
968         * libgupnp/http-headers.h:
969
970         Include "User-Agent" header in requests.
971
972 2008-01-31  Jorn Baayen  <jorn@openedhand.com>
973
974         * libgupnp/gupnp-context-private.h:
975         * libgupnp/gupnp-device-info-private.h:
976         * libgupnp/gupnp-resource-factory-private.h:
977         * libgupnp/gupnp-resource-factory.c:
978         (gupnp_resource_factory_unregister_resource_proxy_type):
979         * libgupnp/gupnp-service-introspection-private.h:
980
981         Add missing G_GNUC_INTERNALs.
982
983 2008-01-23  Jorn Baayen  <jorn@openedhand.com>
984
985         * libgupnp/gupnp-control-point.c:
986         (gupnp_control_point_set_property):
987         * libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property):
988
989         Fix compiler warning. Patch by Zeeshan Ali Khattak.
990
991 2008-01-17  Ross Burton  <ross@openedhand.com>
992
993         * libgupnp/gvalue-util.c:
994         Fix build on 64-bit systems (#711, thanks Bastien Nocera).
995
996 2008-01-17  Zeeshan Ali Khattak  <zeenix@gmail.com>
997
998         * libgupnp/accept-language.h:
999         * libgupnp/gvalue-util.h:
1000         * libgupnp/xml-util.h:
1001
1002         Use 'G_GNUC_INTERNAL' macro to declare functions we don't want to
1003         export.
1004
1005 2008-01-17  Jorn Baayen  <jorn@openedhand.com>
1006
1007         * libgupnp/gupnp-types.c:
1008         * libgupnp/gupnp-types.h:
1009         * libgupnp/gvalue-util.c: (gvalue_util_set_value_from_xml_node):
1010
1011         Remove ugly and luckily unnecessary XML_NODE and XML_CHUNK types.
1012
1013 2008-01-14  Jorn Baayen  <jorn@openedhand.com>
1014
1015         * Makefile.am:
1016         * configure.ac:
1017
1018         Remove unused translation framework.
1019
1020 2008-01-14  Jorn Baayen  <jorn@openedhand.com>
1021
1022         * libgupnp/gupnp-types.c:
1023
1024         Recursively copy xmlNodes.
1025
1026 2008-01-14  Jorn Baayen  <jorn@openedhand.com>
1027
1028         * doc/Makefile.am:
1029
1030         Update list of ignored header files.
1031
1032 2008-01-07  Jorn Baayen  <jorn@openedhand.com>
1033
1034         * libgupnp/gvalue-util.c: (gvalue_util_set_value_from_string):
1035
1036         Use atol() for 64-bit int parsing.
1037
1038 2007-12-16  Jorn Baayen  <jorn@openedhand.com>
1039
1040         * libgupnp/gupnp-service-proxy.c: (read_out_parameter),
1041         (server_handler):
1042         * libgupnp/gupnp-service.c: (gupnp_service_action_get_value):
1043         * libgupnp/gvalue-util.c: (gvalue_util_set_value_from_string),
1044         (gvalue_util_set_value_from_xml_node),
1045         (gvalue_util_value_append_to_xml_string):
1046         * libgupnp/gvalue-util.h:
1047         * libgupnp/xml-util.c: (xml_util_get_element):
1048         * libgupnp/xml-util.h:
1049
1050         Allow use of GUPNP_TYPE_XML_CHUNK and GUPNP_TYPE_XML_NODE to be
1051         mixed through text->xmlDoc->text conversion. (Which is obviously
1052         slow, so use of XML_CHUNK on the sending side, and XML_NODE on
1053         the receiving side is recommended.)
1054
1055 2007-12-16  Jorn Baayen  <jorn@openedhand.com>
1056
1057         * libgupnp/gupnp-service-proxy.c: (read_out_parameter):
1058         * libgupnp/gupnp-types.c: (gupnp_xml_node_get_type),
1059         (gupnp_string_type_to_string), (gupnp_string_to_string_type),
1060         (register_string_type), (gupnp_xml_chunk_get_type),
1061         (gupnp_bin_base64_get_type), (gupnp_bin_hex_get_type),
1062         (gupnp_date_get_type), (gupnp_date_time_get_type):
1063         * libgupnp/gupnp-types.h:
1064
1065         Add an xmlNode data type (can now retrieve arguments as xmlNodes:
1066         avoids excess parsing), and clean up types code.
1067
1068 2007-12-16  Jorn Baayen  <jorn@openedhand.com>
1069
1070         * libgupnp/gupnp-service-proxy.c:
1071         (gupnp_service_proxy_begin_action), (begin_action_msg),
1072         (action_got_response), (finish_action_msg),
1073         (gupnp_service_proxy_begin_action_valist),
1074         (gupnp_service_proxy_begin_action_hash),
1075         (gupnp_service_proxy_end_action), (check_action_response):
1076         * libgupnp/gupnp-service.c: (gupnp_service_action_set_value),
1077         (gupnp_service_action_return_error), (control_server_handler),
1078         (subscribe):
1079         * libgupnp/gupnp-types.c: (gupnp_string_to_type):
1080         * libgupnp/gupnp-types.h:
1081         * libgupnp/gvalue-util.c: (gvalue_util_set_value_from_string),
1082         (gvalue_util_value_append_to_xml_string):
1083         * libgupnp/gvalue-util.h:
1084         * libgupnp/xml-util.c: (xml_doc_wrapper_new),
1085         (xml_util_get_attribute_contents):
1086         * libgupnp/xml-util.h:
1087
1088         Don't use libxml for message construction. This allows us to
1089         embed chunks of xml into messages without them being escaped.
1090
1091 2007-11-26  Jorn Baayen  <jorn@openedhand.com>
1092
1093         * libgupnp/gupnp-context.c:
1094
1095         Rewrite local IP detection to be IPv6-friendly.
1096
1097 2007-11-23  Jorn Baayen  <jorn@openedhand.com>
1098
1099         * libgupnp/gupnp-service-proxy.c: (begin_action_msg):
1100         * libgupnp/gupnp-service.c: (gupnp_service_action_set_value),
1101         (gupnp_service_action_return_error), (control_server_handler),
1102         (notify_subscriber), (create_property_set):
1103
1104         Tweak XML generation to match spec to the letter.
1105
1106 2007-11-22  Jorn Baayen  <jorn@openedhand.com>
1107
1108         * libgupnp/gupnp-service.c: (control_server_handler),
1109         (create_property_set):
1110
1111         Set embedded xml docs to not be standalone.
1112
1113 2007-11-22  Jorn Baayen  <jorn@openedhand.com>
1114
1115         * configure.ac:
1116
1117         Set XDG_PREFIX. Avoids symbol collisions with other xdgmimes.
1118         Patch by Ross Burton <ross@openedhand.com>.
1119
1120 2007-11-22  Jorn Baayen  <jorn@openedhand.com>
1121
1122         * libgupnp/gupnp-service.c: (strip_camel_case):
1123
1124         Don't split up 2 letter abbreviations when coverting from camel case.
1125
1126 2007-11-21  Jorn Baayen  <jorn@openedhand.com>
1127
1128         * libgupnp/xml-util.c: (xml_util_node_get_content_value):
1129         * libgupnp/xml-util.h:
1130
1131         Remove unused function.
1132
1133 2007-10-23  Jorn Baayen  <jorn@openedhand.com>
1134
1135         * libgupnp/gena-protocol.h:
1136         * libgupnp/gupnp-context.c: (gupnp_context_class_init):
1137         * libgupnp/gupnp-service.c: (subscription_timeout),
1138         (parse_and_limit_timeout), (subscribe), (resubscribe):
1139
1140         Add an upper bound of 7 days to subscription timeouts.
1141
1142 2007-10-09  Zeeshan Ali  <zeenix@gstreamer.net>
1143             Jorn Baayen  <jorn@openedhand.com>
1144
1145         * libgupnp/gupnp-resource-factory.c:
1146         * libgupnp/gupnp-resource-factory.h:
1147
1148         - Instead of asking the users to subclass resource factory, provide an
1149           API to register GTypes for UPnP types.
1150         - Make the resource and resource proxy creation functions private.
1151
1152         * libgupnp/gupnp-resource-factory-private.h:
1153
1154         Make the resource and resource proxy creation functions private.
1155
1156         * libgupnp/gupnp-control-point.c:
1157         * libgupnp/gupnp-root-device.c:
1158
1159         - "resource-factory" prop can only be set at contruction time.
1160         - Make _new() a wrapper around_new_full().
1161         - Provide getter for resource factory.
1162         - Fix a copy&paste mistake.
1163
1164         * libgupnp/gupnp-control-point.h:
1165         * libgupnp/gupnp-root-device.h:
1166
1167         Provide getter for resource factory.
1168
1169         * libgupnp/gupnp-device.c:
1170         * libgupnp/gupnp-device.h:
1171         * libgupnp/gupnp-device-info.c:
1172         * libgupnp/gupnp-device-info.h:
1173         * libgupnp/gupnp-device-proxy.c:
1174
1175         Move "resource-factory" prop to DeviceInfo class.
1176
1177         * libgupnp/Makefile.am:
1178
1179         Add gupnp-resource-factory-private.h to build.
1180
1181         * doc/gupnp-sections.txt:
1182
1183         - Add resource factory getter functions.
1184         - Add type assignment (un)registeration functions.
1185         - Remove the now private resource and resource proxy creation functions.
1186
1187 2007-10-09  Jorn Baayen  <jorn@openedhand.com>
1188
1189         * libgupnp/gena-protocol.h:
1190         * libgupnp/gupnp-service-proxy.c: (subscribe_got_response):
1191
1192         Resubscribe 30 seconds before subscription times out.
1193
1194 2007-10-03  Jorn Baayen  <jorn@openedhand.com>
1195
1196         * configure.ac:
1197
1198         Version number to 0.6.99.
1199
1200 2007-10-03  Zeeshan Ali  <zeenix@gstreamer.net>
1201
1202         * libgupnp/gupnp-control-point.c:
1203         * libgupnp/gupnp-root-device.c:
1204
1205         Fix the type check for factory argument of _new_full() functions.
1206
1207 2007-10-01  Zeeshan Ali  <zeenix@gstreamer.net>
1208
1209         * libgupnp/gupnp-resource-factory.c:
1210
1211         Add doc comments.
1212
1213         * doc/gupnp-docs.sgml:
1214         * doc/gupnp-sections.txt:
1215
1216         Add ResourceFactory API to the docs.
1217
1218 2007-10-01  Zeeshan Ali  <zeenix@gstreamer.net>
1219
1220         * doc/gupnp-sections.txt:
1221
1222         Add _control_point_new_full() and _root_device_new_full() to docs.
1223
1224 2007-10-01  Zeeshan Ali  <zeenix@gstreamer.net>
1225
1226         * libgupnp/gupnp-resource-factory.c:
1227         * libgupnp/gupnp-resource-factory.h:
1228         * libgupnp/gupnp-control-point.c:
1229         * libgupnp/gupnp-root-device.c:
1230
1231         Replace _resource_factory_new() with _resource_factory_get_default()
1232         that only returns a pointer to a singleton object rather than creating
1233         a new one.
1234
1235 2007-10-01  Zeeshan Ali  <zeenix@gstreamer.net>
1236
1237         * libgupnp/gupnp-resource-factory.c:
1238         * libgupnp/gupnp-resource-factory.h:
1239         * libgupnp/gupnp-control-point.c:
1240         * libgupnp/gupnp-control-point.h:
1241         * libgupnp/gupnp-device-proxy.c:
1242         * libgupnp/gupnp-device-proxy.h:
1243         * libgupnp/gupnp-device.c:
1244         * libgupnp/gupnp-root-device.c:
1245         * libgupnp/gupnp-root-device.h:
1246         * libgupnp/gupnp-service-proxy.c:
1247         * libgupnp/gupnp-service.c:
1248
1249         New resource factory that handles the creation of device,
1250         service and device and service proxy objects.
1251
1252         * libgupnp/gupnp-service-private.h:
1253         * libgupnp/gupnp-service-proxy-private.h:
1254         * libgupnp/gupnp-device-proxy-private.h:
1255
1256         Remove unneeded headers.
1257
1258         * libgupnp/Makefile.am:
1259
1260         - Add the new resource factory to build.
1261         - Remove unneeded headers from build.
1262
1263 2007-09-23  Jorn Baayen  <jorn@openedhand.com>
1264
1265         * NEWS:
1266         * configure.ac:
1267
1268         Release 0.6.
1269
1270 2007-09-21  Jorn Baayen  <jorn@openedhand.com>
1271
1272         * libgupnp/gupnp-control-point.c: (load_description):
1273         * libgupnp/gupnp-service-info.c: (got_scpd_url),
1274         (gupnp_service_info_get_introspection_async):
1275
1276         Add pending GET requests to pending_gets before sending off the
1277         message, and remove them again before emitting any callbacks on
1278         response.
1279
1280 2007-09-21  Jorn Baayen  <jorn@openedhand.com>
1281
1282         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_dispose),
1283         (subscription_expire), (subscribe_got_response), (subscribe):
1284         * libgupnp/gupnp-service.c: (gupnp_service_dispose),
1285         (gupnp_service_notify_valist), (notify_got_response),
1286         (notify_subscriber):
1287
1288         Cancel all pending SoupMessages on dispose.
1289
1290 2007-09-20  Jorn Baayen  <jorn@openedhand.com>
1291
1292         * libgupnp/gupnp-service-proxy.c: (unsubscribe):
1293
1294         subscription_timeout_id can be 0 (when we are resubscribing).
1295
1296 2007-09-20  Jorn Baayen  <jorn@openedhand.com>
1297
1298         * libgupnp/Makefile.am:
1299         * libgupnp/gupnp-control-point.c: (gupnp_control_point_dispose),
1300         (gupnp_control_point_finalize), (process_service_list),
1301         (process_device_list), (description_loaded), (got_description_url),
1302         (load_description), (gupnp_control_point_resource_unavailable):
1303         * libgupnp/gupnp-device-info-private.h:
1304         * libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property),
1305         (gupnp_device_info_dispose), (gupnp_device_info_class_init),
1306         (gupnp_device_info_get_service):
1307         * libgupnp/gupnp-device-proxy-private.h:
1308         * libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_device),
1309         (gupnp_device_proxy_get_service), (_gupnp_device_proxy_new):
1310         * libgupnp/gupnp-service-info.c: (gupnp_service_info_set_property),
1311         (gupnp_service_info_dispose), (gupnp_service_info_class_init):
1312         * libgupnp/gupnp-service-proxy-private.h:
1313         * libgupnp/gupnp-service-proxy.c: (_gupnp_service_proxy_new):
1314         * libgupnp/xml-util.c:
1315         * libgupnp/xml-util.h:
1316
1317         Introduce a wrapper object for xmlDocs. Each proxy takes a reference
1318         on the xmlDoc wrapper it uses. 
1319
1320 2007-09-18  Zeeshan Ali  <zeenix@gstreamer.net>
1321
1322         * libgupnp/gvalue-util.c:
1323
1324         Accept 'yes' and 'no' as boolean values as well.
1325
1326 2007-09-17  Jorn Baayen  <jorn@openedhand.com>
1327
1328         * libgupnp/gupnp-service-proxy.c:
1329
1330         Specify the reason why notify subscription failed in subscription-lost
1331         signal.
1332
1333 2007-09-17  Zeeshan Ali  <zeenix@gstreamer.net>
1334
1335         * libgupnp/gupnp-service.c:
1336
1337         Specify the reason why notify failed in the error to the notify-failed
1338         signal.
1339
1340 2007-09-10  Jorn Baayen  <jorn@openedhand.com>
1341
1342         * libgupnp/gupnp-control-point.c: (gupnp_control_point_dispose):
1343         * libgupnp/gupnp-service-proxy-private.h:
1344         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_dispose),
1345         (finish_action_msg), (server_handler), (subscribe), (unsubscribe),
1346         (gupnp_service_proxy_set_subscribed):
1347
1348         Always unsubscribe proxy on dispose, but do it asynchronously.
1349         This means that the unsubscribe request may not always be sent on
1350         exit. The UPnP spec, however, does not require this to happen.
1351
1352         This should fix bug #500 as well.
1353
1354 2007-09-09  Jorn Baayen  <jorn@openedhand.com>
1355
1356         * libgupnp/gupnp-service-info.h:
1357         * tests/test-introspection.c: (print_state_variables):
1358
1359         Mark GUPnPServiceIntrospectionCallback() 'error' argument as 'const'.
1360
1361 2007-09-09  Zeeshan Ali  <zeenix@gstreamer.net>
1362             Jorn Baayen  <jorn@openedhand.com>
1363
1364         * tests/test-introspection.c:
1365
1366         Correct the order of arguments in a function call, and free 
1367         GError in sync code only.
1368
1369 2007-09-08  Zeeshan Ali  <zeenix@gstreamer.net>
1370
1371         * libgupnp/gupnp-device-info.c:
1372
1373         gupnp_device_info_get_model_number() returns model number and not
1374         model description.
1375
1376 2007-09-08  Jorn Baayen  <jorn@openedhand.com>
1377
1378         * libgupnp/gupnp-control-point.c: (got_description_url):
1379         * libgupnp/gupnp-service-info.c: (got_scpd_url):
1380         * libgupnp/gupnp-service-proxy.c: (action_got_response),
1381         (finish_action_msg):
1382
1383         Do not double-free message structures on cancel.
1384
1385 2007-09-05  Zeeshan Ali  <zeenix@gstreamer.net>
1386
1387         * libgupnp/gupnp-device-info.c:
1388
1389         BUGFIX: Don't use a NULL pointer.
1390
1391 2007-09-03  Zeeshan Ali  <zeenix@gstreamer.net>
1392
1393         * libgupnp/accept-language.c:
1394         * libgupnp/accept-language.h:
1395         * libgupnp/gena-protocol.h:
1396         * libgupnp/gupnp-context-private.h:
1397         * libgupnp/gupnp-context.c:
1398         * libgupnp/gupnp-context.h:
1399         * libgupnp/gupnp-control-point.c:
1400         * libgupnp/gupnp-control-point.h:
1401         * libgupnp/gupnp-device-info.c:
1402         * libgupnp/gupnp-device-info.h:
1403         * libgupnp/gupnp-device-proxy-private.h:
1404         * libgupnp/gupnp-device-proxy.c:
1405         * libgupnp/gupnp-device-proxy.h:
1406         * libgupnp/gupnp-device.c:
1407         * libgupnp/gupnp-device.h:
1408         * libgupnp/gupnp-error-private.h:
1409         * libgupnp/gupnp-error.c:
1410         * libgupnp/gupnp-error.h:
1411         * libgupnp/gupnp-root-device.c:
1412         * libgupnp/gupnp-root-device.h:
1413         * libgupnp/gupnp-service-info.c:
1414         * libgupnp/gupnp-service-info.h:
1415         * libgupnp/gupnp-service-introspection-private.h:
1416         * libgupnp/gupnp-service-introspection.c:
1417         * libgupnp/gupnp-service-introspection.h:
1418         * libgupnp/gupnp-service-private.h:
1419         * libgupnp/gupnp-service-proxy-private.h:
1420         * libgupnp/gupnp-service-proxy.c:
1421         * libgupnp/gupnp-service-proxy.h:
1422         * libgupnp/gupnp-service.h:
1423         * libgupnp/gupnp-types-private.h:
1424         * libgupnp/gupnp-types.c:
1425         * libgupnp/gupnp-types.h:
1426         * libgupnp/gupnp.h:
1427         * libgupnp/gvalue-util.c:
1428         * libgupnp/gvalue-util.h:
1429         * libgupnp/xml-util.c:
1430         * libgupnp/xml-util.h:
1431         * tests/test-browsing.c:
1432         * tests/test-introspection.c:
1433         * tests/test-proxy.c:
1434
1435         Remove trailing whitespace.
1436
1437         * tests/test-server.c:
1438
1439         - Remove trailing whitespace.
1440         - Provide "UpdateID" in response of Browse action.
1441
1442 2007-09-03  Zeeshan Ali  <zeenix@gstreamer.net>
1443
1444         * libgupnp/gupnp-service-introspection.c:
1445
1446         Use gvalue_util_set_value_from_string() for conversion from
1447         G_TYPE_STRING.
1448
1449 2007-08-30  Jorn Baayen  <jorn@openedhand.com>
1450
1451         * libgupnp/gupnp-device-info.c:
1452         (gupnp_device_info_list_device_types),
1453         (gupnp_device_info_get_device),
1454         (gupnp_device_info_list_service_types):
1455
1456         Clarify subresource retrieval in docs.
1457
1458 2007-08-29  Jorn Baayen  <jorn@openedhand.com>
1459
1460         * configure.in:
1461
1462         Bump version number to 0.4.99.
1463
1464 2007-08-28  Zeeshan Ali  <zeenix@gstreamer.net>
1465             Jorn Baayen  <jorn@openedhand.com>
1466
1467         * libgupnp/gupnp-service.c:
1468         * libgupnp/gupnp-service.h:
1469         * doc/gupnp-sections.txt:
1470
1471         - Add gupnp_service_signals_autoconnect ()
1472         - Remove whitespace
1473
1474         * configure.ac:
1475         * gupnp-1.0.pc.in:
1476         * gupnp-1.0-uninstalled.pc.in:
1477
1478         Require gmodule.
1479
1480         * tests/Makefile.am:
1481         * tests/test-server.c:
1482
1483         Modify the test server to utilize
1484         gupnp_service_signals_autoconnect().
1485
1486 2007-08-26  Jorn Baayen  <jorn@openedhand.com>
1487
1488         * gupnp-1.0-uninstalled.pc.in:
1489         * gupnp-1.0.pc.in:
1490
1491         Move libsoup back into Requires.. we do include it in public
1492         headers after all.
1493
1494 2007-08-23  Jorn Baayen  <jorn@openedhand.com>
1495
1496         * gupnp-1.0-uninstalled.pc.in:
1497         * gupnp-1.0.pc.in:
1498
1499         Move libsoup and uuid reqs to Requires.Private, and remove
1500         the shared-mime-data req altogether.
1501
1502 2007-08-21  Jorn Baayen  <jorn@openedhand.com>
1503
1504         * NEWS:
1505         * configure.ac:
1506         
1507         Release gupnp 0.4.
1508
1509 2007-08-14  Jorn Baayen  <jorn@openedhand.com>
1510
1511         * libgupnp/gupnp-device.c: (gupnp_device_class_init):
1512
1513         Remove unused function.
1514
1515 2007-08-13  Jorn Baayen  <jorn@openedhand.com>
1516
1517         * libgupnp/Makefile.am:
1518         * libgupnp/gupnp-service-proxy.c: (write_in_parameter),
1519         (read_out_parameter):
1520         * libgupnp/gupnp-service.c: (gupnp_service_action_set_value),
1521         (create_property_set):
1522         * libgupnp/gvalue-util.c:
1523         * libgupnp/gvalue-util.h:
1524         * libgupnp/xml-util.c: (xml_util_node_get_content_value):
1525
1526         Add more elaborate GValue conversion functions and use them
1527         instead of old conversion code.
1528
1529 2007-08-09  Jorn Baayen  <jorn@openedhand.com>
1530
1531         * configure.ac:
1532
1533         Bump version number to 0.3.99.
1534
1535         * libgupnp/gupnp-service-proxy.c:
1536         (gupnp_service_proxy_send_action_valist),
1537         (gupnp_service_proxy_send_action_hash),
1538         (gupnp_service_proxy_begin_action), (begin_action_msg),
1539         (action_got_response), (finish_action_msg), (write_in_parameter),
1540         (gupnp_service_proxy_begin_action_valist),
1541         (gupnp_service_proxy_begin_action_hash),
1542         (gupnp_service_proxy_end_action), (check_action_response),
1543         (read_out_parameter), (gupnp_service_proxy_end_action_valist):
1544         * libgupnp/gupnp-service-proxy.h:
1545
1546         Added a new series of functions for sending actions taking hash 
1547         tables of parameter name-GValue pairs.
1548
1549         * libgupnp/gupnp-service.c: (gupnp_service_action_get_valist),
1550         (gupnp_service_action_set_valist), (gupnp_service_notify_valist):
1551
1552         Don't fail completely on GValue collection errors.
1553
1554         * doc/gupnp-sections.txt:
1555
1556         Added the new _hash() functions.
1557
1558 2007-08-08  Zeeshan Ali  <zeenix@gstreamer.net>
1559
1560         * libgupnp/gupnp-service-introspection.c: (set_variable_type),
1561         (state_variable_search_func),
1562         (gupnp_service_introspection_get_state_variable),
1563         (action_search_func), (gupnp_service_introspection_get_action):
1564         * libgupnp/gupnp-service-introspection.h:
1565
1566         - Add methods to reteive state variable and action by name.
1567         - Default value of 'step' in state variable info should be '1' for
1568           compatibility with GtkSpinButton API.
1569
1570 2007-08-07  Zeeshan Ali  <zeenix@gstreamer.net>
1571
1572         * Makefile.am:
1573         * configure.ac:
1574         * gupnp-1.0-uninstalled.pc.in:
1575
1576         Enable the users to build/link against uninstalled gupnp.
1577
1578 2007-08-03  Jorn Baayen  <jorn@openedhand.com>
1579
1580         * libgupnp/gupnp-service.c: (gupnp_service_constructor):
1581
1582         Only include evented state variables in the initial event message.
1583
1584 2007-08-02  Jorn Baayen  <jorn@openedhand.com>
1585
1586         * NEWS:
1587         * configure.ac:
1588
1589         Release 0.3.
1590
1591 2007-08-01  Jorn Baayen  <jorn@openedhand.com>
1592
1593         * libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_device):
1594         * libgupnp/gupnp-device.c: (gupnp_device_get_device):
1595
1596         Allow embedded devices to have their own UDNs.
1597
1598 2007-07-27  Priit Laes  <plaes@plaes.org>
1599
1600         * libgupnp/gupnp-service-proxy.c: 
1601         (gupnp_service_proxy_begin_action_valist):
1602         
1603         Use G_VA_COPY to get things build on some weird architectures.
1604
1605 2007-07-26  Jorn Baayen  <jorn@openedhand.com>
1606
1607         * configure.ac:
1608
1609         Bump version number to 0.2.
1610
1611 2007-07-26  Zeeshan Ali  <zeenix@gstreamer.net>
1612
1613         * libgupnp/gupnp-service.c: (new_action_response_node):
1614
1615         A small fix to the last change from jorn to fix the build.
1616
1617 2007-07-26  Jorn Baayen  <jorn@openedhand.com>
1618
1619         * libgupnp/gupnp-control-point.c: (process_service_list),
1620         (process_device_list), (gupnp_control_point_resource_unavailable):
1621         * libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property),
1622         (gupnp_device_info_get_property), (gupnp_device_info_finalize),
1623         (gupnp_device_info_class_init), (gupnp_device_info_get_url_base),
1624         (gupnp_device_info_get_udn), (gupnp_device_info_get_device_type),
1625         (gupnp_device_info_get_friendly_name),
1626         (gupnp_device_info_get_manufacturer),
1627         (gupnp_device_info_get_manufacturer_url),
1628         (gupnp_device_info_get_model_description),
1629         (gupnp_device_info_get_model_name),
1630         (gupnp_device_info_get_model_number),
1631         (gupnp_device_info_get_model_url),
1632         (gupnp_device_info_get_serial_number):
1633         * libgupnp/gupnp-device-info.h:
1634         * libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_service):
1635         * libgupnp/gupnp-service-info.c: (gupnp_service_info_set_property),
1636         (gupnp_service_info_get_property), (gupnp_service_info_dispose),
1637         (gupnp_service_info_finalize), (gupnp_service_info_class_init),
1638         (gupnp_service_info_get_url_base), (gupnp_service_info_get_udn),
1639         (gupnp_service_info_get_service_type), (gupnp_service_info_get_id),
1640         (gupnp_service_info_get_scpd_url),
1641         (gupnp_service_info_get_control_url):
1642         * libgupnp/gupnp-service-info.h:
1643         * libgupnp/gupnp-service-proxy-private.h:
1644         * libgupnp/gupnp-service-proxy.c:
1645         (gupnp_service_proxy_begin_action_valist),
1646         (gupnp_service_proxy_get_subscribed), (_gupnp_service_proxy_new):
1647         * libgupnp/gupnp-service.c: (new_action_response_node):
1648         * tests/test-browsing.c: (device_proxy_available_cb):
1649         * tests/test-introspection.c: (service_proxy_unavailable_cb):
1650
1651         Handle the case where no serviceType (or deviceType) is specified
1652         in the description document:
1653         - ControlPoint saves the discovered types into the proxies, so that
1654           unavailability can be detected even if the description document
1655           is bogus.
1656         - Service and ServiceProxy warn if serviceType is not specified.
1657
1658         This has the side effect that the return value of
1659         _get_{device,service}_type() now returns a const.
1660
1661         Also added additional checks.
1662
1663 2007-07-26  Zeeshan Ali  <zeenix@gstreamer.net>
1664
1665         * libgupnp/gupnp-device-info.c:
1666         * libgupnp/gupnp-device-info.h:
1667         * libgupnp/gupnp-device-proxy-private.h:
1668         * libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_device),
1669         (gupnp_device_proxy_get_service), (_gupnp_device_proxy_new):
1670         * libgupnp/gupnp-device.c: (gupnp_device_get_device),
1671         (gupnp_device_get_service), (_gupnp_device_new):
1672         * libgupnp/gupnp-service-info.c:
1673         * libgupnp/gupnp-service-info.h:
1674         * libgupnp/gupnp-service-private.h:
1675         * libgupnp/gupnp-service-proxy-private.h:
1676         * libgupnp/gupnp-service-proxy.c: (_gupnp_service_proxy_new):
1677         * libgupnp/gupnp-service.c: (_gupnp_service_new):
1678
1679         Make it clear to the user that return value of
1680         gupnp_{device,service}_info_get_url_base() must not be freed o
1681         modified.
1682
1683 2007-07-26  Jorn Baayen  <jorn@openedhand.com>
1684
1685         * libgupnp/gupnp-service-proxy.h:
1686         * libgupnp/gupnp-service.h:
1687
1688         Cosmetic changes.
1689
1690 2007-07-26  Jorn Baayen  <jorn@openedhand.com>
1691
1692         * doc/gupnp-sections.txt:
1693         * libgupnp/gupnp-service-info.h:
1694         * libgupnp/gupnp-service-proxy.h:
1695
1696         Document callback prototypes.
1697
1698         * libgupnp/gupnp-service-info.c: (got_scpd_url),
1699         (gupnp_service_info_get_introspection_async):
1700         * tests/test-introspection.c: (print_state_variables):
1701
1702         Switch the order of the 'error' and 'user-data' arguments in the
1703         async introspection retrieval callback, so that 'user-data' is now
1704         last for consistency.
1705
1706 2007-07-26  Jorn Baayen  <jorn@openedhand.com>
1707
1708         * gupnp-1.0.pc.in:
1709
1710         List all dependencies.
1711
1712 2007-07-26  Zeeshan Ali  <zeenix@gstreamer.net>
1713
1714         * libgupnp/gupnp-service-introspection.c:
1715         (gupnp_service_action_arg_info_free),
1716         (gupnp_service_action_info_free),
1717         (gupnp_service_introspection_finalize), (get_actions),
1718         (get_state_variables), (construct_introspection_info),
1719         (collect_action_names), (collect_variable_names),
1720         (gupnp_service_introspection_new),
1721         (gupnp_service_introspection_list_action_names),
1722         (gupnp_service_introspection_list_actions),
1723         (gupnp_service_introspection_list_state_variables),
1724         (gupnp_service_introspection_list_state_variable_names):
1725
1726         Get rid of the hashtables since the function that needed them have
1727         been removed.
1728
1729 2007-07-25  Zeeshan Ali  <zeenix@gstreamer.net>
1730
1731         * libgupnp/gupnp-service-introspection.h:
1732
1733         Fix struct docs for gtk-doc.
1734
1735 2007-07-25  Zeeshan Ali  <zeenix@gstreamer.net>
1736
1737         * libgupnp/gupnp-service-introspection.c:
1738         * libgupnp/gupnp-service-introspection.h:
1739
1740         Add docs for structs and only mention once the extremely dependency on
1741         the availability of SCPD. :)
1742
1743 2007-07-25  Jorn Baayen  <jorn@openedhand.com>
1744
1745         * libgupnp/gupnp-service-introspection.c:
1746
1747         Added a comment warning people against using introspection in
1748         regular apps.
1749
1750 2007-07-25  Jorn Baayen  <jorn@openedhand.com>
1751
1752         A doc/gupnp-sections.txt:
1753         * libgupnp/gupnp-error.c:
1754         * libgupnp/gupnp-service-introspection.h:
1755         * libgupnp/gupnp-service.h:
1756         * libgupnp/gupnp-types.c:
1757
1758         Doc polish.
1759
1760 2007-07-25  Zeeshan Ali  <zeenix@gstreamer.net>
1761
1762         * libgupnp/gupnp-service-introspection.c:
1763         * libgupnp/gupnp-service-introspection.h:
1764
1765         Remove unneeded functions.
1766
1767 2007-07-25  Jorn Baayen  <jorn@openedhand.com>
1768
1769         * README:
1770         
1771         Added text from website.
1772
1773 2007-07-25  Jorn Baayen  <jorn@openedhand.com>
1774
1775         * libgupnp/gupnp-device.c: (gupnp_device_get_device),
1776         (gupnp_device_get_service), (gupnp_device_get_property),
1777         (gupnp_device_dispose), (gupnp_device_init),
1778         (gupnp_device_class_init), (_gupnp_device_find_element_for_udn):
1779         * libgupnp/gupnp-root-device.c: (gupnp_root_device_new):
1780         * libgupnp/gupnp-service-private.h:
1781         * libgupnp/gupnp-service.c: (gupnp_service_action_return_error),
1782         (gupnp_service_constructor), (gupnp_service_set_property),
1783         (gupnp_service_get_property), (gupnp_service_dispose),
1784         (gupnp_service_finalize), (gupnp_service_class_init),
1785         (notify_got_response), (notify_subscriber), (create_property_set),
1786         (flush_notifications), (gupnp_service_notify_value),
1787         (gupnp_service_freeze_notify), (gupnp_service_thaw_notify),
1788         (_gupnp_service_new):
1789
1790         Devices and Services reference their RootDevice.
1791         On RootDevice unavailability Service purges its subscriptions.
1792
1793         * tests/test-server.c: (main):
1794
1795         Unref content_dir.
1796
1797 2007-07-25  Jorn Baayen  <jorn@openedhand.com>
1798
1799         * libgupnp/gupnp-control-point.c: (gupnp_control_point_dispose):
1800         * libgupnp/gupnp-service-proxy-private.h:
1801         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_dispose),
1802         (subscribe_got_response), (gupnp_service_proxy_set_subscribed):
1803
1804         Unsubscribe proxies automatically only at control point dispose.
1805
1806 2007-07-25  Jorn Baayen  <jorn@openedhand.com>
1807
1808         * libgupnp/gupnp-control-point.c: (load_description),
1809         (gupnp_control_point_resource_unavailable):
1810
1811         Destroy proxy before destroying the associated xmlDoc.
1812
1813         * libgupnp/gupnp-error.h:
1814         * libgupnp/gupnp-service-info.c:
1815         (gupnp_service_info_get_introspection),
1816         (gupnp_service_info_get_introspection_async):
1817         * libgupnp/gupnp-service-proxy.c:
1818         (gupnp_service_proxy_begin_action_valist), (subscription_expire),
1819         (subscribe), (unsubscribe):
1820         * libgupnp/gupnp-service.c: (notify_subscriber):
1821
1822         Better invalid URL error handling.
1823
1824         * tests/Makefile.am:
1825         R tests/test-client.c:
1826         A tests/test-browsing.c: (device_proxy_unavailable_cb):
1827         A tests/test-proxy.c:
1828
1829         Split out test-client into test-browsing and test-proxy better
1830         illustrating how to use the API.
1831
1832 2007-07-25  Jorn Baayen  <jorn@openedhand.com>
1833
1834         * libgupnp/gupnp-service.c: (gupnp_service_init),
1835         (gupnp_service_finalize), (notify_got_response):
1836
1837         Create & destroy notify queue.
1838
1839         * libgupnp/gupnp-service.h:
1840
1841         Added 'const' to constant signal arguments.
1842
1843         * tests/test-client.c: (device_proxy_unavailable_cb),
1844         (service_proxy_available_cb):
1845
1846         Connect to 'subscription-lost' signal.
1847
1848         * tests/test-server.c: (browse_cb), (query_cb), (main):
1849
1850         Connect to 'notify-failed' signal.
1851         Print action locales.
1852         Test gupnp_service_notify().
1853
1854 2007-07-25  Jorn Baayen  <jorn@openedhand.com>
1855
1856         * libgupnp/gupnp-service-proxy.c: (subscribe_got_response):
1857
1858         Remove server handler on all subscription errors.
1859
1860 2007-07-25  Jorn Baayen  <jorn@openedhand.com>
1861
1862         * libgupnp/gupnp-marshal.list:
1863         * libgupnp/gupnp-service.c: (gupnp_service_class_init):
1864
1865         Don't box the to-be-filled GValue.
1866
1867         * tests/test-client.c: (notify_cb), (service_proxy_available_cb):
1868         * tests/test-server.c: (browse_cb), (main):
1869
1870         Test event notification.
1871
1872 2007-07-25  Jorn Baayen  <jorn@openedhand.com>
1873
1874         * libgupnp/gupnp-service-proxy.c: (server_handler):
1875
1876         Remove debug spew.
1877
1878 2007-07-25  Jorn Baayen  <jorn@openedhand.com>
1879
1880         * libgupnp/gupnp-service-introspection.c:
1881         * libgupnp/gupnp-types.c:
1882
1883         Doc polish.
1884
1885 2007-07-24  Zeeshan Ali  <zeenix@gstreamer.net>
1886
1887         * libgupnp/gupnp-service-introspection.c:
1888         (gupnp_service_state_variable_info_free),
1889         (gupnp_service_action_info_free),
1890         (gupnp_service_introspection_finalize), (set_string_value_limits),
1891         (get_action_arguments), (action_argument_list_free), (get_actions),
1892         (collect_hash_keys), (collect_action_arguments), (collect_actions),
1893         (collect_state_variables):
1894         * libgupnp/gupnp-service-introspection.h:
1895         * libgupnp/gupnp-service.c: (gupnp_service_constructor):
1896         * tests/test-introspection.c: (print_action_arguments),
1897         (print_actions), (print_state_variables):
1898
1899         Use GList instead of GSList for compatibility with the rest of the
1900         library.
1901
1902 2007-07-24  Jorn Baayen  <jorn@openedhand.com>
1903
1904         * libgupnp/gupnp-service-proxy.c: (server_handler):
1905
1906         Don't allow g_main_context_iteration() to block.
1907
1908 2007-07-24  Jorn Baayen  <jorn@openedhand.com>
1909
1910         * configure.ac:
1911
1912         Depend on gssdp 0.3.
1913
1914         * libgupnp/gupnp-control-point.c:
1915         (gupnp_control_point_resource_unavailable):
1916
1917         Don't depend on deleted list items in loop.
1918
1919 2007-07-24  Jorn Baayen  <jorn@openedhand.com>
1920
1921         * NEWS:
1922
1923         Added news items for 0.2.
1924
1925 2007-07-23  Jorn Baayen  <jorn@openedhand.com>
1926
1927         * libgupnp/gupnp-control-point.c: (load_description):
1928         * libgupnp/gupnp-service-info.c:
1929         (gupnp_service_info_get_introspection),
1930         (gupnp_service_info_get_introspection_async):
1931         * libgupnp/gupnp-service-proxy.c: (subscription_expire),
1932         (subscribe), (unsubscribe):
1933         * libgupnp/gupnp-service.c: (notify_subscriber):
1934
1935         Warn on invalid URL (don't crash!).
1936
1937 2007-07-23  Jorn Baayen  <jorn@openedhand.com>
1938
1939         * libgupnp/gupnp-marshal.list:
1940         * libgupnp/gupnp-service-proxy.c: (server_handler),
1941         (subscription_expire), (subscribe_got_response), (subscribe):
1942         * libgupnp/gupnp-service.c: (parse_timeout), (subscribe),
1943         (subscription_server_handler), (gupnp_service_constructor),
1944         (gupnp_service_finalize), (gupnp_service_class_init),
1945         (gupnp_service_notify), (gupnp_service_notify_valist),
1946         (notify_got_response), (notify_subscriber), (create_property_set),
1947         (flush_notifications), (gupnp_service_notify_value):
1948         * libgupnp/gupnp-service.h:
1949
1950         Handle multiple callbacks URLs.
1951         Send initial event message.
1952
1953 2007-07-23  Zeeshan Ali  <zeenix@gstreamer.net>
1954
1955         * libgupnp/gupnp-service-introspection.c:
1956         (construct_introspection_info), (collect_hash_keys),
1957         (gupnp_service_introspection_list_action_names),
1958         (gupnp_service_introspection_list_state_variable_names):
1959         * libgupnp/gupnp-service-introspection.h:
1960
1961         - Add _list_state_variable_names() method.
1962         - a minor optimization.
1963
1964         * tests/test-introspection.c: (service_proxy_available_cb):
1965
1966         centralize the error handling.
1967
1968 2007-07-23  Jorn Baayen  <jorn@openedhand.com>
1969
1970         * libgupnp/gupnp-service-info.c:
1971         (gupnp_service_info_get_introspection), (got_scpd_url):
1972         * libgupnp/gupnp-service-introspection.c:
1973         (gupnp_service_introspection_set_property),
1974         (gupnp_service_introspection_finalize):
1975
1976         Don't keep xmlDoc around longer than necessary.
1977
1978 2007-07-23  Zeeshan Ali  <zeenix@gstreamer.net>
1979             Jorn Baayen  <jorn@openedhand.com>
1980
1981         * libgupnp/gupnp-error.c:
1982         * libgupnp/gupnp-error-private.h:
1983         * libgupnp/gupnp-service-proxy.c:
1984
1985         Add & use server error utility functions.
1986
1987         * libgupnp/gupnp-service-info.c:
1988         (gupnp_service_info_get_introspection), (scpd_loaded),
1989         (got_scpd_url), (gupnp_service_info_get_introspection_async):
1990         * libgupnp/gupnp-service-info.h:
1991
1992         Report non-programmer errors using GError.
1993
1994         * libgupnp/gupnp-service-introspection.c:
1995         (gupnp_service_introspection_set_property),
1996         (construct_introspection_info), (gupnp_service_introspection_new),
1997         (gupnp_service_introspection_get_state_variable):
1998
1999         Fix some typos and conditions.
2000
2001         * tests/test-introspection.c: (got_introspection),
2002         (service_proxy_available_cb):
2003
2004         Update the test app to use the new GError-using API.
2005
2006 2007-07-11  Jorn Baayen  <jorn@openedhand.com>
2007
2008         * libgupnp/gupnp-error.h:
2009         * libgupnp/gupnp-service-proxy.c: (set_error_literal),
2010         (gupnp_service_proxy_end_action_valist):
2011
2012         Propagate UPnPError codes.
2013
2014 2007-07-11  Jorn Baayen  <jorn@openedhand.com>
2015
2016         * libgupnp/gupnp-service-proxy.c:
2017         (gupnp_service_proxy_begin_action_valist):
2018
2019         Set error if no controlURL is defined.
2020
2021 2007-07-08  Jorn Baayen  <jorn@openedhand.com>
2022
2023         * libgupnp/gupnp-control-point.c: (got_description_url),
2024         (load_description):
2025
2026         Fix description doc refcounting bugs.
2027
2028 2007-07-08  Jorn Baayen  <jorn@openedhand.com>
2029
2030         * libgupnp/gupnp-control-point.c: (description_loaded):
2031         * libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property):
2032         * libgupnp/gupnp-service-info.c: (gupnp_service_info_set_property):
2033
2034         Each info object stores its own copy of the URLBase SoupUri.
2035
2036 2007-07-08  Jorn Baayen  <jorn@openedhand.com>
2037
2038         * libgupnp/gupnp-control-point.c: (process_service_list),
2039         (process_device_list), (load_description),
2040         (gupnp_control_point_resource_unavailable):
2041         * libgupnp/gupnp-service-proxy-private.h:
2042
2043         Correct constructor argument order.
2044         Plug leak.
2045         Update ref count on cached description doc correctly.
2046
2047 2007-07-08  Zeeshan Ali  <zeenix@gstreamer.net>
2048             Jorn Baayen  <jorn@openedhand.com>
2049
2050         * libgupnp/gupnp-service-info.c: (get_scpd_url_data_free),
2051         (gupnp_service_info_class_init),
2052         (gupnp_service_info_get_introspection), (scpd_ready),
2053         (got_scpd_url), (gupnp_service_info_get_introspection_async):
2054         * libgupnp/gupnp-service-info.h:
2055
2056         Use a callback instead of a signal.
2057
2058         * tests/test-introspection.c: (interrupt_signal_handler),
2059         (got_introspection), (service_proxy_available_cb), (main):
2060
2061         - Use the new callback API.
2062         - Terminate cleanly on SIGTERM.
2063
2064         * tests/test-client.c: (interrupt_signal_handler), (main):
2065         * tests/test-server.c: (interrupt_signal_handler), (main):
2066
2067         Terminate cleanly on SIGTERM.
2068
2069 2007-07-07  Jorn Baayen  <jorn@openedhand.com>
2070
2071         * doc/gupnp-docs.sgml:
2072         * libgupnp/gupnp-types.h:
2073
2074         Include gupnp-types in doc TOC.
2075
2076 2007-07-07  Jorn Baayen  <jorn@openedhand.com>
2077
2078         * libgupnp/gupnp-control-point.c: (gupnp_control_point_dispose):
2079         * libgupnp/gupnp-service-info.c: (gupnp_service_info_dispose):
2080         * libgupnp/gupnp-service-proxy.c:
2081         (gupnp_service_proxy_cancel_action):
2082
2083         Set message status to SOUP_STATUS_CANCELLED before cancelling.
2084
2085         * libgupnp/gupnp-service-proxy.c:
2086
2087         Elaborate begin_action() comments.
2088
2089 2007-07-07  Jorn Baayen  <jorn@openedhand.com>
2090
2091         * libgupnp/Makefile.am:
2092         * libgupnp/gupnp-service-introspection.c:
2093         * libgupnp/gupnp-types-private.h:
2094         * libgupnp/gupnp-types.c: (gupnp_type_to_string):
2095         * libgupnp/gupnp-types.h:
2096
2097         Make private gupnp_data_type_to_gtype().
2098         Add gupnp_value_get_string() macro.
2099
2100         * libgupnp/xml-util.c: (xml_util_node_get_content_value):
2101
2102         Smarter value transformation like in ServiceProxy.
2103
2104 2007-07-07  Jorn Baayen  <jorn@openedhand.com>
2105
2106         * libgupnp/gupnp-control-point.c:
2107         (gupnp_control_point_resource_unavailable):
2108
2109         Handle resource-unavailable in the same way.
2110
2111 2007-07-07  Jorn Baayen  <jorn@openedhand.com>
2112
2113         * libgupnp/gupnp-control-point.c: (gupnp_control_point_finalize),
2114         (process_service_list), (process_device_list),
2115         (description_loaded), (got_description_url):
2116         * libgupnp/gupnp-device-proxy-private.h:
2117         * libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_device),
2118         (gupnp_device_proxy_get_service):
2119         * libgupnp/gupnp-device.c: (gupnp_device_get_device),
2120         (gupnp_device_get_service), (_gupnp_device_find_element_for_udn):
2121         * libgupnp/gupnp-service-private.h:
2122         * libgupnp/gupnp-service-proxy-private.h:
2123         * libgupnp/gupnp-service-proxy.c:
2124         (gupnp_service_proxy_get_subscribed):
2125         * libgupnp/gupnp-service.c: (gupnp_service_thaw_notify):
2126
2127         Create proxies for all, not just one, matching devices and services.
2128
2129 2007-07-07  Jorn Baayen  <jorn@openedhand.com>
2130
2131         * libgupnp/gupnp-service-info.c: (gupnp_service_info_get_property),
2132         (gupnp_service_info_dispose):
2133
2134         Rearrange some code.
2135
2136 2007-07-07  Jorn Baayen  <jorn@openedhand.com>
2137
2138         * libgupnp/Makefile.am:
2139         * libgupnp/gupnp-service-info.c:
2140         * libgupnp/gupnp-service-introspection-private.h:
2141         * libgupnp/gupnp-service-introspection.c:
2142         * libgupnp/gupnp-service-introspection.h:
2143         * libgupnp/gupnp.h:
2144
2145         Make introspection constructor private.
2146
2147 2007-07-07  Jorn Baayen  <jorn@openedhand.com>
2148
2149         * libgupnp/gupnp-service-proxy.c:
2150         * libgupnp/gupnp-types.c:
2151
2152         Handle conversion of strings to GUPnP string-based types.
2153
2154 2007-07-06  Zeeshan Ali  <zeenix@gstreamer.net>
2155             Jorn Baayen  <jorn@openedhand.com>
2156
2157         * libgupnp/Makefile.am:
2158         * libgupnp/gupnp-types.h:
2159         * libgupnp/gupnp-types.c: (gupnp_type_to_string),
2160         (gupnp_bin_base64_get_type), (gupnp_bin_hex_get_type),
2161         (gupnp_date_get_type), (gupnp_date_time_get_type),
2162         (gupnp_date_time_tz_get_type), (gupnp_time_get_type),
2163         (gupnp_time_tz_get_type), (gupnp_uri_get_type),
2164         (gupnp_uuid_get_type), (gupnp_data_type_to_gtype):
2165
2166         Introduce new types for some UPnP data types that do not have a direct
2167         equivalent in glib.
2168
2169         * libgupnp/xml-util.c: (xml_util_get_attribute_contents):
2170         * libgupnp/xml-util.h:
2171
2172         Add helper function for getting the contents of an attribute.
2173
2174         * libgupnp/gupnp-service-introspection.c:
2175         (gupnp_service_state_variable_info_free),
2176         (gupnp_service_introspection_set_property),
2177         (gupnp_service_introspection_finalize),
2178         (gupnp_service_introspection_class_init), (set_variable_type),
2179         (get_state_variable), (get_action_argument),
2180         (contstruct_introspection_info), (gupnp_service_introspection_new):
2181         * libgupnp/gupnp-service-introspection.h:
2182
2183         - Use the new GUPnP types instead of string type for some UPnP types.
2184         - Take a pointer to SCPD xml instead of it's url in the constructor and
2185           leave the download of the document to the caller.
2186         - Expect documents to specify 'sendEvents' as an attribute of the
2187           state variable node.
2188
2189         * libgupnp/gupnp-service-info.c: (gupnp_service_info_init),
2190         (get_scpd_url_data_free), (gupnp_service_info_dispose),
2191         (gupnp_service_info_class_init), (get_scpd),
2192         (gupnp_service_info_get_introspection), (scpd_ready),
2193         (got_scpd_url), (gupnp_service_info_get_introspection_async):
2194         * libgupnp/gupnp-service-info.h:
2195
2196         - Handle the SCPD GET for and provide introspection's constructor a
2197           pointer to the xml document rather than the SCPD URL.
2198         - Provide an asynchronous way of geting the introspection object.
2199
2200         * tests/test-introspection.c: (print_state_variables),
2201         (got_introspection), (service_proxy_available_cb), (main):
2202         
2203         Provide a way to specify that the introspection object be
2204         created/requested asynchronously through a command-line argument.
2205
2206 2007-07-04  Zeeshan Ali  <zeenix@gstreamer.net>
2207
2208         * libgupnp/gupnp-service-introspection.c:
2209         (gupnp_service_state_variable_info_free),
2210         (gupnp_service_action_info_free),
2211         (gupnp_service_introspection_finalize), (set_variable_limits),
2212         (set_variable_type), (get_action_argument),
2213         (gupnp_service_action_arg_info_free), (collect_action_names),
2214         (collect_action_arguments), (collect_actions),
2215         (collect_state_variables),
2216         (gupnp_service_introspection_list_action_names),
2217         (gupnp_service_introspection_list_action_arguments),
2218         (gupnp_service_introspection_list_actions),
2219         (gupnp_service_introspection_list_state_variables),
2220         (gupnp_service_introspection_get_state_variable):
2221         * libgupnp/gupnp-service-introspection.h:
2222         * tests/test-introspection.c: (print_action_arguments),
2223         (print_actions), (print_state_variables):
2224
2225         - Return local copies of data to avoid malloc()s and free()s.
2226         - Cache the returned GSLists to avoid allocating the list each time.
2227         - return a 'const' from each function and update doc comments to
2228           make it very clear to the user that the return data can't be
2229           modified or freed.
2230         - Rename 'gtype' field to 'type' for consistancy.
2231         - Introduce an enum type for the direction of the action argument
2232           and use that instead of a string.
2233         - Add a function for getting state variable information by name.
2234
2235 2007-07-01  Jorn Baayen  <jorn@openedhand.com>
2236
2237         * libgupnp/gupnp-service-proxy.c:
2238
2239         Remove unused includes.
2240
2241 2007-07-01  Jorn Baayen  <jorn@openedhand.com>
2242
2243         * libgupnp/gupnp-device-info.c:
2244         (gupnp_device_info_list_device_types),
2245         (gupnp_device_info_list_service_types):
2246
2247         Use xml_util_get_child_element_content_glib().
2248
2249 2007-07-01  Jorn Baayen  <jorn@openedhand.com>
2250
2251         * doc/gupnp-docs.sgml:
2252         * libgupnp/gupnp-control-point.c:
2253         * libgupnp/gupnp-device-info.c: (gupnp_device_info_class_init):
2254         * libgupnp/gupnp-device-proxy.c:
2255         * libgupnp/gupnp-device.c:
2256         * libgupnp/gupnp-service-info.c: (gupnp_service_info_class_init):
2257         * libgupnp/gupnp-service-introspection.c:
2258         * libgupnp/gupnp-service-proxy.c:
2259         * libgupnp/gupnp-service.c:
2260
2261         Documentation updates.
2262
2263 2007-07-01  Jorn Baayen  <jorn@openedhand.com>
2264
2265         * libgupnp/gupnp-service-introspection.c:
2266         (gupnp_service_introspection_finalize),
2267         (contstruct_introspection_info):
2268
2269         Added small optimization + missing NULL checks.
2270
2271 2007-07-01  Jorn Baayen  <jorn@openedhand.com>
2272
2273         * libgupnp/gupnp-device-info.c:
2274         * libgupnp/gupnp-device-proxy.c:
2275         (_gupnp_device_proxy_new_from_doc):
2276         * libgupnp/gupnp-root-device.c: (gupnp_root_device_constructor):
2277         * libgupnp/gupnp-service-info.c: (gupnp_service_info_finalize),
2278         (gupnp_service_info_get_udn):
2279         * libgupnp/gupnp-service-introspection.c: (set_variable_type),
2280         (get_state_variable), (get_action_argument), (get_actions),
2281         (get_state_variables):
2282         * libgupnp/gupnp-service-proxy.c:
2283         (_gupnp_service_proxy_new_from_doc):
2284         * libgupnp/xml-util.c: (xml_util_get_element):
2285         * libgupnp/xml-util.h:
2286
2287         Add more shared XML helpers.
2288
2289 2007-07-01  Jorn Baayen  <jorn@openedhand.com>
2290
2291         * libgupnp/gupnp-device-info.c: (get_property),
2292         (gupnp_device_info_get_friendly_name),
2293         (gupnp_device_info_get_manufacturer),
2294         (gupnp_device_info_get_model_name),
2295         (gupnp_device_info_get_model_number):
2296
2297         Use get_url_property() for all URL properties.
2298
2299 2007-07-01  Jorn Baayen  <jorn@openedhand.com>
2300
2301         * libgupnp/gupnp-service.c: (gupnp_service_class_init):
2302
2303         Use G_TYPE_VALUE for "value" argument on "query-variable" signal.
2304
2305 2007-07-01  Jorn Baayen  <jorn@openedhand.com>
2306
2307         * libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property),
2308         (gupnp_device_info_get_property), (gupnp_device_info_finalize),
2309         (gupnp_device_info_class_init), (icon_parse):
2310         * libgupnp/gupnp-device-info.h:
2311         * libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_device),
2312         (gupnp_device_proxy_get_service),
2313         (_gupnp_device_proxy_new_from_doc),
2314         (_gupnp_device_proxy_new_from_element):
2315         * libgupnp/gupnp-device.c: (gupnp_device_get_device),
2316         (gupnp_device_get_service), (_gupnp_device_new_from_element):
2317         * libgupnp/gupnp-service-info.c: (gupnp_service_info_set_property),
2318         (gupnp_service_info_get_property), (gupnp_service_info_finalize),
2319         (gupnp_service_info_class_init), (get_url_property):
2320         * libgupnp/gupnp-service-info.h:
2321         * libgupnp/gupnp-service-private.h:
2322         * libgupnp/gupnp-service-proxy-private.h:
2323         * libgupnp/gupnp-service-proxy.c:
2324         (_gupnp_service_proxy_new_from_doc),
2325         (_gupnp_service_proxy_new_from_element):
2326         * libgupnp/gupnp-service.c: (_gupnp_service_new_from_element):
2327
2328         Store URL base as SoupUri, and use description file location
2329         as URL base if no base is specified explicitly.
2330
2331         * libgupnp/gupnp-root-device.c: (gupnp_root_device_finalize),
2332         (gupnp_root_device_set_property), (gupnp_root_device_get_property),
2333         (gupnp_root_device_constructor):
2334         * libgupnp/gupnp-root-device.h:
2335
2336         Remove API for setting URL base as the explicit specification of
2337         a URL base is discouraged.
2338
2339         Don't autohost description file.
2340
2341         * tests/test-server.c: (main):
2342         
2343         Updated for changed API.
2344
2345 2007-06-30  Jorn Baayen  <jorn@openedhand.com>
2346
2347         * libgupnp/gupnp-service-proxy.c:
2348         (gupnp_service_proxy_begin_action):
2349
2350         Use M-POST when POST fails.
2351
2352 2007-06-30  Jorn Baayen  <jorn@openedhand.com>
2353
2354         * libgupnp/gupnp-error.h:
2355         * libgupnp/gupnp-service.c: (gupnp_service_action_return_error):
2356
2357         Fill in description automatically for known error codes.
2358
2359         * libgupnp/gupnp-service-proxy.c: (convert_error_code):
2360
2361         Handle unknown error codes.
2362
2363 2007-06-30  Jorn Baayen  <jorn@openedhand.com>
2364
2365         * libgupnp/gupnp-error.c:
2366         * libgupnp/gupnp-error.h:
2367         * libgupnp/gupnp-service-proxy.c: (set_error_literal),
2368         (convert_error_code), (gupnp_service_proxy_end_action_valist),
2369         (subscription_expire), (subscribe_got_response):
2370         * libgupnp/gupnp-service.c: (notify_got_response):
2371
2372         More detailed erroring.
2373
2374 2007-06-30  Jorn Baayen  <jorn@openedhand.com>
2375
2376         * libgupnp/gupnp-error.h:
2377         * libgupnp/gupnp-service-proxy.c:
2378         (gupnp_service_proxy_begin_action_valist), (set_error_literal),
2379         (gupnp_service_proxy_end_action_valist), (subscribe_got_response):
2380         * libgupnp/gupnp-service.c: (notify_got_response):
2381
2382         Don't report GValue errors through GError, and define error codes.
2383
2384 2007-06-30  Jorn Baayen  <jorn@openedhand.com>
2385
2386         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_end_action),
2387         (gupnp_service_proxy_end_action_valist):
2388
2389         Added set_error_literal() helper function.
2390
2391 2007-06-30  Jorn Baayen  <jorn@openedhand.com>
2392
2393         * libgupnp/gupnp-service-proxy.c:
2394         (gupnp_service_proxy_end_action_valist):
2395
2396         Handle SOAP Faults.
2397
2398         * libgupnp/gupnp-service.c: (gupnp_service_action_set_value),
2399         (gupnp_service_action_return_error):
2400
2401         Return SOAP Fault in correct format.
2402
2403         * tests/test-client.c: (service_proxy_available_cb):
2404
2405         Return on error.
2406
2407 2007-06-30  Jorn Baayen  <jorn@openedhand.com>
2408
2409         * libgupnp/gupnp-service-proxy.c: (subscribe_got_response):
2410
2411         Remove obsolete comment and correct warning message.
2412
2413         * libgupnp/gupnp-service.c: (subscription_response),
2414         (subscription_timeout), (parse_timeout), (subscribe),
2415         (resubscribe):
2416
2417         Return correct timeout to subscriber.
2418
2419 2007-06-30  Jorn Baayen  <jorn@openedhand.com>
2420
2421         * libgupnp/gupnp-control-point.c:
2422         (gupnp_control_point_resource_unavailable):
2423
2424         Remove unavailable device from correct list!
2425
2426 2007-06-29  Jorn Baayen  <jorn@openedhand.com>
2427
2428         * AUTHORS: Added Zeeshan.
2429
2430 2007-06-29  Zeeshan Ali  <zeenix@gstreamer.net>
2431
2432         reviewed by: Jorn Baayen  <jorn@openedhand.com>
2433
2434         * libgupnp/Makefile.am:
2435         * libgupnp/gupnp.h:
2436         * libgupnp/gupnp-service-introspection.c:
2437         (gupnp_service_introspection_init),
2438         (gupnp_service_introspection_set_property),
2439         (gupnp_service_introspection_get_property),
2440         (gupnp_service_introspection_dispose),
2441         (gupnp_service_introspection_finalize),
2442         (gupnp_service_introspection_class_init), (get_scpd),
2443         (set_default_value), (set_string_value_limits),
2444         (set_value_limit_by_name), (set_variable_limits),
2445         (set_variable_type), (get_state_variable), (get_action_argument),
2446         (get_action_arguments), (action_argument_list_free), (get_actions),
2447         (get_state_variables), (contstruct_introspection_info),
2448         (collect_action_names), (collect_action_arguments),
2449         (collect_actions), (collect_allowed_values), (copy_state_variable),
2450         (collect_state_variables), (gupnp_service_introspection_new),
2451         (gupnp_service_introspection_list_action_names),
2452         (gupnp_service_introspection_list_action_arguments),
2453         (gupnp_service_introspection_list_actions),
2454         (gupnp_service_action_arg_info_free),
2455         (gupnp_service_action_info_free),
2456         (gupnp_service_introspection_list_state_variables),
2457         (gupnp_service_state_variable_info_free):
2458         * libgupnp/gupnp-service-introspection.h:
2459
2460         Add service introspection support.
2461
2462         * libgupnp/gupnp-service-info.c:
2463         (gupnp_service_proxy_request_introspection):
2464         * libgupnp/gupnp-service-info.h:
2465         
2466         - Add service introspection support.
2467
2468         * tests/Makefile.am:
2469         * tests/test-introspection.c: (print_action_arguments),
2470         (print_actions), (print_state_variables),
2471         (service_proxy_available_cb), (service_proxy_unavailable_cb),
2472         (main):
2473
2474         Add a test application for the introspection API.
2475
2476 2007-06-27  Jorn Baayen  <jorn@openedhand.com>
2477
2478         * libgupnp/gupnp-service-proxy.c:
2479         (gupnp_service_proxy_send_action_valist):
2480
2481         Only run the main loop if it hasn't been quit before yet. Fixes
2482         a hang.
2483
2484 2007-06-27  Jorn Baayen  <jorn@openedhand.com>
2485
2486         * libgupnp/gupnp-service.c: (subscription_data_free), (subscribe),
2487         (gupnp_service_constructor), (gupnp_service_finalize),
2488         (gupnp_service_class_init), (gupnp_service_notify_valist),
2489         (notify_got_response), (notify_subscriber), (flush_notifications),
2490         (gupnp_service_notify_value), (gupnp_service_freeze_notify),
2491         (gupnp_service_thaw_notify):
2492         * libgupnp/gupnp-service.h:
2493
2494         Implement notification.
2495
2496 2007-06-27  Jorn Baayen  <jorn@openedhand.com>
2497
2498         * configure.ac:
2499         
2500         Depend on uuid.
2501
2502         * libgupnp/gena-protocol.h:
2503
2504         Added minimum timeout value.
2505
2506         * libgupnp/gupnp-context.c: (gupnp_context_class_init):
2507
2508         Use minimum timeout value.
2509
2510         * libgupnp/gupnp-service.c: (gupnp_service_action_return_error),
2511         (gupnp_service_init), (query_state_variable),
2512         (control_server_handler), (subscription_response), (generate_sid),
2513         (subscription_timeout), (parse_timeout), (subscribe),
2514         (resubscribe), (unsubscribe), (subscription_server_handler),
2515         (gupnp_service_constructor), (gupnp_service_finalize),
2516         (gupnp_service_class_init), (gupnp_service_notify),
2517         (gupnp_service_notify_valist), (gupnp_service_notify_value),
2518         (gupnp_service_freeze_notify), (gupnp_service_thaw_notify),
2519         (_gupnp_service_new_from_element):
2520
2521         Implement subscription.
2522
2523 2007-06-27  Jorn Baayen  <jorn@openedhand.com>
2524
2525         * libgupnp/Makefile.am:
2526         * libgupnp/gupnp-error.h:
2527         * libgupnp/gupnp-service.c: (gupnp_service_action_return_error),
2528         (query_state_variable), (control_server_handler):
2529         * libgupnp/gupnp-service.h:
2530         * libgupnp/upnp-protocol.h:
2531
2532         More flexible error handling.
2533
2534 2007-06-27  Jorn Baayen  <jorn@openedhand.com>
2535
2536         * libgupnp/gupnp-service.c: (gupnp_service_action_get_value),
2537         (gupnp_service_action_set_valist),
2538         (gupnp_service_action_set_value), (gupnp_service_action_return),
2539         (gupnp_service_action_return_error), (gupnp_service_init),
2540         (new_action_response_node), (query_state_variable),
2541         (control_server_handler), (gupnp_service_notify_valist),
2542         (gupnp_service_notify_value), (gupnp_service_freeze_notify),
2543         (gupnp_service_thaw_notify), (_gupnp_service_new_from_element):
2544         * libgupnp/gupnp-service.h:
2545
2546         Fully implement actioning.
2547
2548         * libgupnp/Makefile.am:
2549         * libgupnp/gupnp-error.h:
2550         * libgupnp/upnp-protocol.h:
2551
2552         Added error codes and descriptions.
2553
2554         * libgupnp/xml-util.c: (xml_util_node_get_content_int):
2555         * libgupnp/xml-util.h:
2556
2557         Added xml_util_node_get_content_value() for retrieving xmlNode
2558         contents as GValues.
2559
2560         * libgupnp/gupnp-service-proxy.c: (server_handler):
2561
2562         Use xml_util_node_get_content_value().
2563
2564         * tests/test-server.c: (browse_cb):
2565
2566         Test actioning.
2567
2568 2007-06-26  Jorn Baayen  <jorn@openedhand.com>
2569
2570         * libgupnp/gupnp-service-proxy.c:
2571         (gupnp_service_proxy_end_action_valist):
2572
2573         Small cleanup.
2574
2575         * libgupnp/gupnp-service.c: (gupnp_service_action_get_locales),
2576         (gupnp_service_action_get), (gupnp_service_action_get_valist),
2577         (gupnp_service_action_get_value), (gupnp_service_action_set),
2578         (gupnp_service_action_set_valist),
2579         (gupnp_service_action_set_value), (gupnp_service_action_return),
2580         (gupnp_service_action_return_error), (gupnp_service_class_init),
2581         (gupnp_service_notify), (gupnp_service_notify_valist),
2582         (gupnp_service_notify_value), (gupnp_service_freeze_notify),
2583         (gupnp_service_thaw_notify):
2584
2585         Boilerplate code.
2586
2587 2007-06-26  Jorn Baayen  <jorn@openedhand.com>
2588
2589         * libgupnp/gupnp-service.c: (query_state_variable),
2590         (control_server_handler):
2591
2592         Implement QueryStateVariable.
2593
2594 2007-06-26  Jorn Baayen  <jorn@openedhand.com>
2595
2596         * libgupnp/gupnp-service-proxy.c:
2597         (gupnp_service_proxy_begin_action_valist):
2598         * libgupnp/gupnp-service.c: (gupnp_service_action_get_name),
2599         (gupnp_service_action_get_locales),
2600         (gupnp_service_action_set_value), (gupnp_service_action_return),
2601         (gupnp_service_action_return_error), (gupnp_service_init),
2602         (query_state_variable), (control_server_handler),
2603         (subscription_server_handler), (gupnp_service_constructor),
2604         (gupnp_service_dispose), (gupnp_service_finalize),
2605         (gupnp_service_class_init), (gupnp_service_notify),
2606         (gupnp_service_notify_valist), (gupnp_service_notify_value),
2607         (gupnp_service_freeze_notify), (gupnp_service_thaw_notify),
2608         (_gupnp_service_new_from_element):
2609         * libgupnp/gupnp-service.h:
2610
2611         Basic server-side actioning. No argument handling yet.
2612
2613         * tests/test-server.c: (browse_cb), (main):
2614
2615         Test actioning.
2616
2617 2007-06-26  Jorn Baayen  <jorn@openedhand.com>
2618
2619         * libgupnp/accept-language.c: (accept_language_get_header):
2620         * libgupnp/accept-language.h:
2621
2622         Cleanup, additional functions to convert between locale and HTTP
2623         language tag representations.
2624
2625         * libgupnp/gupnp-service-proxy.c:
2626         (gupnp_service_proxy_begin_action_valist):
2627
2628         Updated for accept-language function rename.
2629
2630         * configure.ac:
2631
2632         Depend on shared-mime-data.
2633
2634         * libgupnp/Makefile.am:
2635         * libgupnp/xdgmime/Makefile.am:
2636         * libgupnp/xdgmime/xdgmime.c:
2637         * libgupnp/xdgmime/xdgmime.h:
2638         * libgupnp/xdgmime/xdgmimealias.c:
2639         * libgupnp/xdgmime/xdgmimealias.h:
2640         * libgupnp/xdgmime/xdgmimecache.c:
2641         * libgupnp/xdgmime/xdgmimecache.h:
2642         * libgupnp/xdgmime/xdgmimeglob.c:
2643         * libgupnp/xdgmime/xdgmimeglob.h:
2644         * libgupnp/xdgmime/xdgmimeint.c:
2645         * libgupnp/xdgmime/xdgmimeint.h:
2646         * libgupnp/xdgmime/xdgmimemagic.c:
2647         * libgupnp/xdgmime/xdgmimemagic.h:
2648         * libgupnp/xdgmime/xdgmimeparent.c:
2649         * libgupnp/xdgmime/xdgmimeparent.h:
2650         * libgupnp/gupnp-context.c: (hosting_server_handler):
2651
2652         Use xdgmime to set correct Content-Type HTTP headers.
2653
2654         * tests/test-server.c: (main):
2655
2656         Print port number on startup.
2657
2658 2007-06-22  Jorn Baayen  <jorn@openedhand.com>
2659
2660         * libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property),
2661         (gupnp_device_info_get_udn):
2662
2663         Re-use get_property() in one more spot.
2664
2665         * libgupnp/gupnp-service.h:
2666
2667         Added G_GNUC_NULL_TERMINATED.
2668
2669         * libgupnp/gupnp-root-device.c: (server_handler),
2670         (fill_resource_group), (gupnp_root_device_constructor):
2671         * libgupnp/xml-util.c: (xml_util_node_get_content_int):
2672         * libgupnp/xml-util.h:
2673
2674         Move some XML utils to xml-util.c
2675
2676 2007-06-22  Jorn Baayen  <jorn@openedhand.com>
2677
2678         * libgupnp/Makefile.am:
2679         * libgupnp/accept-language.c:
2680         * libgupnp/accept-language.h:
2681         * libgupnp/gupnp-context.c:
2682         (gupnp_context_get_subscription_timeout), (hosting_server_handler),
2683         (unregister_hosting_server_handler):
2684
2685         Proper Accept-Language support.
2686
2687         * libgupnp/gupnp-device.c: (gupnp_device_get_service):
2688         * libgupnp/gupnp-service-private.h:
2689         * libgupnp/gupnp-service-proxy.c:
2690         (gupnp_service_proxy_begin_action),
2691         (gupnp_service_proxy_begin_action_valist):
2692         * libgupnp/gupnp-service.c: (gupnp_service_action_get_name),
2693         (gupnp_service_thaw_notify):
2694         * libgupnp/gupnp-service.h:
2695
2696         Handle service object creation.
2697
2698 2007-06-19  Jorn Baayen  <jorn@openedhand.com>
2699
2700         * doc/Makefile.am:
2701         * doc/api-design.txt:
2702
2703         Remove obsolete API design document.
2704
2705         * libgupnp/gupnp-device.c:
2706
2707         Small doc correction.
2708
2709         * libgupnp/Makefile.am:
2710         * libgupnp/gupnp-service.c:
2711         * libgupnp/gupnp-service.h:
2712
2713         Added Service skels.
2714
2715         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_class_init):
2716
2717         Delete obsolete code.
2718
2719 2007-06-19  Jorn Baayen  <jorn@openedhand.com>
2720
2721         * libgupnp/gupnp-context.c: (_gupnp_context_get_session),
2722         (gupnp_context_get_subscription_timeout):
2723         * libgupnp/gupnp-context.h:
2724         * tests/test-server.c: (main):
2725
2726         Add regular web server functionality.
2727
2728 2007-06-19  Jorn Baayen  <jorn@openedhand.com>
2729
2730         * libgupnp/gupnp-control-point.c: (description_loaded):
2731         * libgupnp/gupnp-device-proxy-private.h:
2732         * libgupnp/gupnp-device-proxy.c:
2733         (_gupnp_device_proxy_find_element_for_udn):
2734         * libgupnp/gupnp-device-proxy.h:
2735         * libgupnp/gupnp-service-proxy-private.h:
2736         * libgupnp/gupnp-service-proxy.c: (find_service_element_for_type):
2737         * libgupnp/gupnp-service-proxy.h:
2738
2739         Make ServiceProxy and DeviceProxy constructors private.
2740
2741 2007-06-19  Jorn Baayen  <jorn@openedhand.com>
2742
2743         * libgupnp/gupnp-context.c: (gupnp_context_dispose):
2744         * libgupnp/gupnp-control-point.c: (gupnp_control_point_dispose):
2745         * libgupnp/gupnp-root-device.c: (gupnp_root_device_finalize),
2746         (gupnp_root_device_dispose):
2747         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_dispose):
2748
2749         Chain up to parent class dispose and finalize methods.
2750
2751 2007-06-19  Jorn Baayen  <jorn@openedhand.com>
2752
2753         * libgupnp/gupnp-context.c: (gupnp_context_init):
2754
2755         Remove unnecessary initialisations.
2756
2757 2007-06-19  Jorn Baayen  <jorn@openedhand.com>
2758
2759         * libgupnp/gupnp-context.c: (gupnp_context_class_init):
2760         * libgupnp/gupnp-device-info.c: (gupnp_device_info_class_init):
2761         * libgupnp/gupnp-service-info.c: (gupnp_service_info_class_init):
2762         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_class_init):
2763
2764         Added G_PARAM_STATIC_{NAME,NICK,BLURB}.
2765
2766 2007-06-19  Jorn Baayen  <jorn@openedhand.com>
2767
2768         * tests/test-server.c: (main):
2769
2770         Use g_object_weak_ref() to destroy the description document when
2771         the root device is finalized.
2772
2773 2007-06-19  Jorn Baayen  <jorn@openedhand.com>
2774
2775         * libgupnp/gupnp-root-device.c: (fill_resource_group):
2776
2777         Do not overwrite 'element' with child elements as it is still
2778         needed later.
2779
2780         * tests/Makefile.am:
2781         * tests/test-server.c:
2782         D tests/test.c:
2783         A tests/test-client.c:
2784
2785         Added server test case.
2786
2787 2007-06-18  Jorn Baayen  <jorn@openedhand.com>
2788
2789         * libgupnp/Makefile.am:
2790         * libgupnp/gupnp-device.c:
2791         * libgupnp/gupnp-root-device.c:
2792         * libgupnp/gupnp-root-device.h:
2793
2794         Implement Device and RootDevice.
2795
2796         * libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property),
2797         (gupnp_device_info_class_init):
2798
2799         Detect UDN if not explicitly specified.
2800
2801         * libgupnp/gupnp-control-point.c: (parse_usn):
2802         * libgupnp/gupnp-service.h:
2803
2804         Fix typos.
2805
2806         * libgupnp/gupnp-device-proxy.c:
2807         * libgupnp/gupnp-device-proxy.h:
2808
2809         No need for a private structure any more.
2810
2811 2007-06-14  Jorn Baayen  <jorn@openedhand.com>
2812
2813         * libgupnp/gupnp-context.c: (get_default_host_ip):
2814
2815         Set IP to 127.0.0.1 if no non-loopback device could be found.
2816
2817         * libgupnp/gupnp-device-info.c: (gupnp_device_info_set_property),
2818         (gupnp_device_info_get_property), (gupnp_device_info_dispose),
2819         (gupnp_device_info_finalize), (gupnp_device_info_class_init),
2820         (gupnp_device_info_get_context), (gupnp_device_info_get_location),
2821         (gupnp_device_info_get_url_base), (gupnp_device_info_get_udn),
2822         (get_property), (gupnp_device_info_get_serial_number),
2823         (gupnp_device_info_get_upc), (icon_parse), (icon_free),
2824         (gupnp_device_info_get_icon_url), (gupnp_device_info_list_devices),
2825         (gupnp_device_info_list_device_types),
2826         (gupnp_device_info_get_device), (gupnp_device_info_list_services),
2827         (gupnp_device_info_list_service_types),
2828         (gupnp_device_info_get_service):
2829         * libgupnp/gupnp-device-info.h:
2830         * libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_new):
2831         * libgupnp/gupnp-service-info.c: (gupnp_service_info_set_property),
2832         (gupnp_service_info_get_property), (gupnp_service_info_dispose),
2833         (gupnp_service_info_finalize), (gupnp_service_info_class_init),
2834         (gupnp_service_info_get_context),
2835         (gupnp_service_info_get_location),
2836         (gupnp_service_info_get_url_base), (gupnp_service_info_get_udn),
2837         (get_property), (get_url_property):
2838         * libgupnp/gupnp-service-info.h:
2839         * libgupnp/gupnp-service-proxy-private.h:
2840         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_class_init),
2841         (gupnp_service_proxy_new):
2842
2843         Add 'context' and 'url-base' properties to info classes.
2844
2845         * libgupnp/gupnp-service.h:
2846         * libgupnp/gupnp-root-device.h:
2847
2848         Server side API changes.
2849
2850 2007-06-11  Jorn Baayen  <jorn@openedhand.com>
2851
2852         * libgupnp/gupnp-root-device.h:
2853         * libgupnp/gupnp-service.h:
2854         
2855         API tweaks.
2856
2857 2007-06-11  Jorn Baayen  <jorn@openedhand.com>
2858
2859         * libgupnp/Makefile.am:
2860         * libgupnp/gupnp-device.h:
2861         * libgupnp/gupnp-root-device.h:
2862         * libgupnp/gupnp-service.h:
2863         * libgupnp/gupnp.h:
2864
2865         Headers for server side. These are not final yet.
2866
2867 2007-05-30  Jorn Baayen  <jorn@openedhand.com>
2868
2869         * libgupnp/gupnp-control-point.c:
2870         (gupnp_control_point_resource_unavailable):
2871
2872         Remove unavailable proxies from cache.
2873
2874 2007-05-29  Jorn Baayen  <jorn@openedhand.com>
2875
2876         * configure.ac:
2877
2878         Bump version to 0.1.99.
2879
2880         * libgupnp/gupnp-device-info.c: (gupnp_device_info_get_icon_url):
2881         * libgupnp/gupnp-device-info.h:
2882         * libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_get_url_base),
2883         (gupnp_device_proxy_get_device), (gupnp_device_proxy_get_service),
2884         (gupnp_device_proxy_init), (gupnp_device_proxy_class_init):
2885         * libgupnp/gupnp-device-proxy.h:
2886
2887         Move device subdevice and service retreival from DeviceProxy to
2888         DeviceInfo. This so that client and server side code can expose
2889         identical info API.
2890
2891         * libgupnp/gupnp-service-proxy.c:
2892         (gupnp_service_proxy_begin_action), (get_current_language),
2893         (action_got_response), (gupnp_service_proxy_begin_action_valist):
2894         * tests/test.c: (main):
2895
2896         Set Accept-Language header on action requests.
2897
2898 2007-05-26  Jorn Baayen  <jorn@openedhand.com>
2899
2900         * libgupnp/gupnp-context.c:
2901         * libgupnp/gupnp-context.h:
2902         * libgupnp/gupnp-control-point.c:
2903         * libgupnp/gupnp-control-point.h:
2904         * libgupnp/gupnp-device-info.c:
2905         * libgupnp/gupnp-device-info.h:
2906         * libgupnp/gupnp-device-proxy.c:
2907         * libgupnp/gupnp-device-proxy.h:
2908         * libgupnp/gupnp-error.c:
2909         * libgupnp/gupnp-service-info.c:
2910         * libgupnp/gupnp-service-info.h:
2911         * libgupnp/gupnp-service-proxy.c:
2912         * libgupnp/gupnp-service-proxy.h:
2913
2914         More gtkdoc-fu.
2915
2916 2007-05-26  Jorn Baayen  <jorn@openedhand.com>
2917
2918         * configure.ac:
2919         * doc/Makefile.am:
2920         * doc/gupnp-docs.sgml:
2921
2922         Added doc preamble.
2923
2924 2007-05-22  Jorn Baayen  <jorn@openedhand.com>
2925
2926         * libgupnp/gupnp-device-proxy.h:
2927         * libgupnp/gupnp-service-proxy.h:
2928
2929         Doc coverage to 100%.
2930
2931 2007-05-21  Jorn Baayen  <jorn@openedhand.com>
2932
2933         * libgupnp/Makefile.am:
2934
2935         Make sure all files get packaged.
2936
2937         * libgupnp/gupnp-context.c: (gupnp_context_class_init):
2938         * libgupnp/gupnp-context.h:
2939         * libgupnp/gupnp-control-point.c: (gupnp_control_point_class_init):
2940         * libgupnp/gupnp-control-point.h:
2941         * libgupnp/gupnp-device-info.c: (gupnp_device_info_class_init),
2942         (icon_parse), (icon_free):
2943         * libgupnp/gupnp-device-info.h:
2944         * libgupnp/gupnp-error.c:
2945         * libgupnp/gupnp-service-info.c: (gupnp_service_info_class_init),
2946         (get_url_property), (gupnp_service_info_get_service_type),
2947         (gupnp_service_info_get_id), (gupnp_service_info_get_scpd_url),
2948         (gupnp_service_info_get_control_url):
2949         * libgupnp/gupnp-service-info.h:
2950         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_class_init):
2951
2952         Doc updates.
2953
2954 2007-05-21  Jorn Baayen  <jorn@openedhand.com>
2955
2956         * doc/Makefile.am:
2957
2958         Hide private bits.
2959
2960         * doc/gupnp-docs.sgml:
2961
2962         Added.
2963
2964 2007-05-21  Jorn Baayen  <jorn@openedhand.com>
2965
2966         * configure.ac:
2967
2968         Point to gupnp.org.
2969
2970         * po/*: 
2971
2972         Added missing files.
2973
2974 2007-05-10  Jorn Baayen  <jorn@openedhand.com>
2975
2976         * NEWS:
2977         * README:
2978
2979         Added some text.
2980
2981         * libgupnp/gupnp-device-info.h:
2982
2983         Removed device type defines. These belong in any higher level
2984         libs now.
2985
2986         * tests/test.c: (device_proxy_available_cb),
2987         (service_proxy_available_cb), (service_proxy_unavailable_cb),
2988         (main):
2989
2990         Added notification test and cleaned up.
2991
2992 2007-05-09  Jorn Baayen  <jorn@openedhand.com>
2993
2994         * libgupnp/gupnp-service-proxy.c: (server_handler):
2995
2996         Parse XML part of NOTIFY messages and call notify callbacks.
2997
2998         This means that now the client side of GUPnP is feature complete.
2999         Yay!
3000
3001         * tests/test.c:
3002         
3003         Remove old comments.
3004
3005 2007-05-09  Jorn Baayen  <jorn@openedhand.com>
3006
3007         * libgupnp/gupnp-service-proxy.c:
3008         (gupnp_service_proxy_get_element),
3009         (gupnp_service_proxy_get_url_base), (notify_data_free),
3010         (gupnp_service_proxy_init), (gupnp_service_proxy_dispose),
3011         (gupnp_service_proxy_finalize),
3012         (gupnp_service_proxy_end_action_valist),
3013         (gupnp_service_proxy_cancel_action):
3014         * libgupnp/gupnp-service-proxy.h:
3015
3016         Add notification management.
3017
3018 2007-05-09  Jorn Baayen  <jorn@openedhand.com>
3019
3020         * libgupnp/gupnp-service-proxy.c:
3021         (gupnp_service_proxy_end_action_valist):
3022
3023         Correct error message.
3024
3025 2007-05-09  Jorn Baayen  <jorn@openedhand.com>
3026
3027         * libgupnp/gupnp-service-proxy.c: (server_handler),
3028         (subscription_expire), (subscribe_got_response), (subscribe),
3029         (unsubscribe):
3030
3031         Emit 'subscription-lost' when appropriate.
3032
3033         Keep track of notify sequence numbers and resubscribe when
3034         we notice dropped notifications.
3035
3036 2007-05-09  Jorn Baayen  <jorn@openedhand.com>
3037
3038         * libgupnp/gupnp-context-private.h:
3039         * libgupnp/gupnp-context.c:
3040         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_finalize),
3041         (gupnp_service_proxy_remove_notify), (subscription_expire),
3042         (subscribe_got_response), (subscribe), (unsubscribe):
3043
3044         Generate a unique path for each proxy on the server, and use
3045         soup_server_add_handler() to capture its requests instead of
3046         using a 'server-message-received' signal from GUPnPContext.
3047
3048 2007-05-09  Jorn Baayen  <jorn@openedhand.com>
3049
3050         * libgupnp/gupnp-service-proxy.c:
3051         (gupnp_service_proxy_remove_notify), (subscription_expire),
3052         (subscribe_got_response), (subscribe), (unsubscribe):
3053
3054         Correct "Callback" URL format is subscription message.
3055         Disable Date header parsing for now as getting a local time 
3056         (taking into account daylight saving) out of an RFC 1123 time
3057         is a total pain.
3058
3059 2007-05-09  Jorn Baayen  <jorn@openedhand.com>
3060
3061         * libgupnp/gupnp-context-private.h:
3062         * libgupnp/gupnp-context.c: (gupnp_context_class_init),
3063         (_gupnp_context_get_session), (server_handler),
3064         (_gupnp_context_get_server):
3065
3066         Add hidden 'server-message-received' signal, emitted whenever
3067         the SoupServer receives a message.
3068
3069 2007-05-09  Jorn Baayen  <jorn@openedhand.com>
3070
3071         * libgupnp/gupnp-context.c: (_gupnp_context_get_session),
3072         (default_server_handler), (_gupnp_context_get_server),
3073         (gupnp_context_get_port), (gupnp_context_set_subscription_timeout):
3074         * libgupnp/gupnp-service-proxy.c:
3075         (gupnp_service_proxy_remove_notify), (make_timeout_header),
3076         (subscription_expire), (subscribe_got_response), (subscribe):
3077
3078         Support infinite timeout locally.
3079
3080         Add a default server handler returning 501.
3081
3082 2007-05-08  Jorn Baayen  <jorn@openedhand.com>
3083
3084         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_dispose),
3085         (subscribe), (unsubscribe), (gupnp_service_proxy_set_subscribed):
3086
3087         Send unsubscription message synchronised on dispose.
3088
3089 2007-05-08  Jorn Baayen  <jorn@openedhand.com>
3090
3091         * libgupnp/gupnp-context.c: (gupnp_context_init),
3092         (gupnp_context_set_property), (gupnp_context_get_property),
3093         (gupnp_context_class_init), (_gupnp_context_get_server_url),
3094         (gupnp_context_new):
3095         * libgupnp/gupnp-context.h:
3096         * libgupnp/gupnp-service-proxy.c: (subscription_expire),
3097         (subscribe_got_response), (subscribe):
3098
3099         Added subscription-timeout property to Context and use in
3100         ServiceProxy.
3101
3102 2007-05-08  Jorn Baayen  <jorn@openedhand.com>
3103
3104         * libgupnp/gupnp-service-proxy.c: (subscribe_got_response):
3105
3106         Support infinite timeouts.
3107
3108 2007-05-08  Jorn Baayen  <jorn@openedhand.com>
3109
3110         * libgupnp/Makefile.am:
3111         * libgupnp/gupnp-device-proxy.c:
3112         * libgupnp/gupnp-service-proxy.c: (gupnp_service_proxy_dispose),
3113         (gupnp_service_proxy_begin_action), (action_got_response),
3114         (gupnp_service_proxy_end_action_valist),
3115         (gupnp_service_proxy_remove_notify), (subscription_expire),
3116         (subscribe_got_response), (subscribe), (unsubscribe),
3117         (gupnp_service_proxy_set_subscribed):
3118
3119         Implement subscription.
3120
3121         * tests/test.c: (service_proxy_available_cb):
3122
3123         Test subscription.
3124
3125 2007-05-08  Jorn Baayen  <jorn@openedhand.com>
3126
3127         * libgupnp/gupnp-context-private.h:
3128         * libgupnp/gupnp-context.c: (make_server_id), (get_ip),
3129         (get_default_host_ip), (gupnp_context_init),
3130         (gupnp_context_set_property), (gupnp_context_get_property),
3131         (gupnp_context_dispose), (gupnp_context_finalize),
3132         (gupnp_context_class_init), (_gupnp_context_get_session):
3133         * libgupnp/gupnp-context.h:
3134
3135         Start a SOAP server on demand, and add internal API for
3136         retrieving a URL to the server itself.
3137
3138         * tests/test.c: (main):
3139
3140         Updated to use changed GUPnPContext constructor.
3141
3142 2007-05-07  Jorn Baayen  <jorn@openedhand.com>
3143
3144         * libgupnp/gupnp-device-info.c: (icon_parse), (icon_free),
3145         (gupnp_device_info_get_icon_url):
3146         * libgupnp/gupnp-device-info.h:
3147         * libgupnp/gupnp-device-proxy.c: (gupnp_device_proxy_finalize),
3148         (gupnp_device_proxy_get_element),
3149         (gupnp_device_proxy_get_url_base), (gupnp_device_proxy_init),
3150         (gupnp_device_proxy_list_devices), (gupnp_device_proxy_get_device),
3151         (gupnp_device_proxy_list_services),
3152         (gupnp_device_proxy_get_service),
3153         (_gupnp_device_proxy_find_element_for_udn),
3154         (gupnp_device_proxy_new), (_gupnp_device_proxy_new_from_element):
3155         * libgupnp/gupnp-service-info.c: (get_property),
3156         (gupnp_service_info_get_service_type), (gupnp_service_info_get_id),
3157         (gupnp_service_info_get_scpd_url),
3158         (gupnp_service_info_get_control_url):
3159         * libgupnp/gupnp-service-info.h:
3160         * libgupnp/gupnp-service-proxy-private.h:
3161         * libgupnp/gupnp-service-proxy.c:
3162         (gupnp_service_proxy_action_free),
3163         (gupnp_service_proxy_get_element),
3164         (gupnp_service_proxy_get_property), (gupnp_service_proxy_dispose),
3165         (gupnp_service_proxy_finalize), (gupnp_service_proxy_class_init),
3166         (gupnp_service_proxy_send_action_valist),
3167         (gupnp_service_proxy_begin_action_valist),
3168         (gupnp_service_proxy_end_action),
3169         (gupnp_service_proxy_end_action_valist),
3170         (find_service_element_for_type), (gupnp_service_proxy_new),
3171         (_gupnp_service_proxy_new_from_element):
3172
3173         Take URLBase into account.
3174         Make sending actions and parsing action responses work correctly.
3175
3176         * tests/test.c: (service_proxy_available_cb),
3177         (service_proxy_unavailable_cb), (main):
3178
3179         Add a little control test case for ContentDirectories.
3180
3181 2007-05-07  Jorn Baayen  <jorn@openedhand.com>
3182
3183         * libgupnp/gupnp-control-point.c: (description_loaded),
3184         (parse_usn):
3185
3186         Correct USN parsing.
3187
3188         * libgupnp/gupnp-service-proxy.c:
3189         (gupnp_service_proxy_begin_action_valist):
3190
3191         Added assertion.
3192
3193 2007-05-03  Jorn Baayen  <jorn@openedhand.com>
3194
3195         * libgupnp/gupnp-control-point.c: (parse_usn),
3196         (gupnp_control_point_resource_available),
3197         (gupnp_control_point_class_init),
3198         (gupnp_control_point_get_context):
3199         * libgupnp/gupnp-control-point.h:
3200         * tests/test.c: (main):
3201
3202         GSSDPServiceBrowser -> GSSDPResourceBrowser.
3203
3204 2007-04-25  Zeeshan Ali  <zeenix@gstreamer.net>
3205
3206         * libgupnp/gupnp-device-info.h:
3207         * tests/test.c: (device_proxy_available_cb):
3208
3209         Add some device type defines.
3210
3211 2007-04-16  Jorn Baayen  <jorn@openedhand.com>
3212
3213         * libgupnp/gupnp-context-private.h:
3214
3215         Added missing header. Spotted by Priit Laes.
3216