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 ] ;
2022-08-17 11:51:06 +03:00
2005-12-25 05:03:51 +03:00
smbc_init ( get_auth_data_fn , 0 ) ;
2022-08-17 11:51:06 +03:00
2005-12-25 05:03:51 +03:00
if ( smbc_stat ( pUrl , & st ) < 0 )
{
perror ( " smbc_stat " ) ;
return 1 ;
}
2022-08-17 11:51:06 +03:00
2015-09-04 17:40:25 +03:00
printf ( " SAMBA \n mtime:%lld/%s ctime:%lld/%s atime:%lld/%s \n " ,
( long long ) st . st_mtime , ctime_r ( & st . st_mtime , m_time ) ,
( long long ) st . st_ctime , ctime_r ( & st . st_ctime , c_time ) ,
( long long ) st . st_atime , ctime_r ( & st . st_atime , a_time ) ) ;
2022-08-17 11:51:06 +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 ;
}
2022-08-17 11:51:06 +03:00
2015-09-04 17:40:25 +03:00
printf ( " LOCAL \n mtime:%lld/%s ctime:%lld/%s atime:%lld/%s \n " ,
( long long ) st . st_mtime , ctime_r ( & st . st_mtime , m_time ) ,
( long long ) st . st_ctime , ctime_r ( & st . st_ctime , c_time ) ,
( long long ) st . st_atime , ctime_r ( & st . st_atime , a_time ) ) ;
2022-08-17 11:51:06 +03:00
2005-12-25 05:03:51 +03:00
return 0 ;
}