static void print_rsync_version(void)
{
- rprintf(FINFO, "rsync version %s protocol version %d (%d-bit files)\n\n",
- VERSION, PROTOCOL_VERSION,
- sizeof(int64) * 8);
- rprintf(FINFO, "Written by Andrew Tridgell and Paul Mackerras\n");
- rprintf(FINFO, "http://rsync.samba.org/\n");
+ char const *got_socketpair = "no ";
+
+#ifdef HAVE_SOCKETPAIR
+ got_socketpair = "";
+#endif
+
+ rprintf(FINFO, "rsync version %s protocol version %d\n",
+ VERSION, PROTOCOL_VERSION);
+ rprintf(FINFO, "Configuration: %d-bit files, %ssocketpairs\n\n",
+ sizeof(int64) * 8,
+ got_socketpair);
+ rprintf(FINFO, "Written by Andrew Tridgell and Paul Mackerras "
+ "<http://rsync.samba.org/>\n\n");
#ifdef NO_INT64
rprintf(FINFO, "WARNING: no 64-bit integers on this platform!\n");
#endif
break;
default:
+ /* FIXME: This can be confusing when the error message
+ * is coming from a remote server which has an older
+ * rsync version than the local version. The user
+ * sees the option documented in the local --help, but
+ * then the program seems to refuse to execute it. So
+ * perhaps the message should give the hostname or
+ * something.
+ *
+ * In rsync 3.x, it might be nice if options which
+ * only affect one end didn't have to bother the
+ * remote end. */
slprintf(err_buf,sizeof(err_buf),"unrecognised option\n");
return 0;
}