int sizerr, f, n;
int f, n;
static int sendlink(rname, opts, stb, user, group, destdir)	char *rname;	opt_t opts;	struct stat *stb;	char *user;	char *group;	int destdir;{	int sizerr, f, n;	static char tbuf[BUFSIZ];	char lbuf[MAXPATHLEN];	u_char *s;	debugmsg(DM_CALL, "sendlink(%s, %x, stb, %d)\n", rname, opts, destdir);	if (stb->st_nlink > 1) {		struct linkbuf *lp;				if ((lp = linkinfo(stb)) != NULL)			return(sendhardlink(opts, lp, rname, destdir));	}	/*	 * Gather and send basic link info	 */	(void) sendcmd(C_RECVSYMLINK, "%o %04o %ld %ld %ld %s %s %s", 		       opts, stb->st_mode & 07777, 		       (long) stb->st_size, 		       stb->st_mtime, stb->st_atime,		       user, group, rname);	if (response() < 0)		return(-1);	/*	 * Gather and send additional link info	 */	sizerr = (readlink(target, lbuf, sizeof(lbuf)-1) != stb->st_size);	(void) sprintf(tbuf, "%.*s", (int) stb->st_size, lbuf);	(void) sendcmd(C_NONE, "%s\n", tbuf);	if (sizerr) {		error("%s: file changed size", target);		err();	} else		ack();	/*	 * Check response	 */	f = response();	if (f < 0)		return(-1);	else if (f == 0 && IS_ON(opts, DO_COMPARE))		return(0);	/*	 * Read and process responses from server.	 * The server may send multiple messages regarding	 * file deletes if the remote target is a directory.	 */	for (;;) {		n = remline(s = respbuff, sizeof(respbuff), TRUE);		if (n == -1)	/* normal EOF */			return(0);		if (n == 0) {			error("expected control record");			continue;		}				switch (*s++) {		case C_END:	/* End of send operation */			*ptarget = CNULL;			ack();			runspecial(target, opts, rname, destdir);			addcmdspecialfile(target, rname, destdir);			return(0);					case C_LOGMSG:			if (n > 0)				message(MT_INFO, "%s", s);			break;		case C_NOTEMSG:			if (n > 0)				message(MT_NOTICE, "%s", s);			break;			/* Goto top of loop */		case C_ERRMSG:			message(MT_NERROR, "%s", s);			return(-1);		case C_FERRMSG:			message(MT_FERROR, "%s", s);			finish();		default:			error("install link: unexpected response '%s'", 			      respbuff);			err();		}	}	/*NOTREACHED*/}