Convert EINPROGRESS to proper error message
[platform/upstream/connman.git] / src / error.c
1 /*
2  *
3  *  Connection Manager
4  *
5  *  Copyright (C) 2007-2009  Intel Corporation. All rights reserved.
6  *
7  *  This program is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License version 2 as
9  *  published by the Free Software Foundation.
10  *
11  *  This program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with this program; if not, write to the Free Software
18  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19  *
20  */
21
22 #ifdef HAVE_CONFIG_H
23 #include <config.h>
24 #endif
25
26 #include <errno.h>
27 #include <string.h>
28
29 #include <gdbus.h>
30
31 #include "connman.h"
32
33 DBusMessage *__connman_error_failed(DBusMessage *msg, int errnum)
34 {
35         const char *str = strerror(errnum);
36
37         switch (errnum) {
38         case EACCES:
39                 return __connman_error_permission_denied(msg);
40         case EINVAL:
41                 return __connman_error_invalid_arguments(msg);
42         case EINPROGRESS:
43                 return __connman_error_in_progress(msg);
44         }
45
46         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE
47                                                         ".Failed", str);
48 }
49
50 DBusMessage *__connman_error_invalid_arguments(DBusMessage *msg)
51 {
52         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE
53                                 ".InvalidArguments", "Invalid arguments");
54 }
55
56 DBusMessage *__connman_error_permission_denied(DBusMessage *msg)
57 {
58         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE
59                                 ".PermissionDenied", "Permission denied");
60 }
61
62 DBusMessage *__connman_error_not_supported(DBusMessage *msg)
63 {
64         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE
65                                         ".NotSupported", "Not supported");
66 }
67
68 DBusMessage *__connman_error_not_implemented(DBusMessage *msg)
69 {
70         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE
71                                         ".NotImplemented", "Not implemented");
72 }
73
74 DBusMessage *__connman_error_no_carrier(DBusMessage *msg)
75 {
76         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE
77                                                 ".NoCarrier", "No carrier");
78 }
79
80 DBusMessage *__connman_error_in_progress(DBusMessage *msg)
81 {
82         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE
83                                                 ".InProgress", "In progress");
84 }
85
86 DBusMessage *__connman_error_already_connected(DBusMessage *msg)
87 {
88         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE
89                                 ".AlreadyConnected", "Already connected");
90
91 }
92
93 DBusMessage *__connman_error_operation_aborted(DBusMessage *msg)
94 {
95         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE
96                                 "OperationAborted", "Operation aborted");
97 }
98
99 DBusMessage *__connman_error_operation_timeout(DBusMessage *msg)
100 {
101         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE
102                                 "OperationTimeout", "Operation timeout");
103 }
104
105 DBusMessage *__connman_error_invalid_service(DBusMessage *msg)
106 {
107         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE
108                                         "InvalidService", "Invalid service");
109 }
110
111 DBusMessage *__connman_error_invalid_property(DBusMessage *msg)
112 {
113         return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE,
114                                         "InvalidProperty", "Invalid property");
115 }