Update TFTP and FTP to take the same temporary URI scheme as HTTP

This commit is contained in:
Michael Brown
2007-01-15 09:58:26 +00:00
parent afa752f5fb
commit df0397f334
5 changed files with 174 additions and 91 deletions

View File

@@ -38,12 +38,12 @@ enum ftp_state {
*
*/
struct ftp_request {
/** Server address */
struct sockaddr_tcpip server;
/** File to download */
const char *filename;
/** URI being fetched */
struct uri *uri;
/** Data buffer to fill */
struct buffer *buffer;
/** Asynchronous operation */
struct async async;
/** Current state */
enum ftp_state state;
@@ -57,16 +57,13 @@ struct ftp_request {
char status_text[4];
/** Passive-mode parameters, as text */
char passive_text[24]; /* "aaa,bbb,ccc,ddd,eee,fff" */
/** TCP application for the control channel */
struct tcp_application tcp;
/** TCP application for the data channel */
struct tcp_application tcp_data;
/** Asynchronous operation for this FTP operation */
struct async async;
};
struct async_operation * ftp_get ( struct ftp_request *ftp );
extern int ftp_get ( struct uri *uri, struct buffer *buffer,
struct async *parent );
#endif /* _GPXE_FTP_H */

View File

@@ -86,12 +86,13 @@ union tftp_any {
* This data structure holds the state for an ongoing TFTP transfer.
*/
struct tftp_session {
/** UDP connection */
struct udp_connection udp;
/** Filename */
const char *filename;
/** URI being fetched */
struct uri *uri;
/** Data buffer to fill */
struct buffer *buffer;
/** Asynchronous operation */
struct async async;
/** Requested data block size
*
* This is the "blksize" option requested from the TFTP
@@ -133,15 +134,15 @@ struct tftp_session {
* (i.e. that no blocks have yet been received).
*/
int state;
/** Asynchronous operation for this session */
struct async async;
/** UDP connection */
struct udp_connection udp;
/** Retransmission timer */
struct retry_timer timer;
};
/* Function prototypes */
extern struct async_operation * tftp_get ( struct tftp_session *tftp );
extern int tftp_get ( struct uri *uri, struct buffer *buffer,
struct async *parent );
#endif /* _GPXE_TFTP_H */