#include "define.h"
#include "libstrfunc.h"
#include "vbuf.h"
#include "libpst.h"
#include "timeconv.h"
Go to the source code of this file.
Data Structures | |
struct | pst_table_ptr_struct32 |
struct | pst_table_ptr_structn |
struct | pst_block_header |
struct | pst_id2_assoc32 |
struct | pst_id2_assoc |
struct | pst_table3_rec32 |
struct | pst_table3_rec |
struct | pst_block_hdr |
struct | pst_x_attrib |
struct | cache_list_node |
this list node type is used for a quick cache of the descriptor tree nodes (rooted at pf->d_head) and for a "lost and found" list. More... | |
Defines | |
#define | ASSERT(x) { if(!(x)) raise( SIGSEGV ); } |
#define | INDEX_TYPE32 0x0E |
#define | INDEX_TYPE64 0x17 |
#define | INDEX_TYPE_OFFSET (off_t)0x0A |
#define | FILE_SIZE_POINTER32 (off_t)0xA8 |
#define | INDEX_POINTER32 (off_t)0xC4 |
#define | INDEX_BACK32 (off_t)0xC0 |
#define | SECOND_POINTER32 (off_t)0xBC |
#define | SECOND_BACK32 (off_t)0xB8 |
#define | ENC_TYPE32 (off_t)0x1CD |
#define | FILE_SIZE_POINTER64 (off_t)0xB8 |
#define | INDEX_POINTER64 (off_t)0xF0 |
#define | INDEX_BACK64 (off_t)0xE8 |
#define | SECOND_POINTER64 (off_t)0xE0 |
#define | SECOND_BACK64 (off_t)0xD8 |
#define | ENC_TYPE64 (off_t)0x201 |
#define | FILE_SIZE_POINTER ((pf->do_read64) ? FILE_SIZE_POINTER64 : FILE_SIZE_POINTER32) |
#define | INDEX_POINTER ((pf->do_read64) ? INDEX_POINTER64 : INDEX_POINTER32) |
#define | INDEX_BACK ((pf->do_read64) ? INDEX_BACK64 : INDEX_BACK32) |
#define | SECOND_POINTER ((pf->do_read64) ? SECOND_POINTER64 : SECOND_POINTER32) |
#define | SECOND_BACK ((pf->do_read64) ? SECOND_BACK64 : SECOND_BACK32) |
#define | ENC_TYPE ((pf->do_read64) ? ENC_TYPE64 : ENC_TYPE32) |
#define | PST_SIGNATURE 0x4E444221 |
#define | ITEM_COUNT_OFFSET32 0x1f0 |
#define | LEVEL_INDICATOR_OFFSET32 0x1f3 |
#define | BACKLINK_OFFSET32 0x1f8 |
#define | ITEM_SIZE32 12 |
#define | DESC_SIZE32 16 |
#define | INDEX_COUNT_MAX32 41 |
#define | DESC_COUNT_MAX32 31 |
#define | ITEM_COUNT_OFFSET64 0x1e8 |
#define | LEVEL_INDICATOR_OFFSET64 0x1eb |
#define | BACKLINK_OFFSET64 0x1f8 |
#define | ITEM_SIZE64 24 |
#define | DESC_SIZE64 32 |
#define | INDEX_COUNT_MAX64 20 |
#define | DESC_COUNT_MAX64 15 |
#define | BLOCK_SIZE 512 |
#define | DESC_BLOCK_SIZE 512 |
#define | ITEM_COUNT_OFFSET (size_t)((pf->do_read64) ? ITEM_COUNT_OFFSET64 : ITEM_COUNT_OFFSET32) |
#define | LEVEL_INDICATOR_OFFSET (size_t)((pf->do_read64) ? LEVEL_INDICATOR_OFFSET64 : LEVEL_INDICATOR_OFFSET32) |
#define | BACKLINK_OFFSET (size_t)((pf->do_read64) ? BACKLINK_OFFSET64 : BACKLINK_OFFSET32) |
#define | ITEM_SIZE (size_t)((pf->do_read64) ? ITEM_SIZE64 : ITEM_SIZE32) |
#define | DESC_SIZE (size_t)((pf->do_read64) ? DESC_SIZE64 : DESC_SIZE32) |
#define | INDEX_COUNT_MAX (int32_t)((pf->do_read64) ? INDEX_COUNT_MAX64 : INDEX_COUNT_MAX32) |
#define | DESC_COUNT_MAX (int32_t)((pf->do_read64) ? DESC_COUNT_MAX64 : DESC_COUNT_MAX32) |
#define | SAFE_FREE(x) {if (x) free(x);} |
#define | MALLOC_EMAIL(x) { if (!x->email) { x->email = (pst_item_email*) xmalloc(sizeof(pst_item_email)); memset(x->email, 0, sizeof(pst_item_email) );} } |
#define | MALLOC_FOLDER(x) { if (!x->folder) { x->folder = (pst_item_folder*) xmalloc(sizeof(pst_item_folder)); memset(x->folder, 0, sizeof(pst_item_folder) );} } |
#define | MALLOC_CONTACT(x) { if (!x->contact) { x->contact = (pst_item_contact*) xmalloc(sizeof(pst_item_contact)); memset(x->contact, 0, sizeof(pst_item_contact) );} } |
#define | MALLOC_MESSAGESTORE(x) { if (!x->message_store) { x->message_store = (pst_item_message_store*) xmalloc(sizeof(pst_item_message_store)); memset(x->message_store, 0, sizeof(pst_item_message_store));} } |
#define | MALLOC_JOURNAL(x) { if (!x->journal) { x->journal = (pst_item_journal*) xmalloc(sizeof(pst_item_journal)); memset(x->journal, 0, sizeof(pst_item_journal) );} } |
#define | MALLOC_APPOINTMENT(x) { if (!x->appointment) { x->appointment = (pst_item_appointment*) xmalloc(sizeof(pst_item_appointment)); memset(x->appointment, 0, sizeof(pst_item_appointment) );} } |
#define | LIST_COPY(targ, type) |
#define | LIST_COPY_TIME(targ) |
#define | LIST_COPY_SIZE(targ, type, mysize) |
#define | NULL_CHECK(x) { if (!x) { DEBUG_EMAIL(("NULL_CHECK: Null Found\n")); break;} } |
#define | MOVE_NEXT(targ) |
#define | PST_PTR_BLOCK_SIZE 0x120 |
Typedefs | |
typedef pst_block_header | pst_block_header |
typedef pst_id2_assoc32 | pst_id2_assoc32 |
typedef pst_id2_assoc | pst_id2_assoc |
typedef pst_table3_rec32 | pst_table3_rec32 |
typedef pst_table3_rec | pst_table3_rec |
typedef pst_block_hdr | pst_block_hdr |
typedef pst_x_attrib | pst_x_attrib |
Functions | |
int | pst_open (pst_file *pf, char *name) |
int | pst_close (pst_file *pf) |
pst_desc_ll * | pst_getTopOfFolders (pst_file *pf, pst_item *root) |
size_t | pst_attach_to_mem (pst_file *pf, pst_item_attach *attach, char **b) |
size_t | pst_attach_to_file (pst_file *pf, pst_item_attach *attach, FILE *fp) |
size_t | pst_attach_to_file_base64 (pst_file *pf, pst_item_attach *attach, FILE *fp) |
int | pst_load_index (pst_file *pf) |
pst_desc_ll * | pst_getNextDptr (pst_desc_ll *d) |
int | pst_load_extended_attributes (pst_file *pf) |
size_t | pst_decode_desc (pst_file *pf, pst_descn *desc, char *buf) |
size_t | pst_decode_table (pst_file *pf, struct pst_table_ptr_structn *table, char *buf) |
size_t | pst_decode_index (pst_file *pf, pst_index *index, char *buf) |
size_t | pst_decode_assoc (pst_file *pf, pst_id2_assoc *assoc, char *buf) |
size_t | pst_decode_type3 (pst_file *pf, pst_table3_rec *table3_rec, char *buf) |
int | pst_build_id_ptr (pst_file *pf, off_t offset, int32_t depth, uint64_t linku1, uint64_t start_val, uint64_t end_val) |
void | record_descriptor (pst_file *pf, pst_desc_ll *d_ptr, uint64_t parent_id) |
add the d_ptr descriptor into the global tree | |
int | pst_build_desc_ptr (pst_file *pf, off_t offset, int32_t depth, uint64_t linku1, uint64_t *high_id, uint64_t start_val, uint64_t end_val) |
pst_item * | pst_parse_item (pst_file *pf, pst_desc_ll *d_ptr) |
void | freeall (pst_subblocks *subs, pst_block_offset_pointer *p1, pst_block_offset_pointer *p2, pst_block_offset_pointer *p3, pst_block_offset_pointer *p4, pst_block_offset_pointer *p5, pst_block_offset_pointer *p6, pst_block_offset_pointer *p7) |
pst_num_array * | pst_parse_block (pst_file *pf, uint64_t block_id, pst_index2_ll *i2_head, pst_num_array *na_head) |
int | pst_process (pst_num_array *list, pst_item *item, pst_item_attach *attach) |
void | pst_free_list (pst_num_array *list) |
void | pst_free_id2 (pst_index2_ll *head) |
void | pst_free_id (pst_index_ll *head) |
void | pst_free_desc (pst_desc_ll *head) |
void | pst_free_xattrib (pst_x_attrib_ll *x) |
pst_index2_ll * | pst_build_id2 (pst_file *pf, pst_index_ll *list, pst_index2_ll *head_ptr) |
void | pst_freeItem (pst_item *item) |
int | pst_getBlockOffsetPointer (pst_file *pf, pst_index2_ll *i2_head, pst_subblocks *subblocks, uint32_t offset, pst_block_offset_pointer *p) |
The offset might be zero, in which case we have no data, so return a pair of null pointers. | |
int | pst_getBlockOffset (char *buf, size_t read_size, uint32_t i_offset, uint32_t offset, pst_block_offset *p) |
pst_index_ll * | pst_getID (pst_file *pf, uint64_t id) |
pst_index_ll * | pst_getID2 (pst_index2_ll *ptr, uint64_t id) |
pst_desc_ll * | pst_getDptr (pst_file *pf, uint64_t id) |
find the id in the descriptor tree rooted at pf->d_head | |
void | pst_printDptr (pst_file *pf, pst_desc_ll *ptr) |
void | pst_printIDptr (pst_file *pf) |
void | pst_printID2ptr (pst_index2_ll *ptr) |
size_t | pst_read_block_size (pst_file *pf, off_t offset, size_t size, char **buf) |
Read a block of data from file into memory. | |
int | pst_decrypt (uint64_t id, char *buf, size_t size, unsigned char type) |
uint64_t | pst_getIntAt (pst_file *pf, char *buf) |
uint64_t | pst_getIntAtPos (pst_file *pf, off_t pos) |
size_t | pst_getAtPos (pst_file *pf, off_t pos, void *buf, size_t size) |
Read part of the pst file. | |
size_t | pst_ff_getIDblock_dec (pst_file *pf, uint64_t id, char **buf) |
Get an ID block from file using _pst_ff_getIDblock and decrypt if necessary. | |
size_t | pst_ff_getIDblock (pst_file *pf, uint64_t id, char **buf) |
Read a block of data from file into memory. | |
size_t | pst_ff_getID2block (pst_file *pf, uint64_t id2, pst_index2_ll *id2_head, char **buf) |
size_t | pst_ff_getID2data (pst_file *pf, pst_index_ll *ptr, pst_holder *h) |
size_t | pst_ff_compile_ID (pst_file *pf, uint64_t id, pst_holder *h, size_t size) |
int | pst_stricmp (char *a, char *b) |
int | pst_strincmp (char *a, char *b, size_t x) |
size_t | pst_fwrite (const void *ptr, size_t size, size_t nmemb, FILE *stream) |
char * | pst_wide_to_single (char *wt, size_t size) |
char * | pst_rfc2426_escape (char *str) |
int | pst_chr_count (char *str, char x) |
char * | pst_rfc2425_datetime_format (FILETIME *ft) |
char * | pst_rfc2445_datetime_format (FILETIME *ft) |
Variables | |
unsigned char | comp_enc [] |
unsigned char | comp_high1 [] |
unsigned char | comp_high2 [] |
cache_list_node * | cache_head |
cache_list_node * | cache_tail |
cache_list_node * | lostfound_head |
int | cache_count |
|
Definition at line 13 of file libpst.c. Referenced by unicode_init(), utf8to16(), vb_utf16to8(), vbcheck(), vbgrow(), vbskip(), vsncat(), vsnprepend(), and vsskip(). |
|
Definition at line 553 of file libpst.c. Referenced by pst_build_desc_ptr(), and pst_build_id_ptr(). |
|
|
|
|
|
Definition at line 549 of file libpst.c. Referenced by pst_build_id_ptr(). |
|
Definition at line 550 of file libpst.c. Referenced by pst_build_desc_ptr(). |
|
Definition at line 557 of file libpst.c. Referenced by pst_build_desc_ptr(). |
|
|
|
|
|
|
|
Definition at line 537 of file libpst.c. Referenced by pst_build_desc_ptr(). |
|
|
|
Definition at line 39 of file libpst.c. Referenced by pst_open(). |
|
|
|
|
|
Definition at line 34 of file libpst.c. Referenced by pst_open(). |
|
|
|
|
|
Definition at line 36 of file libpst.c. Referenced by pst_open(). |
|
|
|
|
|
Definition at line 556 of file libpst.c. Referenced by pst_build_desc_ptr(), and pst_build_id_ptr(). |
|
|
|
|
|
Definition at line 35 of file libpst.c. Referenced by pst_open(). |
|
|
|
|
|
Definition at line 16 of file libpst.c. Referenced by pst_open(). |
|
Definition at line 17 of file libpst.c. Referenced by pst_open(). |
|
Definition at line 18 of file libpst.c. Referenced by pst_open(). |
|
|
|
|
|
|
|
|
|
Definition at line 536 of file libpst.c. Referenced by pst_build_desc_ptr(), and pst_build_id_ptr(). |
|
|
|
|
|
|
|
|
|
Value: { \
targ = type realloc(targ, list->items[x]->size+1); \
memcpy(targ, list->items[x]->data, list->items[x]->size); \
memset(((char*)targ)+list->items[x]->size, 0, (size_t)1); \
}
Definition at line 1763 of file libpst.c. Referenced by pst_process(). |
|
Value: { \ mysize = list->items[x]->size; \ if (mysize) { \ targ = type realloc(targ, mysize); \ memcpy(targ, list->items[x]->data, mysize); \ } \ else { \ SAFE_FREE(targ); \ targ = NULL; \ } \ } Definition at line 1776 of file libpst.c. Referenced by pst_process(). |
|
Value: { \ targ = (FILETIME*) realloc(targ, sizeof(FILETIME)); \ memcpy(targ, list->items[x]->data, list->items[x]->size); \ LE32_CPU(targ->dwLowDateTime); \ LE32_CPU(targ->dwHighDateTime); \ } Definition at line 1769 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1761 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1758 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1756 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1757 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1760 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1759 of file libpst.c. Referenced by pst_process(). |
|
Value: { \ if (next){\ if (!targ) {\ DEBUG_EMAIL(("MOVE_NEXT: Target is NULL. Will stop processing this option\n"));\ break;\ }\ targ = targ->next;\ if (!targ) {\ DEBUG_EMAIL(("MOVE_NEXT: Target is NULL after next. Will stop processing this option\n"));\ break;\ }\ next=0;\ }\ } Definition at line 1790 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1788 of file libpst.c. Referenced by pst_process(). |
|
|
|
|
|
Definition at line 1752 of file libpst.c. Referenced by pst_freeItem(). |
|
Definition at line 38 of file libpst.c. Referenced by pst_open(). |
|
|
|
|
|
Definition at line 37 of file libpst.c. Referenced by pst_open(). |
|
|
|
|
|
|
|
|
|
Referenced by pst_decode_assoc(). |
|
Referenced by pst_decode_assoc(). |
|
Referenced by pst_decode_type3(). |
|
Referenced by pst_decode_type3(). |
|
|
|
Definition at line 1279 of file libpst.c. References pst_subblock::buf, pst_block_offset_pointer::from, pst_block_offset_pointer::needfree, pst_subblocks::subblock_count, and pst_subblocks::subs. Referenced by pst_parse_block(). |
|
Definition at line 290 of file libpst.c. References pst_item_attach::data, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_item_attach::id_val, pst_ff_getID2data(), pst_fwrite(), pst_getID(), pst_index_ll, and pst_item_attach::size. Referenced by write_separate_attachment(). |
|
Definition at line 314 of file libpst.c. References base64_encode(), pst_holder::base64_extra, pst_holder::base64_extra_chars, pst_item_attach::data, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_item_attach::id_val, pst_ff_getID2data(), pst_fwrite(), pst_getID(), pst_index_ll, and pst_item_attach::size. Referenced by write_inline_attachment(). |
|
Definition at line 268 of file libpst.c. References DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_item_attach::id_val, pst_ff_getID2data(), pst_getID(), pst_index_ll, and pst_item_attach::size. |
|
|
Definition at line 3708 of file libpst.c. References DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, DEBUG_WARN, pst_file::do_read64, pst_index_tree::id, pst_id2_assoc::id, pst_index2_tree::id, pst_id2_assoc::id2, pst_index2_tree::id2, LE16_CPU, pst_index2_tree::next, pst_index_tree::offset, pst_decode_assoc(), pst_getID(), pst_index2_ll, pst_index_ll, pst_read_block_size(), pst_index_tree::size, pst_id2_assoc::table2, pst_index_tree::u1, WARN, and xmalloc(). Referenced by pst_load_extended_attributes(), and pst_parse_item(). |
|
|
Definition at line 4697 of file libpst.c. Referenced by pst_rfc2426_escape(). |
|
Definition at line 229 of file libpst.c. References pst_file::d_head, DEBUG_ENT, DEBUG_RET, pst_file::fp, pst_file::i_head, pst_free_desc(), pst_free_id(), pst_free_xattrib(), WARN, and pst_file::x_head. Referenced by main(). |
|
Definition at line 656 of file libpst.c. References DEBUG_HEXDUMPC, DEBUG_INDEX, pst_file::do_read64, pst_id2_assoc32::id, pst_id2_assoc::id, pst_id2_assoc32::id2, pst_id2_assoc::id2, LE32_CPU, LE64_CPU, pst_id2_assoc, pst_id2_assoc32, pst_id2_assoc32::table2, and pst_id2_assoc::table2. Referenced by pst_build_id2(). |
|
Definition at line 561 of file libpst.c. References pst_desc_struct32::d_id, pst_desc_structn::d_id, DEBUG_HEXDUMPC, DEBUG_INDEX, pst_desc_struct32::desc_id, pst_desc_structn::desc_id, pst_file::do_read64, LE32_CPU, LE64_CPU, pst_desc_struct32::list_id, pst_desc_structn::list_id, pst_desc_struct32::parent_id, pst_desc_structn::parent_id, pst_desc32, pst_descn, and pst_desc_structn::u1. Referenced by pst_build_desc_ptr(). |
|
Definition at line 624 of file libpst.c. References DEBUG_HEXDUMPC, DEBUG_INDEX, pst_file::do_read64, pst_index_struct32::id, pst_index_struct::id, LE16_CPU, LE32_CPU, LE64_CPU, pst_index_struct32::offset, pst_index_struct::offset, pst_index, pst_index32, pst_index_struct32::size, pst_index_struct::size, pst_index_struct::u0, pst_index_struct32::u1, and pst_index_struct::u1. Referenced by pst_build_id_ptr(). |
|
Definition at line 595 of file libpst.c. References DEBUG_HEXDUMPC, DEBUG_INDEX, pst_file::do_read64, LE32_CPU, LE64_CPU, pst_table_ptr_struct32::offset, pst_table_ptr_structn::offset, pst_table_ptr_struct32::start, pst_table_ptr_structn::start, pst_table_ptr_struct32::u1, and pst_table_ptr_structn::u1. Referenced by pst_build_desc_ptr(), and pst_build_id_ptr(). |
|
Definition at line 684 of file libpst.c. References DEBUG_HEXDUMPC, DEBUG_INDEX, pst_file::do_read64, pst_table3_rec32::id, pst_table3_rec::id, LE32_CPU, LE64_CPU, pst_table3_rec, and pst_table3_rec32. Referenced by pst_ff_compile_ID(), and pst_parse_block(). |
|
Definition at line 4220 of file libpst.c. References comp_enc, comp_high1, comp_high2, DEBUG_ENT, DEBUG_RET, and WARN. Referenced by main(), pst_ff_compile_ID(), and pst_ff_getIDblock_dec(). |
|
Definition at line 4446 of file libpst.c. References pst_holder::base64, base64_encode(), pst_holder::base64_extra, pst_holder::base64_extra_chars, pst_holder::buf, DEBUG_EMAIL, DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_READ, DEBUG_RET, DEBUG_WARN, pst_file::encryption, pst_holder::fp, pst_table3_rec::id, LE16_CPU, LE32_CPU, pst_decode_type3(), pst_decrypt(), pst_ff_getIDblock(), pst_ff_getIDblock_dec(), and pst_fwrite(). Referenced by pst_ff_getID2data(). |
|
Definition at line 4394 of file libpst.c. References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_ff_getID2data(), pst_getID2(), pst_index2_ll, and pst_index_ll. Referenced by pst_getBlockOffsetPointer(), and pst_parse_block(). |
|
Definition at line 4412 of file libpst.c. References pst_holder::base64, base64_encode(), pst_holder::buf, DEBUG_ENT, DEBUG_READ, DEBUG_RET, pst_holder::fp, pst_index_tree::id, pst_ff_compile_ID(), pst_ff_getIDblock_dec(), pst_fwrite(), and pst_index_ll. Referenced by pst_attach_to_file(), pst_attach_to_file_base64(), pst_attach_to_mem(), and pst_ff_getID2block(). |
|
Read a block of data from file into memory.
Definition at line 4376 of file libpst.c. References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_index_tree::offset, pst_getID(), pst_index_ll, pst_read_block_size(), and pst_index_tree::size. Referenced by main(), pst_ff_compile_ID(), and pst_ff_getIDblock_dec(). |
|
Get an ID block from file using _pst_ff_getIDblock and decrypt if necessary.
Definition at line 4353 of file libpst.c. References DEBUG_ENT, DEBUG_HEXDUMPC, DEBUG_INDEX, DEBUG_RET, pst_file::encryption, pst_decrypt(), and pst_ff_getIDblock(). Referenced by main(), pst_ff_compile_ID(), pst_ff_getID2data(), and pst_parse_block(). |
|
Definition at line 3671 of file libpst.c. References pst_desc_tree::child, DEBUG_ENT, DEBUG_RET, DIE, pst_desc_tree::next, pst_desc_tree::parent, and pst_desc_ll. Referenced by pst_close(). |
|
Definition at line 3659 of file libpst.c. References DEBUG_ENT, DEBUG_RET, pst_index_tree::next, and pst_index_ll. Referenced by pst_close(). |
|
Definition at line 3647 of file libpst.c. References DEBUG_ENT, DEBUG_RET, pst_index2_tree::next, and pst_index2_ll. Referenced by pst_load_extended_attributes(), and pst_parse_item(). |
|
Definition at line 3625 of file libpst.c. References pst_num_item::data, DEBUG_ENT, DEBUG_RET, pst_num_array::items, pst_num_array::next, and pst_num_array::orig_count. Referenced by pst_load_extended_attributes(), pst_parse_block(), and pst_parse_item(). |
|
Definition at line 3695 of file libpst.c. References pst_x_attrib_ll::data, DEBUG_ENT, DEBUG_RET, and pst_x_attrib_ll::next. Referenced by pst_close(). |
|
|
Definition at line 4607 of file libpst.c. References DEBUG_ENT, DEBUG_RET, and DEBUG_WARN. Referenced by main(), pst_attach_to_file(), pst_attach_to_file_base64(), pst_ff_compile_ID(), pst_ff_getID2data(), write_email_body(), write_inline_attachment(), and write_separate_attachment(). |
|
Read part of the pst file.
Definition at line 4309 of file libpst.c. References DEBUG_ENT, DEBUG_RET, and pst_file::fp. Referenced by pst_getIntAtPos(), pst_open(), and pst_read_block_size(). |
|
Definition at line 4055 of file libpst.c. References DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_block_offset::from, LE16_CPU, and pst_block_offset::to. Referenced by pst_getBlockOffsetPointer(). |
|
The offset might be zero, in which case we have no data, so return a pair of null pointers. Or, the offset might end in 0xf, so it is an id2 pointer, in which case we read the id2 block. Otherwise, the high order 16 bits of offset is the index into the subblocks, and the (low order 16 bits of offset)>>4 is an index into the table of offsets in the subblock. Definition at line 4008 of file libpst.c. References pst_subblock::buf, DEBUG_ENT, DEBUG_RET, DEBUG_WARN, pst_block_offset_pointer::from, pst_block_offset::from, pst_subblock::i_offset, pst_block_offset_pointer::needfree, pst_ff_getID2block(), pst_getBlockOffset(), pst_index2_ll, pst_subblock::read_size, pst_subblocks::subblock_count, pst_subblocks::subs, pst_block_offset_pointer::to, and pst_block_offset::to. Referenced by pst_parse_block(). |
|
find the id in the descriptor tree rooted at pf->d_head
Definition at line 4129 of file libpst.c. References pst_desc_tree::child, pst_file::d_head, DEBUG_ENT, DEBUG_RET, pst_desc_tree::id, pst_desc_tree::next, pst_desc_tree::parent, and pst_desc_ll. Referenced by pst_build_desc_ptr(), pst_getTopOfFolders(), pst_load_extended_attributes(), and record_descriptor(). |
|
Definition at line 4079 of file libpst.c. References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_file::i_head, pst_index_tree::id, pst_index_tree::next, and pst_index_ll. Referenced by main(), pst_attach_to_file(), pst_attach_to_file_base64(), pst_attach_to_mem(), pst_build_desc_ptr(), pst_build_id2(), and pst_ff_getIDblock(). |
|
Definition at line 4103 of file libpst.c. References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_index2_tree::id, pst_index_tree::id, pst_index2_tree::id2, pst_index2_tree::next, pst_index2_ll, and pst_index_ll. Referenced by pst_ff_getID2block(), and pst_parse_item(). |
|
Definition at line 4268 of file libpst.c. References pst_file::do_read64, LE32_CPU, and LE64_CPU. Referenced by pst_build_desc_ptr(), and pst_build_id_ptr(). |
|
Definition at line 4284 of file libpst.c. References pst_file::do_read64, LE32_CPU, LE64_CPU, and pst_getAtPos(). Referenced by pst_open(). |
|
Definition at line 372 of file libpst.c. References pst_desc_tree::child, DEBUG_ENT, DEBUG_RET, pst_desc_tree::next, pst_desc_tree::parent, and pst_desc_ll. Referenced by main(). |
|
Definition at line 250 of file libpst.c. References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_entryid_struct::id, pst_item::message_store, pst_desc_ll, pst_getDptr(), and pst_item_message_store::top_of_personal_folder. Referenced by main(). |
|
|
Definition at line 349 of file libpst.c. References pst_file::d_head, DEBUG_CODE, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_file::index1, pst_file::index1_back, pst_file::index2, pst_file::index2_back, pst_build_desc_ptr(), pst_build_id_ptr(), pst_printDptr(), and WARN. Referenced by main(). |
|
Definition at line 158 of file libpst.c. References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, ENC_TYPE, FILE_SIZE_POINTER, INDEX_BACK, INDEX_POINTER, INDEX_TYPE32, INDEX_TYPE64, INDEX_TYPE_OFFSET, LE32_CPU, pst_getAtPos(), pst_getIntAtPos(), SECOND_BACK, SECOND_POINTER, unicode_init(), and WARN. Referenced by main(). |
|
|
|
Definition at line 4147 of file libpst.c. References pst_desc_tree::child, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_desc_tree::desc, pst_desc_tree::id, pst_index_tree::id, pst_desc_tree::list_index, pst_desc_tree::next, pst_desc_tree::no_child, and pst_desc_ll. Referenced by pst_load_index(). |
|
Definition at line 4173 of file libpst.c. References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_index2_tree::id, pst_index_tree::id, pst_index2_tree::id2, pst_index2_tree::next, and pst_index2_ll. Referenced by pst_load_extended_attributes(), and pst_parse_item(). |
|
Definition at line 4162 of file libpst.c. References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_file::i_head, pst_index_tree::id, pst_index_tree::next, pst_index_tree::offset, pst_index_ll, and pst_index_tree::size. |
|
|
Read a block of data from file into memory.
Definition at line 4192 of file libpst.c. References DEBUG_ENT, DEBUG_READ, DEBUG_RET, DEBUG_WARN, pst_file::fp, pst_getAtPos(), and xmalloc(). Referenced by pst_build_desc_ptr(), pst_build_id2(), pst_build_id_ptr(), and pst_ff_getIDblock(). |
|
Definition at line 4707 of file libpst.c. References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, and fileTimeToStructTM(). Referenced by write_vcard(). |
|
Definition at line 4639 of file libpst.c. References DEBUG_ENT, DEBUG_RET, and pst_chr_count(). Referenced by process(), write_appointment(), and write_vcard(). |
|
Definition at line 4720 of file libpst.c. References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, and fileTimeToStructTM(). Referenced by process(), and write_appointment(). |
|
Definition at line 4575 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 4590 of file libpst.c. Referenced by pst_process(), and write_normal_email(). |
|
Definition at line 4621 of file libpst.c. References DEBUG_ENT, DEBUG_RET, and xmalloc(). Referenced by pst_load_extended_attributes(). |
|
add the d_ptr descriptor into the global tree
Definition at line 841 of file libpst.c. References cache_count, cache_head, cache_tail, pst_desc_tree::child, pst_desc_tree::child_tail, pst_file::d_head, pst_file::d_tail, DEBUG_INDEX, DEBUG_WARN, pst_desc_tree::id, lostfound_head, cache_list_node::next, pst_desc_tree::next, pst_desc_tree::parent, cache_list_node::parent, cache_list_node::prev, pst_desc_tree::prev, pst_desc_ll, pst_getDptr(), cache_list_node::ptr, and xmalloc(). Referenced by pst_build_desc_ptr(). |
|
Definition at line 834 of file libpst.c. Referenced by pst_build_desc_ptr(), and record_descriptor(). |
|
Definition at line 831 of file libpst.c. Referenced by pst_build_desc_ptr(), and record_descriptor(). |
|
Definition at line 832 of file libpst.c. Referenced by pst_build_desc_ptr(), and record_descriptor(). |
|
Initial value: { 0x47, 0xf1, 0xb4, 0xe6, 0x0b, 0x6a, 0x72, 0x48, 0x85, 0x4e, 0x9e, 0xeb, 0xe2, 0xf8, 0x94, 0x53, 0xe0, 0xbb, 0xa0, 0x02, 0xe8, 0x5a, 0x09, 0xab, 0xdb, 0xe3, 0xba, 0xc6, 0x7c, 0xc3, 0x10, 0xdd, 0x39, 0x05, 0x96, 0x30, 0xf5, 0x37, 0x60, 0x82, 0x8c, 0xc9, 0x13, 0x4a, 0x6b, 0x1d, 0xf3, 0xfb, 0x8f, 0x26, 0x97, 0xca, 0x91, 0x17, 0x01, 0xc4, 0x32, 0x2d, 0x6e, 0x31, 0x95, 0xff, 0xd9, 0x23, 0xd1, 0x00, 0x5e, 0x79, 0xdc, 0x44, 0x3b, 0x1a, 0x28, 0xc5, 0x61, 0x57, 0x20, 0x90, 0x3d, 0x83, 0xb9, 0x43, 0xbe, 0x67, 0xd2, 0x46, 0x42, 0x76, 0xc0, 0x6d, 0x5b, 0x7e, 0xb2, 0x0f, 0x16, 0x29, 0x3c, 0xa9, 0x03, 0x54, 0x0d, 0xda, 0x5d, 0xdf, 0xf6, 0xb7, 0xc7, 0x62, 0xcd, 0x8d, 0x06, 0xd3, 0x69, 0x5c, 0x86, 0xd6, 0x14, 0xf7, 0xa5, 0x66, 0x75, 0xac, 0xb1, 0xe9, 0x45, 0x21, 0x70, 0x0c, 0x87, 0x9f, 0x74, 0xa4, 0x22, 0x4c, 0x6f, 0xbf, 0x1f, 0x56, 0xaa, 0x2e, 0xb3, 0x78, 0x33, 0x50, 0xb0, 0xa3, 0x92, 0xbc, 0xcf, 0x19, 0x1c, 0xa7, 0x63, 0xcb, 0x1e, 0x4d, 0x3e, 0x4b, 0x1b, 0x9b, 0x4f, 0xe7, 0xf0, 0xee, 0xad, 0x3a, 0xb5, 0x59, 0x04, 0xea, 0x40, 0x55, 0x25, 0x51, 0xe5, 0x7a, 0x89, 0x38, 0x68, 0x52, 0x7b, 0xfc, 0x27, 0xae, 0xd7, 0xbd, 0xfa, 0x07, 0xf4, 0xcc, 0x8e, 0x5f, 0xef, 0x35, 0x9c, 0x84, 0x2b, 0x15, 0xd5, 0x77, 0x34, 0x49, 0xb6, 0x12, 0x0a, 0x7f, 0x71, 0x88, 0xfd, 0x9d, 0x18, 0x41, 0x7d, 0x93, 0xd8, 0x58, 0x2c, 0xce, 0xfe, 0x24, 0xaf, 0xde, 0xb8, 0x36, 0xc8, 0xa1, 0x80, 0xa6, 0x99, 0x98, 0xa8, 0x2f, 0x0e, 0x81, 0x65, 0x73, 0xe4, 0xc2, 0xa2, 0x8a, 0xd4, 0xe1, 0x11, 0xd0, 0x08, 0x8b, 0x2a, 0xf2, 0xed, 0x9a, 0x64, 0x3f, 0xc1, 0x6c, 0xf9, 0xec } |
|
Initial value: { 0x41, 0x36, 0x13, 0x62, 0xa8, 0x21, 0x6e, 0xbb, 0xf4, 0x16, 0xcc, 0x04, 0x7f, 0x64, 0xe8, 0x5d, 0x1e, 0xf2, 0xcb, 0x2a, 0x74, 0xc5, 0x5e, 0x35, 0xd2, 0x95, 0x47, 0x9e, 0x96, 0x2d, 0x9a, 0x88, 0x4c, 0x7d, 0x84, 0x3f, 0xdb, 0xac, 0x31, 0xb6, 0x48, 0x5f, 0xf6, 0xc4, 0xd8, 0x39, 0x8b, 0xe7, 0x23, 0x3b, 0x38, 0x8e, 0xc8, 0xc1, 0xdf, 0x25, 0xb1, 0x20, 0xa5, 0x46, 0x60, 0x4e, 0x9c, 0xfb, 0xaa, 0xd3, 0x56, 0x51, 0x45, 0x7c, 0x55, 0x00, 0x07, 0xc9, 0x2b, 0x9d, 0x85, 0x9b, 0x09, 0xa0, 0x8f, 0xad, 0xb3, 0x0f, 0x63, 0xab, 0x89, 0x4b, 0xd7, 0xa7, 0x15, 0x5a, 0x71, 0x66, 0x42, 0xbf, 0x26, 0x4a, 0x6b, 0x98, 0xfa, 0xea, 0x77, 0x53, 0xb2, 0x70, 0x05, 0x2c, 0xfd, 0x59, 0x3a, 0x86, 0x7e, 0xce, 0x06, 0xeb, 0x82, 0x78, 0x57, 0xc7, 0x8d, 0x43, 0xaf, 0xb4, 0x1c, 0xd4, 0x5b, 0xcd, 0xe2, 0xe9, 0x27, 0x4f, 0xc3, 0x08, 0x72, 0x80, 0xcf, 0xb0, 0xef, 0xf5, 0x28, 0x6d, 0xbe, 0x30, 0x4d, 0x34, 0x92, 0xd5, 0x0e, 0x3c, 0x22, 0x32, 0xe5, 0xe4, 0xf9, 0x9f, 0xc2, 0xd1, 0x0a, 0x81, 0x12, 0xe1, 0xee, 0x91, 0x83, 0x76, 0xe3, 0x97, 0xe6, 0x61, 0x8a, 0x17, 0x79, 0xa4, 0xb7, 0xdc, 0x90, 0x7a, 0x5c, 0x8c, 0x02, 0xa6, 0xca, 0x69, 0xde, 0x50, 0x1a, 0x11, 0x93, 0xb9, 0x52, 0x87, 0x58, 0xfc, 0xed, 0x1d, 0x37, 0x49, 0x1b, 0x6a, 0xe0, 0x29, 0x33, 0x99, 0xbd, 0x6c, 0xd9, 0x94, 0xf3, 0x40, 0x54, 0x6f, 0xf0, 0xc6, 0x73, 0xb8, 0xd6, 0x3e, 0x65, 0x18, 0x44, 0x1f, 0xdd, 0x67, 0x10, 0xf1, 0x0c, 0x19, 0xec, 0xae, 0x03, 0xa1, 0x14, 0x7b, 0xa9, 0x0b, 0xff, 0xf8, 0xa3, 0xc0, 0xa2, 0x01, 0xf7, 0x2e, 0xbc, 0x24, 0x68, 0x75, 0x0d, 0xfe, 0xba, 0x2f, 0xb5, 0xd0, 0xda, 0x3d } Definition at line 120 of file libpst.c. Referenced by pst_decrypt(). |
|
Initial value: { 0x14, 0x53, 0x0f, 0x56, 0xb3, 0xc8, 0x7a, 0x9c, 0xeb, 0x65, 0x48, 0x17, 0x16, 0x15, 0x9f, 0x02, 0xcc, 0x54, 0x7c, 0x83, 0x00, 0x0d, 0x0c, 0x0b, 0xa2, 0x62, 0xa8, 0x76, 0xdb, 0xd9, 0xed, 0xc7, 0xc5, 0xa4, 0xdc, 0xac, 0x85, 0x74, 0xd6, 0xd0, 0xa7, 0x9b, 0xae, 0x9a, 0x96, 0x71, 0x66, 0xc3, 0x63, 0x99, 0xb8, 0xdd, 0x73, 0x92, 0x8e, 0x84, 0x7d, 0xa5, 0x5e, 0xd1, 0x5d, 0x93, 0xb1, 0x57, 0x51, 0x50, 0x80, 0x89, 0x52, 0x94, 0x4f, 0x4e, 0x0a, 0x6b, 0xbc, 0x8d, 0x7f, 0x6e, 0x47, 0x46, 0x41, 0x40, 0x44, 0x01, 0x11, 0xcb, 0x03, 0x3f, 0xf7, 0xf4, 0xe1, 0xa9, 0x8f, 0x3c, 0x3a, 0xf9, 0xfb, 0xf0, 0x19, 0x30, 0x82, 0x09, 0x2e, 0xc9, 0x9d, 0xa0, 0x86, 0x49, 0xee, 0x6f, 0x4d, 0x6d, 0xc4, 0x2d, 0x81, 0x34, 0x25, 0x87, 0x1b, 0x88, 0xaa, 0xfc, 0x06, 0xa1, 0x12, 0x38, 0xfd, 0x4c, 0x42, 0x72, 0x64, 0x13, 0x37, 0x24, 0x6a, 0x75, 0x77, 0x43, 0xff, 0xe6, 0xb4, 0x4b, 0x36, 0x5c, 0xe4, 0xd8, 0x35, 0x3d, 0x45, 0xb9, 0x2c, 0xec, 0xb7, 0x31, 0x2b, 0x29, 0x07, 0x68, 0xa3, 0x0e, 0x69, 0x7b, 0x18, 0x9e, 0x21, 0x39, 0xbe, 0x28, 0x1a, 0x5b, 0x78, 0xf5, 0x23, 0xca, 0x2a, 0xb0, 0xaf, 0x3e, 0xfe, 0x04, 0x8c, 0xe7, 0xe5, 0x98, 0x32, 0x95, 0xd3, 0xf6, 0x4a, 0xe8, 0xa6, 0xea, 0xe9, 0xf3, 0xd5, 0x2f, 0x70, 0x20, 0xf2, 0x1f, 0x05, 0x67, 0xad, 0x55, 0x10, 0xce, 0xcd, 0xe3, 0x27, 0x3b, 0xda, 0xba, 0xd7, 0xc2, 0x26, 0xd4, 0x91, 0x1d, 0xd2, 0x1c, 0x22, 0x33, 0xf8, 0xfa, 0xf1, 0x5a, 0xef, 0xcf, 0x90, 0xb6, 0x8b, 0xb5, 0xbd, 0xc0, 0xbf, 0x08, 0x97, 0x1e, 0x6c, 0xe2, 0x61, 0xe0, 0xc6, 0xc1, 0x59, 0xab, 0xbb, 0x58, 0xde, 0x5f, 0xdf, 0x60, 0x79, 0x7e, 0xb2, 0x8a } Definition at line 139 of file libpst.c. Referenced by pst_decrypt(). |
|
Definition at line 833 of file libpst.c. Referenced by pst_build_desc_ptr(), and record_descriptor(). |