public inbox for linux-hams@vger.kernel.org
 help / color / mirror / Atom feed
From: f6bvp <f6bvp@free.fr>
To: oakie@kamakuranet.ne.jp, linux-hams <linux-hams@vger.kernel.org>
Cc: Bernard Pidoux <bernard.pidoux@upmc.fr>
Subject: RE: 300bps soundmodem notes and Broken Pipe
Date: Thu, 09 Dec 2010 21:14:39 +0100	[thread overview]
Message-ID: <4D0138AF.5060008@free.fr> (raw)

Hi,

A SIGPIPE signal is generated by Linux kernel when a frame cannot
be sent to destination for the connexion has timed out (broken or closed).

This signal is received by the program, here xmodem.
If the program does not handle this signal it may fall down.

This is why there is a possibility to declare that a specific
signal, say SIGPIPE, must be ignored. This is the purpose of line

signal (SIGPIPE, SIG_IGN);

that you may include at the beginning of the main program in the
file containing

main()

Look at the beginning of the file and localize a number of #include 
lines like :

#include <stdio.h>

You should add there the following line :

#include<signal.h>

Then, you should add the signal line at the beginning of the main 
program somewhere after variable declarations. For example :

main(int argc, char *argv[])
{
in c;
char *tab;

signal (SIGPIPE, SIG_IGN);

...

If you want you can send me privately a copy of the first 50 lines of
main() function code. I will help you doing the patch.


After saving the file you can compile xmodem and tell us if it works.

73 de Bernard, f6bvp


-----Original Message-----

Hello Bernard,

Thank you for picking up my question about "Broken pipe" issue and sending
your suggestion.

Please be patient for a while as I am not any computer language programmer
at all.

I read the source file of soundmodem and I believe the error message comes
from the second logprintf statement (line 368) in alsaio.c program.

---------------------------alsaio.c--------------------------------
static inline void iotxstart(struct audioio_unix *audioio)
{
         int err;

         if (snd_pcm_prepare(audioio->playback_handle) < 0) {
                 logprintf(MLOG_ERROR, "Error preparing tx.\n");
         }
         err = snd_pcm_start(audioio->playback_handle);
         if (err < 0)
                 logprintf(MLOG_ERROR, "snd_pcm_start in iotxstart: %s",
snd_strerror(err));
}
-------------------------------------------------------------------

Can you explain me the following questions concerning your suggestion?

1. Are you suggesting adding additional three lines in alsaio.c program?
If yes, which exact lines should I add?

2. What is the purpose and expected result of signal (SIGPIPE, SIG_IGN)
addition?

I am waiting your response soon.

Regards,

take



             reply	other threads:[~2010-12-09 20:14 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-09 20:14 f6bvp [this message]
2011-03-02  6:22 ` 300bps soundmodem notes and Broken Pipe Tsutsumi Family
  -- strict thread matches above, loose matches on Subject: below --
2010-12-06 10:24 f6bvp
2010-12-07  1:11 ` Tsutsumi Family
2010-12-03  3:33 300bps soundmodem notes John Goerzen
2010-12-03 15:00 ` 300bps soundmodem notes and Broken Pipe Tsutsumi Family

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D0138AF.5060008@free.fr \
    --to=f6bvp@free.fr \
    --cc=bernard.pidoux@upmc.fr \
    --cc=linux-hams@vger.kernel.org \
    --cc=oakie@kamakuranet.ne.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox