| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old function received a callback, and called it once per item received.
This inevitably leads to situations where one status item is already uptodate
but others are not.
The replacement function no longer takes a callback pointer but a pointer
to the array of status items to update, and returns the mask of items that
have changed. Parse errors are now regarded as implementation bugs. We
still detect them and log an error, but the function can no longer fail.
Remove print_all_items() from gui.c since this can now be done in one line
by passing ~0 to print_stat_items().
|
| |
|
|
| |
E_STAT_ITEM_PARSE is a good fit as well.
|
| |
|
|
|
| |
This way it can be static, and executables which don't need it don't contain
a copy of this function.
|
| |
|
|
|
|
|
|
| |
Generated with
sed -i 's|Copyright.*Andre Noll.*|SPDX-License-Identifier: GPL-2.0 */|g' *.c *.h
followed by manually tweaking the result a bit. No license change intended.
|
| |
|
|
| |
Every .c file includes it anyway.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GPLv2 line does not add any additional information, so drop
it. This leaves a single line of legalese text for most files, which
is about the amount of screen real estate it deserves.
This patch was created with the following script (plus some manual
fixups):
awk '{
if (NR <= 5) {
gs = gensub(/.*Copyright.* ([0-9]+).*Andre Noll.*/, "\\1", "g")
if (gs != $0)
year = gs
next
}
if (NR == 6 && year != "")
printf("/* Copyright (C) %s Andre Noll <maan@tuebingen.mpg.de>, see file COPYING. */\n", year)
print
}'
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Done with
files=$(git grep -l 'Copyright (C) [0-9]\{4\}\(-2014\)* Andre Noll')
sed --in-place= -e 's/Copyright (C) \([0-9]\{4\}\)-2014 Andre Noll/Copyright (C) \1 Andre Noll/1' $files
In previous years we ran a similar script to set the second year in
the range to the current year. This is kind of silly, so let's get
rid of this useless information.
This commit replaces "Copyright (C) A-B" by "Copyright (C) A" in
all file headers, i.e. only the first year (A) is left in. Accurate
information including time stamps for each change can be obtained
from the git history.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The mail server on systemlinux.org was down for more than a week
lately, so let's use an alternative official address. This commit
changes all maan@systemlinux.org addresses to maan@tuebingen.mpg.de.
Most .c and .h files contain the email address in the copyright header,
so they must all be patched. Three other files contain the address
for a different reason:
* README lists email and git, gitweb and home page URLs
* configure.ac needs it for configure -h
* version.c contains it for the -V option of all commands
|
| |
|
|
|
|
|
|
|
| |
This year, we're really on time. The changes in this patch were
created by the following silly script:
files=$(git grep -l 'Copyright (C) [0-9]\{4\}\(-2013\)* Andre Noll')
sed --in-place= -e 's/Copyright (C) \([0-9]\{4\}\)-2013 Andre Noll/Copyright (C) \1-2014 Andre Noll/1' $files
sed --in-place= -e 's/Copyright (C) 2013 Andre Noll/Copyright (C) 2013-2014 Andre Noll/1' $files
|
| |
|
|
| |
Better late than never.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was broken since audiod started to use the buffer tree API. Actually there are
two bugs which are both fixed by this patch:
- for_each_stat_item() copies the remaining part of the buffer containing
the incomplete part of the last status item to the beginning of the buffer.
This is necessary if the buffer tree API is not used but messes up the buffer
contents if it _is_ used. Move this memmove() call from for_each_status_item(),
which is called from audiod.c and gui.c, to gui.c, as only gui.c needs it.
- Secondly, audiod.c called btr_node_status() with an minimum input queue
size of zero, which is does not work if a status item crosses a buffer
boundary. In this case for_each_status_item() will only ever see the first buffer
containing the incomplete status item, hence it can never make progress.
Fix this by introducing the min_iqs field of struct status_task. Set this field
to non-zero if the full buffer size was returned by for_each_status_item(),
indicating that the next status item is spread out over two or more buffers.
|
| |
|
|
| |
Hey, this is earlier than last year :)
|
| | |
|
| |
|
|
|
|
|
|
| |
This was 4 out of 5 and thus should decrease the size of executables for non-Linux
systems a bit as we don't use -fdata-sections -ffunction-sections and -Wl,--gc-sections
there.
Is also allows to remove some entries from para.h.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
A wrapper for regcomp() that logs an error message if the regcomp() failed
and uses a return value according to the paraslash rules. Currently there is
only one user of regular expressions, is_v4_dot_quad(), which is converted
to para_regex(), but new callers will be added soon.
Unfortunately, this change made it necessary to include regex.h in all .c files
that use string.h. Clean up the order in which headers are included a bit while
we're at it.
Maybe I should rethink the rule "Only .c files shall include header files"...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes the way the status items are printed and parsed.
The new parser-friendly format is used internally and, as a side
effect, is also available as an new listing mode for the ls command
and for the stat commands of both para_server and para_audiod.
With the new format, each status item is prefixed by its size, and the
status item identifier is printed as a numerical value. This simplifies
the parsing code in para_audiod/para_gui a bit and should make it
perform better as the status items do not have to be looked up by name.
More importantly, the new format gets rid of the restriction that
status items should not contain newline characters because the parser
knows in advance how much it has to read to get the complete item. This
restriction became a real problem as more and more audio files contain
(version 2 id3) tags that contain much more than a single line. For
example the linux podcast mp3 files contain the full content of the
podcast as text in the command tag.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Avoids messages like
Dec 15 20:01:25 _tiptop 1 stat_client_write: 0 client(s)
which would otherwise flood the debug log.
|
| |
|
|
| |
Use write_ok() instead of open coding.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
SI_LENGTH_MIN -> SI_BITRATE
SI_LENGTH_SEC -> SI_FREQUENCY
SI_ATTRIBUTES -> SI_ATTRIBUTES_BITMAP
SI_UPTIME -> SI_ATTRIBUTES_TXT
|
| |
|
|
|
|
|
|
| |
SI_AUDIO_INFO1 -> SI_AUDIO_FILE_INFO
SI_AUDIO_INFO2 -> SI_TAG_INFO1
SI_AUDIO_INFO3 -> SI_TAG_INFO2
The mp3 and the ogg afh stored bits of information in the info
string. Only store there what is not already contained in afh_info.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
as this is what it actually contains.
|
| | |
|
| | |
|
| |
|
|
|
| |
Also, move some fd related functions from osl.c to fd.c and
introduce para_opendir().
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The idea is to not lookup the user file/rsa key for
each connection/each buffer to be sent, but to load
it only once on startup.
This patch
* renames list_add to para_list_add, as list_add is
an exported symbol of mysql.h
* makes get_key of crypt.c non-static and renames it to get_rsa_key.
It is used from server.c to load the rsa key.
* introduces struct _user, the new struct to hold user info. It is
meant to replace the current struct user soon.
* Introdoces init_user_list(), populate_user_list() and _get_user()
in server.c. The latter is meant to replace get_user() of command.c
The new functions are not used yet.
|
| |
|
|
|
|
|
|
|
| |
Currently, no status is printed if audiod is off. This is suboptimal
as the _audiod_ status items should be sent in any case. This patch also
- gets rid of some static variables in audiod_status_dump()
- improves readability of audiod_status_dump()
- moves dump_empty_status() from stat.c to audiod_command.c
|
| |
|
|
| |
and clean up documentation of struct stat_client as well.
|
| |
|
|
|
|
|
|
|
| |
This allows major simplifications:
- get rid of exec.o: para_audiod no longer executes any external
programs
- get rid of close_on_fork.o
- get rid of the sigchld handler.
|
| | |
|
| |
|
|
|
|
|
|
| |
Thanks to Lorenzo Bettini for pointing this out.
This patch also fixes a bug with the default filter configuration which
allocated too little memory for the array of filter configurations. Now
we always allocate space for at least three entries.
|
| |
|
|
|
| |
A simple wrapper for select(2) that checks for EINTR and restarts the
select call in this case.
|
| | |
|
| |
|
|
|
|
|
| |
It now takes any number of arguments, including zero which selects
the old behaviour (dump _all_ status items to stdout). If called
with arguments, each arg must be a valid status item and only these
are written to sdout.
|