From b0f3e30460fc26ef4fe59bc161b0fddd8eeb9a08 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 11 Oct 2016 21:05:12 +0300 Subject: Yahoo & YahooGroups plugins moved to _deprecated --- protocols/Yahoo/src/libyahoo2/Docs/AUTHORS | 10 - protocols/Yahoo/src/libyahoo2/Docs/COPYING | 340 -------------------- protocols/Yahoo/src/libyahoo2/Docs/ChangeLog | 280 ---------------- protocols/Yahoo/src/libyahoo2/Docs/NEWS | 88 ----- protocols/Yahoo/src/libyahoo2/Docs/README | 442 -------------------------- protocols/Yahoo/src/libyahoo2/Docs/TODO | 8 - protocols/Yahoo/src/libyahoo2/Docs/ymsg-9.txt | 326 ------------------- 7 files changed, 1494 deletions(-) delete mode 100644 protocols/Yahoo/src/libyahoo2/Docs/AUTHORS delete mode 100644 protocols/Yahoo/src/libyahoo2/Docs/COPYING delete mode 100644 protocols/Yahoo/src/libyahoo2/Docs/ChangeLog delete mode 100644 protocols/Yahoo/src/libyahoo2/Docs/NEWS delete mode 100644 protocols/Yahoo/src/libyahoo2/Docs/README delete mode 100644 protocols/Yahoo/src/libyahoo2/Docs/TODO delete mode 100644 protocols/Yahoo/src/libyahoo2/Docs/ymsg-9.txt (limited to 'protocols/Yahoo/src/libyahoo2/Docs') diff --git a/protocols/Yahoo/src/libyahoo2/Docs/AUTHORS b/protocols/Yahoo/src/libyahoo2/Docs/AUTHORS deleted file mode 100644 index 2cc592900c..0000000000 --- a/protocols/Yahoo/src/libyahoo2/Docs/AUTHORS +++ /dev/null @@ -1,10 +0,0 @@ -libyahoo2: library for Yahoo! Messenger new protocol - -Philip S Tellis Maintainer -Steve McAndrewSmith Code cleanups -Michaël Kamp Webcam Support -Wayne Parrott Yahoo Chat -Doug Davis Various Patches -Konstantin Klyagin Yahoo Search - -libyahoo2 is derivative of gaim: http://gaim.sourceforge.net/ diff --git a/protocols/Yahoo/src/libyahoo2/Docs/COPYING b/protocols/Yahoo/src/libyahoo2/Docs/COPYING deleted file mode 100644 index fbdd65f6f8..0000000000 --- a/protocols/Yahoo/src/libyahoo2/Docs/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/protocols/Yahoo/src/libyahoo2/Docs/ChangeLog b/protocols/Yahoo/src/libyahoo2/Docs/ChangeLog deleted file mode 100644 index ecf16131c5..0000000000 --- a/protocols/Yahoo/src/libyahoo2/Docs/ChangeLog +++ /dev/null @@ -1,280 +0,0 @@ -* Fri Jan 16 2003 Alan Humpherys -- remove_handler also takes client_id - -* Wed Jan 14 2003 Doug Davis -- fix auth - -* Mon Dec 29 2003 Philip Tellis 0.7.3 -- up version number - -* Thu Dec 25 2003 Philip Tellis -- asynchronous writes as well (might break file send) -- better support for webcam broadcast -- webcam images sent in chunks rather than as a single image -- check for EAGAIN on send, defer if it is returned -- add handler returns a tag, which is passed to remove handler to remove it -- api has changed - -* Wed Dec 10 2003 Philip Tellis -- initialise some unintialised variables - -* Tue Dec 9 2003 Philip Tellis -- Yahoo Search - by Konstantin Klyagin - centericq - -* Tue Dec 9 2003 Philip Tellis -- Typing notification fix from Gena01 -- Don't send VERIFY as first packet, since we don't know what do -do if it fails anyway. -TODO revert when we figure this out - -* Wed Oct 22 2003 Philip Tellis -- Identify failed login because of incorrect username - -* Wed Oct 8 2003 Philip Tellis -- Fix bug with double processing of format string in error logging -- log_level no longer global, use yahoo_get_log_level() instead (was -only used internally) - -* Tue Sep 30 2003 Doug Davis -- chat room logout and error code - -* Tue Sep 30 2003 Philip -- fix for auth to work with big endian machines too - -* Mon Sep 29 2003 Philip -- attribute new auth to Cerulean studios (which is where gaim got it from) - -* Sun Sep 28 2003 Philip 0.7.2-2 -- made yahoo_init do what it did before, and renamed the new yahoo_init -to yahoo_init_with_attributes. This should help not break old code. - -* Sun Sep 28 2003 Philip -- changed g_malloc0 to malloc - thanks to Pixador - -* Sun Sep 28 2003 Philip 0.7.2 -- Auth fixed by Sean Egan (gaim). - -* Sat Sep 27 2003 Philip -- Added more fallback ports -- Fix crash in process_auth - -* Wed Sep 24 2003 Philip -- Messenger host name changed to scs.msg.yahoo.com - -* Mon Sep 22 2003 Philip -- Forgot a strdup - -* Sat Sep 20 2003 Philip -- Support protocol 0x0b - -* Sat Sep 20 2003 Philip -- Formatting fixes and yahoo_list memory management fixes - -* Sat Sep 20 2003 Philip -- No more extern vars (almost) -- yahoo_init now takes optional key/value pairs to set server settings -see the README or yahoo2.h for full details -- These variables no longer need to be exported from the sourcefile that -uses the library - -* Fri Sep 12 2003 Philip 0.7.1 -- configure checks for socket library and won't build sample client -if not found - -* Thu Sep 11 2003 Philip -- Up version number to 0x0a so that we don't get blocked - -* Thu Jun 5 2003 Philip -- fix a bunch of memory leaks - -* Sun May 25 2003 Philip -- Add option to disable building sample client - -* Sat May 24 2003 Philip 0.7.0-1 -- Fix configure error because of old missing script in distribution - -* Mon May 19 2003 Philip (version 0.7.0) -- Update README -- release 0.7.0 - -* Tue May 6 2003 Mik -- fixes for webcam uploading -- extra callback for closing connection - -* Thu May 1 2003 Philip -- allow closing of webcam connections -- more reliable finding of webcam connections - -* Thu May 1 2003 Philip -- send who's images along with webcam image - -* Thu May 1 2003 Philip -- get idle time from server -- changes to webcam support to not require the user to worry about keys and -servers - -* Sun Apr 20 2003 Philip -- fixes for multiple connects and bugs introduced when adding async connects - -* Sat Apr 19 2003 Philip -- Add asynchronous connects -- Each `id' represents a single login session and everything to do with it -- add_handler and yahoo_(read|write)_ready take a void * data argument -- possibly introduce many bugs :D - -* Thu Apr 10 2003 Wayne -- Added callback for the list of chatrooms - -* Thu Mar 29 2003 Wayne -- Added basic support for pulling down the list of chatrooms - -* Mon Mar 24 2003 Mik -- Seperate webcam struct to public and private data -- Rename webcam struct to yahoo_webcam - -* Fri Mar 21 2003 Philip -- Don't dereference yd after it has been freed - -* Fri Mar 21 2003 Mik -- Clean up webcam data when yahoo data is cleaned up -- Added connection type to webcam -- Removed static for callbacks in sample_client - -* Wed Mar 19 2003 Mik -- Added perliminary webcam upload support -- Added descriptions for the webcam functions - -* Tue Mar 18 2003 Wayne Parrott -- Added preliminary yahoo chat support - -* Sun Mar 16 2003 Philip -- Fixed double deletion problem with yab -- Fixed memory leak with non-pager connections - -* Fri Mar 14 2003 Philip -- Announce login success earlier - -* Thu Mar 13 2003 Mik -- Add preliminary webcam support - -* Thu Mar 6 2003 Philip -- Remove requests for unnecessary data in addressbook code - -* Tue Mar 4 2003 Philip -- Fix read past end of string in yahoo_getyab - -* Wed Feb 19 2003 Philip (version 0.6.3) -- Make dist depend on libyahoo2.spec and libyahoo2.pc -- Change version number to 0.6.3 - -* Thu Feb 13 2003 Philip -- added check for null connection when reading from socket. -thanks to Alan Humpherys - -* Thu Feb 6 2003 Philip -- renamed yahoo_add_yab to yahoo_set_yab - -* Wed Feb 5 2003 Philip -- Support for modifying an address book entry - -* Mon Jan 27 2003 Philip -- Support for adding address book entry on the server - -* Thu Jan 24 2003 Philip -- Download address book from server and fill in real_name field -of yahoo_buddy - -* Tue Jan 21 2003 Philip -- Added CHAT service codes from yach -- Fixed the problem with Offline UTF-8 encoded messages -it no longer sends an extra bell -- Implemented group renaming - -* Sat Jan 18 2003 Philip -- utf-8 encoding/decoding functions are in yahoo_util -- detect whether it is utf-8 or not from utf-8 flag in message - -* Wed Jan 15 2003 Philip -- added utf-8 decode to conference messages too. I need to move this into -a separate function - -* Tue Jan 14 2003 Philip -- changed the accent character hack to proper UTF-8 decode supplied by Alan - -* Mon Jan 13 2003 Philip Tellis -- sample client handles accented characters correctly. - -* Thu Dec 18 2002 Philip Tellis -- sample client now handles sending of bell with ^G and sounding of bell -when it receives it - -* Tue Dec 10 2002 Philip Tellis (version 0.6.2) -- Added some prototypes for snprintf, strdup and vsnprintf (when compiling -with -ansi -pedantic and without glib -- Updated version number for release - -* Mon Dec 9 2002 Philip Tellis -- Changed u_char to unsigned char -- Fixed yahoo_get16 and yahoo_get32 to work with big endian systems also - -* Tue Nov 19 2002 Philip Tellis -- Added code to process a voice chat invite. Doesn't do anything. - -* Mon Nov 18 2002 Philip Tellis -- Multiple offline messages are now received correctly -- Memory leaks cleaned up -- Check for glib-2 as well as glib-1 -- dropped port 21 from port scan -- Added a spec file for RPM - -* Sat Nov 16 2002 Rodney Dawes -- Make libyahoo2 versioned -- Add a pkgconfig file -- Install headers in $(pkgincludedir) -- Make yahoo sample client a noinst program -- Require autoconf >= 2.50 -- Cleanups in configure.ac - -* Wed Nov 13 2002 Philip Tellis -- libyahoo2 now automatically scans ports 21, 23, 25 and 80 if it cannot -connect on the default port. - -* Wed Nov 06 2002 Philip Tellis -- added protocol documentation - -* Tue Nov 05 2002 Philip Tellis -- compiles with -ansi and -pedantic - -* Sat Oct 19 2002 Philip Tellis -- no longer strip colour/style codes from messages -- added colour entry for any colour to yahoo2_types.h (Nelson Ferreira) - - -* Fri Oct 18 2002 Philip Tellis (version 0.6.1) -- fixed segfault on some weird notification packets -- fixes for conference add invite -- identity support for conferences - -- sample console client can handle conferencing - -* Wed Oct 9 2002 Philip Tellis (version 0.6) -- Removed glib dependencies. Will use glib only if available -- Configure time option --with-struct-callbacks to use a callback struct -instead of callback functions (see yahoo2_callbacks.h and the README) -- Code cleanups by Steve McAndrewSmith -- Get identities from server -- Activate/Deactivate identities -- Use identities when sending messages -- Fixed buffer overflow in key/value pair reading - -- sample console client no longer requires gtk! - -* Mon Jul 22 2002 Philip Tellis (version 0.5) -- Added basic documentation to README -- Several minor code fixes and cleanups - -* Sat Jul 20 2002 Philip Tellis (version 0.5.cvs) -This is an initial public release as a separate library -I'll put a feature list in later. -0.5 is just a random version number, I figure it's got half the features -of where it should be when complete. diff --git a/protocols/Yahoo/src/libyahoo2/Docs/NEWS b/protocols/Yahoo/src/libyahoo2/Docs/NEWS deleted file mode 100644 index e4021883a1..0000000000 --- a/protocols/Yahoo/src/libyahoo2/Docs/NEWS +++ /dev/null @@ -1,88 +0,0 @@ -* 29-Dec-2003 - -Releasing 0.7.3 with some new features thanks to Konst, Doug and Gena - -* 9-Dec-2003 - -Well, we now have contributions from the CenterICQ and Miranda IM teams. -Good going methinks. - -* 28-Sep-2003 - -Releasing 0.7.2 with the new auth code. Fixed by gaim. - -* 12-Sep-2003 - -Releasing 0.7.1 which has a newer protocol version number. This should hold -for a while. - -* 19-May-2003 - -Released 0.7. It has webcam support, yahoo chat support and a new connection -handling system. Asynchronous connects are also possible. - -* 18-Mar-2003 - -Michaël Kamp has added Webcam support, and Wayne Parrott has started on Yahoo -Chat support. Things are starting to move. - -Welcome to these two new members of the team. - - -* 19-Feb-2003 - -Released 0.6.3 - no real changes from 11th Feb. - - -* 11-Feb-2003 - -Added address book support. Rodney Dawes helped make the library -versioned. I've also added the htdocs to CVS to make updates easier. -0.6.2 should come out Real Soon Now. - -The mailing list has been alive for a while. There's been some good -discussions. - -Also added documentation for the YMSG-9 protocol and the Addressbook -structure. - -libyahoo2 is used in Ayttm - a fork of everybuddy. - -There have been requests for a Java version/wrapper. Any volunteers? - - -* 18-Oct-2002 - -This is a service release, mainly to fix the segfault on certain error -notification packets. - - -* 9-Oct-2002 - -0.6 has been released. Also just found out that libyahoo2 is also used in -GNUYahoo - - -* 28-Sep-2002 - -Well, I added documentation some time ago. It's in the README file. I -suppose people have found it. - -The good news now is that libyahoo2 is being used in many clients, the -bad news is that there's very little discussion on the mailing list. - -From what has been reported to me, and what I've heard, it seems that -libyahoo2 is being used in Everybuddy, Fire, Proteus, Kopete, centericq. - - -Hope to come out with 0.6 Real Soon Now. - - -* 20-Jul-2002 - -Umm, ok, it's been in everybuddy for a few months, and now I'm releasing -it as a separate project. - -libyahoo2 has its own life now. - -Philip diff --git a/protocols/Yahoo/src/libyahoo2/Docs/README b/protocols/Yahoo/src/libyahoo2/Docs/README deleted file mode 100644 index 281de5c7c3..0000000000 --- a/protocols/Yahoo/src/libyahoo2/Docs/README +++ /dev/null @@ -1,442 +0,0 @@ -README for libyahoo2 -==================== - -* Using the library - -Ok, here's a short, quick intro on how to use the library. -Full documentation will come later. - -First include the two headers. - -#include -#include - - -yahoo2.h contains functions that you can call. The data structures used -are defined in yahoo2_types.h, which is included by yahoo2.h - -yahoo2_callbacks.h contains prototypes for functions that you *must* -implement. *All* these functions must be implemented by your code. You -can choose at configure time whether these are implemented as callback -functions or as a callback structure. - -If compiled as a callback structure, you must call yahoo_register_callbacks -before doing anything else. - -What each function is supposed to do and return is documented in -yahoo2_callbacks.h - - - -Ok, assuming you've implemented all those functions to do what they're -supposed to do, this is the process flow: - -1. Login - -Before logging in, you must initialise the connection by calling yahoo_init -and passing the username and password of the account. yahoo_init returns -a connection id that will be used to identify this connection for all other -calls. - -You may use yahoo_init_with_attributes if you need to set any server settings. - -int yahoo_init(const char *username, const char *password); -int yahoo_init_with_attributes(const char *username, const char *password, ...); - -The optional parameters to init are key/value pairs that specify server -settings to use. This list must be NULL terminated - even if the list is -empty. If a parameter isn't set, a default value will be used. Parameter -keys are strings, parameter values are either strings or ints, depending on -the key. Values passed in are copied, so you can use const/auto/static/ -pointers/whatever you want. Parameters are: - - NAME TYPE DEFAULT DESCRIPTION - ------------------- ------- --------------------------- -------------- - pager_host char * scs.msg.yahoo.com - - pager_port int 5050 - - filetransfer_host char * filetransfer.msg.yahoo.com - - filetransfer_port int 80 - - webcam_host char * webcam.yahoo.com - - webcam_port int 5100 - - webcam_description char * "" Webcam description - - local_host char * "" local IP address - regardless of whether - you're behind a - firewall or not - - conn_type int Y_WCM_DSL see yahoo2_types.h - - -You should set at least local_host if you intend to use webcams -yahoo_init uses default values for all of the above. - -Remember to close the connection by calling yahoo_close when you no longer -need it. This will free all resources allocated to the connection. - -void yahoo_close(int id); - -After initialising, you may call yahoo_login, with the id and the initial -login status. - -void yahoo_login(int id, int initial); - -The initial status is one of enum yahoo_status (NOTE, only INVISIBLE and -ONLINE are known to work at all times). - -When the login procedure is complete, the library will call -ext_yahoo_login_response with a status code. See yahoo2_types for an -enumeration of these codes. - -The buddy list and cookies will not be available at the time when -ext_yahoo_login_response is called. You should wait for ext_yahoo_got_buddies -and ext_yahoo_got_cookies. - - -2. Buddies and Addressbook - -When the library receives the buddy list from the server, it will call -ext_yahoo_got_buddies with the buddy list as a parameter. The library -will call ext_yahoo_got_ignore when it receives the ignore list. - -- To get the buddy list at any other time, make a call to yahoo_get_buddylist, -and use the return value of that call. - -- Similarly, for the ignorelist, call yahoo_get_ignorelist. - -These lists will be returned from the library's cache. To force a reload -from the server, make a call to yahoo_get_list. - -Buddy nicknames and other contact information is stored in your yahoo address -book. To retrieve this information, call yahoo_get_yab. call yahoo_set_yab -to create or modify an addressbook entry. Call these functions only after -ext_yahoo_got_cookies has been called. - -- To refresh the status of all buddies, make a call to yahoo_refresh. - -- To add a buddy, call yahoo_add_buddy: -void yahoo_add_buddy(id, char *who, char *group); - -You can add a buddy to multiple groups by calling this function once for -each group. - -- To remove a buddy, call yahoo_remove_buddy: -void yahoo_remove_buddy(id, char *who, char *group); - -Remove buddy removes the buddy from the specified group. To completely -remove a buddy, call this function for all groups that the buddy is in. - -- If a buddy adds you, and you do nothing, that buddy is accpeted (that's the -way the protocol works). If you want to reject the buddy, make a call to -yahoo_reject_buddy: - -void yahoo_reject_buddy(id, char * who, char *msg); - -where msg is the rejection message. - -- To change a buddy's group, call yahoo_change_buddy_group: -void yahoo_change_buddy_group(id, char * who, char *old_group, char *new_group); - -- To ignore/unignore a buddy, call yahoo_ignore_buddy: -void yahoo_ignore_buddy(id, char *who, int unignore); - -If unignore is TRUE, the buddy is unignored, if it is FALSE, the buddy is -ignored. - -- You can also rename a group with: -void yahoo_group_rename(id, char *old_group, char *new_group); - - - - -3. Sending an IM - -To send an IM, make a call to yahoo_send_im - -void yahoo_send_im(int id, char * from, char *who, char *what, int utf8); - -id is the id that the connection is identified with, who is who you want -to message, what is the message to be sent. - -The parameter from is the identity that you want to use to send the message. -If this is NULL, your default identity will be used. - -utf8 is a boolean field that specifies whether the message you're sending -has been encoded in utf8 or not. libyahoo2 will not do the encoding -for you - you have to do it yourself. - -You may use the utility functions y_str_to_utf8 and y_utf8_to_str in -yahoo_util to do this encoding. You must free the pointers returned by -these functions. - -UTF8 encoding may also be used in messages received. It is not sent or -received for invitations/rejection messages. - -You can also send typing notifications with yahoo_send_typing. - - -4. Changing your status - -To change your status on the server, call yahoo_set_away. - -void yahoo_set_away(id, enum yahoo_status status, char *msg, int away); - -id is the identifying id, status is your new status. -msg is a custom status message in case status == YAHOO_STATUS_CUSTOM -and away is a flag that says whether the custom message is an away message -or just a regular signature (this affects the kind of icon against your -name in the official Yahoo Messenger client). - - -5. Conferencing - -To start a conference, call yahoo_conference_invite with a list of initial -members, the room name, and a welcome message. - -To add more people to the conference after it has started, call -yahoo_conference_addinvite. - -If someone adds you to the conference, you can either accept by calling -yahoo_conference_logon, or decline by calling yahoo_conference_decline - -You can log off from the conference by calling yahoo_conference_logoff. - -Send a message by calling yahoo_conference_message. - -The parameter from is the identity that you want to use to send the message. -If this is NULL, your default identity will be used. - -NOTE: Except for yahoo_conference_addinvite, all conference functions take -the list of members as an argument. - -Have a look at yahoo2_callbacks.h for conference callbacks. Beware that -there's a chance you could get a conf_userjoin even before you get an -invitation to that conference. - - -6. File Transfer - -To send a file, call yahoo_send_file(id, who, msg, name, size). - -This will set up the initial file send connection and return a unix file -descriptor that you must write to. You then write the file's contents to -this fd. - -Receiving a file is similar. You will receive a call to ext_yahoo_got_file -with the file's url as one of the parameters. When you are ready to start -downloading the file, make a call to yahoo_get_url_handle: - - fd = yahoo_get_url_handle(id, url, &fname, &fsize); - -fname and fsize are used to store the file's name and size - -Yahoo's file transfer is implemented using HTTP. It can either be peer -to peer or via the yahoo file transfer servers. The latter is used in -case a peer to peer connection cannot be set up - for example, in the -case of a firewall. - -libyahoo2 supports both types of file transfer for receiving, but only -sends files using the yahoo file transfer server. - -If anyone's interested in implementing peer to peer file send, this is -how it happens. - -First a PEERTOPEER packet is sent to check if it is possible. This will -mark the connection between these two hosts as p2p compatible. No further -PEERTOPEER packets will be sent between these two hosts for the duration -that the connection is alive. - -After the first P2P packet, the initiater will start an HTTP server on -some port (really any port), and send the url across to the other end. - -After this, the first host will always play the part of the server for -all file transfers. If a transfer is from the server, it uses GET, if -it is from the client to the server, it uses POST. There is no encoding -used for POST. - -You'll still have to study it a bit, but IMO the major complexity is in -putting a http server in the lib, and whether we want to do that. - - -7. Webcam - -To make a request for a webcam feed, call yahoo_webcam_get_feed with the -user's yahoo id. You call this function in response to someone's webcam -invitation as well. - -void yahoo_webcam_get_feed(int id, const char *who); - -The response may take a while as there's a lot of work done from the time -you make a request till the time you start receiving a feed. There is -no feedback from the library during this time. The function returns -immediately. - -To close an open feed, simply call yahoo_webcam_close_feed - -void yahoo_webcam_close_feed(int id, const char *who); - -NOTE: it is possible to have two open webcam feeds with a single user -if you open a second without closing the first. Results are unpredictable -if you call close on a non-unique id/who combination. - -Webcam broadcast has not been fully tested. - -To invite a user to view your webcam, call yahoo_webcam_invite with the -user's yahoo_id - -void yahoo_webcam_invite(int id, const char *who); - -To close this user's connection, call yahoo_webcam_close_feed. To -accept/reject a request from a user to view your webcam, call -yahoo_webcam_accept_viewer: - -void yahoo_webcam_accept_viewer(int id, const char *who, int accept); - -accept may be 1 or 0. - -Consult yahoo2_callbacks for the callbacks that are called on webcam -events. - -You will require to be able to decode jpeg2000 images to view the webcam -feed. You could use a library like GraphicsMagick (BSD Licence) or jasper -(possibly non-Free) to do this. - -8. Yahoo Chat - -To retrieve a list of yahoo chatrooms, call yahoo_get_chatrooms. The -response callback will return the xml for the chatrooms. You must parse -this yourself. - -To log in to a chat room, call yahoo_chat_logon, and to log off, call -yahoo_chat_logoff. To send a chat message, call yahoo_chat_message. - -Chatting is similar to conferencing. Consult yahoo2_callbacks.h for the -list of chat callbacks. - - -9. Callbacks - -The library may request you to register io handlers using ext_yahoo_add_handler. -Whenever an input condition occurs, you must call one of the callback functions. -For a read condition, call yahoo_read_ready, for a write condition, call -yahoo_write_ready. - -ext_yahoo_connect_async is an asynchronous connect call. It will register a -callback function that must be called when the connect completes. This -callback is of type yahoo_connect_callback. Consult yahoo2_callbacks.h for -full details on what your async connect should return. - -You must also call yahoo_keepalive at regular intervals (10 minutes?) to keep -the connection alive. - - -10. Identities - -libyahoo2 will now get your identities from the server (if you don't know -what that is, then you aren't using it). Use yahoo_get_identities to get -your list of identities. libyahoo2 will also call ext_got_identities when -it first gets the list of identities. - -To activate/deactivate an identity, call yahoo_set_identity_status: - yahoo_set_identity_status(id, char * identity, int active); - -If active is non-zero, activate the identity, else deactivate it. - -If you try to activate/deactivate an identity that isn't yours, you'll -get a call back to ext_yahoo_error with a custom error message. This -message is from the yahoo servers. Don't complain to me about it. I -know it sucks that we can't do translation of these strings. - - -11. Search - -To search for contacts, use the two functions: - - yahoo_search(id, type, text, gender, agerange, photo, yahoo_only); -and - yahoo_search_again(id, int start); - -The first is used for a first time search. Check yahoo2_types.h for -valid values for each of the parameters. text is a text string to -search for. - -The search results are returned through ext_yahoo_got_search_result. - -Results are limited to 20 per query, so if you want to continue the -search, call yahoo_search_again to get 20 more results. You may -specify the start value, or use -1 to just get the next 20 results. - - -12. Other functions - -You can call yahoo_get_cookie to get the cookies for your connection. I -think these can be used when starting a browser to get information from -the yahoo servers. See the comments in yahoo2.h for more information. - -You can also call yahoo_urldecode and yahoo_urlencode utility functions -to url decode/encode a given string. This will be useful for getting the -filename from a url in the file receive code. - - -* Platforms - -libyahoo2 is known to compile on: - - Debian 2.2 (linux 2.4) i386, Alpha, PPC RS/6000 and Sparc Ultra60 - - Redhat 6.0, 7.1 and 7.3 (linux 2.2 and 2.4) - - MacOS X 10.1 PPC - G4 - - FreeBSD 4.6-Stable - - Sun Solaris (8) - -Thanks to Sourceforge's compile farms for letting me test it there - -* Copyright - -libyahoo2 is Copyright (C) 2002-2004 Philip S Tellis -Portions of this code was taken and adapted from the yahoo module for -gaim released under the GNU GPL. This code is also released under the -GNU GPL. - -This code is derivitive of Gaim -copyright (C) 1998-1999, Mark Spencer - 1998-1999, Adam Fritzler - 1998-2002, Rob Flynn - 2000-2002, Eric Warmenhoven - 2001-2002, Brian Macke - 2001, Anand Biligiri S - 2001, Valdis Kletnieks - 2002, Sean Egan - 2002, Toby Gray - -This library also uses code from other libraries, namely: - Portions from libfaim copyright 1998, 1999 Adam Fritzler - - Portions of Sylpheed copyright 2000-2002 Hiroyuki Yamamoto - - - -* Licence - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -You should have received a copy of the GNU General Public License -along with this program in the file named Copying; if not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, -MA 02111-1307 USA - - -* Warranty - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - diff --git a/protocols/Yahoo/src/libyahoo2/Docs/TODO b/protocols/Yahoo/src/libyahoo2/Docs/TODO deleted file mode 100644 index f005ec9bf2..0000000000 --- a/protocols/Yahoo/src/libyahoo2/Docs/TODO +++ /dev/null @@ -1,8 +0,0 @@ -Changing user profiles -Voice Chat -Video Chat - - -Bugs: -Check which pointers are freed by the lib and which must be freed by the -client, and document these. diff --git a/protocols/Yahoo/src/libyahoo2/Docs/ymsg-9.txt b/protocols/Yahoo/src/libyahoo2/Docs/ymsg-9.txt deleted file mode 100644 index d017013d7d..0000000000 --- a/protocols/Yahoo/src/libyahoo2/Docs/ymsg-9.txt +++ /dev/null @@ -1,326 +0,0 @@ -Yahoo Messenger Protocol v 9 ----------------------------- - -The Yahoo Messenger Protocol is an application layer protocol running most -of the time over TCP, but in some cases over HTTP as well. Throughout -this document, we will speak about the YMSG packets, after stripping out -any other protocol data, but will mention this other data if it is of -relevance. - -This document is incomplete. For anything not mentioned here, refer to the -source of libyahoo2. - - -1. The YMSG packet structure - -The YMSG packet structure is as follows: - -(each byte is represented by 5 spaces in the following diagram, -including the | at the end) - - <------- 4B -------><------- 4B -------><---2B---> - +-------------------+-------------------+---------+ - | Y M S G | version | pkt_len | - +---------+---------+---------+---------+---------+ - | service | status | session_id | - +---------+-------------------+-------------------+ - | | - : D A T A : - | 0 - 65535* | - +-------------------------------------------------+ - - -* 65535 is the theoretical limit, since the length field is two bytes -long. Practically though, the data section does not exceed about 1000 -bytes. - -All numeric fields are stored in network byte order. i.e. Most -significant byte first. - -YMSG - The first four bytes of all packets are always YMSG - the - protocol name. - -version - The next four bytes are for the protocol version number. - For version 9, these are 0x09 0x00 0x00 0x00 - NOTE: The last three bytes of this may just be padding bytes. - -pkt_len - A two byte value, in network byte order, stating how many bytes - are in the _data_ section of the packet. In practice, this - value does not exceed about 1000. - -service - This is an opcode that tells the client/server what kind of - service is requested/being responded to. There are 45 known - services. See the services section of this document for a - full listing. - -status - In case of a response from the server, indicates the status - of the request (success/failure/etc.). For a request, it is 0 - in most cases, except for packets that set the user's status - (set status, typing notify, etc.) - -session - The session id is used primarily when connecting through a HTTP -id proxy. It is set in all cases, but has no effect in a direct - connection. When the client sends the first packet, it is 0, - the server responds with a session id that is used by the client - and the server in all further packets. The server may change - the session id, in which case the client must use the new - session id henceforth. - -DATA - The data section is pkt_len bytes long and consists of a series - of key/value pairs. All keys are numeric strings. The packet - contains their numeric values in the ASCII character set. e.g. - 1 == 0x31, 21 == 0x32 0x31 - - The maximum number of digits in a key is unknown, although keys - of up to three digits have been seen. - - Every key and value is terminated by a two byte sequence of - 0xc0 0x80. Some keys may have empty values. - - The actual keys sent, and their meanings depend on the service - in use. - - e.g. The packet data to send an instant message looks like this: - - 0x30 0xc080 yahoo_id 0xc080 0x31 0xc080 active_id 0xc080 0x35 - 0xc080 recipient_id 0xc080 0x3134 0xc080 message_text 0xc080 - - The 0xc080 byte sequence is a separator. The values 0x30, 0x31, - 0x35 and 0x3134 are the keys. Convert them to their ASCII - equivalents and you get 0, 1, 5, 14 (0x3134 == 0x31 0x34) - - -2. Services - -There are 45 known services at the moment, although more may exist. All -known services are listed below along with the hex values that they -correspond to. Any service without a hex value is one more than the -previous value. i.e. YAHOO_SERVICE_LOGOFF=0x02 and -YAHOO_SERVICE_ISBACK=0x04. - - YAHOO_SERVICE_LOGON = 0x01 - YAHOO_SERVICE_LOGOFF - YAHOO_SERVICE_ISAWAY - YAHOO_SERVICE_ISBACK - YAHOO_SERVICE_IDLE = 0x05 - YAHOO_SERVICE_MESSAGE - YAHOO_SERVICE_IDACT - YAHOO_SERVICE_IDDEACT - YAHOO_SERVICE_MAILSTAT - YAHOO_SERVICE_USERSTAT = 0x0a - YAHOO_SERVICE_NEWMAIL - YAHOO_SERVICE_CHATINVITE - YAHOO_SERVICE_CALENDAR - YAHOO_SERVICE_NEWPERSONALMAIL - YAHOO_SERVICE_NEWCONTACT = 0x0f - YAHOO_SERVICE_ADDIDENT = 0x10 - YAHOO_SERVICE_ADDIGNORE - YAHOO_SERVICE_PING - YAHOO_SERVICE_GROUPRENAME - YAHOO_SERVICE_SYSMESSAGE = 0x14 - YAHOO_SERVICE_PASSTHROUGH2 = 0x16 - YAHOO_SERVICE_CONFINVITE = 0x18 - YAHOO_SERVICE_CONFLOGON - YAHOO_SERVICE_CONFDECLINE = 0x1a - YAHOO_SERVICE_CONFLOGOFF - YAHOO_SERVICE_CONFADDINVITE - YAHOO_SERVICE_CONFMSG - YAHOO_SERVICE_CHATLOGON - YAHOO_SERVICE_CHATLOGOFF = 0x1f - YAHOO_SERVICE_CHATMSG = 0x20 - YAHOO_SERVICE_GAMELOGON = 0x28 - YAHOO_SERVICE_GAMELOGOFF - YAHOO_SERVICE_GAMEMSG = 0x2a - YAHOO_SERVICE_FILETRANSFER = 0x46 - YAHOO_SERVICE_VOICECHAT = 0x4a - YAHOO_SERVICE_NOTIFY = 0x4b - YAHOO_SERVICE_P2PFILEXFER = 0x4d - YAHOO_SERVICE_PEERTOPEER = 0x4f - YAHOO_SERVICE_AUTHRESP = 0x54 - YAHOO_SERVICE_LIST = 0x55 - YAHOO_SERVICE_AUTH = 0x57 - YAHOO_SERVICE_ADDBUDDY = 0x83 - YAHOO_SERVICE_REMBUDDY = 0x84 - YAHOO_SERVICE_IGNORECONTACT = 0x85 - YAHOO_SERVICE_REJECTCONTACT = 0x86 - -Most of the service codes should be self explanatory. Those that aren't -are listed here: - -IDACT/IDDEACT - activate/deactivate an identity -NOTIFY - typing/game notification -FILETRASNFER - transfer a file using the yahoo filetransfer server as an - intermediate -P2PFILEXFER - transfer a file between two peers, yahoo server not used -PEERTOPEER - check if peer to peer connections are possible -AUTH - Send initial login packet (username), response contains - challenge string -AUTHRESP - Send response to challenge string, or, if received from - server, contains reason for login failure -LOGON/LOGOFF - a buddy logged in/out - - -3. Status codes - -The status code is a four byte value. Most status codes are two bytes -long. The status codes (in decimal except for offline and typing) are: - - YAHOO_STATUS_AVAILABLE = 0 - YAHOO_STATUS_BRB - YAHOO_STATUS_BUSY - YAHOO_STATUS_NOTATHOME - YAHOO_STATUS_NOTATDESK - YAHOO_STATUS_NOTINOFFICE = 5 - YAHOO_STATUS_ONPHONE - YAHOO_STATUS_ONVACATION - YAHOO_STATUS_OUTTOLUNCH - YAHOO_STATUS_STEPPEDOUT = 9 - YAHOO_STATUS_INVISIBLE = 12 - YAHOO_STATUS_CUSTOM = 99 - YAHOO_STATUS_IDLE = 999 - YAHOO_STATUS_OFFLINE = 0x5a55aa56 - YAHOO_STATUS_TYPING = 0x16 - -You may choose either AVAILABLE or INVISIBLE as your initial login status. -TYPING is used only when sending a TYPING notification packet. - - -4. Session states - -A Yahoo session has two states, Authentication and Messaging. - -4.1. Authentication - -The session starts in the authentication state. The client sends the username -to the server. The server responds with a challenge string. The client -responds to this challenge with two response strings. If authentication is -successful, the connection goes into the messaging state, else, an error -response is sent back. - -4.2. Messaging state - -After successful authentication, the session goes into the messaging state. -The server sends the buddy list, ignore list, identity list and a list of -cookies to the client. These might all be sent in a single packet. It then -sends the list of online buddies along with their status codes. All this is -sent without the client requesting anything. - -At this time, any offline messages are also delivered to the client. - -In the messaging state, a client may send/receive messages, join conferences, -send/receive files, change state, etc. - -Messaging state is terminated when the user goes offline by sending a LOGOFF -packet. - - -5. Requests - -5.1. Authentication - -The first packet sent from the client is the authentication request -packet. This consists of the user's yahoo id, or any identity -corresponding to that yahoo id. The AUTH packet has one key/value pair. - - service: YAHOO_SERVICE_AUTH - status: YAHOO_STATUS_AVAILABLE - - 1: yahoo_id - -The server responds with a Challenge string. The client then hashes the -username and password with this challenge string, and sends it back as an -AUTH_RESP packet. - - service: YAHOO_SERVICE_AUTHRESP - status: initial login status - - 0: yahoo_id - 6: response_string_1 - 96: response_string_2 - 1: active_id - - -5.2. Sending a message - - service: YAHOO_SERVICE_MESSAGE - status: 0 - - 0: yahoo_id - 1: active_id - 5: recipient_id - 14: message to send - -5.3. Send typing start/stop notification - - service: YAHOO_SERVICE_NOTIFY - status: YAHOO_STATUS_TYPING - - 4: active_id - 5: recipient_id - 13: 1 or 0 depending on whether this is a typing start or stop - packet - 14: - 49: TYPING /* The literal string */ - -5.4. Set status - - service: YAHOO_SERVICE_ISBACK or YAHOO_SERVICE_ISAWAY - status: the status to set to - - 10: status_code - if custom_status: - 19: custom away message - 47: 0 or 1 depending on whether it is away or not - - -5.5. Logoff - - service: YAHOO_SERVICE_LOGOFF - status: YAHOO_STATUS_AVAILABLE - - no key value pairs - -5.6. Keep alive - sent every 20 minutes - - service: YAHOO_SERVICE_PING - status: YAHOO_STATUS_AVAILABLE - - no key value pairs - -5.7. Add buddy - - service: YAHOO_SERVICE_ADDBUDDY - status: YAHOO_STATUS_AVAILABLE - - 1: yahoo_id - 7: buddy_to_add - 65: group to add to - -5.8. Remove buddy - - service: YAHOO_SERVICE_REMBUDDY - status: YAHOO_STATUS_AVAILABLE - - 1: yahoo_id - 7: buddy_to_remove - 65: group to remove from - - -5.9. Reject buddy add - - service: YAHOO_SERVICE_REJECTCONTACT - status: YAHOO_STATUS_AVAILABLE - - 1: yahoo_id - 7: buddy_to_reject - 14: reject message - - ------------------------------------------------------------------------ - -What? Is that all? - - Use the source Luke! - ------------------------------------------------------------------------ - -- cgit v1.2.3