libdsm with meson support

Martin Storsjö 01736b3576 Remove stray tabs from Makefile.am 11 éve
bin e783acd8ce Use smb_buffer in smb_ntlm.c whenever possible 11 éve
contrib f1a2945c4a Reindent all code using astyle --style=ansi -s4 -SLYUH -m0 -k3 -c --mode=c -rn 11 éve
doc 3846ae0847 Replace usage of BDSM_DEBUG macro by BDSM_dbg 11 éve
include 6e91534b80 Maybe it might be a good idea not to skip the first byte of every file read packet (just maybe ...) 11 éve
m4 50be948b78 build: remove iconv brain-damage 11 éve
src afb7d72484 Fix ns_resolve documentation/code consistency 11 éve
.gitignore ad7ff8ccb4 Ignore sublime text files 11 éve
COPYING 85e1f29b76 Adds COPYING file 11 éve
Makefile.am 01736b3576 Remove stray tabs from Makefile.am 11 éve
NOTES.md ab4a6299da Adds a NOTES file with some details/discoveries during the implementation 11 éve
README.md 52a9d9a9be Update README.md 11 éve
TODO.md 6222e61e0d Implements Open/Close of file 11 éve
abi_version.sh 69bdc304e1 build: Initial autotools 11 éve
bootstrap 42cc790f32 Adds a stylish bootstrap script 11 éve
configure.ac b3384674f1 Non working GSS-API implementation 11 éve
libdsm.pc.in f038a27c73 Adds content to pkg-config file 11 éve
package_version.sh 69bdc304e1 build: Initial autotools 11 éve

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
  • GNU asn1 compiler/support library

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 supported features:

  • NETBIOS
    • Basic bi-directionnal NETBIOS name resolutio
    • 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
    • No write, lock, RPCs, etc. [Hum... yet]

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)
  • Samba
  • smbx (OSX new smb implementation)

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

TODO

  • HEAVILY refactor. Any help is welcome.

Contributing

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