blob: f8d75be79c4d9185ee24187bdd5b278960ec7810 [file] [log] [blame]
Emeric Vigier2f625822012-08-06 11:09:52 -04001/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
2/* config-parser-common.c Common defines and routines for config file parsing
3 *
4 * Copyright (C) 2007 Red Hat, Inc.
5 *
6 * Licensed under the Academic Free License version 2.1
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 *
22 */
23
24#include <config.h>
25#include <dbus/dbus-internals.h>
26#include <string.h>
27
28#include "config-parser-common.h"
29#include "utils.h"
30
31ElementType
32bus_config_parser_element_name_to_type (const char *name)
33{
34 if (strcmp (name, "none") == 0)
35 {
36 return ELEMENT_NONE;
37 }
38 else if (strcmp (name, "busconfig") == 0)
39 {
40 return ELEMENT_BUSCONFIG;
41 }
42 else if (strcmp (name, "user") == 0)
43 {
44 return ELEMENT_USER;
45 }
46 else if (strcmp (name, "auth") == 0)
47 {
48 return ELEMENT_AUTH;
49 }
50 else if (strcmp (name, "type") == 0)
51 {
52 return ELEMENT_TYPE;
53 }
54 else if (strcmp (name, "fork") == 0)
55 {
56 return ELEMENT_FORK;
57 }
58 else if (strcmp (name, "pidfile") == 0)
59 {
60 return ELEMENT_PIDFILE;
61 }
62 else if (strcmp (name, "listen") == 0)
63 {
64 return ELEMENT_LISTEN;
65 }
66 else if (strcmp (name, "auth") == 0)
67 {
68 return ELEMENT_AUTH;
69 }
70 else if (strcmp (name, "allow") == 0)
71 {
72 return ELEMENT_ALLOW;
73 }
74 else if (strcmp (name, "deny") == 0)
75 {
76 return ELEMENT_DENY;
77 }
78 else if (strcmp (name, "servicehelper") == 0)
79 {
80 return ELEMENT_SERVICEHELPER;
81 }
82 else if (strcmp (name, "includedir") == 0)
83 {
84 return ELEMENT_INCLUDEDIR;
85 }
86 else if (strcmp (name, "standard_session_servicedirs") == 0)
87 {
88 return ELEMENT_STANDARD_SESSION_SERVICEDIRS;
89 }
90 else if (strcmp (name, "standard_system_servicedirs") == 0)
91 {
92 return ELEMENT_STANDARD_SYSTEM_SERVICEDIRS;
93 }
94 else if (strcmp (name, "servicedir") == 0)
95 {
96 return ELEMENT_SERVICEDIR;
97 }
98 else if (strcmp (name, "include") == 0)
99 {
100 return ELEMENT_INCLUDE;
101 }
102 else if (strcmp (name, "policy") == 0)
103 {
104 return ELEMENT_POLICY;
105 }
106 else if (strcmp (name, "limit") == 0)
107 {
108 return ELEMENT_LIMIT;
109 }
110 else if (strcmp (name, "selinux") == 0)
111 {
112 return ELEMENT_SELINUX;
113 }
114 else if (strcmp (name, "associate") == 0)
115 {
116 return ELEMENT_ASSOCIATE;
117 }
118 else if (strcmp (name, "syslog") == 0)
119 {
120 return ELEMENT_SYSLOG;
121 }
122 else if (strcmp (name, "keep_umask") == 0)
123 {
124 return ELEMENT_KEEP_UMASK;
125 }
126 else if (strcmp (name, "allow_anonymous") == 0)
127 {
128 return ELEMENT_ALLOW_ANONYMOUS;
129 }
130 return ELEMENT_NONE;
131}
132
133const char*
134bus_config_parser_element_type_to_name (ElementType type)
135{
136 switch (type)
137 {
138 case ELEMENT_NONE:
139 return NULL;
140 case ELEMENT_BUSCONFIG:
141 return "busconfig";
142 case ELEMENT_INCLUDE:
143 return "include";
144 case ELEMENT_USER:
145 return "user";
146 case ELEMENT_LISTEN:
147 return "listen";
148 case ELEMENT_AUTH:
149 return "auth";
150 case ELEMENT_POLICY:
151 return "policy";
152 case ELEMENT_LIMIT:
153 return "limit";
154 case ELEMENT_ALLOW:
155 return "allow";
156 case ELEMENT_DENY:
157 return "deny";
158 case ELEMENT_FORK:
159 return "fork";
160 case ELEMENT_PIDFILE:
161 return "pidfile";
162 case ELEMENT_STANDARD_SESSION_SERVICEDIRS:
163 return "standard_session_servicedirs";
164 case ELEMENT_STANDARD_SYSTEM_SERVICEDIRS:
165 return "standard_system_servicedirs";
166 case ELEMENT_SERVICEDIR:
167 return "servicedir";
168 case ELEMENT_SERVICEHELPER:
169 return "servicehelper";
170 case ELEMENT_INCLUDEDIR:
171 return "includedir";
172 case ELEMENT_TYPE:
173 return "type";
174 case ELEMENT_SELINUX:
175 return "selinux";
176 case ELEMENT_ASSOCIATE:
177 return "associate";
178 case ELEMENT_SYSLOG:
179 return "syslog";
180 case ELEMENT_KEEP_UMASK:
181 return "keep_umask";
182 case ELEMENT_ALLOW_ANONYMOUS:
183 return "allow_anonymous";
184 }
185
186 _dbus_assert_not_reached ("bad element type");
187
188 return NULL;
189}
190