File: TODO

package info (click to toggle)
msn-pecan 0.1.1-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 1,932 kB
  • ctags: 2,310
  • sloc: ansic: 22,265; makefile: 372; sh: 7
file content (102 lines) | stat: -rw-r--r-- 2,388 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
== General ==

 * Remove sync.c, it only complicates things. Also, there's issues with the
   initial login (new account).
 * Make it a standalone library; no dependency on libpurple
 * Don't rely on GLib's mainloop (Adium and Instantbird would benefit from
   this). For this we need some kind of wrapper so that we can use GIO and
   libpurple's IO through the same API.
 * Properly use and test pn_buffer
 * Properly use and test pn_parser

== GObjectification ==

The objective is that all of the important structures in msn-pecan are
developed using GObject.

 * Network I/O
   * Command server (done)
   * HTTP server (done)
   * Notification server
   * Switchboard server
   * Direct Connection (done)
   * Nexus (partially done)

 * AddressBook
   * Contact
   * Group
   * Contact List

 * P2P

== Unit Testing ==

For this better modularization is required so individual modules can tested
independently. Also, to be able to work without libpurple.

=== Modularization ===

 * Network I/O
 * AddressBook
 * P2P

=== Unit Tests ===

 * Utilities
   * Command parsing
   * Message parsing
   * Transaction handling
 * Network I/O
 * AddressBook
 * P2P

== Documentation ==

 * Overview, architecture
 * Create design diagrams
 * Use doxygen
 * Add documentation to: http://imfreedom.org/wiki/index.php/MSN
 * Examples of communications (client/server, p2p)

== Other ideas ==

 * Use libsoup
 * Allow cancel in authorization dialog
 * Allow alias from the add buddy dialog

== Standalone ==

We need to remove libpurple dependencies:

 * Replace purple_account_get_bool
 * Replace md5 utils
 * Replace base64 utils
 * Replace url encode/decode utils
 * Replace purple_proxy with gnio
   * Improve gnio proxy support
 * Replace purple_ssl
   * Align with wocky
* Split the libpurple prpl

== Cleanups ==

 * Remove peer-call started, use session-id
 * Remove peer-call xfer
 * Fix request_object callbacks
 * Remove PECAN_DEBUG_SLP
 * Move msn.c to libpurple/plugin.c
 * Remove 'cmdproc' from 'transaction'
 * Fix 'timeout_status'
 * Create a 'login' signal
 * Switch to 'struct pn_foo' style instead of PnFoo
 * Remove all '_private' headers
 * Remove ab priv.h
 * Avoid pn_obj_get_foo madness; sometimes it's ok to export fields: see
   pn_buffer.h
 * Update code-style similarto linux kernel

=== Use pn_ prefix ===

 * Cleanup 'page'
 * Cleanup 'msn'
 * Cleanup 'cmd' parsing