view plugins/icq/ChangeLog @ 1792:de88617f542c

[gaim-migrate @ 1802] if (gtk_main_level()) gtk_main_quit(); exit(0); committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 01 May 2001 21:47:24 +0000
parents e06dcc3025a9
children 7b3f1eb1ef7d
line wrap: on
line source

2001-03-03  Bill Soudan  <soudan@kde.org>

	* icqlib/chatsession.c, icqlib/filesession.c, icqlib/icq.h.in:
	add user_data member to icq_ChatSession and icq_FileSession

	* icqlib/icq.h.in, icqlib/tcplink.c: add compile fix for BeOS

	* README.BeOS: added

2001-03-01  Bill Soudan  <soudan@kde.org>

	This should fix all problems introduced by my 02-22 commit.

	* icqlib/icqlib.c: only initialize TCP subsystem when use_tcp is 
	enabled

	* icqlib/timeout.c: don't crash when timeouts are deleted during 
	icq_HandleTimeout, send a zero-length icq_SetTimeout when
	appropriate to clear current timeout request

	* icqlib/udp.c: rewrote icq_UDPEncode and icq_UDPCheckCode
	functions to do their work in a seperate buffer so original
	icq_Packet isn't corrupted, fixed bug where UDP_CMD_ACKs were
	being queued on the UDP packet queue

2001-02-22  Bill Soudan  <soudan@kde.org>

	Note the icq_SetTimeout callback has been moved outside of
	the ICQLINK structure, and icq_HandleTimeout no longer 
	requires an ICQLINK parameter.  TCP connect timeouts should
	work once again.

	* icqlib/filesession.c: fixed initialization bug that may
	cause a crash on file session deletion

	* icqlib/Makefile.am, icqlib/timeout.c, icqlib/timeout.h,
	icqlib/icq.h.in, icqlib/icqlib.c: new timeout manager code,
	correct compilation warnings

	* icqlib/list.c, icqlib/list.h: added sorted list capability -
	see list_insert_sorted and new compare_function list struct
	member

	* icqlib/queue.c, icqlib/queue.h, icqlib/tcp.c, icqlib/tcplink.c,
	icqlib/tcplink.h, icqlib/udp.c, icqlib/udphandle.c:
	port tcp connect timeout code and UDP queue to new timeout
	manager

	* icqlib/socketmanager.c: move icq_SocketHandler declaration
	here, instead of declaring it in icqlib.c.  fix bug with
	icq_SocketPoll/icq_SocketMain, as reported by Michael Hudson.

	* bindings/python/icqlibmodule.c: ported to new timeout
	interface - remove SetTimeout callback and HandleTimeout 
	methods from PyICQLink class, add icqlib.InstallTimeoutHandler 
	and icqlib.HandleTimeout methods.
	
2001-01-27  Bill Soudan  <soudan@kde.org>

	* icqlib/socketmanager.c, icqlib/socketmanager.h, 
	icqlib/tcplink.c: fix bugs related to TCP and new socket manager:
	implemented accepting TCP sockets, fixed crashes when sending
	TCP messages.

2001-01-24  Bill Soudan  <soudan@kde.org>

	* icqlib/stdpackets.c, icqlib/stdpackets.h, icqlib/tcphandle.c,
	icqlib/icq.h.in: applied patch from Robin Ericsson 
	(lobbin@localhost.nu) which implements receiving contact lists.  
	See new icq_RecvContactList callback.
	
2001-01-20  Bill Soudan  <soudan@kde.org>

	* icqlib/chatsession.c, icqlib/icq.h.in: added documentation

	* icqlib/icqbyteorder.h: applied patch from Eric Warmenhoven
	to fix byte order on HP/UX.

	* icqlib/tcplink.h: applied patch from Eric Warmenhoven to
	fix compilation on FreeBSD.

2001-01-16  Bill Soudan  <soudan@kde.org>

	Phase 2 of my interface cleanups.  See CHANGES_SINCE_1.0 for
	more details.  icqlib developers be sure to look at 
	socketmanager.c - all future socket create/delete/handling needs 
	to go through this code so the new icq_SocketNotify callback
	works properly.

	* icqlib/socketmanager.c, icqlib/socketmanager.h, 
	icqlib/Makefile.am: added socketmanager.c & socketmanager.h

	* icqlib/contacts.h, icqlib/list.h, icqlib/proxy.c: cleanup

	* icqlib/chatsession.c, icqlib/chatsession.h, icqlib/filesession.c,
	icqlib/icq.h.in, icqlib/icqevent.c, icqlib/icqevent.h, 
	icqlib/icqlib.c, icqlib/icqlib.h, icqlib/tcp.c, 
	icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c, 
	icqlib/tcphandle.c, icqlib/tcplink.c, icqlib/tcplink.h:
	Rework chat and file interfaces; implement socket notifications.

	* VERSION: bumped to 1.1.5

2001-01-16  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/contacts.c, icqlib/contacts.h, icqlib/icq.h.in, icqlib/udp.c:
	Invisible list has been finished.

2001-01-15  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/tcplink.c:
	Applied patch from Ilya Melamed <ilya@ort.org.il> which fixes random
	icq_TCPLinkAccept() fails.

	* icqlib/udphandle.c:
	Applied patch from Andrey Chernomyrdin <andrey@excom.spb.su> to
	handle icq2000 specific "You've been added" packet.

	* icqlib/icq.h.in:
	Prototype for icq_SendInvisibleList() has been added.

	* .cvsignore, icqlib.spec.in:
	Applied patch from Ryan Weaver <ryanw@infohwy.com> for .spec file
	generation.

	* configure.in, Makefile.am, Makefile.cvs, admin/acinclude.m4.in,
	admin/config.guess, admin/config.sub, admin/icqlib.m4.in,
	admin/install-sh, admin/libtool.m4.in, admin/ltconfig,
	admin/ltmain.sh, admin/missing, admin/mkinstalldirs,
	acinclude.m4.in, am_edit, config.guess, config.sub, icqlib.m4.in,
	install-sh, libtool.m4.in, ltconfig, ltmain.sh, missing,
	mkinstalldirs:
	autoconf/automake files have been moved to admin directory.

	* TODO, icqlib/icqlib.c: Cleanup.

