1.0011 ====== - Added PresenceDBDelete to allow for deleting JIDs from the the DB. - Fixed a bug where PresenceDBParse would take any presence, regardless of the type. It should only take available and unavailable. 1.0010 ====== - Fixed a bug in the GetXMLData function where it would try to check an attrib but the array entry it was checking did not contain an array. Added a ref() statement in there to fix that. - Fixed another bug with the ErrorCode functions where I forgot to change all of the calls in Protocol to ErrorCode from ErrorType. 1.0009 ====== - Fixed bug in the error tags. 1.0008 ====== - Fixed a bug in the AutoUpdate/Release.pm code. 1.0007 ====== - Added Query/Filter to support the mod_filter in the server. - Added PresenceDB functions to make managing the multiple resource and priority thing much easier for a client/transport. - Initialized some variables to get rid of warnings under perl -w. - Fixed outgoing XML to be UTF-8 encoded. 1.0006 ====== - Added support for in iq:search. 1.0005 ====== - Changed AutoUpdate namespaces to show becoming . - When SeachRequest and RegisterRequest get errors they now return undef to show that there was an error. - Changed versioning scheme to match up Perl and Jabber. 1.005 refers to Jabber version 1.0 and Net::Jabber verison 005. 1.0d ==== - GetQuery and GetX returns undef if there is not valid namespace found. - Fixed bug in namespace handling. Instead of hardcoding looking for and Net::Jabber now searches for any tag that has an xmlns and uses that tag as the query or x. - Added Jabber::X::GC to handle GroupChat X tags. - Added Debug object to make it easier to log debug information. - Fixed bug in JID where GetJID did not return the correct JID if there is an % in the UserID. - Added Key.pm. - Fixed bug in RosterRemove where the JID was not being sent and thus the item not being removed. 1.0c ==== - Fixed bug in Message, Presence, and IQ with the GetJID function changing. 1.0b ==== - Added Query::AutoUpdate. - In Query::Version, a call to SetOS will call POSIX::uname and try to get the OS name from there. (Not sure if this work on Windows and Mac...) - Added GetAgents function to Protocol.pm to query a server/transport and get the list of supported agents. - Fixed bug in Query where the sub lists (items from roster and agents from agents) were not being pulled back into . - Fixed bug in Agent were the GetJID and SetJID were operating on the wrong value. - Fixed bug in Agents where the new agent objects were not being created properly. - Fixed bug in examples/client where it called a function from Query without getting the query from the iq. - Added function Reply to IQ and Presence objects as well. - Added function Reply to Message objects. It takes a string, and based on that string it sets the proper values for to/from/etherx:to/etherx:from, thread, type, and id. 1.0a ==== - Added better example files in examples/. - Wrote Transport.pm, it too uses Protocol.pm through delegates. - Client.pm now uses delegates to pull in the functiosn from Protocol.pm. - Moved high-level functions out of Client.pm into Protocol.pm. - Added support for jabber:iq:agent, jabber:iq:agents, and jabber:x:roster. - Updated example.pl. - If you have Time::Timezone installed in the Query/Time.pm automagically uses the timezone functions to figure out your timezone when you call SetTZ(). - If you have Digest::SHA1 installed then Client.pm automagically uses the SHA-1 digest to encrypt the password for Authorization. - RosterGet returns a complex data structure that contains the roster from the server. - modules now use the AUTOLOAD and delegates same as the modules do. - Bumped version to 1.0a. - Changed method of handling timeouts. - Added code to better handle errors on the Stream. It now actually returns undef, or "", when the server or connection dies. - Added code to test a Connect without crashing. Connect returns undef, or "", if the Connect failed. 0.8.1b ====== - Added IgnoreIDs() and WatchIDs() in Client.pm. - Added support for delegates in the X/pm module. - Added X.pm alpha code to handle reading and setting tags in various top-level tags. - Added PresenceSend to send a presence tag. - Added RegisterSend to send a registration packet. - Fixed SetError and SetErrorType in Message.pm. - Added SetError and SetErrorType to IQ.pm. - Added support for "value" and "tree" on the root tag in the GetXMLData function in Jabber.pm. - Moved Disconnect functionality into XML::Stream. That's really where we should have been sending the closing tag... 0.8.1a ====== - Supports Jabber v0.8.1. - Fixed support for IQ tags. Changed to distributed modules for each namespace. - Created IQ/Auth.pm to give authentication support. - Created IQ/Roster.pm and IQ/Roster/Item.pm to provide Roster support. - Created IQ/Register.pm to give registration support. (Still experimental) - Created Presence.pm to provide support for presence tags. - Changed internal data structure to XML::Parser::Tree. This made integration with XML::Stream a snap. - Created helper functions to access an XML::Parser::Tree easily. - Changed Client.pm to use XML::Stream instead of doing it manually. 0.7.1 ===== - Added support for the new IQ, and Presence tags from Jabber-0.7. - Removed support for Status and Roster since those were removed from Jabber-0.7 in favor of IQ, and Presence. 0.6.2 ===== - Added Set* functions to Message.pm, Status.pm, and Roster.pm. - Moved Simply, BuildXML, and EscapeXML into Jabber.pm to avoid redundant functions. - Redesigned internal data structures to better handle structures and multiple copies of the same tag. - Added better documentation in the perldocs for each. - Changed the perldocs in each file from use Net::Jabber::xxxxx to just use Net::Jabber. - Removed support from Status since it isn't designed to handle it. - Changed the names of the Roster Set* functions. Get()->SetGet(), Add()->SetAdd(), and Delete()->SetDelete(). - Added support to Message.pm to send to multiple people using the SetTo command. 0.6.1 ===== - First version.