# libdsm **Repository Path**: AndroidTony/libdsm ## Basic Information - **Project Name**: libdsm - **Description**: https://github.com/videolabs/libdsm.git - **Primary Language**: Unknown - **License**: LGPL-2.1 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-10 - **Last Updated**: 2024-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # liBDSM lib Defective SMb (__libDSM__) is a [SMB protocol](https://en.wikipedia.org/wiki/Server_Message_Block) client implementation in pure old __C__, with a _lot_ less features than [Samba](https://www.samba.org/) but with a much simpler, and a more permissive license (currently __LGPL__ + __proprietary__). The initial goal of this project is to have a library that can access most SMB shares to read files and that has a license compatible with the iOS/Android/WinRT appstores in order to integrate it into _VLC for iOS_ and _VLC for Android_. This library is also licensable under a proprietary license, if LGPL is not good enough for you. The lib is provided as a static library or as a dynamically linked library. A few useless (yet) utils are also provided, mostly for testing purpose. ## Features Here's a list of the currently supported features: * NETBIOS * Basic bi-directionnal NETBIOS name resolution * Hacky LAN SMB servers discovery (Listing all the smb servers on the LAN, no WINS, etc.) * Basic NETBIOS Session transport layer * SMB * Support only required parts of 'NT LM 0.12' (aka CIFS?) dialect. * User based authentication * List Shares * Browse folders * Read file * Write file * Delete file * Delete empty folder * Move and rename file/folder * Create new folder * No copy, lock, RPCs, etc. [Hum... yet] ## Support liBDSM has been tested/reported to work with the following devices/OSes: * Windows 7 * Windows 8/8.1 * Samba * smbX (OSX new smb implementation) * QNAP TS-212 * A cheap NAS whose name i can't remember :) Feel free to contribute items to this list (or network trace of not working devices) ## Building ### Requirements * A Unix system with a bash-compatible shell * C99 C compiler * (GNU) Make * Autotools * libc with iconv * getopt_long * GNU tasn1 compiler/support library The build dependencies can be installed on Debian(-based) systems using sudo apt-get install build-essential autoconf libtool pkg-config libtasn1-3-dev libtasn1-3-bin libbsd-dev ### HowTo $> ./bootstrap $> ./configure --prefix=/your/prefix $> make $> make install # maybe ## TODO * HEAVILY refactor. Any help is welcome. * Support more of the SMBv2 and v3 protocols. ## Contributing * Fork videolabs/libdsm * Make a feature branch * Commits your work there * Make a pull request * ... * Profit !