/** \file blob.c Macros and functions for blob handling. */
#include <fnmatch.h>
+#include <osl.h>
#include "para.h"
#include "error.h"
#include "string.h"
if (!(lbad->flags & BLOB_LS_FLAG_LONG))
return para_printf(&lbad->pb, "%s\n", name);
- ret = osl_get_object(table, row, BLOBCOL_ID, &obj);
+ ret = osl(osl_get_object(table, row, BLOBCOL_ID, &obj));
if (ret < 0) {
para_printf(&lbad->pb, "%s: %s\n", name, para_strerror(-ret));
return ret;
int ret = 0, ret2;
struct osl_object obj;
- ret = osl_open_disk_object(table, row, BLOBCOL_DEF, &obj);
+ ret = osl(osl_open_disk_object(table, row, BLOBCOL_DEF, &obj));
if (ret < 0)
return ret;
if (obj.size)
ret = pass_buffer_as_shm(obj.data, obj.size, data);
- ret2 = osl_close_disk_object(&obj);
+ ret2 = osl(osl_close_disk_object(&obj));
return (ret < 0)? ret : ret2;
}
const char *name, void *data)
{
struct rmblob_data *rmbd = data;
- int ret = osl_del_row(table, row);
+ int ret = osl(osl_del_row(table, row));
if (ret < 0) {
para_printf(&rmbd->pb, "%s: %s\n", name, para_strerror(-ret));
return ret;
unsigned num_rows;
int ret;
- ret = osl_get_num_rows(table, &num_rows);
+ ret = osl(osl_get_num_rows(table, &num_rows));
if (ret < 0)
goto out;
if (!num_rows) { /* this is the first entry ever added */
objs[BLOBCOL_NAME].size = 1;
objs[BLOBCOL_DEF].data = "";
objs[BLOBCOL_DEF].size = 1;
- ret = osl_add_row(table, objs);
+ ret = osl(osl_add_row(table, objs));
if (ret < 0)
goto out;
} else {
/* check if name already exists */
struct osl_row *row;
struct osl_object obj = {.data = name, .size = name_len};
- ret = osl_get_row(table, BLOBCOL_NAME, &obj, &row);
- if (ret < 0 && ret != -E_OSL_RB_KEY_NOT_FOUND)
+ ret = osl(osl_get_row(table, BLOBCOL_NAME, &obj, &row));
+ if (ret < 0 && ret != -OSL_ERRNO_TO_PARA_ERROR(E_OSL_RB_KEY_NOT_FOUND))
goto out;
if (ret >= 0) { /* we already have a blob with this name */
obj.data = name + name_len;
obj.size = query->size - name_len;
- ret = osl_update_object(table, row, BLOBCOL_DEF, &obj);
+ ret = osl(osl_update_object(table, row, BLOBCOL_DEF, &obj));
goto out;
}
/* new blob, get id of the dummy row and increment it */
obj.data = "";
obj.size = 1;
- ret = osl_get_row(table, BLOBCOL_NAME, &obj, &row);
+ ret = osl(osl_get_row(table, BLOBCOL_NAME, &obj, &row));
if (ret < 0)
goto out;
- ret = osl_get_object(table, row, BLOBCOL_ID, &obj);
+ ret = osl(osl_get_object(table, row, BLOBCOL_ID, &obj));
if (ret < 0)
goto out;
id = *(uint32_t *)obj.data + 1;
obj.data = &id;
- ret = osl_update_object(table, row, BLOBCOL_ID, &obj);
+ ret = osl(osl_update_object(table, row, BLOBCOL_ID, &obj));
if (ret < 0)
goto out;
}
objs[BLOBCOL_NAME].size = name_len;
objs[BLOBCOL_DEF].data = name + name_len;
objs[BLOBCOL_DEF].size = query->size - name_len;
- ret = osl_add_row(table, objs);
+ ret = osl(osl_add_row(table, objs));
if (ret < 0)
goto out;
afs_event(BLOB_ADD, NULL, table);
struct osl_object obj = {.data = src, .size = strlen(src) + 1};
char *dest = src + obj.size;
struct osl_row *row;
- int ret = osl_get_row(table, BLOBCOL_NAME, &obj, &row);
+ int ret = osl(osl_get_row(table, BLOBCOL_NAME, &obj, &row));
if (ret < 0)
goto out;
obj.data = dest;
obj.size = strlen(dest) + 1;
- ret = osl_update_object(table, row, BLOBCOL_NAME, &obj);
+ ret = osl(osl_update_object(table, row, BLOBCOL_NAME, &obj));
if (ret < 0)
goto out;
afs_event(BLOB_RENAME, NULL, table);
*name = NULL;
if (!id)
return 1;
- ret = osl_get_row(table, BLOBCOL_ID, &obj, &row);
+ ret = osl(osl_get_row(table, BLOBCOL_ID, &obj, &row));
if (ret < 0)
return ret;
- ret = osl_get_object(table, row, BLOBCOL_NAME, &obj);
+ ret = osl(osl_get_object(table, row, BLOBCOL_NAME, &obj));
if (ret < 0)
return ret;
*name = (char *)obj.data;
def->data = NULL;
if (!*name)
return 1;
- ret = osl_get_row(table, BLOBCOL_NAME, &obj, &row);
+ ret = osl(osl_get_row(table, BLOBCOL_NAME, &obj, &row));
if (ret < 0)
return ret;
- return osl_open_disk_object(table, row, BLOBCOL_DEF, def);
+ return osl(osl_open_disk_object(table, row, BLOBCOL_DEF, def));
}
/** Define the \p get_def_by_id function for this blob type. */
def->data = NULL;
if (!id)
return 1;
- ret = osl_get_row(table, BLOBCOL_ID, &obj, &row);
+ ret = osl(osl_get_row(table, BLOBCOL_ID, &obj, &row));
if (ret < 0)
return ret;
- return osl_open_disk_object(table, row, BLOBCOL_DEF, def);
+ return osl(osl_open_disk_object(table, row, BLOBCOL_DEF, def));
}
/** Define the \p get_def_by_id function for this blob type. */
const struct osl_row *row, char **name, struct osl_object *def)
{
struct osl_object obj;
- int ret = osl_get_object(table, row, BLOBCOL_NAME, &obj);
+ int ret = osl(osl_get_object(table, row, BLOBCOL_NAME, &obj));
if (ret < 0)
return ret;
*name = obj.data;
- return osl_open_disk_object(table, row, BLOBCOL_DEF, def);
+ return osl(osl_open_disk_object(table, row, BLOBCOL_DEF, def));
}
/** Define the \p get_name_and_def_by_row function for this blob type. */
#define DEFINE_GET_NAME_AND_DEF_BY_ROW(table_name, cmd_prefix) \
{
int ret;
desc->dir = dir;
- ret = osl_open_table(desc, table);
+ ret = osl(osl_open_table(desc, table));
if (ret >= 0)
return ret;
*table = NULL;
- if (ret >= 0 || is_errno(-ret, ENOENT))
+ if (ret >= 0 || ret == -OSL_ERRNO_TO_PARA_ERROR(E_OSL_NOENT))
return 1;
return ret;
}