You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
(8) |
May
(15) |
Jun
(4) |
Jul
|
Aug
|
Sep
(44) |
Oct
(7) |
Nov
|
Dec
(26) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(26) |
Feb
(10) |
Mar
|
Apr
|
May
(2) |
Jun
(2) |
Jul
|
Aug
(4) |
Sep
(1) |
Oct
(2) |
Nov
(3) |
Dec
(1) |
2005 |
Jan
|
Feb
(2) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2006 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
2008 |
Jan
|
Feb
|
Mar
|
Apr
(14) |
May
|
Jun
(13) |
Jul
|
Aug
(17) |
Sep
(3) |
Oct
(1) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(2) |
Dec
(3) |
2010 |
Jan
(3) |
Feb
|
Mar
|
Apr
(8) |
May
(1) |
Jun
(2) |
Jul
(6) |
Aug
(5) |
Sep
(6) |
Oct
|
Nov
|
Dec
|
From: <ka...@us...> - 2010-09-25 10:27:54
|
Revision: 390 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=390&view=rev Author: kay21s Date: 2010-09-25 10:27:47 +0000 (Sat, 25 Sep 2010) Log Message: ----------- Add new callback function -- ext_yahoo_chat_room_received, it is called when user has received the response from server after requesting for chat room information Modified Paths: -------------- trunk/libyahoo2/src/libyahoo2.c trunk/libyahoo2/src/sample_client.c trunk/libyahoo2/src/yahoo2_callbacks.h Modified: trunk/libyahoo2/src/libyahoo2.c =================================================================== --- trunk/libyahoo2/src/libyahoo2.c 2010-09-19 18:15:44 UTC (rev 389) +++ trunk/libyahoo2/src/libyahoo2.c 2010-09-25 10:27:47 UTC (rev 390) @@ -3120,7 +3120,7 @@ return info; } -static void parse_chat_cat_xml(int id, const char *xml) +static int parse_chat_cat_xml(int id, const char *xml) { struct yahoo_data *yd = find_conn_by_id(id); struct yahoo_input_data *yid = find_input_by_id_and_type(id, YAHOO_CONNECTION_CHATCAT); @@ -3129,7 +3129,7 @@ YList *room_list; YList *list_ptr; YList *cat_stack[5]; - int stack_ptr = 0; + int stack_ptr = 0, room_id = 0; YList *temp, *child, *tail, *category; room_list = y_new0(struct _YList, 1); @@ -3138,6 +3138,7 @@ if (content == NULL) { category = find_room_category(yd->chat_room_list, yid->chat_room_id); + room_id = yid->chat_room_id; content = strdup(xml); content = strstr(content, "<chatRooms>"); @@ -3188,6 +3189,7 @@ ((yahoo_chatroom_category *)(category->data))->room_list = room_list->next; } else { + room_id = 0; while(stack_ptr >= 0) { /* prev is used as a pointer linked with its child categories */ @@ -3235,19 +3237,26 @@ yd->chat_room_list = room_list->next; } FREE(room_list); /* free the head node */ + return room_id; } static void yahoo_process_chatcat_connection(struct yahoo_input_data *yid, int over) { + int room_id; + if (over) return; if (strstr((char *)yid->rxqueue, "</content>")) { - parse_chat_cat_xml(yid->yd->client_id, (char *)yid->rxqueue); + room_id = parse_chat_cat_xml(yid->yd->client_id, (char *)yid->rxqueue); + YAHOO_CALLBACK(ext_yahoo_chat_room_received) (yid->yd->client_id, room_id); + /* ext_yahoo_chat_cat_xml() needs to be deprecated in future releases */ - YAHOO_CALLBACK(ext_yahoo_chat_cat_xml) (yid->yd->client_id, - (char *)yid->rxqueue); + if (NULL != YAHOO_CALLBACK(ext_yahoo_chat_cat_xml)) { + YAHOO_CALLBACK(ext_yahoo_chat_cat_xml) (yid->yd->client_id, + (char *)yid->rxqueue); + } } } Modified: trunk/libyahoo2/src/sample_client.c =================================================================== --- trunk/libyahoo2/src/sample_client.c 2010-09-19 18:15:44 UTC (rev 389) +++ trunk/libyahoo2/src/sample_client.c 2010-09-25 10:27:47 UTC (rev 390) @@ -633,6 +633,20 @@ } } +static void ext_yahoo_chat_room_received(int id, int room_id) +{ + YList *list; + void *ext_data = NULL; + + list = yahoo_get_chat_room_list(id, room_id, ext_data); + if(list) { + if(room_id == 0) + traverse_cat_list(list, 0); + else + traverse_room_list(list); + } +} + static void ext_yahoo_chat_join(int id, const char *me, const char *room, const char * topic, YList *members, void *fd) { print_message(("You [%s] have joined the chatroom %s with topic %s", me, room, topic)); Modified: trunk/libyahoo2/src/yahoo2_callbacks.h =================================================================== --- trunk/libyahoo2/src/yahoo2_callbacks.h 2010-09-19 18:15:44 UTC (rev 389) +++ trunk/libyahoo2/src/yahoo2_callbacks.h 2010-09-25 10:27:47 UTC (rev 390) @@ -727,6 +727,13 @@ */ void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_verify) (const char *url, char *vcode); +/** + * After user request the server to send the chat room categories or chat room list, this function + * is called when the response is received + * @param id client id + * @param room_id chat room id, 0 if it is chat room categories + */ + void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_room_received) (int id, int room_id); }; /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-09-19 18:15:52
|
Revision: 389 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=389&view=rev Author: siddheshp Date: 2010-09-19 18:15:44 +0000 (Sun, 19 Sep 2010) Log Message: ----------- Add configure check for OpenSSL devel libraries if the sample client needs to be built. sample client build is disabled if OpenSSL devel libraries are not present. Modified Paths: -------------- trunk/libyahoo2/configure.ac Modified: trunk/libyahoo2/configure.ac =================================================================== --- trunk/libyahoo2/configure.ac 2010-09-19 15:31:25 UTC (rev 388) +++ trunk/libyahoo2/configure.ac 2010-09-19 18:15:44 UTC (rev 389) @@ -53,7 +53,6 @@ AC_PROG_INSTALL # Checks for libraries. -enable_sample_client="yes" AC_SEARCH_LIBS(socket, socket, , [AC_SEARCH_LIBS(socket, socket, LIBS="$LIBS -lnsl", enable_sample_client="no", -lnsl)]) @@ -77,7 +76,7 @@ [Define to `unsigned int' if not defined.])]) AC_CHECK_TYPE([uint64_t],, [AC_DEFINE([uint64_t], [unsigned long long], -[Define to `unsigned long long' if not defined.])]) +[Define to 'unsigned long long' if not defined.])]) dnl Checks for library functions. AC_CHECK_FUNCS(strerror) @@ -94,8 +93,46 @@ [Define if you want to use a callback structure instead of callback functions]) fi -AC_ARG_ENABLE([sample-client], [AC_HELP_STRING([--disable-sample-client], -[do not compile the sample client program])]) +AC_ARG_ENABLE([sample-client], AC_HELP_STRING([--disable-sample-client], + [do not compile the sample client program])) + +if test "$enable_sample_client" != no; then + + AC_ARG_WITH(openssl-prefix, AC_HELP_STRING([--with-openssl-prefix=PFX], + [Prefix where openssl is installed (optional)])) + + SSL_INCLUDES= + SSL_LIBDIR= + + if test "$with_openssl_prefix" != ""; then + SSL_INCLUDES="-I${with_openssl_prefix}/include" + SSL_LIBDIR="-L${with_openssl_prefix}/lib" + fi + + ac_check_lib_save_LIBS=$LIBS + ac_check_lib_save_CFLAGS=$CFLAGS + + AC_MSG_CHECKING(for openssl) + + LIBS="$SSL_LIBDIR -lssl -lcrypto $LIBS" + CFLAGS="$SSL_INCLUDES $CFLAGS" + AC_TRY_LINK([#include <openssl/opensslv.h>], + [ return OPENSSL_VERSION_NUMBER; ], + [have_openssl=yes], [have_openssl=no]) + + if test "$have_openssl" = yes; then + AC_DEFINE(HAVE_OPENSSL, 1, [Define if you have openssl]) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_WARN([OpenSSL libraries not found. The sample client will not be built]) + enable_sample_client="no" + fi + + LIBS=$ac_check_lib_save_LIBS + CFLAGS=$ac_check_lib_save_CFLAGS +fi + AM_CONDITIONAL(SAMPLE_CLIENT, test "$enable_sample_client" != "no") YAHOOPKGREQ="" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-09-19 15:31:31
|
Revision: 388 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=388&view=rev Author: siddheshp Date: 2010-09-19 15:31:25 +0000 (Sun, 19 Sep 2010) Log Message: ----------- Move ext_yahoo_chat_verify callback to the end of the structure to maintain backward ABI compatibility. Modified Paths: -------------- trunk/libyahoo2/src/yahoo2_callbacks.h Modified: trunk/libyahoo2/src/yahoo2_callbacks.h =================================================================== --- trunk/libyahoo2/src/yahoo2_callbacks.h 2010-09-14 19:22:31 UTC (rev 387) +++ trunk/libyahoo2/src/yahoo2_callbacks.h 2010-09-19 15:31:25 UTC (rev 388) @@ -237,15 +237,6 @@ const char *me, const char *who, const char *room); /** - * Captcha image verification. This event occurs after you request to log into a chat room - * using yahoo_chat_room_logon - * - * @param url Rhe URL of the image for verification - * @param[out] vcode Fill in the response to the captcha here - */ - void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_verify) (const char *url, char *vcode); - -/** * An xml dump of the chat room categories. This is deprecated and hence may not make it * to a future version of libyahoo2. The xml dump is protocol specific and could change * when Yahoo modifies their chat protocol. @@ -727,6 +718,15 @@ const char *me, const char *who, const char *old_group, const char *new_group); +/** + * Captcha image verification. This event occurs after you request to log into a chat room + * using yahoo_chat_room_logon + * + * @param url Rhe URL of the image for verification + * @param[out] vcode Fill in the response to the captcha here + */ + void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_verify) (const char *url, char *vcode); + }; /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-09-14 19:22:37
|
Revision: 387 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=387&view=rev Author: siddheshp Date: 2010-09-14 19:22:31 +0000 (Tue, 14 Sep 2010) Log Message: ----------- Spec file fixes - Included some fixes from the Fedora rpm spec file to get it to build - Install the API documentation and man pages - Install the sample client source code - Remove *.la from the installation - use parallel make - make setup quiet - Add doxygen to build requirements Modified Paths: -------------- trunk/libyahoo2/libyahoo2.spec.in Modified: trunk/libyahoo2/libyahoo2.spec.in =================================================================== --- trunk/libyahoo2/libyahoo2.spec.in 2010-09-12 05:07:59 UTC (rev 386) +++ trunk/libyahoo2/libyahoo2.spec.in 2010-09-14 19:22:31 UTC (rev 387) @@ -8,6 +8,8 @@ Source: %{name}-%{version}.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +BuildRequires: doxygen + %description libyahoo2 is a C library interface to the new Yahoo! Messenger protocol. It supports almost all current features of the protocol. @@ -22,15 +24,19 @@ libyahoo2 %prep -%setup +%setup -q %build -%configure --with-struct-callbacks -make +%configure +make %{?_smp_flags} %install -rm -rf $RPM_BUILD_ROOT -make DESTDIR=$RPM_BUILD_ROOT install +rm -rf %{buildroot} +make DESTDIR=%{buildroot} install +# Remove man to make way for the rest of the API to be installed in +# the right location +rm -rf doc/api/man +rm -f %{buildroot}/%{_libdir}/*.la %clean rm -rf $RPM_BUILD_ROOT @@ -43,12 +49,13 @@ %files devel %defattr(-,root,root) %doc doc/ymsg-9.txt NEWS COPYING AUTHORS README ChangeLog +%doc doc/api src/sample_client.c src/autoresponder.c %{_includedir}/* %{_libdir}/*.so %{_libdir}/*.a %{_libdir}/pkgconfig/* +%{_mandir}/man*/* - %changelog @CHANGELOG@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-09-12 05:08:10
|
Revision: 386 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=386&view=rev Author: siddheshp Date: 2010-09-12 05:07:59 +0000 (Sun, 12 Sep 2010) Log Message: ----------- Doxygen style API documentation. The documentation is generated in html, latex and man format. Modified Paths: -------------- trunk/libyahoo2/Makefile.am trunk/libyahoo2/acinclude.m4 trunk/libyahoo2/configure.ac trunk/libyahoo2/doc/Makefile.am trunk/libyahoo2/src/yahoo2.h trunk/libyahoo2/src/yahoo2_callbacks.h trunk/libyahoo2/src/yahoo2_types.h trunk/libyahoo2/src/yahoo_httplib.h trunk/libyahoo2/src/yahoo_list.h Added Paths: ----------- trunk/libyahoo2/Doxyfile.in trunk/libyahoo2/aminclude.am trunk/libyahoo2/ax_prog_doxygen.m4 Added: trunk/libyahoo2/Doxyfile.in =================================================================== --- trunk/libyahoo2/Doxyfile.in (rev 0) +++ trunk/libyahoo2/Doxyfile.in 2010-09-12 05:07:59 UTC (rev 386) @@ -0,0 +1,1635 @@ +# Doxyfile 1.7.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = @PACKAGE@ + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = @VERSION@ + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doc/api + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this +# tag. The format is ext=language, where ext is a file extension, and language +# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, +# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make +# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C +# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions +# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen to replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = YES + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penality. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will rougly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen +# will list include files with double quotes in the documentation +# rather than with sharp brackets. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. +# This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command <command> <input-file>, where <command> is the value of +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. The create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. +# You can optionally specify a file name after the option, if omitted +# DoxygenLayout.xml will be used as the name of the layout file. + +LAYOUT_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = src + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 + +FILE_PATTERNS = yahoo2.h yahoo2_callbacks.h yahoo2_types.h yahoo_httplib.h yahoo_list.h + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. +# If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. +# Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. +# The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. +# Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# If the HTML_TIMESTAMP tag is set to YES then the generated HTML +# documentation will contain the timesstamp. + +HTML_TIMESTAMP = NO + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. +# Doxygen will adjust the colors in the stylesheet and background images +# according to this color. Hue is specified as an angle on a colorwheel, +# see http://en.wikipedia.org/wiki/Hue for more information. +# For instance the value 0 represents red, 60 is yellow, 120 is green, +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. +# The allowed range is 0 to 359. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of +# the colors in the HTML output. For a value of 0 the output will use +# grayscales only. A value of 255 will produce the most vivid colors. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to +# the luminance component of the colors in the HTML output. Values below +# 100 gradually make the output lighter, whereas values above 100 make +# the output darker. The value divided by 100 is the actual gamma applied, +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, +# and 100 does not change the gamma. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting +# this to NO can help when comparing the output of multiple runs. + +HTML_TIMESTAMP = YES + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated +# that can be used as input for Qt's qhelpgenerator to generate a +# Qt Compressed Help (.qch) of the generated HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to +# add. For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see +# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> +# Qt Help Project / Custom Filters</a>. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's +# filter section matches. +# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> +# Qt Help Project / Filter Attributes</a>. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files +# will be generated, which together with the HTML files, form an Eclipse help +# plugin. To install this plugin and make it available under the help contents +# menu in Eclipse, the contents of the directory containing the HTML and XML +# files needs to be copied into the plugins directory of eclipse. The name of +# the directory within the plugins directory should be the same as +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before +# the help appears. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have +# this name. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list. + +USE_INLINE_TREES = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open +# links to external symbols imported via tag files in a separate window. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are +# not supported properly for IE 6.0, but are supported on all modern browsers. +# Note that when changing this option you need to delete any form_*.png files +# in the HTML output before the changes have effect. + +FORMULA_TRANSPARENT = YES + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box +# for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets +# (GENERATE_DOCSET) there is already a search function so this one should +# typically be disabled. For large projects the javascript based search engine +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a PHP enabled web server instead of at the web client +# using Javascript. Doxygen will generate the search PHP script and index +# file to put on the web server. The advantage of the server +# based approach is that it scales better to large projects and allows +# full text search. The disadvances is that it is more difficult to setup +# and does not have live searching capabilities. + +SERVER_BASED_SEARCH = NO + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. +# Note that when enabling USE_PDFLATEX this option is only used for +# generating bitmaps for formulas in the HTML output, but not in the +# Makefile that is written to the output directory. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = YES + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. +# This is useful +# if you want to understand what is going on. +# On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = NO + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows... [truncated message content] |
From: <sid...@us...> - 2010-09-11 17:28:18
|
Revision: 385 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=385&view=rev Author: siddheshp Date: 2010-09-11 17:28:12 +0000 (Sat, 11 Sep 2010) Log Message: ----------- Fix gen warnings Modified Paths: -------------- trunk/libyahoo2/acinclude.m4 Modified: trunk/libyahoo2/acinclude.m4 =================================================================== --- trunk/libyahoo2/acinclude.m4 2010-08-30 20:06:00 UTC (rev 384) +++ trunk/libyahoo2/acinclude.m4 2010-09-11 17:28:12 UTC (rev 385) @@ -5,7 +5,7 @@ dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject or dnl gthread is specified in MODULES, pass to pkg-config dnl -AC_DEFUN(AM_PATH_GLIB_2_0, +AC_DEFUN([AM_PATH_GLIB_2_0], [dnl dnl Get the cflags and libraries from pkg-config dnl @@ -217,7 +217,7 @@ dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or dnl gthread is specified in MODULES, pass to glib-config dnl -AC_DEFUN(AM_PATH_GLIB, +AC_DEFUN([AM_PATH_GLIB], [dnl dnl Get the cflags and libraries from the glib-config script dnl This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-08-30 20:06:06
|
Revision: 384 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=384&view=rev Author: siddheshp Date: 2010-08-30 20:06:00 +0000 (Mon, 30 Aug 2010) Log Message: ----------- Buddy add fixes by Wilmer van der Gaast It seems to me like yahoo_process_buddyadd() makes wrong assumptions about the status field. I had issues with BitlBee seeing "ghosts" online. It looks like the cause is in the handling of this status field. My comments: /* BitlBee: This seems to be wrong in my experience. I think: status = 0: Success status = 2: Already on list status = 3: Doesn't exist status = 42: Invalid handle (possibly banned/reserved, I get it for handles like joe or jjjjjj) Haven't seen others yet. But whenever the add is successful, there will be a separate "went online" packet when the auth. request is accepted. Couldn't find any test account that doesn't require auth. unfortunately (if there is even such a thing?) */ I just took out that code, but may be missing the case of people who don't require auth requests (gain, no clue of that even exists on YMSG). I also added a call to got_buddies since I let my IM modules ACK if an add was successful as some layer of "error checking". The full change is here: http://bugs.bitlbee.org/bitlbee/changeset/devel%2C670 Modified Paths: -------------- trunk/libyahoo2/src/libyahoo2.c Modified: trunk/libyahoo2/src/libyahoo2.c =================================================================== --- trunk/libyahoo2/src/libyahoo2.c 2010-08-16 13:23:19 UTC (rev 383) +++ trunk/libyahoo2/src/libyahoo2.c 2010-08-30 20:06:00 UTC (rev 384) @@ -2135,14 +2135,24 @@ yd->buddies = y_list_append(yd->buddies, bud); - /* A non-zero status (i've seen 2) seems to mean the buddy is already - * added and is online */ - if (status) { - LOG(("Setting online see packet for info")); - yahoo_dump_unhandled(pkt); - YAHOO_CALLBACK(ext_yahoo_status_changed) (yd->client_id, who, - YAHOO_STATUS_AVAILABLE, NULL, 0, 0, 0); + /* Wilmer van der Gaast: + * BitlBee: This seems to be wrong in my experience. I think: + * status = 0: Success + * status = 2: Already on list + * status = 3: Doesn't exist + * status = 42: Invalid handle (possibly banned/reserved, I get it for + * handles like joe or jjjjjj) + * Haven't seen others yet. But whenever the add is successful, there + * will be a separate "went online" packet when the auth. request is + * accepted. Couldn't find any test account that doesn't require auth. + * unfortunately (if there is even such a thing?) */ + + if (status == 0) { + YList *tmp = y_list_append(NULL, bud); + YAHOO_CALLBACK(ext_yahoo_got_buddies) (yd->client_id, tmp); + y_list_free(tmp); } + } static void yahoo_process_buddydel(struct yahoo_input_data *yid, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ka...@us...> - 2010-08-16 13:23:30
|
Revision: 383 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=383&view=rev Author: kay21s Date: 2010-08-16 13:23:19 +0000 (Mon, 16 Aug 2010) Log Message: ----------- Fix up warnings Modified Paths: -------------- trunk/libyahoo2/src/autoresponder.c trunk/libyahoo2/src/libyahoo2.c trunk/libyahoo2/src/sample_client.c trunk/libyahoo2/src/yahoo2.h trunk/libyahoo2/src/yahoo_httplib.h Modified: trunk/libyahoo2/src/autoresponder.c =================================================================== --- trunk/libyahoo2/src/autoresponder.c 2010-08-16 01:14:42 UTC (rev 382) +++ trunk/libyahoo2/src/autoresponder.c 2010-08-16 13:23:19 UTC (rev 383) @@ -745,7 +745,7 @@ } if(buff[0]) - print_message((buff)); + print_message(("%s", buff)); } static void ext_yahoo_got_webcam_image(int id, const char *who, @@ -970,7 +970,7 @@ } ylad->status = YAHOO_STATUS_OFFLINE; - print_message((buff)); + print_message(("%s", buff)); yahoo_logout(); /* poll_loop=0; */ } @@ -1155,7 +1155,7 @@ "Yahoo read error: Server closed socket"); if(buff[0]) - print_message((buff)); + print_message(("%s", buff)); } } Modified: trunk/libyahoo2/src/libyahoo2.c =================================================================== --- trunk/libyahoo2/src/libyahoo2.c 2010-08-16 01:14:42 UTC (rev 382) +++ trunk/libyahoo2/src/libyahoo2.c 2010-08-16 13:23:19 UTC (rev 383) @@ -3050,6 +3050,8 @@ } } +/* DEFINED FOR TEST + static void traverse_cat_list(YList *list, int level) { int i; @@ -3078,6 +3080,7 @@ list = list->next; } } +*/ static YList *find_room_category(YList *list, int cat_id) { @@ -3245,9 +3248,6 @@ int length; struct yahoo_post_data *yad; struct yahoo_input_data *new_yid; - struct yahoo_packet *pkt; - struct yahoo_data *yd = yid->yd; - int id = yd->client_id; char *judge; http_data data; Modified: trunk/libyahoo2/src/sample_client.c =================================================================== --- trunk/libyahoo2/src/sample_client.c 2010-08-16 01:14:42 UTC (rev 382) +++ trunk/libyahoo2/src/sample_client.c 2010-08-16 13:23:19 UTC (rev 383) @@ -878,7 +878,7 @@ } if(buff[0]) - print_message((buff)); + print_message(("%s", buff)); } static void ext_yahoo_got_webcam_image(int id, const char *who, @@ -1087,7 +1087,7 @@ } ylad->status = YAHOO_STATUS_OFFLINE; - print_message((buff)); + print_message(("%s", buff)); yahoo_logout(); poll_loop=0; } @@ -1291,7 +1291,7 @@ "Yahoo read error: Server closed socket"); if(buff[0]) - print_message((buff)); + print_message(("%s", buff)); } } @@ -1611,9 +1611,11 @@ yahoo_get_chatrooms(ylad->id, roomid); } else if(!strncasecmp(cmd, "CHR", strlen("CHR"))) { int roomid; - void *ext_data; + void *ext_data = NULL; + YList *list; + roomid = atoi(copy); - YList *list = yahoo_get_chat_room_list(ylad->id, roomid, ext_data); + list = yahoo_get_chat_room_list(ylad->id, roomid, ext_data); if(list) { if(roomid == 0) traverse_cat_list(list, 0); Modified: trunk/libyahoo2/src/yahoo2.h =================================================================== --- trunk/libyahoo2/src/yahoo2.h 2010-08-16 01:14:42 UTC (rev 382) +++ trunk/libyahoo2/src/yahoo2.h 2010-08-16 13:23:19 UTC (rev 383) @@ -136,8 +136,10 @@ void yahoo_conference_logoff(int id, const char *from, YList *who, const char *room); -/* Get a list of chatrooms */ +/* Get list of chat rooms or categories from the server */ void yahoo_get_chatrooms(int id, int chatroomid); +/* Get cached chat room list or category list */ + const YList *yahoo_get_chat_room_list(int id, int roomid, void *extra_data); /* join room with specified roomname and roomid */ void yahoo_chat_logon(int id, const char *from, const char *room, const char *roomid, const char *country, const char *language); Modified: trunk/libyahoo2/src/yahoo_httplib.h =================================================================== --- trunk/libyahoo2/src/yahoo_httplib.h 2010-08-16 01:14:42 UTC (rev 382) +++ trunk/libyahoo2/src/yahoo_httplib.h 2010-08-16 13:23:19 UTC (rev 383) @@ -41,6 +41,10 @@ void yahoo_http_head(int id, const char *url, const char *cookies, int size, char *payload, yahoo_get_fd_callback callback, void *data); + char *yahoo_http_get_header_value(http_data, char *); + void yahoo_get_http_data(http_data); + void yahoo_set_http_data(char *, int, http_data *); + void yahoo_free_http_data(http_data *); #ifdef __cplusplus } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ka...@us...> - 2010-08-16 01:14:49
|
Revision: 382 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=382&view=rev Author: kay21s Date: 2010-08-16 01:14:42 +0000 (Mon, 16 Aug 2010) Log Message: ----------- Added my copyright notice in relevant files for chat room support Modified Paths: -------------- trunk/libyahoo2/src/libyahoo2.c trunk/libyahoo2/src/sample_client.c trunk/libyahoo2/src/yahoo2.h trunk/libyahoo2/src/yahoo2_callbacks.h trunk/libyahoo2/src/yahoo2_types.h trunk/libyahoo2/src/yahoo_httplib.c Modified: trunk/libyahoo2/src/libyahoo2.c =================================================================== --- trunk/libyahoo2/src/libyahoo2.c 2010-08-13 20:15:45 UTC (rev 381) +++ trunk/libyahoo2/src/libyahoo2.c 2010-08-16 01:14:42 UTC (rev 382) @@ -4,6 +4,7 @@ * Some code copyright (C) 2002-2004, Philip S Tellis <philip.tellis AT gmx.net> * YMSG16 code copyright (C) 2009, * Siddhesh Poyarekar <siddhesh dot poyarekar at gmail dot com> + * Chat room code copyright (C) 2010, Kai Zhang <kay21s AT gmail dot com> * * Yahoo Search copyright (C) 2003, Konstantin Klyagin <konst AT konst.org.ua> * Modified: trunk/libyahoo2/src/sample_client.c =================================================================== --- trunk/libyahoo2/src/sample_client.c 2010-08-13 20:15:45 UTC (rev 381) +++ trunk/libyahoo2/src/sample_client.c 2010-08-16 01:14:42 UTC (rev 382) @@ -8,6 +8,7 @@ * * Copyright (C) 2002-2004, Philip S Tellis <philip.tellis AT gmx.net> * Copyright (C) 2009, Siddhesh Poyarekar <sid...@gm...> + * Chat room code Copyright (C) 2010, Kai Zhang <kay21s AT gmail dot com> * * 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 Modified: trunk/libyahoo2/src/yahoo2.h =================================================================== --- trunk/libyahoo2/src/yahoo2.h 2010-08-13 20:15:45 UTC (rev 381) +++ trunk/libyahoo2/src/yahoo2.h 2010-08-16 01:14:42 UTC (rev 382) @@ -2,6 +2,7 @@ * libyahoo2: yahoo2.h * * Copyright (C) 2002-2004, Philip S Tellis <philip.tellis AT gmx.net> + * Chat room code copyright (C) 2010, Kai Zhang <kay21s AT gmail dot com> * * 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 Modified: trunk/libyahoo2/src/yahoo2_callbacks.h =================================================================== --- trunk/libyahoo2/src/yahoo2_callbacks.h 2010-08-13 20:15:45 UTC (rev 381) +++ trunk/libyahoo2/src/yahoo2_callbacks.h 2010-08-16 01:14:42 UTC (rev 382) @@ -2,6 +2,7 @@ * libyahoo2: yahoo2_callbacks.h * * Copyright (C) 2002-2004, Philip S Tellis <philip.tellis AT gmx.net> + * Chat room code copyright (C) 2010, Kai Zhang <kay21s AT gmail dot com> * * 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 Modified: trunk/libyahoo2/src/yahoo2_types.h =================================================================== --- trunk/libyahoo2/src/yahoo2_types.h 2010-08-13 20:15:45 UTC (rev 381) +++ trunk/libyahoo2/src/yahoo2_types.h 2010-08-16 01:14:42 UTC (rev 382) @@ -2,6 +2,7 @@ * libyahoo2: yahoo2_types.h * * Copyright (C) 2002-2004, Philip S Tellis <philip.tellis AT gmx.net> + * Chat room code copyright (C) 2010, Kai Zhang <kay21s AT gmail dot com> * * 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 Modified: trunk/libyahoo2/src/yahoo_httplib.c =================================================================== --- trunk/libyahoo2/src/yahoo_httplib.c 2010-08-13 20:15:45 UTC (rev 381) +++ trunk/libyahoo2/src/yahoo_httplib.c 2010-08-16 01:14:42 UTC (rev 382) @@ -2,6 +2,7 @@ * libyahoo2: yahoo_httplib.c * * Copyright (C) 2002-2004, Philip S Tellis <philip.tellis AT gmx.net> + * Chat room code copyright (C) 2010, Kai Zhang <kay21s AT gmail dot com> * * 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 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-08-13 20:15:52
|
Revision: 381 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=381&view=rev Author: siddheshp Date: 2010-08-13 20:15:45 +0000 (Fri, 13 Aug 2010) Log Message: ----------- Merge libyahoo2 chatroom code Conflicts: libyahoo2/src/libyahoo2.c libyahoo2/src/sample_client.c libyahoo2/src/yahoo2.h libyahoo2/src/yahoo2_callbacks.h libyahoo2/src/yahoo2_types.h libyahoo2/src/yahoo_httplib.c Modified Paths: -------------- trunk/libyahoo2/src/libyahoo2.c trunk/libyahoo2/src/sample_client.c trunk/libyahoo2/src/yahoo2.h trunk/libyahoo2/src/yahoo2_callbacks.h trunk/libyahoo2/src/yahoo2_types.h trunk/libyahoo2/src/yahoo_httplib.c Added Paths: ----------- trunk/libyahoo2/doc/ymsg-chatroom.txt Added: trunk/libyahoo2/doc/ymsg-chatroom.txt =================================================================== --- trunk/libyahoo2/doc/ymsg-chatroom.txt (rev 0) +++ trunk/libyahoo2/doc/ymsg-chatroom.txt 2010-08-13 20:15:45 UTC (rev 381) @@ -0,0 +1,169 @@ +Yahoo Messenger Protocol -- Chat Room +---------------------------------------- + +The YMSG protocol used in chat room. +Seven types of messages used here: +1) Chat Online +2) Chat Join : Messages send when joining the chat room. +3) Chat Comment : Send comment to server or Receive comments from others from server +4) Chat Join : When a user joined the chat room, will receive a message from the server +5) Chat Logout : When a user left the chat room, will receive a message from the server +6) Chat Exit : Left the chat room, send a message to tell the server +7) Ignore User : Ignore/Unignore a specified user, and the server will not send the user's comments any more + + +1.Chat Online + +Service: Chat Online (150 0×96) + +Client –> Server : + +109 : username +1 : username +6 : abcde +98 : us +445 : en-us +135 : ym10.0.0.1258 + +Server –> Client : + +1 : username +6 : abcde +98 : us +109 : username +135 : ym10.0.0.1258 +445 : en-us +302 : 10019 +10019 : username +303 : 10019 + +2. Chat Join + +Service: Chat Join (152 0×98) + +Client –> Server : + +1 : username +104 : #ChatRoom(China : 1) +129 : (Chat Room ID) +62 : 2 + +Server –> Client : + +13 : 1 +104 : #ChatRoom(China : 1) +105 : To help preven spam … … +109 : username +302 : 10019 +10019 : username +303 : 10019 +109 : Yahoo +141 : Messenger Chat Admin + +Now client receives the URL of the image for verification. Libyahoo2 will be in charge of extracting the URL and handle it to client to display the image. + +Server –> Client + +13 : 1 +104 : #ChatRoom(China : 1) +105 : (Information from the chat room) +108 : (Number of members in this package) +126 : 328704 +128 : 1032 +129 : (Chat Room ID) +130 : (Some Unrecognizable characters to show the first join) +302 : 10019 +10019 : username +303 : 10019 +#For all the users in the chat room: +109 : user name +110 : 0 +111 : (sex) neuter/male/female +113 : (number) +141 : (nick name ?) james +142 : (country) New Zealand + +Special Situation : Disconnect. Maybe the chat room is full + +Server –> Client : +Status : Disconnected(4294967295) +114 : -35 + +3. Chat Comment + +Service : Comment(168 0xa8) + +Client –> Server + +1 : username +104: #ChatRoom(China:1) +124 : (Message Type) +117 : (Content) + +Server –> Client + +104 : #ChatRoom(China:1) +109 : (From) Yahoo/username +117 : (Content) +124 : (Message Type) + +4. Chat Join + +Service : Chat Join (152 0×98) + +Server –> Client : + +104 : #ChatRoom(China : 1) +105 : (Information from the chat room) +108 : 1 +109 : username(who is joining) +113 : (number) + +5. Chat Exit + +Service : Chat Exit(155 0×9b) + +Server –> Client + +104 : #ChatRoom(China:1) +108 : 1 +109 : username(who is leaving) +113 : (number) + +6. Chat Logout + +Service : Chat Logout (160 0xa0) + +Client –> Server + +1 : username +1005 : (number) + +Server –> Client + +1 : username +1005 : (number) <same with the number sent to server> +302 : 10019 +10019 : username +303 : 10019 + +7. Ignore user + +Service : Ignore Contact (133 0x85) + +Client -->Server + +1 : my username +13 : 1 if ignore a user / 2 if unignore a user +302 : 319 +300 : 319 +7 : user to be ignored +301 : 319 +303 : 319 + +Server --> Client + +0 : user to be ignored +1 : my username +13 : 1 if ignore a user / 2 if unignore a user +66 : 0 Modified: trunk/libyahoo2/src/libyahoo2.c =================================================================== --- trunk/libyahoo2/src/libyahoo2.c 2010-08-05 03:36:23 UTC (rev 380) +++ trunk/libyahoo2/src/libyahoo2.c 2010-08-13 20:15:45 UTC (rev 381) @@ -93,6 +93,11 @@ struct yahoo_callbacks *yc = NULL; +struct yahoo_post_data { + struct yahoo_input_data *yid; + char *data; +}; + void yahoo_register_callbacks(struct yahoo_callbacks *tyc) { yc = tyc; @@ -103,6 +108,7 @@ static int yahoo_send_data(void *fd, void *data, int len); static void _yahoo_http_connected(int id, void *fd, int error, void *data); static void yahoo_connected(void *fd, int error, void *data); +static void _yahoo_http_post_connected(int id, void *fd, int error, void *data); int yahoo_log_message(char *fmt, ...) { @@ -204,6 +210,7 @@ YList *txqueues; int write_tag; + int chat_room_id; }; struct yahoo_server_settings { @@ -465,6 +472,51 @@ } } +/* Free chat room list */ +static void yahoo_free_chat_room_list(YList *list) +{ + YList *lobby, *templ; + while(list != NULL) { + FREE(((yahoo_chatroom_info *)list->data)->type); + FREE(((yahoo_chatroom_info *)list->data)->topic); + FREE(((yahoo_chatroom_info *)list->data)->name); + lobby = list->prev; + while(lobby != NULL) { + templ = lobby->prev; + FREE(lobby->data); + FREE(lobby); + lobby = templ; + } + list = list->next; + } + y_list_free(list); +} +/* +static void yahoo_free_chat_cat_list(YList *list) +{ + YList *ptr = list->next; + free_chat_cat_list(list->next); + FREE(list); +} +*/ +static void yahoo_free_chat_cat_list(YList *list) +{ + FREE(((yahoo_chatroom_category *)list->data)->name); + + if(((yahoo_chatroom_category *)(list->data))->room_list) + yahoo_free_chat_room_list(((yahoo_chatroom_category *)list->data)->room_list); + + if (list->prev) { + yahoo_free_chat_cat_list(list->prev); + } + if (list->next) { + yahoo_free_chat_cat_list(list->next); + } + + FREE(list->data); + FREE(list); +} + /* Free webcam data */ static void yahoo_free_webcam(struct yahoo_webcam *wcm) { @@ -1052,6 +1104,12 @@ int membercount = 0; int chaterr = 0; YList *l; + char *end, *head; + char content[256], vcode[8]; + int length; + struct yahoo_post_data *yad; + struct yahoo_input_data *new_yid; + static int verify_image = 1; yahoo_dump_unhandled(pkt); for (l = pkt->hash; l; l = l->next) { @@ -1163,6 +1221,42 @@ WARNING(("Got more than 1 member on a normal join")); } /* this should only ever have one, but just in case */ + + /* skip the message "To help prevent spam ..." to the url of the image for verification + the URL is in the first message server send to client + if what user input is wrong, new image URL will be send in form of HTTP*/ + if (verify_image == 1) { + verify_image = 0; + end = strstr(topic, ".jpg"); + end[4] = '\0'; + + /* find the URL of the image, the SECOND "http://" in the string */ + head = strstr(topic, "http://"); + topic = head + 7; /*skip the first "http://" */ + head = strstr(topic, "http://"); + + /* handle the URL to client to show the image and get the code in the image*/ + YAHOO_CALLBACK(ext_yahoo_chat_verify)(head, vcode); + + /* construct a HTTP post message to send the verification code to the server*/ + length = snprintf(content, sizeof(content), "question=%s" + "&answer=%s" + "&.intl=us&.lang=en-US", + head, vcode); + + new_yid = y_new0(struct yahoo_input_data, 1); + new_yid->type = YAHOO_CONNECTION_CAPTCHA; + new_yid->yd = yid->yd; + + yad = y_new0(struct yahoo_post_data, 1); + yad->yid = new_yid; + yad->data = strdup(content); + yahoo_http_post(yid->yd->client_id, "http://captcha.chat.yahoo.com/captcha1", + NULL, length, _yahoo_http_post_connected, yad); + break; + } + + /* The second time receive the message of this type, it will contain all the members in the chat room*/ while (members) { YList *n = members->next; currentmember = members->data; @@ -1850,7 +1944,7 @@ yahoo_packet_hash(packet, 2, "1"); yahoo_packet_hash(packet, 59, yd->cookie_b); yahoo_packet_hash(packet, 98, "us"); /* TODO Put country code */ - yahoo_packet_hash(packet, 135, "9.0.0.2152"); + yahoo_packet_hash(packet, 135, YMSG_VERSION); yahoo_send_packet(yid, packet, 0); @@ -2955,18 +3049,261 @@ } } -static void yahoo_process_chatcat_connection(struct yahoo_input_data *yid, - int over) +static void traverse_cat_list(YList *list, int level) { + int i; + for(i=0; i<level; i++) + putchar('\t'); + printf("%d - %s\n", ((yahoo_chatroom_category *)list->data)->id, ((yahoo_chatroom_category *)list->data)->name); + if(list->prev) + traverse_cat_list(list->prev, level+1); + if(list->next) + traverse_cat_list(list->next, level); +} + +static void traverse_room_list(YList *list) +{ + YList *lobby; + + while(list != NULL) { + lobby = list->prev; + while(lobby != NULL) { + printf("%d - %s %d [%d] [w%d]\n", + ((yahoo_chatroom_info *)list->data)->id, ((yahoo_chatroom_info *)list->data)->name, + ((yahoo_lobby_info *)lobby->data)->count, ((yahoo_lobby_info *)lobby->data)->users, + ((yahoo_lobby_info *)lobby->data)->webcams); + lobby = lobby->prev; + } + list = list->next; + } +} + +static YList *find_room_category(YList *list, int cat_id) +{ + YList *cat_pos = NULL; + if (((yahoo_chatroom_category *)(list->data))->id == cat_id) { + return list; + } + + if(list->prev) + cat_pos = find_room_category(list->prev, cat_id); + if(list->next && !cat_pos) + cat_pos = find_room_category(list->next, cat_id); + + return cat_pos; +} + +static char *get_xml_chatroom_info(char *content, char *pattern) +{ + char *header, *tailer, *info; + header = strstr(content, pattern); + header += strlen(pattern); + tailer = strchr(header, '"'); + *tailer = '\0'; + info = y_new0(char, tailer - header + 1); + strcpy(info, header); + *tailer = '"'; + return info; +} + +static void parse_chat_cat_xml(int id, const char *xml) +{ + struct yahoo_data *yd = find_conn_by_id(id); + struct yahoo_input_data *yid = find_input_by_id_and_type(id, YAHOO_CONNECTION_CHATCAT); + char *content = strdup(xml), *header, *tailer; + int child_mode = 0; + YList *room_list; + YList *list_ptr; + YList *cat_stack[5]; + int stack_ptr = 0; + YList *temp, *child, *tail, *category; + + room_list = y_new0(struct _YList, 1); + list_ptr = room_list; + content = strstr(content, "<category"); /* Find the first category */ + + if (content == NULL) { + category = find_room_category(yd->chat_room_list, yid->chat_room_id); + + content = strdup(xml); + content = strstr(content, "<chatRooms>"); + if (content == NULL) { + printf("Error : Cannot find anything!\n"); + return ; + } + + content += strlen("<chatRooms>"); + + content = strchr(content, '<'); + while(*(content + 1) != '/') { + /* find all the fields of a chat room */ + temp = y_new0(struct _YList, 1); + temp->data = y_new0(struct yahoo_chatroom, 1); + tail = temp; + + ((yahoo_chatroom_info *)(temp->data))->type = get_xml_chatroom_info(content, "type=\""); + ((yahoo_chatroom_info *)(temp->data))->id = atoi(get_xml_chatroom_info(content, "id=\"")); + ((yahoo_chatroom_info *)(temp->data))->name = get_xml_chatroom_info(content, "name=\""); + ((yahoo_chatroom_info *)(temp->data))->topic = get_xml_chatroom_info(content, "topic=\""); + + /* find all lobbys of a chat room */ + + content = strchr(content+1, '<'); + while(*(content + 1) != '/') { + child = y_new0(struct _YList, 1); + child->data = y_new0(struct yahoo_lobby, 1); + + ((yahoo_lobby_info *)(child->data))->count = atoi(get_xml_chatroom_info(content, "count=\"")); + ((yahoo_lobby_info *)(child->data))->users = atoi(get_xml_chatroom_info(content, "users=\"")); + ((yahoo_lobby_info *)(child->data))->voices = atoi(get_xml_chatroom_info(content, "voices=\"")); + ((yahoo_lobby_info *)(child->data))->webcams = atoi(get_xml_chatroom_info(content, "webcams=\"")); + + /* prev is used as a pointer to the the lobby*/ + tail->prev = child; + tail = child; + + content = strchr(content+1, '<'); + } + + list_ptr->next = temp; + list_ptr = temp; + + content = strchr(content+1, '<'); + } + + ((yahoo_chatroom_category *)(category->data))->room_list = room_list->next; + + } else { + while(stack_ptr >= 0) { + /* prev is used as a pointer linked with its child categories */ + + /* Find the id */ + temp = y_new0(struct _YList, 1); + temp->data = y_new0(struct yahoo_chatroom_category, 1); + header = strchr(content, '"'); + tailer = strchr(header+1, '"'); + *tailer = '\0'; + ((yahoo_chatroom_category *)(temp->data))->id = atoi(strdup(header + 1)); + + /* Find the name*/ + header = strchr(tailer+1, '"'); + tailer = strchr(header+1, '"'); + *tailer = '\0'; + ((yahoo_chatroom_category *)(temp->data))->name = strdup(header + 1); + ((yahoo_chatroom_category *)(temp->data))->room_list = NULL; + + content = strchr(tailer+1, '>'); + if(child_mode == 1) { + list_ptr->prev = temp; + list_ptr = temp; + cat_stack[stack_ptr] = temp; + child_mode = 0; + } else { + list_ptr->next = temp; + list_ptr = temp; + cat_stack[stack_ptr] = temp; + } + + if (*(content-1) != '/') { + stack_ptr ++; + child_mode = 1; + } + + /* find the next category */ + content = strchr(content, '<'); + while (*(content+1) == '/' && stack_ptr >= 0) { + stack_ptr --; + list_ptr = cat_stack[stack_ptr]; + content = strchr(content + 1, '<'); + } + } + + yd->chat_room_list = room_list->next; + } + FREE(room_list); /* free the head node */ +} + +static void yahoo_process_chatcat_connection(struct yahoo_input_data *yid, int over) +{ if (over) return; - if (strstr((char *)yid->rxqueue + (yid->rxlen - 20), "</content>")) { + if (strstr((char *)yid->rxqueue, "</content>")) { + parse_chat_cat_xml(yid->yd->client_id, (char *)yid->rxqueue); + + /* ext_yahoo_chat_cat_xml() needs to be deprecated in future releases */ YAHOO_CALLBACK(ext_yahoo_chat_cat_xml) (yid->yd->client_id, (char *)yid->rxqueue); } } +static void yahoo_process_captcha_connection(struct yahoo_input_data *yid, int over) +{ + char content[256], vcode[8]; + char *url, *location; + int length; + struct yahoo_post_data *yad; + struct yahoo_input_data *new_yid; + struct yahoo_packet *pkt; + struct yahoo_data *yd = yid->yd; + int id = yd->client_id; + char *judge; + http_data data; + + if (over) + return; + + yahoo_set_http_data((char *)yid->rxqueue, yid->rxlen, &data); + location = yahoo_http_get_header_value(data, "Location"); + + /*location = strstr((char *)yid->rxqueue, "Location:");*/ + if (location == NULL) { + return ; /* Do not found the content, must have error*/ + } + + judge = strstr(location, "tryagain=1"); + if (judge == NULL) { + judge = strstr(location, "close"); + if (judge != NULL) { + /* Successfully logged in*/ + printf("Successfully Logged in\n"); + } else { + printf("Error in captcha process\n"); + } + yahoo_input_close(yid); + return ; + } else { + location = judge; + /* Find the end of the URL*/ + url = strstr(location, ".jpg"); + url[4] = '\0'; + + /* Find the head of the URL*/ + url = strstr(location, "http://"); + + /* handle the URL to client to show the image and get the code in the image*/ + YAHOO_CALLBACK(ext_yahoo_chat_verify)(url, vcode); + + /* construct a HTTP post message to send the verification code to the server*/ + length = snprintf(content, sizeof(content), "question=%s" + "&answer=%s" + "&.intl=us&.lang=en-US", + url, vcode); + + new_yid = y_new0(struct yahoo_input_data, 1); + new_yid->type = YAHOO_CONNECTION_CAPTCHA; + new_yid->yd = yid->yd; + + yad = y_new0(struct yahoo_post_data, 1); + yad->yid = new_yid; + yad->data = strdup(content); + yahoo_input_close(yid); + yahoo_http_post(new_yid->yd->client_id, "http://captcha.chat.yahoo.com/captcha1", + NULL, length, _yahoo_http_post_connected, yad); + } + yahoo_free_http_data(&data); +} + static void yahoo_process_yab_connection(struct yahoo_input_data *yid, int over) { struct yahoo_data *yd = yid->yd; @@ -3508,12 +3845,15 @@ static void (*yahoo_process_connection[]) (struct yahoo_input_data *, int over) = { -yahoo_process_pager_connection, yahoo_process_ft_connection, + yahoo_process_pager_connection, + yahoo_process_ft_connection, yahoo_process_yab_connection, yahoo_process_webcam_master_connection, yahoo_process_webcam_connection, yahoo_process_chatcat_connection, - yahoo_process_search_connection, yahoo_process_auth_connection}; + yahoo_process_search_connection, + yahoo_process_auth_connection, + yahoo_process_captcha_connection}; int yahoo_read_ready(int id, void *fd, void *data) { @@ -3581,6 +3921,8 @@ yd->current_status = -1; yd->client_id = ++last_id; + + yd->chat_room_list = NULL; add_to_list(yd); @@ -3891,11 +4233,6 @@ _yahoo_http_connected, yid); } -struct yahoo_post_data { - struct yahoo_input_data *yid; - char *data; -}; - static void _yahoo_http_post_connected(int id, void *fd, int error, void *data) { struct yahoo_post_data *yad = data; @@ -4400,6 +4737,7 @@ struct yahoo_input_data *yid; char url[1024]; char buff[1024]; + YList *category; if (!yd) return; @@ -4407,11 +4745,22 @@ yid = y_new0(struct yahoo_input_data, 1); yid->yd = yd; yid->type = YAHOO_CONNECTION_CHATCAT; + yid->chat_room_id = chatroomid; if (chatroomid == 0) { + if (yd->chat_room_list) { + yahoo_free_chat_cat_list(yd->chat_room_list); + yd->chat_room_list = NULL; + } snprintf(url, 1024, "http://insider.msg.yahoo.com/ycontent/?chatcat=0"); } else { + if (!(yd->chat_room_list)) { + return; + } + category = find_room_category(yd->chat_room_list, chatroomid); + if(((yahoo_chatroom_category *)(category->data))->room_list) + yahoo_free_chat_room_list(((yahoo_chatroom_category *)(category->data))->room_list); snprintf(url, 1024, "http://insider.msg.yahoo.com/ycontent/?chatroom_%d=0", chatroomid); @@ -4421,12 +4770,12 @@ inputs = y_list_prepend(inputs, yid); - yahoo_http_get(yid->yd->client_id, url, buff, 0, 0, + yahoo_http_get(yid->yd->client_id, url, buff, 1, 0, _yahoo_http_connected, yid); } void yahoo_chat_logon(int id, const char *from, const char *room, - const char *roomid) + const char *roomid, const char *country, const char *language) { struct yahoo_input_data *yid = find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); @@ -4438,17 +4787,27 @@ yd = yid->yd; + /* First, send a CHAT ONLINE message*/ pkt = yahoo_packet_new(YAHOO_SERVICE_CHATONLINE, YPACKET_STATUS_DEFAULT, yd->session_id); yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); yahoo_packet_hash(pkt, 109, yd->user); yahoo_packet_hash(pkt, 6, "abcde"); + if(country && language) { + yahoo_packet_hash(pkt, 98, country); + yahoo_packet_hash(pkt, 445, language); + } else { + yahoo_packet_hash(pkt, 98, "us"); + yahoo_packet_hash(pkt, 445, "en-us"); + } + yahoo_packet_hash(pkt, 135, YMSG_VERSION); yahoo_send_packet(yid, pkt, 0); yahoo_packet_free(pkt); - + + /* Second, Send a CHAT JOIN message*/ pkt = yahoo_packet_new(YAHOO_SERVICE_CHATJOIN, YPACKET_STATUS_DEFAULT, yd->session_id); @@ -4494,12 +4853,44 @@ yahoo_packet_free(pkt); } +void yahoo_chat_ignore(int id, const char *from, const char *user, int ignore) +/*ignore = 1 means we are trying to ignore the user + ignore = 0 means we have already ignored the user and don't want to ignore him any more*/ +{ + struct yahoo_input_data *yid = + find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); + struct yahoo_data *yd; + struct yahoo_packet *pkt; + + yd = yid->yd; + + pkt = yahoo_packet_new(YAHOO_SERVICE_IGNORECONTACT, YPACKET_STATUS_DEFAULT, + yd->session_id); + + yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); + if(ignore) + yahoo_packet_hash(pkt, 13, "1"); + else + yahoo_packet_hash(pkt, 13, "2"); + yahoo_packet_hash(pkt, 302, "319"); + yahoo_packet_hash(pkt, 300, "319"); + yahoo_packet_hash(pkt, 7, user); + yahoo_packet_hash(pkt, 301, "319"); + yahoo_packet_hash(pkt, 303, "319"); + + yahoo_send_packet(yid, pkt, 0); + + yahoo_packet_free(pkt); +} + void yahoo_chat_logoff(int id, const char *from) { struct yahoo_input_data *yid = find_input_by_id_and_type(id, YAHOO_CONNECTION_PAGER); struct yahoo_data *yd; struct yahoo_packet *pkt; + char c1005[8] = "12345678"; + /* Any value of the field 1005 will cause not much difference, just use a hard-coding value */ if (!yid) return; @@ -4510,6 +4901,7 @@ yd->session_id); yahoo_packet_hash(pkt, 1, (from ? from : yd->user)); + yahoo_packet_hash(pkt, 1005, c1005); yahoo_send_packet(yid, pkt, 0); @@ -5483,6 +5875,25 @@ return yd->buddies; } +const YList *yahoo_get_chat_room_list(int id, int roomid, void *ext_data) +{ + struct yahoo_data *yd = find_conn_by_id(id); + YList *category; + + if (!yd) + return NULL; + if(roomid == 0) + return yd->chat_room_list; + else { + if(yd->chat_room_list) { + category = find_room_category(yd->chat_room_list, roomid); + return ((yahoo_chatroom_category *)(category->data))->room_list; + } else { + return NULL; + } + } +} + const YList *yahoo_get_ignorelist(int id) { struct yahoo_data *yd = find_conn_by_id(id); Modified: trunk/libyahoo2/src/sample_client.c =================================================================== --- trunk/libyahoo2/src/sample_client.c 2010-08-05 03:36:23 UTC (rev 380) +++ trunk/libyahoo2/src/sample_client.c 2010-08-13 20:15:45 UTC (rev 381) @@ -463,9 +463,173 @@ printf(" Location: %s", ycm->location); } +static void ext_yahoo_chat_verify(const char *url, char *vcode) +{ + printf("%s\n", url); + printf("Please input the verification code:"); + scanf("%s", vcode); +} + +static void traverse_cat_list(YList *list, int level) +{ + int i; + for(i=0; i<level; i++) + putchar('\t'); + printf("%d - %s\n", ((yahoo_chatroom_category *)list->data)->id, ((yahoo_chatroom_category *)list->data)->name); + if(list->prev) + traverse_cat_list(list->prev, level+1); + if(list->next) + traverse_cat_list(list->next, level); +} + +static void traverse_room_list(YList *list) +{ + YList *lobby; + + while(list != NULL) { + lobby = list->prev; + while(lobby != NULL) { + printf("%d - %s %d [%d] [w%d]\n", + ((yahoo_chatroom_info *)list->data)->id, ((yahoo_chatroom_info *)list->data)->name, + ((yahoo_lobby_info *)lobby->data)->count, ((yahoo_lobby_info *)lobby->data)->users, + ((yahoo_lobby_info *)lobby->data)->webcams); + lobby = lobby->prev; + } + list = list->next; + } +} + +static char *get_xml_chatroom_info(char *content, char *pattern) +{ + char *header, *tailer, *info; + header = strstr(content, pattern); + header += strlen(pattern); + tailer = strchr(header, '"'); + *tailer = '\0'; + info = malloc(tailer - header + 1); + strcpy(info, header); + *tailer = '"'; + return info; +} + static void ext_yahoo_chat_cat_xml(int id, const char *xml) { - print_message(("%s", xml)); + char *content = strdup(xml), *header, *tailer; + int child_mode = 0; + YList *room_list; + YList *list_ptr; + YList *cat_stack[5]; + int stack_ptr = 0; + YList *temp, *child, *tail; + + content = strstr(content, "<category"); /* Find the first category*/ + + if (content == NULL) { + room_list = calloc(1, sizeof(YList)); + list_ptr = room_list; + + content = strdup(xml); + content = strstr(content, "<chatRooms>"); + if (content == NULL) { + printf("Error : Cannot find anything!\n"); + return ; + } + + content += strlen("<chatRooms>"); + + content = strchr(content, '<'); + while(*(content + 1) != '/') { + + /* find all the fields of a chat room */ + temp = calloc(1, sizeof(YList)); + temp->data = calloc(1, sizeof(yahoo_chatroom_info)); + tail = temp; + + ((yahoo_chatroom_info *)(temp->data))->type = get_xml_chatroom_info(content, "type=\""); + ((yahoo_chatroom_info *)(temp->data))->id = atoi(get_xml_chatroom_info(content, "id=\"")); + ((yahoo_chatroom_info *)(temp->data))->name = get_xml_chatroom_info(content, "name=\""); + ((yahoo_chatroom_info *)(temp->data))->topic = get_xml_chatroom_info(content, "topic=\""); + + /* find all lobbys of a chat room */ + + content = strchr(content+1, '<'); + while(*(content + 1) != '/') { + child = calloc(1, sizeof(YList)); + child->data = calloc(1, sizeof(yahoo_lobby_info)); + + ((yahoo_lobby_info *)child->data)->count = atoi(get_xml_chatroom_info(content, "count=\"")); + ((yahoo_lobby_info *)child->data)->users = atoi(get_xml_chatroom_info(content, "users=\"")); + ((yahoo_lobby_info *)child->data)->voices = atoi(get_xml_chatroom_info(content, "voices=\"")); + ((yahoo_lobby_info *)child->data)->webcams = atoi(get_xml_chatroom_info(content, "webcams=\"")); + + /* prev is used as a pointer to the the lobby*/ + tail->prev = child; + tail = child; + + content = strchr(content+1, '<'); + } + + list_ptr->next = temp; + list_ptr = temp; + + content = strchr(content+1, '<'); + } + + /* Traverse the structure and print them out */ + traverse_room_list(room_list->next); + + } else { + /* Create a head node */ + room_list = calloc(1, sizeof(YList)); + list_ptr = room_list; + + while(stack_ptr >= 0) { + /* prev is used as a pointer linked with its child categories */ + + /* Find the id */ + temp = calloc(1, sizeof(YList)); + temp->data = calloc(1, sizeof(yahoo_chatroom_category)); + header = strchr(content, '"'); + tailer = strchr(header+1, '"'); + *tailer = '\0'; + ((yahoo_chatroom_category *)temp->data)->id = atoi(strdup(header + 1)); + + /* Find the name*/ + header = strchr(tailer+1, '"'); + tailer = strchr(header+1, '"'); + *tailer = '\0'; + ((yahoo_chatroom_category *)temp->data)->name = strdup(header + 1); + ((yahoo_chatroom_category *)temp->data)->room_list = NULL; + + content = strchr(tailer+1, '>'); + if(child_mode == 1) { + list_ptr->prev = temp; + list_ptr = temp; + cat_stack[stack_ptr] = temp; + child_mode = 0; + } else { + list_ptr->next = temp; + list_ptr = temp; + cat_stack[stack_ptr] = temp; + } + + if (*(content-1) != '/') { + stack_ptr ++; + child_mode = 1; + } + + /* find the next category */ + content = strchr(content, '<'); + while (*(content+1) == '/' && stack_ptr >= 0) { + stack_ptr --; + list_ptr = cat_stack[stack_ptr]; + content = strchr(content + 1, '<'); + } + } + + /* Traverse the structure and print them out */ + traverse_cat_list(room_list->next, 0); + } } static void ext_yahoo_chat_join(int id, const char *me, const char *room, const char * topic, YList *members, void *fd) @@ -1444,8 +1608,23 @@ int roomid; roomid = atoi(copy); yahoo_get_chatrooms(ylad->id, roomid); + } else if(!strncasecmp(cmd, "CHR", strlen("CHR"))) { + int roomid; + void *ext_data; + roomid = atoi(copy); + YList *list = yahoo_get_chat_room_list(ylad->id, roomid, ext_data); + if(list) { + if(roomid == 0) + traverse_cat_list(list, 0); + else + traverse_room_list(list); + } + } else if(!strncasecmp(cmd, "CHJ", strlen("CHJ"))) { + /* Command Format "CHJ roomid roomname" */ char *roomid, *roomname; + char country[] = "us"; + char language[] = "en-us"; /* Linux, FreeBSD, Solaris:1 */ /* 1600326591 */ roomid = copy; @@ -1456,24 +1635,38 @@ } roomname = copy; if(roomid && roomname) { - yahoo_chat_logon(ylad->id, NULL, roomname, roomid); + yahoo_chat_logon(ylad->id, NULL, roomname, roomid, country, language); } } else if(!strncasecmp(cmd, "CHM", strlen("CHM"))) { + /* Command Format "CHM roomname msg" */ char *msg, *roomname; roomname = copy; - tmp = strstr(copy, " "); + tmp = strchr(copy, ' '); if(tmp) { *tmp = '\0'; - copy = tmp+2; + copy = tmp+1; } msg = copy; if(roomname && msg) { yahoo_chat_message(ylad->id, NULL, roomname, msg, 1, 0); } + } else if(!strncasecmp(cmd, "CHI", strlen("CHI"))) { + /* Ignore a member in the chat room, Command Format "CHI user_to_be_ignored" */ + char *user; + user = copy; + yahoo_chat_ignore(ylad->id, NULL, user, 1); + + } else if(!strncasecmp(cmd, "CHU", strlen("CHU"))) { + /* Unignore a member in the chat room, Command Format "CHI user_to_be_ignored" */ + char *user; + user = copy; + yahoo_chat_ignore(ylad->id, NULL, user, 0); + } else if(!strncasecmp(cmd, "CHX", strlen("CHX"))) { yahoo_chat_logoff(ylad->id, NULL); + } else if(!strncasecmp(cmd, "STA", strlen("STA"))) { if(isdigit(copy[0])) { state = (enum yahoo_status)atoi(copy); @@ -1853,6 +2046,7 @@ yc.ext_yahoo_conf_userjoin = ext_yahoo_conf_userjoin; yc.ext_yahoo_conf_userleave = ext_yahoo_conf_userleave; yc.ext_yahoo_conf_message = ext_yahoo_conf_message; + yc.ext_yahoo_chat_verify = ext_yahoo_chat_verify; yc.ext_yahoo_chat_cat_xml = ext_yahoo_chat_cat_xml; yc.ext_yahoo_chat_join = ext_yahoo_chat_join; yc.ext_yahoo_chat_userjoin = ext_yahoo_chat_userjoin; Modified: trunk/libyahoo2/src/yahoo2.h =================================================================== --- trunk/libyahoo2/src/yahoo2.h 2010-08-05 03:36:23 UTC (rev 380) +++ trunk/libyahoo2/src/yahoo2.h 2010-08-13 20:15:45 UTC (rev 381) @@ -139,10 +139,12 @@ void yahoo_get_chatrooms(int id, int chatroomid); /* join room with specified roomname and roomid */ void yahoo_chat_logon(int id, const char *from, const char *room, - const char *roomid); + const char *roomid, const char *country, const char *language); /* Send message "msg" to room with specified roomname, msgtype is 1-normal message or 2-/me mesage */ void yahoo_chat_message(int id, const char *from, const char *room, const char *msg, const int msgtype, const int utf8); +/* Ignore a contact in the chat room, ignore = 1 represents ignore and ignore = 0 represents unignore */ + void yahoo_chat_ignore(int id, const char *from, const char *user, int ignore); /* Log off chat */ void yahoo_chat_logoff(int id, const char *from); Modified: trunk/libyahoo2/src/yahoo2_callbacks.h =================================================================== --- trunk/libyahoo2/src/yahoo2_callbacks.h 2010-08-05 03:36:23 UTC (rev 380) +++ trunk/libyahoo2/src/yahoo2_callbacks.h 2010-08-13 20:15:45 UTC (rev 381) @@ -238,6 +238,16 @@ const char *me, const char *who, const char *room); /* + * Name: ext_yahoo_chat_cat_verify + * Called when user log into chat room, client will receive a image + * while user needs to type in the characters in the image to verify + * Params: + * url - the URL of the image for verification + * vcode - the characters which is typed in by the user + */ + void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_verify) (const char *url, char *vcode); + +/* * Name: ext_yahoo_chat_cat_xml * Called when ? * Params: Modified: trunk/libyahoo2/src/yahoo2_types.h =================================================================== --- trunk/libyahoo2/src/yahoo2_types.h 2010-08-05 03:36:23 UTC (rev 380) +++ trunk/libyahoo2/src/yahoo2_types.h 2010-08-13 20:15:45 UTC (rev 381) @@ -28,6 +28,8 @@ extern "C" { #endif +#define YMSG_VERSION "9.0.0.2152" + enum yahoo_service { /* these are easier to see in hex */ YAHOO_SERVICE_LOGON = 1, YAHOO_SERVICE_LOGOFF, @@ -229,7 +231,8 @@ YAHOO_CONNECTION_WEBCAM, YAHOO_CONNECTION_CHATCAT, YAHOO_CONNECTION_SEARCH, - YAHOO_CONNECTION_AUTH + YAHOO_CONNECTION_AUTH, + YAHOO_CONNECTION_CAPTCHA }; enum yahoo_webcam_direction_type { @@ -302,6 +305,8 @@ void *server_settings; struct yahoo_process_status_entry *half_user; + + YList *chat_room_list; }; struct yab { @@ -324,6 +329,26 @@ struct yab *yab_entry; }; + typedef struct yahoo_chatroom_category{ + int id; + char *name; + YList *room_list; + } yahoo_chatroom_category; + + typedef struct yahoo_chatroom{ + char *type; + int id; + char *name; + char *topic; + } yahoo_chatroom_info; + + typedef struct yahoo_lobby{ + int count; + int users; + int voices; + int webcams; + } yahoo_lobby_info; + enum yahoo_search_type { YAHOO_SEARCH_KEYWORD = 0, YAHOO_SEARCH_YID, @@ -390,6 +415,19 @@ int f213; /* 213 state */ }; + typedef struct pair{ + char *name; + char *value; + }namevalue_pair; + + typedef struct{ + char *http_version; + char *status_code; + YList *headers; + char *content; + }http_data; + + #ifdef __cplusplus } #endif Modified: trunk/libyahoo2/src/yahoo_httplib.c =================================================================== --- trunk/libyahoo2/src/yahoo_httplib.c 2010-08-05 03:36:23 UTC (rev 380) +++ trunk/libyahoo2/src/yahoo_httplib.c 2010-08-13 20:15:45 UTC (rev 381) @@ -61,6 +61,83 @@ extern enum yahoo_log_level log_level; +char *yahoo_http_get_header_value(http_data data, char *field) +{ + YList *ptr = data.headers; + while(ptr != NULL) { + if(!strcmp(field, ((struct pair *)(ptr->data))->name)) + return ((struct pair *)(ptr->data))->value; + ptr = ptr->next; + } + return NULL; +} + +void yahoo_get_http_data(http_data data) +{ + YList *ptr = data.headers; + printf("%s, %s\n", data.http_version, data.status_code); + while(ptr != NULL) { + printf("%s : %s\n", ((struct pair *)(ptr->data))->name, ((struct pair *)(ptr->data))->value); + ptr = ptr->next; + } + printf("%s\n", data.content); +} + +void yahoo_set_http_data(char *input, int length, http_data *struct_packet) +{ + char *head, *tail; + char *raw_packet = strdup(input); + namevalue_pair *temp_header; + YList *temp_ylist; + + struct_packet->headers = NULL; + + /* Get HTTP version and the status code */ + struct_packet->http_version = y_new(char, 4); + struct_packet->status_code = y_new(char, 4); + sscanf(raw_packet, "%*[^/]/%s %s", struct_packet->http_version, struct_packet->status_code); + + head = strstr(raw_packet, "\r\n"); + head = head + 2; + while(*head != '\r' || *(head+1) != '\n') { + temp_header = y_new(struct pair, 1); + temp_ylist = y_new(struct _YList, 1); + + tail = strchr(head, ':'); + *tail = '\0'; + temp_header->name = strdup(head); + + head = tail+2; + tail = strstr(head, "\r\n"); + *tail = '\0'; + temp_header->value = strdup(head); + + struct_packet->headers = y_list_append(struct_packet->headers, temp_header); + + head = tail+2; + } + head += 2; + tail = raw_packet + length; + *tail = '\0'; + struct_packet->content = strdup(head); +} + +void yahoo_free_http_data(http_data *http_pkt) +{ + YList *rm; + FREE(http_pkt->http_version); + FREE(http_pkt->status_code); + + while(http_pkt->headers) { + rm = http_pkt->headers; + FREE(((namevalue_pair *)(http_pkt->headers->data))->name); + FREE(((namevalue_pair *)(http_pkt->headers->data))->value); + FREE(http_pkt->headers->data); + http_pkt->headers = y_list_remove_link(http_pkt->headers, http_pkt->headers); + y_list_free_1(rm); + } +} + int yahoo_tcp_readline(char *ptr, int maxlen, void *fd) { int n, rc; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-08-05 03:36:30
|
Revision: 380 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=380&view=rev Author: siddheshp Date: 2010-08-05 03:36:23 +0000 (Thu, 05 Aug 2010) Log Message: ----------- NULL pointer dereference fixes by Wilmer van der Gaast Modified Paths: -------------- trunk/libyahoo2/src/libyahoo2.c Modified: trunk/libyahoo2/src/libyahoo2.c =================================================================== --- trunk/libyahoo2/src/libyahoo2.c 2010-07-27 02:48:56 UTC (rev 379) +++ trunk/libyahoo2/src/libyahoo2.c 2010-08-05 03:36:23 UTC (rev 380) @@ -4935,6 +4935,9 @@ static void yahoo_remove_active_transfer(struct send_file_data *sfd) { + if (sfd == NULL) + return; + active_file_transfers = y_list_remove(active_file_transfers, sfd); free(sfd->id); free(sfd->who); @@ -5095,7 +5098,7 @@ else { YAHOO_CALLBACK(ext_yahoo_file_transfer_done) (yid->yd->client_id, YAHOO_FILE_TRANSFER_UNKNOWN, - sfd->data); + sfd ? sfd->data : NULL); yahoo_remove_active_transfer(sfd); } @@ -5151,7 +5154,7 @@ else { YAHOO_CALLBACK(ext_yahoo_file_transfer_done) (yid->yd->client_id, YAHOO_FILE_TRANSFER_UNKNOWN, - sfd->data); + sfd ? sfd->data : NULL); yahoo_remove_active_transfer(sfd); } @@ -5266,7 +5269,7 @@ else if (!sfd || action == YAHOO_FILE_TRANSFER_REJECT) { YAHOO_CALLBACK(ext_yahoo_file_transfer_done) (yd->client_id, YAHOO_FILE_TRANSFER_REJECT, - sfd->data); + sfd ? sfd->data : NULL); yahoo_remove_active_transfer(sfd); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ra...@us...> - 2010-07-27 02:49:03
|
Revision: 379 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=379&view=rev Author: rayvd Date: 2010-07-27 02:48:56 +0000 (Tue, 27 Jul 2010) Log Message: ----------- Changes from 1.0.1 release. Modified Paths: -------------- trunk/libyahoo2-htdocs/ChangeLog trunk/libyahoo2-htdocs/NEWS trunk/libyahoo2-htdocs/index.shtml Modified: trunk/libyahoo2-htdocs/ChangeLog =================================================================== --- trunk/libyahoo2-htdocs/ChangeLog 2010-07-27 02:46:23 UTC (rev 378) +++ trunk/libyahoo2-htdocs/ChangeLog 2010-07-27 02:48:56 UTC (rev 379) @@ -1,7 +1,3 @@ -* Mon Jul 26 2010 Ray Van Dolson <ra...@bl...> -- Utilizing Yahoo provided server names (siddheshp's commits 370-372) -- Upped version number to 1.0.1 - * Tue Apr 20 2010 Siddhesh Poyarekar <sid...@gm...> - YMSG16 auth support. Breaks all old apps - Make callback struct mandatory Modified: trunk/libyahoo2-htdocs/NEWS =================================================================== --- trunk/libyahoo2-htdocs/NEWS 2010-07-27 02:46:23 UTC (rev 378) +++ trunk/libyahoo2-htdocs/NEWS 2010-07-27 02:48:56 UTC (rev 379) @@ -1,9 +1,3 @@ -* 26-Jul-2010 - -Releaseing 1.0.1 to resolve issue with Yahoo retiring or disabling -the default server hard-coded into libyahoo2. See the ChangeLog -for additional details. - * 20-Apr-2010 Releasing 1.0.0 to send out YMSG16 support into the wild. This breaks Modified: trunk/libyahoo2-htdocs/index.shtml =================================================================== --- trunk/libyahoo2-htdocs/index.shtml 2010-07-27 02:46:23 UTC (rev 378) +++ trunk/libyahoo2-htdocs/index.shtml 2010-07-27 02:48:56 UTC (rev 379) @@ -10,7 +10,7 @@ <!--#include virtual="links.shtml" --> <div class="content"> <p> -libyahoo2 version 1.0.1 - 26 Jul 2010 +libyahoo2 version 1.0.0 - 20 Apr 2010 </p> <p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ra...@us...> - 2010-07-27 02:46:29
|
Revision: 378 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=378&view=rev Author: rayvd Date: 2010-07-27 02:46:23 +0000 (Tue, 27 Jul 2010) Log Message: ----------- Tagging for 1.0.1 Added Paths: ----------- tags/v1_0_1/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ra...@us...> - 2010-07-27 02:45:21
|
Revision: 377 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=377&view=rev Author: rayvd Date: 2010-07-27 02:45:15 +0000 (Tue, 27 Jul 2010) Log Message: ----------- Botched this tag. Removed Paths: ------------- tags/v1_0_1/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ra...@us...> - 2010-07-27 02:38:40
|
Revision: 376 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=376&view=rev Author: rayvd Date: 2010-07-27 02:38:33 +0000 (Tue, 27 Jul 2010) Log Message: ----------- Tagging for 1.0.1 from branch. Added Paths: ----------- tags/v1_0_1/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ra...@us...> - 2010-07-27 02:35:13
|
Revision: 375 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=375&view=rev Author: rayvd Date: 2010-07-27 02:35:07 +0000 (Tue, 27 Jul 2010) Log Message: ----------- Updated website for 1.0.1 release. Modified Paths: -------------- trunk/libyahoo2-htdocs/ChangeLog trunk/libyahoo2-htdocs/NEWS trunk/libyahoo2-htdocs/index.shtml Modified: trunk/libyahoo2-htdocs/ChangeLog =================================================================== --- trunk/libyahoo2-htdocs/ChangeLog 2010-07-27 01:08:07 UTC (rev 374) +++ trunk/libyahoo2-htdocs/ChangeLog 2010-07-27 02:35:07 UTC (rev 375) @@ -1,3 +1,7 @@ +* Mon Jul 26 2010 Ray Van Dolson <ra...@bl...> +- Utilizing Yahoo provided server names (siddheshp's commits 370-372) +- Upped version number to 1.0.1 + * Tue Apr 20 2010 Siddhesh Poyarekar <sid...@gm...> - YMSG16 auth support. Breaks all old apps - Make callback struct mandatory Modified: trunk/libyahoo2-htdocs/NEWS =================================================================== --- trunk/libyahoo2-htdocs/NEWS 2010-07-27 01:08:07 UTC (rev 374) +++ trunk/libyahoo2-htdocs/NEWS 2010-07-27 02:35:07 UTC (rev 375) @@ -1,3 +1,9 @@ +* 26-Jul-2010 + +Releaseing 1.0.1 to resolve issue with Yahoo retiring or disabling +the default server hard-coded into libyahoo2. See the ChangeLog +for additional details. + * 20-Apr-2010 Releasing 1.0.0 to send out YMSG16 support into the wild. This breaks Modified: trunk/libyahoo2-htdocs/index.shtml =================================================================== --- trunk/libyahoo2-htdocs/index.shtml 2010-07-27 01:08:07 UTC (rev 374) +++ trunk/libyahoo2-htdocs/index.shtml 2010-07-27 02:35:07 UTC (rev 375) @@ -10,7 +10,7 @@ <!--#include virtual="links.shtml" --> <div class="content"> <p> -libyahoo2 version 1.0.0 - 20 Apr 2010 +libyahoo2 version 1.0.1 - 26 Jul 2010 </p> <p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ra...@us...> - 2010-07-27 01:08:13
|
Revision: 374 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=374&view=rev Author: rayvd Date: 2010-07-27 01:08:07 +0000 (Tue, 27 Jul 2010) Log Message: ----------- Branching for 1.0.1 Added Paths: ----------- branches/RELEASE_1_0_1_BRANCH/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-06-02 20:55:31
|
Revision: 373 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=373&view=rev Author: siddheshp Date: 2010-06-02 20:55:25 +0000 (Wed, 02 Jun 2010) Log Message: ----------- - Set 5050 as the default port for the sample_client - Actually make the fallback hosts and ports work Modified Paths: -------------- trunk/libyahoo2/src/libyahoo2.c trunk/libyahoo2/src/sample_client.c Modified: trunk/libyahoo2/src/libyahoo2.c =================================================================== --- trunk/libyahoo2/src/libyahoo2.c 2010-06-02 20:13:01 UTC (rev 372) +++ trunk/libyahoo2/src/libyahoo2.c 2010-06-02 20:55:25 UTC (rev 373) @@ -1726,7 +1726,6 @@ ccd = y_new0(struct connect_callback_data, 1); ccd->yd = yd; - ccd->server_i = -1; host = yss->pager_host; @@ -3610,7 +3609,7 @@ if (fallback_ports[ccd->i]) { char *host = yss->pager_host; - if (!host || ccd->server_i >= 0) + if (!host) host = yss->pager_host_list[ccd->server_i]; yss->pager_port = fallback_ports[ccd->i++]; @@ -3620,19 +3619,17 @@ if (tag > 0) ccd->tag = tag; - } else if (yss->pager_host_list && + } else if (yss->pager_host_list + && yss->pager_host_list[ccd->server_i]) { - (ccd->server_i < 0 - || yss->pager_host_list[ccd->server_i])) { - - if (ccd->server_i < 0) - ccd->server_i++; - /* Get back to the default port */ yss->pager_port = pager_port; + ccd->server_i++; + LOG(("Fallback: Connecting to %s:%d", yss->pager_host_list[ccd->server_i], yss->pager_port)); + ccd->i = 0; tag = YAHOO_CALLBACK(ext_yahoo_connect_async) (yd->client_id, - yss->pager_host_list[ccd->server_i++], yss->pager_port, + yss->pager_host_list[ccd->server_i], yss->pager_port, yahoo_connected, ccd, 0); } else { FREE(ccd); Modified: trunk/libyahoo2/src/sample_client.c =================================================================== --- trunk/libyahoo2/src/sample_client.c 2010-06-02 20:13:01 UTC (rev 372) +++ trunk/libyahoo2/src/sample_client.c 2010-06-02 20:55:25 UTC (rev 373) @@ -873,7 +873,7 @@ ylad->id = yahoo_init_with_attributes(ylad->yahoo_id, ylad->password, "local_host", local_host, - "pager_port", 23, + "pager_port", 5050, NULL); ylad->status = YAHOO_STATUS_OFFLINE; yahoo_login(ylad->id, login_mode); @@ -1184,7 +1184,7 @@ struct _conn *c; - LOG(("Connecting to %s", host)); + LOG(("Connecting to %s:%d", host, port)); if(!(server = gethostbyname(host))) { errno=h_errno; @@ -1240,7 +1240,7 @@ ext_yahoo_close(c); - callback(NULL, 0, data); + callback(NULL, errno, data); return -1; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-06-02 20:13:07
|
Revision: 372 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=372&view=rev Author: siddheshp Date: 2010-06-02 20:13:01 +0000 (Wed, 02 Jun 2010) Log Message: ----------- Allow libyahoo2 to try servers from a list rather than just one. A future enhancement would be to move these servers into a configuration file. The old behaviour of trying just one server still persists, but an implementation can have only one of the two. Effectively, if the implementation does not provide a pager_host, then the hard-coded host_list is used. The following pager hosts are being used: scs.msg.yahoo.com scsa.msg.yahoo.com scsb.msg.yahoo.com scsc.msg.yahoo.com List flicked from: http://help.yahoo.com/l/in/yahoo/messenger/messenger10/messenger/mstafireconfig.html;_ylt=AhjrK1VzeHcy30osBr_q4od143dG Modified Paths: -------------- trunk/libyahoo2/src/libyahoo2.c Modified: trunk/libyahoo2/src/libyahoo2.c =================================================================== --- trunk/libyahoo2/src/libyahoo2.c 2010-05-23 09:47:22 UTC (rev 371) +++ trunk/libyahoo2/src/libyahoo2.c 2010-06-02 20:13:01 UTC (rev 372) @@ -134,7 +134,12 @@ } /* default values for servers */ -static char pager_host[] = "scs.msg.yahoo.com"; +static char *default_pager_hosts[] = { "scs.msg.yahoo.com", + "scsa.msg.yahoo.com", + "scsb.msg.yahoo.com", + "scsc.msg.yahoo.com", + NULL}; + static int pager_port = 5050; static int fallback_ports[] = { 23, 25, 80, 20, 119, 8001, 8002, 5050, 0 }; @@ -152,6 +157,7 @@ struct yahoo_data *yd; int tag; int i; + int server_i; }; struct yahoo_pair { @@ -210,6 +216,7 @@ char *webcam_description; char *local_host; int conn_type; + char **pager_host_list; }; static void yahoo_process_ft_connection(struct yahoo_input_data *yid, int over); @@ -226,7 +233,12 @@ struct yahoo_server_settings *yss = y_new0(struct yahoo_server_settings, 1); - yss->pager_host = strdup(pager_host); + /* Give preference to the default host list + * Make sure that only one of the two is set at any time + */ + yss->pager_host = NULL; + yss->pager_host_list = default_pager_hosts; + yss->pager_port = pager_port; yss->filetransfer_host = strdup(filetransfer_host); yss->filetransfer_port = filetransfer_port; @@ -245,6 +257,7 @@ char *key; char *svalue; int nvalue; + char **pvalue; while (1) { key = va_arg(ap, char *); @@ -255,6 +268,12 @@ svalue = va_arg(ap, char *); free(yss->pager_host); yss->pager_host = strdup(svalue); + yss->pager_host_list = NULL; + } else if (!strcmp(key, "pager_host_list")) { + pvalue = va_arg(ap, char **); + yss->pager_host_list = pvalue; + free(yss->pager_host); + yss->pager_host = NULL; } else if (!strcmp(key, "pager_port")) { nvalue = va_arg(ap, int); yss->pager_port = nvalue; @@ -1695,6 +1714,8 @@ struct yahoo_server_settings *yss; int tag; + char *host; + struct yahoo_input_data *yid = y_new0(struct yahoo_input_data, 1); yid->yd = yd; yid->type = YAHOO_CONNECTION_PAGER; @@ -1705,9 +1726,15 @@ ccd = y_new0(struct connect_callback_data, 1); ccd->yd = yd; + ccd->server_i = -1; + host = yss->pager_host; + + if (!host) + host = yss->pager_host_list[0]; + tag = YAHOO_CALLBACK(ext_yahoo_connect_async) (yd->client_id, - yss->pager_host, yss->pager_port, yahoo_connected, ccd, 0); + host, yss->pager_port, yahoo_connected, ccd, 0); /* * if tag <= 0, then callback has already been called @@ -3579,15 +3606,34 @@ struct yahoo_server_settings *yss = yd->server_settings; if (error) { + int tag; if (fallback_ports[ccd->i]) { - int tag; + char *host = yss->pager_host; + + if (!host || ccd->server_i >= 0) + host = yss->pager_host_list[ccd->server_i]; + yss->pager_port = fallback_ports[ccd->i++]; tag = YAHOO_CALLBACK(ext_yahoo_connect_async) (yd-> - client_id, yss->pager_host, yss->pager_port, + client_id, host, yss->pager_port, yahoo_connected, ccd, 0); if (tag > 0) ccd->tag = tag; + } else if (yss->pager_host_list && + + (ccd->server_i < 0 + || yss->pager_host_list[ccd->server_i])) { + + if (ccd->server_i < 0) + ccd->server_i++; + + /* Get back to the default port */ + yss->pager_port = pager_port; + ccd->i = 0; + tag = YAHOO_CALLBACK(ext_yahoo_connect_async) (yd->client_id, + yss->pager_host_list[ccd->server_i++], yss->pager_port, + yahoo_connected, ccd, 0); } else { FREE(ccd); YAHOO_CALLBACK(ext_yahoo_login_response) (yd->client_id, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-05-23 09:47:28
|
Revision: 371 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=371&view=rev Author: siddheshp Date: 2010-05-23 09:47:22 +0000 (Sun, 23 May 2010) Log Message: ----------- Use the right server as default Modified Paths: -------------- trunk/libyahoo2/src/libyahoo2.c Modified: trunk/libyahoo2/src/libyahoo2.c =================================================================== --- trunk/libyahoo2/src/libyahoo2.c 2010-04-21 03:13:49 UTC (rev 370) +++ trunk/libyahoo2/src/libyahoo2.c 2010-05-23 09:47:22 UTC (rev 371) @@ -134,7 +134,7 @@ } /* default values for servers */ -static char pager_host[] = "cs101.msg.ac4.yahoo.com"; +static char pager_host[] = "scs.msg.yahoo.com"; static int pager_port = 5050; static int fallback_ports[] = { 23, 25, 80, 20, 119, 8001, 8002, 5050, 0 }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-04-21 03:13:56
|
Revision: 370 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=370&view=rev Author: siddheshp Date: 2010-04-21 03:13:49 +0000 (Wed, 21 Apr 2010) Log Message: ----------- Missed updating the version number in the footer Modified Paths: -------------- trunk/libyahoo2-htdocs/footer.shtml Modified: trunk/libyahoo2-htdocs/footer.shtml =================================================================== --- trunk/libyahoo2-htdocs/footer.shtml 2010-04-20 17:40:13 UTC (rev 369) +++ trunk/libyahoo2-htdocs/footer.shtml 2010-04-21 03:13:49 UTC (rev 370) @@ -6,5 +6,5 @@ alt="SourceForge Logo"></a> Copyright (c) 2002-2008 <a href="http://staff.ncst.ernet.in/1/1/philip/">Philip S Tellis</a><br> -libyahoo2 version 0.7.6 +libyahoo2 version 1.0.0 </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-04-20 17:40:20
|
Revision: 369 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=369&view=rev Author: siddheshp Date: 2010-04-20 17:40:13 +0000 (Tue, 20 Apr 2010) Log Message: ----------- Updated website to reflect 1.0.0 release Modified Paths: -------------- trunk/libyahoo2-htdocs/ChangeLog trunk/libyahoo2-htdocs/NEWS trunk/libyahoo2-htdocs/download.shtml trunk/libyahoo2-htdocs/index.shtml trunk/libyahoo2-htdocs/links.shtml Modified: trunk/libyahoo2-htdocs/ChangeLog =================================================================== --- trunk/libyahoo2-htdocs/ChangeLog 2010-04-20 17:17:50 UTC (rev 368) +++ trunk/libyahoo2-htdocs/ChangeLog 2010-04-20 17:40:13 UTC (rev 369) @@ -1,3 +1,11 @@ +* Tue Apr 20 2010 Siddhesh Poyarekar <sid...@gm...> +- YMSG16 auth support. Breaks all old apps +- Make callback struct mandatory +- Fixed Address book support +- YMSG16 file transfer +- YMSG16 buddy list and status messages +- Upped version number to 1.0.0 + * Sun Jun 01 2008 Ray Van Dolson <ra...@bl...> - Up version number to 0.7.7 - Enable _GNU_SOURCE macro for builds. This makes newer libc's provide us Modified: trunk/libyahoo2-htdocs/NEWS =================================================================== --- trunk/libyahoo2-htdocs/NEWS 2010-04-20 17:17:50 UTC (rev 368) +++ trunk/libyahoo2-htdocs/NEWS 2010-04-20 17:40:13 UTC (rev 369) @@ -1,3 +1,9 @@ +* 20-Apr-2010 + +Releasing 1.0.0 to send out YMSG16 support into the wild. This breaks +compatibility with older messengers, so they will have to be rewritten. +See release note on our Sourceforge.net project page for mor information + * 01-Jun-2008 Releasing 0.7.7 with fixes to enable compilation on Fedora 9 and newer Modified: trunk/libyahoo2-htdocs/download.shtml =================================================================== --- trunk/libyahoo2-htdocs/download.shtml 2010-04-20 17:17:50 UTC (rev 368) +++ trunk/libyahoo2-htdocs/download.shtml 2010-04-20 17:40:13 UTC (rev 369) @@ -13,7 +13,7 @@ <h2>Download Information</h2> <p> You can download all releases from the <a -href="http://sourceforge.net/project/showfiles.php?group_id=48554" +href="https://sourceforge.net/projects/libyahoo2/files/" title="Download all releases">project download page</a>, or get the <a href="http://cvs.sourceforge.net/cvstarballs/html-tmpl-java-cvsroot.tar.gz" Modified: trunk/libyahoo2-htdocs/index.shtml =================================================================== --- trunk/libyahoo2-htdocs/index.shtml 2010-04-20 17:17:50 UTC (rev 368) +++ trunk/libyahoo2-htdocs/index.shtml 2010-04-20 17:40:13 UTC (rev 369) @@ -10,12 +10,12 @@ <!--#include virtual="links.shtml" --> <div class="content"> <p> -libyahoo2 version 0.7.7 - 1 Jun 2008 +libyahoo2 version 1.0.0 - 20 Apr 2010 </p> <p> libyahoo2 is a C library interface to the new Yahoo! Messenger protocol. It -supports almost all current features of the protocol. +supports major features of the protocol. </p> <h2>Feature list</h2> @@ -37,7 +37,7 @@ <li>Reject buddy</li> <li>Buddy status updates</li> <li>Group renaming</li> - <li>Buddy Search (new in 0.7.3)</li> + <!-- li>Buddy Search (new in 0.7.3)</li --> </ul> </li> <li>Yahoo Address book support</li> @@ -57,13 +57,13 @@ <li>Send message to conference</li> </ul> </li> -<li>Yahoo Chat +<!-- li>Yahoo Chat <ul> <li>List chatrooms</li> <li>Join/leave a chatroom</li> <li>Chat :)</li> </ul> -</li> +</li --> <li>Webcam support <ul> <li>Support for viewing other people's webcams</li> @@ -110,6 +110,7 @@ <tr><td>Micha\xEBl Kamp</td> <td>miksun AT users . sourceforge . net</td> <td>Webcam Support</td></tr> <tr><td>Wayne Parrott</td> <td>wayne_p AT pacific . net . au</td> <td>Yahoo Chat</td></tr> <tr><td>Ray Van Dolson</td> <td>rayvd AT bludgeon . org</td> <td>Fedora Packager / Release</td></tr> +<tr><td>Siddhesh Poyarekar</td> <td>siddhesh . poyarekar AT gmail . com</td> <td>YMSG16 Support</td></tr> </table> <p> @@ -143,7 +144,7 @@ <h2>Copyright</h2> <p> -libyahoo2 is Copyright © 2002-2008 The libyahoo2 Project Authors and Contributors. +libyahoo2 is Copyright © 2002-2010 The libyahoo2 Project Authors and Contributors. Distribution is under the terms of the GNU General Public Licence. </p> Modified: trunk/libyahoo2-htdocs/links.shtml =================================================================== --- trunk/libyahoo2-htdocs/links.shtml 2010-04-20 17:17:50 UTC (rev 368) +++ trunk/libyahoo2-htdocs/links.shtml 2010-04-20 17:40:13 UTC (rev 369) @@ -6,7 +6,7 @@ title="The libyahoo2 home page">Home</a><br> <a href="http://sourceforge.net/projects/libyahoo2/" title="This is the project page on sourceforge. Submit bugs and patches here.">Project Page</a><br> -<a href="http://sourceforge.net/project/showfiles.php?group_id=58181" +<a href="https://sourceforge.net/projects/libyahoo2/files/" title="Download the latest release.">Download</a><br> <a href="http://lists.sourceforge.net/lists/listinfo/libyahoo2-users/" title="Ok, so I have a mailing list too. Why not?">Mailing List</a><br> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-04-20 17:17:56
|
Revision: 368 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=368&view=rev Author: siddheshp Date: 2010-04-20 17:17:50 +0000 (Tue, 20 Apr 2010) Log Message: ----------- Tagging releases in svn is ugly. Here goes 1.0.0 Added Paths: ----------- tags/v1_0_0/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-04-20 16:59:03
|
Revision: 367 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=367&view=rev Author: siddheshp Date: 2010-04-20 16:58:57 +0000 (Tue, 20 Apr 2010) Log Message: ----------- Update changelog Modified Paths: -------------- trunk/libyahoo2/ChangeLog Modified: trunk/libyahoo2/ChangeLog =================================================================== --- trunk/libyahoo2/ChangeLog 2010-04-20 16:26:49 UTC (rev 366) +++ trunk/libyahoo2/ChangeLog 2010-04-20 16:58:57 UTC (rev 367) @@ -1,3 +1,11 @@ +* Tue Apr 20 2010 Siddhesh Poyarekar <sid...@gm...> +- YMSG16 auth support. Breaks all old apps +- Make callback struct mandatory +- Fixed Address book support +- YMSG16 file transfer +- YMSG16 buddy list and status messages +- Upped version number to 1.0.0 + * Sun Jun 01 2008 Ray Van Dolson <ra...@bl...> - Up version number to 0.7.7 - Enable _GNU_SOURCE macro for builds. This makes newer libc's provide us This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sid...@us...> - 2010-04-20 16:26:55
|
Revision: 366 http://libyahoo2.svn.sourceforge.net/libyahoo2/?rev=366&view=rev Author: siddheshp Date: 2010-04-20 16:26:49 +0000 (Tue, 20 Apr 2010) Log Message: ----------- Bump version number, libtool release number. It's release time folks! Modified Paths: -------------- trunk/libyahoo2/configure.ac Modified: trunk/libyahoo2/configure.ac =================================================================== --- trunk/libyahoo2/configure.ac 2010-04-20 16:26:05 UTC (rev 365) +++ trunk/libyahoo2/configure.ac 2010-04-20 16:26:49 UTC (rev 366) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(libyahoo2, 0.7.7, lib...@li...) +AC_INIT(libyahoo2, 1.0.0, lib...@li...) AC_PREREQ(2.53) AC_CONFIG_SRCDIR(src/libyahoo2.c) AM_INIT_AUTOMAKE([1.6 dist-bzip2]) @@ -19,7 +19,7 @@ dnl # ? : +1 : ? == internal changes that doesn't break anything. dnl # dnl # CURRENT : REVISION : AGE -YAHOO2_CURRENT=10 # 1 - < 0.6 +YAHOO2_CURRENT=11 # 1 - < 0.6 # 2 - pre utf8 (0.6.2) # 3 - pre webcam/chat support (0.6.3) # 4 - 0.7.0 @@ -29,7 +29,8 @@ # 8 - remove_handler takes client id (0.7.4) # 9 - add_buddy takes buddy add message (0.7.5) # 10 - Windows support (0.7.6) -YAHOO2_REVISION=1 + # 11 - YMSG16 support (1.0.0) +YAHOO2_REVISION=0 YAHOO2_AGE=0 YAHOO2_VERSION="$YAHOO2_CURRENT:$YAHOO2_REVISION:$YAHOO2_AGE" AC_SUBST(YAHOO2_VERSION) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |