Тема: bforce 0.25.1
Показать сообщение отдельно
  #27  
Старый 25.06.2024, 01:31
Alexey Khromov
Guest
 
Сообщений: n/a
По умолчанию bforce 0.25.2

Alexey Khromov написал(а) к Nil A в Jun 24 00:03:34 по местному времени:

Здраствуйте, Nil!

24 июн 24 23:27, Nil A -> Alexey Khromov:

NA> continue;
NA> }
NA> else break;
NA> Тут компилятор не говорит, что unreachable code? Вроде дальше if/else
NA> пройти нельзя.
Согласен, continue лишний, надо будет убрать

NA> Ещё, не понятно, почему freeaddrinfo() вызывается только для какого-то
NA> правильного случая, а для плохого не вызывается. И вообще, addrinfo
NA> приходит снаружи, и внутри tcpip_connect2 должен освободится, или кто
NA> вызвал тот и освобождает?

freeaddrinfo вызывается в tcpip_connect для любого случая, даже если getaddrinfo вернула не 0.
Где вызывал, там и освобождаю, т.к. tcpip_connect2 вызывается только в случае успешного DNS-резолва (в связанном списке ai будет хоть один хост).

nameres = getaddrinfo ( host, port, &aihints, &ai );
if ( nameres != 0 )
{
rc = 1;
log("Resolver error for host %s, port %s: \"%s\".", host, port, gai_strerror(nameres));
}

if( host ) { free(host); host = NULL; }

aisave = ai;

if (rc == 0 )
rc = tcpip_connect2(ai);

freeaddrinfo( aisave );

return rc;

Alexey Khromov
--- GoldED+/LNX 1.1.5-b20240309
Ответить с цитированием