2000-12-19  Bill Soudan  <wes0472@rit.edu>

	* icqlib/chatsession.c, icqlib/contacts.c, icqlib/eventhandle.c,
	icqlib/filesession.c, icqlib/icq.h.in, icqlib/icqlib.c,
	icqlib/icqlib.h, icqlib/queue.c, icqlib/stdpackets.c,
	icqlib/tcp.c, icqlib/tcplink.c icqlib/udp.c: moved some ICQLINK
	members to ICQLINK_private structures, added icq_ICQLINKNew and
	icq_ICQLINKDelete functions which replace icq_Init and icq_Done

	* CHANGES_SINCE_1.0: lists source incompatable changes since
	1.0 release.

	* VERSION: bumped version number to 1.1

2000-12-06  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/queue.c, icqlib/stdpackets.h, icqlib/tcp.h, icqlib/tcphandle.c:
	Handling for mass TCP messages has been added based on patch by
	Konstantin Klyagin <konst@konst.org.ua>

2000-12-03  Bill Soudan  <soudan@kde.org>

	* icqlib/queue.c: fixed compilation with gcc-2.96

	* icqlib/tcplink.c: fixed bug #105068

2000-11-02  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/icq.h.in, icqlib/icqlib.c, icqlib/udp.c:
	Ability to disable TCP protocol has been added.

	* icqlib/udphandle.c: Do not ack unhandled protocol version.

2000-08-13  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/tcphandle.c:
	Cyrillic recoding on received URL description added.

	* icqlib/icq.h.in, icqlib/util.c: icq_Genders[] array have been added.

2000-08-13  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/udp.c: Patch #101057 have been applied.

2000-07-31  Denis V. Dmitrienko  <denis@null.net>

	* .cvsignore, Makefile.am: Little modifications before releasing.

2000-07-30  Denis V. Dmitrienko  <denis@null.net>

	* ChangeLog, icqlib-0.2.0.lsm, icqlib-1.0.0.lsm, README, TODO,
	VERSION, Win32.zip:
	Updated version for 1.0.0 release.

2000-07-25  Denis V. Dmitrienko  <denis@null.net>

	* README: Description was changed a little.

	* icqlib/icq.h.in: Cleanups.

2000-07-23  Bill Soudan  <soudan@kde.org>

	* README: added description

	* icqlib/icq.h.in, icqlib/icqlib.c, icqlib/tcpchathandle.c,
	icqlib/tcpfilehandle.c: added support for real nickname during
	TCP transactions like file and chat, instead of using Bill
	all the time (hmm, where'd I get that from? :)

2000-07-22  Denis V. Dmitrienko  <denis@null.net>

	* AUTHORS, DEVEL, icqlib-0.1.3.lsm, icqlib-0.2.0.lsm, README, TODO:
	Text files in root directory were changed to reflect latest changes.

2000-07-22  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/util.c: Trinidad and Tobago country was added.

	* icqlib/icq.h.in: Cleanups.

2000-07-21  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/util.c: All languages, possible in original icq were added.
	Occupation array fixed.

2000-07-20  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/util.c:
	Occupation table corrected to comply with original ICQ.

2000-07-09  Bill Soudan  <soudan@kde.org>

	* icqlib/list.c: added more trace messages, added list_remove_node
	call in list_free... fixes list corruption bug introduced
	during last commit

	* icqlib/queue.c: added more trace messages, reworked packet
	delete handling: now happens during _icq_UDEQueueItemFree rather
	than during icq_UDPQueueDelSeq - fixes memory leak

2000-07-09  Bill Soudan  <soudan@kde.org>

	Cleanups, and nasty memory bug fixes.  Hopefully this will
	correct the strange crashes Denis is having after the icq_Done
	call!

	The major problem was: icq_TCPLinkDelete and icq_FileSessionDelete
	were calling list_remove to remove themselves from the global
	TCPLink and FileSession lists kept in ICQLINK.  But, these
	functions were being called from a list_delete call also,
	in icq_TCPDone, so what was happening is the list_nodes were
	getting free()ed twice!

	This problem was circumvented by removing the list_remove
	from the *Delete functions, and creating new Close functions
	that do the list_remove and then call the corresponding 
	Delete function.

	* icqlib/chatsession.c, icqlib/chatsession.h, icqlib/filesession.c,
 	icqlib/tcp.c, icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c,
	icqlib/tcplink.c, icqlib/tcplink.h, icqlib/udp.c,
	icqlib/stdpackets.h: adding new *Close functions, use *Close
	functions instead of *Delete where correct, and misc cleanups

	* icqlib/icq.h.in: removed unnecessary members from ICQLINK

	* icqlib/icqlib.c, icqlib/icqlib.h: removed unnecessary
	functions

	* icqlib/list.c, icqlib/list.h: recoded list_free function - this
	was working very incorrectly!  it was only freeing the first
	node of the list, and then ending.  fixes a memory leak.

	* icqlib/queue.c: use new list_free 

	* icqlib/tcp.c: use Close functions, misc cleanups

2000-07-09  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/icq.h.in: Cleanups.

	* icqlib/icqlib.c:
	Initial memset() in icq_Init() replaced by callback's clearance.

	* icqlib/udp.c:
	icq_UpdateNewUserInfo() now returns seq1 instead of seq2 since it
	isn't META function.

2000-07-07  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/icqpacket.c:
	"icq_Packet data overflow" log message temporarily commented out.

2000-07-04  Paul Cadach          <paul@odt.east.telecom.kz>
	* icqlib/utilc:
	icq_FmtLog() crashed when it receives NULL at link argument.

2000-06-30  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/util.c: Slovak Republic country code fixed.

2000-06-25  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/udphandle.c:
	icq_HandleMetaUserInfo() handles all (!) available in original icq2k
	Meta User Info packets along with other useful Meta* packets. (WOW! ;)

	* icqlib/icq.h.in:
	New callbacks (we really need an event-driven model later):
	icq_MetaUserFound, icq_MetaUserInfo, icq_MetaUserWork,
	icq_MetaUserMore, icq_MetaUserAbout, icq_MetaUserInterests,
	icq_MetaUserAffiliations, icq_MetaUserHomePageCategory
	New functions-companions for Meta User Info:
	icq_GetMetaOccupationName(), icq_GetMetaBackgroundName(),
	icq_GetMetaAffiliationName(), icq_GetMetaLanguageName()
	New function to request Meta User Info icq_SendMetaInfoReq()
	COUNTRY_CODE was "generalized" to icq_ArrayType. Note: this is
	source incompatible change!

	* icqlib/util.c: icq_MetaOccupation[], icq_MetaPastBackgrounds[],
	icq_MetaAffiliations[] and icq_MetaLanguages[] arrays were added along
	with icq_GetMetaOccupationName(), icq_GetMetaBackgroundName(),
	icq_GetMetaAffiliationName() and icq_GetMetaLanguageName() functions
	to access them.

	* icqlib/udp.h: Some META* defines changed/added.
	USER_INFO structure which is never been used now removed.

	* icqlib/udp.c: icq_SendMetaInfoReq() was added.
	All icq_*Meta*() functions now returns sequence number 2 because their
	replies from the server are synced with it.

	* icqlib/tcphandle.c, icqlib/tcpfilehandle.c, icqlib/eventhandle.c:
	'\n' was added at the end of log messages.

	* icqlib/queue.c:
	Some sanity checks were added to icq_UDPQueueDelete() and
	icq_UDPQueueFree()

	* icqlib/icqpacket.c: icq_PacketUDPDump() tweaked a little.

2000-06-17  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/contacts.c, icqlib/icq.h.in:
	New parameter was added in icq_ContactSetVis() for setting/resetting
	'Visible to User' status.
	Port's type was changed to unsigned short in icq_UserOnline callback.

2000-06-15  Bill Soudan  <soudan@kde.org>

	* icqlib/icqevent.c, icqlib/icqevent.h, icqlib/eventhandle.c,
	icqlib/eventhandle.h: committed for safekeeping, not used yet.
	this code will soon replace stdpackets.c and tcphandle.c, as
	well as reducing code duplication in many other places.  hopefully
	it can eventually be extended to manage udp events as well, as
	it's written in pseudo-object-oriented style.

2000-06-14  Bill Soudan  <soudan@kde.org>

	Bugfixes and code cleanups.

	* icqlib/filesession.c, icqlib/filesession.h: added id arg to
	icq_FindFileSession to allow searches for specific file session

	* icqlib/icq.h.in: removed *Seq functions, renamed chat req functions
	to be consistent with file req functions, added Cancel and Refuse
	functions for chat and file reqs

	* icqlib/queue.h: added proto for icq_UDPQueueInterval

	* icqlib/stdpackets.c, icqlib/stdpackets.h: added creation
	functions for cancel and refuse operations

	* icqlib/tcp.c, icqlib/tcp.h: added Cancel and Refuse functions
	for chat and file reqs, changed packet sending code to use new
	icq_TCPLinkSendSeq function to elimitane duplicate code, removed
	*Seq functions, renamed chat req functions

	* icqlib/tcpfilehandle.c: fixed bug: sending file sessions would
	freeze if remote side changed speed

	* icqlib/tcplink.c, icqlib/tcplink.h: added icq_TCPLinkSendSeq
	function

	* icqlib/icqlib.c, icqlib/udp.c: removed *Seq functions

2000-05-21  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/util.c: Bulgaria country code was added. Thanks to
	"Napalm Death" <napalmbox@hotmail.com>

	* icqlib/cyrillic.c: Applied patch for russian letters IO and io by
	Vladimir Eltchinov <elik@design.ru>

2000-05-10  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/icq.h.in, icqlib/icqlib.c, icqlib/queue.c,
	icqlib/queue.h, icqlib/udp.c:
	UDP outgoing packet queue was implemented.

	* icqlib/udphandle.c, icqlib/proxy.c:
	icq_Disconnect() now called before icq_Disconnected callback to
	prevent high CPU usage in kicq's "reconnect on disconnect" code.

	* icqlib/list.c, icqlib/list.h:
	list_free() was added to free but do not dispose the list.
	Memory leak with destroying the list was fixed.

2000-05-05  Denis V. Dmitrienko  <denis@null.net>

	* Win32.zip:
	Automatically generated icq.h repackaged for Win32 portability.

2000-05-04  Bill Soudan  <soudan@kde.org>

	* icqlib/tcp.h: undefined TCP debug trace constants in preparation
	for release.

	* icqlib/stdpackets.c: warning cleanups.

	* icqlib/icq.h.in: changed FILE_STATUS_* defines, removed
	many ICQ_NOTIFY_FILE* defines, added new direction member
	to icq_FileSession, removed unnecessary uin arg from
	icq_FileSessionSetSpeed.

	* icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c, icqlib/tcphandle.c,
	icqlib/tcplink.c, icqlib/filesession.c, icqlib/tcp.c:
	Reworked file transfer notification, small bugfixes,
	and cleanups.

2000-05-03  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/udp.c: icq_UpdateNewUserInfo() was added.
	All icq_UpdateMetaInfo*() now return their sequence number.

	* icqlib/chatsession.c, icqlib/filesession.c, icqlib/icq.h.in,
	icqlib/Makefile.am, icqlib/proxy.c, icqlib/tcpchathandle.c,
	icqlib/tcpfilehandle.c, icqlib/tcphandle.c, icqlib/tcplink.c,
	icqlib/udphandle.c, icqlib/util.c, icqlib/callbacks.c:
	Callbacks have been moved to the ICQLINK structure.

	* icqlib/icqpacket.c, icqlib/icqpacket.h:
	icq_PacketReadUDPInUIN() was added.

	* icqlib/list.c: Bug with empty contact list was fixed.

	* icqlib/icqlib.c: Unfinished UDP queue was commented out.

2000-04-13  Denis V. Dmitrienko  <denis@null.net>

	* README.Win32, VC5.zip, Win32.zip:
	icq.h header file which is automatically generated on Unix is packaged
	in Win32.zip archive along with the Visual C++ 5.0 project file.

2000-04-10  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/chatsession.h, icqlib/filesession.h, icqlib/stdpackets.c,
	icqlib/tcp.c, icqlib/tcpfilehandle.c, icqlib/tcplink.c:
	ANSI cleanups.

	* icqlib/filesession.c, icqlib/icqlib.c, icqlib/stdpackets.h,
	icqlib/tcp.c, icqlib/tcpfilehandle.c, icqlib/tcp.h,
	icqlib/tcplink.c, icqlib/udp.c, icqlib/udp.h, icqlib/util.c,
	VC5.zip:
	Some more Win32 compatibility from Guillaume Rosanis <grs@mail.com>

2000-04-06  Herbert Valerio Riedel  <hvr@gnu.org>

	* icqlib/icq.h.in, icqlib/udp.c (icq_KeepAlive,icq_SendAuthMsg):
	return sequence number

2000-04-06  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/icq.h.in, icqlib/icqlib.c, icqlib/stdpackets.c, icqlib/tcp.c:
	icq_*Send*Seq() functions with specified sequence number were added.

	* icqlib/udp.c:
	So called "Online List problem" bug with Long Contact List was fixed.
	icq_*Send*Seq() functions with specified sequence number were added.

2000-04-05  Denis V. Dmitrienko  <denis@null.net>

	* README.Win32, VC5.zip, icqlib/icqbyteorder.h, icqlib/icq.h.in,
	icqlib/icqlib.c, icqlib/icqlib.h, icqlib/icqpacket.c,
	icqlib/icqtypes.h, icqlib/proxy.c, icqlib/tcp.c,
	icqlib/tcpchathandle.c, icqlib/tcpfilehandle.c,
	icqlib/tcphandle.c, icqlib/tcplink.c, icqlib/tcplink.h,
	icqlib/udp.c, icqlib/util.c, icqlib/util.h:
	Applied patch from "Guillaume R." <grs@mail.com> for basic Win32
	compatibility.

2000-03-31  Igor S. Petrenko <nofate@europe.com>

	* icqlib/util.c: remove static variable

2000-03-30  Denis V. Dmitrienko  <denis@null.net>

	* am_edit, configure.in, libtool.m4.in, ltconfig, ltmain.sh,
	missing, mkinstalldirs, acinclude.m4.in, Makefile.cvs:
	New autoconf/automake stuff from KDE2.

	* icqlib/queue.c: Fixed FreeBSD warning about obsolete malloc.h
	header.

2000-02-14  Bill Soudan  <soudan@kde.org>

	Applied patch from Paul Cadach <paul@odt.east.telecom.kz>.

	* icqlib/icq.h.in: added icq_TCPSendChatData_n

	* icqlib/tcp.c: use new icq_ChatRusConv_n function in
	icq_TCPSendChatData, new icq_TCPSendChatData_n function

	* icqlib/tcplink.c, tcplink.h: new icq_ChatRusConv_n function

2000-02-06  Bill Soudan  <soudan@kde.org>

	* icqlib/tcpchathandle.c: warning cleanups.

2000-02-06  Bill Soudan  <soudan@kde.org>

	Applied patch from Paul Cadach <paul@odt.east.telecom.kz>.  
	Thanks Paul!

	Paul's change list:

	1) Modified TCP link code to allow non-blocking TCP connects over 
	SOCKS5 proxy
	2) Added missed Cyrillic translating for Chat subject, URL subject, 
	File transfer subject (both directions);    
	3) Fix a bug in TCPLinkProxyConnect code (remote address was random 
	due to using local variable instead of plink's remote_address).  

	* icqlib/cyrillic.c, icqlib/icqlib.h: added icq_RusConv_n

	* icqlib/stdpackets.c: slightly modified chat packets

	* icqlib/tcp.c: new code for SOCKS connections, more cyrillic
	translations

	* icqlib/tcpchathandle.c: new code for special chat functions
	(background, fonts, etc)

	* icqlib/tcplink.c: implemented non-blocking TCP connects
	over SOCKS, cyrillic translation for chat

	* icqlib/tcplink.h: new defines for SOCKS5 code

	* icqlib/udphandle.c: changed log message in HandleUserOnline
	
2000-02-03  Bill Soudan  <soudan@kde.org>

	* icqlib/icqlib.h: line 33, fixed minor compile bug, changed
	u_int32_t declaration to unsigned long.  This was causing a 
	problem compiling on SunOS, as reported by Longwen
	<longwen@mail.com>

2000-01-20  Bill Soudan  <soudan@kde.org>

	Worked more on file send implementation.  icqlib will now also 
	handle sending file requests to clients.

	* icqlib/filesession.c, filesession.h, icq.h.in, stdpackets.c
	stdpackets.h, tcp.c, tcpfilehandle.c, tcphandle.c:
	first implementation of sending file requests

	* icqlib/tcplink.c: fixed bug in icq_TCPLinkConnect that caused
	file/chat connection attempts to go to the wrong port

2000-01-16  Bill Soudan  <soudan@kde.org>

	Exported icq_FileSession structure to library clients;
	fixed a serious list bug.  Oops. :)

	* icqlib/filesession.c, filesession.h: added new public functions,
	icq_FileSessionSetSpeed, icq_FileSessionClose,
	icq_FileSessionSetWorkingDir, moved icq_FileSession interface to
	icq.h.in
	
	* icqlib/icq.h.in: added definition for icq_FileSession and new
	public functions

	* icqlib/list.c: fixed serious bug in list_remove

	* icqlib/tcp.c: renamed icq_TCPAcceptFileReq to
	icq_AcceptFileRequest, moved file request functions to new
	file session code

	* icqlib/tcpfilehandle.c: added code so icq_FileSessions now
	keep track of the tcplink to which they are attached

	* icqlib/tcplink.h: removed list_node from icq_TCPLink

