version 1.47, 2004/06/25 05:38:48 |
version 1.47.4.1, 2005/09/04 18:40:04 |
|
|
static void |
static void |
handle_init(void) |
handle_init(void) |
{ |
{ |
int i; |
u_int i; |
|
|
for (i = 0; i < sizeof(handles)/sizeof(Handle); i++) |
for (i = 0; i < sizeof(handles)/sizeof(Handle); i++) |
handles[i].use = HANDLE_UNUSED; |
handles[i].use = HANDLE_UNUSED; |
|
|
static int |
static int |
handle_new(int use, const char *name, int fd, DIR *dirp) |
handle_new(int use, const char *name, int fd, DIR *dirp) |
{ |
{ |
int i; |
u_int i; |
|
|
for (i = 0; i < sizeof(handles)/sizeof(Handle); i++) { |
for (i = 0; i < sizeof(handles)/sizeof(Handle); i++) { |
if (handles[i].use == HANDLE_UNUSED) { |
if (handles[i].use == HANDLE_UNUSED) { |
|
|
static int |
static int |
handle_is_ok(int i, int type) |
handle_is_ok(int i, int type) |
{ |
{ |
return i >= 0 && i < sizeof(handles)/sizeof(Handle) && |
return i >= 0 && (u_int)i < sizeof(handles)/sizeof(Handle) && |
handles[i].use == type; |
handles[i].use == type; |
} |
} |
|
|
|
|
} else { |
} else { |
/* XXX ATOMICIO ? */ |
/* XXX ATOMICIO ? */ |
ret = write(fd, data, len); |
ret = write(fd, data, len); |
if (ret == -1) { |
if (ret < 0) { |
error("process_write: write failed"); |
error("process_write: write failed"); |
status = errno_to_portable(errno); |
status = errno_to_portable(errno); |
} else if (ret == len) { |
} else if ((size_t)ret == len) { |
status = SSH2_FX_OK; |
status = SSH2_FX_OK; |
} else { |
} else { |
logit("nothing at all written"); |
logit("nothing at all written"); |