From dd9697dbad37d647af35eb1770ff5b9d04dbde3e Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 7 Jan 2014 18:37:59 +0100 Subject: [PATCH] + Implement a lightweight TCP server --- src/Mod/Web/App/AppWebPy.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Mod/Web/App/AppWebPy.cpp b/src/Mod/Web/App/AppWebPy.cpp index a98281aa8..5587e1aef 100644 --- a/src/Mod/Web/App/AppWebPy.cpp +++ b/src/Mod/Web/App/AppWebPy.cpp @@ -26,6 +26,7 @@ #endif #include +#include #include #include @@ -71,6 +72,14 @@ static PyObject * startServer(PyObject *self, PyObject *args) int port=0; if (!PyArg_ParseTuple(args, "|si",&addr,&port)) return NULL; + if (port > USHRT_MAX) { + PyErr_SetString(PyExc_OverflowError, "port number is greater than maximum"); + return 0; + } + else if (port < 0) { + PyErr_SetString(PyExc_OverflowError, "port number is lower than 0"); + return 0; + } PY_TRY { AppServer* server = new AppServer(); @@ -84,10 +93,8 @@ static PyObject * startServer(PyObject *self, PyObject *args) return Py::new_reference_to(t); } else { - QString a = server->serverAddress().toString(); - quint16 p = server->serverPort(); server->deleteLater(); - PyErr_Format(PyExc_RuntimeError, "Server failed to listen at address %s and port %d", (const char*)a.toLatin1(), p); + PyErr_Format(PyExc_RuntimeError, "Server failed to listen at address %s and port %d", addr, port); return 0; } } PY_CATCH;