- fixed packing bug in new upload header struct
[barry.git] / Changelog
blobf59ba5e0a7bbd0856c182c719659a752de451acb
1 Release: version 0.0.2 - 2005/??/??
2 ------------------------------------------------------------------------------
3 2005/12/22
4         - added autoconf to Todo list
5         - refactored the protocol structures so that record structs can
6                 be reused for upload and download
7         - with new protostructs, more header control is handled by
8                 controller.cc instead of record.cc parsers and builders
9         - parser code now accepts an offset, to govern start of record data
10         - changed Data sizes from int to size_t and removed casts
11         - removed unneeded Parser::GetHeaderSize() (new protostructs make
12                 this obsolete)
13         - added Calendar::Build() for calendar uploads
14 2005/12/10
15         - added s11n-boost.h serialization templates for boost::serialization
16         - added boost::serialization to build
17         - minor change in usbwrap.cc to display error codes in decimal
18         - added SizePacket special case code to Socket::Send()... this is
19                 required when uploaded packet size is a multiple of 0x40,
20                 a special 3 byte size packet is sent
21         - moved some record class variables to public: so they can be
22                 properly serialized
23         - fixed variable name but in RecordBuilder template
24         - added -f switch to btool, for saving and loading of record data
25         - added -s switch to btool, for uploading saved data back to handheld
26         - added Controller::SaveDatabase()
27 2005/12/08
28         - fixed potential casting / pointer bug in controller.cc
29         - added builder.h, to support uploading
30         - minor comment fixes in parser.h
31         - added preliminary Contact protocol record building support
32         - fixed field order bug in ContactRecord protocol struct
33         - Contact record.h class now saves unknown Group Link field,
34                 for later saving
35 2005/12/07
36         - added -fno-strict-aliasing to compiler flags so gcc-4.0.x won't
37                 optimize away protocol struct casts
38                 see: 
39                 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25235
40                 http://mail-index.netbsd.org/tech-kern/2003/08/11/0001.html
41                 http://groups.google.ca/group/comp.lang.c++.moderated/ \
42                         browse_thread/thread/e7bf096832526f8e/5714701b \
43                         02a2a3cc?hl=en#5714701b02a2a3cc
44         - changed headers so that any low level protocol-specific sizes and
45                 structs are completely hidden in the library...
46                 this adds library-only header: protostructs.h
48 Release: version 0.0.1 - 2005/11/25
49 ------------------------------------------------------------------------------
50 2005/11/25
51         - added barry.h for documentation purposes and application usage
52         - updated README for release
53         - renamed SBError exception class to BError
54         - updated Doxyfile to version 1.4.5
55         - added more doxygen comments
56 2005/11/24
57         - added conversion routines (and tests) between time_t and min1900_t
58         - added -v option to btool to dynamically control protocol dumping
59         - removed duplicated database database table display in controller.cc
60         - minor spelling corrections
61         - added copyright to usbwrap.{h,cc} as per earlier meeting
62         - added support for Old protocol Calendar entries
63 2005/11/20
64         - added legal.txt, to save typing when adding new source files
65         - ignore test-base64 file (cvsignore)
66         - added contact-to-ldif generation, and updated supporting code
67         - added argument to btool to support contact-to-ldif operation
68         - added Contact::GetPostalAddress()
69         - added README documentation in preparation for future release
70 2005/11/19
71         - added parser.{h,cc} virtual wrapper to generalize LoadDatabase()
72         - added code to socket.cc's Packet() command to re-receive on
73                 reception of empty packets... this seems to be a signal
74                 from the device that it needs more time for long transfers
75                 Current limit: 10 blank packets before exception is thrown
76                 Observed maximum blank count: 1
77         - added MessageRecord and OldMessageRecord to protocol.h
78         - changed common record field structs to one CommonField struct
79         - increased default USB timeout to 10 seconds (some loaded devices
80                 seem to need more time...)
81         - reorganized record.{h,cc} to try to reduce the code duplication
82         - record.h classes now "know" the sizes of their corresponding
83                 protocol structs... this may cause trouble down the line
84                 with Python, if used(?)
85         - added Message class for Email records
86         - removed the "Get*" database functions and replaced with
87                 general LoadDatabase() call, which loads any database
88                 available, and parses it with a Parser object
89         - added GetDBID() for searching for database numbers via name
90         - added test code to retrieve and display all email
91         - cleaned up comments
92         - renamed blackberry.{h,cc} to controller.{h,cc}
93         - renamed bbtool.cc to btool.cc
94         - added Makefile.conf
95         - added copyright notices to source files
96         - added COPYING file with GPL
97         - put parser in Barry namespace, and added auto_ptr-like mode for
98                 store object pointers
99         - added doxygen docs
100         - added header comments to convo.awk script
101         - removed Test() function in Controller object, and made class
102                 better suited to its general API purpose
103         - changed OpenMode() so it loads command table and DBDB... it is now
104                 a public API function
105         - moved Controller test code to btool.cc and made tool more
106                 generically useful... can now download any DB by name on
107                 the command line
108         - added mode checks to Controller
109         - added -t and -d command line options to btool
110         - added base64 routines from John Walker / Fourmilab and Citadel/UX
111         - converted base64 routines into an API, instead of hardcoded
112                 file based
113 2005/11/18
114         - changed project name to Barry, including namespaces
115         - renamed sbcommon.* to common.*
116         - increased USB default timeout to 2 seconds
117         - fixed formatting bug in Data operator<< output
118         - cleaned up the protocol packet structs, getting rid of the
119                 confusing param/simple split... param is now the tableCmd
120                 from the Command Table
121         - moved protocol structs from record.h to protocol.h
122         - added support for older version of the USB protocol, which matches
123                 the Cassis spec more closely
124         - fixed the hardcoded offsets in blackberry.cc's protocol parsing
125         - fixed Socket::Close() so on error, socket flags are reset.
126                 This stops Close() from being called twice on exception
127                 destructors
128 2005/11/17
129         - added Doxyfile to the project
130         - tuned Makefile
131         - added mode selection support to Blackberry class (RIM Desktop,
132                 RIM Bypass, and RIM_JavaLoader)
133                 Mode selection governs which socket is used in subsequent
134                 data transfers.
135         - added Command Table parsing and protocol support
136                 Blackberry class, and CommandTable record class
137         - added Database database parsing and protocol support
138                 Blackberry class and DatabaseDatabase record class
139         - added Address book retrieval support - dumps data to stdout for now
140         - fixed bug in CopyOnWrite mode in Data class, where could allocate
141                 less buffer than data copied
142         - added "easy exception" debug output macro
143         - fixed minor spelling error in protocol.cc
144         - fixed ModeSelectCommand protocol structure - it is not a parameter
145                 command, but uses the unknown slots for socket and flag
146                 data
147         - removed hardcoded socket numbers from protocol.h
148         - fixed bug in socket.cc:Open() where packet size was not properly
149                 saved
150         - implemented socket::Close()
151         - fixed sequence number checks, so it is reset properly on socket 0
152         - added Socket::NextRecord() for multiple record data transfers
153         - fixed input handling bug in translate.cc
154 2005/11/11
155         - added .cvsignore files to project
156         - added README notes to document the source architecture
157         - added dbsetup data script, which shows how to get into database
158                 mode, using the RIM Desktop mode, and open a socket
159         - added blackberry.{h,cc} class
160         - added command line parameters to bbtool.cc
161                 -l = list only
162                 -p = specify pin of blackberry device
163         - added blackberry test code in bbtool.cc - debugging the initial
164                 opening protocol: sockets, modes, etc... see dbsetup for
165                 results
166         - added copy-on-write functionality to Data class, so it can be used
167                 with plain data buffers with little performance impact
168         - added eout() and ddout() debugging - to separate:
169                 - regular debug output
170                 - exception debug output (should probably be logged to
171                         syslog someday, and never turned off)
172                 - raw data dump output
173         - changed errno SBError exception handler to try to decode the error
174                 numbers into english (limited success)
175         - fixed probe and socket USB Bulk message handling, so they don't
176                 use PollCompletions(), but use IO::Wait() (libusb_io_wait())
177         - added common packet size checker in protocol.cc
178         - fixed unpacked protocol packet structs... using gcc's
179                 __attribute__ ((packed)) ... see protocol.h
180         - added ModeSelectCommand structure (protocol.h)
181         - finished Socket::Open() call  (Close() not yet implemented)
182         - moved Socket::Send/Receive() out of private, as they can be used
183                 for socket 0 operations.
184         - cleaned up pointer management with macros:
185                 MAKE_PACKET()
186                 COMMAND()
187                 IS_COMMAND()
188         - added IO::Wait() and IO::Cancel() to correspond with libusb API
189         - added datadumping in usbwrap for easy protocol capture
190         - added preliminary record.{h,cc} classes
191         - added Contact record parsing, and test code
192 2005/10/20
193         - syncberry tree started