aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2013-02-23 19:39:22 +0000
committerSteve Holme <steve_holme@hotmail.com>2013-02-23 19:39:22 +0000
commit8a468ef2225d77e195459e44a14d391a651ed5ae (patch)
treec36b578e266a2813281180c18f954069f8a97be8 /lib
parented7d438a124a2504f07e19379cc90c45b530a8ea (diff)
smtp: Moved the per-request variables to the per-request data structure
Moved the rcpt variable from the per-connection struct smtp_conn to the new per-request struct and fixed references accordingly.
Diffstat (limited to 'lib')
-rw-r--r--lib/smtp.c24
-rw-r--r--lib/smtp.h2
2 files changed, 13 insertions, 13 deletions
diff --git a/lib/smtp.c b/lib/smtp.c
index 6e802b253..8b882afc3 100644
--- a/lib/smtp.c
+++ b/lib/smtp.c
@@ -1007,16 +1007,17 @@ static CURLcode smtp_mail(struct connectdata *conn)
static CURLcode smtp_rcpt_to(struct connectdata *conn)
{
CURLcode result = CURLE_OK;
- struct smtp_conn *smtpc = &conn->proto.smtpc;
+ struct SessionHandle *data = conn->data;
+ struct SMTP *smtp = data->state.proto.smtp;
/* Send the RCPT TO command */
- if(smtpc->rcpt) {
- if(smtpc->rcpt->data[0] == '<')
+ if(smtp->rcpt) {
+ if(smtp->rcpt->data[0] == '<')
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "RCPT TO:%s",
- smtpc->rcpt->data);
+ smtp->rcpt->data);
else
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "RCPT TO:<%s>",
- smtpc->rcpt->data);
+ smtp->rcpt->data);
if(!result)
state(conn, SMTP_RCPT);
}
@@ -1030,6 +1031,7 @@ static CURLcode smtp_state_mail_resp(struct connectdata *conn, int smtpcode,
{
CURLcode result = CURLE_OK;
struct SessionHandle *data = conn->data;
+ struct SMTP *smtp = data->state.proto.smtp;
(void)instate; /* no use for this yet */
@@ -1039,8 +1041,7 @@ static CURLcode smtp_state_mail_resp(struct connectdata *conn, int smtpcode,
state(conn, SMTP_STOP);
}
else {
- struct smtp_conn *smtpc = &conn->proto.smtpc;
- smtpc->rcpt = data->set.mail_rcpt;
+ smtp->rcpt = data->set.mail_rcpt;
result = smtp_rcpt_to(conn);
}
@@ -1054,6 +1055,7 @@ static CURLcode smtp_state_rcpt_resp(struct connectdata *conn, int smtpcode,
{
CURLcode result = CURLE_OK;
struct SessionHandle *data = conn->data;
+ struct SMTP *smtp = data->state.proto.smtp;
(void)instate; /* no use for this yet */
@@ -1063,14 +1065,12 @@ static CURLcode smtp_state_rcpt_resp(struct connectdata *conn, int smtpcode,
state(conn, SMTP_STOP);
}
else {
- struct smtp_conn *smtpc = &conn->proto.smtpc;
-
- if(smtpc->rcpt) {
- smtpc->rcpt = smtpc->rcpt->next;
+ if(smtp->rcpt) {
+ smtp->rcpt = smtp->rcpt->next;
result = smtp_rcpt_to(conn);
/* If we failed or still are sending RCPT data then return */
- if(result || smtpc->rcpt)
+ if(result || smtp->rcpt)
return result;
}
diff --git a/lib/smtp.h b/lib/smtp.h
index f78e2c5b4..ee057af79 100644
--- a/lib/smtp.h
+++ b/lib/smtp.h
@@ -62,6 +62,7 @@ struct SMTP {
char *user; /* User name string */
char *passwd; /* Password string */
curl_pp_transfer transfer;
+ struct curl_slist *rcpt; /* Recipient list */
};
/* smtp_conn is used for struct connection-oriented data in the connectdata
@@ -74,7 +75,6 @@ struct smtp_conn {
unsigned int authmechs; /* Accepted authentication mechanisms */
unsigned int authused; /* Auth mechanism used for the connection */
smtpstate state; /* Always use smtp.c:state() to change state! */
- struct curl_slist *rcpt; /* Recipient list */
bool ssldone; /* Is connect() over SSL done? */
bool tls_supported; /* StartTLS capability supported by server */
bool size_supported; /* If server supports SIZE extension according to