1.0023 ====== - Fixed bugin accept for Components. - Added InsertRawXML and ClearRawXML. - Fixed Reply function in IQ. - Fixed bug in X.pm. - Added jabber:iq:pass support. DRAFT - Added jabber:iq:browse support into Protocol. 1.0022 ====== - XML::Stream supports SSL. Client docs updated to show the switches needed to enable that and HTTP. - Started to work on supporting XDB. But due to lack of documentation, this release DOES NOT 100% support it. Use at your own risk. - Updated docs to reflect changes. - Added Net::Jabber::Namespaces as a way to help document how the redesign works. It's probably incomplete so ask questions and I'll work on it. - Added check to make sure you specify a schema for the use Net::Jabber qw ( xxx ); line. - Fixed bug in Connect where it would not handle the case where it could not connect properly. - Fixed bug in Debug. - Fixed iq:time and iq:version. The redesign broke the automatic behavior they had before. - Tweaked ParseTree for changes in XML::Stream. - Fixed bug in Query.pm where I forgot to copy over a function for jabber:iq:search. - Redesigned modules to try and use less memeory. - Changed over to the new XML::Stream Hash data format. This has helped to reduce memory usage by half (initial results) although it comes at the cost of increased disk usage. - Moved the GetXMLData, SetXMLData, and BuildXML functions into XML::Stream where they belong. Should have done that long ago. 1.0021 ====== - Fixed bug in the Process function caused by the XML::Stream changes. - Added in jabber:x:form. - Added in jabber:x:sxpm. - Removed Transport.pm. - Removed the transport examples and created Component examples. - Changed Component.pm to stop using tcpip and stdinout and use the standard accept and exec. - Changed Debug to handle LogN instead of just 0, 1, and 2. - Added RemoveX to Message and Presence. - Added x:signed and x:encrypted. - In the GetXMLData function in Jabber.pm I forgot to add a test for existence of an attribute in the root tag. 1.0020 ====== - Added support for jabber:x:replypres. - Added an update function to the SetCallBacks function list. - In the SetTo and SetFrom functions, if you try to set it to "" it ignores your request. - Since those are gone, the Reply functions got a lot simpler, so I removed the template argument on most of them. - Removed all references to etherx:to, etherx:from, sto, and sfrom. - Removed anonymous connections from AuthSend since they were taken out of Jabber. - Changed AuthSend to always pick the highest level of security as possible. It now queries the server for all possibilities and picks from the answer. - PresenceDBParse now returns the current presence based on PresenceDBQuery. - Forgot to add a timeout to the Connect functions in Client.pm and Component.pm. - Modified the object creation functions to handle the below so that old code doesn't break. - Changed the way that callbacks are handled. Instead of passing in an XML::Parser::Tree array that the user had to then convert into a Net::Jabber::XXXXXX object. Now the callbacks are passed in the proper Net::Jabber::XXXXXX objects directly. - Modified the GetTimeStamp function in Jabber.pm to support two new types: utcdelaytime and localdelaytim so that you can the tiem value back out to modify before converting to a string. - Added support for ZeroK Authentication. Both in Query/Auth.pm and in AuthSend in Protocol.pm. 1.0019 ====== - Fixed Component.pm to use the new XML::Stream to argument in the Connect function for writing Components to work with the accept model. - Fixed bug in Component.pm where someone on the sever side changed the namespace that you are supposed to connect with and never told me. - Fixed bug in the cases where I would use SendAndReceiveWithID. I was not checking for undef. - Added more debugging in Protocol.pm. 1.0018 ====== - Changed the WaitForID function to be Process() instead of Process(0). - Fixed bug in RosterGet where I might get an undefined value and I wasn't checking for it. - Fixed bug in PresenceDBQuery in Protocol.pm. A hash value was being accessed and causing the Presence DB to become tainted. - Added boiler plate comments for the LGPL. 1.0017 ====== - Deprecating Transport.pm. It will cease to exist in the near future in favor of the Component.pm module and Jabber Server Components. - Fixed support for the new connection profile found in the new Jabber server. (You cannot use this to connect a Transport to a server before 1.1.2). - Fixed bug in JID.pm where changing a JID that did not have a UserID part, but previously had a value in the Server would goof up. - Fixed bug in AuthSend where the type='set' attribute was not being set for the <iq/>. - Fixed bug where an unkown namespace in an IQ would cause an error. 1.0016 ====== - Converted the rest of the functions to the AUTOLOAD method. - PresenceSend in Protocol.pm now returns the presence object that it sent. - Changed GetJID in JID to not return the @ when the JID dues not have a userid. - Moved Perl requirement to 5.005. - Moved XML::Stream requirement to 1.06 to support the timestamp and a bug fix. - Added timestamp support to Debug.pm. - Added digest control to AuthSend. 1.0015 ====== - Fixed bug with EscapeXML and the XML::Parser. - Converted the Query namespaces to the new AUTOLOAD method. - Fixed bug in the Search.pm file where it would trounce the XML::Parser::Tree. 1.0014 ====== - Fixed bug in the Search namespaces that would cause duplicates to be placed in the query if multiple calls to MergeItems were made. 1.0013 ====== - Removed some leftover print statements that would cause confusing output to STDOUT. 1.0012 ====== - In the Message module Reply function, it only does "re: " for normal messages now. - Added <registered/> to the iq:register namespace. 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 <truncated/> in iq:search. 1.0005 ====== - Changed AutoUpdate namespaces to show <ver/> becoming <version/>. - 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 <x/> and <query/> 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 <query/>. - 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. - <iq/> modules now use the AUTOLOAD and delegates same as the <x/> 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 <x/> 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 <ext> 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 <ext> 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.