12000-07-30  Denis V. Dmitrienko  <denis@null.net>
2
3	* ChangeLog, icqlib-0.2.0.lsm, icqlib-1.0.0.lsm, README, TODO,
4	VERSION, Win32.zip:
5	Updated version for 1.0.0 release.
6
72000-07-25  Denis V. Dmitrienko  <denis@null.net>
8
9	* README: Description was changed a little.
10
11	* icqlib/icq.h.in: Cleanups.
12
132000-07-23  Bill Soudan  <soudan@kde.org>
14
15	* README: added description
16
17	* icqlib/icq.h.in, icqlib/icqlib.c, icqlib/tcpchathandle.c,
18	icqlib/tcpfilehandle.c: added support for real nickname during
19	TCP transactions like file and chat, instead of using Bill
20	all the time (hmm, where'd I get that from? :)
21
222000-07-22  Denis V. Dmitrienko  <denis@null.net>
23
24	* AUTHORS, DEVEL, icqlib-0.1.3.lsm, icqlib-0.2.0.lsm, README, TODO:
25	Text files in root directory were changed to reflect latest changes.
26
272000-07-22  Denis V. Dmitrienko  <denis@null.net>
28
29	* icqlib/util.c: Trinidad and Tobago country was added.
30
31	* icqlib/icq.h.in: Cleanups.
32
332000-07-21  Denis V. Dmitrienko  <denis@null.net>
34
35	* icqlib/util.c: All languages, possible in original icq were added.
36	Occupation array fixed.
37
382000-07-20  Denis V. Dmitrienko  <denis@null.net>
39
40	* icqlib/util.c:
41	Occupation table corrected to comply with original ICQ.
42
432000-07-09  Bill Soudan  <soudan@kde.org>
44
45	* icqlib/list.c: added more trace messages, added list_remove_node
46	call in list_free... fixes list corruption bug introduced
47	during last commit
48
49	* icqlib/queue.c: added more trace messages, reworked packet
50	delete handling: now happens during _icq_UDEQueueItemFree rather
51	than during icq_UDPQueueDelSeq - fixes memory leak
52
532000-07-09  Bill Soudan  <soudan@kde.org>
54
55	Cleanups, and nasty memory bug fixes.  Hopefully this will
56	correct the strange crashes Denis is having after the icq_Done
57	call!
58
59	The major problem was: icq_TCPLinkDelete and icq_FileSessionDelete
60	were calling list_remove to remove themselves from the global
61	TCPLink and FileSession lists kept in ICQLINK.  But, these
62	functions were being called from a list_delete call also,
63	in icq_TCPDone, so what was happening is the list_nodes were
64	getting free()ed twice!
65
66	This problem was circumvented by removing the list_remove
67	from the *Delete functions, and creating new Close functions
68	that do the list_remove and then call the corresponding
69	Delete function.
70
71	* icqlib/chatsession.c, icqlib/chatsession.h, icqlib/filesession.c,
72 	icqlib/tcp.c, icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c,
73	icqlib/tcplink.c, icqlib/tcplink.h, icqlib/udp.c,
74	icqlib/stdpackets.h: adding new *Close functions, use *Close
75	functions instead of *Delete where correct, and misc cleanups
76
77	* icqlib/icq.h.in: removed unnecessary members from ICQLINK
78
79	* icqlib/icqlib.c, icqlib/icqlib.h: removed unnecessary
80	functions
81
82	* icqlib/list.c, icqlib/list.h: recoded list_free function - this
83	was working very incorrectly!  it was only freeing the first
84	node of the list, and then ending.  fixes a memory leak.
85
86	* icqlib/queue.c: use new list_free
87
88	* icqlib/tcp.c: use Close functions, misc cleanups
89
902000-07-09  Denis V. Dmitrienko  <denis@null.net>
91
92	* icqlib/icq.h.in: Cleanups.
93
94	* icqlib/icqlib.c:
95	Initial memset() in icq_Init() replaced by callback's clearance.
96
97	* icqlib/udp.c:
98	icq_UpdateNewUserInfo() now returns seq1 instead of seq2 since it
99	isn't META function.
100
1012000-07-07  Denis V. Dmitrienko  <denis@null.net>
102
103	* icqlib/icqpacket.c:
104	"icq_Packet data overflow" log message temporarily commented out.
105
1062000-07-04  Paul Cadach          <paul@odt.east.telecom.kz>
107	* icqlib/utilc:
108	icq_FmtLog() crashed when it receives NULL at link argument.
109
1102000-06-30  Denis V. Dmitrienko  <denis@null.net>
111
112	* icqlib/util.c: Slovak Republic country code fixed.
113
1142000-06-25  Denis V. Dmitrienko  <denis@null.net>
115
116	* icqlib/udphandle.c:
117	icq_HandleMetaUserInfo() handles all (!) available in original icq2k
118	Meta User Info packets along with other useful Meta* packets. (WOW! ;)
119
120	* icqlib/icq.h.in:
121	New callbacks (we really need an event-driven model later):
122	icq_MetaUserFound, icq_MetaUserInfo, icq_MetaUserWork,
123	icq_MetaUserMore, icq_MetaUserAbout, icq_MetaUserInterests,
124	icq_MetaUserAffiliations, icq_MetaUserHomePageCategory
125	New functions-companions for Meta User Info:
126	icq_GetMetaOccupationName(), icq_GetMetaBackgroundName(),
127	icq_GetMetaAffiliationName(), icq_GetMetaLanguageName()
128	New function to request Meta User Info icq_SendMetaInfoReq()
129	COUNTRY_CODE was "generalized" to icq_ArrayType. Note: this is
130	source incompatible change!
131
132	* icqlib/util.c: icq_MetaOccupation[], icq_MetaPastBackgrounds[],
133	icq_MetaAffiliations[] and icq_MetaLanguages[] arrays were added along
134	with icq_GetMetaOccupationName(), icq_GetMetaBackgroundName(),
135	icq_GetMetaAffiliationName() and icq_GetMetaLanguageName() functions
136	to access them.
137
138	* icqlib/udp.h: Some META* defines changed/added.
139	USER_INFO structure which is never been used now removed.
140
141	* icqlib/udp.c: icq_SendMetaInfoReq() was added.
142	All icq_*Meta*() functions now returns sequence number 2 because their
143	replies from the server are synced with it.
144
145	* icqlib/tcphandle.c, icqlib/tcpfilehandle.c, icqlib/eventhandle.c:
146	'\n' was added at the end of log messages.
147
148	* icqlib/queue.c:
149	Some sanity checks were added to icq_UDPQueueDelete() and
150	icq_UDPQueueFree()
151
152	* icqlib/icqpacket.c: icq_PacketUDPDump() tweaked a little.
153
1542000-06-17  Denis V. Dmitrienko  <denis@null.net>
155
156	* icqlib/contacts.c, icqlib/icq.h.in:
157	New parameter was added in icq_ContactSetVis() for setting/resetting
158	'Visible to User' status.
159	Port's type was changed to unsigned short in icq_UserOnline callback.
160
1612000-06-15  Bill Soudan  <soudan@kde.org>
162
163	* icqlib/icqevent.c, icqlib/icqevent.h, icqlib/eventhandle.c,
164	icqlib/eventhandle.h: committed for safekeeping, not used yet.
165	this code will soon replace stdpackets.c and tcphandle.c, as
166	well as reducing code duplication in many other places.  hopefully
167	it can eventually be extended to manage udp events as well, as
168	it's written in pseudo-object-oriented style.
169
1702000-06-14  Bill Soudan  <soudan@kde.org>
171
172	Bugfixes and code cleanups.
173
174	* icqlib/filesession.c, icqlib/filesession.h: added id arg to
175	icq_FindFileSession to allow searches for specific file session
176
177	* icqlib/icq.h.in: removed *Seq functions, renamed chat req functions
178	to be consistent with file req functions, added Cancel and Refuse
179	functions for chat and file reqs
180
181	* icqlib/queue.h: added proto for icq_UDPQueueInterval
182
183	* icqlib/stdpackets.c, icqlib/stdpackets.h: added creation
184	functions for cancel and refuse operations
185
186	* icqlib/tcp.c, icqlib/tcp.h: added Cancel and Refuse functions
187	for chat and file reqs, changed packet sending code to use new
188	icq_TCPLinkSendSeq function to elimitane duplicate code, removed
189	*Seq functions, renamed chat req functions
190
191	* icqlib/tcpfilehandle.c: fixed bug: sending file sessions would
192	freeze if remote side changed speed
193
194	* icqlib/tcplink.c, icqlib/tcplink.h: added icq_TCPLinkSendSeq
195	function
196
197	* icqlib/icqlib.c, icqlib/udp.c: removed *Seq functions
198
1992000-05-21  Denis V. Dmitrienko  <denis@null.net>
200
201	* icqlib/util.c: Bulgaria country code was added. Thanks to
202	"Napalm Death" <napalmbox@hotmail.com>
203
204	* icqlib/cyrillic.c: Applied patch for russian letters IO and io by
205	Vladimir Eltchinov <elik@design.ru>
206
2072000-05-10  Denis V. Dmitrienko  <denis@null.net>
208
209	* icqlib/icq.h.in, icqlib/icqlib.c, icqlib/queue.c,
210	icqlib/queue.h, icqlib/udp.c:
211	UDP outgoing packet queue was implemented.
212
213	* icqlib/udphandle.c, icqlib/proxy.c:
214	icq_Disconnect() now called before icq_Disconnected callback to
215	prevent high CPU usage in kicq's "reconnect on disconnect" code.
216
217	* icqlib/list.c, icqlib/list.h:
218	list_free() was added to free but do not dispose the list.
219	Memory leak with destroying the list was fixed.
220
2212000-05-05  Denis V. Dmitrienko  <denis@null.net>
222
223	* Win32.zip:
224	Automatically generated icq.h repackaged for Win32 portability.
225
2262000-05-04  Bill Soudan  <soudan@kde.org>
227
228	* icqlib/tcp.h: undefined TCP debug trace constants in preparation
229	for release.
230
231	* icqlib/stdpackets.c: warning cleanups.
232
233	* icqlib/icq.h.in: changed FILE_STATUS_* defines, removed
234	many ICQ_NOTIFY_FILE* defines, added new direction member
235	to icq_FileSession, removed unnecessary uin arg from
236	icq_FileSessionSetSpeed.
237
238	* icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c, icqlib/tcphandle.c,
239	icqlib/tcplink.c, icqlib/filesession.c, icqlib/tcp.c:
240	Reworked file transfer notification, small bugfixes,
241	and cleanups.
242
2432000-05-03  Denis V. Dmitrienko  <denis@null.net>
244
245	* icqlib/udp.c: icq_UpdateNewUserInfo() was added.
246	All icq_UpdateMetaInfo*() now return their sequence number.
247
248	* icqlib/chatsession.c, icqlib/filesession.c, icqlib/icq.h.in,
249	icqlib/Makefile.am, icqlib/proxy.c, icqlib/tcpchathandle.c,
250	icqlib/tcpfilehandle.c, icqlib/tcphandle.c, icqlib/tcplink.c,
251	icqlib/udphandle.c, icqlib/util.c, icqlib/callbacks.c:
252	Callbacks have been moved to the ICQLINK structure.
253
254	* icqlib/icqpacket.c, icqlib/icqpacket.h:
255	icq_PacketReadUDPInUIN() was added.
256
257	* icqlib/list.c: Bug with empty contact list was fixed.
258
259	* icqlib/icqlib.c: Unfinished UDP queue was commented out.
260
2612000-04-13  Denis V. Dmitrienko  <denis@null.net>
262
263	* README.Win32, VC5.zip, Win32.zip:
264	icq.h header file which is automatically generated on Unix is packaged
265	in Win32.zip archive along with the Visual C++ 5.0 project file.
266
2672000-04-10  Denis V. Dmitrienko  <denis@null.net>
268
269	* icqlib/chatsession.h, icqlib/filesession.h, icqlib/stdpackets.c,
270	icqlib/tcp.c, icqlib/tcpfilehandle.c, icqlib/tcplink.c:
271	ANSI cleanups.
272
273	* icqlib/filesession.c, icqlib/icqlib.c, icqlib/stdpackets.h,
274	icqlib/tcp.c, icqlib/tcpfilehandle.c, icqlib/tcp.h,
275	icqlib/tcplink.c, icqlib/udp.c, icqlib/udp.h, icqlib/util.c,
276	VC5.zip:
277	Some more Win32 compatibility from Guillaume Rosanis <grs@mail.com>
278
2792000-04-06  Herbert Valerio Riedel  <hvr@gnu.org>
280
281	* icqlib/icq.h.in, icqlib/udp.c (icq_KeepAlive,icq_SendAuthMsg):
282	return sequence number
283
2842000-04-06  Denis V. Dmitrienko  <denis@null.net>
285
286	* icqlib/icq.h.in, icqlib/icqlib.c, icqlib/stdpackets.c, icqlib/tcp.c:
287	icq_*Send*Seq() functions with specified sequence number were added.
288
289	* icqlib/udp.c:
290	So called "Online List problem" bug with Long Contact List was fixed.
291	icq_*Send*Seq() functions with specified sequence number were added.
292
2932000-04-05  Denis V. Dmitrienko  <denis@null.net>
294
295	* README.Win32, VC5.zip, icqlib/icqbyteorder.h, icqlib/icq.h.in,
296	icqlib/icqlib.c, icqlib/icqlib.h, icqlib/icqpacket.c,
297	icqlib/icqtypes.h, icqlib/proxy.c, icqlib/tcp.c,
298	icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c,
299	icqlib/tcphandle.c, icqlib/tcplink.c, icqlib/tcplink.h,
300	icqlib/udp.c, icqlib/util.c, icqlib/util.h:
301	Applied patch from "Guillaume R." <grs@mail.com> for basic Win32
302	compatibility.
303
3042000-03-31  Igor S. Petrenko <nofate@europe.com>
305
306	* icqlib/util.c: remove static variable
307
3082000-03-30  Denis V. Dmitrienko  <denis@null.net>
309
310	* am_edit, configure.in, libtool.m4.in, ltconfig, ltmain.sh,
311	missing, mkinstalldirs, acinclude.m4.in, Makefile.cvs:
312	New autoconf/automake stuff from KDE2.
313
314	* icqlib/queue.c: Fixed FreeBSD warning about obsolete malloc.h
315	header.
316
3172000-02-14  Bill Soudan  <soudan@kde.org>
318
319	Applied patch from Paul Cadach <paul@odt.east.telecom.kz>.
320
321	* icqlib/icq.h.in: added icq_TCPSendChatData_n
322
323	* icqlib/tcp.c: use new icq_ChatRusConv_n function in
324	icq_TCPSendChatData, new icq_TCPSendChatData_n function
325
326	* icqlib/tcplink.c, tcplink.h: new icq_ChatRusConv_n function
327
3282000-02-06  Bill Soudan  <soudan@kde.org>
329
330	* icqlib/tcpchathandle.c: warning cleanups.
331
3322000-02-06  Bill Soudan  <soudan@kde.org>
333
334	Applied patch from Paul Cadach <paul@odt.east.telecom.kz>.
335	Thanks Paul!
336
337	Paul's change list:
338
339	1) Modified TCP link code to allow non-blocking TCP connects over
340	SOCKS5 proxy
341	2) Added missed Cyrillic translating for Chat subject, URL subject,
342	File transfer subject (both directions);
343	3) Fix a bug in TCPLinkProxyConnect code (remote address was random
344	due to using local variable instead of plink's remote_address).
345
346	* icqlib/cyrillic.c, icqlib/icqlib.h: added icq_RusConv_n
347
348	* icqlib/stdpackets.c: slightly modified chat packets
349
350	* icqlib/tcp.c: new code for SOCKS connections, more cyrillic
351	translations
352
353	* icqlib/tcpchathandle.c: new code for special chat functions
354	(background, fonts, etc)
355
356	* icqlib/tcplink.c: implemented non-blocking TCP connects
357	over SOCKS, cyrillic translation for chat
358
359	* icqlib/tcplink.h: new defines for SOCKS5 code
360
361	* icqlib/udphandle.c: changed log message in HandleUserOnline
362
3632000-02-03  Bill Soudan  <soudan@kde.org>
364
365	* icqlib/icqlib.h: line 33, fixed minor compile bug, changed
366	u_int32_t declaration to unsigned long.  This was causing a
367	problem compiling on SunOS, as reported by Longwen
368	<longwen@mail.com>
369
3702000-01-20  Bill Soudan  <soudan@kde.org>
371
372	Worked more on file send implementation.  icqlib will now also
373	handle sending file requests to clients.
374
375	* icqlib/filesession.c, filesession.h, icq.h.in, stdpackets.c
376	stdpackets.h, tcp.c, tcpfilehandle.c, tcphandle.c:
377	first implementation of sending file requests
378
379	* icqlib/tcplink.c: fixed bug in icq_TCPLinkConnect that caused
380	file/chat connection attempts to go to the wrong port
381
3822000-01-16  Bill Soudan  <soudan@kde.org>
383
384	Exported icq_FileSession structure to library clients;
385	fixed a serious list bug.  Oops. :)
386
387	* icqlib/filesession.c, filesession.h: added new public functions,
388	icq_FileSessionSetSpeed, icq_FileSessionClose,
389	icq_FileSessionSetWorkingDir, moved icq_FileSession interface to
390	icq.h.in
391
392	* icqlib/icq.h.in: added definition for icq_FileSession and new
393	public functions
394
395	* icqlib/list.c: fixed serious bug in list_remove
396
397	* icqlib/tcp.c: renamed icq_TCPAcceptFileReq to
398	icq_AcceptFileRequest, moved file request functions to new
399	file session code
400
401	* icqlib/tcpfilehandle.c: added code so icq_FileSessions now
402	keep track of the tcplink to which they are attached
403
404	* icqlib/tcplink.h: removed list_node from icq_TCPLink
405
4062000-01-15  Bill Soudan  <soudan@kde.org>
407
408	Reworked list routines so list_node's don't need to be
409	inside item structures.  Note this made the strlist code
410	unnecessary - strlist code was replaced with generic list
411	commands.
412
413	* icqlib/Makefile.am: strlist.c, strlist.h removed
414
415	* chatsession.c, chatsession.h, contacts.c, contacts.h,
416	filesession.c, filesession.h, icqlib.c, icqpacket.c, icqpacket.h,
417	list.c, list.h, queue.c, queue.h, tcp.c, tcplink.c, tcplink.h,
418	udphandle.c: reworked list code, removed strlist code
419
420	* strlist.c, strlist.h: removed
421
4221999-12-27  Bill Soudan  <soudan@kde.org>
423
424	* icqlib/icq.h.in: added proto for icq_TCPFileSetSpeed
425
426	* icqlib/icqlib.c: cleanups
427
428	* icqlib/tcp.c: fixed bug in icq_TCPAcceptFileReq, added
429	icq_TCPFileSetSpeed
430
431	* icqlib/tcplink.c: fixed bug in icq_TCPOnDataReceived,
432	removed flags variable ;)
433
4341999-12-27  Denis V. Dmitrienko  <denis@null.net>
435
436	* icqlib/udphandle.c, icqlib/udp.h, icqlib/udp.c, icqlib/icq.h.in:
437	icq_UpdateMetaInfoSecurity() added for setting "My authorization is
438	required", "Web Aware" and "IP Publishing".
439
440	* icqlib/tcplink.c: Unused "flags" variable commented out.
441
4421999-12-20  Bill Soudan  <soudan@kde.org>
443
444	Worked more on file transfer.  icqlib will now write received
445	files to disk, and handles all transfer details accordingly
446	after icq_TCPAcceptFileReq is called.  Note currently
447	files are always saved in current directory.  Receiving a
448	single file is working 100% as best I can tell - receiving
449	multiple files hasn't been tested well but should work.
450
451	Also reworked icq_TCPLinkOnDataRecevied to handle quick, large
452	streams of data (processing 1 packet every main loop call
453	just didn't cut it :), and at the same time fixed a bug where
454	received packets would not get processed if the remote end
455	closed the connection immediately after sending one.  This had
456	the result that the tcp sockets stay in non-blocking mode
457	for their entire life, instead of just during connect
458	as before.
459
460	Resume is currently off-by-one I think.  Don't rely on it.
461
462	* icqlib/filesession.[ch]: added file open/close logic, changed
463	icq_FileSession struct a bit
464
465	* icqlib/icq.h.in: removed unnecessary icq_TCPSendFile??Packet
466	functions, user programs do not use these
467
468	* icqlib/tcp.[ch]: moved _process_packet logic into tcplink::
469	icq_TCPLinkProcessReceived, removed unnecessary
470	icq_TCPSendFile??Packet functions
471
472	* icqlib/tcpfilehandle.c: added more file transfer logic to
473	write file to disk
474
475	* icqlib/tcplink.c: added icq_TCPLinkProcessReceived to
476	support processing receive queue before delete (packets used
477	to get dropped in this instance, oops), reworked
478	icq_TCPLinkOnDataReceived to handle quick, large streams
479	of data, changed icq_TCPLinkOnConnect and *Accept to
480        make all sockets non-blocking.
481
4821999-12-13  Bill Soudan  <soudan@kde.org>
483
484	Implemeted SF task #10224, use real_ip when our IP and remote
485	IP are same, and task #10203, connect timeout for tcp requests.
486
487	Fixed bug #100312, double freeing of list item.
488
489	NOTE: masq hack in udphandle.c::icq_HandleUserOnline is now gone!
490        Updated connect logic _should_ automatically do that for us now.
491
492	* icqlib/contacts.h: added remote_real_ip member to icq_ContactItem
493	struct
494
495	* icqlib/tcp.c: fixed double delete bug in _handle_ready_sockets,
496	added code to implement connect timeout
497
498	* icqlib/tcplink.c: icq_TCPLinkConnect now uses real_ip when
499	our IP is same as remote IP to make connection, added
500	code to implement connect timeout
501
502	* icqlib/tcplink.h: added TCP_LINK_CONNECT_TIMEOUT constant,
503	added connect_time to icq_TCPLink struct
504
505	* icqlib/udphandle.c: removed old real_ip->ip masq hack,
506        added store to remote_real_ip in icq_ContactItem
507
5081999-12-12  Denis V. Dmitrienko  <denis@null.net>
509
510	* icqlib/udphandle.c: Authorization Request packet handling fixed.
511
512	* Makefile.am: DEVEL file included
513
5141999-12-02  Bill Soudan  <soudan@kde.org>
515
516	commited missing filesession.c and filesession.h files.  Sorry
517	'bout that :)
518
5191999-11-30  Bill Soudan  <soudan@kde.org>
520
521	More file xfer support added.  icqlib tcp will now 'go through the
522	motions' for receiving a file.  file data is not written to
523	disk, yet.
524
525	* icqlib/Makefile.am: added filesession.[ch]
526
527	* icqlib/icq.h.in: new notify constant (ICQ_NOTIFY_FILE),
528	new icq_FileSessions member in icqlink struct, new AcceptFileReq
529	prototype
530
531	* icqlib/icqpacket.h: ICQ_PACKET_DATA_SIZE increased to 4096
532	to support file transfer packets
533
534	* icqlib/tcp.c: added file session logic
535
536	* icqlib/tcpfilehandle.c: added icq_HandleFileHello
537
538	* icqlib/tcphandle.c: more file xfer logic added
539
540	* icqlib/tcplink.c, tcplink.h: buffer overflow check added,
541	tcplinks will now close if buffer overflows.  increased
542	icq_TCPLinkBufferSize to 4096 to support file transfer packets
543
5441999-11-29  Denis V. Dmitrienko  <denis@null.net>
545
546	* icqlib/udphandle.c: icq_DoMsg() redone using string lists.
547
548	* icqlib/strlist.c, icqlib/strlist.h:
549	General interface for string lists added.
550
551	* icqlib/tcplink.c: Absence of socklen_t type fixed.
552
553	* icqlib/icq.h.in, icqlib/callbacks.c:
554	icq_RecvMailExpress callback added.
555
556	* icqlib/Makefile.am: strlist.[ch] added.
557
5581999-10-14  Denis V. Dmitrienko  <denis@null.net>
559
560	* icq.h.in, udp.c: icq_UpdateMetaInfo* functions added.
561
5621999-10-07  Denis V. Dmitrienko  <denis@null.net>
563
564	* icq.h.in, tcp.h: Internal/external functions declarations
565	unified a little.
566
567	* kicq/Makefile.am, proxy.c, udp.c: proxy.h file removed.
568
5691999-10-06  Denis V. Dmitrienko  <denis@null.net>
570
571	* DEVEL: Added the "developers' hint guide". Please read it
572	carefully.
573
5741999-09-29  Bill Soudan  <soudan@kde.org>
575
576        Check out my spiffy new email address! :)
577
578        Renamed all tcp_link* functions to icq_TCPLink*.
579
580        Forgot to note: fixed memory leak in tcp.c (tcp packets were not
581        being deleted after use... oops :)
582
583	* chatsession.c, tcpchathandle.c, tcpfilehandle.c, tcphandle.c,
584        chatsession.h: reworked chat/file handling.  fixed chat. (it's
585        been broke since I put non-blocking connects in)
586
587        * Makefile.am: added new files
588
589        * icq.h.in: changed some notification values, added support for
590        chat sessions to icqlink
591
592        * icqlib.h, udp.h: moved a bunch of udp-only defines to udp.h
593
594	* icqpacket.c, list.c: cleanups
595
596        * tcp.c: cleanups, moved connect logic from _handle_ready_sockets
597        to icq_TCPLinkOnConnect, tcp_link->icq_TCPLink
598
599        * tcplink.c, tcplink.h: renamed tcp_link* to icq_TCPLink*.  many
600        cleanups, added icq_TCPLinkOnConnect
601
602        * stdpackets.c, stdpackets.h, tcp.h: tcp_link*->icq_TCPLink*
603
604	* udp.c: tcp port wasn't being sent properly in login packet
605
6061999-09-29  Denis V. Dmitrienko  <denis@null.net>
607
608	Show must go on! Hopefully fixed CVS problems.
609
610	* icqlib.c: Host/network/icq byteorder systemized.
611	icq_Init() cleaned up.
612
613	* acconfig.h, configure.in, icqlib.m4.in,
614	icqlib/icqbyteorder.[ch]: More optimized byteswap stuff.
615
616	* icqlib.h: LOGIN_*_TCP defines added.
617
618	* icqpacket.[ch]: icq_PacketAppend16n() added for network-ordered
619	word appending.
620
621	* queue.[ch]: ICQLINK compatibility added.
622
623	* stdpackets.c: Host/network byteorder cleanups.
624
625	* tcplink.c: TCP code SOCKS-ification. Not finished.
626
627	* udp.c: Webaware functions enabled without success even with
628	UDP v5 - need more investigations.
629
630	* udphandle.c: MailExpress message handler started.
631
6321999-07-18  Bill Soudan          <wes0472@rit.edu>
633
634	fixed tcp problems, changed icq_ContactItem structure to use
635	list.c and moved to contacts.c, removed old byte swap macros
636        in favor of new functions in icqbyteorder.c, and added better
637        log messages
638
639	* Makefile.am: added contacts.c, contacts.h
640
641	* contacts.c, contacts.h: added
642
643	* icq.h.in: moved icq_ContactItem struct to contacts.h,
644        removed old *Sok members, renamed icq_Cont* functions
645
646	* icqlib.c, icqlib.h: changed to use new byte-order functions &
647	contact list functions
648
649	* icqpacket.c: changed to use new byte-order functions
650
651	* tcp.c: added better log messages
652
653	* tcplink.c: fixed fail notification bug introduced during ICQLINK
654        changes, changed to use new byte-order functions & contact list
655        functions, added better log messages
656
657	* udp.c: changed to use new byte-order functions &
658        contact list functions
659
660	* udphandle.c: fixed tcp port bug in icq_HandleUserOnline, changed
661        to use new byte-order & contact list functions
662
663	* util.c, util.h: removed old byte order and contact list
664        functions
665
6661999-07-16  Denis V. Dmitrienko  <denis@null.net>
667
668	Version changed to 0.2.0
669
670	* udp.c, udp.h, udphandle.c: ICQ UDP v5 implemented.
671 	Encription for ICQ UDP v5 implemented.
672 	icq_Packet* unified interface for UDP packets implemented.
673	Multipacket support of ICQ UDP v5 added.
674
675	* util.[ch]: Status support changed to support early unsupported
676	combined (ORed) statuses.
677
678	* Makefile.am, icqlib/Makefile.am: Remove automatically generated
679	files by "make maintainer-clean"
680
6811999-07-02  Vadim Zaliva  <lord@crocodile.org>
682
683	* icqlib/udphandle.c (icq_HandleUserOnline): using icqtohl macros
684	to convert parameters of callback (IP addresses, port #) to host
685	order.
686
687	* icqlib/icqbyteorder.h: added (per Bill suggestion) defenitions
688	of icqtohs, icqtons, ntociqs, htociqs macros.
689
690	* icqlib/tcppacket.c: some system header files included to avoid
691	compilation warnings.
692
693	* icqlib/tcplink.c: some system header files included to avoid
694	compilation warnings.
695
696	* icqlib/tcp.h: icq_TCPProcessFilePacket prototype added to avoid
697	compilation warnings.
698
699	* icqlib/tcp.c: add includes to avoid compilation warning for
700	getsockopt() and some other functions.
701
702	* configure.in: add detection of headers used on Solaris, Linux,
703	FreeBSD to detect edianness.
704
705	* icqlib/icqbyteorder.h: defenition of icqtohl, icqtonl, ntociql,
706	htociql macros.
707
7081999-07-02  Bill Soudan          <wes0472@rit.edu>
709
710	icq_SendMessage and icq_SendURL now accept a 3 choice thruSrv arg:
711        ICQ_SEND_THRUSERVER, ICQ_SEND_DIRECT, or ICQ_SEND_BESTWAY.
712        added support to icq_ContactItem structure and udphandle.c.
713
714	* icq.h: added new ICQ_SEND_* constants
715
716	* icqlib.c: added new code to support thruSrv arg to SendMessage
717	and SendURL
718
719	* util.h: added tcp_flag member to icq_ContactItem struct
720
721	* udphandle.c: added code to HandleUserOnline to update tcp_flag
722
7231999-06-30  Bill Soudan          <wes0472@rit.edu>
724
725	implemented non-blocking connects, including checking for failed
726        connects.  failed sends/other networking calls still to do.
727
728	* icq.h: renamed ICQ_NOTIFY_CONNECTFAILED to ICQ_NOTIFY_FAILED
729
730        * list.h, list.c: changed list_traverse to use va_list
731
732	* tcpprocess.c: cleanups
733
734	* tcp.c, tcplink.c, tcplink.h: implemented non-blocking connects
735c
7361999-05-03  Bill Soudan          <wes0472@rit.edu>
737
738	* tcplink.c: removed exit calls
739
740        * callbacks.c, icq.h, tcp.c, tcp.h, tcppackets.c, tcppackets.h,
741        tcpprocess.c: initial file xfer support added- untested
742
7431999-04-29  Denis V. Dmitrienko  <denis@null.net>
744
745	* icqlib.h, udp.c, udp.h, udphandle.c: Unsuccessful attempt to
746	implement web presence (webaware) feature - doesn't seems to work
747	in ICQ v2.
748
749	* list.c, tcp.c, tcplink.c, tcpprocess.c: Cleanups, warning
750	removed
751
752	* Makefile.in, acinclude.m4, aclocal.m4, config.h.in, configure,
753	stamp-h.in, icqlib/Makefile.in: Removed automake/autoconf
754	generated tools from CVS - "make -f Makefile.cvs" to generate them
755	after checkout.
756
7571999-04-17  Bill Soudan          <wes0472@rit.edu>
758
759	reworked tcp system significantly- tcp links are now kept as a
760        seperate list instead of in icq_ContactItem.  chat requests can now be
761        both sent and received successfully.
762
763	* util.c, util.h, udphandle.c: removed *_link entries from
764        icq_ContactItem, including cleaup/init code
765
766	* icqlib.c, icq.h: modified Send* functions to return DWORD
767        instead of WORD
768
769	* tcp.c: _major_ restructuring.  all tcp sockets (including
770        listening sockets) are kept in global linked list, icq_TCPLinks.
771        accept and listen functions moved to tcplink.c.  changed return
772        values of Send* functions to DWORD.
773
774	* tcp.h: changed return values of Send* functions to DWORD.
775
776	* tcplink.c, tcplink.h: fixed bug in tcp_link_on_data_received,
777        multiple packets that come in on one recv call are now handled
778        correctly.  added tcp_link_accept and tcp_link_listen.  started
779        using mode and type structure entries.  added icq_TCPLinks list
780        and find_tcp_link function.  changed received_queue and send_queue
781        to lists.
782
783	* tcppacket.c, tcppacket.h: added tcp_packet_node_delete function
784        and changed structure to include list_node for new list routines.
785
786	* tcppackets.c, tcppackets.h: added new functions to create
787        chat packets. removed unnecessary code.  added new function to
788        create URL ack packet.
789
790	* tcpprocess.c: reworked code to use tcp_links instead of
791        icq_ContactItem entries.  modified ProcessChatPacket to negotiate
792        both sending and receiving chat requests properly.
793
794	* list.c, list.h: new list functions- replaces packetqueue
795        and handles new list of tcp_links
796
797	* packetqueue.c, packetqueue.h: removed, list.c now used for
798	queues
799
800	* Makefile.am: removed packetqueue.c, added list.c
801
8021999-04-14  Denis V. Dmitrienko  <denis@null.net>
803
804	* tcpprocess.c: icq_ContactItem parameter added to function
805	icq_TCPOnMessageReceived(). Segfault fixed on spoofed messages.
806
807	* icqlib.c, proxy.c, packetqueue.c, icqlib.h, tcp.c, tcp.h,
808	tcplink.c, udp.c, udp.h, udphandle.c, util.c, util.h, tcppacket.c,
809	tcppackets.c, tcpprocess.c, tcppackets.h: Cleanups for "strict"
810	compiling (-ansi -pedantic)
811
812	* icqlib.c, proxy.c, udp.c, udphandle.c, cyrillic.c: Switched from
813	icq_Log callback to icq_FmtLog function.
814
815	* tcp.h: Some declarations added
816
817	* tcp.c: Parameter port added to icq_TCPCreateListeningSocket()
818	function.
819
820	* icq.h: Added icq_FmtLog()
821
822	* configure: Added AC_CHECK_COMPILERS to allow --enable-debug and
823	--enable-strict configure options.
824
8251999-04-05  Bill Soudan          <wes0472@rit.edu>
826
827        icqlib will now create and listen on the chat socket when
828        necessary, and will perform negotiation for _receiving_ remote
829        chat requests only.
830
831	* callbacks.c icq.h tcp.c tcp.h tcplink.c tcplink.h tcppacket.c
832        tcppackets.c tcppackets.h tcpprocess.c udphandle.c util.c
833        util.h: added initial chat support
834
8351999-04-05  Denis V. Dmitrienko  <denis@null.net>
836
837	* icqlib.c: Send messages and URLs to 'not in list' users fixed.
838
8391999-03-30  Bill Soudan           <wes0472@rit.edu>
840
841        tcp messages and urls completely functional!
842        unsuccessful connects not handled yet, however, plus connect
843        is currently blocking (yuck)
844
845	* util.c: cleaned up old TCPLog function
846	* udphandle.c: added tcpflag handling to UserOnline
847	* icq.h: added icq_TCPSendURL and modified icq_UserOnline to
848          handle tcpflag
849	* icqlib.c: added tcp support to SendURL
850	* icqlib.h: modified LOGIN_X2_DEF to 0x04 instead of 0x06- we're
851          ready to accept tcp packets now!  removed duplicate LOGIN_X*
852          definitions
853	* packetqueue.c tcp.c tcp.h tcplink.c tcppacket.c tcppackets.c
854	  tcppackets.h tcpprocess.c: wrapped up many tcp details-  code
855	  now handles incoming and outgoing tcp messages and urls!
856
8571999-03-30  Vadim Zaliva  <lorda@crocodile.org>
858
859	* icqlib/util.c (icq_GetCountryName): function prototype now takes
860	'unsigned short' as country code.
861	Country codes list now prorerly sorted, thus no need to sort it
862	using qsort.
863
8641999-03-29  Vadim Zaliva  <lord@crocodile.org>
865
866	* icqlib/util.c (icq_ConvertStatus2Str): this function now accepts
867	ulong as sttatus argument, since we use unsigned long for status
868	everywhere.
869	(icq_TCPXlateStatus): This function now use unsigned long as
870	'udp_status' parameter type.
871	(icq_GetCountryName): Optimized country code search.
872	(icq_TCPXlateStatus): cleanup.
873
874	* icqlib/icq.h: Change state constants to long.
875
8761999-03-27  Bill Soudan          <wes0472@rit.edu>
877
878        preliminary tcp support added and functional!
879        tcp messages will send to and from remote client when kicq
880        initiates the connection- remote clients will not try a tcp
881        connection to kicq yet
882
883	* icq.h: added extern TCP function prototypes
884        * icqlib.c: added TCP support to icq_SendMessage
885	* packetqueue.c: cleaned up, fixed bugs, finished packet_queue_dump
886	* tcp.c: added icq_TCPSendMessage and socket close/process logic
887	* tcplink.c: fixed tcp_link_connect so it really connects to
888          remote client instead of always to my local test computer O:)
889	* tcppacket.c: added code to handle null string in
890          tcp_packet_append_string
891	* tcppackets.c,h: CreateStdPacket actually puts IP and port info
892	  in now, added CreateStdAck and CreateMessageAck
893	* udphandle.c: fixed bug in HandleUserOnline (remote_ip and
894          remote_real_ip were not evaluating correctly), added hack
895          so I can test using local network, fixed function names
896          so icqlib compiles
897	* tcpprocess.c: added code to handle received messages,
898          finished process ack function
899	* util.c: removed static from Country_Codes so regwin.cpp
900          from kicq can use it
901
9021999-03-26  Bill Soudan          <wes0472@rit.edu>
903
904	* tcp.c, tcp.h: finished select logic
905	* tcplink.c: fixed C++ comments, cleaned up
906	* tcpprocess.c: added icq_TCPProcessHello
907	* packetqueue.c: moved packet_queue_find_queue from tcp.c
908	* util.c: rewrote icq_TCPLog
909
9101999-03-25  Bill Soudan          <wes0472@rit.edu>
911
912	* tcplink.c, tcplink.h: added
913	* Makefile.am: added tcplink.c
914	* icqlib.c: added #include "util.h"
915	* tcp.c, tcp.h: moved many functions into tcplink.c
916	* tcpprocess.c: changed types to standard
917	* udphandle.c: modified HandleUserOnline & Offline for new message_link
918	* util.c: ContItem functions modified for message_link
919	* util.h: message_link added to ContactItem struct, moved types to
920          seperate file
921	* icqtypes.h: added
922	* tcppacket.h: cleaned up
923
9241999-03-24  Denis V. Dmitrienko  <denis@null.net>
925
926	* Makefile.am, Makefile.in, callbacks.c, cyrillic.c, icq.h,
927	icqlib.c, icqlib.h, packetqueue.c, packetqueue.h, proxy.c,
928	proxy.h, tcp.c, tcp.h, tcppacket.c, tcppacket.h, tcppackets.c,
929	tcppackets.h, tcpprocess.c, udp.c, udp.h, udphandle.c, util.c,
930	util.h:
931 	Underscored files with TCP stuff renamed.
932	TCP stuff cleaned up
933	Function names changed to corresponding names.
934	icqlib.c splitted to many small files by subject.
935	C++ comments changed to ANSI C comments.
936
937	* Makefile.cvs, Makefile.in, acconfig.h, acinclude.m4,
938	acinclude.m4.in, aclocal.m4, config.guess, config.h.in,
939	config.sub, configure, configure.in, install-sh, libtool.m4.in,
940	ltconfig, ltmain.sh, mkinstalldirs, stamp-h.in: Updated
941	autoconf/automake/libtool configuration tools
942
9431999-03-22  Bill Soudan          <wes0472@rit.edu>
944
945	* Makefile.am: added new files
946
947	* icqlib.h, icqlib.c: added additional struct entries in
948          icq_ContactItem for tcp code, added code in
949	  icq_HandleUserOnline and icq_HandleUserOffline for setup/cleanup
950
951	* added many files for tcp implementation:
952	  icq_tcp.c icq_tcp.h icq_tcp_packets.c icq_tcp_packets.h
953          icq_tcp_process.c packet_queue.c packet_queue.h
954          tcp_packet.c tcp_packet.h util.c
955
9561999-03-05  Denis V. Dmitrienko  <denis@null.net>
957
958	* icqlib.h, icqlib.c, icq.h: Some cosmetic changes...
959
960Version 0.1.3 (08 Dec 1998)
961  SOCKS5 proxy support.
962  icq_RecvMessage now returns sending message time not receiving.
963  Visible list support changed.
964  Handle icq99a statuses.
965
966Version 0.1.2 (05 Oct 1998)
967  Search by UIN added.
968  SunOS port (Thanks to Joe Avila <joe@avilate.com>).
969
970Version 0.1.1 (21 Sep 1998)
971  Renamed from libicq to icqlib - there is another libicq on the net.
972  Little changes to allow UI call select() itself.
973
974Version 0.1.0 (18 Sep 1998)
975  Initial public version.
976