mirror of
https://github.com/rkd77/elinks.git
synced 2025-02-02 15:09:23 -05:00
fsp: Try to support large files.
FSP v2 uses 32-bit file offsets in its UDP packets and cannot get past 4 GiB. ELinks should however try not to wrap the numbers to negative at 2 GiB, if it is built with large file support.
This commit is contained in:
parent
1d0a3e9f7c
commit
9f47368894
@ -279,7 +279,7 @@ do_fsp(struct connection *conn)
|
||||
}
|
||||
|
||||
/* Send filesize */
|
||||
fprintf(stderr, "%d\n", (unsigned int)(sb.st_size));
|
||||
fprintf(stderr, "%" OFF_T_FORMAT "\n", (off_t)(sb.st_size));
|
||||
fclose(stderr);
|
||||
|
||||
while ((r = fsp_fread(buf, 1, READ_SIZE, file)) > 0)
|
||||
@ -397,7 +397,11 @@ fsp_got_header(struct socket *socket, struct read_buffer *rb)
|
||||
mem_free(ctype);
|
||||
} else {
|
||||
if (ctype[0] >= '0' && ctype[0] <= '9') {
|
||||
conn->est_length = (off_t)atoi(ctype);
|
||||
#ifdef HAVE_ATOLL
|
||||
conn->est_length = (off_t)atoll(ctype);
|
||||
#else
|
||||
conn->est_length = (off_t)atol(ctype);
|
||||
#endif
|
||||
mem_free(ctype);
|
||||
|
||||
/* avoid read from socket error */
|
||||
|
Loading…
x
Reference in New Issue
Block a user