libdsm with meson support

Thomas Guillem 2d638774af add pthreads %!s(int64=10) %!d(string=hai) anos
bin 95d806dfab bin/dsm: don't use private members of bdsm structs %!s(int64=10) %!d(string=hai) anos
compat 1541cc01e2 Use AC_REPLACE_FUNC to provide compat/strlcpy when needed, closes #16 %!s(int64=10) %!d(string=hai) anos
contrib 33f4a0e556 Fix libtasn1 version detection. Move tasn1 compat types to config.h %!s(int64=11) %!d(string=hai) anos
doc 7c0c3a6d72 Add new website %!s(int64=11) %!d(string=hai) anos
include 87126870eb netbios_ns: add the group of the fileserver in entries %!s(int64=10) %!d(string=hai) anos
m4 2d638774af add pthreads %!s(int64=10) %!d(string=hai) anos
src 86131e9db1 netbios_ns: split entry_add into add and set_name %!s(int64=10) %!d(string=hai) anos
www 4fe28707b8 www: Fix background sprint path %!s(int64=11) %!d(string=hai) anos
.gitignore ad7ff8ccb4 Ignore sublime text files %!s(int64=11) %!d(string=hai) anos
AUTHORS c029567aa5 Add AUTHORS %!s(int64=10) %!d(string=hai) anos
COPYING dce710003c Update license and Readme %!s(int64=10) %!d(string=hai) anos
Makefile.am 2d638774af add pthreads %!s(int64=10) %!d(string=hai) anos
NOTES.md ab4a6299da Adds a NOTES file with some details/discoveries during the implementation %!s(int64=11) %!d(string=hai) anos
README.md dce710003c Update license and Readme %!s(int64=10) %!d(string=hai) anos
abi_version.sh 69bdc304e1 build: Initial autotools %!s(int64=11) %!d(string=hai) anos
bootstrap 42cc790f32 Adds a stylish bootstrap script %!s(int64=11) %!d(string=hai) anos
configure.ac 2d638774af add pthreads %!s(int64=10) %!d(string=hai) anos
libdsm.pc.in e2c5ac4ae1 Fix PKG-CONFIG generation %!s(int64=10) %!d(string=hai) anos
package_version.sh 69bdc304e1 build: Initial autotools %!s(int64=11) %!d(string=hai) anos

README.md

liBDSM

lib Defective SMb (libDSM) is a SMB protocol client implementation in pure C, with a lot less features than Samba and also a more permissive license (currently LGPL). The initial goal of this project is to have a lib with an iOS/Android compatible license to be intgrated into VLC for iOS and VLC for Android.

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 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/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 :)
  • 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 videolabs/libdsm
  • Make a feature branch
  • Commits your work there
  • Make a pull request
  • ...
  • Profit !