int Client_init(PyClient *self, PyObject *args, PyObject *kwargs) { /* Args: def __init__(self, address, protocol = "text", codec = "default"): */ self->client = NULL; self->host = NULL; self->maxSize = MAX_ITEM_SIZE; char *address; PRINTMARK(); static char *kwlist[] = {"address", "max_item_size", NULL}; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|i", kwlist, &address, &self->maxSize)) { PRINTMARK(); return -1; } PRINTMARK(); char *offset = strchr (address, ':'); if (offset == NULL) { PyErr_Format(umemcache_MemcachedError, "Invalid argument for address"); return -1; } char *port = address + (offset - address) + 1; self->host = PyString_FromStringAndSize(address, (offset - address)); self->port = atoi(port); Py_INCREF(self->host); PRINTMARK(); self->sock = (PyObject *) API_createSocket(AF_INET, SOCK_STREAM, 0); PRINTMARK(); self->desc.prv = self; self->desc.connect = API_connect; self->desc.destroy = API_destroy; self->desc.recv = API_recv; self->desc.send = API_send; PRINTMARK(); self->client = new Client(&self->desc); PRINTMARK(); return 0; }
int Client_init(PyClient *self, PyObject *args) { /* Args: def __init__(self, address, protocol = "text", codec = "default"): */ self->client = NULL; self->host = NULL; char *address; PRINTMARK(); if (!PyArg_ParseTuple (args, "s", &address)) { PRINTMARK(); return -1; } PRINTMARK(); char *offset = strchr (address, ':'); if (offset == NULL) { PyErr_Format(PyExc_RuntimeError, "Invalid argument for address"); return -1; } char *port = address + (offset - address) + 1; self->host = PyString_FromStringAndSize(address, (offset - address)); self->port = atoi(port); Py_INCREF(self->host); PRINTMARK(); self->sock = (PyObject *) API_createSocket(AF_INET, SOCK_STREAM, 0); PRINTMARK(); self->sockfd = API_getSocketFD(self->sock); self->desc.prv = self; self->desc.connect = API_connect; self->desc.destroy = API_destroy; self->desc.recv = API_recv; self->desc.send = API_send; PRINTMARK(); self->client = new Client(&self->desc); PRINTMARK(); return 0; }