1 Release: version 0.0.2 - 2005/??/??
2 ------------------------------------------------------------------------------
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
13 - added Calendar::Build() for calendar uploads
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
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()
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,
36 - added -fno-strict-aliasing to compiler flags so gcc-4.0.x won't
37 optimize away protocol struct casts
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 ------------------------------------------------------------------------------
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
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
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
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
92 - renamed blackberry.{h,cc} to controller.{h,cc}
93 - renamed bbtool.cc to btool.cc
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
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
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
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
129 - added Doxyfile to the project
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
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
147 - removed hardcoded socket numbers from protocol.h
148 - fixed bug in socket.cc:Open() where packet size was not properly
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
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
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
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:
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
193 - syncberry tree started