Lines Matching refs:rcpt

36 	struct lmtp_recipient rcpt;
59 lmtp_local_rcpt_deinit(struct lmtp_local_recipient *rcpt);
108 lmtp_local_rcpt_anvil_disconnect(struct lmtp_local_recipient *rcpt)
112 if (!rcpt->anvil_connect_sent)
114 rcpt->anvil_connect_sent = FALSE;
116 input = mail_storage_service_user_get_input(rcpt->service_user);
123 lmtp_local_rcpt_deinit(struct lmtp_local_recipient *rcpt)
125 if (rcpt->anvil_query != NULL)
126 anvil_client_query_abort(anvil, &rcpt->anvil_query);
127 lmtp_local_rcpt_anvil_disconnect(rcpt);
128 mail_storage_service_user_unref(&rcpt->service_user);
130 i_free(rcpt->session_id);
131 i_free(rcpt->detail);
132 i_free(rcpt);
136 lmtp_local_rcpt_reply_overquota(struct lmtp_local_recipient *rcpt,
140 struct smtp_address *address = rcpt->rcpt.path;
141 unsigned int rcpt_idx = rcpt->rcpt.index;
143 mail_storage_service_user_get_set(rcpt->service_user)[2];
145 i_assert(rcpt_idx == 0 || rcpt->rcpt.rcpt_cmd == NULL);
173 smtp_server_reply_index(cmd, rcpts[i]->rcpt.index,
175 smtp_address_encode(rcpts[i]->rcpt.rcpt->path), msg);
185 struct lmtp_local_recipient *rcpt =
188 if (rcpt == NULL)
192 lmtp_local_rcpt_deinit(rcpt);
197 lmtp_local_rcpt_check_quota(struct lmtp_local_recipient *rcpt)
199 struct client *client = rcpt->rcpt.client;
200 struct smtp_server_cmd_ctx *cmd = rcpt->rcpt.rcpt_cmd;
201 struct smtp_address *address = rcpt->rcpt.path;
215 but second time session_id needs to be the same as rcpt session_id and
216 mail user session id for the first rcpt should not overlap with session id
219 the same session id as rcpt */
221 rcpt->service_user,
237 lmtp_local_rcpt_reply_overquota(rcpt, cmd, error);
265 struct lmtp_local_recipient *rcpt =
267 struct client *client = rcpt->rcpt.client;
273 lmtp_local_rcpt_deinit(rcpt);
277 lmtp_recipient_finish(&rcpt->rcpt, trcpt, index);
280 rcpt->duplicate = (struct lmtp_local_recipient *)
281 lmtp_recipient_find_duplicate(&rcpt->rcpt, trans);
282 i_assert(rcpt->duplicate == NULL || rcpt->duplicate->duplicate == NULL);
285 array_append(&client->local->rcpt_to, &rcpt, 1);
289 lmtp_local_rcpt_anvil_finish(struct lmtp_local_recipient *rcpt)
291 struct smtp_server_cmd_ctx *cmd = rcpt->rcpt.rcpt_cmd;
294 if ((ret = lmtp_local_rcpt_check_quota(rcpt)) < 0) {
296 lmtp_local_rcpt_deinit(rcpt);
307 struct lmtp_local_recipient *rcpt =
309 struct smtp_server_cmd_ctx *cmd = rcpt->rcpt.rcpt_cmd;
310 struct client *client = rcpt->rcpt.client;
311 struct smtp_address *address = rcpt->rcpt.path;
315 rcpt->anvil_query = NULL;
326 } else if (lmtp_local_rcpt_anvil_finish(rcpt)) {
327 rcpt->anvil_connect_sent = TRUE;
328 input = mail_storage_service_user_get_input(rcpt->service_user);
343 struct lmtp_local_recipient *rcpt;
394 rcpt = i_new(struct lmtp_local_recipient, 1);
395 lmtp_recipient_init(&rcpt->rcpt, client,
398 rcpt->detail = i_strdup(detail);
399 rcpt->service_user = service_user;
400 rcpt->session_id = i_strdup(session_id);
402 cmd->context = (void*)rcpt;
407 (void)lmtp_local_rcpt_anvil_finish(rcpt);
412 mail_storage_service_user_get_input(rcpt->service_user);
416 rcpt->anvil_query = anvil_client_query(anvil, query,
417 lmtp_local_rcpt_anvil_cb, rcpt);
450 rcpt_to = rcpts[0]->rcpt.rcpt->path;
453 rcpt_to = rcpts[0]->rcpt.rcpt->params.orcpt.addr;
467 struct lmtp_local_recipient *rcpt,
472 struct smtp_address *rcpt_to = rcpt->rcpt.rcpt->path;
473 unsigned int rcpt_idx = rcpt->rcpt.index;
476 struct mail_storage_service_user *service_user = rcpt->service_user;
572 dctx.session_id = rcpt->session_id;
593 if (*rcpt->detail == '\0' ||
599 t_strconcat(ns->prefix, rcpt->detail, NULL);
617 smtp_address_encode(rcpt_to), rcpt->session_id);
628 lmtp_local_rcpt_reply_overquota(rcpt, cmd, error);
643 lmtp_local_rcpt_anvil_disconnect(rcpt);
662 struct lmtp_local_recipient *rcpt = rcpts[i];
664 if (rcpt->duplicate != NULL) {
667 rcpt->rcpt.index, rcpt->duplicate->rcpt.index);
672 trans, rcpt, src_mail, session);