Skip to content
This repository was archived by the owner on Feb 4, 2023. It is now read-only.

Commit af2eb6d

Browse files
authored
v1.6.3 to fix dnsServer not closed
### Releases v1.6.3 1. Fix dnsServer not closed to free up DNS port 53. Check [**Allow captive portal to run more than once by closing dnsServer cleanly. #49** #49](#49) 2. Add `dnsServer can't start` error message.
1 parent fee3a98 commit af2eb6d

File tree

33 files changed

+129
-69
lines changed

33 files changed

+129
-69
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Please ensure to specify the following:
2929
Arduino IDE version: 1.8.13
3030
ESP8266 Core Version 2.7.4
3131
OS: Ubuntu 20.04 LTS
32-
Linux xy-Inspiron-3593 5.4.0-70-generic #78-Ubuntu SMP Fri Mar 19 13:29:52 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
32+
Linux xy-Inspiron-3593 5.4.0-71-generic #79-Ubuntu SMP Wed Mar 24 10:56:57 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
3333
3434
Context:
3535
I encountered an endless loop while trying to connect to Local WiFi.

README.md

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
* [Why Async is better](#why-async-is-better)
1717
* [Currently supported Boards](#currently-supported-boards)
1818
* [Changelog](#changelog)
19+
* [Releases v1.6.3](#releases-v163)
1920
* [Releases v1.6.2](#releases-v162)
2021
* [Releases v1.6.1](#releases-v161)
2122
* [Releases v1.6.0](#releases-v160)
@@ -204,6 +205,11 @@ This [**ESPAsync_WiFiManager_Lite** library](https://github.com/khoih-prog/ESPAs
204205

205206
## Changelog
206207

208+
### Releases v1.6.3
209+
210+
1. Fix dnsServer not closed to free up DNS port 53. Check [**Allow captive portal to run more than once by closing dnsServer cleanly. #49** #49](https://github.com/khoih-prog/ESPAsync_WiFiManager/pull/49)
211+
2. Add `dnsServer can't start` error message.
212+
207213
### Releases v1.6.2
208214

209215
1. Fix example misleading messages. Check [**Minor: examples/Async_ESP32_FSWebServer/ wrongly uses FileFS.begin(true)** #47](https://github.com/khoih-prog/ESPAsync_WiFiManager/issues/47)
@@ -2139,7 +2145,7 @@ ESPAsync_wifiManager.setRemoveDuplicateAPs(false);
21392145
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
21402146
#endif
21412147

2142-
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.2"
2148+
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.3"
21432149

21442150
// Use from 0 to 4. Higher number, more debugging messages and memory usage.
21452151
#define _ESPASYNC_WIFIMGR_LOGLEVEL_ 3
@@ -3321,7 +3327,7 @@ This is terminal debug output when running [Async_ConfigOnDRD_FS_MQTT_Ptr_Medium
33213327
33223328
```
33233329
Starting Async_ConfigOnDRD_FS_MQTT_Ptr_Medium using LittleFS on ESP32_DEV
3324-
ESPAsync_WiFiManager v1.6.2
3330+
ESPAsync_WiFiManager v1.6.3
33253331
ESP_DoubleResetDetector v1.1.1
33263332
Config File not found
33273333
Can't read Config File, using default values
@@ -3340,7 +3346,7 @@ Opening Configuration Portal. No timeout : DRD or No stored Credentials..
33403346
33413347
```
33423348
Starting Async_ConfigOnDRD_FS_MQTT_Ptr_Medium using LittleFS on ESP32_DEV
3343-
ESPAsync_WiFiManager v1.6.2
3349+
ESPAsync_WiFiManager v1.6.3
33443350
ESP_DoubleResetDetector v1.1.1
33453351
Config File not found
33463352
Can't read Config File, using default values
@@ -3428,7 +3434,7 @@ This is terminal debug output when running [Async_ConfigOnDRD_FS_MQTT_Ptr_Comple
34283434
34293435
```
34303436
Starting Async_ConfigOnDRD_FS_MQTT_Ptr_Complex using LittleFS on ESP8266_NODEMCU
3431-
ESPAsync_WiFiManager v1.6.2
3437+
ESPAsync_WiFiManager v1.6.3
34323438
ESP_DoubleResetDetector Version v1.1.1
34333439
{"AIO_SERVER_Label":"io.adafruit.com","AIO_SERVERPORT_Label":"1883","AIO_USERNAME_Label":"user_name","AIO_KEY_Label":"aio_key"}
34343440
Config File successfully parsed
@@ -3468,7 +3474,7 @@ TWWWW WTWWW
34683474
34693475
```
34703476
Starting Async_ConfigOnDRD_FS_MQTT_Ptr_Complex using LittleFS on ESP8266_NODEMCU
3471-
ESPAsync_WiFiManager v1.6.2
3477+
ESPAsync_WiFiManager v1.6.3
34723478
ESP_DoubleResetDetector Version v1.1.1
34733479
{"AIO_SERVER_Label":"io.adafruit.com","AIO_SERVERPORT_Label":"1883","AIO_USERNAME_Label":"user_name","AIO_KEY_Label":"aio_key"}
34743480
Config File successfully parsed
@@ -3558,7 +3564,7 @@ This is terminal debug output when running [Async_ConfigOnDoubleReset](examples/
35583564
35593565
```cpp
35603566
Starting Async_ConfigOnDoubleReset with DoubleResetDetect using SPIFFS on ESP32_DEV
3561-
ESPAsync_WiFiManager v1.6.2
3567+
ESPAsync_WiFiManager v1.6.3
35623568
ESP_DoubleResetDetector v1.1.1
35633569
[WM] RFC925 Hostname = ConfigOnDoubleReset
35643570
[WM] setSTAStaticIPConfig for USE_CONFIGURABLE_DNS
@@ -3617,7 +3623,7 @@ This is terminal debug output when running [Async_ConfigOnDoubleReset](examples/
36173623

36183624
```cpp
36193625
Starting Async_ConfigOnDoubleReset with DoubleResetDetect using LittleFS on ESP8266_NODEMCU
3620-
ESPAsync_WiFiManager v1.6.2
3626+
ESPAsync_WiFiManager v1.6.3
36213627
ESP_DoubleResetDetector v1.1.1
36223628
[WM] RFC925 Hostname = ConfigOnDoubleReset
36233629
[WM] setSTAStaticIPConfig for USE_CONFIGURABLE_DNS
@@ -3677,7 +3683,7 @@ This is terminal debug output when running [Async_ESP_FSWebServer_DRD](examples/
36773683
36783684
```cpp
36793685
Starting Async_ESP_FSWebServer_DRD using LittleFS on ESP8266_NODEMCU
3680-
ESPAsync_WiFiManager v1.6.2
3686+
ESPAsync_WiFiManager v1.6.3
36813687
ESP_DoubleResetDetector v1.1.1
36823688
Opening / directory
36833689
FS File: CanadaFlag_1.png, size: 40.25KB
@@ -3755,7 +3761,7 @@ This is terminal debug output when running [Async_ESP32_FSWebServer_DRD](example
37553761

37563762
```
37573763
Starting Async_ESP32_FSWebServer_DRD using LittleFS on ESP32_DEV
3758-
ESPAsync_WiFiManager v1.6.2
3764+
ESPAsync_WiFiManager v1.6.3
37593765
ESP_DoubleResetDetector v1.1.1
37603766
FS File: /CanadaFlag_1.png, size: 40.25KB
37613767
FS File: /CanadaFlag_2.png, size: 8.12KB
@@ -3895,6 +3901,11 @@ Submit issues to: [ESPAsync_WiFiManager issues](https://github.com/khoih-prog/ES
38953901

38963902
## Releases
38973903

3904+
### Releases v1.6.3
3905+
3906+
1. Fix dnsServer not closed to free up DNS port 53. Check [**Allow captive portal to run more than once by closing dnsServer cleanly. #49** #49](https://github.com/khoih-prog/ESPAsync_WiFiManager/pull/49)
3907+
2. Add `dnsServer can't start` error message.
3908+
38983909
### Releases v1.6.2
38993910

39003911
1. Fix example misleading messages. Check [**Minor: examples/Async_ESP32_FSWebServer/ wrongly uses FileFS.begin(true)** #47](https://github.com/khoih-prog/ESPAsync_WiFiManager/issues/47)
@@ -4000,6 +4011,7 @@ to use the better **asynchronous** [ESPAsyncWebServer](https://github.com/me-no-
40004011
10. Thanks to [David Gunzinger](https://github.com/pfy) for creating merged PR [It should be possible to start the ConfigPortal without connecting to WiFI #38](https://github.com/khoih-prog/ESPAsync_WiFiManager/pull/38).
40014012
11. Thanks to [Russell Jahn](https://github.com/russelljahn) for reporting [ESPAsync_WiFiManager::startConfigPortal() will cause a watchdog timeout when called from a higher-priority task. #39](https://github.com/khoih-prog/ESPAsync_WiFiManager/issues/39) leading to v1.5.0 and v1.6.0
40024013
12. Thanks to [robcazzaro](https://github.com/robcazzaro) for reporting [Minor: examples/Async_ESP32_FSWebServer/ wrongly uses FileFS.begin(true) #47](https://github.com/khoih-prog/ESPAsync_WiFiManager/issues/47) leading to v1.6.2
4014+
13. Thanks to [mattbradford83](https://github.com/mattbradford83) for identify, impressively locate, fix the bug and issue PR [Allow captive portal to run more than once by closing dnsServer cleanly. #49](https://github.com/khoih-prog/ESPAsync_WiFiManager/pull/49) leading to v1.6.3
40034015

40044016

40054017
<table>
@@ -4022,6 +4034,7 @@ to use the better **asynchronous** [ESPAsyncWebServer](https://github.com/me-no-
40224034
<tr>
40234035
<td align="center"><a href="https://github.com/russelljahn"><img src="https://github.com/russelljahn.png" width="100px;" alt="russelljahn"/><br /><sub><b>Russell Jahn</b></sub></a><br /></td>
40244036
<td align="center"><a href="https://github.com/robcazzaro"><img src="https://github.com/robcazzaro.png" width="100px;" alt="robcazzaro"/><br /><sub><b>robcazzaro</b></sub></a><br /></td>
4037+
<td align="center"><a href="https://github.com/mattbradford83"><img src="https://github.com/mattbradford83.png" width="100px;" alt="mattbradford83"/><br /><sub><b>Matt Bradford</b></sub></a><br /></td>
40254038
</tr>
40264039
</table>
40274040

examples/Async_AutoConnect/Async_AutoConnect.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
1414
Built by Khoi Hoang https://github.com/khoih-prog/ESPAsync_WiFiManager
1515
Licensed under MIT license
16-
Version: 1.6.2
16+
Version: 1.6.3
1717
1818
Version Modified By Date Comments
1919
------- ----------- ---------- -----------
@@ -32,12 +32,13 @@
3232
1.6.0 K Hoang 25/02/2021 Fix WiFi Scanning bug.
3333
1.6.1 K Hoang 26/03/2021 Modify multiWiFi-related timings to work better with latest esp32 core v1.0.6
3434
1.6.2 K Hoang 08/04/2021 Fix example misleading messages.
35+
1.6.3 K Hoang 13/04/2021 Allow captive portal to run more than once by closing dnsServer.
3536
*****************************************************************************************************************************/
3637
#if !( defined(ESP8266) || defined(ESP32) )
3738
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
3839
#endif
3940

40-
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.2"
41+
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.3"
4142

4243
// Use from 0 to 4. Higher number, more debugging messages and memory usage.
4344
#define _ESPASYNC_WIFIMGR_LOGLEVEL_ 3

examples/Async_AutoConnectWithFSParameters/Async_AutoConnectWithFSParameters.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
1414
Built by Khoi Hoang https://github.com/khoih-prog/ESPAsync_WiFiManager
1515
Licensed under MIT license
16-
Version: 1.6.2
16+
Version: 1.6.3
1717
1818
Version Modified By Date Comments
1919
------- ----------- ---------- -----------
@@ -32,13 +32,14 @@
3232
1.6.0 K Hoang 25/02/2021 Fix WiFi Scanning bug.
3333
1.6.1 K Hoang 26/03/2021 Modify multiWiFi-related timings to work better with latest esp32 core v1.0.6
3434
1.6.2 K Hoang 08/04/2021 Fix example misleading messages.
35+
1.6.3 K Hoang 13/04/2021 Allow captive portal to run more than once by closing dnsServer.
3536
*****************************************************************************************************************************/
3637

3738
#if !( defined(ESP8266) || defined(ESP32) )
3839
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
3940
#endif
4041

41-
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.2"
42+
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.3"
4243

4344
// Use from 0 to 4. Higher number, more debugging messages and memory usage.
4445
#define _ESPASYNC_WIFIMGR_LOGLEVEL_ 3

examples/Async_AutoConnectWithFSParametersAndCustomIP/Async_AutoConnectWithFSParametersAndCustomIP.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
1414
Built by Khoi Hoang https://github.com/khoih-prog/ESPAsync_WiFiManager
1515
Licensed under MIT license
16-
Version: 1.6.2
16+
Version: 1.6.3
1717
1818
Version Modified By Date Comments
1919
------- ----------- ---------- -----------
@@ -32,13 +32,14 @@
3232
1.6.0 K Hoang 25/02/2021 Fix WiFi Scanning bug.
3333
1.6.1 K Hoang 26/03/2021 Modify multiWiFi-related timings to work better with latest esp32 core v1.0.6
3434
1.6.2 K Hoang 08/04/2021 Fix example misleading messages.
35+
1.6.3 K Hoang 13/04/2021 Allow captive portal to run more than once by closing dnsServer.
3536
*****************************************************************************************************************************/
3637

3738
#if !( defined(ESP8266) || defined(ESP32) )
3839
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
3940
#endif
4041

41-
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.2"
42+
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.3"
4243

4344
// Use from 0 to 4. Higher number, more debugging messages and memory usage.
4445
#define _ESPASYNC_WIFIMGR_LOGLEVEL_ 3

examples/Async_AutoConnectWithFeedback/Async_AutoConnectWithFeedback.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
1414
Built by Khoi Hoang https://github.com/khoih-prog/ESPAsync_WiFiManager
1515
Licensed under MIT license
16-
Version: 1.6.2
16+
Version: 1.6.3
1717
1818
Version Modified By Date Comments
1919
------- ----------- ---------- -----------
@@ -32,12 +32,13 @@
3232
1.6.0 K Hoang 25/02/2021 Fix WiFi Scanning bug.
3333
1.6.1 K Hoang 26/03/2021 Modify multiWiFi-related timings to work better with latest esp32 core v1.0.6
3434
1.6.2 K Hoang 08/04/2021 Fix example misleading messages.
35+
1.6.3 K Hoang 13/04/2021 Allow captive portal to run more than once by closing dnsServer.
3536
*****************************************************************************************************************************/
3637
#if !( defined(ESP8266) || defined(ESP32) )
3738
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
3839
#endif
3940

40-
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.2"
41+
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.3"
4142

4243
// Use from 0 to 4. Higher number, more debugging messages and memory usage.
4344
#define _ESPASYNC_WIFIMGR_LOGLEVEL_ 3

examples/Async_AutoConnectWithFeedbackLED/Async_AutoConnectWithFeedbackLED.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
1414
Built by Khoi Hoang https://github.com/khoih-prog/ESPAsync_WiFiManager
1515
Licensed under MIT license
16-
Version: 1.6.2
16+
Version: 1.6.3
1717
1818
Version Modified By Date Comments
1919
------- ----------- ---------- -----------
@@ -32,13 +32,14 @@
3232
1.6.0 K Hoang 25/02/2021 Fix WiFi Scanning bug.
3333
1.6.1 K Hoang 26/03/2021 Modify multiWiFi-related timings to work better with latest esp32 core v1.0.6
3434
1.6.2 K Hoang 08/04/2021 Fix example misleading messages.
35+
1.6.3 K Hoang 13/04/2021 Allow captive portal to run more than once by closing dnsServer.
3536
*****************************************************************************************************************************/
3637

3738
#if !( defined(ESP8266) || defined(ESP32) )
3839
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
3940
#endif
4041

41-
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.2"
42+
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.3"
4243

4344
// Use from 0 to 4. Higher number, more debugging messages and memory usage.
4445
#define _ESPASYNC_WIFIMGR_LOGLEVEL_ 3

examples/Async_ConfigOnDRD_FS_MQTT_Ptr/Async_ConfigOnDRD_FS_MQTT_Ptr.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
1414
Built by Khoi Hoang https://github.com/khoih-prog/ESPAsync_WiFiManager
1515
Licensed under MIT license
16-
Version: 1.6.2
16+
Version: 1.6.3
1717
1818
Version Modified By Date Comments
1919
------- ----------- ---------- -----------
@@ -32,6 +32,7 @@
3232
1.6.0 K Hoang 25/02/2021 Fix WiFi Scanning bug.
3333
1.6.1 K Hoang 26/03/2021 Modify multiWiFi-related timings to work better with latest esp32 core v1.0.6
3434
1.6.2 K Hoang 08/04/2021 Fix example misleading messages.
35+
1.6.3 K Hoang 13/04/2021 Allow captive portal to run more than once by closing dnsServer.
3536
*****************************************************************************************************************************/
3637
/****************************************************************************************************************************
3738
This example will open a Config Portal when there is no stored WiFi Credentials or when a DRD is detected.
@@ -50,7 +51,7 @@
5051
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
5152
#endif
5253

53-
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.2"
54+
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.3"
5455

5556
// Use from 0 to 4. Higher number, more debugging messages and memory usage.
5657
#define _ESPASYNC_WIFIMGR_LOGLEVEL_ 3

examples/Async_ConfigOnDRD_FS_MQTT_Ptr_Complex/Async_ConfigOnDRD_FS_MQTT_Ptr_Complex.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
1414
Built by Khoi Hoang https://github.com/khoih-prog/ESPAsync_WiFiManager
1515
Licensed under MIT license
16-
Version: 1.6.2
16+
Version: 1.6.3
1717
1818
Version Modified By Date Comments
1919
------- ----------- ---------- -----------
@@ -32,6 +32,7 @@
3232
1.6.0 K Hoang 25/02/2021 Fix WiFi Scanning bug.
3333
1.6.1 K Hoang 26/03/2021 Modify multiWiFi-related timings to work better with latest esp32 core v1.0.6
3434
1.6.2 K Hoang 08/04/2021 Fix example misleading messages.
35+
1.6.3 K Hoang 13/04/2021 Allow captive portal to run more than once by closing dnsServer.
3536
*****************************************************************************************************************************/
3637
/****************************************************************************************************************************
3738
This example will open a Config Portal when there is no stored WiFi Credentials or when a DRD is detected.
@@ -50,7 +51,7 @@
5051
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
5152
#endif
5253

53-
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.2"
54+
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.3"
5455

5556
// Use from 0 to 4. Higher number, more debugging messages and memory usage.
5657
#define _ESPASYNC_WIFIMGR_LOGLEVEL_ 2

examples/Async_ConfigOnDRD_FS_MQTT_Ptr_Medium/Async_ConfigOnDRD_FS_MQTT_Ptr_Medium.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
1414
Built by Khoi Hoang https://github.com/khoih-prog/ESPAsync_WiFiManager
1515
Licensed under MIT license
16-
Version: 1.6.2
16+
Version: 1.6.3
1717
1818
Version Modified By Date Comments
1919
------- ----------- ---------- -----------
@@ -32,6 +32,7 @@
3232
1.6.0 K Hoang 25/02/2021 Fix WiFi Scanning bug.
3333
1.6.1 K Hoang 26/03/2021 Modify multiWiFi-related timings to work better with latest esp32 core v1.0.6
3434
1.6.2 K Hoang 08/04/2021 Fix example misleading messages.
35+
1.6.3 K Hoang 13/04/2021 Allow captive portal to run more than once by closing dnsServer.
3536
*****************************************************************************************************************************/
3637
/****************************************************************************************************************************
3738
This example will open a Config Portal when there is no stored WiFi Credentials or when a DRD is detected.
@@ -50,7 +51,7 @@
5051
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
5152
#endif
5253

53-
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.2"
54+
#define ESP_ASYNC_WIFIMANAGER_VERSION_MIN_TARGET "ESPAsync_WiFiManager v1.6.3"
5455

5556
// Use from 0 to 4. Higher number, more debugging messages and memory usage.
5657
#define _ESPASYNC_WIFIMGR_LOGLEVEL_ 3

0 commit comments

Comments
 (0)