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

Lines Matching refs:mci

1311 	register MCI *volatile mci;
1935 mci = NULL;
1976 mci = mci_get(m->m_name, m);
1977 if (mci->mci_host == NULL)
1978 mci->mci_host = m->m_name;
1979 CurHostName = mci->mci_host;
1980 if (mci->mci_state != MCIS_CLOSED)
1984 mci->mci_deliveries++;
1990 mci = mci_new(e->e_rpool);
1992 mci->mci_in = smioin;
1993 mci->mci_out = smioout;
1994 mci->mci_mailer = m;
1995 mci->mci_host = m->m_name;
1998 mci->mci_state = MCIS_OPENING;
1999 mci_cache(mci);
2002 mci->mci_state = MCIS_OPEN;
2136 mci = mci_get(hostbuf, m);
2137 if (mci->mci_state != MCIS_CLOSED)
2144 mci_dump(sm_debug_file(), mci, false);
2146 CurHostName = mci->mci_host;
2149 else if (bitset(MCIF_ESMTP, mci->mci_flags))
2155 mci->mci_deliveries++;
2158 mci->mci_mailer = m;
2176 if (mci->mci_exitstat != EX_OK)
2178 if (mci->mci_exitstat == EX_TEMPFAIL)
2184 mci->mci_exitstat))
2190 if (mci_lock_host(mci) != EX_OK)
2192 mci_setstat(mci, EX_TEMPFAIL, "4.4.5", NULL);
2206 i = makeconnection_ds((char *) mux_path, mci);
2225 i = makeconnection(hostbuf, port, mci, e,
2249 mci->mci_errno = errno;
2250 mci->mci_lastuse = curtime();
2251 mci->mci_deliveries = 0;
2252 mci->mci_exitstat = i;
2253 mci_clr_extensions(mci);
2255 mci->mci_herrno = h_errno;
2264 if (enough > 0 && mci->mci_lastuse >= enough)
2290 mci->mci_state = MCIS_OPENING;
2291 mci_cache(mci);
2312 mci_unlock_host(mci);
2320 if (mci == NULL)
2326 mci->mci_pid = 0;
2332 mci = NULL;
2337 mci = mci_get(m->m_name, m);
2338 if (mci->mci_host == NULL)
2339 mci->mci_host = m->m_name;
2340 CurHostName = mci->mci_host;
2341 if (mci->mci_state != MCIS_CLOSED)
2345 mci->mci_deliveries++;
2866 if (mci == NULL)
2872 ** envelope rpool, because this mci
2876 mci = mci_new(NULL);
2885 mci = mci_new(e->e_rpool);
2888 mci->mci_mailer = m;
2891 mci->mci_state = MCIS_OPENING;
2892 mci_cache(mci);
2896 mci->mci_state = MCIS_OPEN;
2898 mci->mci_pid = pid;
2900 mci->mci_out = sm_io_open(SmFtStdiofd, SM_TIME_DEFAULT,
2903 if (mci->mci_out == NULL)
2915 mci->mci_in = sm_io_open(SmFtStdiofd, SM_TIME_DEFAULT,
2918 if (mci->mci_in == NULL)
2923 (void) sm_io_close(mci->mci_out, SM_TIME_DEFAULT);
2924 mci->mci_out = NULL;
2935 (!clever || mci->mci_state == MCIS_OPENING))
2936 mci->mci_flags |= MCIF_7BIT;
2937 if (clever && mci->mci_state != MCIS_CLOSED)
2956 if (mci->mci_host != NULL)
2958 srvname = mci->mci_host;
2961 else if (mci->mci_mailer != NULL)
2963 srvname = mci->mci_mailer->m_name;
2973 macdefine(&mci->mci_macro, A_TEMP, macid("{server_name}"),
2979 macdefine(&mci->mci_macro, A_TEMP,
2983 else if (mci->mci_mailer != NULL)
2986 macdefine(&mci->mci_macro, A_PERM,
2988 mci->mci_mailer->m_name);
2993 macdefine(&mci->mci_macro, A_PERM,
3007 /* undo change of srvname (mci->mci_host) */
3012 if (DONE_STARTTLS(mci->mci_flags))
3025 e->e_mci = mci;
3027 mci->mci_saslcap = NULL;
3029 smtpinit(m, mci, e, ONLY_HELO(mci->mci_flags));
3030 CLR_HELO(mci->mci_flags);
3039 if (!bitset(MCIF_DLVR_BY, mci->mci_flags))
3049 mci->mci_min_by)
3056 mci->mci_min_by);
3064 if (mci->mci_state != MCIS_CLOSED &&
3065 !DONE_STARTTLS(mci->mci_flags))
3074 usetls = bitset(MCIF_TLS, mci->mci_flags);
3099 if ((rcode = starttls(m, mci, e
3106 mci->mci_flags |= MCIF_TLSACT;
3119 mci->mci_flags &= ~MCIF_TLS;
3157 if (!bitset(MCIF_TLS, mci->mci_flags) &&
3215 mci->mci_state = MCIS_QUITING;
3216 if (mci->mci_in != NULL)
3218 (void) sm_io_close(mci->mci_in,
3220 mci->mci_in = NULL;
3222 mci->mci_flags &= ~MCIF_TLSACT;
3223 (void) endmailer(mci, e, pv);
3226 SM_TLSI_IS(&(mci->mci_tlsi),
3228 !SM_TLSI_IS(&(mci->mci_tlsi),
3242 smtpquit(m, mci, e);
3246 mci->mci_errno = 0;
3251 mci_setstat(mci, rcode, enhsc, p);
3261 else if (mci->mci_state == MCIS_CLOSED)
3264 mci->mci_errno = 0;
3266 mci_setstat(mci, rcode, NULL, "421");
3273 if (DONE_STARTTLS(mci->mci_flags) &&
3274 mci->mci_state != MCIS_CLOSED)
3276 SET_HELO(mci->mci_flags);
3277 mci_clr_extensions(mci);
3286 mci->mci_host, tlsstate);
3287 mci_dump(NULL, mci, true);
3297 mci->mci_errno = 0;
3299 mci_setstat(mci, rcode, NULL, NULL);
3306 if (mci->mci_state != MCIS_CLOSED &&
3307 mci->mci_saslcap != NULL &&
3308 !DONE_AUTH(mci->mci_flags) && !iscltflgset(e, D_NOAUTH))
3311 if ((ret = smtpauth(m, mci, e)) == EX_OK)
3317 result = sasl_getprop(mci->mci_conn, SASL_SSF,
3328 mci->mci_host,
3348 if (sfdcsasl(&mci->mci_in,
3349 &mci->mci_out,
3350 mci->mci_conn, tmo) == 0)
3352 mci_clr_extensions(mci);
3353 mci->mci_flags |= MCIF_AUTHACT|
3360 mci->mci_flags |= MCIF_AUTHACT;
3368 mci->mci_host);
3369 smtpquit(m, mci, e);
3372 mci->mci_errno = 0;
3374 mci_setstat(mci, rcode, "4.3.0", p);
3391 mci->mci_flags &= ~(MCIF_CVT7TO8|MCIF_CVT8TO7);
3396 mci->mci_flags |= MCIF_CVT8TO7;
3400 !bitset(MCIF_7BIT, mci->mci_flags) &&
3410 mci->mci_flags |= MCIF_CVT7TO8;
3417 mci_dump(sm_debug_file(), mci, false);
3428 if (bitset(MCIF_SIZE, mci->mci_flags) &&
3429 mci->mci_maxsize > 0 &&
3430 e->e_msgsize > mci->mci_maxsize)
3440 mci->mci_maxsize);
3446 mci->mci_maxsize);
3451 if (mci->mci_state != MCIS_OPEN)
3454 rcode = mci->mci_exitstat;
3455 errno = mci->mci_errno;
3456 SM_SET_H_ERRNO(mci->mci_herrno);
3460 syserr("554 5.3.5 deliver: mci=%lx rcode=%d errno=%d state=%d sig=%s",
3461 (unsigned long) mci, rcode, errno,
3462 mci->mci_state, firstsig);
3482 ok = putfromline(mci, e);
3484 ok = (*e->e_puthdr)(mci, e->e_header, e, M87F_OUTER);
3486 ok = (*e->e_putbody)(mci, e, NULL);
3487 if (ok && bitset(MCIF_INLONGLINE, mci->mci_flags))
3488 ok = putline("", mci);
3496 if (!ok && (sm_io_error(mci->mci_out) && errno == EPIPE))
3500 rcode = endmailer(mci, e, pv);
3522 rcode = smtpmailfrom(m, mci, e);
3532 mci->mci_retryrcpt = false;
3533 mci->mci_tolist = tobuf;
3536 mci->mci_nextaddr = NULL;
3550 mci->mci_host, e->e_id, NULL, NULL);
3553 markfailure(e, to, mci, i, false);
3554 giveresponse(i, to->q_status, m, mci,
3558 mci->mci_retryrcpt = true;
3565 i = smtprcpt(to, m, mci, e, ctladdr, xstart);
3568 bitset(MCIF_PIPELINED, mci->mci_flags))
3576 if (mci->mci_nextaddr == NULL)
3577 mci->mci_nextaddr = to;
3589 markfailure(e, to, mci, i, false);
3590 giveresponse(i, to->q_status, m, mci,
3600 && bitset(MCIF_PIPELINED, mci->mci_flags)
3601 && mci->mci_nextaddr == NULL
3607 if (bitset(MCIF_CACHED, mci->mci_flags))
3608 smtprset(m, mci, e);
3613 rcode = smtpdata(m, mci, e, ctladdr, xstart);
3658 rcode = smtpgetstat(m, mci, e);
3670 markfailure(e, to, mci, rcode, true);
3671 giveresponse(rcode, to->q_status, m, mci,
3684 markfailure(e, to, mci, rcode, true);
3715 !bitset(MCIF_DSN, mci->mci_flags))
3723 !bitset(MCIF_DLVR_BY, mci->mci_flags) &&
3761 /* reset the mci state for the next transaction */
3762 if (mci != NULL &&
3763 (mci->mci_state == MCIS_MAIL ||
3764 mci->mci_state == MCIS_RCPT ||
3765 mci->mci_state == MCIS_DATA))
3767 mci->mci_state = MCIS_OPEN;
3768 SmtpPhase = mci->mci_phase = "idle";
3770 mci->mci_phase);
3776 giveresponse(rcode, NULL, m, mci, ctladdr, xstart, e, NULL);
3801 mci_store_persistent(mci);
3807 ** add a flag to mci to indicate that rate/conc. was increased?
3816 occ_close(e, mci, host, &CurHostAddr);
3821 if (mci != NULL && mci->mci_retryrcpt && nummxhosts > hostnum)
3828 if (clever && mci != NULL && mci->mci_state != MCIS_CLOSED &&
3829 !bitset(MCIF_CACHED, mci->mci_flags))
3830 smtpquit(m, mci, e);
3873 ** mci -- mailer connection information.
3887 markfailure(e, q, mci, rcode, ovr)
3890 register MCI *mci;
3915 if (mci != NULL && mci->mci_status != NULL)
3917 status = sm_rpool_strdup_x(e->e_rpool, mci->mci_status);
3918 if (mci->mci_rstatus != NULL)
3920 mci->mci_rstatus);
3990 mci != NULL && !bitset(M_LOCALMAILER, mci->mci_flags))
4005 ** mci -- the mailer connection info.
4034 endmailer(mci, e, pv)
4035 register MCI *mci;
4045 mci_unlock_host(mci);
4048 if (mci->mci_out != NULL)
4050 (void) sm_io_close(mci->mci_out, SM_TIME_DEFAULT);
4051 mci->mci_out = NULL;
4055 if (mci->mci_in != NULL && mci->mci_state != MCIS_ERROR &&
4058 while (sfgets(buf, sizeof(buf), mci->mci_in,
4065 if (bitset(MCIF_AUTHACT, mci->mci_flags))
4067 sasl_dispose(&mci->mci_conn);
4068 mci->mci_flags &= ~MCIF_AUTHACT;
4074 (void) endtlsclt(mci);
4078 if (mci->mci_in != NULL)
4080 (void) sm_io_close(mci->mci_in, SM_TIME_DEFAULT);
4081 mci->mci_in = NULL;
4083 mci->mci_state = MCIS_CLOSED;
4088 if (mci->mci_pid == 0)
4092 if (mci->mci_mailer->m_wait > 0)
4095 ev = sm_setevent(mci->mci_mailer->m_wait,
4100 mci->mci_mailer->m_name,
4101 (long) mci->mci_mailer->m_wait);
4107 st = waitfor(mci->mci_pid);
4115 syserr("endmailer %s: wait", mci->mci_mailer->m_name);
4127 mci->mci_mailer->m_name, WTERMSIG(st),
4155 ** mci -- the mailer connection info -- can be NULL if the
4173 giveresponse(status, dsn, m, mci, ctladdr, xstart, e, to)
4177 register MCI *mci;
4262 if (mci != NULL && mci->mci_host != NULL)
4267 mci->mci_host);
4277 mci->mci_exitstat == EX_TEMPFAIL)
4382 logdelivery(m, mci, dsn, statmsg + off, ctladdr, xstart, e, to, status);
4416 ** mci -- the mailer connection info -- can be NULL if the
4435 logdelivery(m, mci, dsn, status, ctladdr, xstart, e, to, rcode)
4437 register MCI *mci;
4499 if (mci != NULL && mci->mci_host != NULL)
4504 shortenstring(mci->mci_host, 40));
4694 if (mci != NULL && mci->mci_host != NULL)
4699 mci->mci_host);
4737 ** mci -- the connection information.
4748 putfromline(mci, e)
4749 register MCI *mci;
4756 if (bitnset(M_NHDR, mci->mci_mailer->m_flags))
4759 mci->mci_flags |= MCIF_INHEADER;
4761 if (bitnset(M_UGLYUUCP, mci->mci_mailer->m_flags))
4798 return putxline(buf, strlen(buf), mci, PXLF_HEADER);
4805 ** mci -- the connection information.
4823 putbody(mci, e, separator)
4824 register MCI *mci;
4858 if (bitset(MCIF_INHEADER, mci->mci_flags))
4860 if (!putline("", mci))
4862 mci->mci_flags &= ~MCIF_INHEADER;
4864 if (!putline("<<< No Message Collected >>>", mci))
4891 if (bitset(MCIF_CVT8TO7, mci->mci_flags))
4899 !putline("MIME-Version: 1.0", mci))
4907 if (!putline(buf, mci))
4913 mci->mci_flags |= MCIF_INHEADER;
4914 if (mime8to7(mci, e->e_header, e, boundaries, M87F_OUTER, 0) ==
4919 else if (bitset(MCIF_CVT7TO8, mci->mci_flags))
4921 if (!mime7to8(mci, e->e_header, e))
4931 mci->mci_flags |= MCIF_INHEADER;
4944 if (mime8to7(mci, e->e_header, e, boundaries,
4964 if (bitset(MCIF_INHEADER, mci->mci_flags))
4966 if (!putline("", mci))
4968 mci->mci_flags &= ~MCIF_INHEADER;
4973 if (mci->mci_mailer->m_linelimit > 0 &&
4974 mci->mci_mailer->m_linelimit < sizeof(buf) - 1)
4975 buflim = &buf[mci->mci_mailer->m_linelimit - 1];
4981 while (!sm_io_error(mci->mci_out) && !dead)
4988 if (bitset(MCIF_7BIT, mci->mci_flags))
4995 mci->mci_mailer->m_flags))
5008 bitnset(M_ESCFROM, mci->mci_mailer->m_flags)
5024 bitnset(M_XDOT, mci->mci_mailer->m_flags))
5047 mci->mci_mailer->m_eol);
5051 if (sm_io_putc(mci->mci_out,
5062 if (sm_io_putc(mci->mci_out,
5075 if (sm_io_fputs(mci->mci_out,
5077 mci->mci_mailer->m_eol)
5108 if (sm_io_fputs(mci->mci_out,
5110 mci->mci_mailer->m_eol)
5118 mci->mci_mailer->m_eol);
5140 mci->mci_mailer->m_flags))
5143 if (mci->mci_mailer->m_linelimit > 0 &&
5144 pos >= mci->mci_mailer->m_linelimit - 1 &&
5167 if (sm_io_putc(mci->mci_out,
5179 if (sm_io_putc(mci->mci_out,
5182 sm_io_fputs(mci->mci_out,
5184 mci->mci_mailer->m_eol)
5196 mci->mci_mailer->m_eol);
5209 mci->mci_mailer->m_eol);
5210 if (sm_io_fputs(mci->mci_out,
5212 mci->mci_mailer->m_eol)
5224 if (sm_io_putc(mci->mci_out,
5251 if (sm_io_putc(mci->mci_out, SM_TIME_DEFAULT,
5266 mci->mci_mailer->m_eol);
5267 if (sm_io_fputs(mci->mci_out, SM_TIME_DEFAULT,
5268 mci->mci_mailer->m_eol) == SM_IO_EOF)
5299 if (!dead && bitnset(M_BLANKEND, mci->mci_mailer->m_flags) &&
5302 if (!putline("", mci))
5307 (sm_io_flush(mci->mci_out, SM_TIME_DEFAULT) == SM_IO_EOF ||
5308 (sm_io_error(mci->mci_out) && errno != EPIPE)))
6130 register MCI *mci;
6134 mci = mci_get(hp, m);
6135 mci->mci_errno = save_errno;
6136 mci->mci_herrno = h_errno;
6137 mci->mci_lastuse = now;
6139 mci_setstat(mci, rcode, "5.7.27",
6142 mci_setstat(mci, rcode, "5.1.2",
6145 mci_setstat(mci, rcode, NULL, NULL);
6417 ** mci -- the mailer connection info.
6427 starttls(m, mci, e
6433 MCI *mci;
6457 smtpmessage("STARTTLS", m, mci);
6460 smtpresult = reply(m, mci, e, TimeOuts.to_starttls, NULL, NULL,
6493 if (get_tls_se_options(e, clt_ssl, &mci->mci_tlsi, false) != 0)
6499 result = SSL_set_ex_data(clt_ssl, TLSsslidx, &mci->mci_tlsi);
6512 if (SM_TLSI_IS(&(mci->mci_tlsi), TLSI_FL_NODANE))
6539 memcpy(&mci->mci_tlsi.tlsi_dvc, dane_vrfy_ctx, sizeof(*dane_vrfy_ctx));
6542 rfd = sm_io_getinfo(mci->mci_in, SM_IO_WHAT_FD, NULL);
6543 wfd = sm_io_getinfo(mci->mci_out, SM_IO_WHAT_FD, NULL);
6590 mci->mci_ssl = clt_ssl;
6591 result = tls_get_info(mci->mci_ssl, false, mci->mci_host,
6592 &mci->mci_macro, true);
6595 if (sfdctls(&mci->mci_in, &mci->mci_out, mci->mci_ssl) == 0)
6606 ** mci -- the mailer connection info.
6613 endtlsclt(mci)
6614 MCI *mci;
6618 if (!bitset(MCIF_TLSACT, mci->mci_flags))
6620 r = endtls(&mci->mci_ssl, "client");
6621 mci->mci_flags &= ~MCIF_TLSACT;