From 89efea81d9d67ebed159321e8ea496eee54c2deb Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 10 Sep 2006 07:24:41 +0000 Subject: r18319: fixed the directory search resume code on IRIX The problem was twofold: 1) irix returns 64 bit numbers in telldir(). The protocol uses a 32 bit resume key. We now cope with this properly using the code in pvfs_list_seek_ofs(). 2) irix returns 0xFFFFFFFF from telldir() for the last entry in the directory. When added to DIR_OFFSET_BASE this became DIR_OFFSET_DOTDOT which meant an infinite loop! (This used to be commit 8cce9740ed0da9f08d6821beb4acaa9d28d149c2) --- source4/torture/raw/search.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source4/torture/raw/search.c') diff --git a/source4/torture/raw/search.c b/source4/torture/raw/search.c index 6ee21d630a..d10bdf662b 100644 --- a/source4/torture/raw/search.c +++ b/source4/torture/raw/search.c @@ -203,17 +203,17 @@ static const char *extract_name(void *data, enum smb_search_level level, /* extract the name from a smb_data structure and level */ -static int extract_resume_key(void *data, enum smb_search_level level, - enum smb_search_data_level data_level) +static uint32_t extract_resume_key(void *data, enum smb_search_level level, + enum smb_search_data_level data_level) { int i; for (i=0;ilist[result->count-1], io2.t2fnext.level, io2.t2fnext.data_level); - if (io2.t2fnext.in.resume_key <= 0) { + if (io2.t2fnext.in.resume_key == 0) { printf("Server does not support resume by key for level %s\n", level_name(io2.t2fnext.level, io2.t2fnext.data_level)); return NT_STATUS_NOT_SUPPORTED; -- cgit