diff options
Diffstat (limited to 'examples/libsmbclient')
-rw-r--r-- | examples/libsmbclient/Makefile | 19 | ||||
-rw-r--r-- | examples/libsmbclient/smbwrapper/Makefile | 5 | ||||
-rw-r--r-- | examples/libsmbclient/teststat.c | 117 |
3 files changed, 130 insertions, 11 deletions
diff --git a/examples/libsmbclient/Makefile b/examples/libsmbclient/Makefile index 6c89fd431ec..1e89e7077e7 100644 --- a/examples/libsmbclient/Makefile +++ b/examples/libsmbclient/Makefile @@ -6,19 +6,16 @@ EXTLIB_INCL = -I/usr/include/gtk-1.2 \ -I/usr/include/glib-1.2 \ -I/usr/lib/glib/include -CFLAGS = -I$(SAMBA_INCL) $(EXTLIB_INCL) +DEFS = -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE +CFLAGS = -O0 -g -I$(SAMBA_INCL) $(EXTLIB_INCL) $(DEFS) -LDFLAGS = -L/usr/lib +LDFLAGS = -L/usr/local/samba/lib -all: testsmbc tree testacl testbrowse smbsh +all: testsmbc tree testacl testbrowse teststat smbsh testsmbc: testsmbc.o @echo Linking testsmbc - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lsmbclient -L/usr/local/lib - -testsmbc-static: testsmbc.o - @echo Linking testsmbc - @$(CC) $(CFLAGS) -static $(LDFLAGS) -o $@ $< -lsmbclient -ldl -lnsl + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lsmbclient tree: tree.o @echo Linking tree @@ -32,9 +29,13 @@ testbrowse: testbrowse.o @echo Linking testbrowse @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ -lsmbclient -lpopt $< +teststat: teststat.o + @echo Linking teststat + @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ /usr/local/samba/lib/libsmbclient.so -lpopt $< + smbsh: make -C smbwrapper clean: - @rm -f *.o *~ testsmbc tree testacl testbrowse + @rm -f *.o *~ testsmbc tree testacl testbrowse teststat @make -C smbwrapper clean diff --git a/examples/libsmbclient/smbwrapper/Makefile b/examples/libsmbclient/smbwrapper/Makefile index 099c2049866..8e7070cb597 100644 --- a/examples/libsmbclient/smbwrapper/Makefile +++ b/examples/libsmbclient/smbwrapper/Makefile @@ -3,7 +3,7 @@ DEFS = -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE CFLAGS = -I$(SAMBA_INCL) $(EXTLIB_INCL) -LDFLAGS = -L/usr/lib +LDFLAGS = -L/usr/local/samba/lib SMBINCLUDE = -I../../../source/include CFLAGS= -fpic -g -O0 $(DEFS) $(SMBINCLUDE) @@ -22,11 +22,12 @@ $(BIN)/smbwrapper.so: $(SMBWRAPPER_OBJS) --export-all-symbols \ -o $(BIN)/smbwrapper.so \ $(SMBWRAPPER_OBJS) \ + $(LDFLAGS) \ $(LIBS) \ -Wl,-soname=`basename $@` $(BIN)/smbsh: $(SMBSH_OBJS) - $(CC) -g -o $(BIN)/smbsh $(SMBSH_OBJS) $(LIBS) + $(CC) -g -o $(BIN)/smbsh $(SMBSH_OBJS) $(LIBS) $(LDFLAGS) opendir_smbsh: opendir_smbsh.o $(CC) -g -o opendir_smbsh opendir_smbsh.o $(LIBS) $(DMALLOC) diff --git a/examples/libsmbclient/teststat.c b/examples/libsmbclient/teststat.c new file mode 100644 index 00000000000..46eeb13985a --- /dev/null +++ b/examples/libsmbclient/teststat.c @@ -0,0 +1,117 @@ +#include <stdio.h> +#include <unistd.h> +#include <string.h> +#include <time.h> +#include <libsmbclient.h> + +static void +get_auth_data_fn(const char * pServer, + const char * pShare, + char * pWorkgroup, + int maxLenWorkgroup, + char * pUsername, + int maxLenUsername, + char * pPassword, + int maxLenPassword) + +{ + char temp[128]; + + printf("Entered get_auth_data_fn\n"); + + fprintf(stdout, "Need password for //%s/%s\n", pServer, pShare); + + fprintf(stdout, "Username: [%s] ", pUsername); + fgets(temp, sizeof(temp), stdin); + + if (temp[strlen(temp) - 1] == '\n') /* A new line? */ + { + temp[strlen(temp) - 1] = '\0'; + } + + if (temp[0] != '\0') + { + strncpy(pUsername, temp, maxLenUsername - 1); + } + + strcpy(temp, getpass("Password: ")); + + if (temp[strlen(temp) - 1] == '\n') /* A new line? */ + { + temp[strlen(temp) - 1] = '\0'; + } + + if (temp[0] != '\0') + { + strncpy(pPassword, temp, maxLenPassword - 1); + } + + fprintf(stdout, "Workgroup: "); + fgets(temp, sizeof(temp), stdin); + + if (temp[strlen(temp) - 1] == '\n') /* A new line? */ + { + temp[strlen(temp) - 1] = '\0'; + } + + if (temp[0] != '\0') + { + strncpy(pWorkgroup, temp, maxLenWorkgroup - 1); + } + + putchar('\n'); +} + + + +int main(int argc, char * argv[]) +{ + char buffer[16384]; + char * pSmbPath = NULL; + char * pLocalPath = NULL; + struct stat st; + + if (argc == 1) + { + pSmbPath = "smb://RANDOM/Public/small"; + pLocalPath = "/random/home/samba/small"; + } + else if (argc == 2) + { + pSmbPath = argv[1]; + pLocalPath = NULL; + } + else if (argc == 3) + { + pSmbPath = argv[1]; + pLocalPath = argv[2]; + } + else + { + printf("usage: " + "%s [ smb://path/to/file [ /nfs/or/local/path/to/file ] ]\n", + argv[0]); + return 1; + } + + smbc_init(get_auth_data_fn, 0); + + int ret = smbc_stat(pSmbPath, &st); + + printf("SAMBA\nret=%d,\n mtime:%lu/%s ctime:%lu/%s atime:%lu/%s\n", ret, + st.st_mtime, ctime(&st.st_mtime), + st.st_ctime, ctime(&st.st_ctime), + st.st_atime, ctime(&st.st_atime)); + + if (pLocalPath != NULL) + { + ret = stat(pLocalPath, &st); + + printf("LOCAL\nret=%d,\n mtime:%lu/%s ctime:%lu/%s atime:%lu/%s\n", ret, + st.st_mtime, ctime(&st.st_mtime), + st.st_ctime, ctime(&st.st_ctime), + st.st_atime, ctime(&st.st_atime)); + } + + return 0; +} |