2000-01-15  Bill Soudan  <soudan@kde.org>

	Reworked list routines so list_node's don't need to be
	inside item structures.  Note this made the strlist code
	unnecessary - strlist code was replaced with generic list
	commands.

	* icqlib/Makefile.am: strlist.c, strlist.h removed

	* chatsession.c, chatsession.h, contacts.c, contacts.h,
	filesession.c, filesession.h, icqlib.c, icqpacket.c, icqpacket.h,
	list.c, list.h, queue.c, queue.h, tcp.c, tcplink.c, tcplink.h,
	udphandle.c: reworked list code, removed strlist code

	* strlist.c, strlist.h: removed

1999-12-27  Bill Soudan  <soudan@kde.org>

	* icqlib/icq.h.in: added proto for icq_TCPFileSetSpeed

	* icqlib/icqlib.c: cleanups

	* icqlib/tcp.c: fixed bug in icq_TCPAcceptFileReq, added
	icq_TCPFileSetSpeed

	* icqlib/tcplink.c: fixed bug in icq_TCPOnDataReceived,
	removed flags variable ;) 

1999-12-27  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/udphandle.c, icqlib/udp.h, icqlib/udp.c, icqlib/icq.h.in:
	icq_UpdateMetaInfoSecurity() added for setting "My authorization is
	required", "Web Aware" and "IP Publishing".

	* icqlib/tcplink.c: Unused "flags" variable commented out.

