{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":3416891,"defaultBranch":"master","name":"libhttpserver","ownerLogin":"etr","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2012-02-11T18:25:39.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1201536?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1688162843.0","currentOid":""},"activityList":{"items":[{"before":"c130666ed34fab6bfc069239a197f61b3fbdc79f","after":"d249ba682441dbb979146482aff01a7073ed165a","ref":"refs/heads/master","pushedAt":"2023-06-30T23:04:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Fix bug preventing GET params from being read on parametrized URLs. (#326)\n\nThis also introduces tests to verify the bug doesn't return.\r\n\r\nThe bug was due to the populate_args method checking whether the\r\ncache was empty before executing. By doing so, it was ignoring that\r\nin case of parametrized URLs, the webserver class was loading the\r\nparams as arguments.\r\n\r\nCo-authored-by: Merlino ","shortMessageHtmlLink":"Fix bug preventing GET params from being read on parametrized URLs. (#…"}},{"before":"c130666ed34fab6bfc069239a197f61b3fbdc79f","after":"34507790edbeec364e9ee49f91919a0273f2d9e7","ref":"refs/heads/bugfix_no_url_pars_on_parametrized_urls","pushedAt":"2023-06-30T22:11:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Fix bug preventing GET params from being read on parametrized URLs.\n\nThis also introduces tests to verify the bug doesn't return.\n\nThe bug was due to the populate_args method checking whether the\ncache was empty before executing. By doing so, it was ignoring that\nin case of parametrized URLs, the webserver class was loading the\nparams as arguments.","shortMessageHtmlLink":"Fix bug preventing GET params from being read on parametrized URLs."}},{"before":null,"after":"c130666ed34fab6bfc069239a197f61b3fbdc79f","ref":"refs/heads/bugfix_no_url_pars_on_parametrized_urls","pushedAt":"2023-06-30T22:07:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Updated authors and changelog","shortMessageHtmlLink":"Updated authors and changelog"}},{"before":"60be2d347fb3c757b2e77efc997120e47ed8fb7f","after":"c130666ed34fab6bfc069239a197f61b3fbdc79f","ref":"refs/heads/master","pushedAt":"2023-06-16T04:06:36.630Z","pushType":"push","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Updated authors and changelog","shortMessageHtmlLink":"Updated authors and changelog"}},{"before":"57bbb3cae89b6b71847604f9b2ed4498ac908aa6","after":"60be2d347fb3c757b2e77efc997120e47ed8fb7f","ref":"refs/heads/master","pushedAt":"2023-06-16T03:50:08.536Z","pushType":"push","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Update authors file","shortMessageHtmlLink":"Update authors file"}},{"before":"8572ca95b6b334c66545948cae3b1ffbcde8b897","after":"57bbb3cae89b6b71847604f9b2ed4498ac908aa6","ref":"refs/heads/master","pushedAt":"2023-05-21T05:09:13.872Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"A bunch of generalized code cleanup. (#322)\n\n* Replace static_cast(-1) with std::numeric_limits::max().\r\n\r\n* Move setting of http_request::cache out of the contructors.\r\n\r\n* Remove all uses of this->\r\n\r\n* Cleanup some extra ().\r\n\r\n* Use the calling signiture for uri_log as defined by the docs: https://www.gnu.org/software/libmicrohttpd/manual/html_node/microhttpd_002dconst.html#index-logging\r\n\r\n* Revert setters.","shortMessageHtmlLink":"A bunch of generalized code cleanup. (#322)"}},{"before":"fb58ec7a515f3c31fcf576bf49e6f65a8b67ab11","after":"8572ca95b6b334c66545948cae3b1ffbcde8b897","ref":"refs/heads/master","pushedAt":"2023-05-21T05:07:49.207Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Replace new/delete with RAII. (#321)\n\n* Replace new/delete with RAII.\r\n\r\n* Fix include order lint issue.\r\n\r\n* Remove some mamnual memeory managment an reduce the number time things are copied.\r\n\r\n* Avoid using temporary buffers.\r\n\r\n* Use std::make_shared() rather than std::shared_ptr(new T())\r\n\r\n* Make http_request::~http_request public.\r\n\r\n* Cleanup new/delete for details::modded_request.\r\n\r\n* Convert details::modded_request::upload_ostrm to RAII.\r\n\r\n* Convert details::modded_request::standardized_url to RAII.\r\n\r\n* Convert details::modded_request::complete_uri to RAII.\r\n\r\n* Convert details::modded_request::dhr to RAII.\r\n\r\n* Make details::modded_request move-only.\r\n\r\n* Remove details::modded_request::second.","shortMessageHtmlLink":"Replace new/delete with RAII. (#321)"}},{"before":"84996ea5ea5d1ef594877a9657c48986b53789b7","after":"fb58ec7a515f3c31fcf576bf49e6f65a8b67ab11","ref":"refs/heads/master","pushedAt":"2023-05-11T05:40:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Make more robust tests. (#312)\n\n* Add a test verifying that the test content files are in fact readable.\r\n\r\n* Also check HTTP responce code.\r\n\r\n* Delete dead variable.\r\n\r\n* Add include.\r\n\r\n* Allow playing games with where the test_content files are (and thus relax what directory the test can be run from).\r\n\r\n* Allow playing games with where the test_content files are (and thus relax what directory the test can be run from).\r\n\r\n* Allow playing games with where the .pem files are (and thus relax what directory the test can be run from).\r\n\r\n* Allow flexability for TCP ports on all the rest of the tests.\r\n\r\n* Make sure register_resource calls don't fail.\r\n\r\n* Make lint happy.\r\n\r\n* Deal with cross thread error propogation.\r\n\r\n* Deal with some special cases for loggin in littletest.","shortMessageHtmlLink":"Make more robust tests. (#312)"}},{"before":"82ae1f088e9e3369a0b2de8d12cfc126200fd05a","after":"84996ea5ea5d1ef594877a9657c48986b53789b7","ref":"refs/heads/master","pushedAt":"2023-05-05T22:10:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Count (unexpected) escaping exceptions as a test failure. (#316)\n\n* Split 'Setup dependencies' step.\r\n\r\n* Count (unepected) escaping expections as a test failure.\r\n\r\n* Improve error message formating.\r\n\r\n* Log std::exception::what() in LT_ASSERT_NOTHROW.\r\n\r\n* Fix setup steps.\r\n\r\nFix an oops and remove success()","shortMessageHtmlLink":"Count (unexpected) escaping exceptions as a test failure. (#316)"}},{"before":"515ddecf151c5a32ee509728cbefd2ea0438c091","after":"82ae1f088e9e3369a0b2de8d12cfc126200fd05a","ref":"refs/heads/master","pushedAt":"2023-04-17T17:40:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Reducing the margin of error on priorities list","shortMessageHtmlLink":"Reducing the margin of error on priorities list"}},{"before":"8c21c4045c745b4d13b299269fef56d552be741d","after":"515ddecf151c5a32ee509728cbefd2ea0438c091","ref":"refs/heads/master","pushedAt":"2023-04-14T05:49:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Install libgnutls within the CI flow (#315)\n\n* Install libgnutls within the CI flow\r\n\r\n* Installing gnutls only on ubuntu\r\n\r\n* Simplify SSL priorities list string in test","shortMessageHtmlLink":"Install libgnutls within the CI flow (#315)"}},{"before":"68bb8504af8108e603c891bd8d94800815404c50","after":"734defb6b5d4a2c8ff00a2f185fdaa927f42cbeb","ref":"refs/heads/libgnutls-CI","pushedAt":"2023-04-14T05:24:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Simplify SSL priorities list string in test","shortMessageHtmlLink":"Simplify SSL priorities list string in test"}},{"before":"9ff75af4103d23aa0acea63fe1f9504180967b3a","after":"68bb8504af8108e603c891bd8d94800815404c50","ref":"refs/heads/libgnutls-CI","pushedAt":"2023-04-13T20:40:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Installing gnutls only on ubuntu","shortMessageHtmlLink":"Installing gnutls only on ubuntu"}},{"before":null,"after":"9ff75af4103d23aa0acea63fe1f9504180967b3a","ref":"refs/heads/libgnutls-CI","pushedAt":"2023-04-13T18:55:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Install libgnutls within the CI flow","shortMessageHtmlLink":"Install libgnutls within the CI flow"}},{"before":"7514f5d0c80e08970a57b2b96422a54eb4df6330","after":"8c21c4045c745b4d13b299269fef56d552be741d","ref":"refs/heads/master","pushedAt":"2023-04-13T04:20:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Install cppcheck","shortMessageHtmlLink":"Install cppcheck"}},{"before":"2293e3e02fde294e4ee1e31c46adb65b62581bbb","after":"7514f5d0c80e08970a57b2b96422a54eb4df6330","ref":"refs/heads/master","pushedAt":"2023-04-13T03:43:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Remove code coverage reports\n\nTemporarily, given that codecov integration has migrated and the current implementation is broken","shortMessageHtmlLink":"Remove code coverage reports"}},{"before":"aad1a5c91ec01c7b80eb7973e84bb12f0355048a","after":"2293e3e02fde294e4ee1e31c46adb65b62581bbb","ref":"refs/heads/master","pushedAt":"2023-04-12T04:16:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Consider family_url in ordering of http_endpoint. (#306)\n\n* Make more tests port configurable.\r\n\r\n* Add test of current state for how registuring family resources works.\r\n\r\n* Consider family_url in ordering of http_endpoint. This will allow calling register_resource independently for a path as a family and non-family.\r\n\r\n* Don't put family patterns in registered_resources_str.\r\n\r\n* Update test to match.\r\n\r\n* Remove some comments that got copy/pasted in error.","shortMessageHtmlLink":"Consider family_url in ordering of http_endpoint. (#306)"}},{"before":"ef139c1e0c375e6a72fa87be49fdf49ac8ea3598","after":"aad1a5c91ec01c7b80eb7973e84bb12f0355048a","ref":"refs/heads/master","pushedAt":"2023-04-12T04:10:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Be more explicit about C++ version requierments. (#311)\n\n* Be more explicit about C++ version requierments.\r\n\r\n* Typo.","shortMessageHtmlLink":"Be more explicit about C++ version requierments. (#311)"}},{"before":"205aea0a053f0ceead0c667fc843a1a7ebeca1ce","after":"ef139c1e0c375e6a72fa87be49fdf49ac8ea3598","ref":"refs/heads/master","pushedAt":"2023-04-10T15:06:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Removed workflow steps relying on 18.04","shortMessageHtmlLink":"Removed workflow steps relying on 18.04"}},{"before":"2dae151406ee1c2974ed8ccacee5c691092443f4","after":"205aea0a053f0ceead0c667fc843a1a7ebeca1ce","ref":"refs/heads/master","pushedAt":"2023-04-10T15:03:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Expand tests of resource resolution (#309)\n\n* Add some test of how registired resources interactwith eachother.\r\n\r\n* Add a test case for https://github.com/etr/libhttpserver/issues/308\r\n\r\n* Make more picky warning settings happy.\r\n\r\n* Make lint happy.\r\n\r\n* Correct a test cases for -DCASE_INSENSITIVE\r\n\r\nAlso add a comment that the non `-DCASE_INSENSITIVE` testcases is probably wrong.\r\n\r\n* Make lint happy about the TODO\r\n\r\nReally this should be assigned to an issue report, not a person, because nobody has agreed to fix it yet.","shortMessageHtmlLink":"Expand tests of resource resolution (#309)"}},{"before":"3d2198539b49b763ef51045e4481742ef353a6d0","after":"2dae151406ee1c2974ed8ccacee5c691092443f4","ref":"refs/heads/master","pushedAt":"2023-04-10T15:02:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Modify some integration tests to allow them to pass on more limited systems (#307)\n\n* Modify some integration tests to allow them to pass on systems that don't have port 8080 open or where the test don't run on a 'normal' file system (e.g. a sandbox full of symlinks).\r\n\r\n* Make lint happy.\r\n\r\n* s/PORTS/PORT_STRING/","shortMessageHtmlLink":"Modify some integration tests to allow them to pass on more limited s…"}},{"before":"b32aac69bd610ada4c43c3328531c1b6656091e8","after":"3d2198539b49b763ef51045e4481742ef353a6d0","ref":"refs/heads/master","pushedAt":"2023-03-11T17:41:02.849Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Correct typo in README.md (#300)\n\nCorrect typo on line 70: \"format a\" to \"formats\"","shortMessageHtmlLink":"Correct typo in README.md (#300)"}},{"before":"38c219b9ac4a25ba0e464fb364b99b0321656279","after":"b32aac69bd610ada4c43c3328531c1b6656091e8","ref":"refs/heads/master","pushedAt":"2023-03-10T17:19:14.421Z","pushType":"push","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Fix typos in the documentation","shortMessageHtmlLink":"Fix typos in the documentation"}},{"before":"736481e3e7d168afe1d9844202d76e13f48de71a","after":"38c219b9ac4a25ba0e464fb364b99b0321656279","ref":"refs/heads/master","pushedAt":"2023-03-10T17:16:59.939Z","pushType":"push","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"Updated readme with new http_request methods\n\nThe readme lacked information about the new logic of get_arg, get_arg_flat, get_args, get_args_flat and http_arg_value.","shortMessageHtmlLink":"Updated readme with new http_request methods"}},{"before":"914ac9e6d2483347d11fc8bab0d85c9df1dc8b0e","after":"736481e3e7d168afe1d9844202d76e13f48de71a","ref":"refs/heads/master","pushedAt":"2023-03-09T21:27:42.067Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"fix broken install after #292 fix (#303)\n\nThe added hpp file was not added to the makefile include HEADERS, and\r\nis therefore not installed.","shortMessageHtmlLink":"fix broken install after #292 fix (#303)"}},{"before":"17dd3998375dad611651872e1993954e973fbdb9","after":"914ac9e6d2483347d11fc8bab0d85c9df1dc8b0e","ref":"refs/heads/master","pushedAt":"2023-03-08T22:58:40.738Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"etr","name":"Sebastiano Merlino","path":"/etr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1201536?s=80&v=4"},"commit":{"message":"fix #292 handle argument keys with multiple values (#302)\n\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.\r\n\r\n* fix #292 handle argument keys with multiple values\r\n\r\nThis change allows the server to handle argument keys with multiple values\r\ne.g. url?arg=param&arg=what\r\n\r\nPrevious, the arg key would just be overwritten with the next value. This\r\nchange adds a http_arg_value type to house all the values for a given key.\r\n\r\nAdjust existing get_arg(s) methods, and add some get_arg_flat type\r\nmethods that still just return the first value for a given key.\r\n\r\nAdd a test case for multiple valued keys.\r\n\r\nAdd a test case for a large file upload that triggers chunking behavior\r\nof MHD. This causes the server to concatenate file chunks within the\r\nfirst value of the given arg key, so the test ensures that this\r\nbehavior is not affected by the changes.","shortMessageHtmlLink":"fix #292 handle argument keys with multiple values (#302)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADTJrrJAA","startCursor":null,"endCursor":null}},"title":"Activity · etr/libhttpserver"}