Lines Matching refs:ctx
236 ** ctx -- context structure
243 mi_engine(ctx)
244 SMFICTX_PTR ctx;
263 arg.a_ctx = ctx;
264 sd = ctx->ctx_sd;
265 fi_abort = ctx->ctx_smfi->xxfi_abort;
267 curstate = ctx->ctx_state;
270 mi_clr_macros(ctx, 0);
271 fix_stm(ctx);
274 mi_clr_macros(ctx, 0);
275 fix_stm(ctx);
282 timeout.tv_sec = ctx->ctx_timeout;
286 if (ctx->ctx_dbg > 3)
288 (long) ctx->ctx_id);
314 ctx->ctx_smfi->xxfi_name)) == NULL &&
317 if (ctx->ctx_dbg > 5)
319 (long) ctx->ctx_id, (int) cmd);
330 if (ctx->ctx_dbg > 4)
332 (long) ctx->ctx_id, cmd, (int) len);
341 if (ctx->ctx_dbg > 1)
343 (long) ctx->ctx_id, cmd);
350 if (ctx->ctx_dbg > 1)
352 (long) ctx->ctx_id, cmd);
359 if (ctx->ctx_dbg > 5)
361 (long) ctx->ctx_id,
366 if (ctx->ctx_dbg > 1)
368 (long) ctx->ctx_id,
375 (void) (*fi_abort)(ctx);
398 ctx->ctx_state = curstate;
404 MI_MONITOR_BEGIN(ctx, cmd);
406 MI_MONITOR_END(ctx, cmd);
412 if (sendreply(r, sd, &timeout, ctx) != MI_SUCCESS)
436 if (ctx->ctx_dbg > 5)
438 (long) ctx->ctx_id);
444 ctx->ctx_state = curstate;
450 (void) (*fi_abort)(ctx);
454 if (ctx->ctx_state != ST_QUIT
460 if ((fi_close = ctx->ctx_smfi->xxfi_close) != NULL)
461 (void) (*fi_close)(ctx);
466 mi_clr_macros(ctx, 0);
474 milter_addsymlist(ctx, buf, newbuf)
475 SMFICTX_PTR ctx;
484 SM_ASSERT(ctx != NULL);
490 if (ctx->ctx_mac_list[i] != NULL)
492 len += strlen(ctx->ctx_mac_list[i]) + 1 +
511 if (ctx->ctx_mac_list[i] == NULL)
519 l = strlen(ctx->ctx_mac_list[i]) + 1;
522 ctx->ctx_mac_list[i], l);
602 ** ctx -- context structure
609 sendreply(r, sd, timeout_ptr, ctx)
613 SMFICTX_PTR ctx;
620 bit = get_nr_bit(ctx->ctx_state);
621 if (bit != 0 && (ctx->ctx_pflags & bit) != 0 && r != SMFIS_NOREPLY)
628 ctx->ctx_smfi->xxfi_name,
629 ctx->ctx_state, r);
659 if (ctx->ctx_reply != NULL &&
660 ((r == SMFIS_TEMPFAIL && *ctx->ctx_reply == '4') ||
661 (r == SMFIS_REJECT && *ctx->ctx_reply == '5')))
664 ctx->ctx_reply,
665 strlen(ctx->ctx_reply) + 1);
666 free(ctx->ctx_reply);
667 ctx->ctx_reply = NULL;
691 v = htonl(ctx->ctx_prot_vers2mta);
694 v = htonl(ctx->ctx_aflags);
697 v = htonl(ctx->ctx_pflags2mta);
700 len = milter_addsymlist(ctx, buf, &buffer);
710 (ctx->ctx_pflags & bit) != 0 &&
711 (ctx->ctx_mta_pflags & bit) == 0)
732 ** ctx -- context structure
740 mi_clr_macros(ctx, m)
741 SMFICTX_PTR ctx;
748 if (ctx->ctx_mac_ptr[i] != NULL)
750 free(ctx->ctx_mac_ptr[i]);
751 ctx->ctx_mac_ptr[i] = NULL;
753 if (ctx->ctx_mac_buf[i] != NULL)
755 free(ctx->ctx_mac_buf[i]);
756 ctx->ctx_mac_buf[i] = NULL;
765 ** ctx -- context structure
772 mi_clr_symlist(ctx)
773 SMFICTX *ctx;
777 SM_ASSERT(ctx != NULL);
780 if (ctx->ctx_mac_list[i] != NULL)
782 free(ctx->ctx_mac_list[i]);
783 ctx->ctx_mac_list[i] = NULL;
792 ** ctx -- context structure
799 mi_clr_ctx(ctx)
800 SMFICTX *ctx;
802 SM_ASSERT(ctx != NULL);
803 if (ValidSocket(ctx->ctx_sd))
805 (void) closesocket(ctx->ctx_sd);
806 ctx->ctx_sd = INVALID_SOCKET;
808 if (ctx->ctx_reply != NULL)
810 free(ctx->ctx_reply);
811 ctx->ctx_reply = NULL;
813 if (ctx->ctx_privdata != NULL)
817 ctx->ctx_smfi->xxfi_name);
819 mi_clr_macros(ctx, 0);
820 mi_clr_symlist(ctx);
821 free(ctx);
839 SMFICTX_PTR ctx;
851 ctx = g->a_ctx;
852 mi_clr_macros(ctx, g->a_idx + 1);
853 ctx->ctx_prot_vers = SMFI_PROT_VERSION;
860 ctx->ctx_smfi->xxfi_name,
861 (long) ctx->ctx_id, (int) g->a_len,
877 ctx->ctx_smfi->xxfi_name,
878 (long) ctx->ctx_id, v, SMFI_PROT_VERSION_MIN);
881 ctx->ctx_mta_prot_vers = v;
882 if (ctx->ctx_prot_vers < ctx->ctx_mta_prot_vers)
883 ctx->ctx_prot_vers2mta = ctx->ctx_prot_vers;
885 ctx->ctx_prot_vers2mta = ctx->ctx_mta_prot_vers;
894 ctx->ctx_mta_aflags = v; /* MTA action flags */
905 else if (ctx->ctx_smfi->xxfi_version >= SMFI_VERSION_MDS)
929 else if (ctx->ctx_smfi->xxfi_version < SMFI_VERSION_MDS &&
934 ctx->ctx_smfi->xxfi_name,
935 (long) ctx->ctx_id, ctx->ctx_smfi->xxfi_version, v);
948 ctx->ctx_mta_pflags = (v & ~SMFI_INTERNAL) | internal_pflags;
957 ctx->ctx_aflags = ctx->ctx_smfi->xxfi_flags;
985 m_aflags = ctx->ctx_mta_aflags;
986 m_pflags = ctx->ctx_pflags;
987 if ((SMFIP_SKIP & ctx->ctx_mta_pflags) != 0)
990 ctx->ctx_mta_aflags,
991 ctx->ctx_mta_pflags|fake_pflags,
1030 ctx->ctx_aflags = ctx->ctx_mta_aflags;
1031 ctx->ctx_pflags2mta = ctx->ctx_pflags;
1032 if ((SMFIP_SKIP & ctx->ctx_mta_pflags) != 0)
1033 ctx->ctx_pflags2mta |= SMFIP_SKIP;
1039 ctx->ctx_smfi->xxfi_name,
1040 (long) ctx->ctx_id, r, ctx->ctx_mta_pflags,
1041 ctx->ctx_mta_aflags);
1046 ctx->ctx_aflags = m_aflags;
1047 ctx->ctx_pflags = m_pflags;
1048 ctx->ctx_pflags2mta = m_pflags;
1052 i = ctx->ctx_pflags2mta;
1053 if ((ctx->ctx_mta_pflags & i) != i)
1067 if ((ctx->ctx_mta_pflags & b) != b &&
1069 ctx->ctx_pflags2mta &= ~b;
1080 ctx->ctx_pflags2mta = ctx->ctx_pflags;
1084 i = ctx->ctx_aflags;
1085 if ((i & ctx->ctx_mta_aflags) != i)
1089 ctx->ctx_smfi->xxfi_name,
1090 (long) ctx->ctx_id, ctx->ctx_mta_aflags, i);
1094 i = ctx->ctx_pflags2mta;
1095 if ((ctx->ctx_mta_pflags & i) != i)
1105 if (bitset(SMFIP_NODATA, ctx->ctx_pflags2mta) &&
1106 !bitset(SMFIP_NODATA, ctx->ctx_mta_pflags))
1107 ctx->ctx_pflags2mta &= ~SMFIP_NODATA;
1108 if (bitset(SMFIP_NOUNKNOWN, ctx->ctx_pflags2mta) &&
1109 !bitset(SMFIP_NOUNKNOWN, ctx->ctx_mta_pflags))
1110 ctx->ctx_pflags2mta &= ~SMFIP_NOUNKNOWN;
1111 i = ctx->ctx_pflags2mta;
1114 if ((ctx->ctx_mta_pflags & i) != i)
1118 ctx->ctx_smfi->xxfi_name,
1119 (long) ctx->ctx_id, ctx->ctx_mta_pflags, i);
1122 fix_stm(ctx);
1124 if (ctx->ctx_dbg > 3)
1128 , (long) ctx->ctx_id
1129 , ctx->ctx_mta_aflags, ctx->ctx_mta_pflags
1130 , ctx->ctx_aflags, ctx->ctx_pflags);
1133 if (ctx->ctx_dbg > 3)
1136 , (long) ctx->ctx_id, testmode
1137 , ctx->ctx_pflags2mta, internal_pflags);
1149 ctx->ctx_pflags2mta = (ctx->ctx_pflags2mta & ~SMFI_INTERNAL)
1696 ** ctx -- context structure
1706 fix_stm(ctx)
1707 SMFICTX_PTR ctx;
1711 if (ctx == NULL || ctx->ctx_smfi == NULL)
1713 fl = ctx->ctx_pflags;
1822 ** ctx -- context structure
1830 mi_sendok(ctx, flag)
1831 SMFICTX_PTR ctx;
1834 if (ctx == NULL || ctx->ctx_smfi == NULL)
1838 if (flag != 0 && !bitset(flag, ctx->ctx_aflags))
1842 return ctx->ctx_state == ST_ENDM;