Skip to content

Commit 60be4c3

Browse files
committed
Merge branch 'dlsym'
2 parents dde284b + 05a7f4e commit 60be4c3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+315
-818
lines changed

Makefile.am

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ BUILT_SOURCES = exch/exmdb/rpc.cpp include/exmdb_dispatch.cpp include/mapierr.cp
7272
CLEANFILES = ${BUILT_SOURCES} dldcheck.stamp
7373
libgromox_auth_la_SOURCES = exch/authmgr.cpp exch/ldap_adaptor.cpp exch/ldap_adaptor.hpp
7474
libgromox_auth_la_LDFLAGS = ${default_SYFLAGS}
75-
libgromox_auth_la_LIBADD = ${libcrypto_LIBS} ${libHX_LIBS} ${jsoncpp_LIBS} ${libldap_LIBS} ${pam_LIBS} libgromox_common.la
75+
libgromox_auth_la_LIBADD = ${libcrypto_LIBS} ${libHX_LIBS} ${jsoncpp_LIBS} ${libldap_LIBS} ${pam_LIBS} libgromox_common.la libgxs_mysql_adaptor.la
7676
EXTRA_libgromox_auth_la_DEPENDENCIES = default.sym
7777
libgromox_authz_la_SOURCES = exch/dnsbl_filter.cpp exch/user_filter.cpp
7878
libgromox_authz_la_LDFLAGS = ${default_SYFLAGS}
@@ -105,11 +105,11 @@ delivery_queue_SOURCES = mda/message_enqueue.cpp mda/smtp/flusher.cpp mda/smtp/m
105105
delivery_queue_LDADD = -lpthread ${libcrypto_LIBS} ${libHX_LIBS} ${libssl_LIBS} libgromox_auth.la libgromox_authz.la libgromox_common.la libgromox_epoll.la libgxs_mysql_adaptor.la
106106
libgxm_alias_resolve_la_SOURCES = mda/alias_resolve.cpp mda/mdabounce.cpp mda/mdabounce.hpp lib/bounce_mda.cpp
107107
libgxm_alias_resolve_la_LDFLAGS = ${default_SYFLAGS}
108-
libgxm_alias_resolve_la_LIBADD = -lpthread ${libHX_LIBS} ${mysql_LIBS} libgromox_common.la libgromox_email.la
108+
libgxm_alias_resolve_la_LIBADD = -lpthread ${libHX_LIBS} ${mysql_LIBS} libgromox_common.la libgromox_email.la libgxs_mysql_adaptor.la
109109
EXTRA_libgxm_alias_resolve_la_DEPENDENCIES = default.sym
110110
libgxm_exmdb_local_la_SOURCES = lib/bounce_mda.cpp mda/exmdb_local/auto_response.cpp mda/exmdb_local/bounce_audit.cpp mda/exmdb_local/bounce_producer.cpp mda/exmdb_local/cache_queue.cpp mda/exmdb_local/exmdb_local.cpp mda/exmdb_local/exmdb_local.hpp
111111
libgxm_exmdb_local_la_LDFLAGS = ${default_SYFLAGS}
112-
libgxm_exmdb_local_la_LIBADD = -lpthread ${libHX_LIBS} ${jsoncpp_LIBS} libgromox_common.la libgromox_email.la libgromox_exrpc.la libgromox_mapi.la
112+
libgxm_exmdb_local_la_LIBADD = -lpthread ${libHX_LIBS} ${jsoncpp_LIBS} libgromox_common.la libgromox_email.la libgromox_exrpc.la libgromox_mapi.la libgxs_mysql_adaptor.la
113113
EXTRA_libgxm_exmdb_local_la_DEPENDENCIES = default.sym
114114

