summary refs log tree commit diff
path: root/misc/metainfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'misc/metainfo.h')
-rw-r--r--misc/metainfo.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/misc/metainfo.h b/misc/metainfo.h
new file mode 100644
index 0000000..242bab3
--- /dev/null
+++ b/misc/metainfo.h
@@ -0,0 +1,28 @@
+#ifndef BTPD_METAINFO_H
+#define BTPD_METAINFO_H
+
+struct fileinfo {
+    char *path;
+    off_t length;
+};
+
+struct metainfo {
+    char *name;
+    char *announce;
+    uint8_t info_hash[20];
+    uint8_t (*piece_hash)[20];
+    unsigned pieces_off;
+    uint32_t npieces;
+    off_t piece_length;
+    off_t total_length;
+    unsigned nfiles;
+    struct fileinfo *files;
+};
+
+int fill_fileinfo(const char *fdct, struct fileinfo *fip);
+int fill_metainfo(const char *base, struct metainfo *mip, int mem_hashes);
+void clear_metainfo(struct metainfo *mip);
+void print_metainfo(struct metainfo *mip);
+int load_metainfo(const char *path, off_t size, int mem_hashes, struct metainfo **res);
+
+#endif