Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 379046 Details for
Bug 513486
net-ftp/atftp - increase BKLSIZE
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
atftp-0.7 blksize patch
atftp-0.7-blksize.patch (text/plain), 5.69 KB, created by
Pavel
on 2014-06-16 16:55:10 UTC
(
hide
)
Description:
atftp-0.7 blksize patch
Filename:
MIME Type:
Creator:
Pavel
Created:
2014-06-16 16:55:10 UTC
Size:
5.69 KB
patch
obsolete
>--- tftp_def.h.orig 2014-06-16 19:14:05.000000000 +0400 >+++ tftp_def.h 2014-06-16 19:15:58.000000000 +0400 >@@ -32,6 +32,7 @@ > #define TIMEOUT 5 /* Client timeout */ > #define S_TIMEOUT 5 /* Server timout. */ > #define NB_OF_RETRY 5 >+#define MAXBLOCKS 500000 /* maximum number of blocks in a download */ > > /* definition to use tftp_options structure */ > #define OPT_FILENAME 0 >--- tftp_file.c.orig 2014-06-16 19:14:05.000000000 +0400 >+++ tftp_file.c 2014-06-16 19:19:30.000000000 +0400 >@@ -609,8 +609,8 @@ > int state = S_SEND_REQ; /* current state in the state machine */ > int timeout_state = state; /* what state should we go on when timeout */ > int result; >- int block_number = 0; >- int last_block = -1; >+ long block_number = 0; >+ long last_block = -1; > int data_size; /* size of data received */ > int sockfd = data->sockfd; /* just to simplify calls */ > struct sockaddr_in sa; /* a copy of data.sa_peer */ >@@ -624,8 +624,8 @@ > char string[MAXLEN]; > > int ack_block_number; >- int prev_block_number = 0; /* needed to support netascii convertion */ >- int prev_file_pos = 0; >+ long prev_block_number = 0; /* needed to support netascii convertion */ >+ long prev_file_pos = 0; > int temp = 0; > size_t ignore; > >@@ -733,7 +733,7 @@ > data_size, data->data_buffer); > data->file_size += data_size; > if (data->trace) >- fprintf(stderr, "sent DATA <block: %d, size: %d>\n", >+ fprintf(stderr, "sent DATA <block: %ld, size: %d>\n", > block_number + 1, data_size - 4); > state = S_WAIT_PACKET; > break; >--- tftp_io.c.orig 2014-06-16 19:14:05.000000000 +0400 >+++ tftp_io.c 2014-06-16 19:23:21.000000000 +0400 >@@ -337,8 +337,8 @@ > /* > * Read from file and do netascii conversion if needed > */ >-int tftp_file_read(FILE *fp, char *data_buffer, int data_buffer_size, int block_number, >- int convert, int *prev_block_number, int *prev_file_pos, int *temp) >+int tftp_file_read(FILE *fp, char *data_buffer, int data_buffer_size, long block_number, >+ int convert, long *prev_block_number, long *prev_file_pos, int *temp) > { > int i; > int c; >--- tftp_io.h.orig 2004-02-13 06:16:09.000000000 +0300 >+++ tftp_io.h 2014-06-16 19:25:08.000000000 +0400 >@@ -52,8 +52,8 @@ > int tftp_get_packet(int sock1, int sock2, int *sock, struct sockaddr_in *sa, > struct sockaddr_in *from, struct sockaddr_in *to, > int timeout, int *size, char *data); >-int tftp_file_read(FILE *fp, char *buffer, int buffer_size, int block_number, int convert, >- int *prev_block_number, int *prev_file_pos, int *temp); >+int tftp_file_read(FILE *fp, char *buffer, int buffer_size, long block_number, int convert, >+ long *prev_block_number, long *prev_file_pos, int *temp); > int tftp_file_write(FILE *fp, char *data_buffer, int data_buffer_size, int block_number, > int data_size, int convert, int *prev_block_number, int *temp); > #endif >--- tftpd_file.c.orig 2004-02-18 05:21:47.000000000 +0300 >+++ tftpd_file.c 2014-06-16 19:36:51.000000000 +0400 >@@ -402,8 +402,9 @@ > int state = S_BEGIN; > int timeout_state = state; > int result; >- int block_number = 0; >- int last_block = -1; >+ long block_number = 0; >+ long last_block = -1; >+ int block_loops = 0; > int data_size; > struct sockaddr_in *sa = &data->client_info->client; > struct sockaddr_in from; >@@ -425,8 +426,8 @@ > struct client_info *client_old = NULL; > struct tftp_opt options[OPT_NUMBER]; > >- int prev_block_number = 0; /* needed to support netascii convertion */ >- int prev_file_pos = 0; >+ long prev_block_number = 0; /* needed to support netascii convertion */ >+ long prev_file_pos = 0; > int temp = 0; > > /* look for mode option */ >@@ -559,11 +560,12 @@ > logger(LOG_INFO, "blksize option -> %d", result); > } > >- /* Verify that the file can be sent in 2^16 block of BLKSIZE octets */ >- if ((file_stat.st_size / (data->data_buffer_size - 4)) > 65535) >+ /* Verify that the file can be sent in MAXBLOCKS blocks of BLKSIZE octets */ >+ if ((file_stat.st_size / (data->data_buffer_size - 4)) > MAXBLOCKS) > { > tftp_send_error(sockfd, sa, EUNDEF, data->data_buffer, data->data_buffer_size); >- logger(LOG_NOTICE, "Requested file to big, increase BLKSIZE"); >+ logger(LOG_NOTICE, "Requested file too big, increase BLKSIZE"); >+ logger(LOG_NOTICE, "Only %d blocks of %d bytes can be served.", MAXBLOCKS, data->data_buffer_size); > if (data->trace) > logger(LOG_DEBUG, "sent ERROR <code: %d, msg: %s>", EUNDEF, > tftp_errmsg[EUNDEF]); >@@ -852,10 +854,15 @@ > } > /* The ACK is from the current client */ > number_of_timeout = 0; >- block_number = ntohs(tftphdr->th_block); >+ block_number = (block_loops * 65536) + ntohs(tftphdr->th_block); > if (data->trace) >- logger(LOG_DEBUG, "received ACK <block: %d>", >- block_number); >+ { >+ logger(LOG_DEBUG, "received ACK <block: %d>", block_number); >+ } >+ if (ntohs(tftphdr->th_block) == 65535) >+ { >+ block_loops++; >+ }; > if ((last_block != -1) && (block_number > last_block)) > { > state = S_END;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 513486
: 379046 |
379048