[sane-devel] network scanner problems
Jochen Eisinger
jochen.eisinger at gmx.de
Tue Aug 7 21:48:02 BST 2001
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi!
Does network scanning work with scanimage and/or xsane?
Here it works also with xscanimage...
regards
- -- jochen
[Guido Socher]
> Has anybody seen the following problem with the net backend
> in sane 1.0.5?
>
> The xscanimage program crashes because it tries to write
> data to a closed connection.
> The connection is closed in the sane_read() function in
> net.c because it executes this code:
> if (s->bytes_remaining == (size_t) - 1)
> {
> char ch;
>
> /* turn off non-blocking I/O (s->data will be closed anyhow): */
> fcntl (s->data, F_SETFL, 0);
>
> /* read the status byte: */
> if (read (s->data, &ch, sizeof (ch)) != 1)
> ch = SANE_STATUS_IO_ERROR;
> do_cancel (s);
> return (SANE_Status) ch;
> }
>
> That is s->bytes_remaining is -1 and then do_cancel(s) is
> called which closes the connection.
> Next xscanimage (ignoring the closed connection) tries
> to set some control options using this
> closed connection and that is where the sigpipe is received.
>
> The interessting thing is that the scan as such is ok, i.e I can
> see the full picture in the preview for a second.
>
> I have the feeling that the -1 record length is used as a special
> value to signal the end of the scan and unfortunately net.c
> thinks that this is an error. Is that possible?
>
> It think that is is the case because scanning directly without
> the network inbetween works perfectly.
>
> Anybody who managed to get the network scan backend to work in
> 1.0.5?
>
> Here the crash:
> Program received signal SIGPIPE, Broken pipe.
> 0x4042e584 in write () from /lib/libc.so.6
> (gdb) backtrace
> #0 0x4042e584 in write () from /lib/libc.so.6
> #1 0x00000020 in ?? ()
> #2 0x080564bc in flush (w=0x80739fc) at sanei_wire.c:404
> #3 0x080564f4 in sanei_w_set_dir (w=0x80739fc, dir=WIRE_DECODE)
> at sanei_wire.c:413
> #4 0x08056557 in sanei_w_call (w=0x80739fc, procnum=5,
> w_arg=0x4001a8e0 <sanei_w_control_option_req>, arg=0xbfffd560,
> w_reply=0x4001a960 <sanei_w_control_option_reply>, reply=0xbfffd540)
> at sanei_wire.c:432
> #5 0x400194cf in sane_net_control_option (handle=0x80cc488, option=22,
> action=SANE_ACTION_SET_VALUE, value=0xbfffd758, info=0x0) at net.c:806
> #6 0x4031b991 in sane_dll_control_option (handle=0x80cc4b8, option=22,
> action=SANE_ACTION_SET_VALUE, value=0xbfffd758, info=0x0) at dll.c:846
> #7 0x4031bc2d in sane_control_option (h=0x80cc4b8, opt=22,
> act=SANE_ACTION_SET_VALUE, val=0xbfffd758, info=0x0) at dll-s.c:34
> #8 0x08050bd0 in restore_option (p=0x80df848, option=22, saved_value=0,
> valid=1) at preview.c:453
> #9 0x0805135c in scan_done (p=0x80df848) at preview.c:702
> #10 0x08051269 in input_available (data=0x80df848, source=10,
> cond=GDK_INPUT_READ) at preview.c:543
> (gdb)
>
> And here the debug sequence:
> sane_read: max_length = 8192
> sane_read: max_length = 8192
> sane_read: max_length = 8192
> sane_read: max_length = 8192
> sane_read: next record length=4088 bytes
> sane_read: max_length = 8192
> sane_read: next record length=8 bytes
> sane_read: max_length = 8192
> sane_read: next record length=4096 bytes
> sane_read: max_length = 8192
> sane_read: next record length=4076 bytes
> sane_read: max_length = 8192
> sane_read: next record length=20 bytes
> sane_read: max_length = 8192
> sane_read: next record length=4096 bytes
> sane_read: max_length = 8192
> sane_read: next record length=3725 bytes
> sane_read: max_length = 8192
> sane_read: max_length = 8192
> sane_read: next record length=-1 bytes
> sane_cancel
> sane_control_option: option 4, action 1
> sane_get_option_descriptor: option 4
> sane_control_option: option 22, action 1
> Broken pipe
> Exit 141
>
>
- --
Reality is bad enough, why should I tell the truth?
-- Patrick Sky
[This is a signature virus, please copy me into your signature file!]
GnuGP public key for jochen.eisinger at gmx.de:
http://home.nexgo.de/jochen.eisinger/pubkey.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Weitere Infos: siehe http://www.gnupg.org
iD8DBQE7cFQE8OF76YrreuMRAhnVAKDJlLe3Sqt5S1UtJGeIJ8eDdu1bgACfcFmA
an3k9ycKvf2BrdDP/GOlzCA=
=0Vyn
-----END PGP SIGNATURE-----
More information about the sane-devel
mailing list