I submitted my GSoC proposal a little while ago, and would appreciate any reviews, questions and/or corrections. Thanks in advance. __________________________________________________________________ Title: CIFS client Implementation Student: obaro ogbo Abstract: CIFS is a widely used/implemented protocol, and implementing it will have huge benefit towards interoperability with other platforms. The linux cifs implementation and SNIA/CIFS Technical Reference will be used as a guide. This is not a port of the linux cifs, but will use code(especially CIFS data structures) and algorithms(encryption) from it. Content: Personal Profile * Full name - Ogbo Obaro * Preferred email address - obaro.ogbo@xxxxxxxxx * Summer Education - n/a * Employment - n/a * Schedule - Semester exams begin on June 1st through June 12th. * Time Allocated - 40 hours minimum. I would devote more than this though. * Brief bio - I began programming with Java, then learnt C before studying C++. I've done little PHP and Perl coding, but I'm presently trying to grasp Mixal (:) and Lisp. Participated in the Nigerian ACM/ICPC in 2007 and 2008 where my team came 3rd and 2nd respectively. My primary OS has been linux (Debian/Ubuntu) since 2006. I'm interested in low-level programming, but I've never really done any. I hope to get into kernel level development, understand compilers intimately and networking technologies. Project idea information * Project title - Implement a CIFS client * List of project goals 1. Implement haiku filesystem basic mount routines 2. Copy data structure and header files that handle protocol definitions 3. Implement Protocol Negotiation, User Authentication and other session requests 4. Implement Directory requests 5. Implement file requests 6. Include encryption routines 7. Write a GUI frontend to mount cifs volumes 8. Implement Unix Extensions. 9. Optimize and test * Description of project goals 1. Implement kernel_interface.cpp including cifs_mount(fs_volume* ...), etc 2. Linux's cifs implementation contains definitions for CIFS/SMB data structures which I'll largely use as is. 3. Implement LANMAN2.1 and NTLM 0.12 dialect negotiation, SESSION_SETUP, LOGOFF, TREE_CONNECT, TREE_DISCONNECT and File System Information queries. 4. Directory Requests are well documented in the SNIA/CIFS Technical Reference, I'll implement requests and actions for responses. 5. There are a large number of file commands, and I expect to spend the most time in this step due to that. Similar to Goal 4. 6. Implement NT and LM authentication modes and make default 7. Graphical frontend to mount a share with user providing servername, sharename, username and password. 8. These are small enhancements to enable Unix/Unix-like clients and servers exchange information used by both e.g symbolic links. 9. Mainly try to optimize features like read-ahead and write-behind, and test extensively * Why I want to work on this project - I hope to understand an Operating System in its entirety, preferrably one not fully developed, so I can follow design decisions and help code someday. Haiku provides this opportunity, and implementing this project will serve as an entry point. I enjoy learning new things, and I've already learnt so much from researching this project I can hardly wait to start. __________________________________________________________________________ -- Thnks