summaryrefslogtreecommitdiff
path: root/imap/src/c-client/auth_ext.c
diff options
context:
space:
mode:
Diffstat (limited to 'imap/src/c-client/auth_ext.c')
-rw-r--r--imap/src/c-client/auth_ext.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/imap/src/c-client/auth_ext.c b/imap/src/c-client/auth_ext.c
index b85f6bbf..6f8cf3af 100644
--- a/imap/src/c-client/auth_ext.c
+++ b/imap/src/c-client/auth_ext.c
@@ -27,7 +27,7 @@
* Last Edited: 30 August 2006
*/
-long auth_external_client (authchallenge_t challenger,authrespond_t responder,
+long auth_external_client (authchallenge_t challenger,authrespond_t responder,char *base,
char *service,NETMBX *mb,void *stream, unsigned long port,
unsigned long *trial,char *user);
char *auth_external_server (authresponse_t responder,int argc,char *argv[]);
@@ -52,7 +52,7 @@ AUTHENTICATOR auth_ext = { /* secure, has full auth, hidden */
* Returns: T if success, NIL otherwise, number of trials incremented if retry
*/
-long auth_external_client (authchallenge_t challenger,authrespond_t responder,
+long auth_external_client (authchallenge_t challenger,authrespond_t responder,char *base,
char *service,NETMBX *mb,void *stream, unsigned long port,
unsigned long *trial,char *user)
{
@@ -60,10 +60,10 @@ long auth_external_client (authchallenge_t challenger,authrespond_t responder,
unsigned long clen;
long ret = NIL;
*trial = 65535; /* never retry */
- if ((challenge = (*challenger) (stream,&clen)) != NULL) {
- fs_give ((void **) &challenge);
+ if (base || (challenge = (*challenger) (stream,&clen)) != NULL) {
+ if(base == NIL) fs_give ((void **) &challenge);
/* send authorization id (empty string OK) */
- if ((*responder) (stream,strcpy (user,mb->user),strlen (mb->user))) {
+ if ((*responder) (stream,base,strcpy (user,mb->user),strlen(mb->user))) {
if ((challenge = (*challenger) (stream,&clen)) != NULL)
fs_give ((void **) &challenge);
else ret = LONGT; /* check the authentication */