libdsm with meson support

Julien 'Lta' BALLET c63f14db95 --enable-debug now adds -O0 -g3 to compile flags hace 11 años
bin e9a8331d20 Adds is_guest and server_name to session API. Moves internal fd management functions to their own file hace 11 años
contrib 750924714e Adds OpenWall's Solar Designer md4/md5 implementation to the contrib folder, to replace OpenSSL hace 11 años
doc 3846ae0847 Replace usage of BDSM_DEBUG macro by BDSM_dbg hace 11 años
include e9a8331d20 Adds is_guest and server_name to session API. Moves internal fd management functions to their own file hace 11 años
m4 69bdc304e1 build: Initial autotools hace 11 años
src 6c66d0412f Adds an XXX message to fix discover hace 11 años
.gitignore d6f20b2e3d Adds conditionnal doxygen AM rules. Fix out-of-tree build hace 11 años
COPYING 85e1f29b76 Adds COPYING file hace 11 años
Makefile.am c63f14db95 --enable-debug now adds -O0 -g3 to compile flags hace 11 años
NOTES.md ab4a6299da Adds a NOTES file with some details/discoveries during the implementation hace 11 años
README.md c50216b54a Updates README with supported OSes/boxes hace 11 años
TODO.md 6222e61e0d Implements Open/Close of file hace 11 años
abi_version.sh 69bdc304e1 build: Initial autotools hace 11 años
bootstrap 42cc790f32 Adds a stylish bootstrap script hace 11 años
configure.ac c63f14db95 --enable-debug now adds -O0 -g3 to compile flags hace 11 años
libdsm.pc.in f038a27c73 Adds content to pkg-config file hace 11 años
package_version.sh 69bdc304e1 build: Initial autotools hace 11 años

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)

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 !