2024-03-19 02:26 UTC

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002707NetSurfCore-specificpublic2020-05-27 08:16
ReporterGreg Cook 
Assigned ToDaniel Silverstone 
SeverityminorReproducibilityalways 
StatusclosedResolutionfixed 
PlatformOSRISC OSOS Version5.19
Product Version3.9 
Target Version3.10Fixed in Version3.10 
Summary0002707: Times out if server requires login and does not accept second connection
DescriptionNetSurf times out and does not retrieve a page if an HTTP server asks for a login (WWW-Authenticate: Basic), and the user provides one, but the server does not accept a second connection from NetSurf. To cause this the server must:
  - return 401 Unauthorized unless authentication is given;
  - be single-threaded;
  - serve keep-alive connections.

Note: this is a likely configuration for Web interfaces in embedded devices.

Reproducible: Always. Persists until NetSurf has taken the user's credentials and either (a) it has successfully displayed a page or (b) the first connection has been broken.
Steps To Reproduce1. Set up an HTTP server as described. (Perl code based on the perlipc(1) manual page is included in the log file, tested in Linux and under MinGW in Windows.)

2. Open a NetSurf browser and enter the following in the URL bar:
   http://<host>:<port>/

   where <host> and <port> are replaced by the server host address and TCP port, respectively.

3. NetSurf displays an "Authentication Requested" page. Enter an appropriate login in the input boxes, then click "Login".

Actual result:
The cursor-with-hourglass appears and the throbber animates. After 3 minutes, a dialog box appears:
   Warning from NetSurf: Unknown

Expected result:
NetSurf should reuse the idle connection and display the requested page.
Additional InformationWorkarounds:
(a)
1. Attempt to log in, then wait until NetSurf times out.
2. Break the connection to the server.
3. Reconnect to the server.
4. Subsequent requests are displayed as normal.

(b)
1. Run a temporary multi-threading or connection-closing HTTP server on the same host and port, requiring authentication.
2. Open NetSurf and log in to the temporary server.
3. Stop the temporary server and run the offending server.
4. Subsequent requests are displayed as normal.

At the bottom of the log file is sample Perl code for a server that exercises the bug.

Can also be demonstrated by:

perl -T httpdir.pl -k -u foo -x bar

