Split code out into separate files and remove some global variables to
[rsync/rsync.git] / errcode.h
1 /* -*- c-file-style: "linux"; -*-
2    
3    Copyright (C) 1998-2000 by Andrew Tridgell
4    
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 2 of the License, or
8    (at your option) any later version.
9    
10    This program 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.  See the
13    GNU General Public License for more details.
14    
15    You should have received a copy of the GNU General Public License
16    along with this program; if not, write to the Free Software
17    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 */
19
20 /*
21  * error codes returned by rsync.  If you change these, please also update the
22  * string mappings in log.c
23  */
24
25 #define RERR_SYNTAX     1       /* syntax or usage error */
26 #define RERR_PROTOCOL   2       /* protocol incompatibility */
27 #define RERR_FILESELECT 3       /* errors selecting input/output files, dirs */
28 #define RERR_UNSUPPORTED 4       /* requested action not supported */
29 #define RERR_STARTCLIENT 5      /* error starting client-server protocol */
30
31 #define RERR_SOCKETIO   10      /* error in socket IO */
32 #define RERR_FILEIO     11      /* error in file IO */
33 #define RERR_STREAMIO   12      /* error in rsync protocol data stream */
34 #define RERR_MESSAGEIO  13      /* errors with program diagnostics */
35 #define RERR_IPC        14      /* error in IPC code */
36
37 #define RERR_SIGNAL     20      /* status returned when sent SIGUSR1, SIGINT */
38 #define RERR_WAITCHILD  21      /* some error returned by waitpid() */
39 #define RERR_MALLOC     22      /* error allocating core memory buffers */
40 #define RERR_PARTIAL    23      /* partial transfer */
41
42 #define RERR_TIMEOUT    30      /* timeout in data send/receive */
43
44 /* Although it doesn't seem to be specified anywhere,
45  * ssh and the shell seem to return these values:
46  *
47  * 124 if the command exited with status 255
48  * 125 if the command is killed by a signal
49  * 126 if the command cannot be run
50  * 127 if the command is not found
51  *
52  * and we could use this to give a better explanation if the remote
53  * command is not found.
54  */
55 #define RERR_CMD_FAILED 124
56 #define RERR_CMD_KILLED 125
57 #define RERR_CMD_RUN 126
58 #define RERR_CMD_NOTFOUND 127