| Commit message (Collapse) | Author | Files | Lines |
|
|
|
Users now have to call Close() explicitly. This simplifies using the
class, as most users have automatic socket management already, and
Steal() had to be used often.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Publish the Client API, preparing to move more code into the Client
class.
|
|
|
|
|
|
Copy the according file from another project (i.e. XCSoar). This will
allow copying more code more easily.
|
|
|
|
|
|
|
|
playlist and player_control are deprecated.
|
|
Reduce access to the global variable "g_playlist".
|
|
|
|
|
|
Remove GLib dependency from some headers.
|
|
|
|
|
|
|
|
|
|
Allocate a player_control object where needed, and pass it around.
Each "client" object is associated with a "player_control" instance.
This prepares multi-player support.
|
|
|
|
|
|
This updates the copyright header to all be the same, which is
pretty much an update of where to mail request for a copy of the GPL
and the years of the MPD project. This also puts all committers under
'The Music Player Project' umbrella. These entries should go
individually in the AUTHORS file, for consistancy.
|
|
Removed the sockaddr_to_tmp_string() hack, use
the new function sockaddr_to_string() instead.
|
|
With the GLib main loop, the client manager can install its own event
in case a client is expired. No need for main.c to call
client_manager_expire() manually.
|
|
This is a rather huge patch, which unfortunately cannot be splitted.
Instead of using our custom ioops.h library, convert everything to use
the GLib main loop.
|
|
On Windows, socket declarations reside in winsock.h and ws2tcpip.h.
The POSIX headers sys/socket.h etc. are not available.
|
|
We want to remove gcc.h eventually. This takes care of all the G_GNUC_PRINTF
macros.
|
|
The client may provide the names of idle events as arguments to the
"idle" command to inform MPD that it is only interested in these
events.
|
|
Return bool instead of int.
|
|
"LOG_H" is a macro which is also used by ffmpeg/log.h. This is
ffmpeg's fault, because short macros should be reserved for
applications, but since it's always a good idea to choose prefixed
macro names, even for applications, we are going to do that in MPD.
|
|
client->permission is a bit set, and should be unsigned.
|
|
Enable authentication over unix sockets. Store the client's uid in
the client struct.
|
|
"idle" waits until something noteworthy happens on the server,
e.g. song change, playlist modified, database updated. This allows
clients to keep up to date without polling.
|
|
When there are standardized headers, use these instead of the bloated
os_compat.h.
|
|
The code in command.c shouldn't mess with a pointer to
client->permission. Provide an API for accessing this value.
|
|
All callers of fdprintf() have been converted to client_printf() or
fprintf(); it is time to remove this clumsy hack now. We can also
remove client_print() which took a file descriptor as parameter.
|
|
Now that we have removed all invocations of client_get_fd(), we can
safely remove this transitional function. All access to the file
descriptor is now hidden behind the interface declared in client.h.
|
|
Based on client_puts(), client_printf() is the successor of
fdprintf(). As soon as all fdprintf() callers have been rewritten to
use client_printf(), we can remove fdprintf().
|
|
client_write() writes a buffer to the client and buffers it if
required. client_puts() does the same for a C string. The next patch
will add more tools which will replace fdprintf() later.
|
|
Instead of passing the pointer to the "expired" flag to
processListOfCommands(), this function should use the client API to
check this flag. We can now remove the "global_expired" hack
introduced recently.
|
|
Start exporting the client struct as an opaque struct. For now, pass
it only to processCommand() and processListOfCommands(), and provide a
function to extract the socket handle. Later, we will propagate the
pointer to all command implementations, and of course to
client_print() etc.
|
|
Change the order of function declarations in client.h, to make it well
arranged and readable.
|
|
Functions which operate on the whole client list are prefixed with
"client_manager_", and functions which handle just one client just get
"client_".
|
|
I don't believe "interface" is a good name for something like
"connection by a client to MPD", let's call it "client". This is the
first patch in the series which changes the name, beginning with the
file name.
|