Skip to content
Snippets Groups Projects
Commit 82a0c8da authored by Eric Vidal's avatar Eric Vidal :speech_balloon:
Browse files

add slash to SS_SERVICE constant

parent d8fd2ada
No related branches found
No related tags found
No related merge requests found
......@@ -23,8 +23,6 @@
#define SS_SYSTEM_LEN (sizeof SS_SYSTEM - 1)
#define SS_TREE_CURRENT "current"
#define SS_TREE_CURRENT_LEN (sizeof SS_TREE_CURRENT - 1)
#define SS_SERVICE "service"
#define SS_SERVICE_LEN (sizeof SS_SERVICE - 1)
#define SS_MODULE "module"
#define SS_MODULE_LEN (sizeof SS_MODULE - 1)
#define SS_SCANDIR "scandir"
......@@ -43,7 +41,8 @@
/**service dir*/
#define SS_SVC "/svc"
#define SS_SVC_LEN (sizeof SS_SVC - 1)
#define SS_SERVICE "/service"
#define SS_SERVICE_LEN (sizeof SS_SERVICE - 1)
#define SS_MASTER "/Master"
#define SS_MASTER_LEN (sizeof SS_MASTER - 1)
#define SS_CONTENTS "contents"
......
......@@ -32,9 +32,9 @@ void graph_build_service(graph_t *graph, resolve_service_t *ares, unsigned int *
stralloc sa = STRALLOC_ZERO ;
char const *exclude[1] = { 0 } ;
char solve[info->base.len + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1] ;
char solve[info->base.len + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1] ;
auto_strings(solve, info->base.s, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE) ;
auto_strings(solve, info->base.s, SS_SYSTEM, SS_RESOLVE, SS_SERVICE) ;
if (!sastr_dir_get_recursive(&sa, solve, exclude, S_IFREG, 0))
log_dieu(LOG_EXIT_SYS, "get resolve files") ;
......
......@@ -28,11 +28,11 @@ int resolve_check_g(resolve_wrapper_t *wres, char const *base, char const *name)
size_t baselen = strlen(base) ;
size_t namelen = strlen(name) ;
char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
if (wres->type == DATA_SERVICE || wres->type == DATA_SERVICE_MASTER) {
auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name) ;
auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
} else if (wres->type == DATA_TREE || wres->type == DATA_TREE_MASTER) {
......
......@@ -30,11 +30,11 @@ int resolve_read_g(resolve_wrapper_t *wres, char const *base, char const *name)
size_t baselen = strlen(base) ;
size_t namelen = strlen(name) ;
char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + 1] ;
if (wres->type == DATA_SERVICE || wres->type == DATA_SERVICE_MASTER) {
auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name) ;
auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
} else if (wres->type == DATA_TREE || wres->type == DATA_TREE_MASTER) {
......
......@@ -30,11 +30,11 @@ void resolve_remove_g(char const *base, char const *name, uint8_t data_type)
int e = errno ;
size_t baselen = strlen(base) ;
size_t namelen = strlen(name) ;
char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + 1] ;
if (data_type == DATA_SERVICE || data_type == DATA_SERVICE_MASTER) {
auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name) ;
auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
resolve_remove(path, name) ;
......
......@@ -27,11 +27,11 @@ int resolve_write_g(resolve_wrapper_t *wres, char const *base, char const *name)
size_t baselen = strlen(base) ;
size_t namelen = strlen(name) ;
char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
if (wres->type == DATA_SERVICE || wres->type == DATA_SERVICE_MASTER) {
auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name) ;
auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
} else if (wres->type == DATA_TREE || wres->type == DATA_TREE_MASTER) {
......
......@@ -70,7 +70,7 @@ int sanitize_system(ssexec_t *info)
size_t baselen = info->base.len ;
uid_t log_uid ;
gid_t log_gid ;
char dst[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1] ;
char dst[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1] ;
auto_strings(dst,info->base.s, SS_SYSTEM) ;
/** base is /var/lib/66 or $HOME/.66*/
......@@ -137,7 +137,7 @@ int sanitize_system(ssexec_t *info)
stralloc_free(&extra) ;
}
auto_strings(dst, info->base.s, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE) ;
auto_strings(dst, info->base.s, SS_SYSTEM, SS_RESOLVE, SS_SERVICE) ;
auto_check(dst) ;
auto_strings(dst + baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN, SS_MASTER) ;
......
......@@ -31,11 +31,11 @@ int service_resolve_write(resolve_service_t *res)
char *name = res->sa.s + res->name ;
size_t namelen = strlen(name) ;
char sym[strlen(res->sa.s + res->path.home) + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
char sym[strlen(res->sa.s + res->path.home) + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + 1] ;
char dst[strlen(res->sa.s + res->path.tree) + SS_SVDIRS_LEN + 1] ;
resolve_wrapper_t_ref wres = resolve_set_struct(DATA_SERVICE, res) ;
auto_strings(sym, res->sa.s + res->path.home, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name) ;
auto_strings(sym, res->sa.s + res->path.home, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
auto_strings(dst, res->sa.s + res->path.tree, SS_SVDIRS) ;
......
......@@ -28,9 +28,9 @@ int state_check(char const *base, char const *name)
size_t baselen = strlen(base) ;
size_t namelen = strlen(name) ;
char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
if (access(target, F_OK) < 0)
return 0 ;
......
......@@ -30,9 +30,9 @@ int state_read(ss_state_t *sta, char const *base, char const *name)
size_t baselen = strlen(base) ;
size_t namelen = strlen(name) ;
char pack[STATE_STATE_SIZE] ;
char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
if (openreadnclose(target, pack, STATE_STATE_SIZE) < STATE_STATE_SIZE)
return 0 ;
......
......@@ -29,9 +29,9 @@ void state_rmfile(char const *base, char const *name)
size_t baselen = strlen(base) ;
size_t namelen = strlen(name) ;
char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
unlink_void(target) ;
}
......@@ -31,15 +31,15 @@ int state_write(ss_state_t *sta, char const *base, char const *name)
size_t baselen = strlen(base) ;
size_t namelen = strlen(name) ;
char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE) ;
auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE) ;
if (access(target, F_OK) < 0)
if (!dir_create_parent(target, 0755))
log_warnusys_return(LOG_EXIT_ZERO, "create directory: ", target) ;
auto_strings(target + baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN, "/", SS_STATUS) ;
auto_strings(target + baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN, "/", SS_STATUS) ;
char pack[STATE_STATE_SIZE] ;
......
......@@ -26,7 +26,7 @@ void name_isvalid(char const *name)
if (!memcmp(name, SS_MASTER + 1, 6))
log_die(LOG_EXIT_USER, "service name: ", name, ": starts with reserved prefix Master") ;
if (!strcmp(name, SS_SERVICE))
if (!strcmp(name, SS_SERVICE + 1))
log_die(LOG_EXIT_USER, "service as service name is a reserved name") ;
if (!strcmp(name, SS_SERVICE "@"))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment