Rombobjörn

summaryrefslogtreecommitdiff
path: root/milter_api-set_reply.adb
diff options
context:
space:
mode:
authorBjörn Persson <bjorn@rombobjörn.se>2012-01-08 10:38:18 +0000
committerBjörn Persson <bjorn@rombobjörn.se>2012-01-08 10:38:18 +0000
commit30ab793c01eb86c885f837da6d14c6caa0a86625 (patch)
treecd91b7d97133c9b4e7fd5b3ad58e6c7e737964ec /milter_api-set_reply.adb
parentcc0fd29fa3881823c6ce1c0f98e02919d22feb75 (diff)
· 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.
Diffstat (limited to 'milter_api-set_reply.adb')
-rw-r--r--milter_api-set_reply.adb1467
1 files changed, 1467 insertions, 0 deletions
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;