summaryrefslogtreecommitdiff
path: root/inotail.c
AgeCommit message (Collapse)AuthorFilesLines
2007-05-23Change alloc_buffer to take a size_t which is more logicalTobias Klauser1-22/+17
Some additional cleanups e.g. deletion of unecessary buffer_size variables
2007-05-21Merge commit 'HEAD'; branch 'master' into buffersizeTobias Klauser1-1/+1
2007-05-21Some housekeeping after introduction of alloc_buffer()Tobias Klauser1-3/+2
2007-05-21Prevent from some possible memory leaksTobias Klauser1-5/+8
2007-05-21inotail.c: Improve error messageTobias Klauser1-1/+1
2007-05-21Get rid of one variableTobias Klauser1-3/+2
2007-05-21Use optimal buffer size depending on the filesystem containing the fileTobias Klauser1-19/+63
The st_blksize attribute of struct stat conatains the blocksize for filesystem I/O (see stat(2)) which is the optimal size for reading/writing chunks of data. Based on a patch by Folkert van Heusden
2007-05-20inotail.c: Proper check of return value for the previous fixTobias Klauser1-2/+2
2007-05-20inotail.c: Some more error checking in tail_pipe()Tobias Klauser1-2/+7
Taken from a patch by Folkert van Heusden
2007-05-18inotail.c: read() call cleanupTobias Klauser1-6/+6
buf instead of &buf
2007-05-18inotail.c: Forward just one event, we might miss some events otherwiseTobias Klauser1-1/+2
INOTIFY_BUFLEN is defined as 4 times the size of an event, so we would skip some events. Though I've never seen a case where more than one event arrived at a time.
2007-04-16inotail.c: Really fix byte_to_offset() this timeTobias Klauser1-6/+12
Also make a bit more readable
2007-04-13inotail.c: Fix an integer underflow in bytes_to_offset()Tobias Klauser1-2/+3
This also caused the bug that nothing was printed when a number greater than the number of characters in the file was specifed with the -c parameter.
2007-03-18inotail.c: Proper exit after printing of versionTobias Klauser1-1/+1
2007-03-04inotail.c: Fix bug in parsing of +<num> parametersTobias Klauser1-2/+3
2007-03-04inotail.c: Datatype cleanupTobias Klauser1-2/+2
2007-03-03inotail.c: Ignore file cleanupTobias Klauser1-26/+23
Get rid of some nasty code. Ok, it isn't much better now.
2007-03-03inotail.c: Cleanup before releaseTobias Klauser1-17/+9
2007-02-05inotail.c: Some more branch predictionTobias Klauser1-6/+6
2007-02-05inotail.c: Better checking of -n/-c argumentsTobias Klauser1-10/+12
Also change n_lines/n_bytes to an unsigned long Additionally remove some spurious memset()'s
2007-02-03inotail.c: Remember last printed headerTobias Klauser1-1/+5
Prevents inotail from printing the header with the name of the file everytime it changes.
2007-01-22inotail.c: Set new file size _after_ read/write in handle_inotify_event()Tobias Klauser1-13/+10
This works around the problem when receving multiple inotify events for _one_ write to the file. This was a problem in the bordercase where the string written to the file was larger than 4096 chars, the last sizeof(string) - 4096 chars were repeated. Still have to check why there are _two_ IN_MODIFY events for _one_ write. But at least it does not affect inotail anymore. Also fix a dumb thinko in watch_files(): Move the ev_idx only one event forward, not n_files * INOTIFY_BUFLEN.
2007-01-22inotail.c: Gaaah! buf is on the stack now.Tobias Klauser1-2/+1
2007-01-21inotail.c: Use strcmp rather than strncmpTobias Klauser1-2/+2
We're compare against a constant string
2007-01-21inotail.c: Inline some functions and initialize files pointer in mainTobias Klauser1-3/+3
2007-01-20inotail.c: Adjust block size according to return value of readTobias Klauser1-3/+4
...and use proper types
2007-01-20inotail.c: Better handling of errors on inotify_init()Tobias Klauser1-1/+4
2007-01-20inotail.c: Simplify iterating through inotify eventsTobias Klauser1-13/+17
2007-01-15inotail.c: One more ssize_tTobias Klauser1-1/+1
2007-01-10inotail.c: Minor cleanupsTobias Klauser1-3/+3
Make one more read(2) return value ssize_t and do not initialize n_files to 0
2007-01-05inotail.c: Print version information to stdoutTobias Klauser1-1/+1
2007-01-05inotail.c: Make tail_pipe() return ssize_tTobias Klauser1-2/+2
read() returns ssize_t and we were casting it to signed int which might be smaller on some architectures.
2007-01-04inotail.c: Make it clear that we're handling one file when tailing stdinTobias Klauser1-1/+1
2007-01-04inotail.c: Fix an off-by-one error in lines_to_offset_from_end()Tobias Klauser1-1/+1
buf[block_size] is obviously _not_ in buf itself.
2007-01-04inotail.c: Make n_ignored globalTobias Klauser1-15/+24
It was getting more and more complicated and errorprone with handling n_ignored as local variable.
2006-12-28inotail.c: Use consistent nomenclature for struct file_struct pointersTobias Klauser1-29/+29
f for pointers to one struct file_struct files for pointers to an array of struct file_struct
2006-12-28inotail.c: Add and use ignore_file() functionTobias Klauser1-7/+9
2006-12-28inotail.c: Handle return value of inotify_add_watch()Tobias Klauser1-2/+8
2006-12-23inotail.c: Print usage to stdoutTobias Klauser1-1/+1
2006-12-23inotail.c: Keep tailing moved files by fdTobias Klauser1-1/+1
As a side effect of the recent change to not reopen files while watching (commit 1ddefac3dfe654f23fc944df5d7c52a078692012) it's possible now to follow moved files by their open fd.
2006-12-21inotail.c: Don't open files over and over againTobias Klauser1-11/+19
Up to now files were closed after processing each inotify event which seems to be quite a bit of overhead. The fds are now kept open and are only closed in case of errors.
2006-12-18inotail.c: Minor cleanups and addition of an unlikely()Tobias Klauser1-7/+4
2006-12-15inotail.c: return instead of breakTobias Klauser1-5/+2
2006-12-14inotail.c: Move some macros to inotail.hTobias Klauser1-7/+0
Some typos and useless blank lines are also fixed.
2006-12-14inotail.c: Move a variable to the block where it's usedTobias Klauser1-2/+1
2006-12-14inotail.c: Save 2 LOCTobias Klauser1-4/+2
2006-12-08inotail.c: Yet another user for IS_PIPELIKETobias Klauser1-1/+1
2006-12-08inotail.c: Merge S_ISFIFO and S_ISSOCK to IS_PIPELIKETobias Klauser1-2/+5
2006-11-16inotail.c: Reorder lines_to_offset* functionsTobias Klauser1-31/+37
Make lines_to_offset() just a wrapper function to check whether to tail from begin or from end of the file. The real work is done in lines_to_offset_from_begin() and lines_to_offset_from_end()
2006-11-09Dynamically allocate memory for the inotify event bufferTobias Klauser1-4/+7
By using malloc(3) depending on the number of files we have, the memory footprint can be reduced. Before this change, the buffer size was 32 * sizeof(struct inotify_event) which was an overhead when just tailing some few files. Now the memory is allocated depending on the number of files to tail. I know of no occassion where I received more than one event at a time per file, so the '2 *' can probably be dropped too.