*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
+/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
optionlist auth_cram_md5_options[] = {
{ "client_name", opt_stringptr,
- (void *)(offsetof(auth_cram_md5_options_block, client_name)) },
+ OPT_OFF(auth_cram_md5_options_block, client_name) },
{ "client_secret", opt_stringptr,
- (void *)(offsetof(auth_cram_md5_options_block, client_secret)) },
+ OPT_OFF(auth_cram_md5_options_block, client_secret) },
{ "server_secret", opt_stringptr,
- (void *)(offsetof(auth_cram_md5_options_block, server_secret)) }
+ OPT_OFF(auth_cram_md5_options_block, server_secret) }
};
/* Size of the options list. An extern variable has to be used so that its
/* No data should have been sent with the AUTH command */
-if (*data != 0) return UNEXPECTED;
+if (*data) return UNEXPECTED;
/* Send the challenge, read the return */
check that the remaining length is 32. */
auth_vars[0] = expand_nstring[1] = clear;
-while (*clear != 0 && !isspace(*clear)) clear++;
+while (*clear && !isspace(*clear)) clear++;
if (!isspace(*clear)) return FAIL;
*clear++ = 0;
debug_printf("CRAM-MD5: user name = %s\n", auth_vars[0]);
debug_printf(" challenge = %s\n", challenge);
debug_printf(" received = %s\n", clear);
- Ustrcpy(buff," digest = ");
+ Ustrcpy(buff, US" digest = ");
for (i = 0; i < 16; i++) sprintf(CS buff+22+2*i, "%02x", digest[i]);
debug_printf("%.54s\n", buff);
}
so calling smtp_write_command(), which uses big_buffer, is OK. */
buffer[0] = 0;
-if (smtp_write_command(sx, SCMD_FLUSH, "%s\r\n", b64encode(big_buffer,
+if (smtp_write_command(sx, SCMD_FLUSH, "%s\r\n", b64encode(CUS big_buffer,
p - big_buffer)) < 0) return FAIL_SEND;
return smtp_read_response(sx, US buffer, buffsize, '2', timeout)