1 // This file is part of BOINC.
2 // http://boinc.berkeley.edu
3 // Copyright (C) 2008 University of California
4 //
5 // BOINC is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU Lesser General Public License
7 // as published by the Free Software Foundation,
8 // either version 3 of the License, or (at your option) any later version.
9 //
10 // BOINC is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 // See the GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public License
16 // along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
17 
18 #ifndef BOINC_ERROR_NUMBERS_H
19 #define BOINC_ERROR_NUMBERS_H
20 
21 // The following are process exit codes (not function return values).
22 // They are used by the core client and apps.
23 // NOTE: Unix passes only 8 bits of exit code,
24 // and Unix uses roughly 1-137, so let's start at 192
25 
26 #define EXIT_STATEFILE_WRITE        192
27     // client exit when can't write statefile
28 #define EXIT_SIGNAL                 193
29     // app was killed by signal
30 #define EXIT_ABORTED_BY_CLIENT      194
31 #define EXIT_CHILD_FAILED           195
32 #define EXIT_DISK_LIMIT_EXCEEDED    196
33 #define EXIT_TIME_LIMIT_EXCEEDED    197
34 #define EXIT_MEM_LIMIT_EXCEEDED     198
35 #define EXIT_CLIENT_EXITING         199
36 #define EXIT_UNSTARTED_LATE         200
37 #define EXIT_MISSING_COPROC         201
38 #define EXIT_ABORTED_BY_PROJECT     202
39 #define EXIT_ABORTED_VIA_GUI        203
40 #define EXIT_UNKNOWN                204
41 #define EXIT_OUT_OF_MEMORY          205
42 #define EXIT_INIT_FAILURE           206
43 #define EXIT_NO_SUB_TASKS           207
44 #define EXIT_SUB_TASK_FAILURE       208
45 
46 // Function return values.
47 // NOTE:  add new errors to the end of the list and don't change
48 // old error numbers to avoid confusion between versions.
49 // Add a text description of your error to the text description
50 // function boincerror() in str_util.cpp.
51 //
52 #define BOINC_SUCCESS       0
53 #define ERR_SELECT          -100
54 #define ERR_MALLOC          -101
55 #define ERR_READ            -102
56 #define ERR_WRITE           -103
57 #define ERR_FREAD           -104
58 #define ERR_FWRITE          -105
59 #define ERR_IO              -106
60 #define ERR_CONNECT         -107
61 #define ERR_FOPEN           -108
62 #define ERR_RENAME          -109
63 #define ERR_UNLINK          -110
64 #define ERR_OPENDIR         -111
65 #define ERR_XML_PARSE       -112
66     // Unexpected XML tag or XML format
67 #define ERR_GETHOSTBYNAME   -113
68     // Couldn't resolve hostname
69 #define ERR_GIVEUP_DOWNLOAD -114
70     // too much time has elapsed without progress on file xfer,
71     // or we got a 404 (not found) status code from server
72 #define ERR_GIVEUP_UPLOAD   -115
73 #define ERR_NULL            -116
74     // unexpected NULL pointer
75 #define ERR_NEG             -117
76     // unexpected negative value
77 #define ERR_BUFFER_OVERFLOW -118
78     // caught buffer overflow
79 #define ERR_MD5_FAILED      -119
80     // MD5 checksum failed for a file
81 #define ERR_RSA_FAILED      -120
82     // RSA key check failed for a file
83 #define ERR_OPEN            -121
84 #define ERR_DUP2            -122
85 #define ERR_NO_SIGNATURE    -123
86 #define ERR_THREAD          -124
87     // Error creating a thread
88 #define ERR_SIGNAL_CATCH    -125
89 #define ERR_BAD_FORMAT      -126
90 #define ERR_UPLOAD_TRANSIENT    -127
91 #define ERR_UPLOAD_PERMANENT    -128
92 #define ERR_IDLE_PERIOD     -129
93     // can't start work because of user prefs
94 #define ERR_ALREADY_ATTACHED    -130
95 #define ERR_FILE_TOO_BIG    -131
96     // an output file was bigger than max_nbytes
97 #define ERR_GETRUSAGE       -132
98     // getrusage failed
99 #define ERR_BENCHMARK_FAILED -133
100 #define ERR_BAD_HEX_FORMAT  -134
101     // hex-format key data is bad
102 #define ERR_GETADDRINFO     -135
103 #define ERR_DB_NOT_FOUND    -136
104     // no rows found in lookup() or enumerate()
105 #define ERR_DB_NOT_UNIQUE   -137
106     // not unique in lookup()
107 #define ERR_DB_CANT_CONNECT -138
108 #define ERR_GETS            -139
109     // gets() or fgets()
110 #define ERR_SCANF           -140
111     // scanf() or fscanf()
112 #define ERR_READDIR         -143
113 #define ERR_SHMGET          -144
114 #define ERR_SHMCTL          -145
115 #define ERR_SHMAT           -146
116 #define ERR_FORK            -147
117 #define ERR_EXEC            -148
118 #define ERR_NOT_EXITED      -149
119     // a process didn't exit that was supposed to
120 #define ERR_NOT_IMPLEMENTED -150
121     // a system call not implemented on this platform
122 #define ERR_GETHOSTNAME     -151
123 #define ERR_NETOPEN         -152
124 #define ERR_SOCKET          -153
125 #define ERR_FCNTL           -154
126 #define ERR_AUTHENTICATOR   -155
127     // scheduler request host ID doesn't match authenticator
128 #define ERR_SCHED_SHMEM     -156
129     // sched shmem has bad contents
130 #define ERR_ASYNCSELECT     -157
131 #define ERR_BAD_RESULT_STATE    -158
132 #define ERR_DB_CANT_INIT    -159
133 #define ERR_NOT_UNIQUE       -160
134     // state files had redundant entries
135 #define ERR_NOT_FOUND        -161
136     // catch-all lookup error
137 #define ERR_NO_EXIT_STATUS   -162
138     // exit_status not found in scheduler request
139 #define ERR_FILE_MISSING    -163
140 #define ERR_KILL            -164
141 #define ERR_SEMGET          -165
142 #define ERR_SEMCTL          -166
143 #define ERR_SEMOP           -167
144 #define ERR_FTOK            -168
145 #define ERR_SOCKS_UNKNOWN_FAILURE -169
146 #define ERR_SOCKS_REQUEST_FAILED  -170
147 #define ERR_SOCKS_BAD_USER_PASS   -171
148 #define ERR_SOCKS_UNKNOWN_SERVER_VERSION -172
149 #define ERR_SOCKS_UNSUPPORTED     -173
150 #define ERR_SOCKS_CANT_REACH_HOST -174
151 #define ERR_SOCKS_CONN_REFUSED    -175
152 #define ERR_TIMER_INIT            -176
153 #define ERR_INVALID_PARAM   -178
154 #define ERR_SIGNAL_OP       -179
155 #define ERR_BIND            -180
156 #define ERR_LISTEN          -181
157 #define ERR_TIMEOUT         -182
158 #define ERR_PROJECT_DOWN    -183
159 #define ERR_HTTP_TRANSIENT  -184
160     // HTTP errors other than 404 and 416
161 #define ERR_RESULT_START    -185
162 #define ERR_RESULT_DOWNLOAD -186
163 #define ERR_RESULT_UPLOAD   -187
164 #define ERR_BAD_USER_NAME   -188
165 #define ERR_INVALID_URL     -189
166 #define ERR_MAJOR_VERSION   -190
167 #define ERR_NO_OPTION       -191
168 #define ERR_MKDIR           -192
169 #define ERR_INVALID_EVENT   -193
170 #define ERR_ALREADY_RUNNING -194
171 #define ERR_NO_APP_VERSION  -195
172 #define ERR_WU_USER_RULE    -196
173 #define ERR_ABORTED_VIA_GUI -197
174 #define ERR_INSUFFICIENT_RESOURCE   -198
175 #define ERR_RETRY           -199
176 #define ERR_WRONG_SIZE      -200
177 #define ERR_USER_PERMISSION -201
178     // e.g. user didn't allow network connection
179 #define ERR_SHMEM_NAME      -202
180 #define ERR_NO_NETWORK_CONNECTION -203
181 #define ERR_IN_PROGRESS     -204
182 #define ERR_BAD_EMAIL_ADDR  -205
183 #define ERR_BAD_PASSWD      -206
184 #define ERR_NONUNIQUE_EMAIL -207
185 #define ERR_ACCT_CREATION_DISABLED  -208
186 #define ERR_ATTACH_FAIL_INIT       -209
187 #define ERR_ATTACH_FAIL_DOWNLOAD   -210
188 #define ERR_ATTACH_FAIL_PARSE      -211
189 #define ERR_ATTACH_FAIL_BAD_KEY    -212
190 #define ERR_ATTACH_FAIL_FILE_WRITE -213
191 #define ERR_ATTACH_FAIL_SERVER_ERROR -214
192 #define ERR_SIGNING_KEY             -215
193 #define ERR_FFLUSH          -216
194 #define ERR_FSYNC           -217
195 #define ERR_TRUNCATE        -218
196 #define ERR_WRONG_URL       -219
197 #define ERR_DUP_NAME        -220
198 #define ERR_GETGRNAM        -222
199 #define ERR_CHOWN           -223
200 #define ERR_HTTP_PERMANENT  -224
201     // represents HTTP 404 or 416 error
202 #define ERR_BAD_FILENAME    -225
203 #define ERR_TOO_MANY_EXITS  -226
204 #define ERR_RMDIR           -227
205 #define ERR_SYMLINK         -229
206 #define ERR_DB_CONN_LOST    -230
207 #define ERR_CRYPTO          -231
208 #define ERR_ABORTED_ON_EXIT -232
209 #define ERR_PROC_PARSE      -235
210 #define ERR_STATFS          -236
211 #define ERR_PIPE            -237
212 #define ERR_NEED_HTTPS      -238
213 #define ERR_CHMOD           -239
214 #define ERR_STAT            -240
215 #define ERR_FCLOSE          -241
216 
217 // PLEASE: add a text description of your error to
218 // the text description function boincerror() in str_util.cpp.
219 
220 // returns short text description of error corresponding to
221 // int errornumber from error_numbers.h
222 //
223 extern const char* boincerror(int which_error);
224 
225 #endif
226