Andre Noll [Wed, 24 Oct 2007 15:29:07 +0000 (17:29 +0200)]
com_touch: Only print error message on errors.
Andre Noll [Wed, 24 Oct 2007 13:02:51 +0000 (15:02 +0200)]
Reset afd fields on eof.
Don't print stale status info when stopped.
Andre Noll [Wed, 24 Oct 2007 12:39:24 +0000 (14:39 +0200)]
afs.c: Restore the current mood or playlist on SIGHUP.
Andre Noll [Wed, 24 Oct 2007 12:38:14 +0000 (14:38 +0200)]
afs.c execute_server_command(): Improve log message.
Andre Noll [Wed, 24 Oct 2007 12:37:27 +0000 (14:37 +0200)]
Simplify init_admissible_files().
It now takes an arg containing the mood or playlist
to be initialized.
Andre Noll [Wed, 24 Oct 2007 12:12:11 +0000 (14:12 +0200)]
afs: Increase default sched timount.
1 second is fine.
Andre Noll [Wed, 24 Oct 2007 12:00:30 +0000 (14:00 +0200)]
Fix a use-after-free bug in para_server.
This bug bites on SIGHUP if a config file was specified at the command line.
Andre Noll [Wed, 24 Oct 2007 11:58:13 +0000 (13:58 +0200)]
Let afs die if para_server dies.
Andre Noll [Wed, 24 Oct 2007 10:49:16 +0000 (12:49 +0200)]
afs.c: Fix open_afs_tables().
The old code tried to close the table we just failed to open.
We just want to close all tables that were opened successfully
before the failed one.
Andre Noll [Wed, 24 Oct 2007 10:47:09 +0000 (12:47 +0200)]
Add missing initialization of table pointer in blob_init().
Andre Noll [Tue, 23 Oct 2007 21:36:40 +0000 (23:36 +0200)]
Get rid of mmd->filename.
The info is also contained in afd, but this was a pointer to data in
the shared memory area. We must copy into the static mmd buffer anyway,
since com_stat() must be able to see it. So make afd.path a static
array rather than a pointer and use afd->path instead of mmd->filename.
This simplifies save_afd() and load_afd() a bit since now only the
chunk table is of variable length.
Andre Noll [Tue, 23 Oct 2007 21:05:05 +0000 (23:05 +0200)]
Add LYRICS_ID status item.
Andre Noll [Tue, 23 Oct 2007 20:50:37 +0000 (22:50 +0200)]
Replace status item SELECTOR by IMAGE_ID.
Andre Noll [Tue, 23 Oct 2007 20:37:59 +0000 (22:37 +0200)]
Replace status item DBINFO3 by DIRECTORY.
Andre Noll [Tue, 23 Oct 2007 20:23:36 +0000 (22:23 +0200)]
stat.c: Fix a typo.
Andre Noll [Tue, 23 Oct 2007 20:20:36 +0000 (22:20 +0200)]
Replace status item STATUS_BAR to BASENAME.
as this is what it actually contains.
Andre Noll [Tue, 23 Oct 2007 20:06:51 +0000 (22:06 +0200)]
Replace status item DBINFO2 by ATTRIBUTES.
Andre Noll [Tue, 23 Oct 2007 18:36:20 +0000 (20:36 +0200)]
Kill mmd->selector_change.
There are no more selectors to choose. It's all handled by afs.
Andre Noll [Tue, 23 Oct 2007 18:30:42 +0000 (20:30 +0200)]
Get rid of mmd->audio_format.
The current audio format is also stored in mmd->afd.afsi.audio_format_id,
so use the value stored there. However, most users of mmd->audio_format
used this value only to detect whether an audio file is open ATM. In
vss.c, use the map pointer instead to find out whether an audio file is
open.
Andre Noll [Tue, 23 Oct 2007 17:56:44 +0000 (19:56 +0200)]
Get rid of mmd->afi.
It was only a copy of mmd->afd.afhi, so make all users use the
latter directly.
Andre Noll [Tue, 23 Oct 2007 17:38:47 +0000 (19:38 +0200)]
Remove com_sb and com_sc.
Nobody used com_sb and com_sc was only used by para_krell.
Andre Noll [Tue, 23 Oct 2007 17:07:21 +0000 (19:07 +0200)]
remove README.mysql.
Andre Noll [Tue, 23 Oct 2007 17:06:52 +0000 (19:06 +0200)]
README/INSTALL/FEATURES cleanup.
Andre Noll [Tue, 23 Oct 2007 16:36:12 +0000 (18:36 +0200)]
Mark some unused variables as such.
Andre Noll [Tue, 23 Oct 2007 16:33:43 +0000 (18:33 +0200)]
playlist.c: Remove an unused variable.
Andre Noll [Tue, 23 Oct 2007 16:32:33 +0000 (18:32 +0200)]
Makefile.in: Remove unused PICDIR.
Andre Noll [Tue, 23 Oct 2007 16:23:43 +0000 (18:23 +0200)]
Remove moew unused stuff.
SFont is not needed anymore. Also remove gone files from doxygen
exclude list.
Andre Noll [Tue, 23 Oct 2007 16:20:47 +0000 (18:20 +0200)]
Add error2.h to .gitignore.
Andre Noll [Tue, 23 Oct 2007 16:19:59 +0000 (18:19 +0200)]
Add missing afh_common.c.
dooh, it's easy to miss including an essential file.
Andre Noll [Tue, 23 Oct 2007 16:13:21 +0000 (18:13 +0200)]
Remove para_sdl_gui, para_slider, para_krell.
These were all really crappy, probably not used by anybody,
and they broke due to the rename of the status item text or
the switch to the new afs. So let's get rid of them.
para_gui is here to stay though.
Andre Noll [Tue, 23 Oct 2007 15:53:04 +0000 (17:53 +0200)]
Change dbinfo1 stat item and use it from afs.
Andre Noll [Tue, 23 Oct 2007 15:37:38 +0000 (17:37 +0200)]
aft.c: Kill somce dead code.
Andre Noll [Tue, 23 Oct 2007 14:47:46 +0000 (16:47 +0200)]
mood.c: Use activate_mood_or_playlist() also to switch to the dummy mode.
Andre Noll [Tue, 23 Oct 2007 14:43:50 +0000 (16:43 +0200)]
command.c: Trivial documentation cleanups.
Andre Noll [Tue, 23 Oct 2007 14:43:17 +0000 (16:43 +0200)]
Make pass_afd() static.
And move current_mop to the top.
Andre Noll [Tue, 23 Oct 2007 14:30:05 +0000 (16:30 +0200)]
afs: Fix a fd leak.
Andre Noll [Tue, 23 Oct 2007 14:09:01 +0000 (16:09 +0200)]
Implement com_select().
Andre Noll [Tue, 23 Oct 2007 11:47:01 +0000 (13:47 +0200)]
mood.c: Add missing initialization of mood_name.
Andre Noll [Tue, 23 Oct 2007 11:45:31 +0000 (13:45 +0200)]
Kill code for loading the first available playlist.
It's unused.
Andre Noll [Tue, 23 Oct 2007 11:41:11 +0000 (13:41 +0200)]
Kill loading of first available mood.
It's unused and quite ugly. The dummy mood is good enough as a fallback.
Andre Noll [Tue, 23 Oct 2007 01:35:39 +0000 (03:35 +0200)]
Rename afs_ls and afs_rm to ls and rm.
Andre Noll [Tue, 23 Oct 2007 01:35:05 +0000 (03:35 +0200)]
convert_0.2-0.3.sh: Fix some silly typos.
Andre Noll [Tue, 23 Oct 2007 00:35:16 +0000 (02:35 +0200)]
Remove para_dbadm.
The same can be easily done with a shell-script. And libmenu sucks.
Andre Noll [Tue, 23 Oct 2007 00:23:28 +0000 (02:23 +0200)]
Remove old audio file selector code.
Andre Noll [Mon, 22 Oct 2007 23:48:45 +0000 (01:48 +0200)]
Remove users of the old audio file selector code.
Andre Noll [Mon, 22 Oct 2007 23:23:17 +0000 (01:23 +0200)]
vss.c: Kill unused int audio_file.
Andre Noll [Mon, 22 Oct 2007 23:14:32 +0000 (01:14 +0200)]
Move afh_init() call from vss.c to server.c.
Andre Noll [Mon, 22 Oct 2007 22:50:47 +0000 (00:50 +0200)]
Move common audio format handler functions to new afh_common.c.
Andre Noll [Mon, 22 Oct 2007 22:22:39 +0000 (00:22 +0200)]
vss.c: Isolate afh_init().
As a first step to separate the audio format handlers from the vss.
Andre Noll [Mon, 22 Oct 2007 22:14:36 +0000 (00:14 +0200)]
vss.c: Use audio_format_name() where possible.
Andre Noll [Mon, 22 Oct 2007 21:59:35 +0000 (23:59 +0200)]
vss.c: Kill an unused variable.
Andre Noll [Mon, 22 Oct 2007 21:55:50 +0000 (23:55 +0200)]
vss.c: Small simplifications.
Andre Noll [Mon, 22 Oct 2007 21:53:53 +0000 (23:53 +0200)]
Fix off-by-one bug in chunktable saving.
Chunk table indices go from 0 to num_chunks, so the size is
(num_chunks + 1) * 4.
Andre Noll [Mon, 22 Oct 2007 21:53:01 +0000 (23:53 +0200)]
Change chunktable array type from size_t to uint32_t.
It's better to have a fixed size here.
Andre Noll [Mon, 22 Oct 2007 20:30:05 +0000 (22:30 +0200)]
vss.c: Remove some unused code.
Andre Noll [Mon, 22 Oct 2007 20:23:31 +0000 (22:23 +0200)]
Switch to the new afs.
This obsoletes get_audio_file() of vss.c. It is being replaced
by a call to the afs layer from vss_post_select() which requests
a struct audio_format_data for the next audio file.
The afd struct, the chunk table and the path of the new audio file are
stored in a shared memory area. The id of that area is sent through
the afs-server socket. An open fd for the underlying audio file is
send to the server process as well using usual socket magic.
The vss task of the server process attaches the shared memory area
and mmaps the open fd to start audio streaming.
The code is still quite buggy, but let's do bug fixes and removal of
the old audio file selectors in susequent patches.
Andre Noll [Sun, 21 Oct 2007 13:25:55 +0000 (15:25 +0200)]
Move mmap_full_file from osl.c to fd.c.
To make it independent from osl.c, we must not pass
a pointer to struct osl_data. Replace it by void *, size_t *
pointers. Also add new int *fd_ptr parameter. If it's non-NULL
the file is not closed after mmap, and the open fd is returned
in fd_ptr.
Andre Noll [Sun, 21 Oct 2007 12:59:20 +0000 (14:59 +0200)]
aft.c: Remove special case code for playlist mode.
Andre Noll [Sun, 21 Oct 2007 12:40:27 +0000 (14:40 +0200)]
Add 3 byte reserved space to the afs info.
Andre Noll [Sun, 21 Oct 2007 12:24:19 +0000 (14:24 +0200)]
aft: Add missing add event.
Andre Noll [Sun, 21 Oct 2007 11:43:22 +0000 (13:43 +0200)]
Complete afs event handling.
Add blob event handling. This definitely needs some
more fine-tuning, but that can be changed gradually
thanks to the generic event handling code.
In playlist mode there's nothing to do, as we're
not interested in any blob events. So install only
a dummy handler for the scoring system and decide
whether to reload the score table in mood.c.
Andre Noll [Thu, 18 Oct 2007 20:00:16 +0000 (22:00 +0200)]
Implement afs events.
Andre Noll [Sat, 13 Oct 2007 16:30:33 +0000 (18:30 +0200)]
Replace struct table_info by struct afs_table.
This is a much cleaner approach and it simplifies afs.c a bit.
Andre Noll [Thu, 11 Oct 2007 18:06:46 +0000 (20:06 +0200)]
Refuse to add invalid attibute names.
And tell the client rather than the log file about any errors.
Andre Noll [Thu, 11 Oct 2007 17:07:29 +0000 (19:07 +0200)]
fd.c: Remove unused label change_to_orig_dir.
Andre Noll [Thu, 11 Oct 2007 16:59:36 +0000 (18:59 +0200)]
Merge commit 'remotes/fml/v0.3' into v0.3
Andre Noll [Thu, 11 Oct 2007 12:35:28 +0000 (14:35 +0200)]
Add --gc-sections to LDFLAGS.
This, together with -fdata-sections and -ffunction-sections brought
nice size reductions. Before:
-rwxr-xr-x 1 maan fml 29K Oct 11 14:32 para_audioc*
-rwxr-xr-x 1 maan fml 42K Oct 11 14:32 para_client*
-rwxr-xr-x 1 maan fml 33K Oct 11 14:32 para_fade*
-rwxr-xr-x 1 maan fml 38K Oct 11 14:32 para_filter*
-rwxr-xr-x 1 maan fml 54K Oct 11 14:32 para_fsck*
-rwxr-xr-x 1 maan fml 52K Oct 11 14:32 para_gui*
-rwxr-xr-x 1 maan fml 42K Oct 11 14:32 para_recv*
-rwxr-xr-x 1 maan fml 216K Oct 11 14:32 para_server*
-rwxr-xr-x 1 maan fml 38K Oct 11 14:32 para_write*
After:
-rwxr-xr-x 1 maan fml 21K Oct 11 14:31 para_audioc*
-rwxr-xr-x 1 maan fml 33K Oct 11 14:31 para_client*
-rwxr-xr-x 1 maan fml 29K Oct 11 14:31 para_fade*
-rwxr-xr-x 1 maan fml 29K Oct 11 14:31 para_filter*
-rwxr-xr-x 1 maan fml 45K Oct 11 14:31 para_fsck*
-rwxr-xr-x 1 maan fml 47K Oct 11 14:31 para_gui*
-rwxr-xr-x 1 maan fml 30K Oct 11 14:31 para_recv*
-rwxr-xr-x 1 maan fml 208K Oct 11 14:31 para_server*
-rwxr-xr-x 1 maan fml 29K Oct 11 14:31 para_write*
Andre Noll [Wed, 10 Oct 2007 18:19:26 +0000 (20:19 +0200)]
Get rid of E_WAITPID.
Andre Noll [Wed, 10 Oct 2007 18:04:03 +0000 (20:04 +0200)]
Get rid of E_SIGNAL_PIPE.
If creation of the signal pipe fails, we abort anyway. So print
the errno in the fatal log message instead of the fact that the create
failed.
Andre Noll [Wed, 10 Oct 2007 17:55:04 +0000 (19:55 +0200)]
fd.c: Cosmetics.
Andre Noll [Wed, 10 Oct 2007 17:50:12 +0000 (19:50 +0200)]
Get rid of E_FCHDIR.
Return the system error code instead.
Andre Noll [Wed, 10 Oct 2007 17:45:45 +0000 (19:45 +0200)]
Get rid of E_OPENDIR.
Return the system error instead.
Andre Noll [Wed, 10 Oct 2007 17:38:41 +0000 (19:38 +0200)]
para_select(): Return a proper error code on errors.
Andre Noll [Tue, 9 Oct 2007 19:11:05 +0000 (21:11 +0200)]
Remove some system errors from errno.h
No need to have system errors duplicated in error.h. Just return
-ERRNO_TO_PARA_ERROR(errno) in these cases.
Andre Noll [Tue, 9 Oct 2007 18:10:22 +0000 (20:10 +0200)]
Get rid of -E_F_GETFL and -E_F_SETFL.
Return the proper errno instead, using the new ERRNO_TO_PARA_ERROR macro..
Andre Noll [Tue, 9 Oct 2007 18:05:16 +0000 (20:05 +0200)]
error.h: Add more helper macros.
Andre Noll [Mon, 8 Oct 2007 16:22:30 +0000 (18:22 +0200)]
.ico Version of the fancy new logo.
Andre Noll [Sun, 7 Oct 2007 19:52:47 +0000 (21:52 +0200)]
error.h: Make PARA_STRERROR understand system errors.
Andre Noll [Sun, 7 Oct 2007 19:28:44 +0000 (21:28 +0200)]
error.h: Remove some unused errors.
Andre Noll [Sun, 7 Oct 2007 19:03:54 +0000 (21:03 +0200)]
Only declare error codes that are safe to use.
The following type of bug occurred frequently since the introduction
of error.h: An error code was defined for some file a.c and was used
in another file b.c. This is all good if each executable that contains
b.o also contains a.o.
If this is not the case, i.e. if there is an executable that contains
b.o but _not_ a.o, the error texts of all errors defined for a.c are
not included in the executable. This results in a segmentation fault
at runtime if PARA_STRERROR() is used for such an error code.
Unfortunately, this was hard to spot because all error codes were
visible everywhere. This patch gets rid of this flaw by making
only those error codes visible for b.c which are safe to use.
According to the above, the set of error codes which are safe to use
in b.c can be defined as follows. Let E_1, ... E_n be the set of
executables that contain b.o and let, for j=1,...n, S_j be the
set of files those files contained in E_j. Then, all errors defined
in the intersection
S_1 \cap S_2 \cap ... \cap S_n
are safe to use in b.c. The patch adds a function to configure.ac
That computes this intersection. Unfortunately, it is rather expensive.
The good news is that this simplifies error.h a bit and that it
already revealed a couple of bugs which are also fixed in the patch:
- afs.c used E_SIGNAL_CAUGHT which was only defined in audiod.
Introduce E_AFS_SIGNAL and change afs.c accordingly.
- audiod uses E_RECV_SYNTAX, which belonged to recv which is
not contained in audiod. Move it to recv_common instead.
This bug is also present in v0.2.x and needs a similar fix.
- E_NOTDIR was used in fd.c, but was defined in osl.c. Not all
executables that include fd.o also include osl.o. Move E_NOTDIR
to the set of errors for fd.
Andre Noll [Sat, 6 Oct 2007 23:50:06 +0000 (01:50 +0200)]
INSTALL: Update to v0.3.
Still needs more work.
Andre Noll [Sat, 6 Oct 2007 22:05:22 +0000 (00:05 +0200)]
mood.c: Fix comment for the scoring function.
Andre Noll [Sat, 6 Oct 2007 17:00:24 +0000 (19:00 +0200)]
Add more documentation.
Andre Noll [Sat, 6 Oct 2007 10:47:23 +0000 (12:47 +0200)]
command_util.sh: Fix man page format.
It really looked ugly as it were. Remove leading tabs in help texts.
Andre Noll [Sat, 6 Oct 2007 10:46:19 +0000 (12:46 +0200)]
afs.cmd: Beautify help texts.
Andre Noll [Sat, 6 Oct 2007 09:18:47 +0000 (11:18 +0200)]
com_add(): Write messages to the client rather than to the log.
Andre Noll [Fri, 5 Oct 2007 20:16:43 +0000 (22:16 +0200)]
afs: Handle SIGHUP.
This required moving around some functions but was otherwise
straight forward.
Andre Noll [Fri, 5 Oct 2007 19:50:51 +0000 (21:50 +0200)]
com_add(): Only accept absolute paths.
Andre Noll [Fri, 5 Oct 2007 18:20:00 +0000 (20:20 +0200)]
osx_write.c: Add two missing headers.
Andre Noll [Fri, 5 Oct 2007 18:19:43 +0000 (20:19 +0200)]
Switch from inet_aton() to inet_pton().
Solaris doesn't have inet_aton().
Andre Noll [Fri, 5 Oct 2007 18:18:22 +0000 (20:18 +0200)]
Make it compile on Solaris.
This required a bit of work as Solaris has gethostbyname() and
socket-related functions not in libc but in libsocket and libnsl.
So add corresponding checks to configure.ac.
Moreover, make para_gui optional and add configure options for
specifying the directory containing the curses headers and curses
lib.
Andre Noll [Thu, 4 Oct 2007 21:37:59 +0000 (23:37 +0200)]
README: Mention dependence on gnu make.
Solaris make fails miserably.
Andre Noll [Thu, 4 Oct 2007 21:37:20 +0000 (23:37 +0200)]
FEATURES: Update.
Andre Noll [Thu, 4 Oct 2007 18:48:35 +0000 (20:48 +0200)]
audioc: Get rid of the temporary socket file.
This allows to kill the --tmpdir option as well.
Andre Noll [Thu, 4 Oct 2007 14:41:39 +0000 (16:41 +0200)]
afs.c: Remove some dead code.
Andre Noll [Thu, 4 Oct 2007 14:41:05 +0000 (16:41 +0200)]
Add command line options --mood and --playlist.
And replace the temporary strings which were hardcoded
in afs.c.
Andre Noll [Thu, 4 Oct 2007 14:11:59 +0000 (16:11 +0200)]
afs.c: Introduce client list for afs (fixes dosable bug).
With the old code, a malicious local user could easily cause a DOS
by connecting to the local afs socket but never sending any data
through that socket. This caused afs to block on the read() from the
new client fd.
This patch fixes this flaw by introducing a doubly liked list of
connected clients. Each entry in this list contains an open file
descriptor and the time the client connected.
In command_pre_select() we add each fd in the list to the set of
fds to be checked for readability. In command_post_select() we loop
through that list and check each fd again. Whenever the fd for a
client is readable we read from that fd and execute an afs command
if the client sent the valid magic cookie.
However, if the fd is not ready, we close the connection if more than
AFS_CLIENT_TIMEOUT seconds (default: 3) have passed since the client
connected. This hopefully avoids another possible DOS: A malicious
user could try to flood us with connections until the limit of open
fds is reached.
Andre Noll [Tue, 2 Oct 2007 13:56:10 +0000 (15:56 +0200)]
Make it compile on FreeBSD.
This was easier than expected. Only two items needed fixing:
- signal.h has to be included for several files that use signals.
- The __used and __packed macros are already defined on FreeBSD which
leads to an error at compile time. Fortunately paraslash doesn't use
these macros at all, so we can simply remove them.
Andre Noll [Tue, 2 Oct 2007 12:44:36 +0000 (14:44 +0200)]
gcc-compat.h: Remove compatibility code for gcc-2.
gcc-2 is not supported any longer.
Andre Noll [Tue, 2 Oct 2007 12:04:46 +0000 (14:04 +0200)]
fsck.c: Fix several bugs in dump mode.
- Don't abort if a directory can't be created because it already exists.
- Use correct variable for the disk storage name column.
- If more than one table is to be dumped, use a directory for each table.
- Remove __a_unused for main()'s argc which _is_ being used.