#include "log.h"
#include "osl.h"
-#include "error.h"
#include "util.h"
#include "osl_core.h"
__export const char *osl_strerror(int num)
{
- if (IS_SYSTEM_ERROR(num))
- return strerror((num) & ((1 << SYSTEM_ERROR_BIT) - 1));
return msgstr.str + errmsgidx[num];
}
continue;
if (!table_dir) {
ret = osl_mkdir(desc->dir, 0777);
- if (ret < 0 && !is_errno(-ret, EEXIST))
+ if (ret < 0 && ret != -E_OSL_DIR_EXISTS)
goto out;
table_dir = make_message("%s/%s", desc->dir,
desc->name);
if (!dirname)
goto err;
/* check if directory exists */
- ret = stat(dirname, &statbuf);
+ ret = osl_stat(dirname, &statbuf);
free(dirname);
- if (ret < 0) {
- ret = -E_OSL_STAT;
+ if (ret < 0)
goto err;
- }
ret = -E_OSL_NOTDIR;
if (!S_ISDIR(statbuf.st_mode))
goto err;
return -E_OSL_NOMEM;
ret = osl_mkdir(dirname, 0777);
free(dirname);
- if (ret < 0 && !is_errno(-ret, EEXIST))
+ if (ret < 0 && ret != -E_OSL_DIR_EXISTS)
return ret;
return 1;
}
const char *ds_name)
{
char *dirname, *filename = disk_storage_path(t, col_num, ds_name);
- int ret, err;
+ int ret = 1;
if (!filename)
return -E_OSL_NOMEM;
- ret = unlink(filename);
- err = errno;
+ if (unlink(filename) < 0)
+ ret = errno == ENOENT? -E_OSL_NOENT : -E_OSL_UNLINK;
free(filename);
if (ret < 0)
- return -E_OSL_UNLINK;
+ return ret;
if (!(t->desc->flags & OSL_LARGE_TABLE))
return 1;
dirname = disk_storage_dirname(t, col_num, ds_name);
if (ret < 0)
return ret;
ret = delete_disk_storage_file(t, col_num, ds_name);
- if (ret < 0 && !is_errno(-ret, ENOENT)) {
+ if (ret < 0 && ret != -E_OSL_NOENT) {
free(ds_name);
return ret;
}