• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/sendmail/src/

Lines Matching refs:mci

53 **		mci -- the mailer connection info.
65 smtpinit(m, mci, e, onlyhelo)
67 register MCI *mci;
84 mci_dump(sm_debug_file(), mci, false);
93 CurHostName = mci->mci_host; /* XXX UGLY XXX */
97 state = mci->mci_state;
107 smtprset(m, mci, e);
119 smtpquit(m, mci, e);
132 mci->mci_state = MCIS_OPENING;
141 SmtpPhase = mci->mci_phase = "client greeting";
143 qid_printname(e), CurHostName, mci->mci_phase);
144 r = reply(m, mci, e, TimeOuts.to_initial, esmtp_check, NULL, XS_GREET);
159 mci->mci_flags |= MCIF_ESMTP;
160 if (mci->mci_heloname != NULL)
163 expand(mci->mci_heloname, hnbuf, sizeof(hnbuf), e);
166 hn = mci->mci_heloname;
174 mci->mci_flags &= ~MCIF_HELO;
178 smtpmessage("LHLO %s", m, mci, hn);
179 SmtpPhase = mci->mci_phase = "client LHLO";
181 else if (bitset(MCIF_ESMTP, mci->mci_flags) &&
184 smtpmessage("EHLO %s", m, mci, hn);
185 SmtpPhase = mci->mci_phase = "client EHLO";
189 smtpmessage("HELO %s", m, mci, hn);
190 SmtpPhase = mci->mci_phase = "client HELO";
192 mci->mci_flags |= MCIF_HELO;
196 CurHostName, mci->mci_phase);
197 r = reply(m, mci, e,
205 if (bitset(MCIF_ESMTP, mci->mci_flags) &&
209 mci->mci_flags &= ~MCIF_ESMTP;
232 mci_setstat(mci, EX_CONFIG, "5.3.5",
234 mci->mci_errno = 0;
235 smtpquit(m, mci, e);
245 if ((UseMSP && Verbose && bitset(MCIF_VERB, mci->mci_flags))
249 smtpmessage("VERB", m, mci);
250 r = reply(m, mci, e, TimeOuts.to_miscshort, NULL, &enhsc,
256 if (mci->mci_state != MCIS_CLOSED)
258 mci->mci_state = MCIS_OPEN;
265 mci_setstat(mci, EX_TEMPFAIL, ENHSCN(enhsc, "4.4.2"), NULL);
266 if (mci->mci_state != MCIS_CLOSED)
267 smtpquit(m, mci, e);
272 mci_setstat(mci, EX_TEMPFAIL, ENHSCN(enhsc, "4.5.0"),
274 if (mci->mci_state != MCIS_CLOSED)
275 smtpquit(m, mci, e);
279 mci_setstat(mci, EX_UNAVAILABLE, "5.5.0", SmtpReplyBuffer);
280 smtpquit(m, mci, e);
290 ** mci -- the mailer connection info.
298 esmtp_check(line, firstline, m, mci, e)
302 register MCI *mci;
306 mci->mci_flags |= MCIF_ESMTP;
317 mci->mci_flags |= MCIF_8BITOK;
409 ** mci -- the mailer connection info.
417 helo_options(line, firstline, m, mci, e)
421 register MCI *mci;
431 mci_clr_extensions(mci);
438 else if (bitset(MCIF_HELO, mci->mci_flags))
460 mci->mci_flags |= MCIF_SIZE;
462 mci->mci_maxsize = atol(p);
466 mci->mci_flags |= MCIF_8BITMIME;
467 mci->mci_flags &= ~MCIF_7BIT;
470 mci->mci_flags |= MCIF_EXPN;
472 mci->mci_flags |= MCIF_DSN;
474 mci->mci_flags |= MCIF_ENHSTAT;
476 mci->mci_flags |= MCIF_PIPELINED;
478 mci->mci_flags |= MCIF_VERB;
481 mci->mci_flags |= MCIF_EAI;
485 mci->mci_flags |= MCIF_TLS;
489 mci->mci_flags |= MCIF_DLVR_BY;
491 mci->mci_min_by = atol(p);
497 !bitset(MCIF_AUTH2, mci->mci_flags))
499 if (mci->mci_saslcap != NULL)
507 mci->mci_saslcap = str_union(mci->mci_saslcap,
508 p, mci->mci_rpool);
509 mci->mci_flags |= MCIF_AUTH2;
516 mci->mci_saslcap = (char *)
517 sm_rpool_malloc(mci->mci_rpool, l);
518 if (mci->mci_saslcap != NULL)
520 (void) sm_strlcpy(mci->mci_saslcap, p,
522 mci->mci_flags |= MCIF_AUTH;
528 mci->mci_flags, mci->mci_saslcap);
622 ** mci -- the mailer connection info.
632 getsasldata(line, firstline, m, mci, e)
636 register MCI *mci;
652 SM_FREE(mci->mci_sasl_string);
661 if (mci->mci_sasl_string != NULL)
663 if (mci->mci_sasl_string_len <= len)
665 sm_free(mci->mci_sasl_string); /* XXX */
666 mci->mci_sasl_string = xalloc(len + 1);
670 mci->mci_sasl_string = xalloc(len + 1);
672 result = sasl_decode64(line, len, mci->mci_sasl_string, len + 1,
673 (unsigned int *) &mci->mci_sasl_string_len);
676 mci->mci_sasl_string_len = 0;
677 *mci->mci_sasl_string = '\0';
680 out = (char *) sm_rpool_malloc_x(mci->mci_rpool, len + 1);
694 if (mci->mci_sasl_string != NULL)
696 if (mci->mci_sasl_string_len <= len)
698 sm_free(mci->mci_sasl_string); /* XXX */
699 mci->mci_sasl_string = xalloc(len + 1);
703 mci->mci_sasl_string = xalloc(len + 1);
705 memcpy(mci->mci_sasl_string, out, len);
706 mci->mci_sasl_string[len] = '\0';
707 mci->mci_sasl_string_len = len;
850 ** mci -- the mailer connection structure.
865 getauth(mci, e, sai)
866 MCI *mci;
939 (*sai)[r] = (char *) sm_rpool_malloc(mci->mci_rpool, l + 1);
983 (*sai)[SASL_AUTHID] = (char *) sm_rpool_malloc(mci->mci_rpool,
994 (*sai)[SASL_USER] = (char *) sm_rpool_malloc(mci->mci_rpool,
1096 MCI *mci;
1101 mci = (MCI *) context;
1102 authpass = mci->mci_sai[SASL_PASSWORD];
1110 *psecret = (sasl_secret_t *) sm_rpool_malloc(mci->mci_rpool,
1564 ** mci -- the mailer connection structure.
1577 attemptauth(m, mci, e, sai)
1579 MCI *mci;
1607 if (mci->mci_conn != NULL)
1608 sasl_dispose(&(mci->mci_conn));
1621 &mci->mci_conn);
1625 CurHostName, NULL, 0, &mci->mci_conn);
1639 saslresult = sasl_setprop(mci->mci_conn, SASL_SEC_PROPS, &ssp);
1655 saslresult = sasl_setprop(mci->mci_conn, SASL_SSF_EXTERNAL, &ssf);
1658 saslresult = sasl_setprop(mci->mci_conn, SASL_AUTH_EXTERNAL, auth_id);
1664 if (mci->mci_out != NULL && (
1690 if (sasl_setprop(mci->mci_conn, SASL_IPREMOTEPORT,
1695 if (getsockname(sm_io_getinfo(mci->mci_out, SM_IO_WHAT_FD,
1702 if (sasl_setprop(mci->mci_conn,
1712 saslresult = sasl_client_start(mci->mci_conn, mci->mci_saslcap,
1728 saslresult = sasl_setprop(mci->mci_conn, SASL_SSF_EXTERNAL, &ssf);
1734 if (mci->mci_out != NULL && CurHostAddr.sa.sa_family == AF_INET)
1739 if (sasl_setprop(mci->mci_conn, SASL_IP_REMOTE,
1744 if (getsockname(sm_io_getinfo(mci->mci_out, SM_IO_WHAT_FD,
1748 if (sasl_setprop(mci->mci_conn, SASL_IP_LOCAL,
1756 saslresult = sasl_client_start(mci->mci_conn, mci->mci_saslcap,
1767 "AUTH=client, available mechanisms=%s do not fulfill requirements", mci->mci_saslcap);
1784 smtpmessage("AUTH %s", m, mci, mechusing);
1794 smtpmessage("AUTH %s =", m, mci, mechusing);
1807 smtpmessage("AUTH %s %s", m, mci, mechusing, in64);
1814 smtpresult = reply(m, mci, e, TimeOuts.to_auth, getsasldata, NULL,
1822 macdefine(&mci->mci_macro, A_TEMP, macid("{auth_type}"),
1833 /* smtpmessage("*", m, mci); */
1837 saslresult = sasl_client_step(mci->mci_conn,
1838 mci->mci_sasl_string,
1839 mci->mci_sasl_string_len,
1851 smtpmessage("*", m, mci);
1858 smtpresult = reply(m, mci, e, TimeOuts.to_auth,
1870 smtpmessage("*", m, mci);
1879 smtpmessage("%s", m, mci, in64);
1880 smtpresult = reply(m, mci, e, TimeOuts.to_auth,
1895 ** mci -- the mailer connection info.
1912 smtpauth(m, mci, e)
1914 MCI *mci;
1921 mci->mci_sasl_auth = false;
1923 mci->mci_sai[i] = NULL;
1925 result = getauth(mci, e, &(mci->mci_sai));
1931 if (result == EX_OK && mci->mci_sai[SASL_AUTHID] == NULL)
1939 result = readauth(SASLInfo, true, &(mci->mci_sai),
1940 mci->mci_rpool);
1947 if (mci->mci_sai[SASL_PASSWORD] == NULL ||
1948 *(mci->mci_sai)[SASL_PASSWORD] == '\0')
1950 if ((mci->mci_sai[SASL_AUTHID] == NULL ||
1951 *(mci->mci_sai)[SASL_AUTHID] == '\0') &&
1952 (mci->mci_sai[SASL_USER] == NULL ||
1953 *(mci->mci_sai)[SASL_USER] == '\0'))
1958 callbacks[CB_PASS_IDX].context = (void *) mci;
1960 callbacks[CB_PASS_IDX].context = (void *) &mci->mci_sai;
1962 callbacks[CB_USER_IDX].context = (void *) &mci->mci_sai;
1963 callbacks[CB_AUTHNAME_IDX].context = (void *) &mci->mci_sai;
1964 callbacks[CB_GETREALM_IDX].context = (void *) &mci->mci_sai;
1966 callbacks[CB_SAFESASL_IDX].context = (void *) &mci->mci_sai;
1970 if ((mci->mci_sai)[SASL_DEFREALM] == NULL)
1971 (mci->mci_sai)[SASL_DEFREALM] = sm_rpool_strdup_x(e->e_rpool,
1975 if ((mci->mci_sai)[SASL_MECHLIST] == NULL ||
1976 *(mci->mci_sai)[SASL_MECHLIST] == '\0')
1977 (mci->mci_sai)[SASL_MECHLIST] = AuthMechanisms;
1980 mci->mci_saslcap = intersect((mci->mci_sai)[SASL_MECHLIST],
1981 mci->mci_saslcap, mci->mci_rpool);
1989 result = attemptauth(m, mci, e, &(mci->mci_sai));
1991 mci->mci_sasl_auth = true;
1994 mci->mci_saslcap = removemech((mci->mci_sai)[SASL_MECH],
1995 mci->mci_saslcap,
1996 mci->mci_rpool);
1997 if (mci->mci_saslcap == NULL ||
1998 *(mci->mci_saslcap) == '\0')
2014 ** mci -- the mailer connection structure.
2019 smtpmailfrom(m, mci, e)
2021 MCI *mci;
2041 if (mci->mci_state == MCIS_CLOSED)
2043 errno = mci->mci_errno;
2053 if (e->e_smtputf8 && !bitset(MCIF_EAI, mci->mci_flags)) {
2055 mci_setstat(mci, EX_NOTSTICKY, "5.6.7", NULL);
2061 if (bitset(MCIF_SIZE, mci->mci_flags) && e->e_msgsize > 0)
2082 if (bitset(MCIF_8BITMIME, mci->mci_flags))
2100 bitset(MCIF_8BITOK, mci->mci_flags))
2112 mci->mci_flags |= MCIF_CVT8TO7;
2121 mci_setstat(mci, EX_NOTSTICKY, "5.6.3", MsgBuf);
2125 if (bitset(MCIF_DSN, mci->mci_flags))
2147 if (bitset(MCIF_AUTH, mci->mci_flags) && e->e_auth_param != NULL &&
2150 && (!bitset(SASL_AUTH_AUTH, SASLOpts) || mci->mci_sasl_auth)
2164 if (bitset(MCIF_DLVR_BY, mci->mci_flags) &&
2178 dby = mci->mci_min_by <= 0 ? 1 : mci->mci_min_by;
2192 mci->mci_state = MCIS_MAIL;
2212 smtpmessage("MAIL From:<%s>%s", m, mci, bufp, optbuf);
2216 smtpmessage("MAIL From:<@%s%c%s>%s", m, mci, MyHostName,
2219 SmtpPhase = mci->mci_phase = "client MAIL";
2221 CurHostName, mci->mci_phase);
2222 r = reply(m, mci, e, TimeOuts.to_mail, NULL, &enhsc, XS_MAIL);
2226 mci_setstat(mci, EX_TEMPFAIL, "4.4.2", NULL);
2236 mci_setstat(mci, EX_NOTSTICKY, ENHSCN(enhsc, smtptodsn(r)),
2247 mci_setstat(mci, EX_NOTSTICKY, ENHSCN(enhsc, "5.5.2"),
2254 mci_setstat(mci, EX_NOTSTICKY, ENHSCN(enhsc, "5.1.3"),
2261 mci_setstat(mci, EX_NOTSTICKY, ENHSCN(enhsc, "5.3.4"),
2263 if (bitset(MCIF_SIZE, mci->mci_flags))
2270 mci_setstat(mci, EX_NOTSTICKY, ENHSCN(enhsc, "5.0.0"),
2284 mci_setstat(mci, EX_PROTOCOL, ENHSCN(enhsc, "5.5.1"),
2286 smtpquit(m, mci, e);
2295 ** mci -- the connection info for this transaction.
2306 smtprcpt(to, m, mci, e, ctladdr, xstart)
2309 MCI *mci;
2323 while (mci->mci_nextaddr != NULL &&
2324 sm_io_getinfo(mci->mci_in, SM_IO_IS_READABLE, NULL) > 0)
2328 r = smtprcptstat(mci->mci_nextaddr, m, mci, e);
2331 markfailure(e, mci->mci_nextaddr, mci, r, false);
2332 giveresponse(r, mci->mci_nextaddr->q_status, m, mci,
2335 mci->mci_nextaddr = mci->mci_nextaddr->q_pchain;
2345 if (mci->mci_state == MCIS_CLOSED)
2347 errno = mci->mci_errno;
2359 if (bitset(MCIF_DSN, mci->mci_flags))
2362 !bitset(MCIF_DLVR_BY, mci->mci_flags))
2417 smtpmessage("RCPT To:<%s>%s", m, mci, to->q_user, optbuf);
2418 mci->mci_state = MCIS_RCPT;
2420 SmtpPhase = mci->mci_phase = "client RCPT";
2422 CurHostName, mci->mci_phase);
2429 if (bitset(MCIF_PIPELINED, mci->mci_flags))
2433 return smtprcptstat(to, m, mci, e);
2443 ** mci -- the mailer connection information.
2451 smtprcptstat(to, m, mci, e)
2454 register MCI *mci;
2467 if (mci->mci_state == MCIS_CLOSED)
2469 errno = mci->mci_errno;
2474 r = reply(m, mci, e, TimeOuts.to_rcpt, NULL, &enhsc, XS_RCPT);
2479 to->q_statmta = mci->mci_host;
2482 mci->mci_retryrcpt = true;
2490 if ((t = mci->mci_tolist) != NULL)
2498 mci->mci_tolist = t;
2501 mci->mci_okrcpts++;
2533 mci_setstat(mci, EX_PROTOCOL, ENHSCN(enhsc, "5.5.1"),
2542 ** mci -- the mailer connection information.
2550 smtpdata(m, mci, e, ctladdr, xstart)
2552 register MCI *mci;
2569 if (mci->mci_state == MCIS_CLOSED)
2571 errno = mci->mci_errno;
2586 smtpmessage("DATA", m, mci);
2589 if (mci->mci_nextaddr != NULL)
2594 while (mci->mci_nextaddr != NULL)
2596 e->e_to = mci->mci_nextaddr->q_paddr;
2597 r = smtprcptstat(mci->mci_nextaddr, m, mci, e);
2600 markfailure(e, mci->mci_nextaddr, mci, r,
2602 giveresponse(r, mci->mci_nextaddr->q_status, m,
2603 mci, ctladdr, xstart, e,
2604 mci->mci_nextaddr);
2606 mci->mci_nextaddr->q_state = QS_RETRY;
2608 mci->mci_nextaddr = mci->mci_nextaddr->q_pchain;
2620 if (mci->mci_state == MCIS_CLOSED)
2622 errno = mci->mci_errno;
2629 SmtpPhase = mci->mci_phase = "client DATA 354";
2630 mci->mci_state = MCIS_DATA;
2632 qid_printname(e), CurHostName, mci->mci_phase);
2633 r = reply(m, mci, e, TimeOuts.to_datainit, NULL, &enhsc, XS_DATA);
2637 smtpquit(m, mci, e);
2638 errno = mci->mci_errno;
2643 smtprset(m, mci, e);
2645 if (mci->mci_okrcpts <= 0)
2646 return mci->mci_retryrcpt ? EX_TEMPFAIL
2660 smtprset(m, mci, e);
2661 mci_setstat(mci, EX_PROTOCOL, ENHSCN(enhsc, "5.5.1"),
2664 if (mci->mci_okrcpts <= 0)
2665 return mci->mci_retryrcpt ? EX_TEMPFAIL
2672 if (mci->mci_okrcpts > 0)
2689 sm_io_setinfo(mci->mci_out, SM_IO_WHAT_TIMEOUT, &timeout);
2696 if (!(*e->e_puthdr)(mci, e->e_header, e, M87F_OUTER))
2705 if (!(*e->e_putbody)(mci, e, NULL))
2718 if (sm_io_getinfo(mci->mci_in, SM_IO_IS_READABLE, NULL) > 0)
2721 (void) sm_io_fprintf(mci->mci_out, SM_TIME_DEFAULT, ".%s",
2732 mci->mci_errno = EIO;
2733 mci->mci_state = MCIS_ERROR;
2734 mci_setstat(mci, EX_PROTOCOL, "5.5.0", NULL);
2735 smtpquit(m, mci, e);
2740 if (sm_io_error(mci->mci_out))
2743 mci->mci_errno = EIO;
2744 mci->mci_state = MCIS_ERROR;
2745 mci_setstat(mci, EX_IOERR, "4.4.2", NULL);
2746 smtpquit(m, mci, e);
2751 if (sm_io_fprintf(mci->mci_out, SM_TIME_DEFAULT, "%s.%s",
2752 bitset(MCIF_INLONGLINE, mci->mci_flags) ? m->m_eol : "",
2762 SmtpPhase = mci->mci_phase = "client DATA status";
2764 CurHostName, mci->mci_phase);
2767 r = reply(m, mci, e, TimeOuts.to_datafinal, NULL, &enhsc, XS_EOM);
2770 if (mci->mci_state == MCIS_DATA)
2771 mci->mci_state = MCIS_OPEN;
2785 mci_setstat(mci, xstat, ENHSCN(enhsc, smtptodsn(r)),
2787 if (bitset(MCIF_ENHSTAT, mci->mci_flags) &&
2793 SmtpPhase = mci->mci_phase = "idle";
2794 sm_setproctitle(true, e, "%s: %s", CurHostName, mci->mci_phase);
2807 mci->mci_errno = errno;
2808 mci->mci_state = MCIS_ERROR;
2809 mci_setstat(mci, bitset(MCIF_NOTSTICKY, mci->mci_flags)
2812 mci->mci_flags &= ~MCIF_NOTSTICKY;
2823 errno = mci->mci_errno;
2825 smtpquit(m, mci, e);
2834 ** mci -- the mailer connection structure.
2842 smtpgetstat(m, mci, e)
2844 MCI *mci;
2855 r = reply(m, mci, e, TimeOuts.to_datafinal, NULL, &enhsc, XS_DATA2);
2869 if (bitset(MCIF_ENHSTAT, mci->mci_flags) &&
2875 mci_setstat(mci, xstat, ENHSCN(enhsc, smtptodsn(r)), SmtpReplyBuffer);
2890 ** mci -- the mailer connection information.
2901 smtpquit(m, mci, e)
2903 register MCI *mci;
2910 if (mci->mci_state == MCIS_CLOSED)
2912 mci_close(mci, "smtpquit:1");
2917 CurHostName = mci->mci_host; /* XXX UGLY XXX */
2922 mci->mci_okrcpts = 0;
2935 if (mci->mci_state != MCIS_ERROR &&
2936 mci->mci_state != MCIS_QUITING)
2939 mci->mci_state = MCIS_QUITING;
2940 smtpmessage("QUIT", m, mci);
2941 (void) reply(m, mci, e, TimeOuts.to_quit, NULL, NULL, XS_QUIT);
2943 if (mci->mci_state == MCIS_CLOSED)
2948 rcode = endmailer(mci, e, NULL);
2953 if (mci->mci_mailer != NULL &&
2954 mci->mci_mailer->m_name != NULL)
2955 mailer = mci->mci_mailer->m_name;
2976 ** mci -- the mailer connection information.
2987 smtprset(m, mci, e)
2989 register MCI *mci;
2994 CurHostName = mci->mci_host; /* XXX UGLY XXX */
2999 mci->mci_okrcpts = 0;
3008 if (mci->mci_state == MCIS_CLOSED)
3010 errno = mci->mci_errno;
3015 smtpmessage("RSET", m, mci);
3016 r = reply(m, mci, e, TimeOuts.to_rset, NULL, NULL, XS_DEFAULT);
3031 if (mci->mci_state != MCIS_SSD && mci->mci_state != MCIS_CLOSED)
3032 mci->mci_state = MCIS_OPEN;
3033 else if (mci->mci_exitstat == EX_OK)
3034 mci_setstat(mci, EX_TEMPFAIL, "4.5.0", NULL);
3040 ** mci -- the mailer connection information.
3050 smtpprobe(mci)
3051 register MCI *mci;
3054 MAILER *m = mci->mci_mailer;
3058 CurHostName = mci->mci_host; /* XXX UGLY XXX */
3064 smtpmessage("RSET", m, mci);
3065 r = reply(m, mci, e, TimeOuts.to_miscshort, NULL, NULL, XS_DEFAULT);
3067 smtpquit(m, mci, e);
3075 ** mci -- the mailer connection info structure.
3091 reply(m, mci, e, timeout, pfunc, enhstat, rtype)
3093 MCI *mci;
3116 if (mci->mci_out != NULL)
3117 (void) sm_io_flush(mci->mci_out, SM_TIME_DEFAULT);
3149 if (mci->mci_state == MCIS_CLOSED)
3153 if (mci->mci_in == NULL)
3155 if (mci->mci_errno == 0)
3156 mci->mci_errno = EBADF;
3161 errno = mci->mci_errno;
3162 mci_close(mci, "reply:1");
3165 mci->mci_state = MCIS_ERROR;
3166 smtpquit(m, mci, e);
3167 errno = mci->mci_errno;
3171 if (mci->mci_out != NULL)
3172 (void) sm_io_flush(mci->mci_out, SM_TIME_DEFAULT);
3175 p = sfgets(bufp, MAXLINE, mci->mci_in, timeout, SmtpPhase);
3177 mci->mci_lastuse = curtime();
3187 mci_close(mci, "reply:2");
3206 mci->mci_errno = errno;
3211 mci_setstat(mci, EX_TEMPFAIL, "4.4.2", MsgBuf);
3216 mci->mci_state = MCIS_ERROR;
3217 smtpquit(m, mci, e);
3283 if (bitset(MCIF_ENHSTAT, mci->mci_flags) &&
3290 (*pfunc)(bufp, firstline, m, mci, e);
3319 mci->mci_okrcpts <= 0 && mci->mci_retryrcpt))
3376 if (r == SMTPCLOSING && mci->mci_state != MCIS_SSD &&
3377 mci->mci_state != MCIS_QUITING)
3380 mci->mci_state = MCIS_SSD;
3381 smtpquit(m, mci, e);
3398 ** writes message to mci->mci_out.
3404 smtpmessage(char *f, MAILER *m, MCI *mci, ...)
3406 smtpmessage(f, m, mci, va_alist)
3409 MCI *mci;
3415 SM_VA_START(ap, mci);
3425 if (mci->mci_out != NULL)
3427 (void) sm_io_fprintf(mci->mci_out, SM_TIME_DEFAULT, "%s%s",