4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
\r
6 * Contact: Kyuho Jo <kyuho.jo@samsung.com>, Sunghyun Kwon <sh0701.kwon@samsung.com>
\r
8 * Licensed under the Apache License, Version 2.0 (the "License");
\r
9 * you may not use this file except in compliance with the License.
\r
10 * You may obtain a copy of the License at
\r
12 * http://www.apache.org/licenses/LICENSE-2.0
\r
14 * Unless required by applicable law or agreed to in writing, software
\r
15 * distributed under the License is distributed on an "AS IS" BASIS,
\r
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
17 * See the License for the specific language governing permissions and
\r
18 * limitations under the License.
\r
23 /******************************************************************************
\r
24 * File : em-core-api.h
\r
25 * Desc : Mail Engine API
\r
30 * 2006.08.16 : created
\r
31 *****************************************************************************/
\r
36 #include "c-client.h"
\r
37 #include "em-core-global.h"
\r
38 #include "em-network.h"
\r
39 #include "em-core-event.h"
\r
40 #include "em-core-mailbox.h"
\r
41 #include "em-core-utils.h"
\r
42 #include "emf-dbglog.h"
\r
45 pop3_parameters(long function, void *value);
\r
47 imap_parameters(long function, void *value);
\r
52 int em_core_encode_base64(char *src, unsigned long src_len, char **enc, unsigned long* enc_len, int *err_code)
\r
54 EM_DEBUG_FUNC_BEGIN();
\r
56 unsigned char *content;
\r
57 int ret = true, err = EMF_ERROR_NONE;
\r
59 if (err_code != NULL) {
\r
60 *err_code = EMF_ERROR_NONE;
\r
63 content = rfc822_binary(src, src_len, enc_len);
\r
66 *enc = (char *)content;
\r
68 err = EMF_ERROR_UNKNOWN;
\r
75 EM_DEBUG_FUNC_END();
\r
80 * decoding quoted-printable
\r
82 int em_core_decode_quotedprintable(unsigned char *enc_text, unsigned long enc_len, char **dec_text, unsigned long* dec_len, int *err_code)
\r
84 unsigned char *text = enc_text;
\r
85 unsigned long size = enc_len;
\r
86 unsigned char *content;
\r
87 int ret = true, err = EMF_ERROR_NONE;
\r
89 if (err_code != NULL) {
\r
90 *err_code = EMF_ERROR_NONE;
\r
93 EM_DEBUG_FUNC_BEGIN();
\r
95 content = rfc822_qprint(text, size, dec_len);
\r
98 *dec_text = (char *)content;
\r
101 err = EMF_ERROR_UNKNOWN;
\r
114 int em_core_decode_base64(unsigned char *enc_text, unsigned long enc_len, char **dec_text, unsigned long* dec_len, int *err_code)
\r
116 unsigned char *text = enc_text;
\r
117 unsigned long size = enc_len;
\r
118 unsigned char *content;
\r
119 int ret = true, err = EMF_ERROR_NONE;
\r
121 if (err_code != NULL) {
\r
122 *err_code = EMF_ERROR_NONE;
\r
125 EM_DEBUG_FUNC_BEGIN();
\r
127 content = rfc822_base64(text, size, dec_len);
\r
129 *dec_text = (char *)content;
\r
132 err = EMF_ERROR_UNKNOWN;
\r
143 * em_core_get_logout_status - Get the logout status
\r
146 em_core_get_logout_status(int *status)
\r
148 EM_DEBUG_FUNC_BEGIN();
\r
149 int logout_status = 0;
\r
150 *status = logout_status;
\r
151 EM_DEBUG_LOG("em_core_get_logout_status is not implemented");
\r
152 EM_DEBUG_FUNC_END("status [%d]", logout_status);
\r
157 * em_core_set_logout_status - Set the logout status
\r
160 em_core_set_logout_status(int status)
\r
162 EM_DEBUG_FUNC_BEGIN();
\r
163 EM_DEBUG_LOG("em_core_set_logout_status is not implemented");
\r
164 EM_DEBUG_FUNC_END("status [%d] ", status);
\r
167 #define EM_BATTERY_RECOVER_TEMP 6
\r
168 #define EM_BATTERY_ONLINE 1
\r
169 int _check_charger_status(int *charging_status, int *err_code)
\r
171 EM_DEBUG_FUNC_BEGIN("err_code[%p] ", err_code);
\r
174 int err = EMF_ERROR_NONE;
\r
177 *charging_status = ps_value;
\r
181 if (err_code != NULL)
\r
183 EM_DEBUG_FUNC_END();
\r
188 int em_low_battery_noti_init()
\r
190 EM_DEBUG_FUNC_BEGIN();
\r
191 EM_DEBUG_LOG("Not implemented");
\r
192 EM_DEBUG_FUNC_END();
\r
196 /* initialize mail core */
\r
197 EXPORT_API int em_core_init(int *err_code)
\r
199 EM_DEBUG_FUNC_BEGIN();
\r
201 if (err_code != NULL) {
\r
202 *err_code = EMF_ERROR_NONE;
\r
205 mail_link(&imapdriver); /* link in the imap driver */
\r
206 mail_link(&pop3driver); /* link in the pop3 driver */
\r
208 mail_link(&unixdriver); /* link in the unix driver */
\r
209 mail_link(&dummydriver); /* link in the dummy driver */
\r
211 ssl_onceonlyinit();
\r
213 auth_link(&auth_md5); /* link in the md5 authenticator */
\r
214 auth_link(&auth_pla); /* link in the pla authenticator */
\r
215 auth_link(&auth_log); /* link in the log authenticator */
\r
217 /* Disabled to authenticate with plain text */
\r
218 mail_parameters(NIL, SET_DISABLEPLAINTEXT, (void *) 2);
\r
220 /* Set max trials for login */
\r
221 imap_parameters(SET_MAXLOGINTRIALS, (void *)1);
\r
222 pop3_parameters(SET_MAXLOGINTRIALS, (void *)1);
\r
223 smtp_parameters(SET_MAXLOGINTRIALS, (void *)1);
\r
225 mail_parameters(NIL, SET_SSLCERTIFICATEQUERY, (void *)em_core_ssl_cert_query_cb);
\r
226 mail_parameters(NIL, SET_SSLCAPATH, (void *)SSL_CERT_DIRECTORY);
\r
228 /* Set time out in second */
\r
229 mail_parameters(NIL, SET_OPENTIMEOUT , (void *)50);
\r
230 mail_parameters(NIL, SET_READTIMEOUT , (void *)180);
\r
231 mail_parameters(NIL, SET_WRITETIMEOUT , (void *)180);
\r
232 mail_parameters(NIL, SET_CLOSETIMEOUT , (void *)30);
\r
235 *err_code = EMF_ERROR_NONE;
\r