From 30ab793c01eb86c885f837da6d14c6caa0a86625 Mon Sep 17 00:00:00 2001 From: Björn Persson Date: Sun, 8 Jan 2012 10:38:18 +0000 Subject: · Added new features corresponding to new versions of Libmilter. · Added a multiple-line version of Set_Reply. · Added functions to access the client's IP address and port. · Clarified error messages. · Clarified some comments. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- milter_api-set_reply.adb | 1467 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1467 insertions(+) create mode 100644 milter_api-set_reply.adb (limited to 'milter_api-set_reply.adb') diff --git a/milter_api-set_reply.adb b/milter_api-set_reply.adb new file mode 100644 index 0000000..066c971 --- /dev/null +++ b/milter_api-set_reply.adb @@ -0,0 +1,1467 @@ +-- Ada Milter API, a binding to Libmilter, the Sendmail mail filtering API +-- Copyright 2009 B. Persson, Bjorn@Rombobeorn.se +-- +-- This library is free software: you can redistribute it and/or modify it +-- under the terms of the GNU General Public License version 3, as published +-- by the Free Software Foundation. + + +separate(Milter_API) +procedure Set_Reply + (Context : SMFICTX_Pointer; + Reply_Code : String_Of_Three; + Extended_Code : String := ""; + Message : Reply_Lines) +is + + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + line_22 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + line_22 : chars_ptr; + line_23 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + line_22 : chars_ptr; + line_23 : chars_ptr; + line_24 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + line_22 : chars_ptr; + line_23 : chars_ptr; + line_24 : chars_ptr; + line_25 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + line_22 : chars_ptr; + line_23 : chars_ptr; + line_24 : chars_ptr; + line_25 : chars_ptr; + line_26 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + line_22 : chars_ptr; + line_23 : chars_ptr; + line_24 : chars_ptr; + line_25 : chars_ptr; + line_26 : chars_ptr; + line_27 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + line_22 : chars_ptr; + line_23 : chars_ptr; + line_24 : chars_ptr; + line_25 : chars_ptr; + line_26 : chars_ptr; + line_27 : chars_ptr; + line_28 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + line_22 : chars_ptr; + line_23 : chars_ptr; + line_24 : chars_ptr; + line_25 : chars_ptr; + line_26 : chars_ptr; + line_27 : chars_ptr; + line_28 : chars_ptr; + line_29 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + line_22 : chars_ptr; + line_23 : chars_ptr; + line_24 : chars_ptr; + line_25 : chars_ptr; + line_26 : chars_ptr; + line_27 : chars_ptr; + line_28 : chars_ptr; + line_29 : chars_ptr; + line_30 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + line_22 : chars_ptr; + line_23 : chars_ptr; + line_24 : chars_ptr; + line_25 : chars_ptr; + line_26 : chars_ptr; + line_27 : chars_ptr; + line_28 : chars_ptr; + line_29 : chars_ptr; + line_30 : chars_ptr; + line_31 : chars_ptr; + stop : chars_ptr) + return int; + function smfi_setmlreply + (ctx : SMFICTX_Pointer; + rcode : char_array; + xcode : chars_ptr; + line_1 : chars_ptr; + line_2 : chars_ptr; + line_3 : chars_ptr; + line_4 : chars_ptr; + line_5 : chars_ptr; + line_6 : chars_ptr; + line_7 : chars_ptr; + line_8 : chars_ptr; + line_9 : chars_ptr; + line_10 : chars_ptr; + line_11 : chars_ptr; + line_12 : chars_ptr; + line_13 : chars_ptr; + line_14 : chars_ptr; + line_15 : chars_ptr; + line_16 : chars_ptr; + line_17 : chars_ptr; + line_18 : chars_ptr; + line_19 : chars_ptr; + line_20 : chars_ptr; + line_21 : chars_ptr; + line_22 : chars_ptr; + line_23 : chars_ptr; + line_24 : chars_ptr; + line_25 : chars_ptr; + line_26 : chars_ptr; + line_27 : chars_ptr; + line_28 : chars_ptr; + line_29 : chars_ptr; + line_30 : chars_ptr; + line_31 : chars_ptr; + line_32 : chars_ptr; + stop : chars_ptr) + return int; + pragma import(C, smfi_setmlreply); + + C_Reply_Code : aliased char_array := To_C(Reply_Code); + C_Extended_Code : aliased char_array := To_C(Extended_Code); + Extended_Code_Ptr : chars_ptr := Null_Ptr; + + subtype Reply_Line_Count is Natural range 0 .. Reply_Line_Index'Last; + Line_Count : constant Reply_Line_Count := Message'Last - Message'First + 1; + C_Message : array(1 .. Line_Count) of chars_ptr; + + Result : int; + +begin + + if Extended_Code'Length > 0 then + Extended_Code_Ptr := To_Chars_Ptr(C_Extended_Code'Unchecked_Access); + end if; + + for Index in C_Message'Range loop + C_Message(Index) := New_String(To_String(Message(Message'First + Index - 1))); + end loop; + + case Line_Count is + when 0 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + Null_Ptr); + when 1 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + Null_Ptr); + when 2 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + Null_Ptr); + when 3 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + Null_Ptr); + when 4 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + Null_Ptr); + when 5 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + Null_Ptr); + when 6 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + Null_Ptr); + when 7 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + Null_Ptr); + when 8 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + Null_Ptr); + when 9 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + Null_Ptr); + when 10 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + Null_Ptr); + when 11 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + Null_Ptr); + when 12 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + Null_Ptr); + when 13 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + Null_Ptr); + when 14 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + Null_Ptr); + when 15 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + Null_Ptr); + when 16 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + Null_Ptr); + when 17 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + Null_Ptr); + when 18 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + Null_Ptr); + when 19 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + Null_Ptr); + when 20 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + Null_Ptr); + when 21 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + Null_Ptr); + when 22 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + C_Message(22), + Null_Ptr); + when 23 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + C_Message(22), + C_Message(23), + Null_Ptr); + when 24 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + C_Message(22), + C_Message(23), + C_Message(24), + Null_Ptr); + when 25 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + C_Message(22), + C_Message(23), + C_Message(24), + C_Message(25), + Null_Ptr); + when 26 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + C_Message(22), + C_Message(23), + C_Message(24), + C_Message(25), + C_Message(26), + Null_Ptr); + when 27 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + C_Message(22), + C_Message(23), + C_Message(24), + C_Message(25), + C_Message(26), + C_Message(27), + Null_Ptr); + when 28 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + C_Message(22), + C_Message(23), + C_Message(24), + C_Message(25), + C_Message(26), + C_Message(27), + C_Message(28), + Null_Ptr); + when 29 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + C_Message(22), + C_Message(23), + C_Message(24), + C_Message(25), + C_Message(26), + C_Message(27), + C_Message(28), + C_Message(29), + Null_Ptr); + when 30 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + C_Message(22), + C_Message(23), + C_Message(24), + C_Message(25), + C_Message(26), + C_Message(27), + C_Message(28), + C_Message(29), + C_Message(30), + Null_Ptr); + when 31 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + C_Message(22), + C_Message(23), + C_Message(24), + C_Message(25), + C_Message(26), + C_Message(27), + C_Message(28), + C_Message(29), + C_Message(30), + C_Message(31), + Null_Ptr); + when 32 => + Result := smfi_setmlreply(Context, + C_Reply_Code, + Extended_Code_Ptr, + C_Message(1), + C_Message(2), + C_Message(3), + C_Message(4), + C_Message(5), + C_Message(6), + C_Message(7), + C_Message(8), + C_Message(9), + C_Message(10), + C_Message(11), + C_Message(12), + C_Message(13), + C_Message(14), + C_Message(15), + C_Message(16), + C_Message(17), + C_Message(18), + C_Message(19), + C_Message(20), + C_Message(21), + C_Message(22), + C_Message(23), + C_Message(24), + C_Message(25), + C_Message(26), + C_Message(27), + C_Message(28), + C_Message(29), + C_Message(30), + C_Message(31), + C_Message(32), + Null_Ptr); + end case; + + for Index in C_Message'Range loop + Free(C_Message(Index)); + end loop; + + Check_For_Error("smfi_setmlreply", Result); + +end Set_Reply; -- cgit v1.2.3