X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=afs.c;h=9cef049bdfff719c95aa8a4e0357da16fc926712;hp=5939cbe69cc46c1095d7cb82ffc98a741d3f6505;hb=aa3fe79526bbce17f5ceec4d9c2d2246f01d6828;hpb=0703f75a276020f9645f987134d49402f7c019c0 diff --git a/afs.c b/afs.c index 5939cbe6..9cef049b 100644 --- a/afs.c +++ b/afs.c @@ -26,6 +26,7 @@ #include "signal.h" #include "fd.h" #include "mood.h" +#include "sideband.h" #include "command.h" /** The osl tables used by afs. \sa blob.c. */ @@ -546,8 +547,10 @@ static void com_select_callback(int fd, const struct osl_object *query) { struct para_buffer pb = { .max_size = shm_get_shmmax(), - .private_data = &fd, - .max_size_handler = pass_buffer_as_shm + .private_data = &(struct afs_max_size_handler_data) { + .fd = fd, + }, + .max_size_handler = afs_max_size_handler, }; char *arg = query->data; int num_admissible, ret, ret2; @@ -591,7 +594,7 @@ out: * * \sa \ref callback_result_handler, \ref sc_send_bin_buffer(). */ -int sc_send_result(struct osl_object *result, void *private) +int afs_cb_result_handler(struct osl_object *result, void *private) { struct command_context *cc = private; int ret; @@ -613,7 +616,7 @@ int com_select(struct command_context *cc) query.data = cc->argv[1]; query.size = strlen(cc->argv[1]) + 1; return send_callback_request(com_select_callback, &query, - &sc_send_result, cc); + &afs_cb_result_handler, cc); } static void init_admissible_files(char *arg) @@ -787,10 +790,6 @@ static void command_pre_select(struct sched *s, struct task *t) * \param size The size of \a buf. * \param fd_ptr A pointer to the file descriptor. * - * This function is used as the \a max_size handler in a \ref para_buffer - * structure. If used this way, it is called by \ref para_printf() whenever - * the buffer passed to para_printf() is about to exceed its maximal size. - * * This function creates a shared memory area large enough to hold * the content given by \a buf and \a size and sends the identifier * of this area to the file descriptor given by \a fd_ptr. @@ -1053,7 +1052,7 @@ int com_init(struct command_context *cc) } } ret = send_callback_request(create_tables_callback, &query, - sc_send_result, cc); + afs_cb_result_handler, cc); if (ret < 0) /* ignore return value */ sc_send_va_buffer(&cc->scc, "%s\n", para_strerror(-ret)); @@ -1107,19 +1106,19 @@ int com_check(struct command_context *cc) flags = ~0U; if (flags & CHECK_AFT) { ret = send_callback_request(aft_check_callback, NULL, - sc_send_result, cc); + afs_cb_result_handler, cc); if (ret < 0) return ret; } if (flags & CHECK_PLAYLISTS) { ret = send_callback_request(playlist_check_callback, - NULL, sc_send_result, cc); + NULL, afs_cb_result_handler, cc); if (ret < 0) return ret; } if (flags & CHECK_MOODS) { ret = send_callback_request(mood_check_callback, NULL, - sc_send_result, cc); + afs_cb_result_handler, cc); if (ret < 0) return ret; }