rem: exit_cleanup(1);
add: exit_cleanup(RERR_SOCKETIO);
context: int start_socket_client(char *host, char *path, int argc, char *argv[]){	int fd, i;	char *sargs[MAX_ARGS];	int sargc=0;	char line[MAXPATHLEN];	char *p, *user=NULL;	extern int remote_version;	extern int am_client;	extern int am_sender;	if (*path == '/') {		rprintf(FERROR,"ERROR: The remote path must start with a module name\n");		return -1;	}	p = strchr(host, '@');	if (p) {		user = host;		host = p+1;		*p = 0;	}	if (!user) user = getenv("USER");	if (!user) user = getenv("LOGNAME");	am_client = 1;	fd = open_socket_out(host, rsync_port);	if (fd == -1) {		exit_cleanup(1);	}		server_options(sargs,&sargc);	sargs[sargc++] = ".";	if (path && *path) 		sargs[sargc++] = path;	sargs[sargc] = NULL;	io_printf(fd,"@RSYNCD: %d\n", PROTOCOL_VERSION);	if (!read_line(fd, line, sizeof(line)-1)) {		return -1;	}	if (sscanf(line,"@RSYNCD: %d", &remote_version) != 1) {		return -1;	}	p = strchr(path,'/');	if (p) *p = 0;	io_printf(fd,"%s\n",path);	if (p) *p = '/';	while (1) {		if (!read_line(fd, line, sizeof(line)-1)) {			return -1;		}		if (strncmp(line,"@RSYNCD: AUTHREQD ",18) == 0) {			auth_client(fd, user, line+18);			continue;		}		if (strcmp(line,"@RSYNCD: OK") == 0) break;		rprintf(FINFO,"%s\n", line);	}	for (i=0;i<sargc;i++) {		io_printf(fd,"%s\n", sargs[i]);	}	io_printf(fd,"\n");	if (remote_version > 17 && !am_sender)		io_start_multiplex_in(fd);	return client_run(fd, fd, -1, argc, argv);}