]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Define C structures for Python request and pair objects
authorNick Porter <nick@portercomputing.co.uk>
Wed, 16 Apr 2025 09:47:34 +0000 (10:47 +0100)
committerNick Porter <nick@portercomputing.co.uk>
Mon, 21 Apr 2025 11:30:20 +0000 (12:30 +0100)
src/modules/rlm_python/rlm_python.c

index 7dbb7e39a1236bce96d439574f3b766ec61d6fcf..f51108779ff5741a7f3c2dd5646b0ce1aadacc1e 100644 (file)
@@ -90,6 +90,25 @@ typedef struct {
        PyThreadState   *state;                 //!< Module instance/thread specific state.
 } rlm_python_thread_t;
 
+/** Additional fields for pairs
+ *
+ */
+typedef struct {
+       PyObject_HEAD                           //!< Common fields needed for every python object.
+       fr_dict_attr_t const    *da;            //!< dictionary attribute for this pair.
+       fr_pair_t               *vp;            //!< Real FreeRADIUS pair for this Python pair.
+       unsigned int            idx;            //!< Instance index.
+       PyObject                *parent;        //!< Parent object of this pair.
+} py_freeradius_pair_t;
+
+typedef struct {
+       PyObject_HEAD                           //!< Common fields needed for every python object.
+       PyObject                *request;       //!< Request list.
+       PyObject                *reply;         //!< Reply list.
+       PyObject                *control;       //!< Control list.
+       PyObject                *state;         //!< Session state list.
+} py_freeradius_request_t;
+
 static void                    *python_dlhandle;
 static PyThreadState           *global_interpreter;    //!< Our first interpreter.