115115
pop3_SOURCES = mra/midb_agent.hpp mra/pop3/main.cpp mra/pop3/pop3.hpp mra/pop3/pop3_cmd_handler.cpp mra/pop3/pop3_parser.cpp mra/pop3/resource.cpp
@@ -137,39 +137,39 @@ zcore_SOURCES = exch/gab.cpp exch/zcore/ab_tree.cpp exch/zcore/ab_tree.hpp exch/
137137
zcore_LDADD = -lpthread ${libcrypto_LIBS} ${libHX_LIBS} ${libssl_LIBS} ${vmime_LIBS} libgromox_auth.la libgromox_common.la libgromox_email.la libgromox_exrpc.la libgromox_mapi.la libgxs_mysql_adaptor.la libgxs_timer_agent.la
138138
libgxs_exmdb_provider_la_SOURCES = exch/exmdb/bounce_producer.cpp exch/exmdb/bounce_producer.hpp exch/exmdb/common_util.cpp exch/exmdb/db_engine.cpp exch/exmdb/db_engine.hpp exch/exmdb/client.cpp exch/exmdb/listener.cpp exch/exmdb/listener.hpp exch/exmdb/parser.cpp exch/exmdb/parser.hpp exch/exmdb/rpc.cpp exch/exmdb/notification_agent.cpp exch/exmdb/notification_agent.hpp exch/exmdb/server.cpp exch/exmdb/folder.cpp exch/exmdb/ics.cpp exch/exmdb/instance.cpp exch/exmdb/instbody.cpp exch/exmdb/main.cpp exch/exmdb/message.cpp exch/exmdb/names.cpp exch/exmdb/store.cpp exch/exmdb/store2.cpp exch/exmdb/table.cpp
139139
libgxs_exmdb_provider_la_LDFLAGS = ${default_SYFLAGS}
140-
libgxs_exmdb_provider_la_LIBADD = -lpthread ${libcrypto_LIBS} ${fmt_LIBS} ${libHX_LIBS} ${iconv_LIBS} ${sqlite_LIBS} ${libxxhash_LIBS} libgromox_common.la libgromox_dbop.la libgromox_email.la libgromox_exrpc.la libgromox_mapi.la
140+
libgxs_exmdb_provider_la_LIBADD = -lpthread ${libcrypto_LIBS} ${fmt_LIBS} ${libHX_LIBS} ${iconv_LIBS} ${sqlite_LIBS} ${libxxhash_LIBS} libgromox_common.la libgromox_dbop.la libgromox_email.la libgromox_exrpc.la libgromox_mapi.la libgxs_mysql_adaptor.la
141141
EXTRA_libgxs_exmdb_provider_la_DEPENDENCIES = default.sym
142142
libgxs_timer_agent_la_SOURCES = exch/timer_agent.cpp
143143
libgxs_timer_agent_la_LDFLAGS = ${default_SYFLAGS}
144144
libgxs_timer_agent_la_LIBADD = -lpthread ${libHX_LIBS} libgromox_common.la
145145
EXTRA_libgxs_timer_agent_la_DEPENDENCIES = default.sym
146146
libgxp_exchange_emsmdb_la_SOURCES = exch/emsmdb/asyncemsmdb_interface.cpp exch/emsmdb/asyncemsmdb_interface.hpp exch/emsmdb/attachment_object.cpp exch/emsmdb/attachment_object.hpp exch/emsmdb/aux_ext.cpp exch/emsmdb/aux_types.hpp exch/emsmdb/common_util.cpp exch/emsmdb/common_util.hpp exch/emsmdb/emsmdb_interface.cpp exch/emsmdb/emsmdb_interface.hpp exch/emsmdb/emsmdb_ndr.cpp exch/emsmdb/emsmdb_ndr.hpp exch/emsmdb/exmdb_client.cpp exch/emsmdb/exmdb_client.hpp exch/emsmdb/fastdownctx_object.cpp exch/emsmdb/fastdownctx_object.hpp exch/emsmdb/fastupctx_object.cpp exch/emsmdb/fastupctx_object.hpp exch/emsmdb/folder_object.cpp exch/emsmdb/folder_object.hpp exch/emsmdb/ftstream_parser.cpp exch/emsmdb/ftstream_parser.hpp exch/emsmdb/ftstream_producer.cpp exch/emsmdb/ftstream_producer.hpp exch/emsmdb/ics_state.cpp exch/emsmdb/ics_state.hpp exch/emsmdb/icsdownctx_object.cpp exch/emsmdb/icsdownctx_object.hpp exch/emsmdb/logon_object.cpp exch/emsmdb/logon_object.hpp exch/emsmdb/main.cpp exch/emsmdb/message_object.cpp exch/emsmdb/message_object.hpp exch/emsmdb/names.cpp exch/emsmdb/notify.cpp exch/emsmdb/notify_response.hpp exch/emsmdb/oxcfold.cpp exch/emsmdb/oxcfxics.cpp exch/emsmdb/oxcmsg.cpp exch/emsmdb/oxcprpt.cpp exch/emsmdb/oxcstore.cpp exch/emsmdb/oxctabl.cpp exch/emsmdb/oxomsg.cpp exch/emsmdb/processor_types.hpp exch/emsmdb/rop_dispatch.cpp exch/emsmdb/rop_dispatch.hpp exch/emsmdb/rop_ext.cpp exch/emsmdb/rop_ext.hpp exch/emsmdb/rop_funcs.hpp exch/emsmdb/rop_ids.hpp exch/emsmdb/rop_processor.cpp exch/emsmdb/rop_processor.hpp exch/emsmdb/stream_object.cpp exch/emsmdb/stream_object.hpp exch/emsmdb/table_object.cpp exch/emsmdb/table_object.hpp
147147
libgxp_exchange_emsmdb_la_LDFLAGS = ${default_SYFLAGS}
148-
libgxp_exchange_emsmdb_la_LIBADD = -lpthread ${libHX_LIBS} ${iconv_LIBS} ${vmime_LIBS} libgromox_common.la libgromox_email.la libgromox_mapi.la libgromox_rpc.la
148+
libgxp_exchange_emsmdb_la_LIBADD = -lpthread ${libHX_LIBS} ${iconv_LIBS} ${vmime_LIBS} libgromox_common.la libgromox_email.la libgromox_mapi.la libgromox_rpc.la libgxs_mysql_adaptor.la
149149
EXTRA_libgxp_exchange_emsmdb_la_DEPENDENCIES = default.sym
150150
libgxp_exchange_nsp_la_SOURCES = exch/nsp/ab_tree.cpp exch/nsp/ab_tree.hpp exch/nsp/common_util.cpp exch/nsp/common_util.hpp exch/nsp/main.cpp exch/nsp/nsp_interface.cpp exch/nsp/nsp_interface.hpp exch/nsp/nsp_ndr.cpp exch/nsp/nsp_ndr.hpp exch/nsp/nsp_types.hpp
151151
libgxp_exchange_nsp_la_LDFLAGS = ${default_SYFLAGS}
152-
libgxp_exchange_nsp_la_LIBADD = -lpthread ${libcrypto_LIBS} ${fmt_LIBS} ${libHX_LIBS} ${iconv_LIBS} libgromox_common.la libgromox_mapi.la libgromox_rpc.la
152+
libgxp_exchange_nsp_la_LIBADD = -lpthread ${libcrypto_LIBS} ${fmt_LIBS} ${libHX_LIBS} ${iconv_LIBS} libgromox_common.la libgromox_mapi.la libgromox_rpc.la libgxs_mysql_adaptor.la
153153
EXTRA_libgxp_exchange_nsp_la_DEPENDENCIES = default.sym
154154
libgxp_exchange_rfr_la_SOURCES = exch/rfr.cpp
155155
libgxp_exchange_rfr_la_LDFLAGS = ${default_SYFLAGS}
156-
libgxp_exchange_rfr_la_LIBADD = ${fmt_LIBS} ${libHX_LIBS} libgromox_common.la libgromox_rpc.la
156+
libgxp_exchange_rfr_la_LIBADD = ${fmt_LIBS} ${libHX_LIBS} libgromox_common.la libgromox_rpc.la libgxs_mysql_adaptor.la
157157
EXTRA_libgxp_exchange_rfr_la_DEPENDENCIES = default.sym
158158
libgxh_ews_la_SOURCES = exch/ews/ObjectCache.hpp exch/ews/context.cpp exch/ews/enums.hpp exch/ews/ews.cpp exch/ews/ews.hpp exch/ews/exceptions.hpp exch/ews/hash.hpp exch/ews/namedtags.hpp exch/ews/requests.cpp exch/ews/requests.hpp exch/ews/serialization.cpp exch/ews/serialization.hpp exch/ews/soaputil.cpp exch/ews/soaputil.hpp exch/ews/structures.cpp exch/ews/structures.hpp
159159
libgxh_ews_la_LDFLAGS = ${default_SYFLAGS}
160-
libgxh_ews_la_LIBADD = ${libHX_LIBS} ${fmt_LIBS} ${tinyxml2_LIBS} ${vmime_LIBS} libgromox_common.la libgromox_email.la libgromox_mapi.la libgromox_exrpc.la
160+
libgxh_ews_la_LIBADD = ${libHX_LIBS} ${fmt_LIBS} ${tinyxml2_LIBS} ${vmime_LIBS} libgromox_common.la libgromox_email.la libgromox_mapi.la libgromox_exrpc.la libgxs_mysql_adaptor.la
161161
EXTRA_libgxh_ews_la_DEPENDENCIES = default.sym
162162
libgxh_mh_emsmdb_la_SOURCES = exch/mh/emsmdb.cpp exch/mh/mh_common.cpp exch/mh/mh_common.hpp
163163
libgxh_mh_emsmdb_la_LDFLAGS = ${default_SYFLAGS}
164164
libgxh_mh_emsmdb_la_LIBADD = -lpthread ${fmt_LIBS} libgromox_common.la libgromox_mapi.la
165165
EXTRA_libgxh_mh_emsmdb_la_DEPENDENCIES = default.sym
166166
libgxh_mh_nsp_la_SOURCES = exch/mh/mh_common.cpp exch/mh/mh_common.hpp exch/mh/nsp.cpp exch/mh/nsp_bridge.cpp exch/mh/nsp_bridge.hpp exch/mh/nsp_common.cpp exch/mh/nsp_common.hpp exch/mh/nsp_ops.cpp exch/mh/nsp_ops.hpp
167167
libgxh_mh_nsp_la_LDFLAGS = ${default_SYFLAGS}
168-
libgxh_mh_nsp_la_LIBADD = -lpthread ${fmt_LIBS} libgromox_common.la libgromox_mapi.la
168+
libgxh_mh_nsp_la_LIBADD = -lpthread ${fmt_LIBS} libgromox_common.la libgromox_mapi.la libgxs_mysql_adaptor.la
169169
EXTRA_libgxh_mh_nsp_la_DEPENDENCIES = default.sym
170170
libgxh_oxdisco_la_SOURCES = exch/oxdisco.cpp
171171
libgxh_oxdisco_la_LDFLAGS = ${default_SYFLAGS}
172-
libgxh_oxdisco_la_LIBADD = ${libHX_LIBS} ${fmt_LIBS} ${tinyxml2_LIBS} libgromox_common.la libgromox_mapi.la
172+
libgxh_oxdisco_la_LIBADD = ${libHX_LIBS} ${fmt_LIBS} ${tinyxml2_LIBS} libgromox_common.la libgromox_mapi.la libgxs_mysql_adaptor.la
173173
EXTRA_libgxh_oxdisco_la_DEPENDENCIES = default.sym
174174
libgxh_oab_la_SOURCES = exch/oab.cpp
175175
libgxh_oab_la_LDFLAGS = ${default_SYFLAGS}
@@ -181,7 +181,7 @@ libgxs_mysql_adaptor_la_LIBADD = -lpthread ${crypt_LIBS} ${libHX_LIBS} ${fmt_LIB
181181
EXTRA_libgxs_mysql_adaptor_la_DEPENDENCIES = default.sym
182182
libgxs_ruleproc_la_SOURCES = lib/ruleproc.cpp
183183
libgxs_ruleproc_la_LDFLAGS = ${default_SYFLAGS}
184-
libgxs_ruleproc_la_LIBADD = ${vmime_LIBS} libgromox_common.la libgromox_exrpc.la
184+
libgxs_ruleproc_la_LIBADD = ${vmime_LIBS} libgromox_common.la libgromox_exrpc.la libgxs_mysql_adaptor.la
185185
EXTRA_libgxs_ruleproc_la_DEPENDENCIES = ${default_SYM}
186186

187187
cgkrepair_SOURCES = tools/cgkrepair.cpp tools/genimport.cpp tools/genimport.hpp

default.sym

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ global:
1616

1717
extern "C++" {
1818
midb_agent::*;
19+
mysql_adaptor_*;
1920
};
2021
local:
2122
*;

exch/authmgr.cpp

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: AGPL-3.0-or-later
2-
// SPDX-FileCopyrightText: 2020–2021 grommunio GmbH
2+
// SPDX-FileCopyrightText: 2020–2024 grommunio GmbH
33
// This file is part of Gromox.
44
#ifdef HAVE_CONFIG_H
55
# include "config.h"
@@ -54,8 +54,6 @@ struct sslfree2 : public sslfree {
5454
};
5555
}
5656

