Mercurial > gftp.yaz
changeset 520:e67a52327b24
2004-7-27 Brian Masney <masneyb@gftp.org>
* lib/gftp.h lib/local.c lib/protocols.c lib/sshv2.c - changed
declaration of gftp_stat_filename() so that the mode of the filename
is returned as a parameter instead of the function return value.
The mode_t type is unsigned and the error codes could not be reported
properly
author | masneyb |
---|---|
date | Wed, 28 Jul 2004 02:19:00 +0000 |
parents | c3edcd3e9db9 |
children | 739afd9df73c |
files | ChangeLog lib/gftp.h lib/local.c lib/protocols.c lib/sshv2.c |
diffstat | 5 files changed, 32 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Wed Jul 28 01:58:28 2004 +0000 +++ b/ChangeLog Wed Jul 28 02:19:00 2004 +0000 @@ -1,4 +1,10 @@ 2004-7-27 Brian Masney <masneyb@gftp.org> + * lib/gftp.h lib/local.c lib/protocols.c lib/sshv2.c - changed + declaration of gftp_stat_filename() so that the mode of the filename + is returned as a parameter instead of the function return value. + The mode_t type is unsigned and the error codes could not be reported + properly + * lib/sshv2.c - fixed SSHV2 transfers so that they work again (they were busted in the last CVS commit due to the wrong file offset being sent over) @@ -2674,7 +2680,7 @@ * cvsclean - added this script - * *.[ch] - added $Id: ChangeLog,v 1.297 2004/07/28 01:58:28 masneyb Exp $ tags + * *.[ch] - added $Id: ChangeLog,v 1.298 2004/07/28 02:19:00 masneyb Exp $ tags * debian/* - updated files from Debian maintainer
--- a/lib/gftp.h Wed Jul 28 01:58:28 2004 +0000 +++ b/lib/gftp.h Wed Jul 28 02:19:00 2004 +0000 @@ -430,8 +430,9 @@ size_t size ); int (*end_transfer) ( gftp_request * request ); int (*abort_transfer) ( gftp_request * request ); - mode_t (*stat_filename) ( gftp_request * request, - const char *filename ); + int (*stat_filename) ( gftp_request * request, + const char *filename, + mode_t * mode ); int (*list_files) ( gftp_request * request ); int (*get_next_file) ( gftp_request * request, gftp_file *fle, @@ -896,8 +897,9 @@ int gftp_abort_transfer ( gftp_request * request ); -mode_t gftp_stat_filename ( gftp_request * request, - const char *filename ); +int gftp_stat_filename ( gftp_request * request, + const char *filename, + mode_t * mode ); void gftp_set_hostname ( gftp_request * request, const char *hostname );
--- a/lib/local.c Wed Jul 28 01:58:28 2004 +0000 +++ b/lib/local.c Wed Jul 28 02:19:00 2004 +0000 @@ -224,15 +224,17 @@ } -static mode_t -local_stat_filename (gftp_request * request, const char *filename) +static int +local_stat_filename (gftp_request * request, const char *filename, + mode_t * mode) { struct stat st; if (stat (filename, &st) != 0) return (GFTP_ERETRYABLE); - return (st.st_mode); + *mode = st.st_mode; + return (0); }
--- a/lib/protocols.c Wed Jul 28 01:58:28 2004 +0000 +++ b/lib/protocols.c Wed Jul 28 02:19:00 2004 +0000 @@ -339,19 +339,16 @@ } -mode_t /* FIXME - this is unsigned, can return negative */ -gftp_stat_filename (gftp_request * request, const char *filename) +int +gftp_stat_filename (gftp_request * request, const char *filename, mode_t * mode) { - mode_t ret; - g_return_val_if_fail (request != NULL, GFTP_EFATAL); + g_return_val_if_fail (filename != NULL, GFTP_EFATAL); if (request->stat_filename != NULL) - ret = request->stat_filename (request, filename); + return (request->stat_filename (request, filename, mode)); else - ret = 0; - - return (ret); + return (0); } @@ -1964,9 +1961,10 @@ if (S_ISLNK (curfle->st_mode) && !S_ISDIR (curfle->st_mode)) { - st_mode = gftp_stat_filename (transfer->fromreq, curfle->file); - if (st_mode < 0) - return (st_mode); + st_mode = 0; + ret = gftp_stat_filename (transfer->fromreq, curfle->file, &st_mode); + if (ret < 0) + return (ret); else if (S_ISDIR (st_mode)) curfle->st_mode = st_mode; }
--- a/lib/sshv2.c Wed Jul 28 01:58:28 2004 +0000 +++ b/lib/sshv2.c Wed Jul 28 02:19:00 2004 +0000 @@ -1689,8 +1689,9 @@ } -static mode_t -sshv2_stat_filename (gftp_request * request, const char *filename) +static int +sshv2_stat_filename (gftp_request * request, const char *filename, + mode_t * mode) { gftp_file fle; mode_t ret; @@ -1700,10 +1701,10 @@ if (ret < 0) return (ret); - ret = fle.st_mode; + *mode = fle.st_mode; gftp_file_destroy (&fle); - return (ret); + return (0); }