Lines Matching refs:mci

1301 	register MCI *volatile mci;  local
1883 mci = NULL;
1924 mci = mci_get(m->m_name, m);
1925 if (mci->mci_host == NULL)
1926 mci->mci_host = m->m_name;
1927 CurHostName = mci->mci_host;
1928 if (mci->mci_state != MCIS_CLOSED)
1932 mci->mci_deliveries++;
1938 mci = mci_new(e->e_rpool);
1940 mci->mci_in = smioin;
1941 mci->mci_out = smioout;
1942 mci->mci_mailer = m;
1943 mci->mci_host = m->m_name;
1946 mci->mci_state = MCIS_OPENING;
1947 mci_cache(mci);
1950 mci->mci_state = MCIS_OPEN;
2075 mci = mci_get(hostbuf, m);
2076 if (mci->mci_state != MCIS_CLOSED)
2083 mci_dump(sm_debug_file(), mci, false);
2085 CurHostName = mci->mci_host;
2088 else if (bitset(MCIF_ESMTP, mci->mci_flags))
2094 mci->mci_deliveries++;
2097 mci->mci_mailer = m;
2098 if (mci->mci_exitstat != EX_OK)
2100 if (mci->mci_exitstat == EX_TEMPFAIL)
2106 mci->mci_exitstat))
2112 if (mci_lock_host(mci) != EX_OK)
2114 mci_setstat(mci, EX_TEMPFAIL, "4.4.5", NULL);
2128 i = makeconnection_ds((char *) mux_path, mci);
2140 i = makeconnection(hostbuf, port, mci, e,
2143 mci->mci_errno = errno;
2144 mci->mci_lastuse = curtime();
2145 mci->mci_deliveries = 0;
2146 mci->mci_exitstat = i;
2148 mci->mci_herrno = h_errno;
2157 if (enough > 0 && mci->mci_lastuse >= enough)
2183 mci->mci_state = MCIS_OPENING;
2184 mci_cache(mci);
2205 mci_unlock_host(mci);
2213 if (mci == NULL)
2219 mci->mci_pid = 0;
2225 mci = NULL;
2230 mci = mci_get(m->m_name, m);
2231 if (mci->mci_host == NULL)
2232 mci->mci_host = m->m_name;
2233 CurHostName = mci->mci_host;
2234 if (mci->mci_state != MCIS_CLOSED)
2238 mci->mci_deliveries++;
2753 if (mci == NULL)
2763 mci = mci_new(NULL);
2772 mci = mci_new(e->e_rpool);
2775 mci->mci_mailer = m;
2778 mci->mci_state = MCIS_OPENING;
2779 mci_cache(mci);
2783 mci->mci_state = MCIS_OPEN;
2785 mci->mci_pid = pid;
2787 mci->mci_out = sm_io_open(SmFtStdiofd, SM_TIME_DEFAULT,
2790 if (mci->mci_out == NULL)
2802 mci->mci_in = sm_io_open(SmFtStdiofd, SM_TIME_DEFAULT,
2805 if (mci->mci_in == NULL)
2810 (void) sm_io_close(mci->mci_out, SM_TIME_DEFAULT);
2811 mci->mci_out = NULL;
2822 (!clever || mci->mci_state == MCIS_OPENING))
2823 mci->mci_flags |= MCIF_7BIT;
2824 if (clever && mci->mci_state != MCIS_CLOSED)
2844 if (mci->mci_host != NULL)
2846 srvname = mci->mci_host;
2856 else if (mci->mci_mailer != NULL)
2858 srvname = mci->mci_mailer->m_name;
2868 macdefine(&mci->mci_macro, A_TEMP, macid("{server_name}"),
2874 macdefine(&mci->mci_macro, A_TEMP,
2878 else if (mci->mci_mailer != NULL)
2881 macdefine(&mci->mci_macro, A_PERM,
2883 mci->mci_mailer->m_name);
2888 macdefine(&mci->mci_macro, A_PERM,
2900 e->e_mci = mci;
2902 mci->mci_saslcap = NULL;
2904 smtpinit(m, mci, e, ONLY_HELO(mci->mci_flags));
2905 CLR_HELO(mci->mci_flags);
2914 if (!bitset(MCIF_DLVR_BY, mci->mci_flags))
2924 mci->mci_min_by)
2930 mci->mci_min_by);
2938 if (mci->mci_state != MCIS_CLOSED &&
2939 !DONE_STARTTLS(mci->mci_flags))
2948 usetls = bitset(MCIF_TLS, mci->mci_flags);
2971 if ((rcode = starttls(m, mci, e)) == EX_OK)
2974 mci->mci_flags |= MCIF_TLSACT;
2987 mci->mci_flags &= ~MCIF_TLS;
3059 mci->mci_state = MCIS_QUITING;
3060 if (mci->mci_in != NULL)
3062 (void) sm_io_close(mci->mci_in,
3064 mci->mci_in = NULL;
3066 mci->mci_flags &= ~MCIF_TLSACT;
3067 (void) endmailer(mci, e, pv);
3072 smtpquit(m, mci, e);
3076 mci->mci_errno = 0;
3081 mci_setstat(mci, rcode, enhsc, p);
3091 else if (mci->mci_state == MCIS_CLOSED)
3094 mci->mci_errno = 0;
3096 mci_setstat(mci, rcode, NULL, "421");
3103 if (DONE_STARTTLS(mci->mci_flags) &&
3104 mci->mci_state != MCIS_CLOSED)
3106 SET_HELO(mci->mci_flags);
3107 mci->mci_flags &= ~MCIF_EXTENS;
3114 if (mci->mci_state != MCIS_CLOSED &&
3115 mci->mci_saslcap != NULL &&
3116 !DONE_AUTH(mci->mci_flags) && !iscltflgset(e, D_NOAUTH))
3119 if ((ret = smtpauth(m, mci, e)) == EX_OK)
3125 result = sasl_getprop(mci->mci_conn, SASL_SSF,
3136 mci->mci_host,
3156 if (sfdcsasl(&mci->mci_in,
3157 &mci->mci_out,
3158 mci->mci_conn, tmo) == 0)
3160 mci->mci_flags &= ~MCIF_EXTENS;
3161 mci->mci_flags |= MCIF_AUTHACT|
3168 mci->mci_flags |= MCIF_AUTHACT;
3176 mci->mci_host);
3177 smtpquit(m, mci, e);
3180 mci->mci_errno = 0;
3182 mci_setstat(mci, rcode, "4.3.0", p);
3200 mci->mci_flags &= ~(MCIF_CVT7TO8|MCIF_CVT8TO7);
3205 mci->mci_flags |= MCIF_CVT8TO7;
3209 !bitset(MCIF_7BIT, mci->mci_flags) &&
3219 mci->mci_flags |= MCIF_CVT7TO8;
3226 mci_dump(sm_debug_file(), mci, false);
3237 if (bitset(MCIF_SIZE, mci->mci_flags) &&
3238 mci->mci_maxsize > 0 &&
3239 e->e_msgsize > mci->mci_maxsize)
3249 mci->mci_maxsize);
3255 mci->mci_maxsize);
3260 if (mci->mci_state != MCIS_OPEN)
3263 rcode = mci->mci_exitstat;
3264 errno = mci->mci_errno;
3265 SM_SET_H_ERRNO(mci->mci_herrno);
3270 (unsigned long) mci, rcode, errno,
3271 mci->mci_state, firstsig);
3291 ok = putfromline(mci, e);
3293 ok = (*e->e_puthdr)(mci, e->e_header, e, M87F_OUTER);
3295 ok = (*e->e_putbody)(mci, e, NULL);
3296 if (ok && bitset(MCIF_INLONGLINE, mci->mci_flags))
3297 ok = putline("", mci);
3305 if (!ok && (sm_io_error(mci->mci_out) && errno == EPIPE))
3309 rcode = endmailer(mci, e, pv);
3331 rcode = smtpmailfrom(m, mci, e);
3341 mci->mci_retryrcpt = false;
3342 mci->mci_tolist = tobuf;
3345 mci->mci_nextaddr = NULL;
3359 mci->mci_host, e->e_id, NULL);
3362 markfailure(e, to, mci, i, false);
3363 giveresponse(i, to->q_status, m, mci,
3367 mci->mci_retryrcpt = true;
3374 i = smtprcpt(to, m, mci, e, ctladdr, xstart);
3377 bitset(MCIF_PIPELINED, mci->mci_flags))
3385 if (mci->mci_nextaddr == NULL)
3386 mci->mci_nextaddr = to;
3398 markfailure(e, to, mci, i, false);
3399 giveresponse(i, to->q_status, m, mci,
3409 && bitset(MCIF_PIPELINED, mci->mci_flags)
3410 && mci->mci_nextaddr == NULL
3416 if (bitset(MCIF_CACHED, mci->mci_flags))
3417 smtprset(m, mci, e);
3422 rcode = smtpdata(m, mci, e, ctladdr, xstart);
3467 rcode = smtpgetstat(m, mci, e);
3479 markfailure(e, to, mci, rcode, true);
3480 giveresponse(rcode, to->q_status, m, mci,
3493 markfailure(e, to, mci, rcode, true);
3524 !bitset(MCIF_DSN, mci->mci_flags))
3532 !bitset(MCIF_DLVR_BY, mci->mci_flags) &&
3571 if (mci != NULL &&
3572 (mci->mci_state == MCIS_MAIL ||
3573 mci->mci_state == MCIS_RCPT ||
3574 mci->mci_state == MCIS_DATA))
3576 mci->mci_state = MCIS_OPEN;
3577 SmtpPhase = mci->mci_phase = "idle";
3579 mci->mci_phase);
3585 giveresponse(rcode, NULL, m, mci, ctladdr, xstart, e, tochain);
3610 mci_store_persistent(mci);
3613 if (mci != NULL && mci->mci_retryrcpt && nummxhosts > hostnum)
3620 if (clever && mci != NULL && mci->mci_state != MCIS_CLOSED &&
3621 !bitset(MCIF_CACHED, mci->mci_flags))
3622 smtpquit(m, mci, e);
3679 markfailure(e, q, mci, rcode, ovr) in markfailure() argument
3682 register MCI *mci;
3707 if (mci != NULL && mci->mci_status != NULL)
3709 status = sm_rpool_strdup_x(e->e_rpool, mci->mci_status);
3710 if (mci->mci_rstatus != NULL)
3712 mci->mci_rstatus);
3785 mci != NULL && !bitset(M_LOCALMAILER, mci->mci_flags))
3829 endmailer(mci, e, pv) in endmailer() argument
3830 register MCI *mci; in endmailer()
3840 mci_unlock_host(mci);
3843 if (mci->mci_out != NULL)
3845 (void) sm_io_close(mci->mci_out, SM_TIME_DEFAULT);
3846 mci->mci_out = NULL;
3850 if (mci->mci_in != NULL && mci->mci_state != MCIS_ERROR &&
3853 while (sfgets(buf, sizeof(buf), mci->mci_in,
3860 if (bitset(MCIF_AUTHACT, mci->mci_flags))
3862 sasl_dispose(&mci->mci_conn);
3863 mci->mci_flags &= ~MCIF_AUTHACT;
3869 (void) endtlsclt(mci);
3873 if (mci->mci_in != NULL)
3875 (void) sm_io_close(mci->mci_in, SM_TIME_DEFAULT);
3876 mci->mci_in = NULL;
3878 mci->mci_state = MCIS_CLOSED;
3883 if (mci->mci_pid == 0)
3887 if (mci->mci_mailer->m_wait > 0)
3890 ev = sm_setevent(mci->mci_mailer->m_wait,
3895 mci->mci_mailer->m_name,
3896 (long) mci->mci_mailer->m_wait);
3902 st = waitfor(mci->mci_pid);
3910 syserr("endmailer %s: wait", mci->mci_mailer->m_name);
3922 mci->mci_mailer->m_name, WTERMSIG(st),
3968 giveresponse(status, dsn, m, mci, ctladdr, xstart, e, to) in giveresponse() argument
3972 register MCI *mci;
4057 if (mci != NULL && mci->mci_host != NULL)
4062 mci->mci_host);
4168 logdelivery(m, mci, dsn, statmsg + off, ctladdr, xstart, e);
4219 logdelivery(m, mci, dsn, status, ctladdr, xstart, e) in logdelivery() argument
4221 register MCI *mci;
4277 if (mci != NULL && mci->mci_host != NULL)
4282 shortenstring(mci->mci_host, 40));
4433 if (mci != NULL && mci->mci_host != NULL)
4438 mci->mci_host);
4487 putfromline(mci, e) in putfromline() argument
4488 register MCI *mci; in putfromline()
4495 if (bitnset(M_NHDR, mci->mci_mailer->m_flags))
4498 mci->mci_flags |= MCIF_INHEADER;
4500 if (bitnset(M_UGLYUUCP, mci->mci_mailer->m_flags))
4537 return putxline(buf, strlen(buf), mci, PXLF_HEADER);
4562 putbody(mci, e, separator) in putbody() argument
4563 register MCI *mci; in putbody()
4597 if (bitset(MCIF_INHEADER, mci->mci_flags))
4599 if (!putline("", mci))
4601 mci->mci_flags &= ~MCIF_INHEADER;
4603 if (!putline("<<< No Message Collected >>>", mci))
4630 if (bitset(MCIF_CVT8TO7, mci->mci_flags))
4638 !putline("MIME-Version: 1.0", mci))
4646 if (!putline(buf, mci))
4652 mci->mci_flags |= MCIF_INHEADER;
4653 if (mime8to7(mci, e->e_header, e, boundaries, M87F_OUTER, 0) ==
4658 else if (bitset(MCIF_CVT7TO8, mci->mci_flags))
4660 if (!mime7to8(mci, e->e_header, e))
4670 mci->mci_flags |= MCIF_INHEADER;
4683 if (mime8to7(mci, e->e_header, e, boundaries,
4703 if (bitset(MCIF_INHEADER, mci->mci_flags))
4705 if (!putline("", mci))
4707 mci->mci_flags &= ~MCIF_INHEADER;
4712 if (mci->mci_mailer->m_linelimit > 0 &&
4713 mci->mci_mailer->m_linelimit < sizeof(buf) - 1)
4714 buflim = &buf[mci->mci_mailer->m_linelimit - 1];
4720 while (!sm_io_error(mci->mci_out) && !dead)
4727 if (bitset(MCIF_7BIT, mci->mci_flags))
4734 mci->mci_mailer->m_flags))
4747 bitnset(M_ESCFROM, mci->mci_mailer->m_flags)
4763 bitnset(M_XDOT, mci->mci_mailer->m_flags))
4786 mci->mci_mailer->m_eol);
4790 if (sm_io_putc(mci->mci_out,
4801 if (sm_io_putc(mci->mci_out,
4814 if (sm_io_fputs(mci->mci_out,
4816 mci->mci_mailer->m_eol)
4847 if (sm_io_fputs(mci->mci_out,
4849 mci->mci_mailer->m_eol)
4857 mci->mci_mailer->m_eol);
4879 mci->mci_mailer->m_flags))
4882 if (mci->mci_mailer->m_linelimit > 0 &&
4883 pos >= mci->mci_mailer->m_linelimit - 1 &&
4906 if (sm_io_putc(mci->mci_out,
4918 if (sm_io_putc(mci->mci_out,
4921 sm_io_fputs(mci->mci_out,
4923 mci->mci_mailer->m_eol)
4935 mci->mci_mailer->m_eol);
4948 mci->mci_mailer->m_eol);
4949 if (sm_io_fputs(mci->mci_out,
4951 mci->mci_mailer->m_eol)
4963 if (sm_io_putc(mci->mci_out,
4990 if (sm_io_putc(mci->mci_out, SM_TIME_DEFAULT,
5005 mci->mci_mailer->m_eol);
5006 if (sm_io_fputs(mci->mci_out, SM_TIME_DEFAULT,
5007 mci->mci_mailer->m_eol) == SM_IO_EOF)
5038 if (!dead && bitnset(M_BLANKEND, mci->mci_mailer->m_flags) &&
5041 if (!putline("", mci))
5046 (sm_io_flush(mci->mci_out, SM_TIME_DEFAULT) == SM_IO_EOF ||
5047 (sm_io_error(mci->mci_out) && errno != EPIPE)))
5813 register MCI *mci; local
5817 mci = mci_get(hp, m);
5818 mci->mci_errno = save_errno;
5819 mci->mci_herrno = h_errno;
5820 mci->mci_lastuse = now;
5822 mci_setstat(mci, rcode, "5.1.2",
5825 mci_setstat(mci, rcode, NULL, NULL);
6099 starttls(m, mci, e) in starttls() argument
6101 MCI *mci;
6122 smtpmessage("STARTTLS", m, mci);
6125 smtpresult = reply(m, mci, e, TimeOuts.to_starttls, NULL, NULL,
6158 rfd = sm_io_getinfo(mci->mci_in, SM_IO_WHAT_FD, NULL);
6159 wfd = sm_io_getinfo(mci->mci_out, SM_IO_WHAT_FD, NULL);
6203 mci->mci_ssl = clt_ssl;
6204 result = tls_get_info(mci->mci_ssl, false, mci->mci_host,
6205 &mci->mci_macro, true);
6208 if (sfdctls(&mci->mci_in, &mci->mci_out, mci->mci_ssl) == 0)
6227 endtlsclt(mci) in endtlsclt() argument
6228 MCI *mci; in endtlsclt()
6232 if (!bitset(MCIF_TLSACT, mci->mci_flags))
6234 r = endtls(mci->mci_ssl, "client");
6235 mci->mci_flags &= ~MCIF_TLSACT;