libdsm with meson support

Julien 'Lta' BALLET b9ed266ca2 minor doc update il y a 11 ans
bin 10cee1046b It appears that SMB directly over TCP is really similar to NBT, there isn't just any handshake, and the length field is supposed to be 24bits instead of 17, but we don't care il y a 11 ans
contrib 750924714e Adds OpenWall's Solar Designer md4/md5 implementation to the contrib folder, to replace OpenSSL il y a 11 ans
doc 3846ae0847 Replace usage of BDSM_DEBUG macro by BDSM_dbg il y a 11 ans
include b9ed266ca2 minor doc update il y a 11 ans
m4 50be948b78 build: remove iconv brain-damage il y a 11 ans
src 10cee1046b It appears that SMB directly over TCP is really similar to NBT, there isn't just any handshake, and the length field is supposed to be 24bits instead of 17, but we don't care il y a 11 ans
.gitignore d6f20b2e3d Adds conditionnal doxygen AM rules. Fix out-of-tree build il y a 11 ans
COPYING 85e1f29b76 Adds COPYING file il y a 11 ans
Makefile.am 10cee1046b It appears that SMB directly over TCP is really similar to NBT, there isn't just any handshake, and the length field is supposed to be 24bits instead of 17, but we don't care il y a 11 ans
NOTES.md ab4a6299da Adds a NOTES file with some details/discoveries during the implementation il y a 11 ans
README.md 3698a11cfa Updates README about OSX support il y a 11 ans
TODO.md 6222e61e0d Implements Open/Close of file il y a 11 ans
abi_version.sh 69bdc304e1 build: Initial autotools il y a 11 ans
bootstrap 42cc790f32 Adds a stylish bootstrap script il y a 11 ans
configure.ac 8fcec94d9f Detects if libiconv is in a separate lib or if it's inside of libc il y a 11 ans
libdsm.pc.in f038a27c73 Adds content to pkg-config file il y a 11 ans
package_version.sh 69bdc304e1 build: Initial autotools il y a 11 ans

README.md

liBDSM

A small project of SMB protocol client implementation in C, with a lot less features than Samba but also a more permissive license (WTFL/MIT). The initial goal of this project is to have a lib with an iOS compatible license to be intgrated into VLC for iOS.

The lib is provided as a static library or as a dynamically linked library. A few useless (yet) utils are also provided.

Building

Requirements

  • A Unix system with a bash-shell (i guess)
  • C99 C compiler
  • (GNU) Make
  • Autotools
  • libc with iconv
  • getopt_long

Most of it can be installed on Debian(-based) systems using

sudo apt-get install build-essential

HowTo

$> ./bootstrap
$> ./configure --prefix=/your/ass
$> make
$> make install # maybe

Goals

Here's a list of features i intend to support in this project :

  • NETBIOS
    • Basic bi-directionnal NETBIOS name resolution [Done]
    • Hacky LAN SMB servers discovery (Listing all the smb servers on the LAN, no WINS, etc.) [Done]
    • Basic NETBIOS Session transport layer [Done]
  • SMB
    • Support only required parts of 'NT LM 0.12' (aka CIFS?) dialect.
    • User based authentication [Done]
    • List Shares [Partial/Ugly]
    • Browse folders [Done/Ugly]
    • Read file [Done, can be improved :)]
    • No write, lock, RPCs, etc. [Hum]

Support

liBDSM has been tested/reported to work witht the following devices/OSes:

  • Windows 7
  • Windows 8
  • A cheap NAS whose name i can't remember :)
  • Guest Login on French Orange 'Livebox' (more testing is welcome as i don't have the box password)

OSX is not supported yet, since it doesn't seem to support Netbios transport. DirectTCP SMB is on the way, to fix this issue.

Feel free to contribute items to this list (or network trace of not working devices)

Contributing

  • Fork elthariel/libdsm
  • Make a feature branch
  • Commits your work there
  • Make a pull request
  • ...
  • Profit !