GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  FILESYS::SMBCLIENT (3)

.ds Aq ’

NAME

Filesys::SmbClient - Interface for access Samba filesystem with libsmclient.so

CONTENTS

SYNOPSIS



  use POSIX;
  use Filesys::SmbClient;
 
  my $smb = new Filesys::SmbClient(username  => "alian",
                                   password  => "speed",
                                   workgroup => "alian",
                                   debug     => 10);
 
  # Read a file
  my $fd = $smb->open("smb://jupiter/doc/general.css", 0666);
  while (defined(my $l= $smb->read($fd,50))) {print $l; }
  $smb->close(fd);
 
  # ...



See section EXAMPLE for others scripts.

DESCRIPTION

Provide interface to access routine defined in libsmbclient.so provided with Samba.

Since 3.0 release of this package, you need a least samba-3.0.2. For prior release of Samba, use Filesys::SmbClient version 1.x.

For old and 2.x release, this library is available on Samba source, but is not build by default. Do make bin/libsmbclient.so in sources directory of Samba to build this libraries. Then copy source/include/libsmbclient.h to /usr/local/samba/include and source/bin/libsmbclient.so to /usr/local/samba/lib before install this module.

If you want to use filehandle with this module, you need Perl 5.6 or later.

When a path is used, his scheme is :



  smb://server/share/rep/doc



VERSION

$Revision: 3.2 $

FONCTIONS

new %hash Init connection Hash can have this keys:
o username
o password
o workgroup
o debug
o flags : See set_flag

Return instance of Filesys::SmbClient on succes, die with error else.

Example:



  my $smb = new Filesys::SmbClient(username  => "alian",
                                   password  => "speed",
                                   workgroup => "alian",
                                   debug     => 10);



set_flag Set flag for smb connection. See _SMBCCTX->flags in libsmclient.h Flag can be:
SMB_CTX_FLAG_USE_KERBEROS
SMB_CTX_FLAG_FALLBACK_AFTER_KERBEROS
SMBCCTX_FLAG_NO_AUTO_ANONYMOUS_LOGON

    Tie Filesys::SmbClient filehandle

This didn’t work before 5.005_64. Why, I don’t know. When you have tied a filehandle with Filesys::SmbClient, you can call classic methods for filehandle: print, printf, seek, syswrite, getc, open, close, read. See perldoc for usage.

Example:



  local *FD;
  tie(*FD, Filesys::SmbClient);
  open(FD,"smb://jupiter/doc/test")
    or print "Cant open file:", $!, "\n";
  while(<FD>) { print $_; }
  close(FD);



or



  local *FD;
  tie(*FD, Filesys::SmbClient);
  open(FD,">smb://jupiter/doc/test")
    or print "Cant create file:", $!, "\n";
  print FD "Samba test","\n";
  printf FD "%s", "And that work !\n";
  close(FD);



    Directory

mkdir FILENAME, MODE Create directory $fname with permissions set to $mode. Return 1 on success, else 0 is return and errno and $! is set.

Example:



  $smb->mkdir("smb://jupiter/doc/toto",0666)
    or print "Error mkdir: ", $!, "\n";



rmdir FILENAME Erase directory $fname. Return 1 on success, else 0 is return and errno and $! is set. ($fname must be empty, else see rmdir_recurse).

Example:



  $smb->rmdir("smb://jupiter/doc/toto")
    or print "Error rmdir: ", $!, "\n";



rmdir_recurse FILENAME Erase directory $fname. Return 1 on success, else 0 is return and errno and $! is set. Il $fname is not empty, all files and dir will be deleted.

Example:



  $smb->rmdir_recurse("smb://jupiter/doc/toto")
    or print "Error rmdir_recurse: ", $!, "\n";



opendir FILENAME Open directory $fname. Return file descriptor on succes, else 0 is return and $! is set.
readdir FILEHANDLE Read a directory. In a list context, return the full content of the directory $fd, else return next element. Each elem is a name of a directory or files.

Return undef at end of directory.

Example:



  my $fd = $smb->opendir("smb://jupiter/doc");
  foreach my $n ($smb->readdir($fd)) {print $n,"\n";}
  close($fd);



readdir_struct FILEHANDLE Read a directory. In a list context, return the full content of the directory FILEHANDLE, else return next element. Each element is a ref to an array with type, name and comment. Type can be :
SMBC_WORKGROUP
SMBC_SERVER
SMBC_FILE_SHARE
SMBC_PRINTER_SHARE
SMBC_COMMS_SHARE
SMBC_IPC_SHARE
SMBC_DIR
SMBC_FILE
SMBC_LINK

Return undef at end of directory.

