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.
This commit is contained in:
Linus Torvalds 2005-06-28 11:10:06 -07:00
parent 5571be75eb
commit 4397f0148a
2 changed files with 21 additions and 0 deletions

View File

@ -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;

View File

@ -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);