Török Edvin
b82eea8de0
signals may not wake a poll(), so make sure thread wakes up (BB #1400 ).
...
git-svn: trunk@4816
17 years ago
Török Edvin
537292a773
Reject new commands sent as new-style commands to avoid confusion.
...
This means that IDSESSION/INSTREAM must be sent as nIDSESSION\n or zIDSESSION\0,
ditto for INSTREAM.
Adjust testcases accordingly.
Old commands are still accepted when sent without delimiter.
git-svn: trunk@4811
17 years ago
Török Edvin
e114b109c4
fix use of uninitialized value.
...
add test for STREAM.
fix missing closing pragmas.
git-svn: trunk@4810
17 years ago
Török Edvin
ef49ed625f
fix compiler warning
...
git-svn: trunk@4808
17 years ago
Török Edvin
625377ab50
add missing parameter
...
git-svn: trunk@4807
17 years ago
Török Edvin
fb6fe4f5d1
Introduce '$' in logg, it is active when logg_verbose=2, i.e. when Debug yes.
...
Fix leak reported by valgrind.
git-svn: trunk@4806
17 years ago
Török Edvin
c5355aedbd
make sending ancillary data at wrong time a protocol error.
...
change testcase accordingly.
git-svn: trunk@4805
17 years ago
Török Edvin
af309677da
sendtimeout
...
git-svn: trunk@4804
17 years ago
Török Edvin
5f6edb222c
ReadTimeout handling, and introduce CommandReadTimeout.
...
git-svn: trunk@4803
17 years ago
Török Edvin
456e31a3cb
fix typo.
...
add another stress test.
Don't leak file descriptors.
Fix IDSESSION delimiter handling.
git-svn: trunk@4800
17 years ago
Török Edvin
b25fdae488
fix valgrind warning about locking order
...
git-svn: trunk@4799
17 years ago
Török Edvin
0378a9ab77
introduce timeouts for send(), this is needed for IDSESSION to work reliably,
...
since a buggy client implementation may get stuck in send(), and then clamd
gets stuck in send() -> deadlock. To avoid this we need nonblocking sockets, and
(low) timeouts on send.
Add more tests for clamd protocol, including a stress test for IDSESSION.
git-svn: trunk@4798
17 years ago
Török Edvin
4e24a36173
add more unit tests.
...
Make handling of old-style commands compatible with old clamd: if they have a \n
that will delimit the command.
If multiscan of a single file encounters errors, don't reply OK too.
git-svn: trunk@4796
17 years ago
Török Edvin
b3b8212f7f
make clamdtop use IDSESSION, and enable VERSION/STATS inside IDSESSION.
...
git-svn: trunk@4789
17 years ago
Török Edvin
80681b50c7
Initialize mutex.
...
Fix poll_fd to properly lock/unlock mutex.
This fixes the STREAM command.
git-svn: trunk@4787
17 years ago
Török Edvin
36784cad4b
fix nFILDES command
...
git-svn: trunk@4783
17 years ago
Török Edvin
bfd89d7c84
fix Solaris build
...
git-svn: trunk@4776
17 years ago
Tomasz Kojm
086eab5c26
update old copyright headers
...
git-svn: trunk@4775
17 years ago
Török Edvin
034994bd9c
fdpassing is now in others.c instead of session.c, move
...
the defines.
git-svn: trunk@4774
17 years ago
Török Edvin
9ac109f338
add missing include
...
git-svn: trunk@4773
17 years ago
Török Edvin
4fd2ccf0ea
fix distcheck
...
git-svn: trunk@4771
17 years ago
Török Edvin
7a997ac950
move TCP socket creation to shared/
...
git-svn: trunk@4769
17 years ago
Török Edvin
6e3256f492
Unify error paths.
...
Remove unix socket we created if startup fails due to invalid config.
git-svn: trunk@4768
17 years ago
Török Edvin
4cc952e322
add check for msg.controllen, apparently Mac OS X sets it to 0,
...
but CMSG_FIRSTHDR is not NULL!
git-svn: trunk@4761
17 years ago
Török Edvin
949c6fe54f
merge from clamd-proto branch:
...
handle multiple %v parameters
introduce poll_fds that also does the read into a buffer
introduce thrmgr_group* commands for keeping track of groups of commands
(multiscan, IDSESSION)
introduce 2 queues in thrmgr, multiscan queues get lower priority. Commands
are processed from both queues in a 4:1 ratio to avoid starvation.
unify reply code: conn_reply*
unify scanner code into scan_callback that is called from cli_ftw
multiscan doesn't need stat() now if readdir() provides dt_type
redesign clamd main loop: there is now an accept thread, and a
recv()/dispatch thread, +MaxThreads worker (scanner) threads.
introduce limiting on commands when worker threads are contended.
introduce IDSESSION, a replacement for the old SESSION command, that allows
asyncronous (scan) commands and scan replies
introduce INSTREAM that allows sending the data to scan on same connection
(vs STREAM that requires another port)
introduce zCOMMANDS
git-svn: trunk@4755
17 years ago
Török Edvin
004f8386ce
output "stream" instead of "fd[]" for INSTREAM.
...
Add INSTREAM command test.
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4753 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
9f0a28adcb
actually use the flags we calculated!
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4748 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
0115f12ffc
fix some more warnings
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4746 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
10ab5e32f4
fix some compiler warnings
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4745 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
9ef7e0bdae
fix memory leaks
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4743 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
d0f6ecae1c
Never close a file descriptor that is monitored using
...
poll()/select() from another thread.
It introduces subtle bugs.
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4742 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
f243f00fc5
fix some races reported by valgrind
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4737 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
ae083d79ff
downgrade message
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4736 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
bac978a8f8
move the break to the proper place, so we don't parse same command twice!
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4734 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
730d97fb2b
inv cmd
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4733 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
0c8c3a5463
fix use-after-free
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4732 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
699bfc282c
dumpname(filename) is going to be dispatched, don't allow a later error path to
...
free it.
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4728 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
91cafbe095
break loop
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4727 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
3f26090eb7
clamdscan doesn't give us any deadbeef any more, so don't look for it.
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4725 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Tomasz Kojm
00eab4092f
clamd/others.c: handle multiple %v parameters
...
clamd/server-th.c: fix dbstat memleak
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4724 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
c73edc125e
Reject invalid minport/maxport in clamd.conf, instead of silently replacing them
...
with "good" values.
Simplify rest of the code a bit.
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4723 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
aCaB
544e7fd814
allow clamd to be stopped and backgrounded
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4721 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
30e36bfb5c
fix build
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4720 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
4f266591a0
fix INSTREAM when not in IDSESSION mode
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4718 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
e640277428
fix INSTREAM/IDSESSION.
...
Introduced a chunksize marker.
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4717 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
467ac26c95
fix INSTREAM end handling
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4715 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
0cac67ab4c
fix use-after-free
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4714 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
76f21b4a30
introduce RR of connections.
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4713 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
fdbaba8d49
always allocate a jobgroup, that way on shutdown we are sure
...
that it doesn't dissappear.
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4712 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago
Török Edvin
e066e3cb47
unify thresholds
...
git-svn-id: file:///var/lib/svn/clamav-devel/branches/clamd-proto@4711 77e5149b-7576-45b1-b177-96237e5ba77b
17 years ago