• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/samba-3.5.8/examples/libsmbclient/
1#include <libsmbclient.h>
2#include <sys/stat.h>
3#include <string.h>
4#include <stdio.h>
5#include <time.h>
6#include "get_auth_data_fn.h"
7
8/*
9 * This test is intended to ensure that the timestamps returned by
10 * libsmbclient using smbc_stat() are the same as those returned by
11 * smbc_fstat().
12 */
13
14
15int main(int argc, char* argv[])
16{
17        int             fd;
18        struct stat     st1;
19        struct stat     st2;
20        char            mtime[32];
21        char            ctime[32];
22        char            atime[32];
23        char *          pUrl = argv[1];
24
25        if(argc != 2)
26        {
27                printf("usage: %s <file_url>\n", argv[0]);
28                return 1;
29        }
30
31
32        smbc_init(get_auth_data_fn, 0);
33
34        if (smbc_stat(pUrl, &st1) < 0)
35        {
36                perror("smbc_stat");
37                return 1;
38        }
39
40        if ((fd = smbc_open(pUrl, O_RDONLY, 0)) < 0)
41        {
42                perror("smbc_open");
43                return 1;
44        }
45
46        if (smbc_fstat(fd, &st2) < 0)
47        {
48                perror("smbc_fstat");
49                return 1;
50        }
51
52        smbc_close(fd);
53
54#define COMPARE(name, field)                                            \
55        if (st1.field != st2.field)                                     \
56        {                                                               \
57                printf("Field " name " MISMATCH: st1=%lu, st2=%lu\n",   \
58                       (unsigned long) st1.field,                       \
59                       (unsigned long) st2.field);                      \
60        }
61
62        COMPARE("st_dev", st_dev);
63        COMPARE("st_ino", st_ino);
64        COMPARE("st_mode", st_mode);
65        COMPARE("st_nlink", st_nlink);
66        COMPARE("st_uid", st_uid);
67        COMPARE("st_gid", st_gid);
68        COMPARE("st_rdev", st_rdev);
69        COMPARE("st_size", st_size);
70        COMPARE("st_blksize", st_blksize);
71        COMPARE("st_blocks", st_blocks);
72        COMPARE("st_atime", st_atime);
73        COMPARE("st_mtime", st_mtime);
74        COMPARE("st_ctime", st_ctime);
75
76        return 0;
77}
78
79