libdsm with meson support

Thomas Guillem 0d47a9fa72 netbios_ns: use sys/queue.h 10 vuotta sitten
bin 95d806dfab bin/dsm: don't use private members of bdsm structs 10 vuotta sitten
compat 1541cc01e2 Use AC_REPLACE_FUNC to provide compat/strlcpy when needed, closes #16 10 vuotta sitten
contrib 33f4a0e556 Fix libtasn1 version detection. Move tasn1 compat types to config.h 11 vuotta sitten
doc 7c0c3a6d72 Add new website 11 vuotta sitten
include 87126870eb netbios_ns: add the group of the fileserver in entries 10 vuotta sitten
m4 2c0c52f0a8 Add m4 files from gettext in order to have iconv.m4 working. Add a pkg-config related m4 file 11 vuotta sitten
src 0d47a9fa72 netbios_ns: use sys/queue.h 10 vuotta sitten
www 4fe28707b8 www: Fix background sprint path 11 vuotta sitten
.gitignore ad7ff8ccb4 Ignore sublime text files 11 vuotta sitten
AUTHORS c029567aa5 Add AUTHORS 10 vuotta sitten
COPYING dce710003c Update license and Readme 10 vuotta sitten
Makefile.am 8ca63e5036 netbios_ns: merge with netbios_ns_entry 10 vuotta sitten
NOTES.md ab4a6299da Adds a NOTES file with some details/discoveries during the implementation 11 vuotta sitten
README.md dce710003c Update license and Readme 10 vuotta sitten
abi_version.sh 69bdc304e1 build: Initial autotools 11 vuotta sitten
bootstrap 42cc790f32 Adds a stylish bootstrap script 11 vuotta sitten
configure.ac a9892a2743 Debug: add android log 10 vuotta sitten
libdsm.pc.in e2c5ac4ae1 Fix PKG-CONFIG generation 10 vuotta sitten
package_version.sh 69bdc304e1 build: Initial autotools 11 vuotta sitten

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 !