Pular para o conteúdo

SIGPIPE parando o programa mesmo sendo ignorado.

Responder tópico
  • Denunciar
  • Indicar

1. SIGPIPE parando o programa mesmo sendo ignorado.

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.

Responder tópico

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

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.

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().

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder