aboutsummaryrefslogtreecommitdiffstats
path: root/src/cyn-protocol.c
blob: d5391ab1200ca2f7a28a8e58029a5a529da4e11e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/*
 * 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
	_ack_[] = "ack",
	_agent_[] = "agent",
	_ask_[] = "ask",
	_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",
	_reply_[] = "reply",
	_rollback_[] = "rollback",
	_set_[] = "set",
	_sub_[] = "sub",
	_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;
}