1999-12-20  Bill Soudan  <soudan@kde.org>

	Worked more on file transfer.  icqlib will now write received
	files to disk, and handles all transfer details accordingly
	after icq_TCPAcceptFileReq is called.  Note currently
	files are always saved in current directory.  Receiving a
	single file is working 100% as best I can tell - receiving
	multiple files hasn't been tested well but should work.

	Also reworked icq_TCPLinkOnDataRecevied to handle quick, large
	streams of data (processing 1 packet every main loop call
	just didn't cut it :), and at the same time fixed a bug where
	received packets would not get processed if the remote end
	closed the connection immediately after sending one.  This had
	the result that the tcp sockets stay in non-blocking mode
	for their entire life, instead of just during connect
	as before.

	Resume is currently off-by-one I think.  Don't rely on it.

	* icqlib/filesession.[ch]: added file open/close logic, changed
	icq_FileSession struct a bit

	* icqlib/icq.h.in: removed unnecessary icq_TCPSendFile??Packet
	functions, user programs do not use these

	* icqlib/tcp.[ch]: moved _process_packet logic into tcplink::
	icq_TCPLinkProcessReceived, removed unnecessary
	icq_TCPSendFile??Packet functions

	* icqlib/tcpfilehandle.c: added more file transfer logic to
	write file to disk

	* icqlib/tcplink.c: added icq_TCPLinkProcessReceived to
	support processing receive queue before delete (packets used
	to get dropped in this instance, oops), reworked 
	icq_TCPLinkOnDataReceived to handle quick, large streams
	of data, changed icq_TCPLinkOnConnect and *Accept to
        make all sockets non-blocking.

1999-12-13  Bill Soudan  <soudan@kde.org>

	Implemeted SF task #10224, use real_ip when our IP and remote
	IP are same, and task #10203, connect timeout for tcp requests.

	Fixed bug #100312, double freeing of list item.

	NOTE: masq hack in udphandle.c::icq_HandleUserOnline is now gone!
        Updated connect logic _should_ automatically do that for us now.

	* icqlib/contacts.h: added remote_real_ip member to icq_ContactItem 
	struct 

	* icqlib/tcp.c: fixed double delete bug in _handle_ready_sockets,
	added code to implement connect timeout
	
	* icqlib/tcplink.c: icq_TCPLinkConnect now uses real_ip when
	our IP is same as remote IP to make connection, added
	code to implement connect timeout

	* icqlib/tcplink.h: added TCP_LINK_CONNECT_TIMEOUT constant,
	added connect_time to icq_TCPLink struct

	* icqlib/udphandle.c: removed old real_ip->ip masq hack,
        added store to remote_real_ip in icq_ContactItem 

1999-12-12  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/udphandle.c: Authorization Request packet handling fixed.

	* Makefile.am: DEVEL file included

1999-12-02  Bill Soudan  <soudan@kde.org>

	commited missing filesession.c and filesession.h files.  Sorry
	'bout that :)

1999-11-30  Bill Soudan  <soudan@kde.org>

	More file xfer support added.  icqlib tcp will now 'go through the
	motions' for receiving a file.  file data is not written to 
	disk, yet.
	
	* icqlib/Makefile.am: added filesession.[ch]

	* icqlib/icq.h.in: new notify constant (ICQ_NOTIFY_FILE),
	new icq_FileSessions member in icqlink struct, new AcceptFileReq
	prototype

	* icqlib/icqpacket.h: ICQ_PACKET_DATA_SIZE increased to 4096
	to support file transfer packets

	* icqlib/tcp.c: added file session logic

	* icqlib/tcpfilehandle.c: added icq_HandleFileHello

	* icqlib/tcphandle.c: more file xfer logic added

	* icqlib/tcplink.c, tcplink.h: buffer overflow check added,
	tcplinks will now close if buffer overflows.  increased
	icq_TCPLinkBufferSize to 4096 to support file transfer packets

1999-11-29  Denis V. Dmitrienko  <denis@null.net>

	* icqlib/udphandle.c: icq_DoMsg() redone using string lists.

	* icqlib/strlist.c, icqlib/strlist.h:
	General interface for string lists added.

	* icqlib/tcplink.c: Absence of socklen_t type fixed.

	* icqlib/icq.h.in, icqlib/callbacks.c:
	icq_RecvMailExpress callback added.

	* icqlib/Makefile.am: strlist.[ch] added.

1999-10-14  Denis V. Dmitrienko  <denis@null.net>

	* icq.h.in, udp.c: icq_UpdateMetaInfo* functions added.

1999-10-07  Denis V. Dmitrienko  <denis@null.net>

	* icq.h.in, tcp.h: Internal/external functions declarations
	unified a little.

	* kicq/Makefile.am, proxy.c, udp.c: proxy.h file removed.

1999-10-06  Denis V. Dmitrienko  <denis@null.net>

	* DEVEL: Added the "developers' hint guide". Please read it
	carefully.

1999-09-29  Bill Soudan  <soudan@kde.org>

        Check out my spiffy new email address! :)

        Renamed all tcp_link* functions to icq_TCPLink*.

        Forgot to note: fixed memory leak in tcp.c (tcp packets were not
        being deleted after use... oops :)

	* chatsession.c, tcpchathandle.c, tcpfilehandle.c, tcphandle.c,
        chatsession.h: reworked chat/file handling.  fixed chat. (it's
        been broke since I put non-blocking connects in)

        * Makefile.am: added new files

        * icq.h.in: changed some notification values, added support for
        chat sessions to icqlink

        * icqlib.h, udp.h: moved a bunch of udp-only defines to udp.h

	* icqpacket.c, list.c: cleanups

        * tcp.c: cleanups, moved connect logic from _handle_ready_sockets
        to icq_TCPLinkOnConnect, tcp_link->icq_TCPLink

        * tcplink.c, tcplink.h: renamed tcp_link* to icq_TCPLink*.  many
        cleanups, added icq_TCPLinkOnConnect

        * stdpackets.c, stdpackets.h, tcp.h: tcp_link*->icq_TCPLink*

	* udp.c: tcp port wasn't being sent properly in login packet

