20010112
- (bal) OpenBSD Sync
- markus@cvs.openbsd.org 2001/01/10 22:56:22
[bufaux.h bufaux.c sftp-server.c sftp.h getput.h]
cleanup sftp-server implementation:
add buffer_get_int64, buffer_put_int64, GET_64BIT, PUT_64BIT
parse SSH2_FILEXFER_ATTR_EXTENDED
send SSH2_FX_EOF if readdir returns no more entries
reply to SSH2_FXP_EXTENDED message
use #defines from the draft
move #definations to sftp.h
more info:
http://www.ietf.org/internet-drafts/draft-ietf-secsh-filexfer-00.txt
- markus@cvs.openbsd.org 2001/01/10 19:43:20
[sshd.c]
XXX - generate_empheral_server_key() is not safe against races,
because it calls log()
- markus@cvs.openbsd.org 2001/01/09 21:19:50
[packet.c]
allow TCP_NDELAY for ipv6; from netbsd via itojun@
diff --git a/bufaux.c b/bufaux.c
index 5853ee6..149677f 100644
--- a/bufaux.c
+++ b/bufaux.c
@@ -37,7 +37,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: bufaux.c,v 1.14 2000/12/19 23:17:55 markus Exp $");
+RCSID("$OpenBSD: bufaux.c,v 1.15 2001/01/10 22:56:22 markus Exp $");
#include "ssh.h"
#include <openssl/bn.h>
@@ -152,6 +152,14 @@
return GET_32BIT(buf);
}
+u_int64_t
+buffer_get_int64(Buffer *buffer)
+{
+ u_char buf[8];
+ buffer_get(buffer, (char *) buf, 8);
+ return GET_64BIT(buf);
+}
+
/*
* Stores an integer in the buffer in 4 bytes, msb first.
*/
@@ -163,6 +171,14 @@
buffer_append(buffer, buf, 4);
}
+void
+buffer_put_int64(Buffer *buffer, u_int64_t value)
+{
+ char buf[8];
+ PUT_64BIT(buf, value);
+ buffer_append(buffer, buf, 8);
+}
+
/*
* Returns an arbitrary binary string from the buffer. The string cannot
* be longer than 256k. The returned value points to memory allocated