1/*
2 * Error codes returned by rsync.
3 *
4 * Copyright (C) 1998-2000 Andrew Tridgell
5 * Copyright (C) 2003, 2005 Wayne Davison
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 as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write to the Free Software Foundation, Inc.,
19 * 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
20 */
21
22/* If you change these, please also update the string mappings in log.c and
23 * the EXIT VALUES in rsync.yo. */
24
25#define RERR_OK         0
26#define RERR_SYNTAX     1       /* syntax or usage error */
27#define RERR_PROTOCOL   2       /* protocol incompatibility */
28#define RERR_FILESELECT 3       /* errors selecting input/output files, dirs */
29#define RERR_UNSUPPORTED 4      /* requested action not supported */
30#define RERR_STARTCLIENT 5      /* error starting client-server protocol */
31
32#define RERR_SOCKETIO   10      /* error in socket IO */
33#define RERR_FILEIO     11      /* error in file IO */
34#define RERR_STREAMIO   12      /* error in rsync protocol data stream */
35#define RERR_MESSAGEIO  13      /* errors with program diagnostics */
36#define RERR_IPC        14      /* error in IPC code */
37#define RERR_CRASHED    15      /* sibling crashed */
38#define RERR_TERMINATED 16      /* sibling terminated abnormally */
39
40#define RERR_SIGNAL1    19      /* status returned when sent SIGUSR1 */
41#define RERR_SIGNAL     20      /* status returned when sent SIGINT, SIGTERM, SIGHUP */
42#define RERR_WAITCHILD  21      /* some error returned by waitpid() */
43#define RERR_MALLOC     22      /* error allocating core memory buffers */
44#define RERR_PARTIAL    23      /* partial transfer */
45#define RERR_VANISHED   24      /* file(s) vanished on sender side */
46#define RERR_DEL_LIMIT  25      /* skipped some deletes due to --max-delete */
47
48#define RERR_TIMEOUT    30      /* timeout in data send/receive */
49
50/* Although it doesn't seem to be specified anywhere,
51 * ssh and the shell seem to return these values:
52 *
53 * 124 if the command exited with status 255
54 * 125 if the command is killed by a signal
55 * 126 if the command cannot be run
56 * 127 if the command is not found
57 *
58 * and we could use this to give a better explanation if the remote
59 * command is not found.
60 */
61#define RERR_CMD_FAILED 124
62#define RERR_CMD_KILLED 125
63#define RERR_CMD_RUN 126
64#define RERR_CMD_NOTFOUND 127
65