core: refactoring: add job_type_to_access_method
authorEvgeny Vereshchagin <evvers@ya.ru>
Sun, 31 Jan 2016 13:26:09 +0000 (13:26 +0000)
committerEvgeny Vereshchagin <evvers@ya.ru>
Sun, 31 Jan 2016 14:23:46 +0000 (14:23 +0000)
remove duplication

src/core/dbus-unit.c
src/core/job.c
src/core/job.h

index 9862f6e..7c7b50b 100644 (file)
@@ -460,8 +460,8 @@ int bus_unit_method_start_generic(
 
         r = mac_selinux_unit_access_check(
                         u, message,
-                        (job_type == JOB_START || job_type == JOB_RESTART || job_type == JOB_TRY_RESTART) ? "start" :
-                        job_type == JOB_STOP ? "stop" : "reload", error);
+                        job_type_to_access_method(job_type),
+                        error);
         if (r < 0)
                 return r;
 
@@ -995,8 +995,8 @@ int bus_unit_queue_job(
 
         r = mac_selinux_unit_access_check(
                         u, message,
-                        (type == JOB_START || type == JOB_RESTART || type == JOB_TRY_RESTART) ? "start" :
-                        type == JOB_STOP ? "stop" : "reload", error);
+                        job_type_to_access_method(type),
+                        error);
         if (r < 0)
                 return r;
 
index 4e111ff..d8fdf1b 100644 (file)
@@ -1240,3 +1240,15 @@ static const char* const job_result_table[_JOB_RESULT_MAX] = {
 };
 
 DEFINE_STRING_TABLE_LOOKUP(job_result, JobResult);
+
+const char* job_type_to_access_method(JobType t) {
+        assert(t >= 0);
+        assert(t < _JOB_TYPE_MAX);
+
+        if (IN_SET(t, JOB_START, JOB_RESTART, JOB_TRY_RESTART))
+                return "start";
+        else if (t == JOB_STOP)
+                return "stop";
+        else
+                return "reload";
+}
index 52866fd..bbf5471 100644 (file)
@@ -240,3 +240,5 @@ const char* job_result_to_string(JobResult t) _const_;
 JobResult job_result_from_string(const char *s) _pure_;
 
 int job_get_timeout(Job *j, uint64_t *timeout) _pure_;
+
+const char* job_type_to_access_method(JobType t);