diff options
Diffstat (limited to 'examples/libsmbclient')
-rw-r--r-- | examples/libsmbclient/Makefile | 2 | ||||
-rw-r--r-- | examples/libsmbclient/testsmbc.c | 129 | ||||
-rw-r--r-- | examples/libsmbclient/tree.c | 7 |
3 files changed, 129 insertions, 9 deletions
diff --git a/examples/libsmbclient/Makefile b/examples/libsmbclient/Makefile index 5fe9977c0a..8c1def8a16 100644 --- a/examples/libsmbclient/Makefile +++ b/examples/libsmbclient/Makefile @@ -11,7 +11,7 @@ all: testsmbc tree testsmbc: testsmbc.o @echo Linking testsmbc - @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lsmbclient -L/usr/local/lib + @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lsmbclient testsmbc-static: testsmbc.o @echo Linking testsmbc diff --git a/examples/libsmbclient/testsmbc.c b/examples/libsmbclient/testsmbc.c index 888a9c0d4f..7aae9d8561 100644 --- a/examples/libsmbclient/testsmbc.c +++ b/examples/libsmbclient/testsmbc.c @@ -1,5 +1,6 @@ /* - Unix SMB/CIFS implementation. + Unix SMB/Netbios implementation. + Version 2.0 SMB client library test program Copyright (C) Andrew Tridgell 1998 Copyright (C) Richard Sharpe 2000 @@ -94,10 +95,74 @@ int main(int argc, char *argv[]) if (argc > 1) { - if ((dh1 = smbc_opendir(argv[1]))<1) { + /* Try to list the print jobs ... */ - fprintf(stderr, "Could not open directory: %s: %s\n", - argv[1], strerror(errno)); + if (smbc_list_print_jobs("smb://samba/pclp", print_list_fn) < 0) { + + fprintf(stderr, "Could not list print jobs: %s, %d\n", strerror(errno), errno); + exit(1); + + } + + /* Try to delete the last job listed */ + + if (global_id > 0) { + + fprintf(stdout, "Trying to delete print job %u\n", global_id); + + if (smbc_unlink_print_job("smb://samba/pclp", global_id) < 0) { + + fprintf(stderr, "Failed to unlink job id %u, %s, %u\n", global_id, + strerror(errno), errno); + + exit(1); + + } + + } + + /* Try to print a file ... */ + + if (smbc_print_file("smb://samba/public/testfile2.txt", "smb://samba/pclp") < 0) { + + fprintf(stderr, "Failed to print job: %s %u\n", strerror(errno), errno); + exit(1); + + } + + /* Try to delete argv[1] as a file ... */ + + if (smbc_unlink(argv[1]) < 0) { + + fprintf(stderr, "Could not unlink: %s, %s, %d\n", + argv[1], strerror(errno), errno); + + exit(0); + + } + + if ((dh1 = smbc_opendir("smb://"))<1) { + + fprintf(stderr, "Could not open directory: smb://: %s\n", + strerror(errno)); + + exit(1); + + } + + if ((dh2 = smbc_opendir("smb://sambanet")) < 0) { + + fprintf(stderr, "Could not open directory: smb://sambanet: %s\n", + strerror(errno)); + + exit(1); + + } + + if ((dh3 = smbc_opendir("smb://samba")) < 0) { + + fprintf(stderr, "Could not open directory: smb://samba: %s\n", + strerror(errno)); exit(1); @@ -138,6 +203,62 @@ int main(int argc, char *argv[]) dirp = (char *)dirbuf; + if ((dirc = smbc_getdents(dh2, (struct smbc_dirent *)dirp, + sizeof(dirbuf))) < 0) { + + fprintf(stderr, "Problems getting directory entries: %s\n", + strerror(errno)); + + exit(1); + + } + + /* Now, process the list of names ... */ + + fprintf(stdout, "\nDirectory listing, size = %u\n", dirc); + + while (dirc > 0) { + + dsize = ((struct smbc_dirent *)dirp)->dirlen; + fprintf(stdout, "Dir Ent, Type: %u, Name: %s, Comment: %s\n", + ((struct smbc_dirent *)dirp)->smbc_type, + ((struct smbc_dirent *)dirp)->name, + ((struct smbc_dirent *)dirp)->comment); + + dirp += dsize; + (char *)dirc -= dsize; + + } + + dirp = (char *)dirbuf; + + if ((dirc = smbc_getdents(dh3, (struct smbc_dirent *)dirp, + sizeof(dirbuf))) < 0) { + + fprintf(stderr, "Problems getting directory entries: %s\n", + strerror(errno)); + + exit(1); + + } + + /* Now, process the list of names ... */ + + fprintf(stdout, "Directory listing, size = %u\n", dirc); + + while (dirc > 0) { + + dsize = ((struct smbc_dirent *)dirp)->dirlen; + fprintf(stdout, "\nDir Ent, Type: %u, Name: %s, Comment: %s\n", + ((struct smbc_dirent *)dirp)->smbc_type, + ((struct smbc_dirent *)dirp)->name, + ((struct smbc_dirent *)dirp)->comment); + + (char *)dirp += dsize; + (char *)dirc -= dsize; + + } + exit(1); } diff --git a/examples/libsmbclient/tree.c b/examples/libsmbclient/tree.c index 8dc9cc408b..da60236e60 100644 --- a/examples/libsmbclient/tree.c +++ b/examples/libsmbclient/tree.c @@ -51,8 +51,7 @@ void error_message(gchar *message) { /* Ensure that the dialog box is destroyed when the user clicks ok. */ gtk_signal_connect_object (GTK_OBJECT (okay_button), "clicked", - GTK_SIGNAL_FUNC (gtk_widget_destroy), - GTK_OBJECT(dialog)); + GTK_SIGNAL_FUNC (gtk_widget_destroy), dialog); gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->action_area), okay_button); @@ -745,6 +744,8 @@ int main( int argc, /* Now, get the items in smb:/// and add them to the tree */ + dirp = (struct smbc_dirent *)dirbuf; + while ((err = smbc_getdents(dh, (struct smbc_dirent *)dirbuf, sizeof(dirbuf))) != 0) { @@ -757,8 +758,6 @@ int main( int argc, } - dirp = (struct smbc_dirent *)dirbuf; - fprintf(stdout, "Dir len: %u\n", err); while (err > 0) { /* Extract each entry and make a sub-tree */ |