Example:



  my $fd = $smb->opendir("smb://jupiter/doc");
  while (my $f = $smb->readdir_struct($fd)) {
    if ($f->[0] == SMBC_DIR) {print "Directory ",$f->[1],"\n";}
    elsif ($f->[0] == SMBC_FILE) {print "File ",$f->[1],"\n";}
    # ...
  }
  close($fd);



closedir FILEHANDLE Close directory $fd.

    Files

stat FILENAME Stat a file FILENAME. Return a list with info on success, else an empty list is return and $! is set.

List is made with:
o device
o inode
o protection
o number of hard links
o user ID of owner
o group ID of owner
o device type (if inode device)
o total size, in bytes
o blocksize for filesystem I/O
o number of blocks allocated
o time of last access
o time of last modification
o time of last change

Example:



  my @tab = $smb->stat("smb://jupiter/doc/tata");
  if ($#tab == 0) { print "Erreur in stat:", $!, "\n"; }
  else {
    for (10..12) {$tab[$_] = localtime($tab[$_]);}
    print join("\n",@tab);
  }



fstat FILEHANDLE Like stat, but on a file handle
rename OLDNAME,NEWNAME Changes the name of a file; an existing file NEWNAME will be clobbered. Returns true for success, false otherwise, with $! set.

Example:



  $smb->rename("smb://jupiter/doc/toto","smb://jupiter/doc/tata")
    or print "Cant rename file:", $!, "\n";



unlink FILENAME Unlink FILENAME. Return 1 on success, else 0 is return and errno and $! is set.

Example:



  $smb->unlink("smb://jupiter/doc/test")
    or print "Cant unlink file:", $!, "\n";



open FILENAME
open FILENAME, MODE Open file $fname with perm $mode. Return file descriptor on success, else 0 is return and $! is set.

Example:



  my $fd = $smb->open("smb://jupiter/doc/test", 0666)
    or print "Cant read file:", $!, "\n";
 
  my $fd = $smb->open(">smb://jupiter/doc/test", 0666)
    or print "Cant create file:", $!, "\n";
 
  my $fd = $smb->open(">>smb://jupiter/doc/test", 0666)
    or print "Cant append to file:", $!, "\n";



read FILEHANDLE
read FILEHANDLE, LENGTH Read $count bytes of data on file descriptor $fd. It lenght is not set, 4096 bytes will be read.

Return buffer read on success, undef at end of file, -1 is return on error and $! is set.

FILEHANDLE must be open with open of this module.

write FILEHANDLE, $buf
write FILEHANDLE, @buf Write $buf or @buf on file descriptor $fd. Return number of bytes wrote, else -1 is return and errno and $! is set.

Example:



  my $fd = $smb->open(">smb://jupiter/doc/test", 0666)
    or print "Cant create file:", $!, "\n";
  $smb->write($fd, "A test of write call")
    or print $!,"\n";
  $smb->close($fd);



FILEHANDLE must be open with open of this module.

seek FILEHANDLE, POS Sets FILEHANDLE’s position, just like the fseek call of stdio. FILEHANDLE may be an expression whose value gives the name of the filehandle. The values for WHENCE is always SEEK_SET beacause others didn’t work on libsmbclient.so

FILEHANDLE must be open with open of this module.

close FILEHANDLE Close file FILEHANDLE. Return 0 on success, else -1 is return and errno and $! is set.
shutdown flag A wrapper around ‘libsmbclient’s ‘smbc_free_context’.

Close open files, release Samba connection, delete context, aquired during open_* calls.

Example:



    $smb->shutdown(0); # Gracefully close connection
    $sbm->shutdown(1); # Forcibly close files and connection



NOTE:
shutdown(1) may cause complaints about talloc memory
leaks, if there are currently no open files.

    Print method

unlink_print_job PRINTER_URL, IDJOB Remove job number IDJOB on printer PRINTER_URL
print_file DOCUMENT_URL, PRINTER_URL Print file DOCUMENT_URL on PRINTER_URL

TODO

o chown
o chmod
o open_print_job
o telldir
o lseekdir

EXAMPLE

This module come with some scripts:
t/*.t Just for check that this module is ok :-)
smb2www-2.cgi A CGI interface with these features:
o browse workgroup ,share, dir
o read file
o upload file
o create directory
o unlink file, directory

COPYRIGHT

The Filesys-SmbClient module is Copyright (c) 1999-2003 Alain BARBET, France, alian at cpan.org. All rights reserved.

You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.

POD ERRORS

Hey! <B>The above document had some coding errors, which are explained below:B>
Around line 807: ’=item’ outside of any ’=over’
Around line 823: You forgot a ’=back’ before ’=head2’
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 SMBCLIENT (3) 2012-12-04

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.