X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=server.h;h=a83aaae29aa59362f9665c08c1abcb899cbfdb6c;hp=ae3a7dd878cab895a698d91f6daf84e9e9815b54;hb=74cfed2536a16ca85bc0ce97f6bf307c96ae0d3d;hpb=ae0e4594c6a0312c5b4b4c0bde86f9c12253d11b;ds=sidebyside diff --git a/server.h b/server.h index ae3a7dd8..a83aaae2 100644 --- a/server.h +++ b/server.h @@ -1,25 +1,11 @@ /* * Copyright (C) 1997-2007 Andre Noll * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Licensed under the GPL v2. For licencing details see COPYING. */ /** \file server.h common server data structures */ -#include "para.h" -#include "afh.h" /** size of the selector_info and audio_file info strings of struct misc_meta_data */ #define MMD_INFO_SIZE 16384 @@ -31,7 +17,7 @@ struct server_command { /** the name of the command */ const char *name; /** pointer to the function that handles the command */ - int (*handler)(int, int, char **); + int (*handler)(int, int, char * const * const); /** the privileges a user must have to execute this command */ unsigned int perms; /** one-line description of the command */ @@ -57,7 +43,7 @@ struct sender_command_data{ }; /** - * used for parent-child communication + * Used for parent-child communication. * * There's only one struct of this type which lives in shared memory * for communication between the server instances. Access to this @@ -73,57 +59,51 @@ struct sender_command_data{ * date. */ struct misc_meta_data { -/** information on the current audio file */ - struct audio_format_info afi; -/** the size of the current audio file in bytes */ + /** the size of the current audio file in bytes */ size_t size; -/** the full path of the current audio file */ - char filename[_POSIX_PATH_MAX]; -/** the last modification file of the current audio file */ + /** the last modification time of the current audio file */ time_t mtime; -/** the number of the current audio format */ - int audio_format; -/** the "old" status flags -- commands may only read them */ + /** the "old" status flags -- commands may only read them */ unsigned int vss_status_flags; -/** the new status flags -- commands may set them **/ + /** The new status flags -- commands may set them. */ unsigned int new_vss_status_flags; -/** the number of data chunks sent for the current audio file */ + /** the number of data chunks sent for the current audio file */ long unsigned chunks_sent; -/** set by the jmp/ff commands to the new position in chunks */ + /** set by the jmp/ff commands to the new position in chunks */ long unsigned repos_request; -/** the number of the chunk currently sent out*/ + /** The number of the chunk currently sent out. */ long unsigned current_chunk; -/** the milliseconds that have been skipped of the current audio file */ + /** the milliseconds that have been skipped of the current audio file */ long offset; -/** the time para_server started to stream */ + /** the time para_server started to stream */ struct timeval stream_start; -/** the event counter - * - * commands may increase this to force a status update to be sent to all - * connected clients -*/ + /** + * The event counter. + * + * Commands may increase this to force a status update to be sent to all + * connected clients. + */ unsigned int events; -/** the number of audio files already sent */ + /** the number of audio files already sent */ unsigned int num_played; -/** the number of executed commands */ + /** the number of executed commands */ unsigned int num_commands; -/** the number of connections para_server received so far */ + /** the number of connections para_server received so far */ unsigned int num_connects; -/** the number of connections currently active */ + /** the number of connections currently active */ unsigned int active_connections; -/** the process id of para_server */ + /** the process id of para_server */ pid_t server_pid; -/** a string that gets filled in by the current audio file selector */ - char selector_info[MMD_INFO_SIZE]; -/** the number if the current audio file selector */ - int selector_num; -/** commands set this to non-zero to change the current selector */ - int selector_change; -/** used by the sender command */ + /** This gets updated by afs and contains its current mode. */ + char afs_mode_string[MAXLINE]; + /** used by the sender command */ struct sender_command_data sender_cmd_data; + /** Describes the current audio file. */ + struct audio_file_data afd; }; extern struct server_args_info conf; +extern int afs_socket; int handle_connect(int fd, struct sockaddr_in *addr); void mmd_unlock(void);