[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Nmh-commits] CVS: nmh/uip popsbr.c,1.8,1.9
From: |
Ken Hornstein <address@hidden> |
Subject: |
[Nmh-commits] CVS: nmh/uip popsbr.c,1.8,1.9 |
Date: |
Fri, 05 Sep 2003 17:07:52 -0400 |
Update of /cvsroot/nmh/nmh/uip
In directory subversions:/tmp/cvs-serv2428/uip
Modified Files:
popsbr.c
Log Message:
Merge in changes from the 1.1 branch.
Index: popsbr.c
===================================================================
RCS file: /cvsroot/nmh/nmh/uip/popsbr.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** popsbr.c 2 Jul 2002 22:09:15 -0000 1.8
--- popsbr.c 5 Sep 2003 21:07:49 -0000 1.9
***************
*** 28,31 ****
--- 28,32 ----
#ifdef CYRUS_SASL
# include <sasl.h>
+ # include <saslutil.h>
#endif /* CYRUS_SASL */
***************
*** 78,81 ****
--- 79,83 ----
{ SASL_CB_PASS, sasl_get_pass, NULL },
#define POP_SASL_CB_N_PASS 1
+ { SASL_CB_LOG, NULL, NULL },
{ SASL_CB_LIST_END, NULL, NULL },
};
***************
*** 164,173 ****
pop_auth_sasl(char *user, char *host, char *mech)
{
! int result, status, sasl_capability = 0, outlen;
! unsigned int buflen;
char server_mechs[256], *buf, outbuf[BUFSIZ];
const char *chosen_mech;
sasl_security_properties_t secprops;
- sasl_external_properties_t extprops;
struct pass_context p_context;
sasl_ssf_t *ssf;
--- 166,174 ----
pop_auth_sasl(char *user, char *host, char *mech)
{
! int result, status, sasl_capability = 0;
! unsigned int buflen, outlen;
char server_mechs[256], *buf, outbuf[BUFSIZ];
const char *chosen_mech;
sasl_security_properties_t secprops;
struct pass_context p_context;
sasl_ssf_t *ssf;
***************
*** 241,245 ****
}
! result = sasl_client_new("pop", host, NULL, SASL_SECURITY_LAYER, &conn);
if (result != SASL_OK) {
--- 242,246 ----
}
! result = sasl_client_new("pop", host, NULL, NULL, NULL, 0, &conn);
if (result != SASL_OK) {
***************
*** 256,260 ****
secprops.maxbufsize = BUFSIZ;
secprops.max_ssf = UINT_MAX;
- memset(&extprops, 0, sizeof(extprops));
result = sasl_setprop(conn, SASL_SEC_PROPS, &secprops);
--- 257,260 ----
***************
*** 262,276 ****
if (result != SASL_OK) {
snprintf(response, sizeof(response), "SASL security property "
! "initialization failed: %s",
! sasl_errstring(result, NULL, NULL));
! return NOTOK;
! }
!
! result = sasl_setprop(conn, SASL_SSF_EXTERNAL, &extprops);
!
! if (result != SASL_OK) {
! snprintf(response, sizeof(response), "SASL external property "
! "initialization failed: %s",
! sasl_errstring(result, NULL, NULL));
return NOTOK;
}
--- 262,266 ----
if (result != SASL_OK) {
snprintf(response, sizeof(response), "SASL security property "
! "initialization failed: %s", sasl_errdetail(conn));
return NOTOK;
}
***************
*** 281,290 ****
*/
! result = sasl_client_start(conn, mech ? mech : server_mechs,
! NULL, NULL, &buf, &buflen, &chosen_mech);
if (result != SASL_OK && result != SASL_CONTINUE) {
snprintf(response, sizeof(response), "SASL client start failed: %s",
! sasl_errstring(result, NULL, NULL));
return NOTOK;
}
--- 271,282 ----
*/
! result = sasl_client_start(conn,
! (const char *) (mech ? mech : server_mechs),
! NULL, (const char **) &buf,
! &buflen, &chosen_mech);
if (result != SASL_OK && result != SASL_CONTINUE) {
snprintf(response, sizeof(response), "SASL client start failed: %s",
! sasl_errdetail(conn));
return NOTOK;
}
***************
*** 292,296 ****
if (buflen) {
status = sasl_encode64(buf, buflen, outbuf, sizeof(outbuf), NULL);
- free(buf);
if (status != SASL_OK) {
snprintf(response, sizeof(response), "SASL base64 encode "
--- 284,287 ----
***************
*** 328,332 ****
result = sasl_decode64(response + 2, strlen(response + 2),
! outbuf, &outlen);
if (result != SASL_OK) {
--- 319,323 ----
result = sasl_decode64(response + 2, strlen(response + 2),
! outbuf, sizeof(outbuf), &outlen);
if (result != SASL_OK) {
***************
*** 337,351 ****
}
! result = sasl_client_step(conn, outbuf, outlen, NULL, &buf, &buflen);
if (result != SASL_OK && result != SASL_CONTINUE) {
command("*");
snprintf(response, sizeof(response), "SASL client negotiaton "
! "failed: %s", sasl_errstring(result, NULL, NULL));
return NOTOK;
}
status = sasl_encode64(buf, buflen, outbuf, sizeof(outbuf), NULL);
- free(buf);
if (status != SASL_OK) {
--- 328,342 ----
}
! result = sasl_client_step(conn, outbuf, outlen, NULL,
! (const char **) &buf, &buflen);
if (result != SASL_OK && result != SASL_CONTINUE) {
command("*");
snprintf(response, sizeof(response), "SASL client negotiaton "
! "failed: %s", sasl_errdetail(conn));
return NOTOK;
}
status = sasl_encode64(buf, buflen, outbuf, sizeof(outbuf), NULL);
if (status != SASL_OK) {
***************
*** 368,393 ****
/*
- * Depending on the mechanism, we might need to call sasl_client_step()
- * one more time. Do that now.
- */
-
- result = sasl_client_step(conn, NULL, 0, NULL, &buf, &buflen);
-
- if (result != SASL_OK) {
- snprintf(response, sizeof(response), "SASL final client negotiaton "
- "failed: %s", sasl_errstring(result, NULL, NULL));
- return NOTOK;
- }
-
- /*
* We _should_ be okay now. Get a few properties now that negotiation
* has completed.
*/
! result = sasl_getprop(conn, SASL_MAXOUTBUF, (void **) &moutbuf);
if (result != SASL_OK) {
snprintf(response, sizeof(response), "Cannot retrieve SASL negotiated "
! "output buffer size: %s", sasl_errstring(result, NULL, NULL));
return NOTOK;
}
--- 359,371 ----
/*
* We _should_ be okay now. Get a few properties now that negotiation
* has completed.
*/
! result = sasl_getprop(conn, SASL_MAXOUTBUF, (const void **) &moutbuf);
if (result != SASL_OK) {
snprintf(response, sizeof(response), "Cannot retrieve SASL negotiated "
! "output buffer size: %s", sasl_errdetail(conn));
return NOTOK;
}
***************
*** 395,399 ****
maxoutbuf = *moutbuf;
! result = sasl_getprop(conn, SASL_SSF, (void **) &ssf);
sasl_ssf = *ssf;
--- 373,377 ----
maxoutbuf = *moutbuf;
! result = sasl_getprop(conn, SASL_SSF, (const void **) &ssf);
sasl_ssf = *ssf;
***************
*** 401,406 ****
if (result != SASL_OK) {
snprintf(response, sizeof(response), "Cannot retrieve SASL negotiated "
! "security strength factor: %s",
! sasl_errstring(result, NULL, NULL));
return NOTOK;
}
--- 379,383 ----
if (result != SASL_OK) {
snprintf(response, sizeof(response), "Cannot retrieve SASL negotiated "
! "security strength factor: %s", sasl_errdetail(conn));
return NOTOK;
}
***************
*** 462,466 ****
(*psecret)->len = len;
! strcpy((*psecret)->data, pass);
return SASL_OK;
--- 439,443 ----
(*psecret)->len = len;
! strcpy((char *) (*psecret)->data, pass);
return SASL_OK;
***************
*** 1077,1090 ****
strcat(outbuf, "\r\n");
! result = sasl_encode(conn, outbuf, strlen(outbuf), &buf, &buflen);
if (result != SASL_OK) {
snprintf(response, sizeof(response), "SASL encoding error: %s",
! sasl_errstring(result, NULL, NULL));
return NOTOK;
}
fwrite(buf, buflen, 1, iop);
- free(buf);
}
#endif /* CYRUS_SASL */
--- 1054,1067 ----
strcat(outbuf, "\r\n");
! result = sasl_encode(conn, outbuf, strlen(outbuf),
! (const char **) &buf, &buflen);
if (result != SASL_OK) {
snprintf(response, sizeof(response), "SASL encoding error: %s",
! sasl_errdetail(conn));
return NOTOK;
}
fwrite(buf, buflen, 1, iop);
}
#endif /* CYRUS_SASL */
***************
*** 1152,1160 ****
} else {
! result = sasl_decode(conn, tmpbuf, cc, &retbuf, &retbufsize);
if (result != SASL_OK) {
snprintf(response, sizeof(response), "Error during SASL "
! "decoding: %s", sasl_errstring(result, NULL, NULL));
return -2;
}
--- 1129,1138 ----
} else {
! result = sasl_decode(conn, tmpbuf, cc,
! (const char **) &retbuf, &retbufsize);
if (result != SASL_OK) {
snprintf(response, sizeof(response), "Error during SASL "
! "decoding: %s", sasl_errdetail(conn));
return -2;
}
***************
*** 1175,1180 ****
ptr = buffer + 1;
cnt = retbufsize - 1;
- if (sasl_complete)
- free(retbuf);
return (int) buffer[0];
--- 1153,1156 ----
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Nmh-commits] CVS: nmh/uip popsbr.c,1.8,1.9,
Ken Hornstein <address@hidden> <=
- Prev by Date:
[Nmh-commits] CVS: nmh/mts/smtp smtp.c,1.14,1.14.2.1
- Next by Date:
[Nmh-commits] CVS: nmh DATE, 1.1.2.1, 1.1.2.2 VERSION, 1.12.2.1, 1.12.2.2
- Previous by thread:
[Nmh-commits] CVS: nmh/mts/smtp smtp.c,1.14,1.14.2.1
- Next by thread:
[Nmh-commits] CVS: nmh DATE, 1.1.2.1, 1.1.2.2 VERSION, 1.12.2.1, 1.12.2.2
- Index(es):