(_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
This commit is contained in:
@@ -82,3 +82,29 @@ _hx509_unmap_file(void *data, size_t len)
|
|||||||
{
|
{
|
||||||
free(data);
|
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;
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user