interact
void interact(const char *rc);
interact(NULL); /* doesn't return */
interact(NULL);
int interact = 0; /* talking to a tty? */
sasl_interact_t *interact;
for (interact = prompts; interact->id != SASL_CB_LIST_END;
interact++) {
interact->result = NULL;
interact->len = 0;
const char *defvalue = interact->defresult;
switch( interact->id ) {
interact->result = (char *)malloc(strlen(defvalue)+1);
if ((char *)interact->result != NULL) {
strcpy((char *)interact->result,defvalue);
interact->len = strlen((char *)(interact->result));
if (interact->id == SASL_CB_PASS && defaults != NULL) {
if ((char *)interact->result == NULL) {
get_new_value(sasl_interact_t *interact, unsigned flags) {
if (interact->id == SASL_CB_ECHOPROMPT || interact->id == SASL_CB_NOECHOPROMPT) {
if (interact->challenge)
fprintf(stderr, gettext("Challenge:%s\n"), interact->challenge);
tmpstr = ldaptool_UTF82local(interact->prompt);
snprintf(str, sizeof(str), "%s:", interact->prompt?interact->prompt:SASL_PROMPT);
sprintf(str, "%s:", interact->prompt?interact->prompt:SASL_PROMPT);
if (interact->id == SASL_CB_PASS || interact->id == SASL_CB_NOECHOPROMPT) {
interact->result = (char *) strdup(newvalue);
if (interact->result == NULL)
interact->len = len;
static int get_default(ldaptoolSASLdefaults *defaults, sasl_interact_t *interact);
static int get_new_value(sasl_interact_t *interact, unsigned flags);
sasl_interact_t *interact;
for (interact = prompts; interact->id != SASL_CB_LIST_END; interact++) {
if ((rc = get_default(sasldefaults, interact)) != LDAP_SUCCESS)
if (interact->result == NULL) {
if ((rc = get_new_value(interact, flags)) != LDAP_SUCCESS)
get_default(ldaptoolSASLdefaults *defaults, sasl_interact_t *interact) {
(LDAP *ld, unsigned flags, void* defaults, void *interact);
sasl_interact_t *interact;
for (interact = prompts; interact->id != SASL_CB_LIST_END;
interact++) {
interact->result = NULL;
interact->len = 0;
sasl_interact_t *interact = in;
while (interact->id != SASL_CB_LIST_END) {
switch (interact->id) {
interact->result = ret;
interact->len = strlen(ret);
interact->result = NULL;
interact->len = 0;
interact++;
sasl_interact_t *interact;
for (interact = prompts; interact->id != SASL_CB_LIST_END;
interact++) {
interact->result = NULL;
interact->len = 0;