tftp: do not show progress bar if we get error right away. +13 bytes
No binary (build failed)
—
(log yok)
| @@ -1490,6 +1490,7 @@ typedef struct bb_progress_t { | |
| off_t lastsize; | |
| unsigned lastupdate_sec; | |
| unsigned start_sec; | |
| + | smallint inited; |
| } bb_progress_t; | |
| void bb_progress_init(bb_progress_t *p) FAST_FUNC; | |
| @@ -57,6 +57,7 @@ void FAST_FUNC bb_progress_init(bb_progress_t *p) | |
| p->start_sec = monotonic_sec(); | |
| p->lastupdate_sec = p->start_sec; | |
| p->lastsize = 0; | |
| + | p->inited = 1; |
| } | |
| void FAST_FUNC bb_progress_update(bb_progress_t *p, | |
| @@ -860,7 +860,7 @@ config TFTPD | |
| or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR" | |
| config FEATURE_TFTP_GET | |
| - | bool "Enable \"get\" command" |
| + | bool "Enable 'tftp get' and/or tftpd upload code" |
| default y | |
| depends on TFTP || TFTPD | |
| help | |
| @@ -868,8 +868,11 @@ config FEATURE_TFTP_GET | |
| a client to retrieve a file from a TFTP server. | |
| Also enable upload support in tftpd, if tftpd is selected. | |
| + | Note: this option does _not_ make tftpd capable of download |
| + | (the usual operation people need from it)! |
| + | |
| config FEATURE_TFTP_PUT | |
| - | bool "Enable \"put\" command" |
| + | bool "Enable 'tftp put' and/or tftpd download code" |
| default y | |
| depends on TFTP || TFTPD | |
| help | |
| @@ -376,11 +376,6 @@ static int process_packet(struct dns_entry *conf_data, | |
| /* QR = 1 "response", RCODE = 4 "Not Implemented" */ | |
| outr_flags = htons(0x8000 | 4); | |
| err_msg = NULL; | |
| - | /* OPCODE != 0 "standard query" ? */ |
| - | if ((head->flags & htons(0x7800)) != 0) { |
| - | err_msg = "opcode != 0"; |
| - | goto empty_packet; |
| - | } |
| /* start of query string */ | |
| query_string = (void *)(head + 1); | |
| @@ -392,6 +387,11 @@ static int process_packet(struct dns_entry *conf_data, | |
| /* where to append answer block */ | |
| answb = (void *)(unaligned_type_class + 1); | |
| + | /* OPCODE != 0 "standard query"? */ |
| + | if ((head->flags & htons(0x7800)) != 0) { |
| + | err_msg = "opcode != 0"; |
| + | goto empty_packet; |
| + | } |
| move_from_unaligned16(class, &unaligned_type_class->class); | |
| if (class != htons(1)) { /* not class INET? */ | |
| err_msg = "class != 1"; | |
| @@ -135,7 +135,8 @@ static void tftp_progress_init(void) | |
| } | |
| static void tftp_progress_done(void) | |
| { | |
| - | progress_meter(0); |
| + | if (G.pmt.inited) |
| + | progress_meter(0); |
| } | |
| #else | |
| # define tftp_progress_init() ((void)0) | |