1/* -*- 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
191