comparison libpurple/protocols/msn/xfer.h @ 31046:b4064198e017

Add functions for reading and writing a MsnFileContext which negates the need for any more packing. Fixes #12856.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Fri, 17 Dec 2010 08:53:34 +0000
parents 72e6fa6caecc
children 9ccbd0302bb2
comparison
equal deleted inserted replaced
31045:f91501dc406e 31046:b4064198e017
23 */ 23 */
24 24
25 25
26 #include "slpcall.h" 26 #include "slpcall.h"
27 27
28 #define MAX_FILE_NAME_LEN 260 /* MAX_PATH in Windows */
29
30 /**
31 * The context data for a file transfer request
32 */
33 typedef struct
34 {
35 guint32 length; /*< Length of header */
36 guint32 version; /*< MSN version */
37 guint64 file_size; /*< Size of file */
38 guint32 type; /*< Transfer type */
39 gunichar2 file_name[MAX_FILE_NAME_LEN]; /*< Self-explanatory */
40 gchar unknown1[30]; /*< Used somehow for background sharing */
41 guint32 unknown2; /*< Possibly for background sharing as well */
42 gchar *preview; /*< File preview data, 96x96 PNG */
43 gsize preview_len;
44 } MsnFileContext;
45
46 #define MSN_FILE_CONTEXT_SIZE (4*4 + 1*8 + 2*MAX_FILE_NAME_LEN + 30)
47
28 void msn_xfer_init(PurpleXfer *xfer); 48 void msn_xfer_init(PurpleXfer *xfer);
29 void msn_xfer_cancel(PurpleXfer *xfer); 49 void msn_xfer_cancel(PurpleXfer *xfer);
30 50
31 gssize msn_xfer_write(const guchar *data, gsize len, PurpleXfer *xfer); 51 gssize msn_xfer_write(const guchar *data, gsize len, PurpleXfer *xfer);
32 gssize msn_xfer_read(guchar **data, PurpleXfer *xfer); 52 gssize msn_xfer_read(guchar **data, PurpleXfer *xfer);
33 53
34 void msn_xfer_completed_cb(MsnSlpCall *slpcall, 54 void msn_xfer_completed_cb(MsnSlpCall *slpcall,
35 const guchar *body, gsize size); 55 const guchar *body, gsize size);
36 void msn_xfer_end_cb(MsnSlpCall *slpcall, MsnSession *session); 56 void msn_xfer_end_cb(MsnSlpCall *slpcall, MsnSession *session);
57
58 gchar *
59 msn_file_context_to_wire(MsnFileContext *header);
60
61 MsnFileContext *
62 msn_file_context_from_wire(const char *buf, gsize len);
63