Explicit initialization of all FTP struct members in ftp_init()

This commit is contained in:
Yang Tse
2009-11-19 17:21:56 +00:00
parent e8fd5d8062
commit 5129442ee7

View File

@@ -3089,16 +3089,20 @@ static CURLcode ftp_easy_statemach(struct connectdata *conn)
*/ */
static CURLcode ftp_init(struct connectdata *conn) static CURLcode ftp_init(struct connectdata *conn)
{ {
struct SessionHandle *data = conn->data; struct FTP *ftp;
struct FTP *ftp = data->state.proto.ftp;
if(!ftp) { if(NULL == conn->data->state.proto.ftp) {
ftp = data->state.proto.ftp = calloc(1, sizeof(struct FTP)); conn->data->state.proto.ftp = malloc(sizeof(struct FTP));
if(!ftp) if(NULL == conn->data->state.proto.ftp)
return CURLE_OUT_OF_MEMORY; return CURLE_OUT_OF_MEMORY;
} }
ftp = conn->data->state.proto.ftp;
/* get some initial data into the ftp struct */ /* get some initial data into the ftp struct */
ftp->bytecountp = &data->req.bytecount; ftp->bytecountp = &conn->data->req.bytecount;
ftp->transfer = FTPTRANSFER_BODY;
ftp->downloadsize = 0;
/* No need to duplicate user+password, the connectdata struct won't change /* No need to duplicate user+password, the connectdata struct won't change
during a session, but we re-init them here since on subsequent inits during a session, but we re-init them here since on subsequent inits