@@ -155,8 +155,25 @@ void awh::client::Core::connect(const uint16_t sid) noexcept {
155155 if ((broker->addr .fd != INVALID_SOCKET ) && (broker->addr .fd < AWH_MAX_SOCKETS )){
156156 // Выполняем установку желаемого протокола подключения
157157 broker->ectx .proto (this ->_settings .proto );
158- // Переводим сокет в неблокирующий режим
159- broker->ectx .blocking (engine_t ::mode_t ::DISABLED );
158+ // Определяем тип сокета
159+ switch (static_cast <uint8_t > (this ->_settings .sonet )){
160+ // Если тип сокета установлен как TCP/IP
161+ case static_cast <uint8_t > (scheme_t ::sonet_t ::TCP ):
162+ // Если тип сокета установлен как TCP/IP TLS
163+ case static_cast <uint8_t > (scheme_t ::sonet_t ::TLS ):
164+ // Если тип сокета установлен как SCTP
165+ case static_cast <uint8_t > (scheme_t ::sonet_t ::SCTP ):
166+ // Переводим сокет в неблокирующий режим
167+ broker->ectx .blocking (engine_t ::mode_t ::DISABLED );
168+ break ;
169+ // Если тип сокета установлен как UDP
170+ case static_cast <uint8_t > (scheme_t ::sonet_t ::UDP ):
171+ // Если тип сокета установлен как DTLS
172+ case static_cast <uint8_t > (scheme_t ::sonet_t ::DTLS ):
173+ // Переводим сокет в блокирующий режим
174+ broker->ectx .blocking (engine_t ::mode_t ::ENABLED );
175+ break ;
176+ }
160177 // Если подключение выполняется по защищённому каналу DTLS
161178 if (this ->_settings .sonet == scheme_t ::sonet_t ::DTLS )
162179 // Выполняем получение контекста сертификата
@@ -1416,25 +1433,6 @@ void awh::client::Core::read(const uint64_t bid) noexcept {
14161433 if ((shm->receiving = (shm->status .real == scheme_t ::mode_t ::CONNECT ))){
14171434 // Выполняем отключение приёма данных на этот сокет
14181435 broker->events (awh::scheme_t ::mode_t ::DISABLED , engine_t ::method_t ::READ );
1419- // Определяем тип сокета
1420- switch (static_cast <uint8_t > (this ->_settings .sonet )){
1421- // Если тип сокета установлен как TCP/IP
1422- case static_cast <uint8_t > (scheme_t ::sonet_t ::TCP ):
1423- // Если тип сокета установлен как TCP/IP TLS
1424- case static_cast <uint8_t > (scheme_t ::sonet_t ::TLS ):
1425- // Если тип сокета установлен как SCTP
1426- case static_cast <uint8_t > (scheme_t ::sonet_t ::SCTP ):
1427- // Переводим сокет в неблокирующий режим
1428- broker->ectx .blocking (engine_t ::mode_t ::DISABLED );
1429- break ;
1430- // Если тип сокета установлен как UDP
1431- case static_cast <uint8_t > (scheme_t ::sonet_t ::UDP ):
1432- // Если тип сокета установлен как DTLS
1433- case static_cast <uint8_t > (scheme_t ::sonet_t ::DTLS ):
1434- // Переводим сокет в блокирующий режим
1435- broker->ectx .blocking (engine_t ::mode_t ::ENABLED );
1436- break ;
1437- }
14381436 /* *
14391437 * Выполняем чтение данных с сокета
14401438 */
@@ -1474,16 +1472,6 @@ void awh::client::Core::read(const uint64_t bid) noexcept {
14741472 } while (this ->has (bid));
14751473 // Если подключение ещё не разорванно
14761474 if (this ->has (bid)){
1477- // Определяем тип сокета
1478- switch (static_cast <uint8_t > (this ->_settings .sonet )){
1479- // Если тип сокета установлен как UDP
1480- case static_cast <uint8_t > (scheme_t ::sonet_t ::UDP ):
1481- // Если тип сокета установлен как DTLS
1482- case static_cast <uint8_t > (scheme_t ::sonet_t ::DTLS ):
1483- // Переводим сокет в неблокирующий режим
1484- broker->ectx .blocking (engine_t ::mode_t ::DISABLED );
1485- break ;
1486- }
14871475 // Если время ожиданий входящих сообщений установлено
14881476 if (broker->timeouts .wait > 0 )
14891477 // Выполняем создание таймаута ожидания получения данных
@@ -1624,29 +1612,12 @@ size_t awh::client::Core::write(const char * buffer, const size_t size, const ui
16241612 case static_cast <uint8_t > (transfer_t ::SYNC ): {
16251613 // Определяем тип сокета
16261614 switch (static_cast <uint8_t > (this ->_settings .sonet )){
1627- // Если тип сокета установлен как UDP
1628- case static_cast <uint8_t > (scheme_t ::sonet_t ::UDP ):
16291615 // Если тип сокета установлен как TCP/IP
16301616 case static_cast <uint8_t > (scheme_t ::sonet_t ::TCP ):
16311617 // Если тип сокета установлен как TCP/IP TLS
16321618 case static_cast <uint8_t > (scheme_t ::sonet_t ::TLS ):
16331619 // Если тип сокета установлен как SCTP
16341620 case static_cast <uint8_t > (scheme_t ::sonet_t ::SCTP ):
1635- // Если тип сокета установлен как DTLS
1636- case static_cast <uint8_t > (scheme_t ::sonet_t ::DTLS ):
1637- // Переводим сокет в блокирующий режим
1638- broker->ectx .blocking (engine_t ::mode_t ::ENABLED );
1639- break ;
1640- }
1641- } break ;
1642- // Если передавать данные необходимо асинхронно
1643- case static_cast <uint8_t > (transfer_t ::ASYNC ): {
1644- // Определяем тип сокета
1645- switch (static_cast <uint8_t > (this ->_settings .sonet )){
1646- // Если тип сокета установлен как UDP
1647- case static_cast <uint8_t > (scheme_t ::sonet_t ::UDP ):
1648- // Если тип сокета установлен как DTLS
1649- case static_cast <uint8_t > (scheme_t ::sonet_t ::DTLS ):
16501621 // Переводим сокет в блокирующий режим
16511622 broker->ectx .blocking (engine_t ::mode_t ::ENABLED );
16521623 break ;
@@ -1691,29 +1662,12 @@ size_t awh::client::Core::write(const char * buffer, const size_t size, const ui
16911662 case static_cast <uint8_t > (transfer_t ::SYNC ): {
16921663 // Определяем тип сокета
16931664 switch (static_cast <uint8_t > (this ->_settings .sonet )){
1694- // Если тип сокета установлен как UDP
1695- case static_cast <uint8_t > (scheme_t ::sonet_t ::UDP ):
16961665 // Если тип сокета установлен как TCP/IP
16971666 case static_cast <uint8_t > (scheme_t ::sonet_t ::TCP ):
16981667 // Если тип сокета установлен как TCP/IP TLS
16991668 case static_cast <uint8_t > (scheme_t ::sonet_t ::TLS ):
17001669 // Если тип сокета установлен как SCTP
17011670 case static_cast <uint8_t > (scheme_t ::sonet_t ::SCTP ):
1702- // Если тип сокета установлен как DTLS
1703- case static_cast <uint8_t > (scheme_t ::sonet_t ::DTLS ):
1704- // Переводим сокет в неблокирующий режим
1705- broker->ectx .blocking (engine_t ::mode_t ::DISABLED );
1706- break ;
1707- }
1708- } break ;
1709- // Если передавать данные необходимо асинхронно
1710- case static_cast <uint8_t > (transfer_t ::ASYNC ): {
1711- // Определяем тип сокета
1712- switch (static_cast <uint8_t > (this ->_settings .sonet )){
1713- // Если тип сокета установлен как UDP
1714- case static_cast <uint8_t > (scheme_t ::sonet_t ::UDP ):
1715- // Если тип сокета установлен как DTLS
1716- case static_cast <uint8_t > (scheme_t ::sonet_t ::DTLS ):
17171671 // Переводим сокет в неблокирующий режим
17181672 broker->ectx .blocking (engine_t ::mode_t ::DISABLED );
17191673 break ;
0 commit comments