aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorAnderson Toshiyuki Sasaki <ansasaki@redhat.com>2018-09-11 15:14:17 +0200
committerAndreas Schneider <asn@cryptomilk.org>2018-09-18 10:19:59 +0200
commitf246e31ca0c8d5a0bb0244ee4ef1c67dd8084a7b (patch)
tree054746469233dace5cb4d6b7dbf0701937c70519 /examples
parent7390db6bbbd2c41e301550bd183a92165dd73850 (diff)
downloadlibssh-f246e31ca0c8d5a0bb0244ee4ef1c67dd8084a7b.tar.gz
libssh-f246e31ca0c8d5a0bb0244ee4ef1c67dd8084a7b.tar.xz
libssh-f246e31ca0c8d5a0bb0244ee4ef1c67dd8084a7b.zip
examples: Fix code style in samplesftp.c
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'examples')
-rw-r--r--examples/samplesftp.c305
1 files changed, 162 insertions, 143 deletions
diff --git a/examples/samplesftp.c b/examples/samplesftp.c
index 0fc970c9..a8624414 100644
--- a/examples/samplesftp.c
+++ b/examples/samplesftp.c
@@ -33,185 +33,200 @@ static int verbosity;
static char *destination;
#define DATALEN 65536
-static void do_sftp(ssh_session session){
- sftp_session sftp=sftp_new(session);
+
+static void do_sftp(ssh_session session) {
+ sftp_session sftp = sftp_new(session);
sftp_dir dir;
sftp_attributes file;
sftp_statvfs_t sftpstatvfs;
struct statvfs sysstatvfs;
sftp_file fichier;
sftp_file to;
- int len=1;
+ int len = 1;
unsigned int i;
- char data[DATALEN]={0};
+ char data[DATALEN] = {0};
char *lnk;
unsigned int count;
- if(!sftp){
+ if (!sftp) {
fprintf(stderr, "sftp error initialising channel: %s\n",
- ssh_get_error(session));
+ ssh_get_error(session));
goto end;
}
- if(sftp_init(sftp)){
+
+ if (sftp_init(sftp)) {
fprintf(stderr, "error initialising sftp: %s\n",
- ssh_get_error(session));
+ ssh_get_error(session));
goto end;
}
printf("Additional SFTP extensions provided by the server:\n");
count = sftp_extensions_get_count(sftp);
for (i = 0; i < count; i++) {
- printf("\t%s, version: %s\n",
- sftp_extensions_get_name(sftp, i),
- sftp_extensions_get_data(sftp, i));
+ printf("\t%s, version: %s\n",
+ sftp_extensions_get_name(sftp, i),
+ sftp_extensions_get_data(sftp, i));
}
/* test symlink and readlink */
if (sftp_symlink(sftp, "/tmp/this_is_the_link",
- "/tmp/sftp_symlink_test") < 0) {
- fprintf(stderr, "Could not create link (%s)\n", ssh_get_error(session));
- goto end;
+ "/tmp/sftp_symlink_test") < 0)
+ {
+ fprintf(stderr, "Could not create link (%s)\n",
+ ssh_get_error(session));
+ goto end;
}
lnk = sftp_readlink(sftp, "/tmp/sftp_symlink_test");
if (lnk == NULL) {
- fprintf(stderr, "Could not read link (%s)\n", ssh_get_error(session));
- goto end;
+ fprintf(stderr, "Could not read link (%s)\n", ssh_get_error(session));
+ goto end;
}
printf("readlink /tmp/sftp_symlink_test: %s\n", lnk);
sftp_unlink(sftp, "/tmp/sftp_symlink_test");
if (sftp_extension_supported(sftp, "statvfs@openssh.com", "2")) {
- sftpstatvfs = sftp_statvfs(sftp, "/tmp");
- if (sftpstatvfs == NULL) {
- fprintf(stderr, "statvfs failed (%s)\n", ssh_get_error(session));
- goto end;
- }
-
- printf("sftp statvfs:\n"
- "\tfile system block size: %llu\n"
- "\tfundamental fs block size: %llu\n"
- "\tnumber of blocks (unit f_frsize): %llu\n"
- "\tfree blocks in file system: %llu\n"
- "\tfree blocks for non-root: %llu\n"
- "\ttotal file inodes: %llu\n"
- "\tfree file inodes: %llu\n"
- "\tfree file inodes for to non-root: %llu\n"
- "\tfile system id: %llu\n"
- "\tbit mask of f_flag values: %llu\n"
- "\tmaximum filename length: %llu\n",
- (unsigned long long) sftpstatvfs->f_bsize,
- (unsigned long long) sftpstatvfs->f_frsize,
- (unsigned long long) sftpstatvfs->f_blocks,
- (unsigned long long) sftpstatvfs->f_bfree,
- (unsigned long long) sftpstatvfs->f_bavail,
- (unsigned long long) sftpstatvfs->f_files,
- (unsigned long long) sftpstatvfs->f_ffree,
- (unsigned long long) sftpstatvfs->f_favail,
- (unsigned long long) sftpstatvfs->f_fsid,
- (unsigned long long) sftpstatvfs->f_flag,
- (unsigned long long) sftpstatvfs->f_namemax);
-
- sftp_statvfs_free(sftpstatvfs);
-
- if (statvfs("/tmp", &sysstatvfs) < 0) {
- fprintf(stderr, "statvfs failed (%s)\n", strerror(errno));
- goto end;
- }
-
- printf("sys statvfs:\n"
- "\tfile system block size: %llu\n"
- "\tfundamental fs block size: %llu\n"
- "\tnumber of blocks (unit f_frsize): %llu\n"
- "\tfree blocks in file system: %llu\n"
- "\tfree blocks for non-root: %llu\n"
- "\ttotal file inodes: %llu\n"
- "\tfree file inodes: %llu\n"
- "\tfree file inodes for to non-root: %llu\n"
- "\tfile system id: %llu\n"
- "\tbit mask of f_flag values: %llu\n"
- "\tmaximum filename length: %llu\n",
- (unsigned long long) sysstatvfs.f_bsize,
- (unsigned long long) sysstatvfs.f_frsize,
- (unsigned long long) sysstatvfs.f_blocks,
- (unsigned long long) sysstatvfs.f_bfree,
- (unsigned long long) sysstatvfs.f_bavail,
- (unsigned long long) sysstatvfs.f_files,
- (unsigned long long) sysstatvfs.f_ffree,
- (unsigned long long) sysstatvfs.f_favail,
- (unsigned long long) sysstatvfs.f_fsid,
- (unsigned long long) sysstatvfs.f_flag,
- (unsigned long long) sysstatvfs.f_namemax);
+ sftpstatvfs = sftp_statvfs(sftp, "/tmp");
+ if (sftpstatvfs == NULL) {
+ fprintf(stderr, "statvfs failed (%s)\n", ssh_get_error(session));
+ goto end;
+ }
+
+ printf("sftp statvfs:\n"
+ "\tfile system block size: %llu\n"
+ "\tfundamental fs block size: %llu\n"
+ "\tnumber of blocks (unit f_frsize): %llu\n"
+ "\tfree blocks in file system: %llu\n"
+ "\tfree blocks for non-root: %llu\n"
+ "\ttotal file inodes: %llu\n"
+ "\tfree file inodes: %llu\n"
+ "\tfree file inodes for to non-root: %llu\n"
+ "\tfile system id: %llu\n"
+ "\tbit mask of f_flag values: %llu\n"
+ "\tmaximum filename length: %llu\n",
+ (unsigned long long) sftpstatvfs->f_bsize,
+ (unsigned long long) sftpstatvfs->f_frsize,
+ (unsigned long long) sftpstatvfs->f_blocks,
+ (unsigned long long) sftpstatvfs->f_bfree,
+ (unsigned long long) sftpstatvfs->f_bavail,
+ (unsigned long long) sftpstatvfs->f_files,
+ (unsigned long long) sftpstatvfs->f_ffree,
+ (unsigned long long) sftpstatvfs->f_favail,
+ (unsigned long long) sftpstatvfs->f_fsid,
+ (unsigned long long) sftpstatvfs->f_flag,
+ (unsigned long long) sftpstatvfs->f_namemax);
+
+ sftp_statvfs_free(sftpstatvfs);
+
+ if (statvfs("/tmp", &sysstatvfs) < 0) {
+ fprintf(stderr, "statvfs failed (%s)\n", strerror(errno));
+ goto end;
+ }
+
+ printf("sys statvfs:\n"
+ "\tfile system block size: %llu\n"
+ "\tfundamental fs block size: %llu\n"
+ "\tnumber of blocks (unit f_frsize): %llu\n"
+ "\tfree blocks in file system: %llu\n"
+ "\tfree blocks for non-root: %llu\n"
+ "\ttotal file inodes: %llu\n"
+ "\tfree file inodes: %llu\n"
+ "\tfree file inodes for to non-root: %llu\n"
+ "\tfile system id: %llu\n"
+ "\tbit mask of f_flag values: %llu\n"
+ "\tmaximum filename length: %llu\n",
+ (unsigned long long) sysstatvfs.f_bsize,
+ (unsigned long long) sysstatvfs.f_frsize,
+ (unsigned long long) sysstatvfs.f_blocks,
+ (unsigned long long) sysstatvfs.f_bfree,
+ (unsigned long long) sysstatvfs.f_bavail,
+ (unsigned long long) sysstatvfs.f_files,
+ (unsigned long long) sysstatvfs.f_ffree,
+ (unsigned long long) sysstatvfs.f_favail,
+ (unsigned long long) sysstatvfs.f_fsid,
+ (unsigned long long) sysstatvfs.f_flag,
+ (unsigned long long) sysstatvfs.f_namemax);
}
/* the connection is made */
/* opening a directory */
- dir=sftp_opendir(sftp,"./");
- if(!dir) {
+ dir = sftp_opendir(sftp, "./");
+ if (!dir) {
fprintf(stderr, "Directory not opened(%s)\n", ssh_get_error(session));
goto end;
}
+
/* reading the whole directory, file by file */
- while((file=sftp_readdir(sftp,dir))){
+ while ((file = sftp_readdir(sftp, dir))) {
fprintf(stderr, "%30s(%.8o) : %s(%.5d) %s(%.5d) : %.10llu bytes\n",
- file->name,
- file->permissions,
- file->owner,
- file->uid,
- file->group,
- file->gid,
- (long long unsigned int) file->size);
+ file->name,
+ file->permissions,
+ file->owner,
+ file->uid,
+ file->group,
+ file->gid,
+ (long long unsigned int) file->size);
sftp_attributes_free(file);
}
- /* when file=NULL, an error has occured OR the directory listing is end of file */
- if(!sftp_dir_eof(dir)){
+
+ /* when file = NULL, an error has occured OR the directory listing is end of
+ * file */
+ if (!sftp_dir_eof(dir)) {
fprintf(stderr, "Error: %s\n", ssh_get_error(session));
goto end;
}
- if(sftp_closedir(dir)){
+
+ if (sftp_closedir(dir)) {
fprintf(stderr, "Error: %s\n", ssh_get_error(session));
goto end;
}
/* this will open a file and copy it into your /home directory */
- /* the small buffer size was intended to stress the library. of course, you can use a buffer till 20kbytes without problem */
+ /* the small buffer size was intended to stress the library. of course, you
+ * can use a buffer till 20kbytes without problem */
- fichier=sftp_open(sftp,"/usr/bin/ssh",O_RDONLY, 0);
- if(!fichier){
+ fichier = sftp_open(sftp, "/usr/bin/ssh", O_RDONLY, 0);
+ if (!fichier) {
fprintf(stderr, "Error opening /usr/bin/ssh: %s\n",
- ssh_get_error(session));
+ ssh_get_error(session));
goto end;
}
+
/* open a file for writing... */
- to=sftp_open(sftp,"ssh-copy",O_WRONLY | O_CREAT, 0700);
- if(!to){
+ to = sftp_open(sftp, "ssh-copy", O_WRONLY | O_CREAT, 0700);
+ if (!to) {
fprintf(stderr, "Error opening ssh-copy for writing: %s\n",
- ssh_get_error(session));
+ ssh_get_error(session));
sftp_close(fichier);
goto end;
}
- while((len=sftp_read(fichier,data,4096)) > 0){
- if(sftp_write(to,data,len)!=len){
+
+ while ((len = sftp_read(fichier, data, 4096)) > 0) {
+ if (sftp_write(to, data, len) != len) {
fprintf(stderr, "Error writing %d bytes: %s\n",
- len, ssh_get_error(session));
+ len, ssh_get_error(session));
sftp_close(to);
sftp_close(fichier);
goto end;
}
}
+
printf("finished\n");
- if(len<0)
+ if (len < 0) {
fprintf(stderr, "Error reading file: %s\n", ssh_get_error(session));
+ }
+
sftp_close(fichier);
sftp_close(to);
printf("fichiers ferm\n");
- to=sftp_open(sftp,"/tmp/grosfichier",O_WRONLY|O_CREAT, 0644);
- for(i=0;i<1000;++i){
- len=sftp_write(to,data,DATALEN);
- printf("wrote %d bytes\n",len);
- if(len != DATALEN){
- printf("chunk %d : %d (%s)\n",i,len,ssh_get_error(session));
+ to = sftp_open(sftp, "/tmp/grosfichier", O_WRONLY|O_CREAT, 0644);
+
+ for (i = 0; i < 1000; ++i) {
+ len = sftp_write(to, data, DATALEN);
+ printf("wrote %d bytes\n", len);
+ if (len != DATALEN) {
+ printf("chunk %d : %d (%s)\n", i, len, ssh_get_error(session));
}
}
@@ -222,51 +237,55 @@ end:
printf("sftp session terminated\n");
}
-static void usage(const char *argv0){
- fprintf(stderr,"Usage : %s [-v] remotehost\n"
- "sample sftp test client - libssh-%s\n"
- "Options :\n"
- " -v : increase log verbosity\n",
- argv0,
- ssh_version(0));
- exit(0);
+static void usage(const char *argv0) {
+ fprintf(stderr, "Usage : %s [-v] remotehost\n"
+ "sample sftp test client - libssh-%s\n"
+ "Options :\n"
+ " -v : increase log verbosity\n",
+ argv0,
+ ssh_version(0));
+ exit(0);
}
-static int opts(int argc, char **argv){
- int i;
- while((i=getopt(argc,argv,"v"))!=-1){
- switch(i){
- case 'v':
- verbosity++;
- break;
- default:
- fprintf(stderr,"unknown option %c\n",optopt);
+static int opts(int argc, char **argv) {
+ int i;
+
+ while ((i = getopt(argc, argv, "v")) != -1) {
+ switch(i) {
+ case 'v':
+ verbosity++;
+ break;
+ default:
+ fprintf(stderr, "unknown option %c\n", optopt);
+ usage(argv[0]);
+ return -1;
+ }
+ }
+
+ destination = argv[optind];
+ if (destination == NULL) {
usage(argv[0]);
return -1;
}
- }
-
- destination=argv[optind];
- if(destination == NULL){
- usage(argv[0]);
- return -1;
- }
- return 0;
+ return 0;
}
-int main(int argc, char **argv){
- ssh_session session;
- if(opts(argc,argv)<0)
- return EXIT_FAILURE;
- session=connect_ssh(destination,NULL,verbosity);
- if(session == NULL)
- return EXIT_FAILURE;
- do_sftp(session);
- ssh_disconnect(session);
- ssh_free(session);
- return 0;
-}
+int main(int argc, char **argv) {
+ ssh_session session;
+ if (opts(argc, argv) < 0) {
+ return EXIT_FAILURE;
+ }
+
+ session = connect_ssh(destination, NULL, verbosity);
+ if (session == NULL) {
+ return EXIT_FAILURE;
+ }
+ do_sftp(session);
+ ssh_disconnect(session);
+ ssh_free(session);
+ return 0;
+}
#endif