2005-12-25 05:03:51 +03:00
# include <libsmbclient.h>
# include <sys/stat.h>
# include <string.h>
# include <stdio.h>
# include <time.h>
# include "get_auth_data_fn.h"
/*
* This test is intended to ensure that the timestamps returned by
* libsmbclient are the same as timestamps returned by the local system . To
2010-04-13 22:07:11 +04:00
* test this , we assume a working Samba environment , and access the same
2005-12-25 05:03:51 +03:00
* file via SMB and locally ( or NFS ) .
*
*/
static int gettime ( const char * pUrl ,
const char * pLocalPath ) ;
int main ( int argc , char * argv [ ] )
{
if ( argc ! = 3 )
{
printf ( " usage: %s <file_url> <file_localpath> \n " , argv [ 0 ] ) ;
return 1 ;
}
gettime ( argv [ 1 ] , argv [ 2 ] ) ;
return 0 ;
}
static int gettime ( const char * pUrl ,
const char * pLocalPath )
{
struct stat st ;
2011-10-20 01:52:41 +04:00
char m_time [ 32 ] ;
char c_time [ 32 ] ;
char a_time [ 32 ] ;
2005-12-25 05:03:51 +03:00
smbc_init ( get_auth_data_fn , 0 ) ;
if ( smbc_stat ( pUrl , & st ) < 0 )
{
perror ( " smbc_stat " ) ;
return 1 ;
}
printf ( " SAMBA \n mtime:%lu/%s ctime:%lu/%s atime:%lu/%s \n " ,
2011-10-20 01:52:41 +04:00
st . st_mtime , ctime_r ( & st . st_mtime , m_time ) ,
st . st_ctime , ctime_r ( & st . st_ctime , c_time ) ,
st . st_atime , ctime_r ( & st . st_atime , a_time ) ) ;
2005-12-25 05:03:51 +03:00
2011-10-20 01:52:41 +04:00
/* check the stat on this file */
2005-12-25 05:03:51 +03:00
if ( stat ( pLocalPath , & st ) < 0 )
{
perror ( " stat " ) ;
return 1 ;
}
printf ( " LOCAL \n mtime:%lu/%s ctime:%lu/%s atime:%lu/%s \n " ,
2011-10-20 01:52:41 +04:00
st . st_mtime , ctime_r ( & st . st_mtime , m_time ) ,
st . st_ctime , ctime_r ( & st . st_ctime , c_time ) ,
st . st_atime , ctime_r ( & st . st_atime , a_time ) ) ;
2005-12-25 05:03:51 +03:00
return 0 ;
}