1999-09-29  Denis V. Dmitrienko  <denis@null.net>

	Show must go on! Hopefully fixed CVS problems.

	* icqlib.c: Host/network/icq byteorder systemized.
	icq_Init() cleaned up.

	* acconfig.h, configure.in, icqlib.m4.in,
	icqlib/icqbyteorder.[ch]: More optimized byteswap stuff.

	* icqlib.h: LOGIN_*_TCP defines added.

	* icqpacket.[ch]: icq_PacketAppend16n() added for network-ordered
	word appending.

	* queue.[ch]: ICQLINK compatibility added.

	* stdpackets.c: Host/network byteorder cleanups.

	* tcplink.c: TCP code SOCKS-ification. Not finished.

	* udp.c: Webaware functions enabled without success even with
	UDP v5 - need more investigations.

	* udphandle.c: MailExpress message handler started.

1999-07-18  Bill Soudan          <wes0472@rit.edu>

	fixed tcp problems, changed icq_ContactItem structure to use
	list.c and moved to contacts.c, removed old byte swap macros
        in favor of new functions in icqbyteorder.c, and added better
        log messages

	* Makefile.am: added contacts.c, contacts.h

	* contacts.c, contacts.h: added

	* icq.h.in: moved icq_ContactItem struct to contacts.h,
        removed old *Sok members, renamed icq_Cont* functions

	* icqlib.c, icqlib.h: changed to use new byte-order functions &
	contact list functions

	* icqpacket.c: changed to use new byte-order functions

	* tcp.c: added better log messages

	* tcplink.c: fixed fail notification bug introduced during ICQLINK
        changes, changed to use new byte-order functions & contact list
        functions, added better log messages 

	* udp.c: changed to use new byte-order functions &
        contact list functions

	* udphandle.c: fixed tcp port bug in icq_HandleUserOnline, changed
        to use new byte-order & contact list functions

	* util.c, util.h: removed old byte order and contact list
        functions

1999-07-16  Denis V. Dmitrienko  <denis@null.net>

	Version changed to 0.2.0

	* udp.c, udp.h, udphandle.c: ICQ UDP v5 implemented.
 	Encription for ICQ UDP v5 implemented.
 	icq_Packet* unified interface for UDP packets implemented.
	Multipacket support of ICQ UDP v5 added.

	* util.[ch]: Status support changed to support early unsupported
	combined (ORed) statuses.

	* Makefile.am, icqlib/Makefile.am: Remove automatically generated
	files by "make maintainer-clean"

