diff --git a/source3/libsmb/libsmb_dir.c b/source3/libsmb/libsmb_dir.c index 3a07f11..af10624 100644 --- a/source3/libsmb/libsmb_dir.c +++ b/source3/libsmb/libsmb_dir.c @@ -1223,6 +1223,9 @@ SMBC_mkdir_ctx(SMBCCTX *context, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } @@ -1334,6 +1337,9 @@ SMBC_rmdir_ctx(SMBCCTX *context, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } @@ -1621,6 +1627,9 @@ SMBC_chmod_ctx(SMBCCTX *context, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } @@ -1819,6 +1828,9 @@ SMBC_unlink_ctx(SMBCCTX *context, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } @@ -1998,6 +2010,9 @@ SMBC_rename_ctx(SMBCCTX *ocontext, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path1); errno = ENOENT; + if (targetcli1 == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } @@ -2015,6 +2030,9 @@ SMBC_rename_ctx(SMBCCTX *ocontext, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path2); errno = ENOENT; + if (targetcli2 == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } diff --git a/source3/libsmb/libsmb_file.c b/source3/libsmb/libsmb_file.c index 8fb7a2e..9b65a4c 100644 --- a/source3/libsmb/libsmb_file.c +++ b/source3/libsmb/libsmb_file.c @@ -119,6 +119,9 @@ SMBC_open_ctx(SMBCCTX *context, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } SAFE_FREE(file); TALLOC_FREE(frame); return NULL; @@ -295,6 +298,9 @@ SMBC_read_ctx(SMBCCTX *context, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } @@ -383,6 +389,9 @@ SMBC_write_ctx(SMBCCTX *context, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } @@ -461,6 +470,9 @@ SMBC_close_ctx(SMBCCTX *context, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } @@ -543,6 +555,9 @@ SMBC_getatr(SMBCCTX * context, if (!NT_STATUS_IS_OK(status)) { d_printf("Couldn't resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return False; } @@ -765,6 +780,9 @@ SMBC_lseek_ctx(SMBCCTX *context, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } @@ -858,6 +876,9 @@ SMBC_ftruncate_ctx(SMBCCTX *context, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } diff --git a/source3/libsmb/libsmb_stat.c b/source3/libsmb/libsmb_stat.c index 94449e0..6d97e16 100644 --- a/source3/libsmb/libsmb_stat.c +++ b/source3/libsmb/libsmb_stat.c @@ -176,7 +176,9 @@ SMBC_stat_ctx(SMBCCTX *context, &write_time_ts, &change_time_ts, &ino)) { - errno = SMBC_errno(context, srv->cli); + if (errno != EHOSTUNREACH) { + errno = SMBC_errno(context, srv->cli); + } TALLOC_FREE(frame); return -1; } @@ -261,6 +263,9 @@ SMBC_fstat_ctx(SMBCCTX *context, if (!NT_STATUS_IS_OK(status)) { d_printf("Could not resolve %s\n", path); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } TALLOC_FREE(frame); return -1; } diff --git a/source3/libsmb/libsmb_xattr.c b/source3/libsmb/libsmb_xattr.c index 7d34290..a8a06a6 100644 --- a/source3/libsmb/libsmb_xattr.c +++ b/source3/libsmb/libsmb_xattr.c @@ -897,6 +897,9 @@ cacl_get(SMBCCTX *context, DEBUG(5, ("cacl_get Could not resolve %s\n", filename)); errno = ENOENT; + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } return -1; } @@ -1554,6 +1557,9 @@ cacl_set(SMBCCTX *context, cli, filename, &targetcli, &targetpath); if (!NT_STATUS_IS_OK(status)) { DEBUG(5,("cacl_set: Could not resolve %s\n", filename)); + if (targetcli == NULL) { + errno = EHOSTUNREACH; + } errno = ENOENT; return -1; }