aboutsummaryrefslogtreecommitdiffstats
path: root/src/update.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-02-12update: free deleted subdirectoriesMax Kellermann1-2/+6
Use delete_directory() for removing sub directories instead of dirvec_clear(). This ensures that all memory occupied by subdirectories of deleted directories is freed.
2009-02-12update: recursively purge deleted directoriesMax Kellermann1-1/+1
When a directory is deleted, MPD deleted only the directory from the database; it did not bother to walk the full tree to free all memory and to remove deleted songs from the playlist. Replace a dirvec_delete() with delete_directory().
2009-02-04update: check whether stickers are enabledMax Kellermann1-1/+3
If stickers are not configured at runtime, don't call sticker_song_delete().
2009-02-04playlist: renamed global "playlist" variable to "g_playlist"Max Kellermann1-2/+2
Export the "g_playlist" variable, and pass it to all playlist functions. This way, we can split playlist.c easier into separate parts. The code which initializes the singleton variable is moved to playlist_global.c.
2009-01-25use g_free() instead of free()Max Kellermann1-4/+3
On some platforms, g_free() must be used for memory allocated by GLib. This patch intends to correct a lot of occurrences, but is probably not complete.
2009-01-19update: delete stickers of deleted songsMax Kellermann1-0/+9
When a song is deleted from the database, remove its sticker, too. What's still missing is some sort of garbage collector after a fresh database create (--create-db).
2009-01-18mapper: make the music_directory optionalMax Kellermann1-0/+3
Without a music_directory, MPD is an excellent streaming client.
2009-01-08update: removed one more stack bufferMax Kellermann1-4/+2
2009-01-08path: allocate buffer in fs_charset conversion functionsMax Kellermann1-2/+6
Don't use fixed static buffers. GLib allocates a new string for us anyway, let's just return this one instead of copying it.
2009-01-08update: include config.h, fix archive codeMax Kellermann1-6/+9
The archive code was disabled, because config.h was not included and thus ENABLE_ARCHIVE was not defined.
2009-01-08update: save the database even if it is emptyMax Kellermann1-1/+2
Save an empty database, even if the music directory is empty.
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.