tftp.c (format_request): pass opcode as argument

This commit is contained in:
Werner Almesberger 2013-04-16 13:55:26 -03:00 committed by Sebastien Bourdeauducq
parent aafb3ef8d7
commit 944dd5932d
1 changed files with 4 additions and 4 deletions

View File

@ -15,12 +15,12 @@ enum {
TFTP_ERROR = 5, /* Error */ TFTP_ERROR = 5, /* Error */
}; };
static int format_request(uint8_t *buf, const char *filename) static int format_request(uint8_t *buf, uint16_t op, const char *filename)
{ {
int len = strlen(filename); int len = strlen(filename);
*buf++ = 0x00; /* Opcode: Request */ *buf++ = op >> 8; /* Opcode */
*buf++ = TFTP_RRQ; *buf++ = op;
memcpy(buf, filename, len); memcpy(buf, filename, len);
buf += len; buf += len;
*buf++ = 0x00; *buf++ = 0x00;
@ -98,7 +98,7 @@ int tftp_get(uint32_t ip, const char *filename, void *buffer)
transfer_finished = 0; transfer_finished = 0;
tries = 5; tries = 5;
while(1) { while(1) {
len = format_request(packet_data, filename); len = format_request(packet_data, TFTP_RRQ, filename);
microudp_send(PORT_IN, PORT_OUT, len); microudp_send(PORT_IN, PORT_OUT, len);
for(i=0;i<2000000;i++) { for(i=0;i<2000000;i++) {
microudp_service(); microudp_service();