1999-07-02  Vadim Zaliva  <lord@crocodile.org>

	* icqlib/udphandle.c (icq_HandleUserOnline): using icqtohl macros
	to convert parameters of callback (IP addresses, port #) to host
	order.

	* icqlib/icqbyteorder.h: added (per Bill suggestion) defenitions
	of icqtohs, icqtons, ntociqs, htociqs macros.

	* icqlib/tcppacket.c: some system header files included to avoid
	compilation warnings.

	* icqlib/tcplink.c: some system header files included to avoid
	compilation warnings.

	* icqlib/tcp.h: icq_TCPProcessFilePacket prototype added to avoid
	compilation warnings.

	* icqlib/tcp.c: add includes to avoid compilation warning for
	getsockopt() and some other functions.

	* configure.in: add detection of headers used on Solaris, Linux,
	FreeBSD to detect edianness.

	* icqlib/icqbyteorder.h: defenition of icqtohl, icqtonl, ntociql,
	htociql macros.

1999-07-02  Bill Soudan          <wes0472@rit.edu>

	icq_SendMessage and icq_SendURL now accept a 3 choice thruSrv arg:
        ICQ_SEND_THRUSERVER, ICQ_SEND_DIRECT, or ICQ_SEND_BESTWAY.
        added support to icq_ContactItem structure and udphandle.c.

	* icq.h: added new ICQ_SEND_* constants

	* icqlib.c: added new code to support thruSrv arg to SendMessage
	and SendURL

	* util.h: added tcp_flag member to icq_ContactItem struct

	* udphandle.c: added code to HandleUserOnline to update tcp_flag

1999-06-30  Bill Soudan          <wes0472@rit.edu>

	implemented non-blocking connects, including checking for failed
        connects.  failed sends/other networking calls still to do.

	* icq.h: renamed ICQ_NOTIFY_CONNECTFAILED to ICQ_NOTIFY_FAILED

        * list.h, list.c: changed list_traverse to use va_list

	* tcpprocess.c: cleanups

	* tcp.c, tcplink.c, tcplink.h: implemented non-blocking connects
c
1999-05-03  Bill Soudan          <wes0472@rit.edu>

	* tcplink.c: removed exit calls

        * callbacks.c, icq.h, tcp.c, tcp.h, tcppackets.c, tcppackets.h,
        tcpprocess.c: initial file xfer support added- untested

1999-04-29  Denis V. Dmitrienko  <denis@null.net>

	* icqlib.h, udp.c, udp.h, udphandle.c: Unsuccessful attempt to
	implement web presence (webaware) feature - doesn't seems to work
	in ICQ v2.

	* list.c, tcp.c, tcplink.c, tcpprocess.c: Cleanups, warning
	removed

	* Makefile.in, acinclude.m4, aclocal.m4, config.h.in, configure,
	stamp-h.in, icqlib/Makefile.in: Removed automake/autoconf
	generated tools from CVS - "make -f Makefile.cvs" to generate them 
	after checkout.

1999-04-17  Bill Soudan          <wes0472@rit.edu>

	reworked tcp system significantly- tcp links are now kept as a
        seperate list instead of in icq_ContactItem.  chat requests can now be
        both sent and received successfully.

	* util.c, util.h, udphandle.c: removed *_link entries from
        icq_ContactItem, including cleaup/init code

	* icqlib.c, icq.h: modified Send* functions to return DWORD
        instead of WORD

	* tcp.c: _major_ restructuring.  all tcp sockets (including 
        listening sockets) are kept in global linked list, icq_TCPLinks.
        accept and listen functions moved to tcplink.c.  changed return
        values of Send* functions to DWORD.

	* tcp.h: changed return values of Send* functions to DWORD.

	* tcplink.c, tcplink.h: fixed bug in tcp_link_on_data_received,
        multiple packets that come in on one recv call are now handled
        correctly.  added tcp_link_accept and tcp_link_listen.  started
        using mode and type structure entries.  added icq_TCPLinks list
        and find_tcp_link function.  changed received_queue and send_queue
        to lists.

	* tcppacket.c, tcppacket.h: added tcp_packet_node_delete function
        and changed structure to include list_node for new list routines.

	* tcppackets.c, tcppackets.h: added new functions to create
        chat packets. removed unnecessary code.  added new function to
        create URL ack packet.

	* tcpprocess.c: reworked code to use tcp_links instead of
        icq_ContactItem entries.  modified ProcessChatPacket to negotiate
        both sending and receiving chat requests properly.

	* list.c, list.h: new list functions- replaces packetqueue
        and handles new list of tcp_links

	* packetqueue.c, packetqueue.h: removed, list.c now used for
	queues

	* Makefile.am: removed packetqueue.c, added list.c

1999-04-14  Denis V. Dmitrienko  <denis@null.net>

	* tcpprocess.c: icq_ContactItem parameter added to function
	icq_TCPOnMessageReceived(). Segfault fixed on spoofed messages.

	* icqlib.c, proxy.c, packetqueue.c, icqlib.h, tcp.c, tcp.h,
	tcplink.c, udp.c, udp.h, udphandle.c, util.c, util.h, tcppacket.c,
	tcppackets.c, tcpprocess.c, tcppackets.h: Cleanups for "strict"
	compiling (-ansi -pedantic)

	* icqlib.c, proxy.c, udp.c, udphandle.c, cyrillic.c: Switched from
	icq_Log callback to icq_FmtLog function.

	* tcp.h: Some declarations added

	* tcp.c: Parameter port added to icq_TCPCreateListeningSocket()
	function.

	* icq.h: Added icq_FmtLog()

	* configure: Added AC_CHECK_COMPILERS to allow --enable-debug and
	--enable-strict configure options.

1999-04-05  Bill Soudan          <wes0472@rit.edu>

        icqlib will now create and listen on the chat socket when
        necessary, and will perform negotiation for _receiving_ remote
        chat requests only.          

	* callbacks.c icq.h tcp.c tcp.h tcplink.c tcplink.h tcppacket.c       
        tcppackets.c tcppackets.h tcpprocess.c udphandle.c util.c
        util.h: added initial chat support

1999-04-05  Denis V. Dmitrienko  <denis@null.net>

	* icqlib.c: Send messages and URLs to 'not in list' users fixed.

1999-03-30  Bill Soudan           <wes0472@rit.edu>

        tcp messages and urls completely functional!
        unsuccessful connects not handled yet, however, plus connect
        is currently blocking (yuck)

	* util.c: cleaned up old TCPLog function
	* udphandle.c: added tcpflag handling to UserOnline
	* icq.h: added icq_TCPSendURL and modified icq_UserOnline to
          handle tcpflag
	* icqlib.c: added tcp support to SendURL
	* icqlib.h: modified LOGIN_X2_DEF to 0x04 instead of 0x06- we're
          ready to accept tcp packets now!  removed duplicate LOGIN_X*
          definitions
	* packetqueue.c tcp.c tcp.h tcplink.c tcppacket.c tcppackets.c
	  tcppackets.h tcpprocess.c: wrapped up many tcp details-  code
	  now handles incoming and outgoing tcp messages and urls!

1999-03-30  Vadim Zaliva  <lorda@crocodile.org>

	* icqlib/util.c (icq_GetCountryName): function prototype now takes
	'unsigned short' as country code.
	Country codes list now prorerly sorted, thus no need to sort it
	using qsort.

1999-03-29  Vadim Zaliva  <lord@crocodile.org>

	* icqlib/util.c (icq_ConvertStatus2Str): this function now accepts
	ulong as sttatus argument, since we use unsigned long for status
	everywhere.
	(icq_TCPXlateStatus): This function now use unsigned long as
	'udp_status' parameter type.
	(icq_GetCountryName): Optimized country code search.
	(icq_TCPXlateStatus): cleanup.

	* icqlib/icq.h: Change state constants to long.

1999-03-27  Bill Soudan          <wes0472@rit.edu>

        preliminary tcp support added and functional!
        tcp messages will send to and from remote client when kicq
        initiates the connection- remote clients will not try a tcp
        connection to kicq yet

	* icq.h: added extern TCP function prototypes
        * icqlib.c: added TCP support to icq_SendMessage
	* packetqueue.c: cleaned up, fixed bugs, finished packet_queue_dump
	* tcp.c: added icq_TCPSendMessage and socket close/process logic
	* tcplink.c: fixed tcp_link_connect so it really connects to
          remote client instead of always to my local test computer O:)
	* tcppacket.c: added code to handle null string in 
          tcp_packet_append_string
	* tcppackets.c,h: CreateStdPacket actually puts IP and port info
	  in now, added CreateStdAck and CreateMessageAck
	* udphandle.c: fixed bug in HandleUserOnline (remote_ip and
          remote_real_ip were not evaluating correctly), added hack
          so I can test using local network, fixed function names
          so icqlib compiles
	* tcpprocess.c: added code to handle received messages,
          finished process ack function
	* util.c: removed static from Country_Codes so regwin.cpp
          from kicq can use it

