Thanks for the correction, I was reading that as the command included
the content. Phil
On Mar 1, 2010, at 8:41 AM, Török Edwin <[email protected]> wrote:
On 03/01/2010 06:39 PM, Phil Varner wrote:
2010/3/1 Török Edwin <[email protected]>:
On 03/01/2010 03:39 AM, Phil Varner wrote:
dos.writeInt(0);
dos.write('\0');
The write('\0') is not needed, and even wrong in IDSESSION mode,
clamd
doesn't read it. A zero length chunk is just the chunk length as 4
bytes
of 0, which you already sent with writeInt.
The spec in clamd man says the stream must be closed by a nul byte,
which I thought was the reason for the z prefix?
No, it says
"It's recommended to prefix clamd commands with the letter z (eg.
zSCAN)
to indicate that the command will be delim‐ited by a NULL charact
er"
"Streaming is terminated by sending a zero-length chunk"
The command was delimited by null character already: zINSTREAM\0
And the stream was terminated with zero length chunk.
--Phil
dos.flush();
reader = new BufferedReader(new
InputStreamReader(socket.getInputStream(), "ASCII"));
response = reader.readLine();
} finally {
if (reader != null) try { reader.close(); } catch
(IOException e) { }
if (dos != null) try { dos.close(); } catch
(IOException e) { }
if (socket != null) try { socket.close(); } catch
(IOException e) { }
This is not nice, your method declares that it throws IOException
(which
it probably does for creation of socket), but then eats the other
IOExceptions. I think it should rethrow them instead.
if (log.isDebugEnabled()) log.debug( "Response: " +
response);
return response.trim();
And this will throw a nullpointer exception if anything goes wrong
prior
to reading the response.
Best regards,
--Edwin
_______________________________________________
Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
http://www.clamav.net/support/ml
_______________________________________________
Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
http://www.clamav.net/support/ml
_______________________________________________
Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
http://www.clamav.net/support/ml