TagsNo tags attached.
Fixed in CI build #4874
Reported in CI build #4862
URL of problem page
Attached Files
  • txt file icon Log.txt (41,026 bytes) 2019-10-07 20:38 -
    (0.000000) [INFO netsurf] utils/log.c:268 nslog_init: NetSurf version '3.10 (Dev CI #4862)'
    (0.060000) [INFO netsurf] utils/log.c:279 nslog_init: NetSurf on <RISC OS>, node <corvus>, release <5.19>, version <1.0>, machine <armv6l>
    (0.060000) [INFO netsurf] utils/nsoption.c:659 nsoption_read: Successfully opened 'NetSurf:Choices' for Options file
    (0.070000) [INFO netsurf] utils/messages.c:140 messages_add_from_file: Loading Messages from 'NetSurf:Resources.en.Messages'
    (0.100000) [INFO netsurf] content/handlers/image/image_cache.c:432 image_cache_init: Image cache initialised with a limit of 3171942 hysteresis of 634388
    (0.110000) [INFO netsurf] content/handlers/html/html_css_fetcher.c:70 html_css_fetcher_initialise: html_css_fetcher_initialise called for x-ns-css
    (0.110000) [INFO netsurf] content/fetchers/curl.c:1607 fetch_curl_register: curl_version libcurl/7.65.1 OpenSSL/1.1.0k zlib/1.2.11 c-ares/1.15.0
    (0.160000) [INFO netsurf] utils/useragent.c:69 user_agent_build_string: Built user agent "NetSurf/3.10 (RISC OS)"
    (0.170000) [INFO netsurf] content/fetchers/curl.c:1680 fetch_curl_register: ca_bundle: 'NetSurf:Resources.ca-bundle'
    (0.170000) [INFO netsurf] content/fetchers/curl.c:1709 fetch_curl_register: cURL linked against openssl
    (0.170000) [INFO netsurf] content/fetchers/curl.c:195 fetch_curl_initialise: Initialise cURL fetcher for http
    (0.170000) [INFO netsurf] content/fetchers/curl.c:195 fetch_curl_initialise: Initialise cURL fetcher for https
    (0.170000) [INFO netsurf] content/fetchers/data.c:61 fetch_data_initialise: fetch_data_initialise called for data
    (0.180000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for adblock.css
    (0.180000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for default.css
    (0.180000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for internal.css
    (0.190000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for quirks.css
    (0.190000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for user.css
    (0.200000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for credits.html
    (0.200000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for licence.html
    (0.200000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for welcome.html
    (0.210000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for maps.html
    (0.260000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for favicon.ico
    (0.270000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for default.ico
    (0.270000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for netsurf.png
    (0.270000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for icons/arrow-l.png
    (0.280000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for icons/content.png
    (0.290000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for icons/directory.png
    (0.290000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for icons/directory2.png
    (0.290000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for icons/hotlist-add.png
    (0.300000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for icons/hotlist-rmv.png
    (0.310000) [INFO netsurf] content/fetchers/resource.c:288 fetch_resource_initialise: redirect url for icons/search.png
    (0.310000) [INFO llcache] content/llcache.c:3450 llcache_initialise: llcache initialising with a limit of 9515827 bytes
    (0.310000) [INFO netsurf] utils/messages.c:140 messages_add_from_file: Loading Messages from 'NetSurf:Resources.LangNames'
    (0.350000) [INFO netsurf] utils/filename.c:188 filename_initialise: Creating "<Wimp$ScrapDir>"
    (0.360000) [INFO netsurf] utils/filename.c:188 filename_initialise: Creating "<Wimp$ScrapDir>/WWW"
    (0.360000) [INFO netsurf] utils/filename.c:188 filename_initialise: Creating "<Wimp$ScrapDir>/WWW/NetSurf"
    (0.360000) [INFO netsurf] utils/filename.c:202 filename_initialise: Temporary directory location: <Wimp$ScrapDir>/WWW/NetSurf/Misc
    (0.430000) [INFO netsurf] frontends/riscos/font.c:123 nsfont_init: Initialise RUfl
    (0.000000s) src/rufl_init.c rufl_init 169: new font manager (v 3.74)
    (0.000000s) src/rufl_init.c rufl_init 179: 110 faces, 25 families
    (0.000000s) src/rufl_init.c rufl_load_cache 1578: 110 charsets loaded
    (1.280000) [INFO netsurf] frontends/riscos/font.c:136 nsfont_init: RUfl initialised
    (1.280000) [INFO netsurf] content/urldb.c:2893 urldb_load: Loading URL file NetSurf:URL
    (1.290000) [INFO netsurf] content/urldb.c:3090 urldb_load: Successfully loaded URL file
    (1.290000) [INFO netsurf] desktop/treeview.c:5262 treeview_init: Initialising treeview module
    (1.300000) [INFO netsurf] desktop/treeview.c:5293 treeview_init: Initialised treeview module
    (1.300000) [INFO netsurf] desktop/hotlist.c:1291 hotlist_init: Loading hotlist
    (1.340000) [INFO netsurf] desktop/hotlist.c:1337 hotlist_init: Loaded hotlist
    (1.340000) [INFO netsurf] frontends/riscos/font.c:575 ro_gui_wimp_desktop_font: desktop font "Homerton.Medium"
    (1.340000) [INFO netsurf] frontends/riscos/font.c:592 ro_gui_wimp_desktop_font: family "Homerton", size 192, style 5
    (1.390000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x2030c519
    (1.400000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x2030c259
    (1.410000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x20317fd9
    (1.410000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x203186d9
    (1.410000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x20318ad9
    (1.410000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x20318d59
    (1.410000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x20318fd9
    (1.410000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x20319119
    (1.420000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x2031e539
    (1.420000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x2031e679
    (1.420000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x2031e7b9
    (1.420000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x2031ea39
    (1.430000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0xfffffffe
    (1.430000) [INFO netsurf] frontends/riscos/gui.c:1106 ro_gui_check_resolvers: Inet$Resolvers not set or empty
    (1.430000) [INFO netsurf] frontends/riscos/gui.c:2112 ro_warn_user: Resolvers (null)
    (1.490000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/icons/arrow-l.png -> 0x4c6ba3a0
    (1.490000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/icons/arrow-l.png (0x4c6ba3a0), user 0x167e08 0x4c66dc68
    (1.500000) [INFO netsurf] content/handlers/image/png.c:179 info_callback: size 17 * 17, rowbytes 68
    (1.500000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/icons/arrow-l.png (0x4c6ba3a0)
    (1.500000) [INFO netsurf] content/handlers/image/image_cache.c:535 image_cache_add: centry 0x4c6b96a0, content 0x4c6ba3a0, bitmap 0x4c6b84e0
    (1.510000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/icons/content.png -> 0x4c6ba740
    (1.520000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/icons/content.png (0x4c6ba740), user 0x167e08 0x4c66ac70
    (1.520000) [INFO netsurf] content/handlers/image/png.c:179 info_callback: size 17 * 17, rowbytes 68
    (1.520000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/icons/content.png (0x4c6ba740)
    (1.520000) [INFO netsurf] content/handlers/image/image_cache.c:535 image_cache_add: centry 0x4c6b8888, content 0x4c6ba740, bitmap 0x4c6b9d20
    (1.540000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/icons/directory.png -> 0x4c6bb8e0
    (1.540000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/icons/directory.png (0x4c6bb8e0), user 0x167e08 0x4c67bea0
    (1.540000) [INFO netsurf] content/handlers/image/png.c:179 info_callback: size 17 * 17, rowbytes 68
    (1.540000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/icons/directory.png (0x4c6bb8e0)
    (1.540000) [INFO netsurf] content/handlers/image/image_cache.c:535 image_cache_add: centry 0x4c6baa60, content 0x4c6bb8e0, bitmap 0x4c6bab20
    (1.560000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/icons/directory2.png -> 0x4c6bb068
    (1.560000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/icons/directory2.png (0x4c6bb068), user 0x167e08 0x4c64e9a0
    (1.560000) [INFO netsurf] content/handlers/image/png.c:179 info_callback: size 17 * 17, rowbytes 68
    (1.560000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/icons/directory2.png (0x4c6bb068)
    (1.560000) [INFO netsurf] content/handlers/image/image_cache.c:535 image_cache_add: centry 0x4c6b85e8, content 0x4c6bb068, bitmap 0x4c6ba718
    (1.580000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/icons/search.png -> 0x4c6cbb38
    (1.580000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/icons/search.png (0x4c6cbb38), user 0x167e08 0x4c66f430
    (1.580000) [INFO netsurf] content/handlers/image/png.c:179 info_callback: size 17 * 17, rowbytes 68
    (1.590000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/icons/search.png (0x4c6cbb38)
    (1.590000) [INFO netsurf] content/handlers/image/image_cache.c:535 image_cache_add: centry 0x4c66f440, content 0x4c6cbb38, bitmap 0x4c6bb3f0
    (1.600000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/icons/hotlist-add.png -> 0x4c6cbdc8
    (1.600000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/icons/hotlist-add.png (0x4c6cbdc8), user 0x167e08 0x4c6b80c8
    (1.600000) [INFO netsurf] content/handlers/image/png.c:179 info_callback: size 17 * 17, rowbytes 68
    (1.610000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/icons/hotlist-add.png (0x4c6cbdc8)
    (1.610000) [INFO netsurf] content/handlers/image/image_cache.c:535 image_cache_add: centry 0x4c6caff0, content 0x4c6cbdc8, bitmap 0x4c6cb0c0
    (1.620000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/icons/hotlist-rmv.png -> 0x4c6cc058
    (1.620000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/icons/hotlist-rmv.png (0x4c6cc058), user 0x167e08 0x4c689160
    (1.630000) [INFO netsurf] content/handlers/image/png.c:179 info_callback: size 17 * 17, rowbytes 68
    (1.630000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/icons/hotlist-rmv.png (0x4c6cc058)
    (1.630000) [INFO netsurf] content/handlers/image/image_cache.c:535 image_cache_add: centry 0x4c6ca168, content 0x4c6cc058, bitmap 0x4c6b8080
    (3.710000) [INFO netsurf] frontends/riscos/wimp_event.c:1112 ro_gui_wimp_event_close_window: Close event received for window 0x2030c519
    (6.660000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x20314f19
    (6.660000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x20314dd9
    (6.670000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x20314c99
    (6.670000) [INFO netsurf] frontends/riscos/wimp_event.c:1654 ro_gui_wimp_event_get_window: Creating structure for window 0x20315059
    (6.670000) [INFO netsurf] desktop/browser_window.c:3151 browser_window_navigate: bw 0x4c6cebc8, url about:welcome
    (6.670000) [INFO netsurf] desktop/browser_window.c:3352 browser_window__navigate_internal_real: Loading 'about:welcome'
    (6.740000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/en/welcome.html -> 0x4c73e800
    (6.740000) [INFO netsurf] content/handlers/html/html_css.c:577 html_css_new_stylesheets: 2 fetches active
    (6.740000) [INFO netsurf] content/handlers/html/html_css.c:604 html_css_new_stylesheets: 3 fetches active
    (6.790000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/en/welcome.html (0x4c73e800), user 0x167e08 0x4c6d8c40
    (6.810000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/en/welcome.html (0x4c73e800)
    (6.810000) [INFO netsurf] content/handlers/html/html.c:1300 html_convert: quirks set to 0
    (6.810000) [INFO netsurf] content/handlers/html/html.c:1304 html_convert: 2 fetches active (0x4c73e800)
    (6.820000) [INFO netsurf] content/handlers/html/html_css.c:192 html_stylesheet_from_domnode: 3 fetches active
    (6.820000) [INFO netsurf] content/handlers/html/html_css.c:271 html_css_process_modified_style: Updating sheet 0x0 with 0x4c74ee28
    (6.830000) [INFO netsurf] content/content.c:77 content__init: url x-ns-css:0 -> 0x4c74f770
    (6.830000) [INFO netsurf] content/content.c:689 content_add_user: content x-ns-css:0 (0x4c74f770), user 0x167e08 0x4c74ee28
    (6.840000) [INFO netsurf] content/content.c:282 content_convert: content x-ns-css:0 (0x4c74f770)
    (6.850000) [INFO netsurf] content/handlers/html/html_css.c:111 html_convert_css_callback: done stylesheet slot 4 'x-ns-css:0'
    (6.850000) [INFO netsurf] content/handlers/html/html_css.c:113 html_convert_css_callback: 2 fetches active
    (6.870000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/CSS -> 0x4c754ea0
    (6.870000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/CSS (0x4c754ea0), user 0x167e08 0x4c6e12f0
    (6.900000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/CSS (0x4c754ea0)
    (6.900000) [INFO netsurf] content/handlers/html/html_css.c:111 html_convert_css_callback: done stylesheet slot 0 'file:///NetSurf:/Resources/CSS'
    (6.900000) [INFO netsurf] content/handlers/html/html_css.c:113 html_convert_css_callback: 1 fetches active
    (6.900000) [INFO netsurf] content/handlers/html/html_css.c:119 html_convert_css_callback: stylesheet file:///Choices:WWW/NetSurf/User failed: UnacceptableType
    (6.910000) [INFO netsurf] content/handlers/html/html_css.c:124 html_convert_css_callback: 0 fetches active
    (6.910000) [INFO netsurf] content/handlers/html/html.c:1360 html_begin_conversion: Completing parse (0x4c73e800)
    (6.910000) [INFO netsurf] content/handlers/html/html.c:646 html_finish_conversion: DOM to box (0x4c73e800)
    (6.940000) [INFO netsurf] content/handlers/html/html_object.c:738 html_fetch_object: 1 fetches active
    (6.940000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/netsurf.png -> 0x4c75de28
    (6.950000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/netsurf.png (0x4c75de28), user 0x167e08 0x4c6f5718
    (6.960000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/netsurf.png (0x4c75de28)
    (6.960000) [INFO netsurf] content/handlers/image/image_cache.c:535 image_cache_add: centry 0x4c75e0b8, content 0x4c75de28, bitmap 0x0
    (6.980000) [INFO netsurf] content/handlers/html/html.c:116 html_box_convert_done: Done XML to box (0x4c73e800)
    (6.1000000) [INFO netsurf] frontends/riscos/bitmap.c:806 riscos_bitmap_render: content 0x4c6d8c40 in bitmap 0x4c73f080
    (6.1000000) [INFO netsurf] content/content.c:618 content_scaled_redraw: Content 0x4c73e800 108x93 ctx:0x7a9980
    (7.060000) [INFO netsurf] content/content.c:853 content_open: content 0x4c73e800 file:///NetSurf:/Resources/en/welcome.html
    (7.170000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/netsurf.png -> 0x4c73f0b0
    (7.230000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/netsurf.png (0x4c73f0b0), user 0x167e08 0x4c7572b0
    (7.230000) [INFO netsurf] content/content.c:853 content_open: content 0x4c73f0b0 file:///NetSurf:/Resources/netsurf.png
    (7.230000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/netsurf.png (0x4c73f0b0)
    (7.230000) [INFO netsurf] content/handlers/image/image_cache.c:535 image_cache_add: centry 0x4c73eba0, content 0x4c73f0b0, bitmap 0x0
    (7.230000) [INFO netsurf] content/handlers/html/html_object.c:173 html_object_callback: 0 fetches active
    (7.240000) [INFO netsurf] desktop/browser_window.c:617 browser_window_update_favicon: fetching general favicon from 'resource:favicon.ico'
    (7.240000) [INFO netsurf] desktop/browser_history.c:450 browser_window_history_update: Updating history entry for Welcome to NetSurf
    (7.240000) [INFO netsurf] frontends/riscos/bitmap.c:806 riscos_bitmap_render: content 0x4c6d8c40 in bitmap 0x4c73f080
    (7.250000) [INFO netsurf] content/content.c:618 content_scaled_redraw: Content 0x4c73e800 108x93 ctx:0x7a9960
    (7.290000) [INFO netsurf] desktop/browser_history.c:476 browser_window_history_update: Updated scroll offsets to 0 by 0
    (7.360000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/Icons/content.png -> 0x4c73f5b0
    (7.360000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/Icons/content.png (0x4c73f5b0), user 0x167e08 0x4c6dd1c0
    (7.370000) [INFO netsurf] content/handlers/image/png.c:179 info_callback: size 17 * 17, rowbytes 68
    (7.370000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/Icons/content.png (0x4c73f5b0)
    (7.370000) [INFO netsurf] content/handlers/image/image_cache.c:535 image_cache_add: centry 0x4c7720b0, content 0x4c73f5b0, bitmap 0x4c73f548
    (16.000000) [INFO netsurf] content/urldb.c:691 urldb__host_is_ip_address: WARNING: called with non-host 'http:/'
    (23.350000) [INFO netsurf] content/urldb.c:691 urldb__host_is_ip_address: WARNING: called with non-host 'twiggy:2345/'
    (25.050000) [INFO netsurf] desktop/browser_window.c:3151 browser_window_navigate: bw 0x4c6cebc8, url http://twiggy:2345/
    (25.050000) [INFO netsurf] desktop/browser_history.c:450 browser_window_history_update: Updating history entry for Welcome to NetSurf
    (25.050000) [INFO netsurf] frontends/riscos/bitmap.c:806 riscos_bitmap_render: content 0x4c6d8c40 in bitmap 0x4c73f080
    (25.060000) [INFO netsurf] content/content.c:618 content_scaled_redraw: Content 0x4c73e800 108x93 ctx:0x7a9ac0
    (25.070000) [INFO netsurf] desktop/browser_history.c:476 browser_window_history_update: Updated scroll offsets to 0 by 0
    (25.080000) [INFO netsurf] desktop/browser_window.c:3352 browser_window__navigate_internal_real: Loading 'http://twiggy:2345/'
    (25.080000) [INFO llcache] content/llcache.c:1386 llcache_process_metadata: Retrieving metadata
    (25.080000) [INFO netsurf] content/fetchers/curl.c:372 fetch_curl_setup: fetch 0x4c73f3c8, url 'http://twiggy:2345/'
    (25.270000) [INFO netsurf] content/fetchers/curl.c:1189 fetch_curl_done: done http://twiggy:2345/
    (25.270000) [INFO netsurf] content/fetchers/curl.c:1125 fetch_curl_process_headers: HTTP status code 401
    (25.270000) [INFO netsurf] content/fetchers/curl.c:1056 fetch_curl_abort: fetch 0x4c73f3c8, url 'http://twiggy:2345/'
    (25.270000) [INFO netsurf] desktop/browser_window.c:3352 browser_window__navigate_internal_real: Loading 'about:query/auth'
    (25.290000) [INFO netsurf] content/fetchers/curl.c:1033 fetch_curl_stop: fetch 0x4c73f3c8, url 'http://twiggy:2345/'
    (25.290000) [INFO netsurf] content/fetchers/about.c:749 get_authentication_description: key:LoginDescription url:twiggy realm:test str:The site twiggy with realm "test" is requesting credentials for access.
    (25.290000) [INFO netsurf] content/content.c:77 content__init: url about:query/auth -> 0x4c744828
    (25.300000) [INFO netsurf] content/handlers/html/html_css.c:577 html_css_new_stylesheets: 2 fetches active
    (25.300000) [INFO netsurf] content/handlers/html/html_css.c:604 html_css_new_stylesheets: 3 fetches active
    (25.300000) [INFO netsurf] content/content.c:689 content_add_user: content about:query/auth (0x4c744828), user 0x167e08 0x4c66ac28
    (25.310000) [INFO netsurf] content/handlers/html/html_css.c:433 html_css_process_link: linked stylesheet 4 'resource:internal.css'
    (25.310000) [INFO netsurf] content/handlers/html/html_css.c:468 html_css_process_link: 4 fetches active
    (25.310000) [INFO netsurf] content/content.c:282 content_convert: content about:query/auth (0x4c744828)
    (25.320000) [INFO netsurf] content/handlers/html/html_css.c:533 html_css_quirks_stylesheets: 5 fetches active
    (25.320000) [INFO netsurf] content/handlers/html/html.c:1300 html_convert: quirks set to 2
    (25.320000) [INFO netsurf] content/handlers/html/html.c:1304 html_convert: 4 fetches active (0x4c744828)
    (25.360000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/CSS -> 0x4c7a6c80
    (25.370000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/CSS (0x4c7a6c80), user 0x167e08 0x4c64e990
    (25.390000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/CSS (0x4c7a6c80)
    (25.390000) [INFO netsurf] content/handlers/html/html_css.c:111 html_convert_css_callback: done stylesheet slot 0 'file:///NetSurf:/Resources/CSS'
    (25.390000) [INFO netsurf] content/handlers/html/html_css.c:113 html_convert_css_callback: 3 fetches active
    (25.400000) [INFO netsurf] content/handlers/html/html_css.c:119 html_convert_css_callback: stylesheet file:///Choices:WWW/NetSurf/User failed: UnacceptableType
    (25.400000) [INFO netsurf] content/handlers/html/html_css.c:124 html_convert_css_callback: 2 fetches active
    (25.430000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/internal.css -> 0x4c7aa628
    (25.430000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/internal.css (0x4c7aa628), user 0x167e08 0x4c784ed8
    (25.460000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/internal.css (0x4c7aa628)
    (25.460000) [INFO netsurf] content/handlers/html/html_css.c:111 html_convert_css_callback: done stylesheet slot 4 'file:///NetSurf:/Resources/internal.css'
    (25.460000) [INFO netsurf] content/handlers/html/html_css.c:113 html_convert_css_callback: 1 fetches active
    (25.470000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/Quirks -> 0x4c7ad578
    (25.480000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/Quirks (0x4c7ad578), user 0x167e08 0x4c7a6928
    (25.480000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/Quirks (0x4c7ad578)
    (25.480000) [INFO netsurf] content/handlers/html/html_css.c:111 html_convert_css_callback: done stylesheet slot 1 'file:///NetSurf:/Resources/Quirks'
    (25.480000) [INFO netsurf] content/handlers/html/html_css.c:113 html_convert_css_callback: 0 fetches active
    (25.490000) [INFO netsurf] content/handlers/html/html.c:1360 html_begin_conversion: Completing parse (0x4c744828)
    (25.490000) [INFO netsurf] content/handlers/html/html.c:646 html_finish_conversion: DOM to box (0x4c744828)
    (25.510000) [INFO netsurf] content/handlers/html/html.c:116 html_box_convert_done: Done XML to box (0x4c744828)
    (25.510000) [INFO netsurf] content/content.c:886 content_close: content 0x4c73e800 file:///NetSurf:/Resources/en/welcome.html
    (25.510000) [INFO netsurf] content/content.c:886 content_close: content 0x4c73f0b0 file:///NetSurf:/Resources/netsurf.png
    (25.510000) [INFO netsurf] content/content.c:724 content_remove_user: content file:///NetSurf:/Resources/en/welcome.html (0x4c73e800), user 0x167e08 0x4c6d8c40
    (25.520000) [INFO netsurf] content/content.c:853 content_open: content 0x4c744828 about:query/auth
    (25.530000) [INFO netsurf] desktop/browser_window.c:617 browser_window_update_favicon: fetching general favicon from 'resource:favicon.ico'
    (25.590000) [INFO netsurf] content/content.c:77 content__init: url file:///NetSurf:/Resources/Icons/content.png -> 0x4c741418
    (25.590000) [INFO netsurf] content/content.c:689 content_add_user: content file:///NetSurf:/Resources/Icons/content.png (0x4c741418), user 0x167e08 0x4c7573b8
    (25.590000) [INFO netsurf] content/handlers/image/png.c:179 info_callback: size 17 * 17, rowbytes 68
    (25.590000) [INFO netsurf] content/content.c:282 content_convert: content file:///NetSurf:/Resources/Icons/content.png (0x4c741418)
    (25.600000) [INFO netsurf] content/handlers/image/image_cache.c:535 image_cache_add: centry 0x4c7a4cb0, content 0x4c741418, bitmap 0x4c7abbf8
    (25.600000) [INFO netsurf] content/content.c:886 content_close: content 0x4c73f5b0 file:///NetSurf:/Resources/Icons/content.png
    (25.600000) [INFO netsurf] content/content.c:724 content_remove_user: content file:///NetSurf:/Resources/Icons/content.png (0x4c73f5b0), user 0x167e08 0x4c6dd1c0
    (28.850000) [INFO netsurf] content/handlers/html/html.c:95 fire_dom_event: Dispatching 'click' against 0x4c7a4390
    (40.230000) [INFO netsurf] content/handlers/html/html.c:95 fire_dom_event: Dispatching 'click' against 0x4c7a5440
    (40.230000) [INFO netsurf] desktop/browser_window.c:3151 browser_window_navigate: bw 0x4c6cebc8, url about:query/auth
    (40.240000) [INFO netsurf] desktop/browser_window.c:3352 browser_window__navigate_internal_real: Loading 'http://twiggy:2345/'
    (40.240000) [INFO netsurf] content/fetchers/curl.c:372 fetch_curl_setup: fetch 0x4c741948, url 'http://twiggy:2345/'
    (40.310000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c73f5b0 file:///NetSurf:/Resources/Icons/content.png
    (40.310000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c73e800 file:///NetSurf:/Resources/en/welcome.html
    (40.310000) [INFO netsurf] content/handlers/html/html.c:1713 html_destroy: content 0x4c73e800
    (40.310000) [INFO netsurf] content/handlers/html/form.c:222 form_free_control: Control:0x4c75e3b8 name:0x4c747fa0 value:0x4c767780 initial:0x4c75e448
    (40.310000) [INFO netsurf] content/handlers/html/form.c:222 form_free_control: Control:0x4c768728 name:0x4c768198 value:0x4c768790 initial:0x0
    (40.310000) [INFO netsurf] content/content.c:724 content_remove_user: content file:///NetSurf:/Resources/CSS (0x4c754ea0), user 0x167e08 0x4c6e12f0
    (40.310000) [INFO netsurf] content/content.c:724 content_remove_user: content x-ns-css:0 (0x4c74f770), user 0x167e08 0x4c74ee28
    (40.310000) [INFO netsurf] content/handlers/html/html_object.c:676 html_object_free_objects: object 0x4c7572b0
    (40.320000) [INFO netsurf] content/content.c:724 content_remove_user: content file:///NetSurf:/Resources/netsurf.png (0x4c73f0b0), user 0x167e08 0x4c7572b0
    (40.320000) [INFO netsurf] content/handlers/html/html_object.c:676 html_object_free_objects: object 0x4c6f5718
    (40.320000) [INFO netsurf] content/content.c:724 content_remove_user: content file:///NetSurf:/Resources/netsurf.png (0x4c75de28), user 0x167e08 0x4c6f5718
    (60.320000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c73f0b0 file:///NetSurf:/Resources/netsurf.png
    (60.320000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c75de28 file:///NetSurf:/Resources/netsurf.png
    (60.320000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c754ea0 file:///NetSurf:/Resources/CSS
    (60.320000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c74f770 x-ns-css:0
    (220.260000) [INFO netsurf] content/fetchers/curl.c:1189 fetch_curl_done: done http://twiggy:2345/
    (220.260000) [INFO netsurf] content/fetchers/curl.c:1232 fetch_curl_done: Unknown cURL response code 28
    (220.260000) [INFO netsurf] content/fetchers/curl.c:1033 fetch_curl_stop: fetch 0x4c741948, url 'http://twiggy:2345/'
    (220.260000) [INFO netsurf] frontends/riscos/gui.c:2112 ro_warn_user: Unknown (null)
    (229.210000) [INFO netsurf] frontends/riscos/wimp_event.c:1112 ro_gui_wimp_event_close_window: Close event received for window 0x2030c519
    (234.270000) [INFO netsurf] frontends/riscos/wimp_event.c:1112 ro_gui_wimp_event_close_window: Close event received for window 0x20315059
    (234.320000) [INFO netsurf] desktop/browser_window.c:1611 browser_window_destroy_internal: Destroying window
    (234.320000) [INFO netsurf] desktop/browser_window.c:1629 browser_window_destroy_internal: Clearing reformat schedule for browser window 0x4c6cebc8
    (234.320000) [INFO netsurf] frontends/riscos/toolbar.c:954 ro_toolbar_destroy: Destroying toolbar 0x4c73d010
    (234.320000) [INFO netsurf] frontends/riscos/wimp_event.c:302 ro_gui_wimp_event_finalise: Removing all events for window 0x20314c99
    (234.320000) [INFO netsurf] frontends/riscos/wimp_event.c:302 ro_gui_wimp_event_finalise: Removing all events for window 0x20314dd9
    (234.330000) [INFO netsurf] frontends/riscos/wimp_event.c:302 ro_gui_wimp_event_finalise: Removing all events for window 0x20314f19
    (234.330000) [INFO netsurf] frontends/riscos/wimp_event.c:302 ro_gui_wimp_event_finalise: Removing all events for window 0x20315059
    (234.330000) [INFO netsurf] content/content.c:886 content_close: content 0x4c744828 about:query/auth
    (234.330000) [INFO netsurf] content/content.c:724 content_remove_user: content about:query/auth (0x4c744828), user 0x167e08 0x4c66ac28
    (234.330000) [INFO netsurf] content/content.c:886 content_close: content 0x4c741418 file:///NetSurf:/Resources/Icons/content.png
    (234.330000) [INFO netsurf] content/content.c:724 content_remove_user: content file:///NetSurf:/Resources/Icons/content.png (0x4c741418), user 0x167e08 0x4c7573b8
    (234.380000) [INFO netsurf] desktop/browser_window.c:1702 browser_window_destroy_internal: Status text cache match:miss 18453:24
    (237.660000) [INFO netsurf] frontends/riscos/iconbar.c:243 ro_gui_iconbar_menu_select: QUIT in response to user request
    (237.660000) [INFO netsurf] desktop/netsurf.c:221 netsurf_exit: Closing GUI
    (237.700000) [INFO netsurf] content/content.c:724 content_remove_user: content file:///NetSurf:/Resources/icons/hotlist-add.png (0x4c6cbdc8), user 0x167e08 0x4c6b80c8
    (237.710000) [INFO netsurf] content/content.c:724 content_remove_user: content file:///NetSurf:/Resources/icons/hotlist-rmv.png (0x4c6cc058), user 0x167e08 0x4c689160
    (237.710000) [INFO netsurf] desktop/netsurf.c:224 netsurf_exit: Finalising JavaScript
    (237.710000) [INFO netsurf] desktop/netsurf.c:227 netsurf_exit: Finalising Web Search
    (237.710000) [INFO netsurf] desktop/netsurf.c:230 netsurf_exit: Finalising high-level cache
    (237.710000) [INFO netsurf] content/hlcache.c:594 hlcache_finalise: 12 contents remain before cache drain
    (237.710000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c741418 file:///NetSurf:/Resources/Icons/content.png
    (237.720000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c744828 about:query/auth
    (237.720000) [INFO netsurf] content/handlers/html/html.c:1713 html_destroy: content 0x4c744828
    (237.720000) [INFO netsurf] content/handlers/html/form.c:222 form_free_control: Control:0x4c7bc9c0 name:0x4c7aa600 value:0x4c6dd1c0 initial:0x4c7b67f8
    (237.720000) [INFO netsurf] content/handlers/html/form.c:222 form_free_control: Control:0x4c7bdcf0 name:0x4c7bd1c0 value:0x4c7ba7a0 initial:0x4c7a4eb8
    (237.730000) [INFO netsurf] content/handlers/html/form.c:222 form_free_control: Control:0x4c7bf390 name:0x4c7a5218 value:0x4c7a5608 initial:0x0
    (237.730000) [INFO netsurf] content/handlers/html/form.c:222 form_free_control: Control:0x4c7bfc58 name:0x4c7be9c8 value:0x4c7a5d28 initial:0x0
    (237.730000) [INFO netsurf] content/handlers/html/form.c:222 form_free_control: Control:0x4c7c03f0 name:0x4c7c03e0 value:0x4c7c0458 initial:0x0
    (237.730000) [INFO netsurf] content/handlers/html/form.c:222 form_free_control: Control:0x4c7c06b8 name:0x4c7a6420 value:0x4c7a6468 initial:0x0
    (237.730000) [INFO netsurf] content/content.c:724 content_remove_user: content file:///NetSurf:/Resources/CSS (0x4c7a6c80), user 0x167e08 0x4c64e990
    (237.730000) [INFO netsurf] content/content.c:724 content_remove_user: content file:///NetSurf:/Resources/Quirks (0x4c7ad578), user 0x167e08 0x4c7a6928
    (237.730000) [INFO netsurf] content/content.c:724 content_remove_user: content file:///NetSurf:/Resources/internal.css (0x4c7aa628), user 0x167e08 0x4c784ed8
    (237.740000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c6cc058 file:///NetSurf:/Resources/icons/hotlist-rmv.png
    (237.740000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c6cbdc8 file:///NetSurf:/Resources/icons/hotlist-add.png
    (237.740000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c7ad578 file:///NetSurf:/Resources/Quirks
    (237.740000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c7aa628 file:///NetSurf:/Resources/internal.css
    (237.750000) [INFO netsurf] content/content.c:388 content_destroy: content 0x4c7a6c80 file:///NetSurf:/Resources/CSS
    (237.750000) [INFO netsurf] content/hlcache.c:608 hlcache_finalise: 5 contents remaining after being polite
    (237.750000) [INFO netsurf] content/hlcache.c:622 hlcache_finalise: 5 contents remaining:
    (237.750000) [INFO netsurf] content/hlcache.c:630 hlcache_finalise: 	0x4c6bb3e0 : file:///NetSurf:/Resources/icons/search.png (1 users)
    (237.750000) [INFO netsurf] content/hlcache.c:630 hlcache_finalise: 	0x4c6ba730 : file:///NetSurf:/Resources/icons/directory2.png (1 users)
    (237.750000) [INFO netsurf] content/hlcache.c:630 hlcache_finalise: 	0x4c6baa50 : file:///NetSurf:/Resources/icons/directory.png (1 users)
    (237.750000) [INFO netsurf] content/hlcache.c:630 hlcache_finalise: 	0x4c6ba380 : file:///NetSurf:/Resources/icons/content.png (1 users)
    (237.750000) [INFO netsurf] content/hlcache.c:630 hlcache_finalise: 	0x4c6b8478 : file:///NetSurf:/Resources/icons/arrow-l.png (1 users)
    (237.760000) [INFO netsurf] content/hlcache.c:661 hlcache_finalise: hit/miss 0/18
    (237.760000) [INFO netsurf] content/hlcache.c:669 hlcache_finalise: Finalising low-level cache
    (237.760000) [INFO llcache] content/llcache.c:3517 llcache_finalise: Backing store wrote 0 bytes in 0 ms (average 0 bytes/second)
    (237.760000) [INFO netsurf] desktop/netsurf.c:233 netsurf_exit: Closing fetches
    (237.760000) [INFO netsurf] content/handlers/html/html_css_fetcher.c:77 html_css_fetcher_finalise: html_css_fetcher_finalise called for x-ns-css
    (237.760000) [INFO netsurf] content/fetchers/curl.c:212 fetch_curl_finalise: Finalise cURL fetcher http
    (237.760000) [INFO netsurf] content/fetchers/curl.c:212 fetch_curl_finalise: Finalise cURL fetcher https
    (237.760000) [INFO netsurf] content/fetchers/curl.c:217 fetch_curl_finalise: All cURL fetchers finalised, closing down cURL
    (237.770000) [INFO netsurf] content/fetchers/data.c:69 fetch_data_finalise: fetch_data_finalise called for data
    (237.770000) [INFO netsurf] content/handlers/image/image_cache.c:445 image_cache_fini: Size at finish 5780 (in 5)
    (237.770000) [INFO netsurf] content/handlers/image/image_cache.c:455 image_cache_fini: Age 230s
    (237.770000) [INFO netsurf] content/handlers/image/image_cache.c:458 image_cache_fini: Peak size 116356 (in 10)
    (237.770000) [INFO netsurf] content/handlers/image/image_cache.c:461 image_cache_fini: Peak image count 10 (size 116356)
    (237.770000) [INFO netsurf] content/handlers/image/image_cache.c:478 image_cache_fini: Cache total/hit/miss/fail (counts) 9/8/1/0 (100%/88%/11%/0%)
    (237.780000) [INFO netsurf] content/handlers/image/image_cache.c:487 image_cache_fini: Cache total/hit/miss/fail (size) 429588/323636/105952/0 (100%/75%/24%/0%)
    (237.780000) [INFO netsurf] content/handlers/image/image_cache.c:493 image_cache_fini: Total images never rendered: 7 (includes 6 that were converted)
    (237.780000) [INFO netsurf] content/handlers/image/image_cache.c:498 image_cache_fini: Total number of excessive conversions: 0 (from 0 images converted more than once)
    (237.780000) [INFO netsurf] content/handlers/image/image_cache.c:502 image_cache_fini: Bitmap of size 105952 had most (1) conversions
    (237.780000) [INFO netsurf] desktop/netsurf.c:244 netsurf_exit: Closing utf8
    (237.780000) [INFO netsurf] desktop/netsurf.c:247 netsurf_exit: Destroying URLdb
    (237.780000) [INFO netsurf] desktop/netsurf.c:250 netsurf_exit: Destroying System colours
    (237.780000) [INFO netsurf] desktop/netsurf.c:253 netsurf_exit: Destroying Messages
    (237.790000) [INFO netsurf] desktop/netsurf.c:260 netsurf_exit: Remaining lwc strings:
    (237.790000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  2] Visits
    (237.790000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  2] Folder
    (237.790000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  1] /
    (237.790000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  6] http
    (237.790000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  1] /documentation
    (237.800000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  2] Title
    (237.800000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  6] image/png
    (237.800000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  1] /downloads/riscos/testbuilds
    (237.800000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  1] atid=464315&group_id=51719
    (237.800000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  2] URL
    (237.800000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  1] atid=464312&group_id=51719
    (237.800000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  2] Last visit
    (237.800000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  2] sourceforge.net
    (237.800000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  3] www.netsurf-browser.org
    (237.800000) [WARN netsurf] desktop/netsurf.c:100 netsurf_lwc_iterator: [  2] /tracker/
    (237.800000) [INFO netsurf] desktop/netsurf.c:263 netsurf_exit: Exited successfully
    (237.810000) [INFO netsurf] utils/log.c:301 nslog_finalise: Finalising logging, please report any further messages
    ---
    Demonstration server code added. Based on perlipc(1) manual page - GJC
    -------->8---
    #!/usr/bin/perl -Tw
    use strict;
    BEGIN { $ENV{PATH} = '/usr/ucb:/bin' }
    use Socket;
    use Carp;
    my $EOL = "\015\012";
    
    my $keepalive = 1;
    
    my $doc =  "<html><head><title>test</title></head><body>".$EOL
              ."<h1>test</h1><p><a href=\"/\">test</a></p></body></html>".$EOL;
    
    sub logmsg { print "$0 $$: @_ at ", scalar localtime, "\n" }
    
    my $port = shift || 2345;
    my $proto = getprotobyname('tcp');
    
    ($port) = $port =~ /^(\d+)$/                        or die "invalid port";
    
    socket(Server, PF_INET, SOCK_STREAM, $proto)        || die "socket: $!";
    setsockopt(Server, SOL_SOCKET, SO_REUSEADDR,
                                        pack("l", 1))   || die "setsockopt: $!";
    bind(Server, sockaddr_in($port, INADDR_ANY))        || die "bind: $!";
    listen(Server,SOMAXCONN)                            || die "listen: $!";
    
    logmsg "server started on port $port";
    
    my $paddr;
    
    $SIG{CHLD} = \&REAPER;
    
    for ( ; $paddr = accept(Client,Server); close Client) {
        my($port,$iaddr) = sockaddr_in($paddr);
        my $name = gethostbyaddr($iaddr,AF_INET);
    
        logmsg "connection from $name [",
                inet_ntoa($iaddr), "]
                at port $port";
    
        my $oldfh = select(Client); $| = 1; select($oldfh); binmode(Client);
    
        do {
            my $pass = 0;
            while(defined($_ = <Client>) && $_ ne $EOL) {
                $pass = 1 if /^Authorization:\s*Basic/i;
            }
    
            print Client "HTTP/1.1 200 OK", $EOL if $pass;
            print Client "HTTP/1.1 401 Unauthorized", $EOL unless $pass;
            print Client "WWW-Authenticate: Basic realm=\"test\"", $EOL unless $pass;
            print Client "Content-Type: text/html", $EOL;
            print Client "Content-Length: ",length($doc), $EOL;
            print Client "Connection: keep-alive", $EOL if $keepalive;
            print Client "Connection: close", $EOL unless $keepalive;
            print Client $EOL,$doc;
            binmode(Client);
        } while($keepalive);
    }
    
    txt file icon Log.txt (41,026 bytes) 2019-10-07 20:38 +

-Relationships
+Relationships

-Notes
Daniel Silverstone

~0002105

Daniel Silverstone (administrator)

I *think* this is a bug in cURL because we're using cURL's connection caching capabilities.

I've filed an upstream bug at: https://github.com/curl/curl/issues/4499
Daniel Silverstone

~0002107

Daniel Silverstone (administrator)

The issue is in how curl reuses connections and how that is interfered with by the *possibility* of NTLM authentication on a channel. I've added a mitigation until curl upstream can resolve the problem.
Vincent Sanders

~0002238

Vincent Sanders (administrator)

Thankyou for reporting this issue.
We believe this is fixed in the 3.10 release.
If this is not the case please feel free to reopen the issue with additional details.
+Notes

-Issue History
Date Modified Username Field Change
2019-10-07 20:38 Greg Cook New Issue
2019-10-07 20:38 Greg Cook File Added: Log.txt
2019-10-15 12:47 Vincent Sanders Status new => confirmed
2019-10-15 12:47 Vincent Sanders Category General => Core-specific
2019-10-16 21:28 Daniel Silverstone Note Added: 0002105
2019-10-21 09:05 Daniel Silverstone Assigned To => Daniel Silverstone
2019-10-21 09:05 Daniel Silverstone Status confirmed => resolved
2019-10-21 09:05 Daniel Silverstone Resolution open => fixed
2019-10-21 09:05 Daniel Silverstone Fixed in Version => 3.10
2019-10-21 09:05 Daniel Silverstone Target Version => 3.10
2019-10-21 09:05 Daniel Silverstone Fixed in CI build # => 4874
2019-10-21 09:05 Daniel Silverstone Note Added: 0002107
2020-05-27 08:16 Vincent Sanders Status resolved => closed
2020-05-27 08:16 Vincent Sanders Note Added: 0002238
+Issue History