ret = fxp_stat_recv(pktin, &attrs);
ret = fxp_stat_recv(pktin, rreq, &attrs);
int scp_send_dirname(char *name, int modes){    if (using_sftp) {	char *fullname;	char const *err;	struct fxp_attrs attrs;	struct sftp_packet *pktin;	struct sftp_request *req, *rreq;	int ret;	if (scp_sftp_targetisdir) {	    fullname = dupcat(scp_sftp_remotepath, "/", name, NULL);	} else {	    fullname = dupstr(scp_sftp_remotepath);	}	/*	 * We don't worry about whether we managed to create the	 * directory, because if it exists already it's OK just to	 * use it. Instead, we will stat it afterwards, and if it	 * exists and is a directory we will assume we were either	 * successful or it didn't matter.	 */	sftp_register(req = fxp_mkdir_send(fullname));	rreq = sftp_find_request(pktin = sftp_recv());	assert(rreq == req);	ret = fxp_mkdir_recv(pktin);	if (!ret)	    err = fxp_error();	else	    err = "server reported no error";	sftp_register(req = fxp_stat_send(fullname));	rreq = sftp_find_request(pktin = sftp_recv());	assert(rreq == req);	ret = fxp_stat_recv(pktin, &attrs);	if (!ret || !(attrs.flags & SSH_FILEXFER_ATTR_PERMISSIONS) ||	    !(attrs.permissions & 0040000)) {	    tell_user(stderr, "unable to create directory %s: %s",		      fullname, err);	    errs++;	    return 1;	}	scp_sftp_remotepath = fullname;	return 0;    } else {	char buf[40];	sprintf(buf, "D%04o 0 ", modes);	back->send(backhandle, buf, strlen(buf));	back->send(backhandle, name, strlen(name));	back->send(backhandle, "\n", 1);	return response();    }}