* rm on an non-existing file should throw an error
* Return an error on file creation for special pseudo-filesystems
* Redirection errors now python3 compatible
* Special filesystems, `touch` now honors them
* Whitespace fixes for CI
* VirusTotal: Save the file scan report and URL scan report to json log
* VT: Add field is_new to json log (both url and file scans)
* VT: Don't save to json log when request is already queued in VirusTotal
* Docker caching for devel
Use more caching features of Docker for building the devel image.
Downsite of this is that for users who heavily build the image it will
eat up more disk space then before.
But I think think only developers are affected here and all others will
pull from the registry.
A regular docker cleanup on the machines will solve this problem.
* Upgrade python to python3
The main Dockerfile will build now a python3 based image.
A copy of the old python2 file is still available for further testing.
* setup.py work in progress. should install library now.
* add incremental for versioning
* Fix 'ls -d' switches (worked wrong way around) and capitalisation in error message.
The data_path has changed to etc/. I'm not really happy with this but
I didn't had a better idea since we allow configs to be in ., etc/ and
/etc. Maybe we wanna changes this behaviour when we have a stable docker
release.
If the userdb.txt is not found Cowrie will load a default list.
The parser is now also a bit less error prone when parsing this file.
Some developers have different file permissions in their source
directory. This could lead to unusable Docker images.
We enforce now the correct file permissions during our Docker build.
* Docker devel image
TL;DR Providing an docker image for local development.
I wanted to have a container which has all the needed tools installed
while developming (eg flake8, pytest, pydev, etc).
The intermediate container `devel` can now be used by PyCharm as a
Remote Interpreter and for debugging. No need to setup any local test
environments because we can now use a pre-release image.
Build the container with `docker build --target devel -t cowrie:devel
.` from within the project root directory.
While building the container I encountered a bug with the
`python:2-alpine3.8` image and (at least, could be other OS also beeing
affected) the macOS kernel trying to use `socket.SO_REUSEPORT`.
After some testing I found out that the problem is just this image. So I
could have just gone and downgraded to `python:2-alpine3.7` or switched over to
`alpine:latest`. But none of them really convinced me after some
research so I decided to switch the Docker image to
`debian:stable-slim`. The resulting image is now slightly bigger then
our previous image but should give a better experience while
debugging stuff. Bonus point is that we have a functional installation
description for Debian based systems.
* New path for twisteds dropin.cache