- unsigned int to_drop[128] = {CAP_NET_ADMIN,CAP_SYS_ADMIN,CAP_SYS_BOOT,CAP_MKNOD,CAP_MAC_ADMIN,CAP_SYS_MODULE};
+ unsigned int to_drop[128]
+ = {CAP_NET_ADMIN, CAP_SYS_ADMIN, CAP_SYS_BOOT,
+ CAP_MKNOD, CAP_MAC_ADMIN, CAP_SYS_MODULE};
if (prctl(PR_CAPBSET_DROP, to_drop[i], 0, 0, 0) == -1) {
perror("prctl");
return Py_BuildValue("i", 2);
if (prctl(PR_CAPBSET_DROP, to_drop[i], 0, 0, 0) == -1) {
perror("prctl");
return Py_BuildValue("i", 2);
sts = mount("none","/proc","proc",0,NULL);
return Py_BuildValue("i", sts);
sts = mount("none","/proc","proc",0,NULL);
return Py_BuildValue("i", sts);
- {"proc_mount", proc_mount, METH_VARARGS, "Mount a volume via the mount system call."},
- {"proc_umount", proc_umount, METH_VARARGS, "Umount a volume via the umount system call."},
- {"chcontext", chcontext, METH_VARARGS, "Switch into an lxc container."},
- {"drop_caps", drop_caps, METH_VARARGS, "Drop dangerous capabilities."},
- {"chfscontext", chfscontext, METH_VARARGS, "Switch into an lxc container."},
- {NULL, NULL, 0, NULL}
+ {"proc_mount", proc_mount, METH_VARARGS, "Mount a volume via the mount system call."},
+ {"proc_umount", proc_umount, METH_VARARGS, "Umount a volume via the umount system call."},
+ {"chcontext", chcontext, METH_VARARGS, "Switch into an lxc container."},
+ {"drop_caps", drop_caps, METH_VARARGS, "Drop dangerous capabilities."},
+ {"chfscontext", chfscontext, METH_VARARGS, "Switch into an lxc container."},
+ {NULL, NULL, 0, NULL}
-
-PyMODINIT_FUNC
-
-initsetns(void)
-{
- (void) Py_InitModule("setns", SetnsMethods);
+
+static struct PyModuleDef moduledef = {
+ PyModuleDef_HEAD_INIT,
+ "setns",
+ "http://git.onelab.eu/?p=lxc-userspace.git;a=summary",
+ -1,
+ SetnsMethods,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
+PyObject *PyInit_setns(void){
+ PyObject *module = PyModule_Create(&moduledef);
+ if (module == NULL)
+ return NULL;
+ return module;