|
1 |
| -/* |
| 1 | + /* |
2 | 2 | WiFiProv.cpp - WiFiProv class for provisioning
|
3 | 3 | All rights reserved.
|
4 | 4 |
|
@@ -72,13 +72,14 @@ static void get_device_service_name(prov_scheme_t prov_scheme, char *service_nam
|
72 | 72 | #endif
|
73 | 73 | }
|
74 | 74 |
|
75 |
| -void WiFiProvClass ::beginProvision( |
76 |
| - prov_scheme_t prov_scheme, scheme_handler_t scheme_handler, network_prov_security_t security, const char *pop, const char *service_name, |
77 |
| - const char *service_key, uint8_t *uuid, bool reset_provisioned |
78 |
| -) { |
79 |
| - bool provisioned = false; |
80 |
| - static char service_name_temp[32]; |
| 75 | +bool provInitDone = false; |
| 76 | +bool provisioned = false; |
81 | 77 |
|
| 78 | +void WiFiProvClass ::initProvision(prov_scheme_t prov_scheme, scheme_handler_t scheme_handler, bool reset_provisioned) { |
| 79 | + if (provInitDone) { |
| 80 | + log_i("provInit was already done!"); |
| 81 | + return; |
| 82 | + } |
82 | 83 | network_prov_mgr_config_t config;
|
83 | 84 | #if CONFIG_BLUEDROID_ENABLED
|
84 | 85 | if (prov_scheme == NETWORK_PROV_SCHEME_BLE) {
|
@@ -123,6 +124,18 @@ void WiFiProvClass ::beginProvision(
|
123 | 124 | network_prov_mgr_deinit();
|
124 | 125 | return;
|
125 | 126 | }
|
| 127 | + provInitDone = true; |
| 128 | +} |
| 129 | + |
| 130 | +void WiFiProvClass ::beginProvision( |
| 131 | + prov_scheme_t prov_scheme, scheme_handler_t scheme_handler, network_prov_security_t security, const char *pop, const char *service_name, |
| 132 | + const char *service_key, uint8_t *uuid, bool reset_provisioned |
| 133 | +) { |
| 134 | + if (!provInitDone) { |
| 135 | + WiFiProvClass ::initProvision( prov_scheme, scheme_handler, reset_provisioned); |
| 136 | + provInitDone = true; |
| 137 | + } |
| 138 | + static char service_name_temp[32]; |
126 | 139 | if (provisioned == false) {
|
127 | 140 | #if CONFIG_BLUEDROID_ENABLED
|
128 | 141 | if (prov_scheme == NETWORK_PROV_SCHEME_BLE) {
|
|
0 commit comments