/*
- * Copyright (C) 1997-2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2008 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
if (!laad.pb.buf)
return 0;
result->data = laad.pb.buf;
- result->size = laad.pb.size;
+ result->size = laad.pb.offset;
return 1;
}
int com_lsatt(int fd, int argc, char * const * const argv)
{
unsigned flags = 0;
- struct osl_object options = {.data = &flags, .size = sizeof(flags)},
- result;
+ struct osl_object options = {.data = &flags, .size = sizeof(flags)};
int ret, i;
for (i = 1; i < argc; i++) {
}
}
ret = send_option_arg_callback_request(&options, argc - i, argv + i,
- com_lsatt_callback, &result);
- if (ret > 0) {
- ret = send_buffer(fd, (char *)result.data);
- free(result.data);
+ com_lsatt_callback, send_result, &fd);
+ if (!ret) {
+ if (argc > 1)
+ ret = send_va_buffer(fd, "no matches\n");
} else if (ret < 0)
send_va_buffer(fd, "%s\n", para_strerror(-ret));
- else if (argc > 1)
- send_va_buffer(fd, "no matches\n");
return ret;
}
if (argc < 3)
return -E_ATTR_SYNTAX;
return send_standard_callback_request(argc - 1, argv + 1, com_setatt_callback,
- NULL);
+ NULL, NULL);
}
struct addatt_event_data {
if (ret < 0)
para_printf(&pb, "%s: %s\n", p, para_strerror(-ret));
result->data = pb.buf;
- result->size = pb.size;
+ result->size = pb.offset;
return result->data? 0 : 1;
}
int com_addatt(int fd, int argc, char * const * const argv)
{
- struct osl_object result;
int ret;
if (argc < 2)
return -E_ATTR_SYNTAX;
ret = send_standard_callback_request(argc - 1, argv + 1, com_addatt_callback,
- &result);
- if (!ret)
- return 1;
+ send_result, &fd);
if (ret < 0)
- return ret;
- if (!result.data || !result.size)
- return 1;
- ret = send_va_buffer(fd, "%s", (char *) result.data);
- free(result.data);
+ send_va_buffer(fd, "%s\n", para_strerror(-ret));
return ret;
}
if (!pb.buf)
return 0;
result->data = pb.buf;
- result->size = pb.size;
+ result->size = pb.offset;
return 1;
}
int com_mvatt(int fd, int argc, char * const * const argv)
{
- struct osl_object result;
int ret;
if (argc != 3)
return -E_ATTR_SYNTAX;
ret = send_standard_callback_request(argc - 1, argv + 1, com_mvatt_callback,
- &result);
- if (!ret)
- return 1;
+ send_result, &fd);
if (ret < 0)
- return ret;
- if (!result.data || !result.size)
- return 1;
- ret = send_va_buffer(fd, "%s", (char *) result.data);
- free(result.data);
+ send_va_buffer(fd, "%s\n", para_strerror(-ret));
return ret;
}
if (!raad.num_removed)
para_printf(&raad.pb, "no match -- nothing removed\n");
result->data = raad.pb.buf;
- result->size = raad.pb.size;
+ result->size = raad.pb.offset;
return 1;
}
int com_rmatt(int fd, int argc, char * const * const argv)
{
int ret;
- struct osl_object result;
if (argc < 2)
return -E_ATTR_SYNTAX;
ret = send_standard_callback_request(argc - 1, argv + 1, com_rmatt_callback,
- &result);
- if (ret > 0) {
- send_buffer(fd, (char *)result.data);
- free(result.data);
- } else
+ send_result, &fd);
+ if (ret < 0)
send_va_buffer(fd, "%s\n", para_strerror(-ret));
return ret;
}