|
@@ -15603,30 +15603,27 @@ mg_get_system_info(char *buffer, int buflen)
|
|
static int mg_init_library_called = 0;
|
|
static int mg_init_library_called = 0;
|
|
static int mg_ssl_initialized = 0;
|
|
static int mg_ssl_initialized = 0;
|
|
|
|
|
|
|
|
+
|
|
/* Initialize this library. This function does not need to be thread safe. */
|
|
/* Initialize this library. This function does not need to be thread safe. */
|
|
unsigned
|
|
unsigned
|
|
mg_init_library(unsigned features)
|
|
mg_init_library(unsigned features)
|
|
{
|
|
{
|
|
char ebuf[128];
|
|
char ebuf[128];
|
|
|
|
|
|
- if (features & 2) {
|
|
|
|
- if (mg_check_feature(2)) {
|
|
|
|
- if (!mg_ssl_initialized) {
|
|
|
|
- if (initialize_ssl(ebuf, sizeof(ebuf))) {
|
|
|
|
- mg_ssl_initialized = 1;
|
|
|
|
- } else {
|
|
|
|
- (void)ebuf;
|
|
|
|
- /* TODO: print error */
|
|
|
|
- return 0;
|
|
|
|
- }
|
|
|
|
|
|
+ unsigned features_to_init = mg_check_feature(features & 0xFFu);
|
|
|
|
+ unsigned features_inited = features_to_init;
|
|
|
|
+
|
|
|
|
+ if (features_to_init & 2) {
|
|
|
|
+ if (!mg_ssl_initialized) {
|
|
|
|
+ if (initialize_ssl(ebuf, sizeof(ebuf))) {
|
|
|
|
+ mg_ssl_initialized = 1;
|
|
} else {
|
|
} else {
|
|
- /* ssl already initialized */
|
|
|
|
|
|
+ (void)ebuf;
|
|
|
|
+ /* TODO: print error */
|
|
|
|
+ features_inited &= ~2;
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- (void)ebuf;
|
|
|
|
- /* Cannot initialize SSL, if it is not configured */
|
|
|
|
- /* TODO: print error */
|
|
|
|
- return 0;
|
|
|
|
|
|
+ /* ssl already initialized */
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -15641,7 +15638,7 @@ mg_init_library(unsigned features)
|
|
mg_init_library_called++;
|
|
mg_init_library_called++;
|
|
}
|
|
}
|
|
|
|
|
|
- return mg_check_feature(features & 0xFFu);
|
|
|
|
|
|
+ return features_inited;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|