summaryrefslogtreecommitdiffstats
path: root/src/cyn-protocol.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cyn-protocol.c')
-rw-r--r--src/cyn-protocol.c119
1 files changed, 119 insertions, 0 deletions
diff --git a/src/cyn-protocol.c b/src/cyn-protocol.c
new file mode 100644
index 0000000..b7f4c01
--- /dev/null
+++ b/src/cyn-protocol.c
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2018 "IoT.bzh"
+ * Author José Bollo <jose.bollo@iot.bzh>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/******************************************************************************/
+/******************************************************************************/
+/* IMPLEMENTATION OF COMMON PROTOCOL VALUES, CONSTANTS, PROCESSES */
+/******************************************************************************/
+/******************************************************************************/
+
+#include <stdlib.h>
+
+#include "cyn-protocol.h"
+
+const char
+ _agent_[] = "agent",
+ _check_[] = "check",
+ _clear_[] = "clear",
+ _commit_[] = "commit",
+ _cynagora_[] = "cynagora",
+ _done_[] = "done",
+ _drop_[] = "drop",
+ _enter_[] = "enter",
+ _error_[] = "error",
+ _get_[] = "get",
+ _item_[] = "item",
+ _leave_[] = "leave",
+ _log_[] = "log",
+ _no_[] = "no",
+ _off_[] = "off",
+ _on_[] = "on",
+ _rollback_[] = "rollback",
+ _set_[] = "set",
+ _test_[] = "test",
+ _yes_[] = "yes";
+
+
+#if !defined(DEFAULT_SOCKET_SCHEME)
+# define DEFAULT_SOCKET_SCHEME "unix"
+#endif
+
+#if !defined(DEFAULT_SOCKET_DIR)
+# define DEFAULT_SOCKET_DIR "/var/run/cynagora"
+#endif
+
+#define DEF_PREFIX DEFAULT_SOCKET_SCHEME":"DEFAULT_SOCKET_DIR"/"
+
+#if !defined(DEFAULT_CHECK_SOCKET_BASE)
+# define DEFAULT_CHECK_SOCKET_BASE "cynagora.check"
+#endif
+#if !defined(DEFAULT_ADMIN_SOCKET_BASE)
+# define DEFAULT_ADMIN_SOCKET_BASE "cynagora.admin"
+#endif
+#if !defined(DEFAULT_AGENT_SOCKET_BASE)
+# define DEFAULT_AGENT_SOCKET_BASE "cynagora.agent"
+#endif
+
+
+#if !defined(DEFAULT_CHECK_SOCKET_SPEC)
+# define DEFAULT_CHECK_SOCKET_SPEC DEF_PREFIX DEFAULT_CHECK_SOCKET_BASE
+#endif
+#if !defined(DEFAULT_ADMIN_SOCKET_SPEC)
+# define DEFAULT_ADMIN_SOCKET_SPEC DEF_PREFIX DEFAULT_ADMIN_SOCKET_BASE
+#endif
+#if !defined(DEFAULT_AGENT_SOCKET_SPEC)
+# define DEFAULT_AGENT_SOCKET_SPEC DEF_PREFIX DEFAULT_AGENT_SOCKET_BASE
+#endif
+
+const char
+ cyn_default_socket_scheme[] = DEFAULT_SOCKET_SCHEME,
+ cyn_default_socket_dir[] = DEFAULT_SOCKET_DIR,
+ cyn_default_check_socket_base[] = DEFAULT_CHECK_SOCKET_BASE,
+ cyn_default_admin_socket_base[] = DEFAULT_ADMIN_SOCKET_BASE,
+ cyn_default_agent_socket_base[] = DEFAULT_AGENT_SOCKET_BASE,
+ cyn_default_check_socket_spec[] = DEFAULT_CHECK_SOCKET_SPEC,
+ cyn_default_admin_socket_spec[] = DEFAULT_ADMIN_SOCKET_SPEC,
+ cyn_default_agent_socket_spec[] = DEFAULT_AGENT_SOCKET_SPEC;
+
+/* see cynagora-protocol.h */
+const char *
+cyn_get_socket_check(
+ const char *value
+) {
+ return value
+ ?: secure_getenv("CYNAGORA_SOCKET_CHECK")
+ ?: cyn_default_check_socket_spec;
+}
+
+/* see cynagora-protocol.h */
+const char *
+cyn_get_socket_admin(
+ const char *value
+) {
+ return value
+ ?: secure_getenv("CYNAGORA_SOCKET_ADMIN")
+ ?: cyn_default_admin_socket_spec;
+}
+
+/* see cynagora-protocol.h */
+const char *
+cyn_get_socket_agent(
+ const char *value
+) {
+ return value
+ ?: secure_getenv("CYNAGORA_SOCKET_AGENT")
+ ?: cyn_default_agent_socket_spec;
+}