From 3c844c59beae71b000d18594dc75c08c37d7c999 Mon Sep 17 00:00:00 2001 From: Evgeny Stambulchik Date: Fri, 30 Aug 2024 18:20:52 +0300 Subject: [PATCH 1/8] Fix functions returning Smtp.Status --- vapi/libesmtp.vapi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vapi/libesmtp.vapi b/vapi/libesmtp.vapi index dfe51b3ef..cc3bf07f2 100644 --- a/vapi/libesmtp.vapi +++ b/vapi/libesmtp.vapi @@ -83,9 +83,9 @@ namespace Smtp { [CCode (cname="smtp_set_messagecb")] public int set_messagecb (MessageCb cb); [CCode (cname="smtp_message_transfer_status")] - public Smtp.Status transfer_status (); + public Smtp.Status* transfer_status (); [CCode (cname="smtp_reverse_path_status")] - public Smtp.Status reverse_path_status (); + public Smtp.Status* reverse_path_status (); [CCode (cname="smtp_message_reset_status")] public static int reset_status (Smtp.Recipient recipient); [CCode (cname="smtp_dsn_set_ret")] @@ -132,7 +132,7 @@ namespace Smtp { [CCode (cname="smtp_etrn_node_t", has_type_id = false)] public struct EtrnNode { [CCode (cname="smtp_etrn_node_status")] - public Smtp.Status node_status (); + public Smtp.Status* node_status (); [CCode (cname="smtp_etrn_set_application_data")] public void* set_application_data (void *data); [CCode (cname="smtp_etrn_get_application_data")] -- GitLab From d5bf9c8b32dd4a85dd9cbb32d0f6982eae4a94d7 Mon Sep 17 00:00:00 2001 From: Evgeny Stambulchik Date: Fri, 30 Aug 2024 18:27:03 +0300 Subject: [PATCH 2/8] Fix strerror() to return an unowned string --- vapi/libesmtp.vapi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vapi/libesmtp.vapi b/vapi/libesmtp.vapi index cc3bf07f2..ec099cf66 100644 --- a/vapi/libesmtp.vapi +++ b/vapi/libesmtp.vapi @@ -179,7 +179,7 @@ namespace Smtp { public static int errno (); [CCode (cname="smtp_strerror")] - public static string strerror (int error, string buf, string buflen); + public static unowned string strerror (int error, string buf, string buflen); [CCode (cname="auth_client_init", cheader_filename="auth-client.h")] public static void auth_client_init (); -- GitLab From 4508d446421f02f05dbf09e20df9e472b31d1361 Mon Sep 17 00:00:00 2001 From: Evgeny Stambulchik Date: Fri, 30 Aug 2024 21:09:22 +0300 Subject: [PATCH 3/8] Make version() and strerror() accept uint8[] buf --- vapi/libesmtp.vapi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vapi/libesmtp.vapi b/vapi/libesmtp.vapi index ec099cf66..a2367cdbe 100644 --- a/vapi/libesmtp.vapi +++ b/vapi/libesmtp.vapi @@ -171,15 +171,15 @@ namespace Smtp { } // the "what" parameter must be 0 - // if buf_len is not enough, SMTP_ERR_INVAL error will be set. 32 is generally enough + // if size of buf is not enough, SMTP_ERR_INVAL error will be set. 32 is generally enough [CCode (cname="smtp_version")] - public static int version (string buf, string buf_len, int what); + public static int version (uint8[] buf, int what); [CCode (cname="smtp_errno")] public static int errno (); [CCode (cname="smtp_strerror")] - public static unowned string strerror (int error, string buf, string buflen); + public static unowned string strerror (int error, uint8[] buf); [CCode (cname="auth_client_init", cheader_filename="auth-client.h")] public static void auth_client_init (); -- GitLab From 187611fecde765ae9f3fa0d449b8ff50852b55ea Mon Sep 17 00:00:00 2001 From: Evgeny Stambulchik Date: Fri, 30 Aug 2024 22:04:55 +0300 Subject: [PATCH 4/8] null is a legitimate retval of MessageCb() --- vapi/libesmtp.vapi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vapi/libesmtp.vapi b/vapi/libesmtp.vapi index a2367cdbe..a59c652fa 100644 --- a/vapi/libesmtp.vapi +++ b/vapi/libesmtp.vapi @@ -203,7 +203,7 @@ namespace Smtp { public delegate void EnumerateRecipientCb (Smtp.Recipient recipient, string mailbox); [CCode (cname="smtp_messagecb_t")] - public delegate unowned string MessageCb (out string buf, out int len); + public delegate unowned string? MessageCb (out string buf, out int len); [CCode (cname="smtp_eventcb_t", instance_pos="2.5")] public delegate void EventCb (Smtp.Session session, int event_no, ...); -- GitLab From 9c67451c524b5451f9f4dbbd5e146258e2b6440e Mon Sep 17 00:00:00 2001 From: Evgeny Stambulchik Date: Fri, 30 Aug 2024 23:33:31 +0300 Subject: [PATCH 5/8] Add binding for the set_message_str() wrapper --- vapi/libesmtp.vapi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vapi/libesmtp.vapi b/vapi/libesmtp.vapi index a59c652fa..db4c1453f 100644 --- a/vapi/libesmtp.vapi +++ b/vapi/libesmtp.vapi @@ -82,6 +82,8 @@ namespace Smtp { public int set_resent_headers (int onoff); [CCode (cname="smtp_set_messagecb")] public int set_messagecb (MessageCb cb); + [CCode (cname="smtp_set_message_str")] + public int set_message_str (string str); [CCode (cname="smtp_message_transfer_status")] public Smtp.Status* transfer_status (); [CCode (cname="smtp_reverse_path_status")] -- GitLab From ac15421e7b7d4d5d5664d878a7d7c481fd1ce9a0 Mon Sep 17 00:00:00 2001 From: Evgeny Stambulchik Date: Fri, 30 Aug 2024 23:50:46 +0300 Subject: [PATCH 6/8] Rename libesmtp to libesmtp-1.0 for consistency --- vapi/{libesmtp.vapi => libesmtp-1.0.vapi} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename vapi/{libesmtp.vapi => libesmtp-1.0.vapi} (99%) diff --git a/vapi/libesmtp.vapi b/vapi/libesmtp-1.0.vapi similarity index 99% rename from vapi/libesmtp.vapi rename to vapi/libesmtp-1.0.vapi index db4c1453f..5fdc65eca 100644 --- a/vapi/libesmtp.vapi +++ b/vapi/libesmtp-1.0.vapi @@ -1,4 +1,4 @@ -/* libesmtp.vapi +/* libesmtp-1.0.vapi * * Copyright (C) 2010 Adrien Bustany * -- GitLab From 8f3f89de638acfb6e25877139e9e3a022b90abd6 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Thu, 31 Oct 2024 17:43:00 +0100 Subject: [PATCH 7/8] Add missing enum keyword for type references --- vapi/libesmtp-1.0.vapi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/vapi/libesmtp-1.0.vapi b/vapi/libesmtp-1.0.vapi index 5fdc65eca..3e951feed 100644 --- a/vapi/libesmtp-1.0.vapi +++ b/vapi/libesmtp-1.0.vapi @@ -228,20 +228,20 @@ namespace Smtp { [CCode (cname="auth_recode_t", cheader_filename="auth-client.h", has_target=false)] public delegate int AuthRecode (void *ctx, out string dstbuf, out int dstlen, string srcbuf, int srclen); - [CCode (cname="header_option", cprefix="Hdr_", has_type_id = false)] + [CCode (cname="enum header_option", cprefix="Hdr_", has_type_id = false)] public enum HeaderOption { OVERRIDE, PROHIBIT } - [CCode (cname="ret_flags", cprefix="Ret_", has_type_id = false)] + [CCode (cname="enum ret_flags", cprefix="Ret_", has_type_id = false)] public enum RetFlags { NOTSET, FULL, HDRS } - [CCode (cname="notify_flags", cprefix="Notify_", has_type_id = false)] + [CCode (cname="enum notify_flags", cprefix="Notify_", has_type_id = false)] public enum NotifyFlags { NOTSET, NEVER, @@ -250,7 +250,7 @@ namespace Smtp { DELAY } - [CCode (cname="e8bitmime_body", cprefix="E8bitmime_", has_type_id = false)] + [CCode (cname="enum e8bitmime_body", cprefix="E8bitmime_", has_type_id = false)] public enum E8BitMimeBody { NOTSET, @7BIT, @@ -258,14 +258,14 @@ namespace Smtp { BINARYMIME } - [CCode (cname="by_mode", cprefix="By_", has_type_id = false)] + [CCode (cname="enum by_mode", cprefix="By_", has_type_id = false)] public enum ByMode { NOTSET, NOTIFY, RETURN } - [CCode (cname="starttls_option", cprefix="Starttls_", has_type_id = false)] + [CCode (cname="enum starttls_option", cprefix="Starttls_", has_type_id = false)] public enum StartTlsOption { DISABLED, ENABLED, -- GitLab From 9ff96c6871d7bf0fe56b4a47e600e25163aef5b8 Mon Sep 17 00:00:00 2001 From: Evgeny Stambulchik Date: Fri, 1 Nov 2024 23:17:01 +0200 Subject: [PATCH 8/8] Update the libesmtp VAPI filename in vapi/Makefile.am --- vapi/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vapi/Makefile.am b/vapi/Makefile.am index a5a243531..bc05e95bb 100644 --- a/vapi/Makefile.am +++ b/vapi/Makefile.am @@ -190,7 +190,7 @@ dist_vapi_DATA = \ libbonoboui-2.0.vapi \ libdaemon.vapi \ libepc-1.0.vapi \ - libesmtp.vapi \ + libesmtp-1.0.vapi \ libftdi.deps \ libftdi.vapi \ libgeoclue-2.0.vapi \ -- GitLab