#include "define.h"
#include "libstrfunc.h"
#include "vbuf.h"
#include "libpst.h"
#include "timeconv.h"
Include dependency graph for libpst.c:
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 |
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) |
void | add_descriptor_to_list (pst_desc_ll *node, pst_desc_ll **head, pst_desc_ll **tail) |
add a pst descriptor node to a linked list of such nodes. | |
void | record_descriptor (pst_file *pf, pst_desc_ll *node) |
add a pst descriptor node into the global tree. | |
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) |
int | pst_build_desc_ptr (pst_file *pf, off_t offset, int32_t depth, uint64_t linku1, 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 [] |
|
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 657 of file libpst.c. Referenced by pst_build_desc_ptr(), and pst_build_id_ptr(). |
|
|
|
|
|
Definition at line 653 of file libpst.c. Referenced by pst_build_id_ptr(). |
|
Definition at line 654 of file libpst.c. Referenced by pst_build_desc_ptr(). |
|
Definition at line 661 of file libpst.c. Referenced by pst_build_desc_ptr(). |
|
|
|
|
|
|
|
Definition at line 641 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 660 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 640 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 1662 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 1675 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 1668 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1660 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1657 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1655 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1656 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1659 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1658 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 1689 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 1687 of file libpst.c. Referenced by pst_process(). |
|
|
|
|
|
Definition at line 1651 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(). |
|
|
|
add a pst descriptor node to a linked list of such nodes.
Definition at line 258 of file libpst.c. References DEBUG_ENT, DEBUG_RET, pst_desc_tree::next, pst_desc_tree::prev, and pst_desc_ll. Referenced by record_descriptor(). |
|
Definition at line 1177 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 393 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(). |
Here is the call graph for this function:
|
Definition at line 422 of file libpst.c. References base64_encode(), 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(). |
Here is the call graph for this function:
|
Definition at line 371 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. |
Here is the call graph for this function:
|
Here is the call graph for this function:
|
Definition at line 3606 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(). |
Here is the call graph for this function:
|
Here is the call graph for this function:
|
Definition at line 4613 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(). |
Here is the call graph for this function:
|
Definition at line 760 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 665 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 728 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 699 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 788 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 4120 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 4344 of file libpst.c. References pst_holder::base64, base64_encode(), base64_encode_multiple(), 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(). |
Here is the call graph for this function:
|
Definition at line 4294 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(). |
Here is the call graph for this function:
|
Definition at line 4312 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(). |
Here is the call graph for this function:
|
Read a block of data from file into memory.
Definition at line 4276 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(). |
Here is the call graph for this function:
|
Get an ID block from file using _pst_ff_getIDblock and decrypt if necessary.
Definition at line 4253 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(). |
Here is the call graph for this function:
|
Definition at line 3569 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 3557 of file libpst.c. References DEBUG_ENT, DEBUG_RET, pst_index_tree::next, and pst_index_ll. Referenced by pst_close(). |
|
Definition at line 3545 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 3523 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 3593 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 4523 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 4209 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 3954 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 3907 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(). |
Here is the call graph for this function:
|
find the id in the descriptor tree rooted at pf->d_head
Definition at line 4028 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_getTopOfFolders(), pst_load_extended_attributes(), and record_descriptor(). |
|
Definition at line 3978 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 4002 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 4168 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 4184 of file libpst.c. References pst_file::do_read64, LE32_CPU, LE64_CPU, and pst_getAtPos(). Referenced by pst_open(). |
Here is the call graph for this function:
|
Definition at line 481 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 339 of file libpst.c. References DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_desc_tree::desc, pst_entryid_struct::id, pst_desc_tree::id, pst_desc_tree::list_index, pst_item::message_store, pst_desc_tree::parent_id, pst_desc_ll, pst_getDptr(), record_descriptor(), pst_item_message_store::top_of_personal_folder, and xmalloc(). Referenced by main(). |
Here is the call graph for this function:
|
Here is the call graph for this function:
|
Definition at line 460 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(). |
Here is the call graph for this function:
|
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(). |
Here is the call graph for this function:
|
Here is the call graph for this function:
|
Here is the call graph for this function:
|
Definition at line 4047 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 4073 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 4062 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. |
|
Here is the call graph for this function:
|
Read a block of data from file into memory.
Definition at line 4092 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(). |
Here is the call graph for this function:
|
Definition at line 4623 of file libpst.c. References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, and fileTimeToStructTM(). Referenced by write_vcard(). |
Here is the call graph for this function:
|
Definition at line 4555 of file libpst.c. References DEBUG_ENT, DEBUG_RET, and pst_chr_count(). Referenced by process(), write_appointment(), and write_vcard(). |
Here is the call graph for this function:
|
Definition at line 4636 of file libpst.c. References DEBUG_ENT, DEBUG_INFO, DEBUG_RET, and fileTimeToStructTM(). Referenced by process(), and write_appointment(). |
Here is the call graph for this function:
|
Definition at line 4491 of file libpst.c. Referenced by pst_process(). |
|
Definition at line 4506 of file libpst.c. Referenced by pst_process(), and write_normal_email(). |
|
Definition at line 4537 of file libpst.c. References DEBUG_ENT, DEBUG_RET, and xmalloc(). Referenced by pst_load_extended_attributes(). |
Here is the call graph for this function:
|
add a pst descriptor node into the global tree.
Definition at line 282 of file libpst.c. References add_descriptor_to_list(), pst_desc_tree::child, pst_desc_tree::child_tail, pst_file::d_head, pst_file::d_tail, DEBUG_ENT, DEBUG_INDEX, DEBUG_RET, pst_desc_tree::id, pst_desc_tree::next, pst_desc_tree::no_child, pst_desc_tree::parent, pst_desc_tree::parent_id, pst_desc_tree::prev, pst_desc_ll, and pst_getDptr(). Referenced by pst_build_desc_ptr(), and pst_getTopOfFolders(). |
Here is the call graph for this function:
|
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(). |