ftpfs: Format

This commit is contained in:
Sebastian Huber
2012-11-21 12:20:14 +01:00
parent 55a36b724c
commit be6f505df7

View File

@@ -5,10 +5,11 @@
*/ */
/* /*
* Copyright (c) 2009-2012 * Copyright (c) 2009-2012 embedded brains GmbH.
*
* embedded brains GmbH * embedded brains GmbH
* Obere Lagerstr. 30 * Obere Lagerstr. 30
* D-82178 Puchheim * 82178 Puchheim
* Germany * Germany
* <rtems@embedded-brains.de> * <rtems@embedded-brains.de>
* *
@@ -19,8 +20,6 @@
* 82178 Puchheim, Germany * 82178 Puchheim, Germany
* <Thomas.Doerfler@imd-systems.de> * <Thomas.Doerfler@imd-systems.de>
* *
* Modified by Sebastian Huber <sebastian.huber@embedded-brains.de>.
*
* This code has been created after closly inspecting "tftpdriver.c" from Eric * This code has been created after closly inspecting "tftpdriver.c" from Eric
* Norum. * Norum.
* *
@@ -818,8 +817,8 @@ typedef enum {
typedef struct { typedef struct {
rtems_ftpfs_pasv_state state; rtems_ftpfs_pasv_state state;
uint8_t data [6];
size_t index; size_t index;
uint8_t data [6];
} rtems_ftpfs_pasv_entry; } rtems_ftpfs_pasv_entry;
static void rtems_ftpfs_pasv_parser( static void rtems_ftpfs_pasv_parser(
@@ -828,37 +827,38 @@ static void rtems_ftpfs_pasv_parser(
void *arg void *arg
) )
{ {
rtems_ftpfs_pasv_entry *e = arg; rtems_ftpfs_pasv_entry *pe = arg;
size_t i = 0; size_t i = 0;
for (i = 0; i < len; ++i) { for (i = 0; i < len; ++i) {
int c = buf [i]; int c = buf [i];
switch (e->state) { switch (pe->state) {
case RTEMS_FTPFS_PASV_START: case RTEMS_FTPFS_PASV_START:
if (!isdigit(c)) { if (!isdigit(c)) {
e->state = RTEMS_FTPFS_PASV_JUNK; pe->state = RTEMS_FTPFS_PASV_JUNK;
e->index = 0; pe->index = 0;
} }
break; break;
case RTEMS_FTPFS_PASV_JUNK: case RTEMS_FTPFS_PASV_JUNK:
if (isdigit(c)) { if (isdigit(c)) {
e->state = RTEMS_FTPFS_PASV_DATA; pe->state = RTEMS_FTPFS_PASV_DATA;
e->data [e->index] = (uint8_t) (c - '0'); pe->data [pe->index] = (uint8_t) (c - '0');
} }
break; break;
case RTEMS_FTPFS_PASV_DATA: case RTEMS_FTPFS_PASV_DATA:
if (isdigit(c)) { if (isdigit(c)) {
e->data [e->index] = (uint8_t) (e->data [e->index] * 10 + c - '0'); pe->data [pe->index] =
(uint8_t) (pe->data [pe->index] * 10 + c - '0');
} else if (c == ',') { } else if (c == ',') {
++e->index; ++pe->index;
if (e->index < sizeof(e->data)) { if (pe->index < sizeof(pe->data)) {
e->data [e->index] = 0; pe->data [pe->index] = 0;
} else { } else {
e->state = RTEMS_FTPFS_PASV_DONE; pe->state = RTEMS_FTPFS_PASV_DONE;
} }
} else { } else {
e->state = RTEMS_FTPFS_PASV_DONE; pe->state = RTEMS_FTPFS_PASV_DONE;
} }
break; break;
default: default:
@@ -881,10 +881,9 @@ static int rtems_ftpfs_open_data_connection_passive(
struct sockaddr_in sa; struct sockaddr_in sa;
uint32_t data_address = 0; uint32_t data_address = 0;
uint16_t data_port = 0; uint16_t data_port = 0;
rtems_ftpfs_pasv_entry pe;
rtems_ftpfs_pasv_entry pe = { memset(&pe, 0, sizeof(pe));
.state = RTEMS_FTPFS_PASV_START
};
/* Send PASV command */ /* Send PASV command */
reply = rtems_ftpfs_send_command_with_parser( reply = rtems_ftpfs_send_command_with_parser(
@@ -898,8 +897,10 @@ static int rtems_ftpfs_open_data_connection_passive(
if (reply != RTEMS_FTPFS_REPLY_2) { if (reply != RTEMS_FTPFS_REPLY_2) {
return ENOTSUP; return ENOTSUP;
} }
data_address = ((uint32_t)(pe.data [0]) << 24) + ((uint32_t)(pe.data [1]) << 16) data_address = ((uint32_t)(pe.data [0]) << 24)
+ ((uint32_t)(pe.data [2]) << 8) + ((uint32_t)(pe.data [3])); + ((uint32_t)(pe.data [1]) << 16)
+ ((uint32_t)(pe.data [2]) << 8)
+ ((uint32_t)(pe.data [3]));
data_port = (uint16_t) ((pe.data [4] << 8) + pe.data [5]); data_port = (uint16_t) ((pe.data [4] << 8) + pe.data [5]);
rtems_ftpfs_create_address(&sa, htonl(data_address), htons(data_port)); rtems_ftpfs_create_address(&sa, htonl(data_address), htons(data_port));
DEBUG_PRINTF( DEBUG_PRINTF(