From Fedora Project Wiki

Line 17: Line 17:
#Project Name: Add Yahoo chat room support into Libyahoo2
#Project Name: Add Yahoo chat room support into Libyahoo2
#Idea page: [[https://fedoraproject.org/wiki/Summer_Coding_2010_ideas_-_Libyahoo2]]
#Idea page: [[https://fedoraproject.org/wiki/Summer_Coding_2010_ideas_-_Libyahoo2]]
#Libyahoo2 is a Yahoo messaging protocol library implemented in C. As the Yahoo! messaging protocol(YMSG) is updated to version 16, there are a number of differences between it and the protocol currently implemented in Libyahoo2. My project is to work on the chat room module of Libyahoo2 to get it to support YMSG 16. Much of the work needs to be done by studying protocol dumps of the windows based yahoo messenger with a new version and then interpreting and writing similar functionality.
Several messengers, including freehoo and ayttm which are in Fedora, is based on the Libyahoo2. So, if the Libyahoo2 doesn't updated to support the new version of YMSG 16, these clients will not be useful any longer.
In this project, C is the primary language in which the Libyahoo2 is implemented. Wireshark and Tcpdump are the common tools to capture packets to analysis the YMSG protocol. Automake and autoconfig are used for generating the configure and Makefile.
#Timeline:
#*Week 1(May 24 - May 31): Analyse the YMSG 16 protocol to find out the new features and changes.
#*Week 2(June 1 - June 7): Implement the function of getting chat room list.
#*Week 3(June 8 - June 14): Implement the function of joining a chat room
#*Week 4-5(June 15 - June 30): Implement the function of parsing the system messages
#*Week 6(July 1 - July 7): Implement the function of exchanging messages in a chat room
#*Until now, 90% of the work has been done.
#*Week 7(July 8 - July 14): Add keep alive message support.
#*Week 8(July 15 - July 21): Implement the function of leaving chat rooms
#*Week 9-10(July 22 - August 9): Debug previous work and capture the packages it sends out to verify their accuracy.
#About myself:I am on my first year of pursuing master's degree.
Our lab is focusing on building parallel NIDS on multi-core platforms, I did some work in it and based on it, I
built a high-performance parallel HTTP parser which can achieve at least 2Gbps line rate in a harsh environment.
I am experienced in C programming and familiar with network domain knowledge. Wireshark and tcpdump
are tools which are usually used, regular expressions are also used frequently in locating a particular
pattern when debugging the system. I have also read the HTTP and TCP RFCs and have the ability to learn
other protocols. Many of the skills used in this project is similar with that in my previous work. In conclusion,
I think I am the ideal one to work on this project.

Revision as of 14:16, 5 May 2010

About me

  1. Name: Kai Zhang
  2. Email: kay21s@gmail.com
  3. wiki username: kay21s
  4. IRC nickname:
  5. primary language: Chinese, It is fine with me to use English
  6. Located: China, My time zone is GMT+08:00 and I will work in afternoon and night.
  7. Work: I have not participated open-source project before.

However, with my classmates,we have build a NIDS system which is based on several open-source project. Such as Flex, Libnids, Libumem, Ntop, Nprobe and so on. I think it is a great thing to work on an open-source software and I feel excited at the thought of millions of people around the world will use the code I wrote. What's more, working with experienced mentors will make me progress.

About my project

  1. Project Name: Add Yahoo chat room support into Libyahoo2
  2. Idea page: [[1]]
  3. Libyahoo2 is a Yahoo messaging protocol library implemented in C. As the Yahoo! messaging protocol(YMSG) is updated to version 16, there are a number of differences between it and the protocol currently implemented in Libyahoo2. My project is to work on the chat room module of Libyahoo2 to get it to support YMSG 16. Much of the work needs to be done by studying protocol dumps of the windows based yahoo messenger with a new version and then interpreting and writing similar functionality.

Several messengers, including freehoo and ayttm which are in Fedora, is based on the Libyahoo2. So, if the Libyahoo2 doesn't updated to support the new version of YMSG 16, these clients will not be useful any longer. In this project, C is the primary language in which the Libyahoo2 is implemented. Wireshark and Tcpdump are the common tools to capture packets to analysis the YMSG protocol. Automake and autoconfig are used for generating the configure and Makefile.

  1. Timeline:
    • Week 1(May 24 - May 31): Analyse the YMSG 16 protocol to find out the new features and changes.
    • Week 2(June 1 - June 7): Implement the function of getting chat room list.
    • Week 3(June 8 - June 14): Implement the function of joining a chat room
    • Week 4-5(June 15 - June 30): Implement the function of parsing the system messages
    • Week 6(July 1 - July 7): Implement the function of exchanging messages in a chat room
    • Until now, 90% of the work has been done.
    • Week 7(July 8 - July 14): Add keep alive message support.
    • Week 8(July 15 - July 21): Implement the function of leaving chat rooms
    • Week 9-10(July 22 - August 9): Debug previous work and capture the packages it sends out to verify their accuracy.
  2. About myself:I am on my first year of pursuing master's degree.

Our lab is focusing on building parallel NIDS on multi-core platforms, I did some work in it and based on it, I built a high-performance parallel HTTP parser which can achieve at least 2Gbps line rate in a harsh environment. I am experienced in C programming and familiar with network domain knowledge. Wireshark and tcpdump are tools which are usually used, regular expressions are also used frequently in locating a particular pattern when debugging the system. I have also read the HTTP and TCP RFCs and have the ability to learn other protocols. Many of the skills used in this project is similar with that in my previous work. In conclusion, I think I am the ideal one to work on this project.