FEATURE initial python3 bindings commit
- integration into build system
- basic functionality to connect to the server and provide information
about the NETCONF session
- no NETCONF operation (except the implicit close-session) supported yet
diff --git a/python/netconf.h b/python/netconf.h
new file mode 100644
index 0000000..0d5a3bc
--- /dev/null
+++ b/python/netconf.h
@@ -0,0 +1,72 @@
+/**
+ * @file netconf.h
+ * @author Radek Krejci <rkrejci@cesnet.cz>
+ * @brief Main header of Python3 bindings for libnetconf2 (client-side)
+ *
+ * Copyright (c) 2017 CESNET, z.s.p.o.
+ *
+ * This source code is licensed under BSD 3-Clause License (the "License").
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://opensource.org/licenses/BSD-3-Clause
+ */
+
+#ifndef PYNETCONF_H_
+#define PYNETCONF_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef NC_ENABLED_SSH
+#define NC_ENABLED_SSH
+#endif
+#ifndef NC_ENABLED_TLS
+#define NC_ENABLED_TLS
+#endif
+
+#include "../src/netconf.h"
+#include "../src/log.h"
+#include "../src/messages_client.h"
+#include "../src/session_client.h"
+#include "../src/session_client_ch.h"
+
+#ifdef UNUSED
+#elif defined(__GNUC__)
+# define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))
+#elif defined(__LCLINT__)
+# define UNUSED(x) /*@unused@*/ x
+#elif defined(__cplusplus)
+# define UNUSED(x)
+#else
+# define UNUSED(x) x
+#endif
+
+typedef struct {
+ PyObject_HEAD
+ PyObject *username; /* username */
+ PyObject *password; /* plaintext password for authentication or unlocking a private key */
+ PyObject *pubkeys; /* public keys for the key authentication, both pubkey and privkey must be set */
+ PyObject *privkeys; /* private key for the key authentication, both pubkey and privkey must be set */
+} ncSSHObject;
+
+typedef struct {
+ PyObject_HEAD
+ PyObject *cert_file; /* path to the client certificate file */
+ PyObject *key_file; /* path to the file with the private key for the client certificate */
+ PyObject *ca_file; /* path to the file with the CA certificate(s) used to verify the server certificate */
+ PyObject *ca_dir; /* path to the directory with the CA certificate(s) used to verify the server certificate */
+ PyObject *crl_file; /* path to the file with the CRL certificate(s) used to check for revocated server certificates */
+ PyObject *crl_dir; /* path to the directory with the CRL certificate(s) used to check for revocated server certificates */
+} ncTLSObject;
+
+extern PyTypeObject ncSSHType;
+extern PyTypeObject ncTLSType;
+extern PyTypeObject ncSessionType;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PYNETCONF_H_ */