| 169 | } |
| 170 | |
| 171 | static acl::sslbase_conf* load_mbedtls(acl::string& ssl_libs) |
| 172 | { |
| 173 | if (ssl_libs.empty()) { |
| 174 | #if defined(__APPLE__) |
| 175 | ssl_libs = "../libmbedtls.dylib"; |
| 176 | #elif defined(__linux__) |
| 177 | ssl_libs = "../libmbedtls.so"; |
| 178 | #elif defined(_WIN32) || defined(_WIN64) |
| 179 | ssl_libs = "../mbedtls.dll"; |
| 180 | #else |
| 181 | # error "unknown OS type" |
| 182 | #endif |
| 183 | } |
| 184 | |
| 185 | // ���� MbedTLS ��̬��·�� |
| 186 | const std::vector<acl::string>& libs = ssl_libs.split2(",; \t"); |
| 187 | if (libs.size() == 1) { |
| 188 | acl::mbedtls_conf::set_libpath(libs[0]); |
| 189 | } else if (libs.size() == 3) { |
| 190 | // libcrypto, libx509, libssl); |
| 191 | acl::mbedtls_conf::set_libpath(libs[0], libs[1], libs[2]); |
| 192 | } else { |
| 193 | printf("invalid ssl_lib=%s\r\n", ssl_libs.c_str()); |
| 194 | return NULL; |
| 195 | } |
| 196 | |
| 197 | // ���� MbedTLS ��̬�� |
| 198 | if (!acl::mbedtls_conf::load()) { |
| 199 | printf("load %s error\r\n", ssl_libs.c_str()); |
| 200 | return NULL; |
| 201 | } |
| 202 | |
| 203 | // ��ʼ�������ģʽ�µ�ȫ�� SSL ���ö��� |
| 204 | bool server_side = true; |
| 205 | |
| 206 | // SSL ֤��У�鼶�� |
| 207 | acl::mbedtls_verify_t verify_mode = acl::MBEDTLS_VERIFY_NONE; |
| 208 | |
| 209 | return new acl::mbedtls_conf(server_side, verify_mode); |
| 210 | } |
| 211 | |
| 212 | static acl::sslbase_conf* load_openssl(acl::string& ssl_libs) |
| 213 | { |