1999-03-26  Bill Soudan          <wes0472@rit.edu>

	* tcp.c, tcp.h: finished select logic
	* tcplink.c: fixed C++ comments, cleaned up
	* tcpprocess.c: added icq_TCPProcessHello
	* packetqueue.c: moved packet_queue_find_queue from tcp.c
	* util.c: rewrote icq_TCPLog

1999-03-25  Bill Soudan          <wes0472@rit.edu>

	* tcplink.c, tcplink.h: added
	* Makefile.am: added tcplink.c
	* icqlib.c: added #include "util.h"
	* tcp.c, tcp.h: moved many functions into tcplink.c
	* tcpprocess.c: changed types to standard
	* udphandle.c: modified HandleUserOnline & Offline for new message_link
	* util.c: ContItem functions modified for message_link
	* util.h: message_link added to ContactItem struct, moved types to
          seperate file
	* icqtypes.h: added
	* tcppacket.h: cleaned up

1999-03-24  Denis V. Dmitrienko  <denis@null.net>

	* Makefile.am, Makefile.in, callbacks.c, cyrillic.c, icq.h,
	icqlib.c, icqlib.h, packetqueue.c, packetqueue.h, proxy.c,
	proxy.h, tcp.c, tcp.h, tcppacket.c, tcppacket.h, tcppackets.c,
	tcppackets.h, tcpprocess.c, udp.c, udp.h, udphandle.c, util.c,
	util.h:
 	Underscored files with TCP stuff renamed.
	TCP stuff cleaned up
	Function names changed to corresponding names.
	icqlib.c splitted to many small files by subject.
	C++ comments changed to ANSI C comments.

	* Makefile.cvs, Makefile.in, acconfig.h, acinclude.m4,
	acinclude.m4.in, aclocal.m4, config.guess, config.h.in,
	config.sub, configure, configure.in, install-sh, libtool.m4.in,
	ltconfig, ltmain.sh, mkinstalldirs, stamp-h.in: Updated
	autoconf/automake/libtool configuration tools

1999-03-22  Bill Soudan          <wes0472@rit.edu>

	* Makefile.am: added new files

	* icqlib.h, icqlib.c: added additional struct entries in
          icq_ContactItem for tcp code, added code in
	  icq_HandleUserOnline and icq_HandleUserOffline for setup/cleanup

	* added many files for tcp implementation:
	  icq_tcp.c icq_tcp.h icq_tcp_packets.c icq_tcp_packets.h
          icq_tcp_process.c packet_queue.c packet_queue.h
          tcp_packet.c tcp_packet.h util.c

1999-03-05  Denis V. Dmitrienko  <denis@null.net>

	* icqlib.h, icqlib.c, icq.h: Some cosmetic changes...

Version 0.1.3 (08 Dec 1998)
  SOCKS5 proxy support.
  icq_RecvMessage now returns sending message time not receiving.
  Visible list support changed.
  Handle icq99a statuses.

Version 0.1.2 (05 Oct 1998)
  Search by UIN added.
  SunOS port (Thanks to Joe Avila <joe@avilate.com>).

Version 0.1.1 (21 Sep 1998)
  Renamed from libicq to icqlib - there is another libicq on the net.
  Little changes to allow UI call select() itself.

Version 0.1.0 (18 Sep 1998)
  Initial public version.