summaryrefslogtreecommitdiff
path: root/atomicio.h
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2010-09-24 22:15:11 +1000
committerDamien Miller <djm@mindrot.org>2010-09-24 22:15:11 +1000
commit65e42f87fe945a2bf30d7e02358554dbaefa8a4c (patch)
tree102c10a0b5328a40c79dca19d208f0ca0c1671b5 /atomicio.h
parent7fe2b1fec3b364faf952828f3875b8e7eed8feb4 (diff)
- djm@cvs.openbsd.org 2010/09/22 22:58:51
[atomicio.c atomicio.h misc.c misc.h scp.c sftp-client.c] [sftp-client.h sftp.1 sftp.c] add an option per-read/write callback to atomicio factor out bandwidth limiting code from scp(1) into a generic bandwidth limiter that can be attached using the atomicio callback mechanism add a bandwidth limit option to sftp(1) using the above "very nice" markus@
Diffstat (limited to 'atomicio.h')
-rw-r--r--atomicio.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/atomicio.h b/atomicio.h
index 2fcd25d43..0d728ac86 100644
--- a/atomicio.h
+++ b/atomicio.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: atomicio.h,v 1.10 2006/08/03 03:34:41 deraadt Exp $ */ 1/* $OpenBSD: atomicio.h,v 1.11 2010/09/22 22:58:51 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2006 Damien Miller. All rights reserved. 4 * Copyright (c) 2006 Damien Miller. All rights reserved.
@@ -32,6 +32,9 @@
32/* 32/*
33 * Ensure all of data on socket comes through. f==read || f==vwrite 33 * Ensure all of data on socket comes through. f==read || f==vwrite
34 */ 34 */
35size_t
36atomicio6(ssize_t (*f) (int, void *, size_t), int fd, void *_s, size_t n,
37 int (*cb)(void *, size_t), void *);
35size_t atomicio(ssize_t (*)(int, void *, size_t), int, void *, size_t); 38size_t atomicio(ssize_t (*)(int, void *, size_t), int, void *, size_t);
36 39
37#define vwrite (ssize_t (*)(int, void *, size_t))write 40#define vwrite (ssize_t (*)(int, void *, size_t))write
@@ -39,6 +42,9 @@ size_t atomicio(ssize_t (*)(int, void *, size_t), int, void *, size_t);
39/* 42/*
40 * ensure all of data on socket comes through. f==readv || f==writev 43 * ensure all of data on socket comes through. f==readv || f==writev
41 */ 44 */
45size_t
46atomiciov6(ssize_t (*f) (int, const struct iovec *, int), int fd,
47 const struct iovec *_iov, int iovcnt, int (*cb)(void *, size_t), void *);
42size_t atomiciov(ssize_t (*)(int, const struct iovec *, int), 48size_t atomiciov(ssize_t (*)(int, const struct iovec *, int),
43 int, const struct iovec *, int); 49 int, const struct iovec *, int);
44 50