ry / ebb fork watch download tarball
public
Description: web server
Homepage: http://ebb.rubyforge.org
Clone URL: git://github.com/ry/ebb.git
Ryan Dahl (author)
Mon Mar 03 06:25:29 -0800 2008
commit  6b67ca61e0da5ad0b69ee5aff0a116ca5c6db8d2
tree    1dbbdd26a43050028ae31a75a51988ecbcacb2d8
parent  00b3ac3777772e2092ecbc495dc1368ef9bdae67
ebb / src / ebb_python.c
100644 78 lines (71 sloc) 2.645 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/* A python binding to the ebb web server
* Copyright (c) 2008 Ry Dahl. This software is released under the MIT
* License. See README file for details.
*/
#include <Python.h>
#include <ebb.h>
#include <ev.h>
 
typedef struct {
    PyObject_HEAD
    ebb_server *server;
} Server;
 
static PyMethodDef Server_methods[] = {
    {"name", (PyCFunction)Noddy_name, METH_NOARGS,
     "Return the name, combining the first and last name"
    },
    {NULL} /* Sentinel */
};
 
static PyTypeObject ServerType = {
    PyObject_HEAD_INIT(NULL)
    0, /*ob_size*/
    "ebb.Server", /*tp_name*/
    sizeof(Server), /*tp_basicsize*/
    0, /*tp_itemsize*/
    (destructor)Server_dealloc, /*tp_dealloc*/
    0, /*tp_print*/
    0, /*tp_getattr*/
    0, /*tp_setattr*/
    0, /*tp_compare*/
    0, /*tp_repr*/
    0, /*tp_as_number*/
    0, /*tp_as_sequence*/
    0, /*tp_as_mapping*/
    0, /*tp_hash */
    0, /*tp_call*/
    0, /*tp_str*/
    0, /*tp_getattro*/
    0, /*tp_setattro*/
    0, /*tp_as_buffer*/
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
    "Ebb Server", /* tp_doc */
    0, /* tp_traverse */
    0, /* tp_clear */
    0, /* tp_richcompare */
    0, /* tp_weaklistoffset */
    0, /* tp_iter */
    0, /* tp_iternext */
    Server_methods, /* tp_methods */
    0, /* tp_members */
    0, /* tp_getset */
    0, /* tp_base */
    0, /* tp_dict */
    0, /* tp_descr_get */
    0, /* tp_descr_set */
    0, /* tp_dictoffset */
    (initproc)Server_init, /* tp_init */
    0, /* tp_alloc */
    Server_new, /* tp_new */
};
 
initebb(void)
{
  PyObject *m, *d, *tmp;
  ServerType.ob_type = &PyType_Type;
 
  m = Py_InitModule("Ebb", GeoIP_Class_methods);
  d = PyModule_GetDict(m);
 
  tmp = PyInt_FromLong(0);
  PyDict_SetItemString(d, "GEOIP_STANDARD", tmp);
  Py_DECREF(tmp);
 
  tmp = PyInt_FromLong(1);
  PyDict_SetItemString(d, "GEOIP_MEMORY_CACHE", tmp);
  Py_DECREF(tmp);
}