{"action":"created","issue":{"url":"https://api.github.com/repos/Midar/objfw/issues/24","repository_url":"https://api.github.com/repos/Midar/objfw","labels_url":"https://api.github.com/repos/Midar/objfw/issues/24/labels{/name}","comments_url":"https://api.github.com/repos/Midar/objfw/issues/24/comments","events_url":"https://api.github.com/repos/Midar/objfw/issues/24/events","html_url":"https://github.com/Midar/objfw/issues/24","id":142018601,"number":24,"title":"OFHTTPServer occasionally freez at HTTP header parsing","user":{"login":"GunGraveKoga","id":4045592,"avatar_url":"https://avatars.githubusercontent.com/u/4045592?v=3","gravatar_id":"","url":"https://api.github.com/users/GunGraveKoga","html_url":"https://github.com/GunGraveKoga","followers_url":"https://api.github.com/users/GunGraveKoga/followers","following_url":"https://api.github.com/users/GunGraveKoga/following{/other_user}","gists_url":"https://api.github.com/users/GunGraveKoga/gists{/gist_id}","starred_url":"https://api.github.com/users/GunGraveKoga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GunGraveKoga/subscriptions","organizations_url":"https://api.github.com/users/GunGraveKoga/orgs","repos_url":"https://api.github.com/users/GunGraveKoga/repos","events_url":"https://api.github.com/users/GunGraveKoga/events{/privacy}","received_events_url":"https://api.github.com/users/GunGraveKoga/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2016-03-19T02:26:11Z","updated_at":"2016-03-20T12:08:58Z","closed_at":"2016-03-20T12:08:58Z","body":"Sometimes, more often at first http request to OFHTTPServer, it stoped at header parsing operation.\r\nFor firefox it happens after parsing User-Agent header record:\r\n\r\n[2016-03-19 05:08:51.053 delegate.exe(20212)] Connection Accepted <OFHTTPServerEx: 024A7DE8> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:08:51.053 delegate.exe(20212)] Init <OFHTTPServerEx_Connection: 024A2070> with socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:08:51.053 delegate.exe(20212)] did read line (GET / HTTP/1.1) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:08:51.054 delegate.exe(20212)] did parse prolog <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:08:51.054 delegate.exe(20212)] did read line (Host: 127.0.0.1:8080) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:08:51.054 delegate.exe(20212)] did parse headers (Host: 127.0.0.1:8080) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:08:51.054 delegate.exe(20212)] find pos 4\r\n[2016-03-19 05:08:51.055 delegate.exe(20212)] key Host value  127.0.0.1:8080\r\n[2016-03-19 05:08:51.055 delegate.exe(20212)] key normalizedKey Host\r\n[2016-03-19 05:08:51.055 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces 127.0.0.1:8080\r\n[2016-03-19 05:08:51.055 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:08:51.055 delegate.exe(20212)] value 127.0.0.1:8080\r\n[2016-03-19 05:08:51.055 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:08:51.056 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:08:51.056 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:08:51.056 delegate.exe(20212)] did read line (User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:08:51.056 delegate.exe(20212)] did parse headers (User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:08:51.057 delegate.exe(20212)] find pos 10\r\n[2016-03-19 05:08:51.057 delegate.exe(20212)] key User-Agent value  Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\r\n[2016-03-19 05:08:51.057 delegate.exe(20212)] key normalizedKey User-Agent\r\n[2016-03-19 05:08:51.058 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\r\n[2016-03-19 05:08:51.058 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:08:51.058 delegate.exe(20212)] value Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\r\n[2016-03-19 05:08:51.059 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:08:51.059 delegate.exe(20212)] Check for Host header record\r\n**!!!!!![2016-03-19 05:08:51.059 delegate.exe(20212)] Header line parsed \r\n!!!!!! 9 seconds freeze \r\n[2016-03-19 05:09:00.060 delegate.exe(20212)] did read line (Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.060 delegate.exe(20212)] did parse headers (Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>**\r\n[2016-03-19 05:09:00.061 delegate.exe(20212)] find pos 6\r\n[2016-03-19 05:09:00.061 delegate.exe(20212)] key Accept value  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n[2016-03-19 05:09:00.062 delegate.exe(20212)] key normalizedKey Accept\r\n[2016-03-19 05:09:00.063 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n[2016-03-19 05:09:00.063 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:09:00.064 delegate.exe(20212)] value text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n[2016-03-19 05:09:00.064 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:09:00.065 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:09:00.066 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:09:00.068 delegate.exe(20212)] did read line (Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.068 delegate.exe(20212)] did parse headers (Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.068 delegate.exe(20212)] find pos 15\r\n[2016-03-19 05:09:00.069 delegate.exe(20212)] key Accept-Language value  ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\n[2016-03-19 05:09:00.069 delegate.exe(20212)] key normalizedKey Accept-Language\r\n[2016-03-19 05:09:00.070 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\n[2016-03-19 05:09:00.070 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:09:00.070 delegate.exe(20212)] value ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\n[2016-03-19 05:09:00.070 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:09:00.071 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:09:00.071 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:09:00.072 delegate.exe(20212)] did read line (Accept-Encoding: gzip, deflate) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.072 delegate.exe(20212)] did parse headers (Accept-Encoding: gzip, deflate) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.072 delegate.exe(20212)] find pos 15\r\n[2016-03-19 05:09:00.072 delegate.exe(20212)] key Accept-Encoding value  gzip, deflate\r\n[2016-03-19 05:09:00.073 delegate.exe(20212)] key normalizedKey Accept-Encoding\r\n[2016-03-19 05:09:00.073 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces gzip, deflate\r\n[2016-03-19 05:09:00.073 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:09:00.073 delegate.exe(20212)] value gzip, deflate\r\n[2016-03-19 05:09:00.074 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:09:00.074 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:09:00.074 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:09:00.075 delegate.exe(20212)] did read line (Connection: keep-alive) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.075 delegate.exe(20212)] did parse headers (Connection: keep-alive) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.075 delegate.exe(20212)] find pos 10\r\n[2016-03-19 05:09:00.075 delegate.exe(20212)] key Connection value  keep-alive\r\n[2016-03-19 05:09:00.076 delegate.exe(20212)] key normalizedKey Connection\r\n[2016-03-19 05:09:00.076 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces keep-alive\r\n[2016-03-19 05:09:00.076 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:09:00.076 delegate.exe(20212)] value keep-alive\r\n[2016-03-19 05:09:00.076 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:09:00.076 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:09:00.077 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:09:00.078 delegate.exe(20212)] did read line (Cache-Control: max-age=0) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.078 delegate.exe(20212)] did parse headers (Cache-Control: max-age=0) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.078 delegate.exe(20212)] find pos 13\r\n[2016-03-19 05:09:00.078 delegate.exe(20212)] key Cache-Control value  max-age=0\r\n[2016-03-19 05:09:00.078 delegate.exe(20212)] key normalizedKey Cache-Control\r\n[2016-03-19 05:09:00.079 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces max-age=0\r\n[2016-03-19 05:09:00.079 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:09:00.079 delegate.exe(20212)] value max-age=0\r\n[2016-03-19 05:09:00.079 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:09:00.080 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:09:00.080 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:09:00.081 delegate.exe(20212)] did read line () block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.081 delegate.exe(20212)] did parse headers () <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.081 delegate.exe(20212)] creating response <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.081 delegate.exe(20212)] Init <OFHTTPServerExResponse: 024A6A40\r\n        Status code = 0\r\n        Headers = (nil)\r\n> with socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.312 delegate.exe(20212)] did write html <OFHTTPServerExResponse: 024A6A40\r\n        Status code = 200\r\n        Headers = {\r\n                Set-Cookie = testcookie=success; Path=/; Domain=localhost; Discard;\r\n                Connection = Keep-Alive;\r\n                Content-Type = text/plain;\r\n        }\r\n> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.313 delegate.exe(20212)] did send headers <OFHTTPServerExResponse: 024A6A40\r\n        Status code = 200\r\n        Headers = {\r\n                Set-Cookie = testcookie=success; Path=/; Domain=localhost; Discard;\r\n                Connection = Keep-Alive;\r\n                Content-Type = text/plain;\r\n        }\r\n> socket <OFTCPSocket: 024A6770>\r\n[2016-03-19 05:09:00.315 delegate.exe(20212)] did close server response <OFHTTPServerExResponse: 024A6A40\r\n        Status code = 200\r\n        Headers = {\r\n                Set-Cookie = testcookie=success; Path=/; Domain=localhost; Discard;\r\n                Connection = Keep-Alive;\r\n                Content-Type = text/plain;\r\n        }\r\n> socket <OFTCPSocket: 024A6770>\r\n\r\nFor Google Chrome it happens after Upgrade-Insecure-Requests parsing:\r\n\r\n[2016-03-19 05:08:24.846 delegate.exe(20212)] Connection Accepted <OFHTTPServerEx: 024A7DE8> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:24.847 delegate.exe(20212)] Init <OFHTTPServerEx_Connection: 024A2070> with socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:24.847 delegate.exe(20212)] did read line (GET /index.html HTTP/1.1) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:24.847 delegate.exe(20212)] did parse prolog <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:24.848 delegate.exe(20212)] did read line (Host: localhost:8080) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:24.848 delegate.exe(20212)] did parse headers (Host: localhost:8080) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:24.848 delegate.exe(20212)] find pos 4\r\n[2016-03-19 05:08:24.848 delegate.exe(20212)] key Host value  localhost:8080\r\n[2016-03-19 05:08:24.849 delegate.exe(20212)] key normalizedKey Host\r\n[2016-03-19 05:08:24.849 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces localhost:8080\r\n[2016-03-19 05:08:24.849 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:08:24.849 delegate.exe(20212)] value localhost:8080\r\n[2016-03-19 05:08:24.849 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:08:24.850 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:08:24.850 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:08:24.850 delegate.exe(20212)] did read line (Connection: keep-alive) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:24.850 delegate.exe(20212)] did parse headers (Connection: keep-alive) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:24.851 delegate.exe(20212)] find pos 10\r\n[2016-03-19 05:08:24.851 delegate.exe(20212)] key Connection value  keep-alive\r\n[2016-03-19 05:08:24.851 delegate.exe(20212)] key normalizedKey Connection\r\n[2016-03-19 05:08:24.851 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces keep-alive\r\n[2016-03-19 05:08:24.852 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:08:24.852 delegate.exe(20212)] value keep-alive\r\n[2016-03-19 05:08:24.852 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:08:24.852 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:08:24.852 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:08:25.098 delegate.exe(20212)] Connection Accepted <OFHTTPServerEx: 024A7DE8> socket <OFTCPSocket: 024A6BA8>\r\n[2016-03-19 05:08:25.099 delegate.exe(20212)] Init <OFHTTPServerEx_Connection: 024A2160> with socket <OFTCPSocket: 024A6BA8>\r\n[2016-03-19 05:08:25.099 delegate.exe(20212)] did read line (Cache-Control: max-age=0) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:25.099 delegate.exe(20212)] did parse headers (Cache-Control: max-age=0) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:25.100 delegate.exe(20212)] find pos 13\r\n[2016-03-19 05:08:25.100 delegate.exe(20212)] key Cache-Control value  max-age=0\r\n[2016-03-19 05:08:25.100 delegate.exe(20212)] key normalizedKey Cache-Control\r\n[2016-03-19 05:08:25.100 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces max-age=0\r\n[2016-03-19 05:08:25.101 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:08:25.101 delegate.exe(20212)] value max-age=0\r\n[2016-03-19 05:08:25.101 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:08:25.101 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:08:25.101 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:08:25.101 delegate.exe(20212)] did read line (Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:25.102 delegate.exe(20212)] did parse headers (Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:25.102 delegate.exe(20212)] find pos 6\r\n[2016-03-19 05:08:25.102 delegate.exe(20212)] key Accept value  text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n[2016-03-19 05:08:25.102 delegate.exe(20212)] key normalizedKey Accept\r\n[2016-03-19 05:08:25.102 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n[2016-03-19 05:08:25.103 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:08:25.103 delegate.exe(20212)] value text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n[2016-03-19 05:08:25.103 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:08:25.103 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:08:25.103 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:08:25.103 delegate.exe(20212)] did read line (Upgrade-Insecure-Requests: 1) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:25.103 delegate.exe(20212)] did parse headers (Upgrade-Insecure-Requests: 1) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:25.104 delegate.exe(20212)] find pos 25\r\n[2016-03-19 05:08:25.104 delegate.exe(20212)] key Upgrade-Insecure-Requests value  1\r\n[2016-03-19 05:08:25.104 delegate.exe(20212)] key normalizedKey Upgrade-Insecure-Requests\r\n[2016-03-19 05:08:25.104 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces 1\r\n[2016-03-19 05:08:25.104 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:08:25.104 delegate.exe(20212)] value 1\r\n[2016-03-19 05:08:25.104 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:08:25.104 delegate.exe(20212)] Check for Host header record\r\n**!!![2016-03-19 05:08:25.105 delegate.exe(20212)] Header line parsed\r\n!!! 9 seconds freeze\r\n[2016-03-19 05:08:34.106 delegate.exe(20212)] did read line (User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>**\r\n[2016-03-19 05:08:34.106 delegate.exe(20212)] did parse headers (User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.107 delegate.exe(20212)] find pos 10\r\n[2016-03-19 05:08:34.107 delegate.exe(20212)] key User-Agent value  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36\r\n[2016-03-19 05:08:34.107 delegate.exe(20212)] key normalizedKey User-Agent\r\n[2016-03-19 05:08:34.108 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36\r\n[2016-03-19 05:08:34.108 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:08:34.108 delegate.exe(20212)] value Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36\r\n[2016-03-19 05:08:34.109 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:08:34.109 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:08:34.109 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:08:34.110 delegate.exe(20212)] did read line (Accept-Encoding: gzip, deflate, sdch) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.110 delegate.exe(20212)] did parse headers (Accept-Encoding: gzip, deflate, sdch) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.110 delegate.exe(20212)] find pos 15\r\n[2016-03-19 05:08:34.110 delegate.exe(20212)] key Accept-Encoding value  gzip, deflate, sdch\r\n[2016-03-19 05:08:34.111 delegate.exe(20212)] key normalizedKey Accept-Encoding\r\n[2016-03-19 05:08:34.111 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces gzip, deflate, sdch\r\n[2016-03-19 05:08:34.111 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:08:34.112 delegate.exe(20212)] value gzip, deflate, sdch\r\n[2016-03-19 05:08:34.112 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:08:34.112 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:08:34.112 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:08:34.114 delegate.exe(20212)] did read line (Accept-Language: en-US,en;q=0.8,ru;q=0.6) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.114 delegate.exe(20212)] did parse headers (Accept-Language: en-US,en;q=0.8,ru;q=0.6) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.115 delegate.exe(20212)] find pos 15\r\n[2016-03-19 05:08:34.115 delegate.exe(20212)] key Accept-Language value  en-US,en;q=0.8,ru;q=0.6\r\n[2016-03-19 05:08:34.115 delegate.exe(20212)] key normalizedKey Accept-Language\r\n[2016-03-19 05:08:34.116 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces en-US,en;q=0.8,ru;q=0.6\r\n[2016-03-19 05:08:34.116 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:08:34.116 delegate.exe(20212)] value en-US,en;q=0.8,ru;q=0.6\r\n[2016-03-19 05:08:34.117 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:08:34.117 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:08:34.117 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:08:34.118 delegate.exe(20212)] did read line (Cookie: testcookie=success) block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.118 delegate.exe(20212)] did parse headers (Cookie: testcookie=success) <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.118 delegate.exe(20212)] find pos 6\r\n[2016-03-19 05:08:34.119 delegate.exe(20212)] key Cookie value  testcookie=success\r\n[2016-03-19 05:08:34.119 delegate.exe(20212)] key normalizedKey Cookie\r\n[2016-03-19 05:08:34.119 delegate.exe(20212)] value stringByDeletingLeadingWhitespaces testcookie=success\r\n[2016-03-19 05:08:34.120 delegate.exe(20212)] old (nil)\r\n[2016-03-19 05:08:34.120 delegate.exe(20212)] value testcookie=success\r\n[2016-03-19 05:08:34.120 delegate.exe(20212)] Dictionary operation complite\r\n[2016-03-19 05:08:34.120 delegate.exe(20212)] Check for Host header record\r\n[2016-03-19 05:08:34.121 delegate.exe(20212)] Header line parsed\r\n[2016-03-19 05:08:34.122 delegate.exe(20212)] did read line () block <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.122 delegate.exe(20212)] did parse headers () <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.122 delegate.exe(20212)] creating response <OFHTTPServerEx_Connection: 024A2070> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.123 delegate.exe(20212)] Init <OFHTTPServerExResponse: 024A6968\r\n        Status code = 0\r\n        Headers = (nil)\r\n> with socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.124 delegate.exe(20212)] did write html <OFHTTPServerExResponse: 024A6968\r\n        Status code = 200\r\n        Headers = {\r\n                Set-Cookie = testcookie=success; Path=/; Domain=localhost; Discard;\r\n                Connection = Keep-Alive;\r\n                Content-Type = text/plain;\r\n        }\r\n> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.126 delegate.exe(20212)] did send headers <OFHTTPServerExResponse: 024A6968\r\n        Status code = 200\r\n        Headers = {\r\n                Set-Cookie = testcookie=success; Path=/; Domain=localhost; Discard;\r\n                Connection = Keep-Alive;\r\n                Content-Type = text/plain;\r\n        }\r\n> socket <OFTCPSocket: 024A6728>\r\n[2016-03-19 05:08:34.127 delegate.exe(20212)] did close server response <OFHTTPServerExResponse: 024A6968\r\n        Status code = 200\r\n        Headers = {\r\n                Set-Cookie = testcookie=success; Path=/; Domain=localhost; Discard;\r\n                Connection = Keep-Alive;\r\n                Content-Type = text/plain;\r\n        }\r\n> socket <OFTCPSocket: 024A6728>\r\n\r\n\r\nAs result next connections in current HTTP session (favicon image downloads eg) accepted by listening socket, closed by timeout"},"comment":{"url":"https://api.github.com/repos/Midar/objfw/issues/comments/198913468","html_url":"https://github.com/Midar/objfw/issues/24#issuecomment-198913468","issue_url":"https://api.github.com/repos/Midar/objfw/issues/24","id":198913468,"user":{"login":"Midar","id":752237,"avatar_url":"https://avatars.githubusercontent.com/u/752237?v=3","gravatar_id":"","url":"https://api.github.com/users/Midar","html_url":"https://github.com/Midar","followers_url":"https://api.github.com/users/Midar/followers","following_url":"https://api.github.com/users/Midar/following{/other_user}","gists_url":"https://api.github.com/users/Midar/gists{/gist_id}","starred_url":"https://api.github.com/users/Midar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Midar/subscriptions","organizations_url":"https://api.github.com/users/Midar/orgs","repos_url":"https://api.github.com/users/Midar/repos","events_url":"https://api.github.com/users/Midar/events{/privacy}","received_events_url":"https://api.github.com/users/Midar/received_events","type":"User","site_admin":false},"created_at":"2016-03-20T12:08:57Z","updated_at":"2016-03-20T12:08:57Z","body":"Fixed the bug introduced in 88f2f03 in master and 0.8.\r\n\r\nAs for libdispatch: Things assume that they run in an OFThread and OFHTTPServer does not use any locks right now, as the threading support is still on the TODO. The current plan is to have a method called -[addThread:] that you can use to tell OFHTTPServer to make use of that thread's runloop as well. It will then schedule request handlers in all the threads that have been added."}}