{ "info": { "author": "Julien Castets", "author_email": "castets.j@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "License :: OSI Approved :: BSD License", "Operating System :: POSIX", "Programming Language :: Python :: 2 :: Only", "Topic :: Internet :: File Transfer Protocol (FTP)" ], "description": "dyntftpd\n========\n\nA simple, extendable Python implementation of a TFTP server.\n\nFeatures:\n\n- Easily customizable (override dyntftpd.TFTPServer and dyntftpd.handlers.*)\n- Can act as a HTTP proxy. The TFTP client can request a HTTP url, the TFTP\n server downloads and returns it.\n- Code is mostly unit tested and easy to read\n\nLimitations:\n\n- Only handle RRQ requests\n- Don't drop privileges after creating the listening socket :-(\n- No documentation but pydoc\n\nChangelog\n=========\n\n0.4.0 (2015-04-16)\n------------------\n\n* In HTTP handler, the cache filename contains client's source port and human\n readable datetime, making debugging easier.\n* We no longer create a thread for each request.\n* API break: move load_file and unload_file from TFTP handlers to Session.\n* Use CleverHandler instead of FileSystemHandler by default.\n* Free resources if client disconnect before completing a transfert.\n\n0.3.0 (2015-02-05)\n------------------\n\n* Add unload_file callback in TFTPUDPHandler, called when the transfer of a\n file is over and successful.\n* Remove cache files for successful transfers in HTTPHandler.\n\n0.2.1 (2014-11-06)\n------------------\n\n* Create HTTPHandler.\n* Create CleverHandler to dispatch to HTTPHandler or FileSystemHandler\n depending on the requested file.\n\n0.2.0 (2014-10-13)\n------------------\n\n* Use ThreadingMixin to serve multiple requests at the same time.\n* Accept option blksize.\n\n0.1.1 (2014-09-29)\n------------------\n\n* Accept, and ignore extra request options.\n\n0.1.0 (2014-09-08)\n------------------\n\n* Initial release.\n* Only accept TFTP read requests.", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/brmzkw/dyntftpd/tarball/v0.4.0", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/brmzkw/dyntftpd", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "dyntftpd", "package_url": "https://pypi.org/project/dyntftpd/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/dyntftpd/", "project_urls": { "Download": "https://github.com/brmzkw/dyntftpd/tarball/v0.4.0", "Homepage": "https://github.com/brmzkw/dyntftpd" }, "release_url": "https://pypi.org/project/dyntftpd/0.4.0/", "requires_dist": null, "requires_python": null, "summary": "A simple TFTP server", "version": "0.4.0" }, "last_serial": 1507713, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "47e8ab42927fd749784571a264663f62", "sha256": "4eb673b77e23410573248a0cc739b7fb57ed953c750ebd43b455ec9c8308488b" }, "downloads": -1, "filename": "dyntftpd-0.1.0.tar.gz", "has_sig": false, "md5_digest": "47e8ab42927fd749784571a264663f62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5307, "upload_time": "2014-09-08T14:13:18", "url": "https://files.pythonhosted.org/packages/88/a1/d750269bf07412a631c958a09521e87e0647263afd3a381e80db11ebb9f0/dyntftpd-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "ee1d84d752c1be88756341d9249db18b", "sha256": "07088c7340ed75b5e222e8c36534e8e6c465ae0709f725a1da533f38e18e6c1e" }, "downloads": -1, "filename": "dyntftpd-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ee1d84d752c1be88756341d9249db18b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5870, "upload_time": "2014-09-29T09:14:53", "url": "https://files.pythonhosted.org/packages/8f/2a/3230bbed6cf9a6d5d296f5b071f59defc3acbc06846c3acc6c58508c80fb/dyntftpd-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1e97db6fc4e69fc296bc1b13eafdfe80", "sha256": "2a9d22f9dad1bdbed856b36db397ff16ebfd7451d35e8fa8dbd462d5e8096321" }, "downloads": -1, "filename": "dyntftpd-0.2.0.tar.gz", "has_sig": false, "md5_digest": "1e97db6fc4e69fc296bc1b13eafdfe80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6370, "upload_time": "2014-10-13T14:52:20", "url": "https://files.pythonhosted.org/packages/fb/ac/718fc0858bce60039d7af483f08c67b037c78169c7c8d1a2733400ec08c8/dyntftpd-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "d5ee51787f3eb38abc0cf711fcd53ac6", "sha256": "3e6afe75e0b867e01b6b17dbebc00594eaa049d6e2ba968860d4647baa2e35a9" }, "downloads": -1, "filename": "dyntftpd-0.2.1-py2.7.egg", "has_sig": false, "md5_digest": "d5ee51787f3eb38abc0cf711fcd53ac6", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 27236, "upload_time": "2014-11-06T14:22:39", "url": "https://files.pythonhosted.org/packages/83/51/757aa1f81856c04ee6773bd9c3cd2e60c211042c0b00398a96641450c0c2/dyntftpd-0.2.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "31905e89a7615b6102f1cdd7fa8bec5e", "sha256": "bccef3931cb1995f960005903a8d9a5ff8594549e9a78e6fb1f08a1906814bcf" }, "downloads": -1, "filename": "dyntftpd-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "31905e89a7615b6102f1cdd7fa8bec5e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13724, "upload_time": "2014-11-06T14:22:54", "url": "https://files.pythonhosted.org/packages/39/d7/e8b12b5820ccd47a49c08f843f25b02b4ea0b448f204392aa328018943d3/dyntftpd-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bdcde52fa2bfaf8fa7e5394835c82048", "sha256": "ffe452059660f579b39a824a67ae773d9354d567bfa6b90db860f5c5332e7bce" }, "downloads": -1, "filename": "dyntftpd-0.2.1.tar.gz", "has_sig": false, "md5_digest": "bdcde52fa2bfaf8fa7e5394835c82048", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9242, "upload_time": "2014-11-06T14:22:35", "url": "https://files.pythonhosted.org/packages/d5/1a/daaafd6aa73b626c2a0f682eedb04423f5568206e5c67153515d636aae56/dyntftpd-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "2c7293c9e93bf793807f1dc9bf873971", "sha256": "36a8e351c5054b2d34b6adbf1fca8721871becdc295c74528434ea9eb72de868" }, "downloads": -1, "filename": "dyntftpd-0.3.0-py2.7.egg", "has_sig": false, "md5_digest": "2c7293c9e93bf793807f1dc9bf873971", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 27718, "upload_time": "2015-02-05T14:16:16", "url": "https://files.pythonhosted.org/packages/44/d2/1b97df08b1a632b4bb93cdafb3e6482a32ef22ced2717da71e20c7901c0f/dyntftpd-0.3.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "a2a4e2701779fe8360499602eeb09ff7", "sha256": "2d8f2e53b13b152a5266394514cc715fd6761a68d07993f21a5f30e7064b9bf4" }, "downloads": -1, "filename": "dyntftpd-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a2a4e2701779fe8360499602eeb09ff7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14020, "upload_time": "2015-02-05T14:16:22", "url": "https://files.pythonhosted.org/packages/ba/aa/8206bb35dd8e25e7efcae1a39e3699819121e43c7297c336fbe2e92cce41/dyntftpd-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73653682ba7ada9cbdda9c94d8308312", "sha256": "7dc71757a10b63d432ef7b10417eb85cfc3af682a07d00762879bd7c4a8020d7" }, "downloads": -1, "filename": "dyntftpd-0.3.0.tar.gz", "has_sig": false, "md5_digest": "73653682ba7ada9cbdda9c94d8308312", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9470, "upload_time": "2015-02-05T14:16:12", "url": "https://files.pythonhosted.org/packages/22/cc/5183c6584bb061b9259e1c886cd5aa33c9b253664d42c5839746a51a1267/dyntftpd-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "b163d83477456fdb385a9b1f2a0a1faf", "sha256": "3c858688c5e68418813964fbd583c56f48f04bc435f94c121e09517e2e07e81f" }, "downloads": -1, "filename": "dyntftpd-0.4.0-py2.7.egg", "has_sig": false, "md5_digest": "b163d83477456fdb385a9b1f2a0a1faf", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 29124, "upload_time": "2015-04-16T10:29:24", "url": "https://files.pythonhosted.org/packages/9d/18/11f22d0e7f783cebcc0456ae0952dec9f1eeab141e2006f31f9d9c98adde/dyntftpd-0.4.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "cd9d6e9ea814098857dab20c6478b781", "sha256": "3bda06a61591fd2c2417b32c94a91eb1fdd3c65941ef765eea9d9313165603b7" }, "downloads": -1, "filename": "dyntftpd-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "cd9d6e9ea814098857dab20c6478b781", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14817, "upload_time": "2015-04-16T10:29:28", "url": "https://files.pythonhosted.org/packages/da/20/724cf9e68d45fb942df6df17c9c63ccf133e52d393cec9f9fba90faa5c55/dyntftpd-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82c273d1a2cad45cd32e62632a7c31fe", "sha256": "3aaf282a1b45a6e2728a554e654182aee2dfeb5b2a5a8e08273418cf55c2ba0e" }, "downloads": -1, "filename": "dyntftpd-0.4.0.tar.gz", "has_sig": false, "md5_digest": "82c273d1a2cad45cd32e62632a7c31fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10072, "upload_time": "2015-04-16T10:29:20", "url": "https://files.pythonhosted.org/packages/56/b9/c884dba675df1a61b4be81a2cccb1029aca0e8d441862acc49b72c293d44/dyntftpd-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b163d83477456fdb385a9b1f2a0a1faf", "sha256": "3c858688c5e68418813964fbd583c56f48f04bc435f94c121e09517e2e07e81f" }, "downloads": -1, "filename": "dyntftpd-0.4.0-py2.7.egg", "has_sig": false, "md5_digest": "b163d83477456fdb385a9b1f2a0a1faf", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 29124, "upload_time": "2015-04-16T10:29:24", "url": "https://files.pythonhosted.org/packages/9d/18/11f22d0e7f783cebcc0456ae0952dec9f1eeab141e2006f31f9d9c98adde/dyntftpd-0.4.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "cd9d6e9ea814098857dab20c6478b781", "sha256": "3bda06a61591fd2c2417b32c94a91eb1fdd3c65941ef765eea9d9313165603b7" }, "downloads": -1, "filename": "dyntftpd-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "cd9d6e9ea814098857dab20c6478b781", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14817, "upload_time": "2015-04-16T10:29:28", "url": "https://files.pythonhosted.org/packages/da/20/724cf9e68d45fb942df6df17c9c63ccf133e52d393cec9f9fba90faa5c55/dyntftpd-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82c273d1a2cad45cd32e62632a7c31fe", "sha256": "3aaf282a1b45a6e2728a554e654182aee2dfeb5b2a5a8e08273418cf55c2ba0e" }, "downloads": -1, "filename": "dyntftpd-0.4.0.tar.gz", "has_sig": false, "md5_digest": "82c273d1a2cad45cd32e62632a7c31fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10072, "upload_time": "2015-04-16T10:29:20", "url": "https://files.pythonhosted.org/packages/56/b9/c884dba675df1a61b4be81a2cccb1029aca0e8d441862acc49b72c293d44/dyntftpd-0.4.0.tar.gz" } ] }