sasl-ir: Added CURLOPT_SASL_IR to enable/disable the SASL initial response
authorSteve Holme <steve_holme@hotmail.com>
Sat, 27 Apr 2013 08:39:21 +0000 (09:39 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sat, 27 Apr 2013 08:58:20 +0000 (09:58 +0100)
include/curl/curl.h
lib/url.c
lib/urldata.h

index c7a052d..e8ec9ee 100644 (file)
@@ -1527,9 +1527,12 @@ typedef enum {
   /* Enable/disable specific SSL features with a bitmask, see CURLSSLOPT_* */
   CINIT(SSL_OPTIONS, LONG, 216),
 
-  /* set the SMTP auth originator */
+  /* Set the SMTP auth originator */
   CINIT(MAIL_AUTH, OBJECTPOINT, 217),
 
+  /* Enable/disable SASL initial response */
+  CINIT(SASL_IR, LONG, 218),
+
   CURLOPT_LASTENTRY /* the last unused */
 } CURLoption;
 
index b1ba8f1..e116a5b 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -2246,20 +2246,27 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
     break;
 
   case CURLOPT_MAIL_FROM:
+    /* Set the SMTP mail originator */
     result = setstropt(&data->set.str[STRING_MAIL_FROM],
                        va_arg(param, char *));
     break;
 
   case CURLOPT_MAIL_AUTH:
+    /* Set the SMTP auth originator */
     result = setstropt(&data->set.str[STRING_MAIL_AUTH],
                        va_arg(param, char *));
     break;
 
   case CURLOPT_MAIL_RCPT:
-    /* get a list of mail recipients */
+    /* Set the list of mail recipients */
     data->set.mail_rcpt = va_arg(param, struct curl_slist *);
     break;
 
+  case CURLOPT_SASL_IR:
+    /* Enable/disable SASL initial response */
+    data->set.sasl_ir = (0 != va_arg(param, long)) ? TRUE : FALSE;
+    break;
+
   case CURLOPT_RTSP_REQUEST:
     {
       /*
index 092398b..55f4884 100644 (file)
@@ -1563,6 +1563,7 @@ struct UserDefined {
   long socks5_gssapi_nec; /* flag to support nec socks5 server */
 #endif
   struct curl_slist *mail_rcpt; /* linked list of mail recipients */
+  bool sasl_ir;         /* Enable/disable SASL initial response */
   /* Common RTSP header options */
   Curl_RtspReq rtspreq; /* RTSP request type */
   long rtspversion; /* like httpversion, for RTSP */