mirror of git://anongit.mindrot.org/openssh.git
fix merge botch
This commit is contained in:
parent
0cdc5a3eb6
commit
83b9678a62
|
@ -969,9 +969,9 @@ process_fsetstat(u_int32_t id)
|
||||||
if (a.flags & SSH2_FILEXFER_ATTR_PERMISSIONS) {
|
if (a.flags & SSH2_FILEXFER_ATTR_PERMISSIONS) {
|
||||||
logit("set \"%s\" mode %04o", name, a.perm);
|
logit("set \"%s\" mode %04o", name, a.perm);
|
||||||
#ifdef HAVE_FCHMOD
|
#ifdef HAVE_FCHMOD
|
||||||
ret = fchmod(fd, a->perm & 07777);
|
r = fchmod(fd, a.perm & 07777);
|
||||||
#else
|
#else
|
||||||
ret = chmod(name, a->perm & 07777);
|
r = chmod(name, a.perm & 07777);
|
||||||
#endif
|
#endif
|
||||||
if (r == -1)
|
if (r == -1)
|
||||||
status = errno_to_portable(errno);
|
status = errno_to_portable(errno);
|
||||||
|
@ -984,9 +984,9 @@ process_fsetstat(u_int32_t id)
|
||||||
localtime(&t));
|
localtime(&t));
|
||||||
logit("set \"%s\" modtime %s", name, buf);
|
logit("set \"%s\" modtime %s", name, buf);
|
||||||
#ifdef HAVE_FUTIMES
|
#ifdef HAVE_FUTIMES
|
||||||
ret = futimes(fd, attrib_to_tv(a));
|
r = futimes(fd, attrib_to_tv(&a));
|
||||||
#else
|
#else
|
||||||
ret = utimes(name, attrib_to_tv(a));
|
r = utimes(name, attrib_to_tv(&a));
|
||||||
#endif
|
#endif
|
||||||
if (r == -1)
|
if (r == -1)
|
||||||
status = errno_to_portable(errno);
|
status = errno_to_portable(errno);
|
||||||
|
@ -995,9 +995,9 @@ process_fsetstat(u_int32_t id)
|
||||||
logit("set \"%s\" owner %lu group %lu", name,
|
logit("set \"%s\" owner %lu group %lu", name,
|
||||||
(u_long)a.uid, (u_long)a.gid);
|
(u_long)a.uid, (u_long)a.gid);
|
||||||
#ifdef HAVE_FCHOWN
|
#ifdef HAVE_FCHOWN
|
||||||
ret = fchown(fd, a->uid, a->gid);
|
r = fchown(fd, a.uid, a.gid);
|
||||||
#else
|
#else
|
||||||
ret = chown(name, a->uid, a->gid);
|
r = chown(name, a.uid, a.gid);
|
||||||
#endif
|
#endif
|
||||||
if (r == -1)
|
if (r == -1)
|
||||||
status = errno_to_portable(errno);
|
status = errno_to_portable(errno);
|
||||||
|
@ -1005,70 +1005,6 @@ process_fsetstat(u_int32_t id)
|
||||||
}
|
}
|
||||||
send_status(id, status);
|
send_status(id, status);
|
||||||
}
|
}
|
||||||
static void
|
|
||||||
process_fsetstat(u_int32_t id)
|
|
||||||
{
|
|
||||||
Attrib a;
|
|
||||||
int handle, fd, r;
|
|
||||||
int status = SSH2_FX_OK;
|
|
||||||
|
|
||||||
if ((r = get_handle(iqueue, &handle)) != 0 ||
|
|
||||||
(r = decode_attrib(iqueue, &a)) != 0)
|
|
||||||
fatal("%s: buffer error: %s", __func__, ssh_err(r));
|
|
||||||
|
|
||||||
debug("request %u: fsetstat handle %d", id, handle);
|
|
||||||
fd = handle_to_fd(handle);
|
|
||||||
if (fd < 0)
|
|
||||||
status = SSH2_FX_FAILURE;
|
|
||||||
else {
|
|
||||||
char *name = handle_to_name(handle);
|
|
||||||
|
|
||||||
if (a->flags & SSH2_FILEXFER_ATTR_SIZE) {
|
|
||||||
logit("set \"%s\" size %llu",
|
|
||||||
name, (unsigned long long)a->size);
|
|
||||||
ret = ftruncate(fd, a->size);
|
|
||||||
if (ret == -1)
|
|
||||||
status = errno_to_portable(errno);
|
|
||||||
}
|
|
||||||
if (a->flags & SSH2_FILEXFER_ATTR_PERMISSIONS) {
|
|
||||||
logit("set \"%s\" mode %04o", name, a->perm);
|
|
||||||
#ifdef HAVE_FCHMOD
|
|
||||||
ret = fchmod(fd, a->perm & 07777);
|
|
||||||
#else
|
|
||||||
ret = chmod(name, a->perm & 07777);
|
|
||||||
#endif
|
|
||||||
if (ret == -1)
|
|
||||||
status = errno_to_portable(errno);
|
|
||||||
}
|
|
||||||
if (a->flags & SSH2_FILEXFER_ATTR_ACMODTIME) {
|
|
||||||
char buf[64];
|
|
||||||
time_t t = a->mtime;
|
|
||||||
|
|
||||||
strftime(buf, sizeof(buf), "%Y%m%d-%H:%M:%S",
|
|
||||||
localtime(&t));
|
|
||||||
logit("set \"%s\" modtime %s", name, buf);
|
|
||||||
#ifdef HAVE_FUTIMES
|
|
||||||
ret = futimes(fd, attrib_to_tv(a));
|
|
||||||
#else
|
|
||||||
ret = utimes(name, attrib_to_tv(a));
|
|
||||||
#endif
|
|
||||||
if (ret == -1)
|
|
||||||
status = errno_to_portable(errno);
|
|
||||||
}
|
|
||||||
if (a->flags & SSH2_FILEXFER_ATTR_UIDGID) {
|
|
||||||
logit("set \"%s\" owner %lu group %lu", name,
|
|
||||||
(u_long)a->uid, (u_long)a->gid);
|
|
||||||
#ifdef HAVE_FCHOWN
|
|
||||||
ret = fchown(fd, a->uid, a->gid);
|
|
||||||
#else
|
|
||||||
ret = chown(name, a->uid, a->gid);
|
|
||||||
#endif
|
|
||||||
if (ret == -1)
|
|
||||||
status = errno_to_portable(errno);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
send_status(id, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
process_opendir(u_int32_t id)
|
process_opendir(u_int32_t id)
|
||||||
|
|
Loading…
Reference in New Issue