aboutsummaryrefslogtreecommitdiffstats
path: root/src/update.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-01-04stats: added stats_update()Max Kellermann1-3/+1
2009-01-04update: use notify.h instead of condition.hMax Kellermann1-12/+10
The notify library is easier to use, and has no disadvantages.
2009-01-04update: refresh stats when database update is finishedMax Kellermann1-0/+5
2009-01-04update: splitted reap_update_task()Max Kellermann1-17/+30
Handle the DELETE and UPDATE events in separate callbacks: song_delete_event() safely deletes a song, and update_finished_event() is called when database update is complete.
2009-01-04initialize GError pointersMax Kellermann1-1/+1
GLib mandates that you initialize all GError objects with NULL prior to passing it.
2009-01-04path: removed pfx_dir()Max Kellermann1-6/+6
Use GLib's g_build_filename() instead of pfx_dir().
2009-01-04song: allocate the result of song_get_url()Max Kellermann1-2/+4
2009-01-04directory: added directory_is_root()Max Kellermann1-1/+1
directory_is_root() is cheaper than isRootDirectory(directory_get_path()).
2009-01-04ls: renamed functions, no CamelCaseMax Kellermann1-1/+1
2009-01-04update: removed struct delete_dataMax Kellermann1-9/+3
The struct delete_data has only one member left and can be eliminated.
2009-01-04ls: removed hasMusicSuffix() and get_archive_by_suffix()Max Kellermann1-2/+8
Determine the suffix manually, and use decoder_plugin_from_suffix() and archive_plugin_from_suffix() instead. This way, song_file_update_inarchive() can be optimized: it does not have to translate its path.
2009-01-04update: moved code to update_regular_file()Max Kellermann1-26/+35
2009-01-04update: moved code to directory_exists(), fix typoMax Kellermann1-9/+18
Reverse the condition: delete directories which don't exist anymore. This typo caused a slowdown during partial database update.
2009-01-03update: don't check for symlinks on WIN32Max Kellermann1-0/+15
WIN32 does have some kind of symbolic links (e.g. in NTFS), but the readlink() function is not available. Disable symlink checking for now.
2009-01-03event_pipe: moved variable "main_task" to main.cMax Kellermann1-0/+1
2009-01-02update: use GLib instead of utils.hMax Kellermann1-4/+5
2009-01-02mapper: allocate the result of map_directory_child_fs(), map_song_fs()Max Kellermann1-14/+18
Don't use fixed stack buffers.
2009-01-02mapper: allocate the result of map_uri_fs(), map_directory_fs()Max Kellermann1-10/+18
Don't use fixed stack buffers.
2009-01-02update: use g_file_test() instead of stat()Max Kellermann1-3/+2
If we want to check whether a file is a directory, use GLib's g_file_test() instead of stat().
2009-01-01event_pipe: added pipe_event enum and callbacksMax Kellermann1-3/+6
Make the event_pipe (formerly main_notify) send/receive a set of events, with a callback for each one. The default event PIPE_EVENT_SIGNAL does not have a callback. It is still there for waking up the main thread, when it is waiting for the player thread.
2009-01-01event_pipe: renamed functions from main_notify_* to event_pipe_*Max Kellermann1-2/+2
Continuing the previous patch.
2009-01-01main_notify: renamed source to event_pipe.cMax Kellermann1-1/+1
We are going to migrate away from the concept of notifying the main thread. There should be events sent to it instead. This patch starts a series to implement that.
2008-12-29update: use GLib loggingMax Kellermann1-18/+21
2008-12-29removed os_compat.hMax Kellermann1-0/+7
Only include headers which are really needed. os_compat.h aimed to make MPD easily portable, but was never actually made portable.
2008-12-29update: fixing empty filenames in archivesViliam Mateicka1-0/+4
2008-12-28update & main_notify: migrate from pthread to glib threadsThomas Jansen1-10/+11
2008-12-27disable archive API without pluginsMax Kellermann1-0/+7
When there are no archive plugins, we do not need the archive API at all. Drop all its overhead.
2008-12-16update: adding archive updating related codeViliam Mateicka1-1/+64
2008-12-08update: default to follow all symlinksAvuton Olrich1-1/+1
MPD 0.13 and older followed all symbolic links. Although this can be a security problem (as it has always been), 0.14 should offer the same default behaviour as 0.13.
2008-11-28update: added options which control symlink behaviourRaphaƫl Rigo1-7/+33
The configuration options "follow_outside_symlinks" and "follow_inside_symlinks" let the user control whether MPD should follow symbolic links in the music directory. [mk: converted variables to "bool"; moved configuration to update_global_init()]
2008-11-27update: added update_global_init() and update_global_finish()Max Kellermann1-0/+8
Those two functions are called when MPD starts and exits. It allows the update library to perform global initialization and deinitialization. The implementations are currently empty.
2008-11-24update.c: replaced mpd_unused by G_GNUC_UNUSEDThomas Jansen1-1/+1
2008-11-22update: fixed shadow warning on "basename"Max Kellermann1-6/+6
Renamed the local variable "basename", which shadows the POSIX function basename().
2008-11-20update: pass UTF-8 path to skip_symlink()Konstantin Sobolev1-3/+2
skip_symlinks() expects an UTF-8 encoded file name, but updateDirectory() passed ent->d_name (in file system encoding) to it. Convert it to UTF-8 first.
2008-10-31update: check return valuesMax Kellermann1-2/+6
Nearly all mapper functions can fail and will then return NULL. Add checks to all callers.
2008-10-20path: replaced mpd_basename() with g_path_get_basename()Max Kellermann1-5/+16
GLib's g_path_get_basename() is much more reliable than mpd_basename(). The latter could be tricked into an assertion failure.
2008-10-15update: don't skip hidden filesMax Kellermann1-3/+5
Skip only the special directory entries "." and "..", don't skip all other "hidden" files.
2008-10-14command: added command "idle"Max Kellermann1-1/+4
"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.
2008-10-14update: don't follow relative symlinksMax Kellermann1-1/+44
Don't follow relative symlinks which point into the music directory. This allows you to organize music with symbolic links, without MPD managing separate copies of each song.
2008-10-14mapper: new song-to-filesystem mapper libraryMax Kellermann1-23/+43
The mapper library maps directory and song objects to file system paths. With this central library, the code mixture in path.c should be cleaned up, and we will be able to add neat features like aliasing.
2008-10-13update: always look up parent directory in updatePath()Max Kellermann1-20/+10
By always creating the parent directory, we can use delete_name_in() without further lookups. The parents which may non exist will be pruned later. An update request for a non-existing or empty directory should be quite unusual, so this doesn't add any measurable overhead.
2008-10-13update: pass base file name to updateInDirectory()Max Kellermann1-9/+24
In order to optimize buffer usage, pass only the base file name to updateInDirectory(). This way, updateInDirectory() may choose when to allocate a larger buffer for the full path.
2008-10-13update: moved code to make_subdir()Max Kellermann1-4/+13
2008-10-13update: added delete_name_in()Max Kellermann1-1/+18
delete_name_in() is similar to delete_path(), but it does not need to look up the parent directory.
2008-10-13update: allow music_root updates to be queuedEric Wong1-3/+2
Previously only updates with subdirectories being specified could be queued. No harm in queueing full updates.
2008-10-09update: replaced update_return with global "modified" flagMax Kellermann1-65/+41
There is only once update thread at a time. Make the "modified" flag global and remove the return values of most functions. Propagating an error is only useful for updateDirectory(), since updateInDirectory() will delete failed subdirectories.
2008-10-09update: make the variable "progress" staticMax Kellermann1-1/+1
2008-10-09update: don't print debug message when song was not modifiedMax Kellermann1-4/+5
When a song file was not modified, MPD printed the debug message "not a directory or music", because the first "if" branch did not return.
2008-10-09update: fix memory leak in directory_update_init()Max Kellermann1-1/+4
When the update queue is full, directory_update_init() did not free the path argument.
2008-10-09update: make the job id unsignedMax Kellermann1-5/+7
Since the return value cannot be -1 anymore, we can make it unsigned.