forked from GNOME/libsoup
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog.pre-git
6957 lines (4960 loc) · 242 KB
/
ChangeLog.pre-git
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2009-04-13 Dan Winship <[email protected]>
* configure.in: 2.26.1
* NEWS: update
2009-04-13 Dan Winship <[email protected]>
* libsoup/soup-proxy-resolver-gnome.c (get_proxy_async): fix
use of async context here
2009-04-13 Dan Winship <[email protected]>
Bug 578809 – warnings in soup_address_equal_by_ip
* libsoup/soup-session.c (get_host_for_message): don't try to look
up unresolved addresses in the hosts hash; just return NULL. The
"cancel other messages for the bad host" code in connect_result()
will loop over the whole queue, including messages with unresolved
addresses.
2009-04-13 Dan Winship <[email protected]>
Bug 578746 – http_proxy env var set to "http://:80" in session
despite proxy mode "none"
* libsoup/soup-proxy-resolver-gnome.c (update_proxy_settings):
Don't set anything if proxy_mode is NONE, and properly ignore the
proxy host if it's empty.
2009-04-11 Dan Winship <[email protected]>
Bug 578645 – crash in Rhythmbox Music Player
* libsoup/soup-proxy-resolver-gnome.c
(soup_proxy_resolver_gnome_init): unlock id.lock before freeing
it. (Fixes the case where SoupProxyResolverGNOME is first
initialized from a thread other than the main thread, while the
default main loop is running.)
2009-04-08 Dan Winship <[email protected]>
* configure.in: 2.26.0.9, aka "I can't believe it's not 2.26.1!",
a pre-release to give the proxy resolver fix a bit of extra
testing before next week.
* NEWS: Update
2009-04-08 Dan Winship <[email protected]>
Re-fix GNOME proxy resolution (qv bug 571527)
* libsoup/soup-proxy-resolver-gnome.c: New and improved GNOME
proxy resolver; gets information out of GConf in a thread-safe
manner, and then passes it on to libproxy via environment
variables, so that libproxy won't try to access GConf itself, but
we still can use it for PAC, WPAD, and ignore_hosts.
* libsoup/soup-proxy-resolver-gconf.c:
* libsoup/soup-proxy-resolver-libproxy.c: gone now
* libsoup/soup-gnome-features.c: update for the fact that
SoupProxyResolverGNOME is actually a real type now, not
compile-time-defined alias
2009-04-08 Dan Winship <[email protected]>
Fix ISO 8601 parsing to accept either "." or ","
* libsoup/soup-date.c (parse_iso8601_date): accept either "." or
"," as decimal separator, per the spec. qv glib bug 578369.
2009-04-05 Dan Winship <[email protected]>
Don't allow CR/LF in header names or values
* libsoup/soup-message-headers.c (soup_message_headers_append):
Don't let the caller create a header with whitespace or ":" in its
name, or with CR or LF in its value, since that would result in us
generating syntactically invalid headers.
2009-04-03 Dan Winship <[email protected]>
Bug 577386 – Fails to handle HTTPS redirect from a certain site.
* libsoup/soup-gnutls.c (soup_gnutls_read): Treat abnormal
EOFs as though they were normal, rather than as errors. Shrug.
Reported by Diego Escalante Urrelo.
2009-04-03 Dan Winship <[email protected]>
Bug 577360 – handle cookies with same name but different path
* libsoup/soup-cookie-jar.c (soup_cookie_jar_add_cookie): check
both name and path when matching cookies; "foo=one; path=/bar"
should not replace "foo=two; path=/". They are separate cookies.
Reported by Alexander V. Butenko.
2009-04-02 Dan Winship <[email protected]>
Bug 577630 – libsoup should ignore broken Content-Type headers
* libsoup/soup-message-headers.c (content_type_setter): Ignore
Content-Type if it's not at least minimally syntactically correct.
(soup_message_headers_get_content_type): Document that.
* tests/header-parsing.c (do_content_type_tests): test it.
2009-04-02 Dan Winship <[email protected]>
Bug 577728 – soup_header_g_string_append_param should handle NULL values
* libsoup/soup-headers.c (soup_header_g_string_append_param):
allow @value to be %NULL.
* tests/header-parsing.c (do_append_param_tests): test
soup_header_g_string_append_param()
2009-04-02 Dan Winship <[email protected]>
Bug 576760 – soup_message_headers_get_content_type returns bad headers
* libsoup/soup-message-headers.c (soup_message_headers_get_one)
(soup_message_headers_get_list): New replacements for
soup_message_headers_get(), indicating explicitly whether the
caller expects the header to be a list or not; for non-list-type
headers, if there's more than one, the second one should be
ignored rather than concatenated to the first.
(soup_message_headers_get): deprecate this.
* libsoup/*.c:
* tests/*.c: Update to use soup_message_headers_get_one() or
_get_list() as appropriate.
* tests/header-parsing.c (do_content_type_tests): Add some tests
of Content-Type parsing/setting, including making sure that
duplicate Content-Type headers are ignored.
* docs/reference/libsoup-2.4-sections.txt: update
2009-03-27 Dan Winship <[email protected]>
Bug 576583 – Tests fail if "localhost" resolves to ::1
* tests/*.c: Use "127.0.0.1" in URIs rather than "localhost",
since the default SoupServer config only listen on IPv4 (qv bug
522519), and tests/httpd.conf.in only configures apache to listen
on IPv4, and we don't handle multiple IP addresses (qv bug 526321)
but the machine might be configured to return "::1" rather than
"127.0.0.1" first for "localhost". Patch from Andreas Rottmann.
2009-03-27 Dan Winship <[email protected]>
* libsoup/soup-cookie.c (soup_cookie_new): Fix docs to not claim
that the cookie domain can be %NULL. Add some g_return_if_fail()s.
2009-03-27 Dan Winship <[email protected]>
* docs/reference/client-howto.xml: clarify that SoupSessionAsync
is not thread-safe, and that setting a non-default GMainContext on
a non-threadsafe object means you can only use that object from
that GMainContext's thread.
2009-03-26 Milan Crha <[email protected]>
Bug 574957 - soup-session-sync doesn't unlock mutex on proxy error
* libsoup/soup-session-sync.c: (wait_for_connection):
Unlock private lock also on proxy error.
2009-03-24 Dan Winship <[email protected]>
Bug 571283 - Allow LF LF instead of CRLF CRLF as header/body separator
* libsoup/soup-message-io.c (read_metadata): Change how this
works; instead of taking a boundary string, just always pass "\n"
as the boundary to soup_socket_read_until(), but call it multiple
times if the caller wants us to read until a blank line.
(io_read): update to deal with the fact that the headers might be
terminated by LF LF rather than CRLF CRLF.
2009-03-23 Dan Winship <[email protected]>
Bug 566530 - Handle (illegal) unencoded spaces in URIs
* libsoup/soup-uri.c (uri_normalized_copy): optionally fix up
parts with unencoded spaces in them.
(soup_uri_new_with_base): tell uri_normalized_copy() to fix up
spaces in the path and query components
* tests/uri-parsing.c (abs_tests): test parsing and unparsing a
URI with an unencoded space in it.
* tests/redirect-test.c (tests, server_callback): add a test of
redirecting to a URI with an unencoded space in it.
2009-03-15 Dan Winship <[email protected]>
* configure.in: 2.26.0
* NEWS: Update
2009-03-14 Xan Lopez <[email protected]>
Add G_{BEGIN,END}_DECLS guards to public headers.
* libsoup/soup-auth.h:
* libsoup/soup-cookie-jar-sqlite.h:
* libsoup/soup-cookie-jar-text.h:
* libsoup/soup-proxy-resolver.h:
2009-03-11 Dan Winship <[email protected]>
* libsoup/soup-session.c (soup_session_cancel_message): add more
detail to the doc comment
* libsoup/soup-message.c (SoupMessage): Note in the doc comment
that reason phrases are not very useful, and should not be
presented to the user.
* libsoup/soup-status.c: add a comment explaining why reason
phrases aren't localized. Also some misc doc fixes.
(soup_status_get_phrase): Note in the doc comment that you
shouldn't present reason phrases to the user.
2009-03-09 Dan Winship <[email protected]>
Bug 571527 – gvfsd-http crashed with SIGSEGV in
g_hash_table_lookup().
As currently written, libproxy's gnome plugin causes intermittent
gvfsd-http crashes, and I didn't have time to come up with either
a fix or a workaround. So for 2.26.0 we will fall back to using
the GConf-based proxy resolver. Hopefully to be fixed for 2.26.1.
* configure.in: require both gconf and libproxy if building
--with-gnome
* libsoup/soup-proxy-resolver-gconf.c: bring this back.
* libsoup/soup-gnome-features.c
(soup_proxy_resolver_gnome_get_type): use gconf instead of
libproxy
* libsoup/Makefile.am: updates
2009-03-08 Dan Winship <[email protected]>
* libsoup/*.c: gtk-doc updates. In particular, document a bunch of
convenience #defines, and add "Since" tags where appropriate.
2009-03-06 Dan Winship <[email protected]>
* libsoup/soup-session-async.c (run_queue): Process messages in
the CONNECTING iostate before messages in the QUEUED iostate.
Otherwise, if a bunch of messages are queued all at once, and the
server doesn't support persistent connections, some messages can
get stranded in the queue. Fixes #574365 (reported by Xan Lopez)
and removes a five-year-old FIXME...
2009-02-20 Gustavo Noronha Silva <[email protected]>
* libsoup/soup-message-headers.c
(soup_message_headers_get_content_type): now returns NULL if there
is no Content-Type header; fix documentation to account for this
change and to actually be correct about how the Content-Type is
returned.
2009-02-19 Dan Winship <[email protected]>
Bug 572153 – SoupServer doesn't support SOUP_ENCODING_EOF
* libsoup/soup-message-io.c (io_write): Various fixes to make
SOUP_ENCODING_EOF work correctly when sending response
bodies. (Previously, the code assumed that SoupServer responses
would always be chunked or Content-Length-encoded.)
* libsoup/soup-message-client-io.c (get_request_headers): when
changing a request body from SOUP_ENCODING_NONE to
SOUP_ENCODING_CONTENT_LENGTH, return the new encoding value to
soup-message-io, not the old one.
* libsoup/soup-message.c (set_property): when setting
priv->server_side to TRUE, set the default encoding on the
response headers to CONTENT_LENGTH. (Moved from SoupServer.)
(soup_message_cleanup_response): If priv->server_side is TRUE,
re-fix the response header encoding after clearing the headers.
Otherwise the response headers revert to SOUP_ENCODING_EOF after
sending a "100 Continue".
(soup_message_is_keepalive): reorganize a little, fix a bug in the
HTTP/1.0 case.
* libsoup/soup-server.c (start_request): remove request encoding
override from here.
* tests/streaming-test.c: new test of SoupServer response
streaming, testing chunked, content-length, and eof-terminated
responses
2009-02-19 Dan Winship <[email protected]>
* libsoup/soup-socket.c (soup_socket_read_until): explain why @len
normally needs to be at least @boundary_len+1. Suggested by
Benjamin Otte.
(soup_socket_class_init): add longer gtk-docs to the non-blocking
property, to explain the way non-blocking I/O works in SoupSocket.
2009-02-19 Xan Lopez <[email protected]>
* libsoup/soup-cookie-jar-sqlite.c:
(callback):
(try_create_table):
(exec_query_with_try_create_table):
(load):
(changed):
Fix a series of issues that prevented SoupCookieJarSQLite from working:
- Try to create cookies table on errors. The table was never created before.
- Store max_age in a gulong, not int.
- Parse correctly boolean values from query. It's 0/1, not FALSE/TRUE.
- The host is stored as host in the table, not as domain.
#572409
2009-02-16 Dan Winship <[email protected]>
* configure.in: 2.25.91
* NEWS: update
2009-02-15 Dan Winship <[email protected]>
* docs/reference/client-howto.xml: Updates: Mention
SoupSessionFeature (and link to SoupLogger, SoupCookieJar, and
SoupProxyResolverGNOME specifically). Mention forms and XML-RPC
support. Mention header-parsing methods. Give a concrete example
of connecting to SoupMessage signals. Document the (minimal)
thread-safety guarantees
* docs/reference/build-howto.xml: basic notes on pkg-config and
#include usage.
2009-02-06 Dan Winship <[email protected]>
* libsoup/soup-auth-manager.c (authenticate_auth): Fix crash when
getting a 407 when using SoupProxyResolverGNOME (or when not using
any proxy). Launchpad bug #326099. (Note that this doesn't
actually make proxy-auth-with-SoupProxyResolverGNOME *work*, it
just makes it not crash.)
2009-02-02 Dan Winship <[email protected]>
* configure.in: 2.25.5
* NEWS: update
2009-02-02 Dan Winship <[email protected]>
* libsoup/soup-proxy-resolver-gconf.h:
* libsoup/soup-proxy-resolver-gconf.c: Remove this, as it was
incomplete, and libproxy is now officially a dependency of GNOME.
* libsoup/Makefile.am:
* libsoup/soup-gnome-features.c: remove gconf-vs-libproxy ifdefs
* configure.in: Remove GConf checks, require libproxy if building
libsoup-gnome.
2009-01-29 Dan Winship <[email protected]>
* libsoup/soup-message-body.c (soup_message_body_wrote_chunk): Fix
this; previously it would discard the entire message body after
writing a SOUP_MEMORY_TEMPORARY chunk. Part of WebKit bug 18343.
* libsoup/soup-message-io.c (io_write): use
io->write_chunk->length *before* freeing io->write_chunk.
* tests/chunk-test.c (do_temporary_test): new test to make sure
that TEMPORARY buffers are handled properly.
2009-01-21 Dan Winship <[email protected]>
* libsoup/soup-session-feature.h: remove the dummy typedef for
struct SoupSessionFeature that was needed because we weren't
scanning soup-types.h. Fixes the build with non-GNU compilers.
* libsoup/soup-session-feature.c: document
SoupSessionFeatureInterface
* docs/reference/Makefile.am (IGNORE_HFILES): oops, don't ignore
soup-types.h
* docs/reference/libsoup-2.4-docs.sgml:
* docs/reference/libsoup-2.4-sections.txt: Split
SoupSessionFeature into its own file.
2009-01-12 Dan Winship <[email protected]>
* libsoup/soup-cookie-jar.c (request_started): Don't pass NULL to
soup_message_headers_replace(), call soup_message_headers_remove()
if there are no cookies. Likely fix for webkit bug #23240.
* libsoup/soup-message-headers.c (soup_message_headers_append):
g_return_if_fail (value != NULL)
2009-01-05 Dan Winship <[email protected]>
2.25.4
* NEWS: update
2008-12-23 Dan Winship <[email protected]>
* configure.in: belated post-release bump to 2.25.4
* libsoup/soup-session.c (soup_session_get_features)
(soup_session_get_feature): add these to query session features.
#565392.
2008-12-23 Dan Winship <[email protected]>
* configure.in: add some more warning CFLAGS, inspired by Benjamin
Otte's blog post, although none of them picked out any actual
bugs. Annoyingly, the most interesting warnings came from
-Wwrite-strings and -Wshadow, both of which I decided against
keeping, because they had too many false positives.
* libsoup/soup-cookie-jar.c (soup_cookie_jar_get_cookies): rename
a variable to avoid shadowing.
* libsoup/soup-message-headers.c
(soup_message_headers_get_ranges): move a variable declaration to
avoid a possibly-confusing shadowing.
* tests/forms-test.c:
* tests/header-parsing.c:
* tests/range-test.c:
* tests/test-utils.c: constify some "char *"s that should have
already been const.
* tests/get.c (find_hrefs): rename an arg whose name shadowed a
global, to avoid possible future confusion
(get_url): Likewise with a functional-internal shadowing.
2008-12-15 Dan Winship <[email protected]>
* configure.in: 2.25.3
* NEWS: update
2008-12-09 Dan Winship <[email protected]>
* libsoup/soup-uri.c (soup_uri_new): Explicitly document the fact
that you have to call soup_uri_set_path() when using
soup_uri_new(NULL), since path is required to be non-%NULL.
* libsoup/soup-connection.c (connect_message): initialize
uri->path
* libsoup/soup-cookie.c (soup_cookie_applies_to_uri):
g_return_val_if_fail() rather than crashing if uri->path is %NULL.
Also, fix the cookie/uri path comparison to not potentially read
off the end of uri->path. #562191, Mark Lee.
2008-12-04 Dan Winship <[email protected]>
* libsoup/soup-form.c (soup_form_decode): Correctly handle forms
that have URI-encoded parameter names. #563302, Evan Nemerson.
* tests/forms-test.c: test that
2008-12-03 Dan Winship <[email protected]>
* libsoup/soup-proxy-resolver-gconf.c (finalize): disconnect from
gconf notifications. Fixes a crash, #563145.
2008-12-01 Dan Winship <[email protected]>
* configure.in: 2.25.2
* NEWS: update
2008-11-28 Dan Winship <[email protected]>
* libsoup/soup-auth-manager.c (auth_type_compare_func): Fix this
so we choose the *strongest* auth type first, rather than the
weakest. Doh. #562339, Pontus Oldberg.
* libsoup/soup-server.c (soup_server_add_auth_domain): use
g_slist_append() rather than prepend(), so auth headers get added
in the same order as the SoupAuthDomains were.
* tests/auth-test.c (do_select_auth_test): add a test of selecting
between Basic and Digest auth
2008-11-28 Dan Winship <[email protected]>
* libsoup/Makefile.am (libsoupgnomeincludedir): make this
$(includedir)/libsoup-gnome-2.4/libsoup rather than being the same
as $(libsoupincludedir). Makes it easier to split into two
packages.
2008-11-28 Dan Winship <[email protected]>
* docs/reference/client-howto.xml: fix method name in example.
#562411, Andreas Bruse.
2008-11-24 Dan Winship <[email protected]>
* libsoup/soup-logger.c: clarify exactly when stuff gets logged
(and in particular, that SoupSession::authenticate gets emitted
before the response it is authenticating gets logged).
2008-11-06 Dan Winship <[email protected]>
* libsoup/Makefile.am (libsoup_gnome_2_4_la_LIBADD): fix linking
with --as-needed. #559342, pointed out by Götz Waschk
2008-11-04 Dan Winship <[email protected]>
* configure.in: 2.25.1
* NEWS: update
2008-11-04 Dan Winship <[email protected]>
* libsoup/soup-address.c (soup_address_is_resolved):
* libsoup/soup-cookie.c (soup_cookie_copy):
* libsoup/soup-cookie-jar.c (soup_cookie_jar_class_init):
* libsoup/soup-message-headers.c (SoupMessageHeadersType):
* libsoup/soup-proxy-resolver.c
(soup_proxy_resolver_get_proxy_async)
(soup_proxy_resolver_get_proxy_sync):
* libsoup/soup-status.c (soup_status_proxyify): misc doc fixes
* libsoup/soup-cookie-jar-text.h: remove a "deprecated" API that
was never actually released
* libsoup/soup.h: include soup-proxy-resolver.h
* docs/reference/Makefile.am (SCAN_OPTIONS): set
--deprecated-guards correctly
(IGNORE_HFILES): ignore some more internal files
(GTKDOC_LIBS): link against libsoup-gnome, not libsoup
* docs/reference/libsoup-2.4-docs.sgml:
* docs/reference/libsoup-2.4.types:
* docs/reference/libsoup-2.4-sections.txt: add new stuff
2008-11-04 Dan Winship <[email protected]>
* libsoup/soup-cookie-jar-text.c: implementation of SoupCookieJar
that persists to a text file in the old Mozilla cookies.txt
format. Written by Xan Lopez and myself.
* libsoup/soup-cookie-jar-sqlite.c: implementation of
SoupCookieJar that persists to an sqlite database in the new
Mozilla cookies.sqlite format. (Part of libsoup-gnome.) Written by
Diego Escalante Urrelo, based on soup-cookie-jar-text.c.
* libsoup/soup-cookie-jar.c: add various functionality needed by
the two new subclasses. (Mostly written by Xan.) Does not break
API/ABI compat with 2.24.
* libsoup/soup-cookie.c (soup_cookie_get_type): register
SoupCookie as a boxed type.
(domain_matches): fix a bug here that meant "foo.com" couldn't set
a cookie for domain=.foo.com
(soup_cookie_applies_to_uri): fix path checking
* configure.in: if building --with-gnome, require sqlite3
2008-11-03 Dan Winship <[email protected]>
* libsoup/soup-session-sync.c (process_queue_item): don't remove
the item from the queue here; it should already have happened in
all circumstances. Possible fix for #559052.
* libsoup/soup-session.c (cancel_message): don't remove the item
from the queue here; the call to soup_message_finished() will do
that.
* libsoup/soup-message-queue.c (soup_message_queue_remove): This
should only be called once, so g_return_if_fail (!item->removed)
* tests/test-utils.c (test_init): install a new default g_log
handler that increments the error count when it's called so that a
test won't pass if it triggers a g_warning() or
g_return_if_fail().
2008-11-03 Dan Winship <[email protected]>
* tests/Makefile.am (get_LDADD): fix srcdir/builddir mixup.
2008-11-03 Dan Winship <[email protected]>
* libsoup/soup-message-headers.c (set_content_foo): don't leak the
header string
* libsoup/soup-multipart.c (generate_boundary): avoid a (harmless)
valgrind warning
* libsoup/soup-proxy-resolver-static.c (get_proxy_sync): don't
leak the address on error
* libsoup/soup-session-sync.c (wait_for_connection): don't leak
proxy_addr
* tests/misc-test.c: don't leak the SoupMessage signal ids
* tests/range-test.c (main): don't leak base_uri
* tests/libsoup.supp: update this using lots and lots of wildcards
2008-11-03 Dan Winship <[email protected]>
* libsoup/soup-session.c (message_finished): Fix the signal
handler disconnection here: for "finished" we were passing the
wrong user_data to g_signal_handlers_disconnect_by_func(), and for
"got_body" it turns out you can't use _disconnect_by_func() when
there's a metamarshal, making it incompatible
withsoup_message_add_header_handler(). Fixes a crash in
evolution-exchange, #559054.
* tests/misc-test.c (do_msg_reuse_test): Ensure that SoupSession
and its features disconnect all of their signals from a message
when they're done with it.
2008-10-31 Dan Winship <[email protected]>
Add libsoup-gnome, for new features that depend on GNOME
libraries.
* configure.in: Check for libproxy and/or gconf, accept
--without-gnome option, output libsoup-gnome-2.4.pc
* libsoup-gnome-2.4.pc: pc file for libsoup with GNOME support
* libsoup/Makefile.am: build libsoup-gnome.la if so configured
* libsoup/soup-gnome.h: base header for libsoup-gnome
* libsoup/soup-proxy-resolver-libproxy.c: An implementation of
SoupProxyResolver that uses libproxy.
* libsoup/soup-proxy-resolver-gconf.c: An implementation of
SoupProxyResolver that uses the proxy keys in GConf. Does not
completely handle ignore_hosts; this is currently just used as a
fallback if libproxy is not available.
* libsoup/soup-gnome-features.c: provides
SOUP_TYPE_PROXY_RESOLVER_GNOME (abstracting over
SoupProxyResolverGConf and SoupProxyResolverLibproxy) and
SOUP_TYPE_GNOME_FEATURES_2_26, which adds "all GNOME-specific
features in libsoup 2.26", which is currently just the proxy
resolver.
* libsoup/soup-session-async.c (resolved_proxy_addr): set
item->resolved_proxy_addr
(run_queue): resolve the proxy if !item->resolved_proxy_addr, not
if !item->proxy_addr, since the proxy addr might resolve to NULL.
* tests/Makefile.am (get_LDADD):
* tests/get.c: If we built libsoup-gnome, use it in "get" for
automatic proxy support
2008-10-31 Dan Winship <[email protected]>
* libsoup-2.4.pc.in: rename from libsoup.pc.in; the attempt to
keep the source tree API-version-generic wasn't really working,
and we're probably not ever going to change the API version again
anyway.
* Makefile.am (pkgconfig_DATA): install the .pc file the normal
way rather than using an install-data-local rule to rename the .pc
file as we install it
* libsoup/Makefile.am (libsoupincludedir):
* tests/Makefile.am (LIBS):
* docs/reference/Makefile.am (GTKDOC_LIBS): Say "2.4" everywhere,
instead of 2.4 in some places and $(SOUP_API_VERSION) in others.
* configure.in: updates for .pc renaming. Also, use
AS_HELP_STRING() in AC_ARG_ENABLE() and AC_ARG_WITH() rules
2008-10-31 Dan Winship <[email protected]>
* libsoup/soup-proxy-resolver.c: new abstract base class for a
SoupSessionFeature that determines what proxy to use for a given
URI.
* libsoup/soup-proxy-resolver-static.c: a SoupProxyResolver that
always returns the same value.
* libsoup/soup-session.c (set_property, get_property): implement
the SOUP_SESSION_PROXY_URI property by creating/destroying a
SoupProxyResolverStatic as needed.
(soup_session_get_connection): Use the proxy address passed by the
caller rather than priv->proxy_uri.
* libsoup/soup-session-async.c (run_queue): if the session has a
proxy resolver, use it, and pass the resolved proxy to
soup_session_get_connection().
(request_restarted): clear the previously-resolved proxy address
when restarting the message
* libsoup/soup-session-sync.c (wait_for_connection): if the
session has a proxy resolver, use it, and pass the resolved proxy
to soup_session_get_connection().
* libsoup/soup-message-queue.h (SoupMessageQueueItem): add
proxy-address-resolving fields
* libsoup/soup-status.c (soup_status_proxify): moved from
soup-connection; turn SOUP_STATUS_CANT_RESOLVE into
SOUP_STATUS_CANT_RESOLVE_PROXY, and SOUP_STATUS_CANT_CONNECT into
SOUP_STATUS_CANT_CONNECT_PROXY (and pass all other statuses
through unchanged)
2008-10-30 Dan Winship <[email protected]>
* tests/simple-httpd.c: do directory listings. (wrote this a long
time ago, it just never made it into svn)
2008-10-27 Dan Winship <[email protected]>
* libsoup/soup-cookie.c (soup_cookie_free): free the expires date,
if set
* libsoup/soup-auth-domain-basic.h:
* libsoup/soup-auth-domain-digest.h:
* libsoup/soup-auth-domain.h:
* libsoup/soup-cookie-jar.h:
* libsoup/soup-logger.h:
* libsoup/soup-multipart.h: add G_BEGIN/END_DECLS
* libsoup/soup-date.c: add some g_return_if_fails
Patches from and inspired by Xan Lopez, #522125
2008-10-22 Dan Winship <[email protected]>
* configure.in:
* tests/Makefile.am: fix up some of the regression test
configuration stuff, and print warnings when some tests aren't run
do to missing dependencies
2008-10-20 Dan Winship <[email protected]>
* tests/Makefile.am (INCLUDES): add SOUP_MAINTAINER_FLAGS here
too.
* tests/dns.c (main):
* tests/getbug.c (main):
* tests/server-auth-test.c (do_test): replace deprecated glib
functions
2008-10-20 Cosimo Cecchi <[email protected]>
* configure.in:
* libsoup/Makefile.am:
* libsoup/soup-status.h:
* libsoup/soup-types.h:
* libsoup/soup-uri.c: (soup_uri_to_string):
Build with G_DISABLE_DEPRECATED and G_DISABLE_SINGLE_INCLUDES; enforce
the first switch under maintainer mode and the second one
unconditionally (#557072).
2008-10-19 Dan Winship <[email protected]>
* libsoup/soup-auth.c (soup_auth_update): compare scheme name
case-insensitively, to prevent an infinite loop when it's not in
standard form. #536285
2008-10-10 Dan Winship <[email protected]>
* libsoup/soup-message-headers.c
(soup_message_headers_get_ranges): if the caller passed the
total_length of the message body, then sort sort the ranges and
merge overlapping ones to generate a minimal set.
* tests/range-test.c: test it
2008-10-09 Andrew W. Nosenko <[email protected]>
* libsoup/soup-uri.c (soup_uri_to_string): Verify whether uri is
non-NULL and avoid crash on NULL pointer dereference therefore.
2008-10-03 Dan Winship <[email protected]>
* libsoup/soup-connection.c: Change the SoupURI properties to
SoupAddress properties.
* libsoup/soup-address.c (soup_address_resolve_async)
(soup_address_resolve_sync): Redo slightly so that multiple
simultaneous attempts to resolve the same address won't cause
problems.
(soup_address_hash_by_name, soup_address_equal_by_name):
(soup_address_hash_by_ip, soup_address_equal_by_ip): methods to
hash addresses by name or IP address
* libsoup/soup-message.c (soup_message_get_address): gets a
SoupAddress corresponding to the message's URI
* libsoup/soup-auth-manager.c (SoupAuthHost): hash hosts by
soup_address_hash_by_name() rather than by URI.
* libsoup/soup-session.c (soup_session_get_connection): pass
addresses to soup_connection_new(), not URIs.
(SoupSessionHost): hash hosts by soup_address_hash_by_ip() rather
than by URI. This requires that the addresses will have already
been resolved by the SoupSession subclasses before calling
soup_session_get_connection(), but also means that now requests
made to different virtual hosts on the same IP address can share a
connection.
* libsoup/soup-message-queue.c (SoupMessageQueueItem): add
address-resolving state
* libsoup/soup-session-sync.c (process_queue_item): resolve the
message's address before getting a connection
* libsoup/soup-session-async.c (run_queue, resolve_msg_addr)
(resolved_msg_addr): resolve the message's address before getting
a connection
(request_restarted): if the message gets requeued to a different
host, we'll need to re-resolve the address.
* libsoup/soup-uri.c (soup_uri_copy_root, soup_uri_host_hash)
(soup_uri_host_equal): No longer needed
* libsoup/soup-dns.c (do_async_callback): disconnect from the
cancellable before invoking the callback
* tests/proxy-test.c (tests): fix the 403 example; hostnames are
resolved by the session now, even when sending to a proxy, so we
need to use a hostname that actually exists
2008-10-03 Dan Winship <[email protected]>
* libsoup/soup-message-queue.c: Make this more complicated, with a
SoupMessageQueueItem to keep track of the session's per-message
state. (Part of the process of moving session-related state out of
SoupMessagePrivate.)
* libsoup/soup-session.c: Update to work in terms of
SoupMessageQueueItem
* libsoup/soup-session-async.c:
* libsoup/soup-session-sync.c: use SoupMessageQueueItem (and get
rid of SoupSessionAsyncQueueData and SoupSessionSyncAsyncData).
2008-10-01 Dan Winship <[email protected]>
* libsoup/soup-multipart.c: New type and methods for working with
multipart HTTP bodies (eg, multipart/form-data and
multipart/byte-ranges)
* libsoup/soup-message-headers.c (soup_message_headers_get_ranges)
(soup_message_headers_set_ranges)
(soup_message_headers_set_range)
(soup_message_headers_get_content_range)
(soup_message_headers_set_content_range): New methods for dealing
with the Range and Content-Range headers.
* libsoup/soup-form.h (SOUP_FORM_MIME_TYPE_URLENCODED)
(SOUP_FORM_MIME_TYPE_MULTIPART): #define these MIME types here
* libsoup/soup-form.c (soup_form_decode_multipart): new utility
for parsing multipart/form-data forms.
(soup_form_request_new_from_multipart): new utility for
constructing multipart/form-data forms
* libsoup/soup-headers.c (soup_headers_parse): this is now
non-static, for use by soup-multipart
* libsoup/soup-message-server-io.c (get_response_headers)
(handle_partial_get): if the client requested a partial GET, and
the SoupServer is returning the full body, rebuild the response to
include only the requested range instead
* tests/forms-test.c: renamed from query-test and updated to do
both application/x-www-form-urlencoded and multipart/form-data
tests
* tests/range-test.c: test of Range/Content-Range functionality
2008-10-01 Dan Winship <[email protected]>
* libsoup/soup-headers.c (soup_header_parse_param_list)
(soup_header_parse_semi_param_list): Update these to deal with
RFC2231-encoded UTF-8 header params
(soup_header_g_string_append_param): new utility method to do
parameters with quoted-strings (handling escaping) and RFC2231.
* libsoup/soup-auth-digest.c (get_authorization):
* libsoup/soup-auth-domain-basic.c (challenge):
* libsoup/soup-auth-domain-digest.c (challenge): use
soup_header_g_string_append_param so we handle escaping correctly
* libsoup/soup-message-headers.c
(soup_message_headers_get_content_type)
(soup_message_headers_set_content_type)
(soup_message_headers_get_content_disposition)
(soup_message_headers_set_content_disposition): New convenience
methods.
* tests/header-parsing.c (do_rfc2231_tests): new test of RFC2231
encoded header parsing in Content-Disposition.
* tests/get.c (get_url): use
soup_message_headers_get_content_type()
* docs/reference/libsoup-2.4-sections.txt: update
2008-10-01 Dan Winship <[email protected]>
* tests/xmlrpc-test.c (main): add a new -s flag to indicate that
it's being run from inside xmlrpc-server-test.
(test_echo): if we aren't running inside xmlrpc-server-test, and
the response strings don't match the request strings, then compare
them to echo_strings_broken instead; a bug in php-xmlrpc manifests
when using libxml2 >= 2.7.1, resulting in incorrect responses. :-/
* tests/xmlrpc-server-test.c (do_xmlrpc_tests): Pass -s to
xmlrpc-test
2008-10-01 Dan Winship <[email protected]>
* configure.in: bump version to 2.25.0
2008-10-01 Dan Winship <[email protected]>
* libsoup/soup-cookie-jar.c:
* libsoup/soup-cookie.c:
* libsoup/soup-cookie.h:
* libsoup/soup-headers.c:
* libsoup/soup-logger.c:
* libsoup/soup-session-feature.c:
* libsoup/soup-session-feature.h:
* libsoup/soup-session.c: doc fixups
* docs/reference/libsoup-2.4-docs.sgml:
* docs/reference/libsoup-2.4-sections.txt:
* docs/reference/libsoup-2.4.types: Add missing bits
2008-09-30 Dan Winship <[email protected]>
* libsoup/soup-xmlrpc.c (parse_value):
soup_value_hash_insert_value() copies the value, so we have to
g_value_unset() our copy.
* tests/chunk-test.c:
* tests/misc-test.c:
* tests/ntlm-test.c: fix leaks
* tests/libsoup.supp: update
2008-09-30 Dan Winship <[email protected]>
* libsoup/soup-session-async.c (do_idle_run_queue): store the
GSource in priv, don't ref the session. Otherwise the session
won't get destroyed if you abort it and then don't return to its
main loop. (addendum to #498509, Arnout Vandecappelle)
(finalize): Destroy the idle_run_queue source when finalizing.
(run_queue, got_connection): Ref the session when calling
soup_connection_connect_async(), and do a
do_idle_run_queue()+unref in got_connection, to ensure correct
handling regardless of what the application does with its own ref
on the session.
(final_finished): Likewise, ref/do_idle_run_queue/unref rather
than calling run_queue directly and playing with weak pointers.
* libsoup/soup-session.c (connect_result): ref the session around
the cancel-if-error loop
Fixes #533473, crash in seahorse when connecting to a
non-responsive key server.
* tests/misc-test.c (do_callback_unref_test): Add a test for the
bug in #533473.
* tests/test-utils.c (soup_test_session_abort_unref): abort and
unref a SoupSession, and consider it an error if the session still
exists afterward. Suggested by Arnout Vandecappelle.
(test_server_shutdown): Likewise, consider it an error if the
server is leaked.
* tests/*.c: Use soup_test_session_abort_unref().
2008-09-26 Dan Winship <[email protected]>
* libsoup/soup-auth-manager-ntlm.c
* libsoup/soup-auth-manager.c
* libsoup/soup-cookie-jar.c
* libsoup/soup-dns.c
* libsoup/soup-logger.c: