From 4c75ad55b059d0f097dae2b52ee9d28ae2f3893c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Sun, 24 Jul 2005 20:21:29 +0000 Subject: [PATCH] (_hx509_write_file): add a function that write a data blob to disk too git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15720 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/hx509/file.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/lib/hx509/file.c b/lib/hx509/file.c index d81851130..fc14419b5 100644 --- a/lib/hx509/file.c +++ b/lib/hx509/file.c @@ -82,3 +82,29 @@ _hx509_unmap_file(void *data, size_t len) { free(data); } + +int +_hx509_write_file(const char *fn, const void *data, size_t length) +{ + ssize_t sz; + const unsigned char *p = data; + int fd; + + fd = open(fn, O_WRONLY|O_TRUNC|O_CREAT, 0644); + if (fd < 0) + return errno; + + do { + sz = write(fd, p, length); + if (sz < 0) + err(1, "write"); + if (sz == 0) + break; + length -= sz; + } while (length > 0); + + if (close(fd) == -1) + return errno; + + return 0; +}