Commit 4397f014 authored by Linus Torvalds's avatar Linus Torvalds

csum-file: add "sha1fd()" to create a SHA1 csum file from an existing file descriptor

We'll use this soon to write pack-files to stdout.
parent 5571be75
......@@ -96,6 +96,26 @@ struct sha1file *sha1create(const char *fmt, ...)
return f;
}
struct sha1file *sha1fd(int fd, const char *name)
{
struct sha1file *f;
unsigned len;
f = xmalloc(sizeof(*f));
len = strlen(name);
if (len >= PATH_MAX)
die("you wascally wabbit, you");
f->namelen = len;
memcpy(f->name, name, len+1);
f->fd = fd;
f->error = 0;
f->offset = 0;
SHA1_Init(&f->ctx);
return f;
}
int sha1write_compressed(struct sha1file *f, void *in, unsigned int size)
{
z_stream stream;
......
......@@ -10,6 +10,7 @@ struct sha1file {
unsigned char buffer[8192];
};
extern struct sha1file *sha1fd(int fd, const char *name);
extern struct sha1file *sha1create(const char *fmt, ...);
extern int sha1close(struct sha1file *, unsigned char *, int);
extern int sha1write(struct sha1file *, void *, unsigned int);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment