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:
parent
5571be75eb
commit
4397f0148a
20
csum-file.c
20
csum-file.c
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user