summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2013-07-02 17:49:30 +0200
committerAndreas Schneider <asn@cryptomilk.org>2013-07-02 17:49:30 +0200
commit5fd8133a218441631ed1d6eb13755645ac8fb796 (patch)
treedbd77da3e3e4e9e0b9b65ccfe04efdd7db75c687
parentc731e1fa213c323a8e824fc57b4d1fc0c019928f (diff)
downloadsocket_wrapper-5fd8133a218441631ed1d6eb13755645ac8fb796.tar.gz
socket_wrapper-5fd8133a218441631ed1d6eb13755645ac8fb796.tar.xz
socket_wrapper-5fd8133a218441631ed1d6eb13755645ac8fb796.zip
src: Remove unused and obsolete files.
-rw-r--r--src/py_socket_wrapper.c883
-rw-r--r--src/socket.py50
-rw-r--r--src/socket_wrapper.h177
3 files changed, 0 insertions, 1110 deletions
diff --git a/src/py_socket_wrapper.c b/src/py_socket_wrapper.c
deleted file mode 100644
index f5742d3..0000000
--- a/src/py_socket_wrapper.c
+++ /dev/null
@@ -1,883 +0,0 @@
-/*
- * Copyright (C) Amitay Isaacs 2011
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of the author nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-
-/*
- Python interface to socket wrapper library.
-
- Passes all socket communication over unix domain sockets if the environment
- variable SOCKET_WRAPPER_DIR is set.
-*/
-
-#include <Python.h>
-#include <pytalloc.h>
-#include "replace/replace.h"
-#include "system/network.h"
-#include "socket_wrapper.h"
-
-/* There's no Py_ssize_t in 2.4, apparently */
-#if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION < 5
-typedef int Py_ssize_t;
-typedef inquiry lenfunc;
-typedef intargfunc ssizeargfunc;
-#endif
-
-#ifndef Py_RETURN_NONE
-#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None
-#endif
-
-#ifndef Py_TYPE /* Py_TYPE is only available on Python > 2.6 */
-#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
-#endif
-
-#ifndef PY_CHECK_TYPE
-#define PY_CHECK_TYPE(type, var, fail) \
- if (!PyObject_TypeCheck(var, type)) {\
- PyErr_Format(PyExc_TypeError, __location__ ": Expected type '%s' for '%s' of type '%s'", (type)->tp_name, #var, Py_TYPE(var)->tp_name); \
- fail; \
- }
-#endif
-
-staticforward PyTypeObject PySocket;
-
-static PyObject *py_socket_error;
-
-void initsocket_wrapper(void);
-
-static PyObject *py_socket_addr_to_tuple(struct sockaddr *addr, socklen_t len)
-{
- char host[256];
- char service[8];
- int status;
- PyObject *pyaddr;
-
- status = getnameinfo(addr, len, host, 255, service, 7, NI_NUMERICHOST|NI_NUMERICSERV);
- if (status < 0) {
- PyErr_SetString(py_socket_error, gai_strerror(status));
- return NULL;
- }
-
- pyaddr = PyTuple_New(2);
- if (pyaddr == NULL) {
- return PyErr_NoMemory();
- }
-
- PyTuple_SetItem(pyaddr, 0, PyString_FromString(host));
- PyTuple_SetItem(pyaddr, 1, PyInt_FromLong(atoi(service)));
-
- return pyaddr;
-}
-
-static bool py_socket_tuple_to_addr(PyObject *pyaddr, struct sockaddr *addr, socklen_t *len)
-{
- const char *host;
- char *service;
- in_port_t port;
- struct addrinfo *ainfo;
- int status;
-
- if (!PyTuple_Check(pyaddr)) {
- PyErr_SetString(PyExc_TypeError, "Expected a tuple");
- return false;
- }
-
- if (!PyArg_ParseTuple(pyaddr, "sH", &host, &port)) {
- return false;
- }
-
- service = talloc_asprintf(NULL, "%d", port);
- if (service == NULL) {
- PyErr_NoMemory();
- return false;
- }
-
- status = getaddrinfo(host, service, NULL, &ainfo);
- if (status < 0) {
- talloc_free(service);
- PyErr_SetString(py_socket_error, gai_strerror(status));
- return false;
- }
-
- talloc_free(service);
-
- memcpy(addr, ainfo->ai_addr, sizeof(struct sockaddr));
- *len = ainfo->ai_addrlen;
-
- freeaddrinfo(ainfo);
- return true;
-}
-
-
-static PyObject *py_socket_accept(pytalloc_Object *self, PyObject *args)
-{
- int *sock, *new_sock;
- struct sockaddr addr;
- socklen_t addrlen;
- PyObject *pysocket;
- PyObject *pyaddr;
- PyObject *pyret;
-
- sock = pytalloc_get_ptr(self);
-
- new_sock = talloc_zero(NULL, int);
- if (new_sock == NULL) {
- return PyErr_NoMemory();
- }
-
- *new_sock = swrap_accept(*sock, &addr, &addrlen);
- if (*new_sock < 0) {
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- if ((pysocket = pytalloc_steal(&PySocket, new_sock)) == NULL) {
- return PyErr_NoMemory();
- }
-
- pyret = PyTuple_New(2);
- if (pyret == NULL) {
- Py_DECREF(pysocket);
- return PyErr_NoMemory();
- }
-
- pyaddr = py_socket_addr_to_tuple(&addr, addrlen);
- if (pyaddr == NULL) {
- Py_DECREF(pysocket);
- Py_DECREF(pysocket);
- return NULL;
- }
-
- PyTuple_SetItem(pyret, 0, pysocket);
- PyTuple_SetItem(pyret, 1, pyaddr);
- return pyret;
-}
-
-static PyObject *py_socket_bind(pytalloc_Object *self, PyObject *args)
-{
- PyObject *pyaddr;
- int *sock;
- int status;
- struct sockaddr addr;
- socklen_t addrlen;
-
- if (!PyArg_ParseTuple(args, "O:bind", &pyaddr)) {
- return NULL;
- }
-
- if (!py_socket_tuple_to_addr(pyaddr, &addr, &addrlen)) {
- return NULL;
- }
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_bind(*sock, &addr, addrlen);
- if (status < 0) {
- PyErr_SetString(py_socket_error, "Unable to bind");
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-static PyObject *py_socket_close(pytalloc_Object *self, PyObject *args)
-{
- int *sock;
- int status;
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_close(*sock);
- if (status < 0) {
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- Py_RETURN_NONE;
-}
-
-static PyObject *py_socket_connect(pytalloc_Object *self, PyObject *args)
-{
- int *sock;
- PyObject *pyaddr;
- struct sockaddr addr;
- socklen_t addrlen;
- int status;
-
- if (!PyArg_ParseTuple(args, "O:connect", &pyaddr)) {
- return NULL;
- }
-
- if (!py_socket_tuple_to_addr(pyaddr, &addr, &addrlen)) {
- return NULL;
- }
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_connect(*sock, &addr, addrlen);
- if (status < 0) {
- PyErr_SetFromErrno(py_socket_error);
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-static PyObject *py_socket_connect_ex(pytalloc_Object *self, PyObject *args)
-{
- int *sock;
- PyObject *pyaddr;
- struct sockaddr addr;
- socklen_t addrlen;
- int status;
-
- if (!PyArg_ParseTuple(args, "O:connect", &pyaddr)) {
- return NULL;
- }
-
- if (!py_socket_tuple_to_addr(pyaddr, &addr, &addrlen)) {
- return NULL;
- }
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_connect(*sock, &addr, addrlen);
- if (status < 0) {
- return Py_BuildValue("%d", errno);
- }
-
- return Py_BuildValue("%d", 0);
-}
-
-static PyObject *py_socket_dup(pytalloc_Object *self, PyObject *args)
-{
- int *sock, *new_sock;
- PyObject *pysocket;
-
- sock = pytalloc_get_ptr(self);
-
- new_sock = talloc_zero(NULL, int);
- if (new_sock == NULL) {
- return PyErr_NoMemory();
- }
-
- *new_sock = swrap_dup(*sock);
- if (*new_sock < 0) {
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- pysocket = pytalloc_steal(&PySocket, new_sock);
- if (pysocket == NULL) {
- return PyErr_NoMemory();
- }
-
- return pysocket;
-}
-
-static PyObject *py_socket_dup2(pytalloc_Object *self, PyObject *args)
-{
- int *sock, *new_sock;
- PyObject *pysocket;
- int status;
-
- if (!PyArg_ParseTuple(args, "O", &pysocket)) {
- return NULL;
- }
-
- PY_CHECK_TYPE(&PySocket, pysocket, return NULL);
-
- sock = pytalloc_get_ptr(self);
- new_sock = pytalloc_get_ptr(pysocket);
-
- status = swrap_dup2(*sock, *new_sock);
- if (status < 0) {
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- Py_RETURN_NONE;
-}
-
-static PyObject *py_socket_fileno(pytalloc_Object *self, PyObject *args)
-{
- PyErr_SetString(py_socket_error, "Not Supported");
- return NULL;
-}
-
-static PyObject *py_socket_getpeername(pytalloc_Object *self, PyObject *args)
-{
- int *sock;
- struct sockaddr addr;
- socklen_t addrlen;
- int status;
- PyObject *pyaddr;
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_getpeername(*sock, &addr, &addrlen);
- if (status < 0) {
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- pyaddr = py_socket_addr_to_tuple(&addr, addrlen);
-
- return pyaddr;
-}
-
-static PyObject *py_socket_getsockname(pytalloc_Object *self, PyObject *args)
-{
- int *sock;
- struct sockaddr addr;
- socklen_t addrlen;
- int status;
- PyObject *pyaddr;
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_getsockname(*sock, &addr, &addrlen);
- if (status < 0) {
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- pyaddr = py_socket_addr_to_tuple(&addr, addrlen);
-
- return pyaddr;
-}
-
-static PyObject *py_socket_getsockopt(pytalloc_Object *self, PyObject *args)
-{
- int level, optname;
- int *sock;
- socklen_t optlen = 0, newlen;
- int optval;
- bool is_integer = false;
- char *buffer;
- PyObject *pyret;
- int status;
-
- if (!PyArg_ParseTuple(args, "ii|i:getsockopt", &level, &optname, &optlen)) {
- return NULL;
- }
-
- if (optlen == 0) {
- optlen = sizeof(int);
- is_integer = true;
- }
-
- buffer = talloc_zero_array(NULL, char, optlen);
- if (buffer == NULL) {
- return PyErr_NoMemory();
- }
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_getsockopt(*sock, level, optname, (void *)buffer, &newlen);
- if (status < 0) {
- talloc_free(buffer);
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- if (is_integer) {
- optval = *(int *)buffer;
- pyret = PyInt_FromLong(optval);
- } else {
- pyret = PyString_FromStringAndSize(buffer, optlen);
- }
-
- talloc_free(buffer);
-
- return pyret;
-}
-
-static PyObject *py_socket_gettimeout(pytalloc_Object *self, PyObject *args)
-{
- PyErr_SetString(py_socket_error, "Not Supported");
- return NULL;
-}
-
-static PyObject *py_socket_listen(pytalloc_Object *self, PyObject *args)
-{
- int backlog;
- int *sock;
- int status;
-
- if (!PyArg_ParseTuple(args, "i:listen", &backlog)) {
- return NULL;
- }
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_listen(*sock, backlog);
- if (status < 0) {
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- Py_RETURN_NONE;
-}
-
-static PyObject *py_socket_makefile(pytalloc_Object *self, PyObject *args)
-{
- PyErr_SetString(py_socket_error, "Not Supported");
- return NULL;
-}
-
-static PyObject *py_socket_read(pytalloc_Object *self, PyObject *args)
-{
- int bufsize, len;
- int *sock;
- char *buffer;
- PyObject *pyret;
-
- if (!PyArg_ParseTuple(args, "i:read", &bufsize)) {
- return NULL;
- }
-
- buffer = talloc_zero_array(NULL, char, bufsize);
- if (buffer == NULL) {
- return PyErr_NoMemory();
- }
-
- sock = pytalloc_get_ptr(self);
-
- len = swrap_read(*sock, buffer, bufsize);
- if (len < 0) {
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- pyret = PyString_FromStringAndSize(buffer, len);
-
- talloc_free(buffer);
-
- return pyret;
-}
-
-static PyObject *py_socket_recv(pytalloc_Object *self, PyObject *args)
-{
- int bufsize, flags, len;
- int *sock;
- char *buffer;
- PyObject *pyret;
-
- if (!PyArg_ParseTuple(args, "ii:recv", &bufsize, &flags)) {
- return NULL;
- }
-
- buffer = talloc_zero_array(NULL, char, bufsize);
- if (buffer == NULL) {
- return PyErr_NoMemory();
- }
-
- sock = pytalloc_get_ptr(self);
-
- len = swrap_recv(*sock, buffer, bufsize, flags);
- if (len < 0) {
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- pyret = PyString_FromStringAndSize(buffer, len);
-
- talloc_free(buffer);
-
- return pyret;
-}
-
-static PyObject *py_socket_recvfrom(pytalloc_Object *self, PyObject *args)
-{
- int bufsize, flags, len;
- int *sock;
- char *buffer;
- struct sockaddr from;
- socklen_t fromlen;
- PyObject *pybuf, *pyaddr, *pyret;
-
- if (!PyArg_ParseTuple(args, "ii:recvfrom", &bufsize, &flags)) {
- return NULL;
- }
-
- buffer = talloc_zero_array(NULL, char, bufsize);
- if (buffer == NULL) {
- return PyErr_NoMemory();
- }
-
- sock = pytalloc_get_ptr(self);
-
- fromlen = sizeof(struct sockaddr);
-
- len = swrap_recvfrom(*sock, buffer, bufsize, flags, &from, &fromlen);
- if (len < 0) {
- talloc_free(buffer);
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- pybuf = PyString_FromStringAndSize(buffer, len);
- if (pybuf == NULL) {
- talloc_free(buffer);
- return PyErr_NoMemory();
- }
-
- talloc_free(buffer);
-
- pyaddr = py_socket_addr_to_tuple(&from, fromlen);
- if (pyaddr == NULL) {
- Py_DECREF(pybuf);
- return NULL;
- }
-
- pyret = PyTuple_New(2);
- if (pyret == NULL) {
- Py_DECREF(pybuf);
- Py_DECREF(pyaddr);
- return PyErr_NoMemory();
- }
-
- PyTuple_SetItem(pyret, 0, pybuf);
- PyTuple_SetItem(pyret, 1, pyaddr);
-
- return pyret;
-}
-
-static PyObject *py_socket_send(pytalloc_Object *self, PyObject *args)
-{
- char *buffer;
- int len, flags;
- int *sock;
- int status;
-
- if (!PyArg_ParseTuple(args, "s#i:sendto", &buffer, &len, &flags)) {
- return NULL;
- }
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_send(*sock, buffer, len, flags);
- if (status < 0) {
- PyErr_SetFromErrno(py_socket_error);
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-static PyObject *py_socket_sendall(pytalloc_Object *self, PyObject *args)
-{
- char *buffer;
- int len, flags;
- int *sock;
- int status;
-
- if (!PyArg_ParseTuple(args, "s#i:sendall", &buffer, &len, &flags)) {
- return NULL;
- }
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_send(*sock, buffer, len, flags);
- if (status < 0) {
- PyErr_SetFromErrno(py_socket_error);
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-static PyObject *py_socket_sendto(pytalloc_Object *self, PyObject *args)
-{
- PyObject *pyaddr;
- char *buffer;
- int len, flags;
- int *sock;
- struct sockaddr addr;
- socklen_t addrlen;
- int status;
-
- if (!PyArg_ParseTuple(args, "s#iO:sendto", &buffer, &len, &flags, &pyaddr)) {
- return NULL;
- }
-
- if (!py_socket_tuple_to_addr(pyaddr, &addr, &addrlen)) {
- return NULL;
- }
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_sendto(*sock, buffer, len, flags, &addr, addrlen);
- if (status < 0) {
- PyErr_SetFromErrno(py_socket_error);
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-static PyObject *py_socket_setblocking(pytalloc_Object *self, PyObject *args)
-{
- PyErr_SetString(py_socket_error, "Not Supported");
- return NULL;
-}
-
-static PyObject *py_socket_setsockopt(pytalloc_Object *self, PyObject *args)
-{
- int level, optname;
- int *sock;
- PyObject *pyval;
- int optval;
- Py_ssize_t optlen;
- char *buffer;
- int status;
-
- if (!PyArg_ParseTuple(args, "iiO:getsockopt", &level, &optname, &pyval)) {
- return NULL;
- }
-
- if (PyInt_Check(pyval)) {
- optval = PyInt_AsLong(pyval);
- buffer = (char *)&optval;
- optlen = sizeof(int);
- } else {
- PyString_AsStringAndSize(pyval, &buffer, &optlen);
- }
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_setsockopt(*sock, level, optname, (void *)buffer, optlen);
- if (status < 0) {
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- Py_RETURN_NONE;
-}
-
-static PyObject *py_socket_settimeout(pytalloc_Object *self, PyObject *args)
-{
- PyErr_SetString(py_socket_error, "Not Supported");
- return NULL;
-}
-
-static PyObject *py_socket_shutdown(pytalloc_Object *self, PyObject *args)
-{
- PyErr_SetString(py_socket_error, "Not Supported");
- return NULL;
-}
-
-static PyObject *py_socket_write(pytalloc_Object *self, PyObject *args)
-{
- char *buffer;
- int len;
- int *sock;
- int status;
-
- if (!PyArg_ParseTuple(args, "s#:write", &buffer, &len)) {
- return NULL;
- }
-
- sock = pytalloc_get_ptr(self);
-
- status = swrap_send(*sock, buffer, len, 0);
- if (status < 0) {
- PyErr_SetFromErrno(py_socket_error);
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-
-static PyMethodDef py_socket_methods[] = {
- { "accept", (PyCFunction)py_socket_accept, METH_NOARGS,
- "accept() -> (socket object, address info)\n\n \
- Wait for an incoming connection." },
- { "bind", (PyCFunction)py_socket_bind, METH_VARARGS,
- "bind(address)\n\n \
- Bind the socket to a local address." },
- { "close", (PyCFunction)py_socket_close, METH_NOARGS,
- "close()\n\n \
- Close the socket." },
- { "connect", (PyCFunction)py_socket_connect, METH_VARARGS,
- "connect(address)\n\n \
- Connect the socket to a remote address." },
- { "connect_ex", (PyCFunction)py_socket_connect_ex, METH_VARARGS,
- "connect_ex(address)\n\n \
- Connect the socket to a remote address." },
- { "dup", (PyCFunction)py_socket_dup, METH_VARARGS,
- "dup() -> socket object\n\n \
- Return a new socket object connected to the same system resource." },
- { "dup2", (PyCFunction)py_socket_dup2, METH_VARARGS,
- "dup2(socket object) -> socket object\n\n \
- Return a new socket object connected to teh same system resource." },
- { "fileno", (PyCFunction)py_socket_fileno, METH_NOARGS,
- "fileno() -> file descriptor\n\n \
- Return socket's file descriptor." },
- { "getpeername", (PyCFunction)py_socket_getpeername, METH_NOARGS,
- "getpeername() -> address info\n\n \
- Return the address of the remote endpoint." },
- { "getsockname", (PyCFunction)py_socket_getsockname, METH_NOARGS,
- "getsockname() -> address info\n\n \
- Return the address of the local endpoing." },
- { "getsockopt", (PyCFunction)py_socket_getsockopt, METH_VARARGS,
- "getsockopt(level, option[, buffersize]) -> value\n\n \
- Get a socket option." },
- { "gettimeout", (PyCFunction)py_socket_gettimeout, METH_NOARGS,
- "gettimeout() -> value\n\n \
- Return the timeout in seconds associated with socket operations." },
- { "listen", (PyCFunction)py_socket_listen, METH_VARARGS,
- "listen(backlog)\n\n \
- Enable a server to accept connections." },
- { "makefile", (PyCFunction)py_socket_makefile, METH_NOARGS,
- "makefile() -> file object\n\n \
- Return a file object associated with the socket." },
- { "read", (PyCFunction)py_socket_read, METH_VARARGS,
- "read(buflen) -> data\n\n \
- Receive data." },
- { "recv", (PyCFunction)py_socket_recv, METH_VARARGS,
- "recv(buflen, flags) -> data\n\n \
- Receive data." },
- { "recvfrom", (PyCFunction)py_socket_recvfrom, METH_VARARGS,
- "recvfrom(buflen, flags) -> (data, sender address)\n\n \
- Receive data and sender's address." },
- { "send", (PyCFunction)py_socket_send, METH_VARARGS,
- "send(data, flags)\n\n \
- Send data." },
- { "sendall", (PyCFunction)py_socket_sendall, METH_VARARGS,
- "sendall(data, flags)\n\n \
- Send data." },
- { "sendto", (PyCFunction)py_socket_sendto, METH_VARARGS,
- "sendto(data, flags, addr)\n\n \
- Send data to a given address." },
- { "setblocking", (PyCFunction)py_socket_setblocking, METH_VARARGS,
- "setblocking(flag)\n\n \
- Set blocking or non-blocking mode of the socket." },
- { "setsockopt", (PyCFunction)py_socket_setsockopt, METH_VARARGS,
- "setsockopt(level, option, value)\n\n \
- Set a socket option." },
- { "settimeout", (PyCFunction)py_socket_settimeout, METH_VARARGS,
- "settimeout(value)\n\n \
- Set a timeout on socket blocking operations." },
- { "shutdown", (PyCFunction)py_socket_shutdown, METH_VARARGS,
- "shutdown(how)\n\n \
- Shut down one or both halves of the connection." },
- { "write", (PyCFunction)py_socket_write, METH_VARARGS,
- "write(data)\n\n \
- Send data." },
- { NULL },
-};
-
-
-static PyObject *py_socket_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- int family, sock_type, protocol;
- int *sock;
- PyObject *pysocket;
-
- if (!PyArg_ParseTuple(args, "iii:socket", &family, &sock_type, &protocol)) {
- return NULL;
- }
-
- sock = talloc_zero(NULL, int);
- if (sock == NULL) {
- return PyErr_NoMemory();
- }
-
- *sock = swrap_socket(family, sock_type, protocol);
- if (*sock < 0) {
- return PyErr_SetFromErrno(py_socket_error);
- }
-
- if ((pysocket = pytalloc_steal(type, sock)) == NULL) {
- return PyErr_NoMemory();
- }
-
- return pysocket;
-}
-
-
-static PyTypeObject PySocket = {
- .tp_name = "socket_wrapper.socket",
- .tp_basicsize = sizeof(pytalloc_Object),
- .tp_flags = Py_TPFLAGS_DEFAULT,
- .tp_methods = py_socket_methods,
- .tp_new = py_socket_new,
- .tp_doc = "socket(family, type, proto) -> socket object\n\n Open a socket of the give type.",
-};
-
-static PyObject *py_socket_wrapper_dir(PyObject *self)
-{
- const char *dir;
-
- dir = socket_wrapper_dir();
-
- return PyString_FromString(dir);
-}
-
-static PyObject *py_socket_wrapper_default_interface(PyObject *self)
-{
- unsigned int id;
-
- id = socket_wrapper_default_iface();
-
- return PyInt_FromLong(id);
-}
-
-
-static PyMethodDef py_socket_wrapper_methods[] = {
- { "dir", (PyCFunction)py_socket_wrapper_dir, METH_NOARGS,
- "dir() -> path\n\n \
- Return socket_wrapper directory." },
- { "default_iface", (PyCFunction)py_socket_wrapper_default_interface, METH_NOARGS,
- "default_iface() -> id\n\n \
- Return default interface id." },
- { NULL },
-};
-
-void initsocket_wrapper(void)
-{
- PyObject *m;
- char exception_name[] = "socket_wrapper.error";
-
- PyTypeObject *talloc_type = pytalloc_GetObjectType();
- if (talloc_type == NULL) {
- return;
- }
-
- PySocket.tp_base = talloc_type;
- if (PyType_Ready(&PySocket) < 0) {
- return;
- }
-
- m = Py_InitModule3("socket_wrapper", py_socket_wrapper_methods, "Socket wrapper");
- if (m == NULL) {
- return;
- }
-
- py_socket_error = PyErr_NewException(exception_name, NULL, NULL);
- Py_INCREF(py_socket_error);
- PyModule_AddObject(m, "error", py_socket_error);
-
- Py_INCREF(&PySocket);
- PyModule_AddObject(m, "socket", (PyObject *)&PySocket);
-}
diff --git a/src/socket.py b/src/socket.py
deleted file mode 100644
index ccbb820..0000000
--- a/src/socket.py
+++ /dev/null
@@ -1,50 +0,0 @@
-# Wrapper for socket wrapper (based on python socket wrapper)
-# Copyright (C) Amitay Isaacs 2011
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-import _socket
-from _socket import *
-
-from samba.socket_wrapper import socket
-
-
-def getfqdn(name=''):
- """Get fully qualified domain name from name.
-
- An empty argument is interpreted as meaning the local host.
-
- First the hostname returned by gethostbyaddr() is checked, then
- possibly existing aliases. In case no FQDN is available, hostname
- from gethostname() is returned.
- """
- name = name.strip()
- if not name or name == '0.0.0.0':
- name = gethostname()
- try:
- hostname, aliases, ipaddrs = gethostbyaddr(name)
- except error:
- pass
- else:
- aliases.insert(0, hostname)
- for name in aliases:
- if '.' in name:
- break
- else:
- name = hostname
- return name
-
-
-_GLOBAL_DEFAULT_TIMEOUT = object()
diff --git a/src/socket_wrapper.h b/src/socket_wrapper.h
deleted file mode 100644
index 0b5a6f5..0000000
--- a/src/socket_wrapper.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (C) Jelmer Vernooij 2005 <jelmer@samba.org>
- * Copyright (C) Stefan Metzmacher 2006 <metze@samba.org>
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of the author nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-
-#ifndef __SOCKET_WRAPPER_H__
-#define __SOCKET_WRAPPER_H__
-
-const char *socket_wrapper_dir(void);
-unsigned int socket_wrapper_default_iface(void);
-int swrap_socket(int family, int type, int protocol);
-int swrap_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
-int swrap_connect(int s, const struct sockaddr *serv_addr, socklen_t addrlen);
-int swrap_bind(int s, const struct sockaddr *myaddr, socklen_t addrlen);
-int swrap_listen(int s, int backlog);
-int swrap_getpeername(int s, struct sockaddr *name, socklen_t *addrlen);
-int swrap_getsockname(int s, struct sockaddr *name, socklen_t *addrlen);
-int swrap_getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen);
-int swrap_setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen);
-ssize_t swrap_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen);
-ssize_t swrap_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
-ssize_t swrap_sendmsg(int s, const struct msghdr *msg, int flags);
-ssize_t swrap_recvmsg(int s, struct msghdr *msg, int flags);
-int swrap_ioctl(int s, int req, void *ptr);
-ssize_t swrap_recv(int s, void *buf, size_t len, int flags);
-ssize_t swrap_read(int s, void *buf, size_t len);
-ssize_t swrap_send(int s, const void *buf, size_t len, int flags);
-int swrap_readv(int s, const struct iovec *vector, size_t count);
-ssize_t swrap_writev(int s, const struct iovec *vector, size_t count);
-int swrap_close(int);
-int swrap_dup(int oldfd);
-int swrap_dup2(int oldfd, int newfd);
-
-#ifdef SOCKET_WRAPPER_REPLACE
-
-#ifdef accept
-#undef accept
-#endif
-#define accept(s,addr,addrlen) swrap_accept(s,addr,addrlen)
-
-#ifdef connect
-#undef connect
-#endif
-#define connect(s,serv_addr,addrlen) swrap_connect(s,serv_addr,addrlen)
-
-#ifdef bind
-#undef bind
-#endif
-#define bind(s,myaddr,addrlen) swrap_bind(s,myaddr,addrlen)
-
-#ifdef listen
-#undef listen
-#endif
-#define listen(s,blog) swrap_listen(s,blog)
-
-#ifdef getpeername
-#undef getpeername
-#endif
-#define getpeername(s,name,addrlen) swrap_getpeername(s,name,addrlen)
-
-#ifdef getsockname
-#undef getsockname
-#endif
-#define getsockname(s,name,addrlen) swrap_getsockname(s,name,addrlen)
-
-#ifdef getsockopt
-#undef getsockopt
-#endif
-#define getsockopt(s,level,optname,optval,optlen) swrap_getsockopt(s,level,optname,optval,optlen)
-
-#ifdef setsockopt
-#undef setsockopt
-#endif
-#define setsockopt(s,level,optname,optval,optlen) swrap_setsockopt(s,level,optname,optval,optlen)
-
-#ifdef recvfrom
-#undef recvfrom
-#endif
-#define recvfrom(s,buf,len,flags,from,fromlen) swrap_recvfrom(s,buf,len,flags,from,fromlen)
-
-#ifdef sendto
-#undef sendto
-#endif
-#define sendto(s,buf,len,flags,to,tolen) swrap_sendto(s,buf,len,flags,to,tolen)
-
-#ifdef sendmsg
-#undef sendmsg
-#endif
-#define sendmsg(s,msg,flags) swrap_sendmsg(s,msg,flags)
-
-#ifdef recvmsg
-#undef recvmsg
-#endif
-#define recvmsg(s,msg,flags) swrap_recvmsg(s,msg,flags)
-
-#ifdef ioctl
-#undef ioctl
-#endif
-#define ioctl(s,req,ptr) swrap_ioctl(s,req,ptr)
-
-#ifdef recv
-#undef recv
-#endif
-#define recv(s,buf,len,flags) swrap_recv(s,buf,len,flags)
-
-#ifdef read
-#undef read
-#endif
-#define read(s,buf,len) swrap_read(s,buf,len)
-
-#ifdef send
-#undef send
-#endif
-#define send(s,buf,len,flags) swrap_send(s,buf,len,flags)
-
-#ifdef readv
-#undef readv
-#endif
-#define readv(s, vector, count) swrap_readv(s,vector, count)
-
-#ifdef writev
-#undef writev
-#endif
-#define writev(s, vector, count) swrap_writev(s,vector, count)
-
-#ifdef socket
-#undef socket
-#endif
-#define socket(domain,type,protocol) swrap_socket(domain,type,protocol)
-
-#ifdef close
-#undef close
-#endif
-#define close(s) swrap_close(s)
-
-#ifdef dup
-#undef dup
-#endif
-#define dup(s) swrap_dup(s)
-
-#ifdef dup2
-#undef dup2
-#endif
-#define dup2(s, s2) swrap_dup2(s, s2)
-
-#endif /* SOCKET_WRAPPER_REPLACE */
-#endif /* __SOCKET_WRAPPER_H__ */