From 6f169212985c7e4880a0e3e54ba36e133d99b0ff Mon Sep 17 00:00:00 2001
From: Alexey Stratulat <--local>
Date: Mon, 5 Aug 2019 23:32:01 +0700
Subject: [PATCH] [*] Fixed problems with cross connections of header files.
 Improved dap_events wrapping; added wrapping for the following
 dap_events_socket_remove_and_delete, dap_events_kill_socket functions.

---
 include/dap_events_python.h         |  8 ++------
 include/dap_events_socket_python.h  |  9 +++++----
 include/libdap-server-core-python.h |  2 ++
 src/dap_events_python.c             | 14 ++++++++++++++
 4 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/include/dap_events_python.h b/include/dap_events_python.h
index 1924a623..80af2082 100644
--- a/include/dap_events_python.h
+++ b/include/dap_events_python.h
@@ -1,10 +1,8 @@
-#ifndef _DAP_EVENTS_PYTHON_H
-#define _DAP_EVENTS_PYTHON_H
-
+#pragma once
 
 #include "Python.h"
 #include "dap_events.h"
-//#include "dap_events_socket_python.h"
+#include "dap_events_socket_python.h"
 
 
 #ifdef __cplusplus
@@ -56,5 +54,3 @@ PyObject *dap_events_wait_py(PyObject *self, PyObject *args); //dap_events_t *sh
 #ifdef __cplusplus
 }
 #endif
-
-#endif
diff --git a/include/dap_events_socket_python.h b/include/dap_events_socket_python.h
index 4bd9cc79..d3968648 100644
--- a/include/dap_events_socket_python.h
+++ b/include/dap_events_socket_python.h
@@ -1,11 +1,14 @@
-#ifndef _DAP_EVENTS_SOCKET_PYTHON_H_
-#define _DAP_EVENTS_SOCKET_PYTHON_H_
+#pragma once
 
 #include "Python.h"
 #include "dap_events_socket.h"
 #include "dap_events_python.h"
 #include "dap_common.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct PyDapEventsSocket{
     PyObject_HEAD
     dap_events_socket_t *t_events_socket;
@@ -63,5 +66,3 @@ PyObject *dap_events_socket_shrink_buf_in_py(PyObject *self, PyObject *args);//d
 #ifdef __cplusplus
 }
 #endif
-
-#endif
diff --git a/include/libdap-server-core-python.h b/include/libdap-server-core-python.h
index 411e65e5..c96f4d27 100644
--- a/include/libdap-server-core-python.h
+++ b/include/libdap-server-core-python.h
@@ -60,6 +60,8 @@ static PyMethodDef DapServerCorePythonMethods[] = {
         {"eventsDellete", dap_events_delete_py, METH_VARARGS, ""},
         {"eventsStart", dap_events_start_py, METH_VARARGS, ""},
         {"eventsWait", dap_events_wait_py, METH_VARARGS, ""},
+        {"eventsSocketRemoveAndDelete", dap_events_socket_remove_and_delete_py, METH_VARARGS, ""},
+        {"eventsKillSocket", dap_events_kill_socket_py, METH_VARARGS, ""},
         /* Events Socket */
         {"eventsSocketInit", dap_events_socket_init_py, METH_NOARGS, ""},
         {"eventsSocketDeinit", dap_events_socket_deinit_py, METH_NOARGS, ""},
diff --git a/src/dap_events_python.c b/src/dap_events_python.c
index 0bf53073..726120f0 100644
--- a/src/dap_events_python.c
+++ b/src/dap_events_python.c
@@ -30,10 +30,24 @@ PyObject *dap_events_delete_py(PyObject *self, PyObject *args){
 }
 //void dap_events_socket_remove_and_delete( dap_events_socket_t* a_es );
 PyObject *dap_events_socket_remove_and_delete_py(PyObject *self, PyObject *args){
+    PyObject *in_obj;
+    PyObject *in_bool;
+    if (!PyArg_ParseTuple(args, "O|O", &in_obj, &in_bool)){
+        return NULL;
+    }
+    bool preserve_inheritor = true;
+    if (in_bool == Py_False)
+        preserve_inheritor = false;
+    dap_events_socket_remove_and_delete(((PyDapEventsSocketObject*)in_obj)->t_events_socket, preserve_inheritor);
     return PyLong_FromLong(0);
 }
 
 PyObject *dap_events_kill_socket_py(PyObject *self, PyObject *args){
+    PyObject *in_obj;
+    if (!PyArg_ParseTuple(args, "O", &in_obj)){
+        return NULL;
+    }
+    dap_events_kill_socket(((PyDapEventsSocketObject*)in_obj)->t_events_socket);
     return PyLong_FromLong(0);
 }
 
-- 
GitLab