diff options
author | Jonathan Beck | 2008-08-31 20:58:42 +0200 |
---|---|---|
committer | Jonathan Beck | 2008-08-31 20:58:42 +0200 |
commit | 7ac3d681889a6a8f9987837ace5465f2967cfff9 (patch) | |
tree | ac96888f90b8dd1bf69733f403ebd0c586917f8b | |
parent | 95e588fae32b17debf26ceaf456b361e06011623 (diff) | |
download | libplist-7ac3d681889a6a8f9987837ace5465f2967cfff9.tar.gz libplist-7ac3d681889a6a8f9987837ace5465f2967cfff9.tar.bz2 |
fix afc_getattr and more error handling in ifuse.c
-rw-r--r-- | src/AFC.c | 5 | ||||
-rw-r--r-- | src/ifuse.c | 11 |
2 files changed, 10 insertions, 6 deletions
@@ -593,7 +593,7 @@ iphone_afc_file_t afc_get_file_info(iphone_afc_client_t client, const char *path */ iphone_error_t iphone_afc_get_file_attr ( iphone_afc_client_t client, const char *filename, struct stat *stbuf ) { - int ret = IPHONE_E_SUCCESS; + iphone_error_t ret = IPHONE_E_UNKNOWN_ERROR; if (!client ||!client->connection || !client->afc_packet || !stbuf) return IPHONE_E_INVALID_ARG; memset(stbuf, 0, sizeof(struct stat)); @@ -608,8 +608,9 @@ iphone_error_t iphone_afc_get_file_attr ( iphone_afc_client_t client, const char stbuf->st_uid = getuid(); stbuf->st_gid = getgid(); - iphone_afc_close_file(client,file); + ret = iphone_afc_close_file(client,file); } + return ret; } /** Opens a file on the phone. diff --git a/src/ifuse.c b/src/ifuse.c index ed36117..c266879 100644 --- a/src/ifuse.c +++ b/src/ifuse.c @@ -46,7 +46,10 @@ static int ifuse_getattr(const char *path, struct stat *stbuf) { int res = 0; iphone_afc_client_t afc = fuse_get_context()->private_data; - iphone_afc_get_file_attr(afc, path, stbuf); + iphone_error_t ret = iphone_afc_get_file_attr(afc, path, stbuf); + + if (ret != IPHONE_E_SUCCESS) + res = -ENOENT; return res; } @@ -253,19 +256,19 @@ int ifuse_ftruncate(const char *path, off_t size, struct fuse_file_info *fi) { int ifuse_unlink(const char *path) { iphone_afc_client_t afc = fuse_get_context()->private_data; - if (iphone_afc_delete_file(afc, path)) return 0; + if (IPHONE_E_SUCCESS == iphone_afc_delete_file(afc, path)) return 0; else return -1; } int ifuse_rename(const char *from, const char *to) { iphone_afc_client_t afc = fuse_get_context()->private_data; - if (iphone_afc_rename_file(afc, from, to)) return 0; + if (IPHONE_E_SUCCESS == iphone_afc_rename_file(afc, from, to)) return 0; else return -1; } int ifuse_mkdir(const char *dir, mode_t ignored) { iphone_afc_client_t afc = fuse_get_context()->private_data; - if (iphone_afc_mkdir(afc, dir)) return 0; + if (IPHONE_E_SUCCESS == iphone_afc_mkdir(afc, dir)) return 0; else return -1; } |