2011-10-19 15:56:42 +04:00
# include "config.h"
2005-03-31 20:26:15 +04:00
# include <stdio.h>
# include <unistd.h>
# include <string.h>
# include <time.h>
# include <libsmbclient.h>
# include "get_auth_data_fn.h"
int main ( int argc , char * argv [ ] )
{
int debug = 0 ;
2011-10-20 01:52:41 +04:00
char m_time [ 32 ] ;
char c_time [ 32 ] ;
char a_time [ 32 ] ;
const char * pSmbPath = NULL ;
2005-06-01 00:12:34 +04:00
time_t t = time ( NULL ) ;
2005-03-31 20:26:15 +04:00
struct stat st ;
struct utimbuf utimbuf ;
if ( argc = = 1 )
{
pSmbPath = " smb://RANDOM/Public/small " ;
}
else if ( argc = = 2 )
{
pSmbPath = argv [ 1 ] ;
}
else if ( argc = = 3 )
{
pSmbPath = argv [ 1 ] ;
2005-06-01 00:12:34 +04:00
t = ( time_t ) strtol ( argv [ 2 ] , NULL , 10 ) ;
2005-03-31 20:26:15 +04:00
}
else
{
printf ( " usage: "
2005-06-01 00:12:34 +04:00
" %s [ smb://path/to/file [ mtime ] ] \n " ,
2005-03-31 20:26:15 +04:00
argv [ 0 ] ) ;
return 1 ;
}
smbc_init ( get_auth_data_fn , debug ) ;
if ( smbc_stat ( pSmbPath , & st ) < 0 )
{
perror ( " smbc_stat " ) ;
return 1 ;
}
2015-09-04 17:40:25 +03:00
printf ( " Before \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 ) ) ;
2005-03-31 20:26:15 +04:00
2019-08-29 22:58:50 +03:00
utimbuf . actime = t ; /* unchangeable (won't change) */
2005-06-01 00:12:34 +04:00
utimbuf . modtime = t ; /* this one should succeed */
2005-03-31 20:26:15 +04:00
if ( smbc_utime ( pSmbPath , & utimbuf ) < 0 )
{
perror ( " smbc_utime " ) ;
return 1 ;
}
if ( smbc_stat ( pSmbPath , & st ) < 0 )
{
perror ( " smbc_stat " ) ;
return 1 ;
}
2015-09-04 17:40:25 +03:00
printf ( " After \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 ) ) ;
2005-03-31 20:26:15 +04:00
return 0 ;
}