SIGPIPE parando o programa mesmo sendo ignorado.

1. SIGPIPE parando o programa mesmo sendo ignorado.

Eduardo Campos
3dUcP

(usa Manjaro Linux)

Enviado em 25/12/2018 - 22:07h

Estou tento problemas com meu programa de VPN, mesmo setando para ignorar o SIGPIPE em todas as partes do codigo que executa alguma leitura/escrita nos sockets ainda recebo esse sinal.
Em meu programa utilizo OpenSSL para cobrir toda conexão entre o cliente e o servidor, o trafego é composto por pacotes puros, que são lidos e escritos direto na interface TUN.

Creio que esses SIGPIPEs estejam vindo do próprio OpenSSL, queria saber como compilar o programa inteiro para acabar de vez com esse sinal, se for possível definir algo assim direto na compilação.


...
signal(SIGPIPE,SIG_IGN);
...


Thread 676 "sckt" received signal SIGPIPE, Broken pipe.
[Switching to Thread 0x7fff9fff7700 (LWP 3057)]
0x00007ffff7bca4bd in write () at ../sysdeps/unix/syscall-template.S:84
84 ../sysdeps/unix/syscall-template.S: No such file or directory.



  


2. Re: SIGPIPE parando o programa mesmo sendo ignorado.

Paulo
paulo1205

(usa Ubuntu)

Enviado em 26/12/2018 - 04:28h

É possível que as funções que você usa interfiram com o tratamento do SIGPIPE. O que diz a documentação das funções que você invoca?


3. Re: SIGPIPE parando o programa mesmo sendo ignorado.

Paulo
paulo1205

(usa Ubuntu)

Enviado em 26/12/2018 - 21:30h

Uma sugestão: para ter certeza de que os seus sockets (fora daqueles que usam o OpenSSL) não são os responsáveis pelo SIGPIPE, use send() com a opção MSG_NOSIGNAL, em vez de usar write().






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts