{"action":"published","release":{"url":"https://api.github.com/repos/troglobit/uftpd/releases/1573647","assets_url":"https://api.github.com/repos/troglobit/uftpd/releases/1573647/assets","upload_url":"https://uploads.github.com/repos/troglobit/uftpd/releases/1573647/assets{?name}","html_url":"https://github.com/troglobit/uftpd/releases/tag/v1.9","id":1573647,"tag_name":"v1.9","target_commitish":"master","name":"uftpd v1.9","draft":false,"author":{"login":"troglobit","id":183517,"avatar_url":"https://avatars.githubusercontent.com/u/183517?v=3","gravatar_id":"","url":"https://api.github.com/users/troglobit","html_url":"https://github.com/troglobit","followers_url":"https://api.github.com/users/troglobit/followers","following_url":"https://api.github.com/users/troglobit/following{/other_user}","gists_url":"https://api.github.com/users/troglobit/gists{/gist_id}","starred_url":"https://api.github.com/users/troglobit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/troglobit/subscriptions","organizations_url":"https://api.github.com/users/troglobit/orgs","repos_url":"https://api.github.com/users/troglobit/repos","events_url":"https://api.github.com/users/troglobit/events{/privacy}","received_events_url":"https://api.github.com/users/troglobit/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2015-07-23T00:04:11Z","published_at":"2015-07-23T00:09:22Z","assets":[{"url":"https://api.github.com/repos/troglobit/uftpd/releases/assets/738633","id":738633,"name":"uftpd-1.9.tar.xz","label":null,"uploader":{"login":"troglobit","id":183517,"avatar_url":"https://avatars.githubusercontent.com/u/183517?v=3","gravatar_id":"","url":"https://api.github.com/users/troglobit","html_url":"https://github.com/troglobit","followers_url":"https://api.github.com/users/troglobit/followers","following_url":"https://api.github.com/users/troglobit/following{/other_user}","gists_url":"https://api.github.com/users/troglobit/gists{/gist_id}","starred_url":"https://api.github.com/users/troglobit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/troglobit/subscriptions","organizations_url":"https://api.github.com/users/troglobit/orgs","repos_url":"https://api.github.com/users/troglobit/repos","events_url":"https://api.github.com/users/troglobit/events{/privacy}","received_events_url":"https://api.github.com/users/troglobit/received_events","type":"User","site_admin":false},"content_type":"application/x-xz","state":"uploaded","size":52796,"download_count":0,"created_at":"2015-07-23T00:09:18Z","updated_at":"2015-07-23T00:09:19Z","browser_download_url":"https://github.com/troglobit/uftpd/releases/download/v1.9/uftpd-1.9.tar.xz"},{"url":"https://api.github.com/repos/troglobit/uftpd/releases/assets/738631","id":738631,"name":"uftpd-1.9.tar.xz.md5","label":null,"uploader":{"login":"troglobit","id":183517,"avatar_url":"https://avatars.githubusercontent.com/u/183517?v=3","gravatar_id":"","url":"https://api.github.com/users/troglobit","html_url":"https://github.com/troglobit","followers_url":"https://api.github.com/users/troglobit/followers","following_url":"https://api.github.com/users/troglobit/following{/other_user}","gists_url":"https://api.github.com/users/troglobit/gists{/gist_id}","starred_url":"https://api.github.com/users/troglobit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/troglobit/subscriptions","organizations_url":"https://api.github.com/users/troglobit/orgs","repos_url":"https://api.github.com/users/troglobit/repos","events_url":"https://api.github.com/users/troglobit/events{/privacy}","received_events_url":"https://api.github.com/users/troglobit/received_events","type":"User","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":54,"download_count":0,"created_at":"2015-07-23T00:09:18Z","updated_at":"2015-07-23T00:09:18Z","browser_download_url":"https://github.com/troglobit/uftpd/releases/download/v1.9/uftpd-1.9.tar.xz.md5"},{"url":"https://api.github.com/repos/troglobit/uftpd/releases/assets/738632","id":738632,"name":"uftpd_1.9-1_amd64.changes","label":null,"uploader":{"login":"troglobit","id":183517,"avatar_url":"https://avatars.githubusercontent.com/u/183517?v=3","gravatar_id":"","url":"https://api.github.com/users/troglobit","html_url":"https://github.com/troglobit","followers_url":"https://api.github.com/users/troglobit/followers","following_url":"https://api.github.com/users/troglobit/following{/other_user}","gists_url":"https://api.github.com/users/troglobit/gists{/gist_id}","starred_url":"https://api.github.com/users/troglobit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/troglobit/subscriptions","organizations_url":"https://api.github.com/users/troglobit/orgs","repos_url":"https://api.github.com/users/troglobit/repos","events_url":"https://api.github.com/users/troglobit/events{/privacy}","received_events_url":"https://api.github.com/users/troglobit/received_events","type":"User","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":1010,"download_count":0,"created_at":"2015-07-23T00:09:18Z","updated_at":"2015-07-23T00:09:19Z","browser_download_url":"https://github.com/troglobit/uftpd/releases/download/v1.9/uftpd_1.9-1_amd64.changes"},{"url":"https://api.github.com/repos/troglobit/uftpd/releases/assets/738634","id":738634,"name":"uftpd_1.9-1_amd64.deb","label":null,"uploader":{"login":"troglobit","id":183517,"avatar_url":"https://avatars.githubusercontent.com/u/183517?v=3","gravatar_id":"","url":"https://api.github.com/users/troglobit","html_url":"https://github.com/troglobit","followers_url":"https://api.github.com/users/troglobit/followers","following_url":"https://api.github.com/users/troglobit/following{/other_user}","gists_url":"https://api.github.com/users/troglobit/gists{/gist_id}","starred_url":"https://api.github.com/users/troglobit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/troglobit/subscriptions","organizations_url":"https://api.github.com/users/troglobit/orgs","repos_url":"https://api.github.com/users/troglobit/repos","events_url":"https://api.github.com/users/troglobit/events{/privacy}","received_events_url":"https://api.github.com/users/troglobit/received_events","type":"User","site_admin":false},"content_type":"application/x-debian-package","state":"uploaded","size":22762,"download_count":0,"created_at":"2015-07-23T00:09:18Z","updated_at":"2015-07-23T00:09:19Z","browser_download_url":"https://github.com/troglobit/uftpd/releases/download/v1.9/uftpd_1.9-1_amd64.deb"}],"tarball_url":"https://api.github.com/repos/troglobit/uftpd/tarball/v1.9","zipball_url":"https://api.github.com/repos/troglobit/uftpd/zipball/v1.9","body":"Bug fix release.  FTP and TFTP sessions can now run fully in parallel, independent of each other.  Also improved compatibility with Firefox built-in FTP client and wget.\r\n\r\n### Changes\r\n- Upgrade to [libuEv][] v1.2.1+ for improved error handling and a much\r\n  cleaner API.\r\n- Major refactor of both FTP and TFTP servers to use libuEv better.\r\n- Move to use [libite][] v1.0.0 for `strlcpy()`, `strlcat()`, `pidfile()`\r\n  and more.\r\n- Add proper session timout to TFTP, like what FTP already has.\r\n- Add support for `NLST` FTP command, needed for multiple get operations.\r\n  This fixes issue #2, thanks to @oz123 on GitHub for pointing this out!\r\n- Add support for `FEAT` and `HELP` FTP commands used by some clients.\r\n\r\n### Fixes\r\n- Fix issue #3: do not sleep 2 sec before exiting.  Simply forward the\r\n  `SIGTERM` to any FTP/TFTP session in progress, yield the CPU to let\r\n  the child sessions handle the signal, and then exit.  Much quicker!\r\n- Fix issue #4: due to an ordering bug between the main process calling\r\n  `daemon()` and `sig_init()`, we never got the `SIGCHILD` to be able to\r\n  reap any exiting FTP/TFTP sessions.  This resulted in zombies(!) when\r\n  *not* being called as `uftpd -n`\r\n- Fix issue #5: `LIST` and `NLST` ignores path argument sent by client.\r\n- Fix issue #6: FTP clients not detecting session timeout.  Caused by\r\n  uftpd not performing a proper `shutdown()` on the client socket(s)\r\n  before `close()`.\r\n- Fix problem with [libuEv][] not being properly cleaned on `distclean`.\r\n- Fix problem with uftpd not exiting client session properly when client\r\n  simply closes the connection.\r\n\r\n[libuEv]: https://github.com/troglobit/libuev\r\n[libite]: https://github.com/troglobit/libite\r\n"}}