57-
static decltype(mysql_adaptor_meta) *fptr_mysql_meta;
58-
static decltype(mysql_adaptor_login2) *fptr_mysql_login;
5957
static decltype(ldap_adaptor_login3) *fptr_ldap_login;
6058
static unsigned int am_choice = A_EXTERNID_LDAP;
6159

@@ -159,7 +157,7 @@ static bool login_token(const char *token,
159157
mres.errstr = "Token did not validate";
160158
return false;
161159
}
162-
auto err = fptr_mysql_meta(ex_user.c_str(), wantpriv, mres);
160+
auto err = mysql_adaptor_meta(ex_user.c_str(), wantpriv, mres);
163161
if (err != 0 && mres.errstr.empty()) {
164162
mres.errstr = "meta: "s + strerror(err);
165163
return false;
@@ -235,7 +233,7 @@ static bool login_gen(const char *username, const char *password,
235233
unsigned int wantpriv, sql_meta_result &mres) try
236234
{
237235
bool auth = false;
238-
auto err = fptr_mysql_meta(username, wantpriv, mres);
236+
auto err = mysql_adaptor_meta(username, wantpriv, mres);
239237
if (err != 0 || mres.have_xid == 0xFF)
240238
sleep(1);
241239
else if (am_choice == A_DENY_ALL)
@@ -247,7 +245,7 @@ static bool login_gen(const char *username, const char *password,
247245
else if (am_choice == A_EXTERNID_PAM && mres.have_xid > 0)
248246
auth = login_pam(mres.username.c_str(), password, mres);
249247
else if (am_choice == A_EXTERNID_LDAP)
250-
auth = fptr_mysql_login(mres.username.c_str(), password,
248+
auth = mysql_adaptor_login2(mres.username.c_str(), password,
251249
mres.enc_passwd, mres.errstr);
252250
auth = auth && err == 0;
253251
if (!auth && mres.errstr.empty())
@@ -300,13 +298,6 @@ static bool authmgr_init()
300298
{
301299
if (!authmgr_reload())
302300
return false;
303-
query_service2("mysql_auth_meta", fptr_mysql_meta);
304-
query_service2("mysql_auth_login2", fptr_mysql_login);
305-
if (fptr_mysql_meta == nullptr ||
306-
fptr_mysql_login == nullptr) {
307-
mlog(LV_ERR, "authmgr: mysql_adaptor plugin not loaded yet");
308-
return false;
309-
}
310301
if (!register_service("auth_login_gen", login_gen)) {
311302
mlog(LV_ERR, "authmgr: failed to register auth services");
312303
return false;

exch/emsmdb/common_util.cpp

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include <gromox/fileio.h>
3333
#include <gromox/mail_func.hpp>
3434
#include <gromox/mapidefs.h>
35+
#include <gromox/mysql_adaptor.hpp>
3536
#include <gromox/oxcmail.hpp>
3637
#include <gromox/pcl.hpp>
3738
#include <gromox/proc_common.h>
@@ -64,17 +65,6 @@ static char g_submit_command[1024];
6465
static constexpr char EMSMDB_UA[] = PACKAGE_NAME "-emsmdb " PACKAGE_VERSION;
6566

6667
#define E(s) decltype(common_util_ ## s) common_util_ ## s;
67-
E(get_homedir)
68-
E(get_user_displayname)
69-
E(check_mlist_include)
70-
E(meta)
71-
E(get_username_from_id)
72-
E(get_user_ids)
73-
E(get_domain_ids)
74-
E(check_same_org)
75-
E(get_homedir_by_id)
76-
E(get_id_from_maildir)
77-
E(get_id_from_homedir)
7868
E(add_timer)
7969
E(cancel_timer)
8070
#undef E
@@ -193,7 +183,7 @@ BINARY* common_util_username_to_addressbook_entryid(const char *username)
193183
std::string eidbuf;
194184

195185
if (cvt_username_to_abkeid(username, g_emsmdb_org_name, DT_MAILUSER,
196-
common_util_get_user_ids, common_util_get_domain_ids,
186+
mysql_adaptor_get_user_ids, mysql_adaptor_get_domain_ids,
197187
eidbuf) != ecSuccess)
198188
return NULL;
199189
auto pbin = cu_alloc<BINARY>();
@@ -527,7 +517,7 @@ ec_error_t replguid_to_replid(const logon_object &logon,
527517
} else if (memcmp(reinterpret_cast<const char *>(&guid) + 4,
528518
reinterpret_cast<const char *>(&gx_dbguid_store_public) + 4, 12) == 0) {
529519
auto dom_id = rop_util_get_domain_id(guid);
530-
if (!common_util_check_same_org(dom_id, logon.domain_id))
520+
if (!mysql_adaptor_check_same_org(dom_id, logon.domain_id))
531521
return ecInvalidParam;
532522
}
533523
ec_error_t ret = ecSuccess;
@@ -1259,8 +1249,8 @@ void common_util_notify_receipt(const char *username, int type,
12591249
auto bounce_type = type == NOTIFY_RECEIPT_READ ?
12601250
"BOUNCE_NOTIFY_READ" : "BOUNCE_NOTIFY_NON_READ";
12611251
vmime::shared_ptr<vmime::message> imail;
1262-
if (!exch_bouncer_make(common_util_get_user_displayname,
1263-
common_util_meta, username, pbrief, bounce_type, imail))
1252+
if (!exch_bouncer_make(mysql_adaptor_get_user_displayname,
1253+
mysql_adaptor_meta, username, pbrief, bounce_type, imail))
12641254
return;
12651255
auto ret = ems_send_vmail(std::move(imail), username, rcpt_list);
12661256
if (ret != ecSuccess)
@@ -1593,24 +1583,12 @@ int common_util_run()
15931583
return -1; \
15941584
} \
15951585
} while (false)
1596-
1597-
E(common_util_get_username_from_id, "get_username_from_id");
1598-
E(common_util_get_homedir, "get_homedir");
1599-
E(common_util_get_user_displayname, "get_user_displayname");
1600-
E(common_util_check_mlist_include, "check_mlist_include");
1601-
E(common_util_meta, "mysql_auth_meta");
1602-
E(common_util_get_user_ids, "get_user_ids");
1603-
E(common_util_get_domain_ids, "get_domain_ids");
1604-
E(common_util_check_same_org, "check_same_org");
1605-
E(common_util_get_homedir_by_id, "get_homedir_by_id");
1606-
E(common_util_get_id_from_maildir, "get_id_from_maildir");
1607-
E(common_util_get_id_from_homedir, "get_id_from_homedir");
16081586
E(common_util_add_timer, "add_timer");
16091587
E(common_util_cancel_timer, "cancel_timer");
16101588
#undef E
16111589

1612-
if (!oxcmail_init_library(g_emsmdb_org_name, common_util_get_user_ids,
1613-
common_util_get_domain_ids, common_util_get_username_from_id)) {
1590+
if (!oxcmail_init_library(g_emsmdb_org_name, mysql_adaptor_get_user_ids,
1591+
mysql_adaptor_get_domain_ids, mysql_adaptor_get_username_from_id)) {
16141592
mlog(LV_ERR, "emsmdb: failed to init oxcmail library");
16151593
return -2;
16161594
}
@@ -1641,7 +1619,7 @@ static void mlog2(unsigned int level, const char *format, ...)
16411619
ec_error_t cu_id2user(int id, std::string &user) try
16421620
{
16431621
char ubuf[UADDR_SIZE];
1644-
if (!common_util_get_username_from_id(id, ubuf, std::size(ubuf)))
1622+
if (!mysql_adaptor_get_username_from_id(id, ubuf, std::size(ubuf)))
16451623
return ecError;
16461624
user = ubuf;
16471625
return ecSuccess;

exch/emsmdb/common_util.hpp

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
#include <vector>
88
#include <vmime/message.hpp>
99
#include <gromox/mapi_types.hpp>
10-
#include <gromox/mysql_adaptor.hpp>
1110
#include <gromox/proc_common.h>
1211
#include <gromox/util.hpp>
1312
#define NOTIFY_RECEIPT_READ 1
@@ -92,20 +91,6 @@ extern ec_error_t cu_send_message(logon_object *, message_object *, bool submit)
9291
extern ec_error_t cu_id2user(int, std::string &);
9392
extern bool bounce_producer_make(bool (*)(const char *, char *, size_t), bool (*)(const char *, char *, size_t), bool (*)(const char *, char *, size_t), const char *user, message_content *, const char *bounce_type, MAIL *);
9493

95-
#define E(s) extern decltype(mysql_adaptor_ ## s) *common_util_ ## s;
96-
E(check_mlist_include)
97-
E(check_same_org)
98-
E(get_domain_ids)
99-
E(get_homedir)
100-
E(get_homedir_by_id)
101-
E(get_id_from_homedir)
102-
E(get_id_from_maildir)
103-
E(get_homedir)
104-
E(get_user_displayname)
105-
E(get_user_ids)
106-
E(meta)
107-
E(get_username_from_id)
108-
#undef E
10994
extern int (*common_util_add_timer)(const char *command, int interval);
11095
extern BOOL (*common_util_cancel_timer)(int timer_id);
11196

exch/emsmdb/emsmdb_interface.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include <gromox/clock.hpp>
2222
#include <gromox/defs.h>
2323
#include <gromox/mapidefs.h>
24+
#include <gromox/mysql_adaptor.hpp>
2425
#include <gromox/proc_common.h>
2526
#include <gromox/process.hpp>
2627
#include <gromox/rop_util.hpp>
@@ -594,7 +595,7 @@ int emsmdb_interface_connect_ex(uint64_t hrpc, CXH *pcxh, const char *puser_dn,
594595
return ecUnknownUser;
595596
if (strcasecmp(username.c_str(), rpc_info.username) != 0)
596597
return ecAccessDenied;
597-
if (!common_util_get_user_displayname(username.c_str(), temp_buff, std::size(temp_buff)) ||
598+
if (!mysql_adaptor_get_user_displayname(username.c_str(), temp_buff, std::size(temp_buff)) ||
598599
common_util_mb_from_utf8(cpid, temp_buff, pdisplayname, 1024) < 0)
599600
return ecRpcFailed;
600601
if (*pdisplayname == '\0')

exch/emsmdb/logon_object.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <gromox/defs.h>
1616
#include <gromox/mapidefs.h>
1717
#include <gromox/msgchg_grouping.hpp>
18+
#include <gromox/mysql_adaptor.hpp>
1819
#include <gromox/proc_common.h>
1920
#include <gromox/rop_util.hpp>
2021
#include <gromox/usercvt.hpp>
@@ -442,7 +443,7 @@ static BOOL logon_object_get_calculated_property(const logon_object *plogon,
442443
*ppvalue = dispname;
443444
if (*ppvalue == nullptr)
444445
return FALSE;
445-
if (!common_util_get_user_displayname(plogon->account, dispname, UADDR_SIZE))
446+
if (!mysql_adaptor_get_user_displayname(plogon->account, dispname, UADDR_SIZE))
446447
return FALSE;
447448
auto temp_len = strlen(dispname);
448449
for (size_t i = 0; i < temp_len; ++i) {
@@ -476,7 +477,7 @@ static BOOL logon_object_get_calculated_property(const logon_object *plogon,
476477
std::string essdn;
477478
if (cvt_username_to_essdn(plogon->is_private() ? plogon->account :
478479
account_to_domain(plogon->account), g_emsmdb_org_name,
479-
common_util_get_user_ids, common_util_get_domain_ids,
480+
mysql_adaptor_get_user_ids, mysql_adaptor_get_domain_ids,
480481
essdn) != ecSuccess)
481482
return false;
482483
auto tstr = cu_alloc<char>(essdn.size() + 1);
@@ -509,7 +510,7 @@ static BOOL logon_object_get_calculated_property(const logon_object *plogon,
509510
case PR_MAILBOX_OWNER_NAME:
510511
if (!plogon->is_private())
511512
return FALSE;
512-
if (!common_util_get_user_displayname(plogon->account,
513+
if (!mysql_adaptor_get_user_displayname(plogon->account,
513514
temp_buff, std::size(temp_buff)))
514515
return FALSE;
515516
if ('\0' == temp_buff[0]) {
@@ -529,7 +530,7 @@ static BOOL logon_object_get_calculated_property(const logon_object *plogon,
529530
case PR_MAILBOX_OWNER_NAME_A: {
530531
if (!plogon->is_private())
531532
return FALSE;
532-
if (!common_util_get_user_displayname(plogon->account,
533+
if (!mysql_adaptor_get_user_displayname(plogon->account,
533534
temp_buff, std::size(temp_buff)))
534535
return FALSE;
535536
auto temp_len = utf8_to_mb_len(temp_buff);

0 commit comments

Comments
 (0)