diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1c5cabc --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Ignore Vim swap files +.*.swp diff --git a/AndServer/.gitignore b/AndServer/.gitignore new file mode 100644 index 0000000..b1215a2 --- /dev/null +++ b/AndServer/.gitignore @@ -0,0 +1 @@ +/AndServer diff --git a/AndServer/Bin/.gitignore b/AndServer/Bin/.gitignore index e69de29..5e7d273 100644 --- a/AndServer/Bin/.gitignore +++ b/AndServer/Bin/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/AndServer/Cert/.gitignore b/AndServer/Cert/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/AndServer/Cert/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/AndServer/Makefile b/AndServer/Makefile index 0f160a0..9f2bd79 100644 --- a/AndServer/Makefile +++ b/AndServer/Makefile @@ -23,25 +23,23 @@ $(OBJDIR)/%.o: $(SRCDIR)/%.cpp $(INCLDIR)/%.h $(CXX) $(OPTS) -c $< -o $@ certificate: - openssl genrsa -des3 -out Cert/server.key 4096 + openssl genrsa -out Cert/server.key 4096 openssl req -new -key Cert/server.key -out Cert/server.csr openssl x509 -req -days 1095 -in Cert/server.csr -signkey Cert/server.key -out Cert/server.crt - openssl rsa -in Cert/server.key -out Cert/server.key.insecure - cat Cert/server.key.insecure > Cert/server.pem + cat Cert/server.key > Cert/server.pem cat Cert/server.crt >> Cert/server.pem - rm -rf Cert/server.key Cert/server.csr Cert/server.key.insecure Cert/server.crt + rm -rf Cert/server.key Cert/server.csr Cert/server.crt clientcert: - openssl genrsa -des3 -out Cert/client.key 4096 + openssl genrsa -out Cert/client.key 4096 openssl req -new -key Cert/client.key -out Cert/client.csr openssl x509 -req -days 1095 -in Cert/client.csr -signkey Cert/client.key -out Cert/client.crt - openssl rsa -in Cert/client.key -out Cert/client.key.insecure - cat Cert/client.key.insecure > Cert/client.pem + cat Cert/client.key > Cert/client.pem cat Cert/client.crt >> Cert/client.pem openssl pkcs12 -in Cert/client.pem -export -out Cert/client.pkcs12 -passout pass:123456 - rm -rf Cert/client.key Cert/client.pem Cert/client.key.insecure + rm -rf Cert/client.key Cert/client.csr Cert/client.crt androidbks: chmod +x mkStore.sh @@ -51,14 +49,20 @@ clean: rm $(PROJECT) $(OBJDIR)/*.o *.pem -f certclean: - rm -f Cert/*.pem Cert/*.bks + rm -f Cert/server.pem Cert/client.pem Cert/client.pkcs12 Cert/andserver.bks install: cp AndServer /usr/bin cp andserver.conf.example /etc/andserver.conf +certinstall: + mkdir -p /etc/andserver + cp Cert/server.pem Cert/client.pem /etc/andserver + distclean: - rm /usr/bin/AndServer /etc/andserver.conf + rm -f /usr/bin/AndServer /etc/andserver.conf + rm -f /etc/andserver/server.pem /etc/andserver/client.pem + rm -df /etc/andserver gentoo-install: cp Initscripts/andserver-service-gentoo /etc/init.d/ @@ -67,12 +71,12 @@ gentoo-install: gentoo-uninstall: rc-update del andserver-service-gentoo - rm /etc/init.d/andserver-service-gentoo + rm -f /etc/init.d/andserver-service-gentoo ubuntu-install: cp Initscripts/andserver-service-ubuntu /etc/init/andserver-service.conf initctl start andserver-service ubuntu-uninstall: - rm /etc/init/andserver-service.conf + rm -f /etc/init/andserver-service.conf diff --git a/AndServer/Src/AndroidInputServer.cpp b/AndServer/Src/AndroidInputServer.cpp index 4c577fe..432f367 100644 --- a/AndServer/Src/AndroidInputServer.cpp +++ b/AndServer/Src/AndroidInputServer.cpp @@ -385,14 +385,12 @@ bool AndroidInputServer::daemonize() { bool AndroidInputServer::readySocket(int *listeningSocket, struct sockaddr_in *serverAddress, int listeningPort){ char tmp[128]; - int *optval = new int(1); int flags; *listeningSocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if ( *listeningSocket == -1 ) { sprintf(tmp,"08.12.2011 16:21:36 socket() error: (%d) %s",errno, strerror(errno)); logger->error(tmp); - delete optval; return false; } memset(serverAddress, 0, sizeof(*serverAddress)); @@ -402,36 +400,31 @@ bool AndroidInputServer::readySocket(int *listeningSocket, struct sockaddr_in *s if ( bind(*listeningSocket, (struct sockaddr *)serverAddress,sizeof(*serverAddress)) == -1 ) { logger->error("08.12.2011 16:21:55 bind() error. Perhaps the port numbers are too low? Use >=1024 if you are not root",errno); - delete optval; return false; } if ( listen(*listeningSocket, maxConnections) == -1 ) { logger->error("15.12.2011 08:02:43 Listen() error",errno); - delete optval; return false; } - if (setsockopt(*listeningSocket,SOL_SOCKET,SO_REUSEADDR,optval, sizeof(int)) == -1) { + int optval = 1; + if (setsockopt(*listeningSocket, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) == -1) { logger->error("15.12.2011 23:06:25 setsockopt() error",errno); - delete optval; return false; } if ((flags = fcntl(*listeningSocket, F_GETFL, 0)) < 0) { logger->error("27.03.2012 20:58:26 fcntl()",errno); - delete optval; return false; } if (fcntl(*listeningSocket, F_SETFL, flags | O_NONBLOCK) < 0) { logger->error("27.03.2012 20:58:12 fcntl() ",errno); - delete optval; return false; } - delete optval; return true; } diff --git a/AndServer/andserver.conf.example b/AndServer/andserver.conf.example index e6e6b85..7baa821 100644 --- a/AndServer/andserver.conf.example +++ b/AndServer/andserver.conf.example @@ -11,13 +11,13 @@ #keyboard-port 6780 # path to file containing server private key -#private-key-file /path_to_file/server.pem +#private-key-file /etc/andserver/server.pem # path to file containing server certificate -#certificate-file /path_to_file/server.pem +#certificate-file /etc/andserver/server.pem -# path to file containing server certificate -#certificate-file /path_to_file/client.pem +# path to file containing client certificate +#client-certificate-file /etc/andserver/client.pem # mouse character special file #mouse-device-file /dev/avms diff --git a/README.md b/README.md index 7a3924e..2cc8f44 100644 --- a/README.md +++ b/README.md @@ -70,9 +70,9 @@ There is a makefile in the AndServer main directory with following targets: > > **install** - copies 'AndServer' file to the '/usr/bin' directory and 'andserver.conf.example' to '/etc/andserver.conf' > -> **distclean** - deletes '/usr/bin/AndServer' and '/etc/andserver.conf'. +> **distclean** - deletes '/usr/bin/AndServer', '/etc/andserver.conf', '/etc/andserver/server.pem' and '/etc/andserver/client.pem'. - Correct order of installation is: install, certificate, androidbks. + Correct order of installation is: install, certificate, clientcert, certinstall and androidbks. If you are using Gentoo or Ubuntu distribution there are also targets, allowing you to set up the server for automatic start at boot. These are gentoo-install,gentoo-uninstall and ubuntu-install,ubuntu-uninstall. These install targets should be used