about summary refs log tree commit diff
path: root/misc/subr.h
diff options
context:
space:
mode:
authorRichard Nyberg <rnyberg@murmeldjur.se>2006-09-12 08:55:53 +0000
committerRichard Nyberg <rnyberg@murmeldjur.se>2006-09-12 08:55:53 +0000
commita27913a47d81b61ca176d927cd5d43e64c11def9 (patch)
treedaa26e6403546def7278da11aa8f4cf2eaa26b5b /misc/subr.h
parent203d4148e404e0ddc6babbe25646420359dd4b11 (diff)
downloadbtpd-a27913a47d81b61ca176d927cd5d43e64c11def9.tar.gz
btpd-a27913a47d81b61ca176d927cd5d43e64c11def9.zip
Add functions for conversions between binary data and ascii hex.
Add function for reading a whole file.
Enable printf format checking for some functions.

Diffstat (limited to 'misc/subr.h')
-rw-r--r--misc/subr.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/misc/subr.h b/misc/subr.h
index 9260ed9..bf30433 100644
--- a/misc/subr.h
+++ b/misc/subr.h
@@ -5,14 +5,18 @@
 #include <stdarg.h>
 
 #define min(x, y) ((x) <= (y) ? (x) : (y))
+#define SHAHEXSIZE 41
 
 int set_nonblocking(int fd);
 int set_blocking(int fd);
 
 int mkdirs(char *path);
 
+__attribute__((format (printf, 3, 0)))
 int vaopen(int *resfd, int flags, const char *fmt, va_list ap);
+__attribute__((format (printf, 3, 4)))
 int vopen(int *resfd, int flags, const char *fmt, ...);
+__attribute__((format (printf, 3, 4)))
 int vfopen(FILE **ret, const char *mode, const char *fmt, ...);
 int vfsync(const char *fmt, ...);
 
@@ -20,10 +24,17 @@ void set_bit(uint8_t *bits, unsigned long index);
 int has_bit(const uint8_t *bits, unsigned long index);
 void clear_bit(uint8_t *bits, unsigned long index);
 
+char *bin2hex(const uint8_t *bin, char *hex, size_t bsize);
+uint8_t *hex2bin(const char *hex, uint8_t *bin, size_t bsize);
+uint8_t hex2i(char c);
+int ishex(char *str);
+
 long rand_between(long min, long max);
 
 int read_fully(int fd, void *buf, size_t len);
 int write_fully(int fd, const void *buf, size_t len);
+__attribute__((format (printf, 3, 4)))
+int read_whole_file(void **out, size_t *size, const char *fmt, ...);
 
 char *find_btpd_dir(void);