[gaim-migrate @ 3063]
[pidgin-git.git] / src / protocols / icq / ChangeLog
blob5050ca976c297cde4d929d90be3422d5d17ff805
1 2001-06-11  Denis V. Dmitrienko  <denix@kde.org>
3         * icqlib/filesession.c:
4         Applied patch #431942 which fixes Win32-specific typo.
6         * icqlib/tcp.c:
7         Applied patch #431945 which adds icq_TCPSendAwayMessageReq() function.
9         * icqlib/contacts.c:
10         Applied patch #431950 which fixes bug with invisibility to a random
11         set of buddies.
13 2001-06-08  Denis V. Dmitrienko  <denix@kde.org>
15         * admin/acinclude.m4.in, admin/config.guess, admin/config.sub,
16         admin/install-sh, admin/libtool.m4.in, admin/ltcf-c.sh,
17         admin/ltcf-cxx.sh, admin/ltcf-gcj.sh, admin/ltconfig,
18         admin/ltmain.sh, admin/Makefile.am, admin/missing,
19         admin/mkinstalldirs, configure.in:
20         Updated autoconf/automake files from KDE to support autoconf 2.50
22         * doc/bindings/python/.cvsignore, doc/bindings/python/Makefile.am,
23         doc/bindings/.cvsignore, doc/bindings/Makefile.am, doc/.cvsignore,
24         doc/Makefile.am, bindings/python/.cvsignore,
25         bindings/python/Makefile.am, bindings/cpp/.cvsignore,
26         bindings/cpp/Makefile.am, bindings/.cvsignore,
27         bindings/Makefile.am, admin/.cvsignore, admin/Makefile.am,
28         configure.in, Makefile.am, README, VERSION:
29         Version bumped to 1.2.0
31         * icqlib/icqpacket.c, icqlib/list.c: Fixed Alpha-specific warnings.
33         * admin/icqlib.m4.in, icqlib.spec.in, icqlib-1.0.0.lsm, DEVEL,
34         AUTHORS:
35         Changed email address.
37         * icqlib/icqlib.c:
38         Added UpdateSuccess & UpdateFailure callacks initialization.
40 2001-06-05  Denis V. Dmitrienko  <denix@kde.org>
42         * icqlib/icqbyteorder.h, configure.in:
43         Applied patch by Lars Christensen <larsch@cs.auc.dk> to use portable
44         autoconf's endianness test.
46         * icqlib/icq.h.in, icqlib/udp.h, icqlib/udphandle.c:
47         Applied patch by Lars Christensen <larsch@cs.auc.dk> which adds 2 new
48         callbacks - icq_UpdateSuccess & icq_UpdateFailure
50 2001-06-05  Denis V. Dmitrienko  <denix@kde.org>
52         * icqlib/udphandle.c: Added code to send invisible list on login.
54         * AUTHORS: Added Michael Hudson.
56         * CHANGES_SINCE_0.1.3:
57         Added 0.1.3 -> 1.0.0 migration comments by Peter M. Lemmen
58         <pmlemmen@users.sourceforge.net>
60         * icqlib/icq.h.in, icqlib/contacts.c:
61         Changed parameter's name for readability.
63         * icqlib/icqlib.c, icqlib/tcp.c: Cleanups.
65         * CHANGES_SINCE_1.0: Spell-checked.
67 2001-06-05  Michael Hudson  <mwh21@cam.ac.uk>
69         * bindings/python/icqlibmodule.c:
70         Whitespace prettyification; no functional changes.
71         These have been sitting around here for weeks!  Oops.
73 2001-06-04  Denis V. Dmitrienko  <denix@kde.org>
75         * icqlib/udphandle.c:
76         Make sure to send Acknowledgement packet before callback.
78         * icqlib/udp.c: Added use of ICQ_MAX_UDP_MESSAGE_SIZE constant.
80         * icqlib/icqpacket.c, icqlib/icqpacket.h, icqlib/udphandle.c:
81         Added handling for V3 Wrong Password packet.
83         * icqlib/proxy.c: "Do it right" fix for the previous one. ;)
85         * icqlib/icqtypes.h: More Win32 compatibility fixes.
87 2001-06-04  Bill Soudan  <soudan@kde.org>
89         Applied patch via email from Richard Hughes <richard@rhughes.net>.
90         Applied sf patches #429108 and #429111 from Michael Möller
91         <mcmoe@users.sourceforge.net>.
93         * icqlib/filesession.c: win32 compatability fixes, bugfixes.
95         * icqlib/icq.h.in: add ICQ_MAX_* constants, away message request
96         and callback.
98         * icqlib/icqlib.c: fix crash in icq_LinkDestroy when tcp was
99         disabled, cleanups.
101         * icqlib/proxy.c: don't crash if NULL is passed in for pname and
102         ppass to icq_SetProxy
104         * icqlib/socketmanager.h, icqlib/tcplink.c: win32 compatability
105         fixes.
107         * icqlib/stdpackets.c, icqlib/stdpackets.h: added 
108         icq_TCPCreateAwayReqPacket
110         * icqlib/tcp.c: use ICQ_MAX_MESSAGE_SIZE constant, win32 fixes,
111         copy files array in icq_SendFileRequest, bugfix for file xfer.
113         * icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c: factoring
115         * icqlib/tcphandle.c: away message request support
117 2001-05-28  Bill Soudan  <soudan@kde.org>
119         * icqlib/contacts.c, icqlib/list.h, icqlib/queue.c, 
120         icqlib/socketmanager.c, icqlib/tcplink.c, icqlib/util.c:
121         fix typo, icq_LinkEnqueue->icq_ListEnqueue, icq_LinkDequeue->
122         icq_ListDequeue
124         * icqlib/timeout.c: fix icq_Link->icq_List typo, fix memory
125         leak in icq_HandleTimeout
127         * icqlib/list.c: don't delete list items if NULL is passed into
128         icq_ListDelete for item_free_f
130 2001-05-24  Denis V. Dmitrienko  <denix@kde.org>
132         * icqlib/udp.c:
133         Fixed memory leak - acknowledgement packet never been freed!!!
135 2001-05-23  Denis V. Dmitrienko  <denix@kde.org>
137         * icqlib/icqlib.c, icqlib/udphandle.c:
138         UDP implementation of the Receive Contact List feature.
140         * icqlib/icqbyteorder.c, icqlib/icqbyteorder.h, configure.in:
141         Portability changes.
143         * icqlib/icqlib.h, CHANGES_SINCE_1.0: Cleanup.
145         * icqlib/cyrillic.c:
146         Applied koi8-u related patch by Kunytsa Olexander <xakep@snark.ukma.kiev.ua>
148 2001-04-04  Bill Soudan  <soudan@kde.org>
150         Reverted my previous commit.
152 2001-03-08  Bill Soudan  <soudan@kde.org>
154         First partial merge from patch by Jindrich Makovicka 
155         <makovick@KMLinux.fjfi.cvut.cz>: add support for czech encoding.
156         
157         * icqlib/cyrillic.c: renamed to encoding.c
159         * icqlib/encoding.c, icqlib/encoding.h: added
161         * icqlib/filesession.c, icqlib/icqpacket.c,
162         icqlib/icqpacket.h, icqlib/stdpackets.c, icqlib/stdpackets.h,
163         icqlib/tcp.c, icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c,
164         icqlib/tcphandle.c, icqlib/tcplink.c, icqlib/udp.c,
165         icqlib/udphandle.c: Generalized icq_RusConv function to
166         icq_Translate, moved encoding/decoding to icq_Packet abstraction.
167         Encoding/decoding now happens automatically when reading and
168         writing strings to packets.
170         * icqlib/icqlib.c, icqlib/icq.h.in: added icq_LinkSetEncoding
171         and new ICQ_ENCODING_NONE, ICQ_ENCODING_RUSSIAN, and
172         ICQ_ENCODING_CZECH constants.
174         * icqlib/Makefile.am: cyrillic.c -> encoding.c
176 2001-03-07  Bill Soudan  <soudan@kde.org>
178         * icqlib/*: More source cleanup - simplified dependencies.
180 2001-03-06  Bill Soudan  <soudan@kde.org>
182         * icqlib/*: Many source cleanups!
184         1. linked list functions and structures renamed to avoid symbol
185         clashes (from list * to icq_List*) with MySQL
187         2. ICQLINK renamed to icq_Link to match existing icqlib style
188         (Note ICQLINK is still defined in the headers to maintain
189         source compatability)
191         3. Standard GNU header added to all source files
193         4. Many, many --enable-strict cleanups.
195         5. new invoke_callback macro used to invoke icqlink callbacks.
197         * icqlib/icqlib.c, icqlib/icq.h.in: Added icq_LinkInit and 
198         icq_LinkDestroy functions, to support C++ bindings, removed
199         ICQLINK parameter from icq_Main.
201         * icqlib/timeout.c: fixed bug in icq_TimeoutDelete that resulted
202         in erroneous icq_SetTimeout calls
204 2001-03-05  Bill Soudan  <soudan@kde.org>
206         * icqlib/tcplink.c: applied patch from Eric Warmenhoven 
207         <warmenhoven@yahoo.com>, corrects TCP recv error bug that
208         causes 100% cpu usage
210         * bindings/cpp/build_icqlink.py, bindings/cpp/icqlink.h.tpl,
211         bindings/cpp/icqlink.cpp.tpl: added very beginnings of C++
212         bindings
214         * icqlib/icq.h.in: wrap callbacks with special begin and end
215         indicators for use with C++ bindings build script
217 2001-03-03  Bill Soudan  <soudan@kde.org>
219         * icqlib/chatsession.c, icqlib/filesession.c, icqlib/icq.h.in:
220         add user_data member to icq_ChatSession and icq_FileSession
222         * icqlib/icq.h.in, icqlib/tcplink.c: add compile fix for BeOS
224         * README.BeOS: added
226 2001-03-01  Bill Soudan  <soudan@kde.org>
228         This should fix all problems introduced by my 02-22 commit.
230         * icqlib/icqlib.c: only initialize TCP subsystem when use_tcp is 
231         enabled
233         * icqlib/timeout.c: don't crash when timeouts are deleted during 
234         icq_HandleTimeout, send a zero-length icq_SetTimeout when
235         appropriate to clear current timeout request
237         * icqlib/udp.c: rewrote icq_UDPEncode and icq_UDPCheckCode
238         functions to do their work in a seperate buffer so original
239         icq_Packet isn't corrupted, fixed bug where UDP_CMD_ACKs were
240         being queued on the UDP packet queue
242 2001-02-22  Bill Soudan  <soudan@kde.org>
244         Note the icq_SetTimeout callback has been moved outside of
245         the ICQLINK structure, and icq_HandleTimeout no longer 
246         requires an ICQLINK parameter.  TCP connect timeouts should
247         work once again.
249         * icqlib/filesession.c: fixed initialization bug that may
250         cause a crash on file session deletion
252         * icqlib/Makefile.am, icqlib/timeout.c, icqlib/timeout.h,
253         icqlib/icq.h.in, icqlib/icqlib.c: new timeout manager code,
254         correct compilation warnings
256         * icqlib/list.c, icqlib/list.h: added sorted list capability -
257         see list_insert_sorted and new compare_function list struct
258         member
260         * icqlib/queue.c, icqlib/queue.h, icqlib/tcp.c, icqlib/tcplink.c,
261         icqlib/tcplink.h, icqlib/udp.c, icqlib/udphandle.c:
262         port tcp connect timeout code and UDP queue to new timeout
263         manager
265         * icqlib/socketmanager.c: move icq_SocketHandler declaration
266         here, instead of declaring it in icqlib.c.  fix bug with
267         icq_SocketPoll/icq_SocketMain, as reported by Michael Hudson.
269         * bindings/python/icqlibmodule.c: ported to new timeout
270         interface - remove SetTimeout callback and HandleTimeout 
271         methods from PyICQLink class, add icqlib.InstallTimeoutHandler 
272         and icqlib.HandleTimeout methods.
273         
274 2001-01-27  Bill Soudan  <soudan@kde.org>
276         * icqlib/socketmanager.c, icqlib/socketmanager.h, 
277         icqlib/tcplink.c: fix bugs related to TCP and new socket manager:
278         implemented accepting TCP sockets, fixed crashes when sending
279         TCP messages.
281 2001-01-24  Bill Soudan  <soudan@kde.org>
283         * icqlib/stdpackets.c, icqlib/stdpackets.h, icqlib/tcphandle.c,
284         icqlib/icq.h.in: applied patch from Robin Ericsson 
285         (lobbin@localhost.nu) which implements receiving contact lists.  
286         See new icq_RecvContactList callback.
287         
288 2001-01-20  Bill Soudan  <soudan@kde.org>
290         * icqlib/chatsession.c, icqlib/icq.h.in: added documentation
292         * icqlib/icqbyteorder.h: applied patch from Eric Warmenhoven
293         to fix byte order on HP/UX.
295         * icqlib/tcplink.h: applied patch from Eric Warmenhoven to
296         fix compilation on FreeBSD.
298 2001-01-16  Bill Soudan  <soudan@kde.org>
300         Phase 2 of my interface cleanups.  See CHANGES_SINCE_1.0 for
301         more details.  icqlib developers be sure to look at 
302         socketmanager.c - all future socket create/delete/handling needs 
303         to go through this code so the new icq_SocketNotify callback
304         works properly.
306         * icqlib/socketmanager.c, icqlib/socketmanager.h, 
307         icqlib/Makefile.am: added socketmanager.c & socketmanager.h
309         * icqlib/contacts.h, icqlib/list.h, icqlib/proxy.c: cleanup
311         * icqlib/chatsession.c, icqlib/chatsession.h, icqlib/filesession.c,
312         icqlib/icq.h.in, icqlib/icqevent.c, icqlib/icqevent.h, 
313         icqlib/icqlib.c, icqlib/icqlib.h, icqlib/tcp.c, 
314         icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c, 
315         icqlib/tcphandle.c, icqlib/tcplink.c, icqlib/tcplink.h:
316         Rework chat and file interfaces; implement socket notifications.
318         * VERSION: bumped to 1.1.5
320 2001-01-16  Denis V. Dmitrienko  <denis@null.net>
322         * icqlib/contacts.c, icqlib/contacts.h, icqlib/icq.h.in, icqlib/udp.c:
323         Invisible list has been finished.
325 2001-01-15  Denis V. Dmitrienko  <denis@null.net>
327         * icqlib/tcplink.c:
328         Applied patch from Ilya Melamed <ilya@ort.org.il> which fixes random
329         icq_TCPLinkAccept() fails.
331         * icqlib/udphandle.c:
332         Applied patch from Andrey Chernomyrdin <andrey@excom.spb.su> to
333         handle icq2000 specific "You've been added" packet.
335         * icqlib/icq.h.in:
336         Prototype for icq_SendInvisibleList() has been added.
338         * .cvsignore, icqlib.spec.in:
339         Applied patch from Ryan Weaver <ryanw@infohwy.com> for .spec file
340         generation.
342         * configure.in, Makefile.am, Makefile.cvs, admin/acinclude.m4.in,
343         admin/config.guess, admin/config.sub, admin/icqlib.m4.in,
344         admin/install-sh, admin/libtool.m4.in, admin/ltconfig,
345         admin/ltmain.sh, admin/missing, admin/mkinstalldirs,
346         acinclude.m4.in, am_edit, config.guess, config.sub, icqlib.m4.in,
347         install-sh, libtool.m4.in, ltconfig, ltmain.sh, missing,
348         mkinstalldirs:
349         autoconf/automake files have been moved to admin directory.
351         * TODO, icqlib/icqlib.c: Cleanup.
353 2000-12-19  Bill Soudan  <wes0472@rit.edu>
355         * icqlib/chatsession.c, icqlib/contacts.c, icqlib/eventhandle.c,
356         icqlib/filesession.c, icqlib/icq.h.in, icqlib/icqlib.c,
357         icqlib/icqlib.h, icqlib/queue.c, icqlib/stdpackets.c,
358         icqlib/tcp.c, icqlib/tcplink.c icqlib/udp.c: moved some ICQLINK
359         members to ICQLINK_private structures, added icq_ICQLINKNew and
360         icq_ICQLINKDelete functions which replace icq_Init and icq_Done
362         * CHANGES_SINCE_1.0: lists source incompatable changes since
363         1.0 release.
365         * VERSION: bumped version number to 1.1
367 2000-12-06  Denis V. Dmitrienko  <denis@null.net>
369         * icqlib/queue.c, icqlib/stdpackets.h, icqlib/tcp.h, icqlib/tcphandle.c:
370         Handling for mass TCP messages has been added based on patch by
371         Konstantin Klyagin <konst@konst.org.ua>
373 2000-12-03  Bill Soudan  <soudan@kde.org>
375         * icqlib/queue.c: fixed compilation with gcc-2.96
377         * icqlib/tcplink.c: fixed bug #105068
379 2000-11-02  Denis V. Dmitrienko  <denis@null.net>
381         * icqlib/icq.h.in, icqlib/icqlib.c, icqlib/udp.c:
382         Ability to disable TCP protocol has been added.
384         * icqlib/udphandle.c: Do not ack unhandled protocol version.
386 2000-08-13  Denis V. Dmitrienko  <denis@null.net>
388         * icqlib/tcphandle.c:
389         Cyrillic recoding on received URL description added.
391         * icqlib/icq.h.in, icqlib/util.c: icq_Genders[] array have been added.
393 2000-08-13  Denis V. Dmitrienko  <denis@null.net>
395         * icqlib/udp.c: Patch #101057 have been applied.
397 2000-07-31  Denis V. Dmitrienko  <denis@null.net>
399         * .cvsignore, Makefile.am: Little modifications before releasing.
401 2000-07-30  Denis V. Dmitrienko  <denis@null.net>
403         * ChangeLog, icqlib-0.2.0.lsm, icqlib-1.0.0.lsm, README, TODO,
404         VERSION, Win32.zip:
405         Updated version for 1.0.0 release.
407 2000-07-25  Denis V. Dmitrienko  <denis@null.net>
409         * README: Description was changed a little.
411         * icqlib/icq.h.in: Cleanups.
413 2000-07-23  Bill Soudan  <soudan@kde.org>
415         * README: added description
417         * icqlib/icq.h.in, icqlib/icqlib.c, icqlib/tcpchathandle.c,
418         icqlib/tcpfilehandle.c: added support for real nickname during
419         TCP transactions like file and chat, instead of using Bill
420         all the time (hmm, where'd I get that from? :)
422 2000-07-22  Denis V. Dmitrienko  <denis@null.net>
424         * AUTHORS, DEVEL, icqlib-0.1.3.lsm, icqlib-0.2.0.lsm, README, TODO:
425         Text files in root directory were changed to reflect latest changes.
427 2000-07-22  Denis V. Dmitrienko  <denis@null.net>
429         * icqlib/util.c: Trinidad and Tobago country was added.
431         * icqlib/icq.h.in: Cleanups.
433 2000-07-21  Denis V. Dmitrienko  <denis@null.net>
435         * icqlib/util.c: All languages, possible in original icq were added.
436         Occupation array fixed.
438 2000-07-20  Denis V. Dmitrienko  <denis@null.net>
440         * icqlib/util.c:
441         Occupation table corrected to comply with original ICQ.
443 2000-07-09  Bill Soudan  <soudan@kde.org>
445         * icqlib/list.c: added more trace messages, added list_remove_node
446         call in list_free... fixes list corruption bug introduced
447         during last commit
449         * icqlib/queue.c: added more trace messages, reworked packet
450         delete handling: now happens during _icq_UDEQueueItemFree rather
451         than during icq_UDPQueueDelSeq - fixes memory leak
453 2000-07-09  Bill Soudan  <soudan@kde.org>
455         Cleanups, and nasty memory bug fixes.  Hopefully this will
456         correct the strange crashes Denis is having after the icq_Done
457         call!
459         The major problem was: icq_TCPLinkDelete and icq_FileSessionDelete
460         were calling list_remove to remove themselves from the global
461         TCPLink and FileSession lists kept in ICQLINK.  But, these
462         functions were being called from a list_delete call also,
463         in icq_TCPDone, so what was happening is the list_nodes were
464         getting free()ed twice!
466         This problem was circumvented by removing the list_remove
467         from the *Delete functions, and creating new Close functions
468         that do the list_remove and then call the corresponding 
469         Delete function.
471         * icqlib/chatsession.c, icqlib/chatsession.h, icqlib/filesession.c,
472         icqlib/tcp.c, icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c,
473         icqlib/tcplink.c, icqlib/tcplink.h, icqlib/udp.c,
474         icqlib/stdpackets.h: adding new *Close functions, use *Close
475         functions instead of *Delete where correct, and misc cleanups
477         * icqlib/icq.h.in: removed unnecessary members from ICQLINK
479         * icqlib/icqlib.c, icqlib/icqlib.h: removed unnecessary
480         functions
482         * icqlib/list.c, icqlib/list.h: recoded list_free function - this
483         was working very incorrectly!  it was only freeing the first
484         node of the list, and then ending.  fixes a memory leak.
486         * icqlib/queue.c: use new list_free 
488         * icqlib/tcp.c: use Close functions, misc cleanups
490 2000-07-09  Denis V. Dmitrienko  <denis@null.net>
492         * icqlib/icq.h.in: Cleanups.
494         * icqlib/icqlib.c:
495         Initial memset() in icq_Init() replaced by callback's clearance.
497         * icqlib/udp.c:
498         icq_UpdateNewUserInfo() now returns seq1 instead of seq2 since it
499         isn't META function.
501 2000-07-07  Denis V. Dmitrienko  <denis@null.net>
503         * icqlib/icqpacket.c:
504         "icq_Packet data overflow" log message temporarily commented out.
506 2000-07-04  Paul Cadach          <paul@odt.east.telecom.kz>
507         * icqlib/utilc:
508         icq_FmtLog() crashed when it receives NULL at link argument.
510 2000-06-30  Denis V. Dmitrienko  <denis@null.net>
512         * icqlib/util.c: Slovak Republic country code fixed.
514 2000-06-25  Denis V. Dmitrienko  <denis@null.net>
516         * icqlib/udphandle.c:
517         icq_HandleMetaUserInfo() handles all (!) available in original icq2k
518         Meta User Info packets along with other useful Meta* packets. (WOW! ;)
520         * icqlib/icq.h.in:
521         New callbacks (we really need an event-driven model later):
522         icq_MetaUserFound, icq_MetaUserInfo, icq_MetaUserWork,
523         icq_MetaUserMore, icq_MetaUserAbout, icq_MetaUserInterests,
524         icq_MetaUserAffiliations, icq_MetaUserHomePageCategory
525         New functions-companions for Meta User Info:
526         icq_GetMetaOccupationName(), icq_GetMetaBackgroundName(),
527         icq_GetMetaAffiliationName(), icq_GetMetaLanguageName()
528         New function to request Meta User Info icq_SendMetaInfoReq()
529         COUNTRY_CODE was "generalized" to icq_ArrayType. Note: this is
530         source incompatible change!
532         * icqlib/util.c: icq_MetaOccupation[], icq_MetaPastBackgrounds[],
533         icq_MetaAffiliations[] and icq_MetaLanguages[] arrays were added along
534         with icq_GetMetaOccupationName(), icq_GetMetaBackgroundName(),
535         icq_GetMetaAffiliationName() and icq_GetMetaLanguageName() functions
536         to access them.
538         * icqlib/udp.h: Some META* defines changed/added.
539         USER_INFO structure which is never been used now removed.
541         * icqlib/udp.c: icq_SendMetaInfoReq() was added.
542         All icq_*Meta*() functions now returns sequence number 2 because their
543         replies from the server are synced with it.
545         * icqlib/tcphandle.c, icqlib/tcpfilehandle.c, icqlib/eventhandle.c:
546         '\n' was added at the end of log messages.
548         * icqlib/queue.c:
549         Some sanity checks were added to icq_UDPQueueDelete() and
550         icq_UDPQueueFree()
552         * icqlib/icqpacket.c: icq_PacketUDPDump() tweaked a little.
554 2000-06-17  Denis V. Dmitrienko  <denis@null.net>
556         * icqlib/contacts.c, icqlib/icq.h.in:
557         New parameter was added in icq_ContactSetVis() for setting/resetting
558         'Visible to User' status.
559         Port's type was changed to unsigned short in icq_UserOnline callback.
561 2000-06-15  Bill Soudan  <soudan@kde.org>
563         * icqlib/icqevent.c, icqlib/icqevent.h, icqlib/eventhandle.c,
564         icqlib/eventhandle.h: committed for safekeeping, not used yet.
565         this code will soon replace stdpackets.c and tcphandle.c, as
566         well as reducing code duplication in many other places.  hopefully
567         it can eventually be extended to manage udp events as well, as
568         it's written in pseudo-object-oriented style.
570 2000-06-14  Bill Soudan  <soudan@kde.org>
572         Bugfixes and code cleanups.
574         * icqlib/filesession.c, icqlib/filesession.h: added id arg to
575         icq_FindFileSession to allow searches for specific file session
577         * icqlib/icq.h.in: removed *Seq functions, renamed chat req functions
578         to be consistent with file req functions, added Cancel and Refuse
579         functions for chat and file reqs
581         * icqlib/queue.h: added proto for icq_UDPQueueInterval
583         * icqlib/stdpackets.c, icqlib/stdpackets.h: added creation
584         functions for cancel and refuse operations
586         * icqlib/tcp.c, icqlib/tcp.h: added Cancel and Refuse functions
587         for chat and file reqs, changed packet sending code to use new
588         icq_TCPLinkSendSeq function to elimitane duplicate code, removed
589         *Seq functions, renamed chat req functions
591         * icqlib/tcpfilehandle.c: fixed bug: sending file sessions would
592         freeze if remote side changed speed
594         * icqlib/tcplink.c, icqlib/tcplink.h: added icq_TCPLinkSendSeq
595         function
597         * icqlib/icqlib.c, icqlib/udp.c: removed *Seq functions
599 2000-05-21  Denis V. Dmitrienko  <denis@null.net>
601         * icqlib/util.c: Bulgaria country code was added. Thanks to
602         "Napalm Death" <napalmbox@hotmail.com>
604         * icqlib/cyrillic.c: Applied patch for russian letters IO and io by
605         Vladimir Eltchinov <elik@design.ru>
607 2000-05-10  Denis V. Dmitrienko  <denis@null.net>
609         * icqlib/icq.h.in, icqlib/icqlib.c, icqlib/queue.c,
610         icqlib/queue.h, icqlib/udp.c:
611         UDP outgoing packet queue was implemented.
613         * icqlib/udphandle.c, icqlib/proxy.c:
614         icq_Disconnect() now called before icq_Disconnected callback to
615         prevent high CPU usage in kicq's "reconnect on disconnect" code.
617         * icqlib/list.c, icqlib/list.h:
618         list_free() was added to free but do not dispose the list.
619         Memory leak with destroying the list was fixed.
621 2000-05-05  Denis V. Dmitrienko  <denis@null.net>
623         * Win32.zip:
624         Automatically generated icq.h repackaged for Win32 portability.
626 2000-05-04  Bill Soudan  <soudan@kde.org>
628         * icqlib/tcp.h: undefined TCP debug trace constants in preparation
629         for release.
631         * icqlib/stdpackets.c: warning cleanups.
633         * icqlib/icq.h.in: changed FILE_STATUS_* defines, removed
634         many ICQ_NOTIFY_FILE* defines, added new direction member
635         to icq_FileSession, removed unnecessary uin arg from
636         icq_FileSessionSetSpeed.
638         * icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c, icqlib/tcphandle.c,
639         icqlib/tcplink.c, icqlib/filesession.c, icqlib/tcp.c:
640         Reworked file transfer notification, small bugfixes,
641         and cleanups.
643 2000-05-03  Denis V. Dmitrienko  <denis@null.net>
645         * icqlib/udp.c: icq_UpdateNewUserInfo() was added.
646         All icq_UpdateMetaInfo*() now return their sequence number.
648         * icqlib/chatsession.c, icqlib/filesession.c, icqlib/icq.h.in,
649         icqlib/Makefile.am, icqlib/proxy.c, icqlib/tcpchathandle.c,
650         icqlib/tcpfilehandle.c, icqlib/tcphandle.c, icqlib/tcplink.c,
651         icqlib/udphandle.c, icqlib/util.c, icqlib/callbacks.c:
652         Callbacks have been moved to the ICQLINK structure.
654         * icqlib/icqpacket.c, icqlib/icqpacket.h:
655         icq_PacketReadUDPInUIN() was added.
657         * icqlib/list.c: Bug with empty contact list was fixed.
659         * icqlib/icqlib.c: Unfinished UDP queue was commented out.
661 2000-04-13  Denis V. Dmitrienko  <denis@null.net>
663         * README.Win32, VC5.zip, Win32.zip:
664         icq.h header file which is automatically generated on Unix is packaged
665         in Win32.zip archive along with the Visual C++ 5.0 project file.
667 2000-04-10  Denis V. Dmitrienko  <denis@null.net>
669         * icqlib/chatsession.h, icqlib/filesession.h, icqlib/stdpackets.c,
670         icqlib/tcp.c, icqlib/tcpfilehandle.c, icqlib/tcplink.c:
671         ANSI cleanups.
673         * icqlib/filesession.c, icqlib/icqlib.c, icqlib/stdpackets.h,
674         icqlib/tcp.c, icqlib/tcpfilehandle.c, icqlib/tcp.h,
675         icqlib/tcplink.c, icqlib/udp.c, icqlib/udp.h, icqlib/util.c,
676         VC5.zip:
677         Some more Win32 compatibility from Guillaume Rosanis <grs@mail.com>
679 2000-04-06  Herbert Valerio Riedel  <hvr@gnu.org>
681         * icqlib/icq.h.in, icqlib/udp.c (icq_KeepAlive,icq_SendAuthMsg):
682         return sequence number
684 2000-04-06  Denis V. Dmitrienko  <denis@null.net>
686         * icqlib/icq.h.in, icqlib/icqlib.c, icqlib/stdpackets.c, icqlib/tcp.c:
687         icq_*Send*Seq() functions with specified sequence number were added.
689         * icqlib/udp.c:
690         So called "Online List problem" bug with Long Contact List was fixed.
691         icq_*Send*Seq() functions with specified sequence number were added.
693 2000-04-05  Denis V. Dmitrienko  <denis@null.net>
695         * README.Win32, VC5.zip, icqlib/icqbyteorder.h, icqlib/icq.h.in,
696         icqlib/icqlib.c, icqlib/icqlib.h, icqlib/icqpacket.c,
697         icqlib/icqtypes.h, icqlib/proxy.c, icqlib/tcp.c,
698         icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c,
699         icqlib/tcphandle.c, icqlib/tcplink.c, icqlib/tcplink.h,
700         icqlib/udp.c, icqlib/util.c, icqlib/util.h:
701         Applied patch from "Guillaume R." <grs@mail.com> for basic Win32
702         compatibility.
704 2000-03-31  Igor S. Petrenko <nofate@europe.com>
706         * icqlib/util.c: remove static variable
708 2000-03-30  Denis V. Dmitrienko  <denis@null.net>
710         * am_edit, configure.in, libtool.m4.in, ltconfig, ltmain.sh,
711         missing, mkinstalldirs, acinclude.m4.in, Makefile.cvs:
712         New autoconf/automake stuff from KDE2.
714         * icqlib/queue.c: Fixed FreeBSD warning about obsolete malloc.h
715         header.
717 2000-02-14  Bill Soudan  <soudan@kde.org>
719         Applied patch from Paul Cadach <paul@odt.east.telecom.kz>.
721         * icqlib/icq.h.in: added icq_TCPSendChatData_n
723         * icqlib/tcp.c: use new icq_ChatRusConv_n function in
724         icq_TCPSendChatData, new icq_TCPSendChatData_n function
726         * icqlib/tcplink.c, tcplink.h: new icq_ChatRusConv_n function
728 2000-02-06  Bill Soudan  <soudan@kde.org>
730         * icqlib/tcpchathandle.c: warning cleanups.
732 2000-02-06  Bill Soudan  <soudan@kde.org>
734         Applied patch from Paul Cadach <paul@odt.east.telecom.kz>.  
735         Thanks Paul!
737         Paul's change list:
739         1) Modified TCP link code to allow non-blocking TCP connects over 
740         SOCKS5 proxy
741         2) Added missed Cyrillic translating for Chat subject, URL subject, 
742         File transfer subject (both directions);    
743         3) Fix a bug in TCPLinkProxyConnect code (remote address was random 
744         due to using local variable instead of plink's remote_address).  
746         * icqlib/cyrillic.c, icqlib/icqlib.h: added icq_RusConv_n
748         * icqlib/stdpackets.c: slightly modified chat packets
750         * icqlib/tcp.c: new code for SOCKS connections, more cyrillic
751         translations
753         * icqlib/tcpchathandle.c: new code for special chat functions
754         (background, fonts, etc)
756         * icqlib/tcplink.c: implemented non-blocking TCP connects
757         over SOCKS, cyrillic translation for chat
759         * icqlib/tcplink.h: new defines for SOCKS5 code
761         * icqlib/udphandle.c: changed log message in HandleUserOnline
762         
763 2000-02-03  Bill Soudan  <soudan@kde.org>
765         * icqlib/icqlib.h: line 33, fixed minor compile bug, changed
766         u_int32_t declaration to unsigned long.  This was causing a 
767         problem compiling on SunOS, as reported by Longwen
768         <longwen@mail.com>
770 2000-01-20  Bill Soudan  <soudan@kde.org>
772         Worked more on file send implementation.  icqlib will now also 
773         handle sending file requests to clients.
775         * icqlib/filesession.c, filesession.h, icq.h.in, stdpackets.c
776         stdpackets.h, tcp.c, tcpfilehandle.c, tcphandle.c:
777         first implementation of sending file requests
779         * icqlib/tcplink.c: fixed bug in icq_TCPLinkConnect that caused
780         file/chat connection attempts to go to the wrong port
782 2000-01-16  Bill Soudan  <soudan@kde.org>
784         Exported icq_FileSession structure to library clients;
785         fixed a serious list bug.  Oops. :)
787         * icqlib/filesession.c, filesession.h: added new public functions,
788         icq_FileSessionSetSpeed, icq_FileSessionClose,
789         icq_FileSessionSetWorkingDir, moved icq_FileSession interface to
790         icq.h.in
791         
792         * icqlib/icq.h.in: added definition for icq_FileSession and new
793         public functions
795         * icqlib/list.c: fixed serious bug in list_remove
797         * icqlib/tcp.c: renamed icq_TCPAcceptFileReq to
798         icq_AcceptFileRequest, moved file request functions to new
799         file session code
801         * icqlib/tcpfilehandle.c: added code so icq_FileSessions now
802         keep track of the tcplink to which they are attached
804         * icqlib/tcplink.h: removed list_node from icq_TCPLink
806 2000-01-15  Bill Soudan  <soudan@kde.org>
808         Reworked list routines so list_node's don't need to be
809         inside item structures.  Note this made the strlist code
810         unnecessary - strlist code was replaced with generic list
811         commands.
813         * icqlib/Makefile.am: strlist.c, strlist.h removed
815         * chatsession.c, chatsession.h, contacts.c, contacts.h,
816         filesession.c, filesession.h, icqlib.c, icqpacket.c, icqpacket.h,
817         list.c, list.h, queue.c, queue.h, tcp.c, tcplink.c, tcplink.h,
818         udphandle.c: reworked list code, removed strlist code
820         * strlist.c, strlist.h: removed
822 1999-12-27  Bill Soudan  <soudan@kde.org>
824         * icqlib/icq.h.in: added proto for icq_TCPFileSetSpeed
826         * icqlib/icqlib.c: cleanups
828         * icqlib/tcp.c: fixed bug in icq_TCPAcceptFileReq, added
829         icq_TCPFileSetSpeed
831         * icqlib/tcplink.c: fixed bug in icq_TCPOnDataReceived,
832         removed flags variable ;) 
834 1999-12-27  Denis V. Dmitrienko  <denis@null.net>
836         * icqlib/udphandle.c, icqlib/udp.h, icqlib/udp.c, icqlib/icq.h.in:
837         icq_UpdateMetaInfoSecurity() added for setting "My authorization is
838         required", "Web Aware" and "IP Publishing".
840         * icqlib/tcplink.c: Unused "flags" variable commented out.
842 1999-12-20  Bill Soudan  <soudan@kde.org>
844         Worked more on file transfer.  icqlib will now write received
845         files to disk, and handles all transfer details accordingly
846         after icq_TCPAcceptFileReq is called.  Note currently
847         files are always saved in current directory.  Receiving a
848         single file is working 100% as best I can tell - receiving
849         multiple files hasn't been tested well but should work.
851         Also reworked icq_TCPLinkOnDataRecevied to handle quick, large
852         streams of data (processing 1 packet every main loop call
853         just didn't cut it :), and at the same time fixed a bug where
854         received packets would not get processed if the remote end
855         closed the connection immediately after sending one.  This had
856         the result that the tcp sockets stay in non-blocking mode
857         for their entire life, instead of just during connect
858         as before.
860         Resume is currently off-by-one I think.  Don't rely on it.
862         * icqlib/filesession.[ch]: added file open/close logic, changed
863         icq_FileSession struct a bit
865         * icqlib/icq.h.in: removed unnecessary icq_TCPSendFile??Packet
866         functions, user programs do not use these
868         * icqlib/tcp.[ch]: moved _process_packet logic into tcplink::
869         icq_TCPLinkProcessReceived, removed unnecessary
870         icq_TCPSendFile??Packet functions
872         * icqlib/tcpfilehandle.c: added more file transfer logic to
873         write file to disk
875         * icqlib/tcplink.c: added icq_TCPLinkProcessReceived to
876         support processing receive queue before delete (packets used
877         to get dropped in this instance, oops), reworked 
878         icq_TCPLinkOnDataReceived to handle quick, large streams
879         of data, changed icq_TCPLinkOnConnect and *Accept to
880         make all sockets non-blocking.
882 1999-12-13  Bill Soudan  <soudan@kde.org>
884         Implemeted SF task #10224, use real_ip when our IP and remote
885         IP are same, and task #10203, connect timeout for tcp requests.
887         Fixed bug #100312, double freeing of list item.
889         NOTE: masq hack in udphandle.c::icq_HandleUserOnline is now gone!
890         Updated connect logic _should_ automatically do that for us now.
892         * icqlib/contacts.h: added remote_real_ip member to icq_ContactItem 
893         struct 
895         * icqlib/tcp.c: fixed double delete bug in _handle_ready_sockets,
896         added code to implement connect timeout
897         
898         * icqlib/tcplink.c: icq_TCPLinkConnect now uses real_ip when
899         our IP is same as remote IP to make connection, added
900         code to implement connect timeout
902         * icqlib/tcplink.h: added TCP_LINK_CONNECT_TIMEOUT constant,
903         added connect_time to icq_TCPLink struct
905         * icqlib/udphandle.c: removed old real_ip->ip masq hack,
906         added store to remote_real_ip in icq_ContactItem 
908 1999-12-12  Denis V. Dmitrienko  <denis@null.net>
910         * icqlib/udphandle.c: Authorization Request packet handling fixed.
912         * Makefile.am: DEVEL file included
914 1999-12-02  Bill Soudan  <soudan@kde.org>
916         commited missing filesession.c and filesession.h files.  Sorry
917         'bout that :)
919 1999-11-30  Bill Soudan  <soudan@kde.org>
921         More file xfer support added.  icqlib tcp will now 'go through the
922         motions' for receiving a file.  file data is not written to 
923         disk, yet.
924         
925         * icqlib/Makefile.am: added filesession.[ch]
927         * icqlib/icq.h.in: new notify constant (ICQ_NOTIFY_FILE),
928         new icq_FileSessions member in icqlink struct, new AcceptFileReq
929         prototype
931         * icqlib/icqpacket.h: ICQ_PACKET_DATA_SIZE increased to 4096
932         to support file transfer packets
934         * icqlib/tcp.c: added file session logic
936         * icqlib/tcpfilehandle.c: added icq_HandleFileHello
938         * icqlib/tcphandle.c: more file xfer logic added
940         * icqlib/tcplink.c, tcplink.h: buffer overflow check added,
941         tcplinks will now close if buffer overflows.  increased
942         icq_TCPLinkBufferSize to 4096 to support file transfer packets
944 1999-11-29  Denis V. Dmitrienko  <denis@null.net>
946         * icqlib/udphandle.c: icq_DoMsg() redone using string lists.
948         * icqlib/strlist.c, icqlib/strlist.h:
949         General interface for string lists added.
951         * icqlib/tcplink.c: Absence of socklen_t type fixed.
953         * icqlib/icq.h.in, icqlib/callbacks.c:
954         icq_RecvMailExpress callback added.
956         * icqlib/Makefile.am: strlist.[ch] added.
958 1999-10-14  Denis V. Dmitrienko  <denis@null.net>
960         * icq.h.in, udp.c: icq_UpdateMetaInfo* functions added.
962 1999-10-07  Denis V. Dmitrienko  <denis@null.net>
964         * icq.h.in, tcp.h: Internal/external functions declarations
965         unified a little.
967         * kicq/Makefile.am, proxy.c, udp.c: proxy.h file removed.
969 1999-10-06  Denis V. Dmitrienko  <denis@null.net>
971         * DEVEL: Added the "developers' hint guide". Please read it
972         carefully.
974 1999-09-29  Bill Soudan  <soudan@kde.org>
976         Check out my spiffy new email address! :)
978         Renamed all tcp_link* functions to icq_TCPLink*.
980         Forgot to note: fixed memory leak in tcp.c (tcp packets were not
981         being deleted after use... oops :)
983         * chatsession.c, tcpchathandle.c, tcpfilehandle.c, tcphandle.c,
984         chatsession.h: reworked chat/file handling.  fixed chat. (it's
985         been broke since I put non-blocking connects in)
987         * Makefile.am: added new files
989         * icq.h.in: changed some notification values, added support for
990         chat sessions to icqlink
992         * icqlib.h, udp.h: moved a bunch of udp-only defines to udp.h
994         * icqpacket.c, list.c: cleanups
996         * tcp.c: cleanups, moved connect logic from _handle_ready_sockets
997         to icq_TCPLinkOnConnect, tcp_link->icq_TCPLink
999         * tcplink.c, tcplink.h: renamed tcp_link* to icq_TCPLink*.  many
1000         cleanups, added icq_TCPLinkOnConnect
1002         * stdpackets.c, stdpackets.h, tcp.h: tcp_link*->icq_TCPLink*
1004         * udp.c: tcp port wasn't being sent properly in login packet
1006 1999-09-29  Denis V. Dmitrienko  <denis@null.net>
1008         Show must go on! Hopefully fixed CVS problems.
1010         * icqlib.c: Host/network/icq byteorder systemized.
1011         icq_Init() cleaned up.
1013         * acconfig.h, configure.in, icqlib.m4.in,
1014         icqlib/icqbyteorder.[ch]: More optimized byteswap stuff.
1016         * icqlib.h: LOGIN_*_TCP defines added.
1018         * icqpacket.[ch]: icq_PacketAppend16n() added for network-ordered
1019         word appending.
1021         * queue.[ch]: ICQLINK compatibility added.
1023         * stdpackets.c: Host/network byteorder cleanups.
1025         * tcplink.c: TCP code SOCKS-ification. Not finished.
1027         * udp.c: Webaware functions enabled without success even with
1028         UDP v5 - need more investigations.
1030         * udphandle.c: MailExpress message handler started.
1032 1999-07-18  Bill Soudan          <wes0472@rit.edu>
1034         fixed tcp problems, changed icq_ContactItem structure to use
1035         list.c and moved to contacts.c, removed old byte swap macros
1036         in favor of new functions in icqbyteorder.c, and added better
1037         log messages
1039         * Makefile.am: added contacts.c, contacts.h
1041         * contacts.c, contacts.h: added
1043         * icq.h.in: moved icq_ContactItem struct to contacts.h,
1044         removed old *Sok members, renamed icq_Cont* functions
1046         * icqlib.c, icqlib.h: changed to use new byte-order functions &
1047         contact list functions
1049         * icqpacket.c: changed to use new byte-order functions
1051         * tcp.c: added better log messages
1053         * tcplink.c: fixed fail notification bug introduced during ICQLINK
1054         changes, changed to use new byte-order functions & contact list
1055         functions, added better log messages 
1057         * udp.c: changed to use new byte-order functions &
1058         contact list functions
1060         * udphandle.c: fixed tcp port bug in icq_HandleUserOnline, changed
1061         to use new byte-order & contact list functions
1063         * util.c, util.h: removed old byte order and contact list
1064         functions
1066 1999-07-16  Denis V. Dmitrienko  <denis@null.net>
1068         Version changed to 0.2.0
1070         * udp.c, udp.h, udphandle.c: ICQ UDP v5 implemented.
1071         Encription for ICQ UDP v5 implemented.
1072         icq_Packet* unified interface for UDP packets implemented.
1073         Multipacket support of ICQ UDP v5 added.
1075         * util.[ch]: Status support changed to support early unsupported
1076         combined (ORed) statuses.
1078         * Makefile.am, icqlib/Makefile.am: Remove automatically generated
1079         files by "make maintainer-clean"
1081 1999-07-02  Vadim Zaliva  <lord@crocodile.org>
1083         * icqlib/udphandle.c (icq_HandleUserOnline): using icqtohl macros
1084         to convert parameters of callback (IP addresses, port #) to host
1085         order.
1087         * icqlib/icqbyteorder.h: added (per Bill suggestion) defenitions
1088         of icqtohs, icqtons, ntociqs, htociqs macros.
1090         * icqlib/tcppacket.c: some system header files included to avoid
1091         compilation warnings.
1093         * icqlib/tcplink.c: some system header files included to avoid
1094         compilation warnings.
1096         * icqlib/tcp.h: icq_TCPProcessFilePacket prototype added to avoid
1097         compilation warnings.
1099         * icqlib/tcp.c: add includes to avoid compilation warning for
1100         getsockopt() and some other functions.
1102         * configure.in: add detection of headers used on Solaris, Linux,
1103         FreeBSD to detect edianness.
1105         * icqlib/icqbyteorder.h: defenition of icqtohl, icqtonl, ntociql,
1106         htociql macros.
1108 1999-07-02  Bill Soudan          <wes0472@rit.edu>
1110         icq_SendMessage and icq_SendURL now accept a 3 choice thruSrv arg:
1111         ICQ_SEND_THRUSERVER, ICQ_SEND_DIRECT, or ICQ_SEND_BESTWAY.
1112         added support to icq_ContactItem structure and udphandle.c.
1114         * icq.h: added new ICQ_SEND_* constants
1116         * icqlib.c: added new code to support thruSrv arg to SendMessage
1117         and SendURL
1119         * util.h: added tcp_flag member to icq_ContactItem struct
1121         * udphandle.c: added code to HandleUserOnline to update tcp_flag
1123 1999-06-30  Bill Soudan          <wes0472@rit.edu>
1125         implemented non-blocking connects, including checking for failed
1126         connects.  failed sends/other networking calls still to do.
1128         * icq.h: renamed ICQ_NOTIFY_CONNECTFAILED to ICQ_NOTIFY_FAILED
1130         * list.h, list.c: changed list_traverse to use va_list
1132         * tcpprocess.c: cleanups
1134         * tcp.c, tcplink.c, tcplink.h: implemented non-blocking connects
1136 1999-05-03  Bill Soudan          <wes0472@rit.edu>
1138         * tcplink.c: removed exit calls
1140         * callbacks.c, icq.h, tcp.c, tcp.h, tcppackets.c, tcppackets.h,
1141         tcpprocess.c: initial file xfer support added- untested
1143 1999-04-29  Denis V. Dmitrienko  <denis@null.net>
1145         * icqlib.h, udp.c, udp.h, udphandle.c: Unsuccessful attempt to
1146         implement web presence (webaware) feature - doesn't seems to work
1147         in ICQ v2.
1149         * list.c, tcp.c, tcplink.c, tcpprocess.c: Cleanups, warning
1150         removed
1152         * Makefile.in, acinclude.m4, aclocal.m4, config.h.in, configure,
1153         stamp-h.in, icqlib/Makefile.in: Removed automake/autoconf
1154         generated tools from CVS - "make -f Makefile.cvs" to generate them 
1155         after checkout.
1157 1999-04-17  Bill Soudan          <wes0472@rit.edu>
1159         reworked tcp system significantly- tcp links are now kept as a
1160         seperate list instead of in icq_ContactItem.  chat requests can now be
1161         both sent and received successfully.
1163         * util.c, util.h, udphandle.c: removed *_link entries from
1164         icq_ContactItem, including cleaup/init code
1166         * icqlib.c, icq.h: modified Send* functions to return DWORD
1167         instead of WORD
1169         * tcp.c: _major_ restructuring.  all tcp sockets (including 
1170         listening sockets) are kept in global linked list, icq_TCPLinks.
1171         accept and listen functions moved to tcplink.c.  changed return
1172         values of Send* functions to DWORD.
1174         * tcp.h: changed return values of Send* functions to DWORD.
1176         * tcplink.c, tcplink.h: fixed bug in tcp_link_on_data_received,
1177         multiple packets that come in on one recv call are now handled
1178         correctly.  added tcp_link_accept and tcp_link_listen.  started
1179         using mode and type structure entries.  added icq_TCPLinks list
1180         and find_tcp_link function.  changed received_queue and send_queue
1181         to lists.
1183         * tcppacket.c, tcppacket.h: added tcp_packet_node_delete function
1184         and changed structure to include list_node for new list routines.
1186         * tcppackets.c, tcppackets.h: added new functions to create
1187         chat packets. removed unnecessary code.  added new function to
1188         create URL ack packet.
1190         * tcpprocess.c: reworked code to use tcp_links instead of
1191         icq_ContactItem entries.  modified ProcessChatPacket to negotiate
1192         both sending and receiving chat requests properly.
1194         * list.c, list.h: new list functions- replaces packetqueue
1195         and handles new list of tcp_links
1197         * packetqueue.c, packetqueue.h: removed, list.c now used for
1198         queues
1200         * Makefile.am: removed packetqueue.c, added list.c
1202 1999-04-14  Denis V. Dmitrienko  <denis@null.net>
1204         * tcpprocess.c: icq_ContactItem parameter added to function
1205         icq_TCPOnMessageReceived(). Segfault fixed on spoofed messages.
1207         * icqlib.c, proxy.c, packetqueue.c, icqlib.h, tcp.c, tcp.h,
1208         tcplink.c, udp.c, udp.h, udphandle.c, util.c, util.h, tcppacket.c,
1209         tcppackets.c, tcpprocess.c, tcppackets.h: Cleanups for "strict"
1210         compiling (-ansi -pedantic)
1212         * icqlib.c, proxy.c, udp.c, udphandle.c, cyrillic.c: Switched from
1213         icq_Log callback to icq_FmtLog function.
1215         * tcp.h: Some declarations added
1217         * tcp.c: Parameter port added to icq_TCPCreateListeningSocket()
1218         function.
1220         * icq.h: Added icq_FmtLog()
1222         * configure: Added AC_CHECK_COMPILERS to allow --enable-debug and
1223         --enable-strict configure options.
1225 1999-04-05  Bill Soudan          <wes0472@rit.edu>
1227         icqlib will now create and listen on the chat socket when
1228         necessary, and will perform negotiation for _receiving_ remote
1229         chat requests only.          
1231         * callbacks.c icq.h tcp.c tcp.h tcplink.c tcplink.h tcppacket.c       
1232         tcppackets.c tcppackets.h tcpprocess.c udphandle.c util.c
1233         util.h: added initial chat support
1235 1999-04-05  Denis V. Dmitrienko  <denis@null.net>
1237         * icqlib.c: Send messages and URLs to 'not in list' users fixed.
1239 1999-03-30  Bill Soudan           <wes0472@rit.edu>
1241         tcp messages and urls completely functional!
1242         unsuccessful connects not handled yet, however, plus connect
1243         is currently blocking (yuck)
1245         * util.c: cleaned up old TCPLog function
1246         * udphandle.c: added tcpflag handling to UserOnline
1247         * icq.h: added icq_TCPSendURL and modified icq_UserOnline to
1248           handle tcpflag
1249         * icqlib.c: added tcp support to SendURL
1250         * icqlib.h: modified LOGIN_X2_DEF to 0x04 instead of 0x06- we're
1251           ready to accept tcp packets now!  removed duplicate LOGIN_X*
1252           definitions
1253         * packetqueue.c tcp.c tcp.h tcplink.c tcppacket.c tcppackets.c
1254           tcppackets.h tcpprocess.c: wrapped up many tcp details-  code
1255           now handles incoming and outgoing tcp messages and urls!
1257 1999-03-30  Vadim Zaliva  <lorda@crocodile.org>
1259         * icqlib/util.c (icq_GetCountryName): function prototype now takes
1260         'unsigned short' as country code.
1261         Country codes list now prorerly sorted, thus no need to sort it
1262         using qsort.
1264 1999-03-29  Vadim Zaliva  <lord@crocodile.org>
1266         * icqlib/util.c (icq_ConvertStatus2Str): this function now accepts
1267         ulong as sttatus argument, since we use unsigned long for status
1268         everywhere.
1269         (icq_TCPXlateStatus): This function now use unsigned long as
1270         'udp_status' parameter type.
1271         (icq_GetCountryName): Optimized country code search.
1272         (icq_TCPXlateStatus): cleanup.
1274         * icqlib/icq.h: Change state constants to long.
1276 1999-03-27  Bill Soudan          <wes0472@rit.edu>
1278         preliminary tcp support added and functional!
1279         tcp messages will send to and from remote client when kicq
1280         initiates the connection- remote clients will not try a tcp
1281         connection to kicq yet
1283         * icq.h: added extern TCP function prototypes
1284         * icqlib.c: added TCP support to icq_SendMessage
1285         * packetqueue.c: cleaned up, fixed bugs, finished packet_queue_dump
1286         * tcp.c: added icq_TCPSendMessage and socket close/process logic
1287         * tcplink.c: fixed tcp_link_connect so it really connects to
1288           remote client instead of always to my local test computer O:)
1289         * tcppacket.c: added code to handle null string in 
1290           tcp_packet_append_string
1291         * tcppackets.c,h: CreateStdPacket actually puts IP and port info
1292           in now, added CreateStdAck and CreateMessageAck
1293         * udphandle.c: fixed bug in HandleUserOnline (remote_ip and
1294           remote_real_ip were not evaluating correctly), added hack
1295           so I can test using local network, fixed function names
1296           so icqlib compiles
1297         * tcpprocess.c: added code to handle received messages,
1298           finished process ack function
1299         * util.c: removed static from Country_Codes so regwin.cpp
1300           from kicq can use it
1302 1999-03-26  Bill Soudan          <wes0472@rit.edu>
1304         * tcp.c, tcp.h: finished select logic
1305         * tcplink.c: fixed C++ comments, cleaned up
1306         * tcpprocess.c: added icq_TCPProcessHello
1307         * packetqueue.c: moved packet_queue_find_queue from tcp.c
1308         * util.c: rewrote icq_TCPLog
1310 1999-03-25  Bill Soudan          <wes0472@rit.edu>
1312         * tcplink.c, tcplink.h: added
1313         * Makefile.am: added tcplink.c
1314         * icqlib.c: added #include "util.h"
1315         * tcp.c, tcp.h: moved many functions into tcplink.c
1316         * tcpprocess.c: changed types to standard
1317         * udphandle.c: modified HandleUserOnline & Offline for new message_link
1318         * util.c: ContItem functions modified for message_link
1319         * util.h: message_link added to ContactItem struct, moved types to
1320           seperate file
1321         * icqtypes.h: added
1322         * tcppacket.h: cleaned up
1324 1999-03-24  Denis V. Dmitrienko  <denis@null.net>
1326         * Makefile.am, Makefile.in, callbacks.c, cyrillic.c, icq.h,
1327         icqlib.c, icqlib.h, packetqueue.c, packetqueue.h, proxy.c,
1328         proxy.h, tcp.c, tcp.h, tcppacket.c, tcppacket.h, tcppackets.c,
1329         tcppackets.h, tcpprocess.c, udp.c, udp.h, udphandle.c, util.c,
1330         util.h:
1331         Underscored files with TCP stuff renamed.
1332         TCP stuff cleaned up
1333         Function names changed to corresponding names.
1334         icqlib.c splitted to many small files by subject.
1335         C++ comments changed to ANSI C comments.
1337         * Makefile.cvs, Makefile.in, acconfig.h, acinclude.m4,
1338         acinclude.m4.in, aclocal.m4, config.guess, config.h.in,
1339         config.sub, configure, configure.in, install-sh, libtool.m4.in,
1340         ltconfig, ltmain.sh, mkinstalldirs, stamp-h.in: Updated
1341         autoconf/automake/libtool configuration tools
1343 1999-03-22  Bill Soudan          <wes0472@rit.edu>
1345         * Makefile.am: added new files
1347         * icqlib.h, icqlib.c: added additional struct entries in
1348           icq_ContactItem for tcp code, added code in
1349           icq_HandleUserOnline and icq_HandleUserOffline for setup/cleanup
1351         * added many files for tcp implementation:
1352           icq_tcp.c icq_tcp.h icq_tcp_packets.c icq_tcp_packets.h
1353           icq_tcp_process.c packet_queue.c packet_queue.h
1354           tcp_packet.c tcp_packet.h util.c
1356 1999-03-05  Denis V. Dmitrienko  <denis@null.net>
1358         * icqlib.h, icqlib.c, icq.h: Some cosmetic changes...
1360 Version 0.1.3 (08 Dec 1998)
1361   SOCKS5 proxy support.
1362   icq_RecvMessage now returns sending message time not receiving.
1363   Visible list support changed.
1364   Handle icq99a statuses.
1366 Version 0.1.2 (05 Oct 1998)
1367   Search by UIN added.
1368   SunOS port (Thanks to Joe Avila <joe@avilate.com>).
1370 Version 0.1.1 (21 Sep 1998)
1371   Renamed from libicq to icqlib - there is another libicq on the net.
1372   Little changes to allow UI call select() itself.
1374 Version 0.1.0 (18 Sep 1998)
1375   Initial public version.