From OpenSCADAWiki
(Importing a new version from external source) |
(Importing a new version from external source) |
||
Line 3: | Line 3: | ||
* {{Anch|Upd8SSLSockAddrResolv|Sockets,SSL}}: ''TTransSock::getAddr()'' renamed to ''TTransSock::addrGet()'' and the address resolving moved to a new function ''TTransSock::addrResolve()'' with direct resolving the static addresses and dynamic resolving by ''gethostbyname()'' due to ''getaddrinfo()'' has problems with reenteranting (on old systems) and global lock causes long hangs on all addresses at problems with DNS. Also appended a commandline option "--getaddrinfo" to enable it for yourself. | * {{Anch|Upd8SSLSockAddrResolv|Sockets,SSL}}: ''TTransSock::getAddr()'' renamed to ''TTransSock::addrGet()'' and the address resolving moved to a new function ''TTransSock::addrResolve()'' with direct resolving the static addresses and dynamic resolving by ''gethostbyname()'' due to ''getaddrinfo()'' has problems with reenteranting (on old systems) and global lock causes long hangs on all addresses at problems with DNS. Also appended a commandline option "--getaddrinfo" to enable it for yourself. | ||
** FIX: Resolving a hard-detected problem of substitution wrong addresses during the addresses resolving by ''getservbyname_r()'' from other thread, that is from GLibC 2.24 there forced using ''getaddrinfo()'' as more correct or ''inet_pton()'' + locked ''getservbyname_r()'' on old systems. | ** FIX: Resolving a hard-detected problem of substitution wrong addresses during the addresses resolving by ''getservbyname_r()'' from other thread, that is from GLibC 2.24 there forced using ''getaddrinfo()'' as more correct or ''inet_pton()'' + locked ''getservbyname_r()'' on old systems. | ||
− | * SSL: Appended of implementation ''TTransportIn::writeTo()'' with moving to map in holding the SSockIn structure. Input part of the transports switched to use unified ''TTransSock::addrResolve()'' for precursory resolving all dynamic addresses and pass ready static addresses to ''BIO_new_accept()''. | + | * FIX:SSL: Fixed in processing responses of the output transports from initiative connections, especially for no response. |
+ | ** Appended of implementation ''TTransportIn::writeTo()'' with moving to map in holding the SSockIn structure. | ||
+ | ** Input part of the transports switched to use unified ''TTransSock::addrResolve()'' for precursory resolving all dynamic addresses and pass ready static addresses to ''BIO_new_accept()''. |
Revision as of 22:44, 8 March 2025
Transports
- The IO log items appended by whole package (or aggregation) size and the aggregation default time set to 1 second. Using the variables "ReqTm", "ReqMode", "ToTmOut", "InBufSz", "ReqAnsw" moved to the individual space of the transport object.
- Sockets,SSL: TTransSock::getAddr() renamed to TTransSock::addrGet() and the address resolving moved to a new function TTransSock::addrResolve() with direct resolving the static addresses and dynamic resolving by gethostbyname() due to getaddrinfo() has problems with reenteranting (on old systems) and global lock causes long hangs on all addresses at problems with DNS. Also appended a commandline option "--getaddrinfo" to enable it for yourself.
- FIX: Resolving a hard-detected problem of substitution wrong addresses during the addresses resolving by getservbyname_r() from other thread, that is from GLibC 2.24 there forced using getaddrinfo() as more correct or inet_pton() + locked getservbyname_r() on old systems.
- FIX:SSL: Fixed in processing responses of the output transports from initiative connections, especially for no response.
- Appended of implementation TTransportIn::writeTo() with moving to map in holding the SSockIn structure.
- Input part of the transports switched to use unified TTransSock::addrResolve() for precursory resolving all dynamic addresses and pass ready static addresses to BIO_new_accept().