testsuite: Introduce a new test for para_server.
[paraslash.git] / mood.c
diff --git a/mood.c b/mood.c
index d82d5a52c3b704cffd3657c9b6bad25121c5b4f2..d9ae48bf967e61b0c4c0ca499d75f0b47eb47b96 100644 (file)
--- a/mood.c
+++ b/mood.c
@@ -422,7 +422,7 @@ out:
 void mood_check_callback(int fd, __a_unused const struct osl_object *query)
 {
        struct para_buffer pb = {
-               .max_size = SHMMAX,
+               .max_size = shm_get_shmmax(),
                .private_data = &fd,
                .max_size_handler = pass_buffer_as_shm
        };
@@ -904,6 +904,8 @@ static int reload_current_mood(void)
 int moods_event_handler(enum afs_events event, __a_unused struct para_buffer *pb,
                void *data)
 {
+       int ret;
+
        if (!current_mood)
                return 0;
        switch (event) {
@@ -916,6 +918,10 @@ int moods_event_handler(enum afs_events event, __a_unused struct para_buffer *pb
        case BLOB_ADD:
                if (data == moods_table || data == playlists_table)
                        return 1; /* no reload necessary for these */
+               ret = clear_score_table();
+               if (ret < 0)
+                       PARA_CRIT_LOG("clear score table returned %s\n",
+                               para_strerror(-ret));
                return reload_current_mood();
        /* these also require reload of the score table */
        case ATTRIBUTE_ADD: