Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
varnish-cache
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
varnishcache
varnish-cache
Commits
0712a4a3
Commit
0712a4a3
authored
Aug 29, 2017
by
Poul-Henning Kamp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make the new VSM code work with VJails
parent
546a3cc1
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
30 additions
and
13 deletions
+30
-13
mgt.h
bin/varnishd/mgt/mgt.h
+1
-1
mgt_child.c
bin/varnishd/mgt/mgt_child.c
+4
-3
mgt_cli.c
bin/varnishd/mgt/mgt_cli.c
+3
-1
mgt_jail.c
bin/varnishd/mgt/mgt_jail.c
+1
-1
mgt_jail_unix.c
bin/varnishd/mgt/mgt_jail_unix.c
+4
-4
mgt_main.c
bin/varnishd/mgt/mgt_main.c
+2
-0
mgt_shmem.c
bin/varnishd/mgt/mgt_shmem.c
+15
-3
No files found.
bin/varnishd/mgt/mgt.h
View file @
0712a4a3
...
@@ -125,7 +125,7 @@ void VJ_master(enum jail_master_e jme);
...
@@ -125,7 +125,7 @@ void VJ_master(enum jail_master_e jme);
void
VJ_subproc
(
enum
jail_subproc_e
jse
);
void
VJ_subproc
(
enum
jail_subproc_e
jse
);
int
VJ_make_workdir
(
const
char
*
dname
);
int
VJ_make_workdir
(
const
char
*
dname
);
int
VJ_make_vcldir
(
const
char
*
dname
);
int
VJ_make_vcldir
(
const
char
*
dname
);
void
VJ_fix_vsm_
file
(
int
fd
);
void
VJ_fix_vsm_
dir
(
int
fd
);
void
VJ_fix_storage_file
(
int
fd
);
void
VJ_fix_storage_file
(
int
fd
);
extern
const
struct
jail_tech
jail_tech_unix
;
extern
const
struct
jail_tech
jail_tech_unix
;
...
...
bin/varnishd/mgt/mgt_child.c
View file @
0712a4a3
...
@@ -279,7 +279,7 @@ child_signal_handler(int s, siginfo_t *si, void *c)
...
@@ -279,7 +279,7 @@ child_signal_handler(int s, siginfo_t *si, void *c)
__FILE__
,
__FILE__
,
__LINE__
,
__LINE__
,
buf
,
buf
,
VAS_
ASSERT
);
VAS_
WRONG
);
}
}
/*=====================================================================
/*=====================================================================
...
@@ -331,8 +331,6 @@ mgt_launch_child(struct cli *cli)
...
@@ -331,8 +331,6 @@ mgt_launch_child(struct cli *cli)
}
}
if
(
pid
==
0
)
{
if
(
pid
==
0
)
{
proc_vsmw
=
VSMW_New
(
heritage
.
vsm_fd
,
0640
,
"_.index"
);
AN
(
proc_vsmw
);
/* Redirect stdin/out/err */
/* Redirect stdin/out/err */
VFIL_null_fd
(
STDIN_FILENO
);
VFIL_null_fd
(
STDIN_FILENO
);
...
@@ -386,6 +384,9 @@ mgt_launch_child(struct cli *cli)
...
@@ -386,6 +384,9 @@ mgt_launch_child(struct cli *cli)
VJ_subproc
(
JAIL_SUBPROC_WORKER
);
VJ_subproc
(
JAIL_SUBPROC_WORKER
);
proc_vsmw
=
VSMW_New
(
heritage
.
vsm_fd
,
0640
,
"_.index"
);
AN
(
proc_vsmw
);
child_main
();
child_main
();
exit
(
0
);
exit
(
0
);
...
...
bin/varnishd/mgt/mgt_cli.c
View file @
0712a4a3
...
@@ -503,9 +503,9 @@ mgt_cli_secret(const char *S_arg)
...
@@ -503,9 +503,9 @@ mgt_cli_secret(const char *S_arg)
char
buf
[
BUFSIZ
];
char
buf
[
BUFSIZ
];
/* Save in shmem */
/* Save in shmem */
VJ_master
(
JAIL_MASTER_FILE
);
mgt_SHM_static_alloc
(
S_arg
,
strlen
(
S_arg
)
+
1L
,
"Arg"
,
"-S"
);
mgt_SHM_static_alloc
(
S_arg
,
strlen
(
S_arg
)
+
1L
,
"Arg"
,
"-S"
);
VJ_master
(
JAIL_MASTER_FILE
);
fd
=
open
(
S_arg
,
O_RDONLY
);
fd
=
open
(
S_arg
,
O_RDONLY
);
if
(
fd
<
0
)
{
if
(
fd
<
0
)
{
fprintf
(
stderr
,
"Can not open secret-file
\"
%s
\"\n
"
,
S_arg
);
fprintf
(
stderr
,
"Can not open secret-file
\"
%s
\"\n
"
,
S_arg
);
...
@@ -573,7 +573,9 @@ mgt_cli_telnet(const char *T_arg)
...
@@ -573,7 +573,9 @@ mgt_cli_telnet(const char *T_arg)
if
(
VSB_len
(
vsb
)
==
0
)
if
(
VSB_len
(
vsb
)
==
0
)
ARGV_ERR
(
"-T %s could not be listened on.
\n
"
,
T_arg
);
ARGV_ERR
(
"-T %s could not be listened on.
\n
"
,
T_arg
);
/* Save in shmem */
/* Save in shmem */
VJ_master
(
JAIL_MASTER_FILE
);
mgt_SHM_static_alloc
(
VSB_data
(
vsb
),
VSB_len
(
vsb
)
+
1
,
"Arg"
,
"-T"
);
mgt_SHM_static_alloc
(
VSB_data
(
vsb
),
VSB_len
(
vsb
)
+
1
,
"Arg"
,
"-T"
);
VJ_master
(
JAIL_MASTER_LOW
);
VSB_destroy
(
&
vsb
);
VSB_destroy
(
&
vsb
);
}
}
...
...
bin/varnishd/mgt/mgt_jail.c
View file @
0712a4a3
...
@@ -189,7 +189,7 @@ VJ_fix_storage_file(int fd)
...
@@ -189,7 +189,7 @@ VJ_fix_storage_file(int fd)
}
}
void
void
VJ_fix_vsm_
file
(
int
fd
)
VJ_fix_vsm_
dir
(
int
fd
)
{
{
CHECK_OBJ_NOTNULL
(
vjt
,
JAIL_TECH_MAGIC
);
CHECK_OBJ_NOTNULL
(
vjt
,
JAIL_TECH_MAGIC
);
...
...
bin/varnishd/mgt/mgt_jail_unix.c
View file @
0712a4a3
...
@@ -252,12 +252,12 @@ vju_make_vcldir(const char *dname)
...
@@ -252,12 +252,12 @@ vju_make_vcldir(const char *dname)
static
void
__match_proto__
(
jail_fixfile_f
)
static
void
__match_proto__
(
jail_fixfile_f
)
vju_vsm_
file
(
int
fd
)
vju_vsm_
dir
(
int
fd
)
{
{
/* Called under JAIL_MASTER_FILE */
/* Called under JAIL_MASTER_FILE */
AZ
(
fchmod
(
fd
,
0
64
0
));
AZ
(
fchmod
(
fd
,
0
75
0
));
AZ
(
fchown
(
fd
,
0
,
vju_gid
));
AZ
(
fchown
(
fd
,
vju_wrkuid
,
vju_gid
));
}
}
static
void
__match_proto__
(
jail_fixfile_f
)
static
void
__match_proto__
(
jail_fixfile_f
)
...
@@ -275,7 +275,7 @@ const struct jail_tech jail_tech_unix = {
...
@@ -275,7 +275,7 @@ const struct jail_tech jail_tech_unix = {
.
init
=
vju_init
,
.
init
=
vju_init
,
.
master
=
vju_master
,
.
master
=
vju_master
,
.
make_vcldir
=
vju_make_vcldir
,
.
make_vcldir
=
vju_make_vcldir
,
.
vsm_file
=
vju_vsm_
file
,
.
vsm_file
=
vju_vsm_
dir
,
.
storage_file
=
vju_storage_file
,
.
storage_file
=
vju_storage_file
,
.
subproc
=
vju_subproc
,
.
subproc
=
vju_subproc
,
};
};
bin/varnishd/mgt/mgt_main.c
View file @
0712a4a3
...
@@ -838,8 +838,10 @@ main(int argc, char * const *argv)
...
@@ -838,8 +838,10 @@ main(int argc, char * const *argv)
mgt_SHM_Init
();
mgt_SHM_Init
();
VJ_master
(
JAIL_MASTER_FILE
);
mgt_SHM_static_alloc
(
i_arg
,
strlen
(
i_arg
)
+
1L
,
"Arg"
,
"-i"
);
mgt_SHM_static_alloc
(
i_arg
,
strlen
(
i_arg
)
+
1L
,
"Arg"
,
"-i"
);
VSC_C_mgt
=
VSC_mgt_New
(
""
);
VSC_C_mgt
=
VSC_mgt_New
(
""
);
VJ_master
(
JAIL_MASTER_LOW
);
if
(
M_arg
!=
NULL
)
if
(
M_arg
!=
NULL
)
mgt_cli_master
(
M_arg
);
mgt_cli_master
(
M_arg
);
...
...
bin/varnishd/mgt/mgt_shmem.c
View file @
0712a4a3
...
@@ -73,11 +73,13 @@ mgt_shm_atexit(void)
...
@@ -73,11 +73,13 @@ mgt_shm_atexit(void)
/* Do not let VCC kill our VSM */
/* Do not let VCC kill our VSM */
if
(
getpid
()
!=
mgt_pid
)
if
(
getpid
()
!=
mgt_pid
)
return
;
return
;
VJ_master
(
JAIL_MASTER_FILE
);
VSMW_Destroy
(
&
mgt_vsmw
);
VSMW_Destroy
(
&
mgt_vsmw
);
if
(
!
MGT_DO_DEBUG
(
DBG_VTC_MODE
))
{
if
(
!
MGT_DO_DEBUG
(
DBG_VTC_MODE
))
{
AZ
(
system
(
"rm -rf "
VSM_MGT_DIRNAME
));
AZ
(
system
(
"rm -rf "
VSM_MGT_DIRNAME
));
AZ
(
system
(
"rm -rf "
VSM_CHILD_DIRNAME
));
AZ
(
system
(
"rm -rf "
VSM_CHILD_DIRNAME
));
}
}
VJ_master
(
JAIL_MASTER_LOW
);
}
}
/*--------------------------------------------------------------------
/*--------------------------------------------------------------------
...
@@ -88,11 +90,12 @@ void
...
@@ -88,11 +90,12 @@ void
mgt_SHM_Init
(
void
)
mgt_SHM_Init
(
void
)
{
{
// XXX: VJ/mode/owner/group
VJ_master
(
JAIL_MASTER_FILE
);
AZ
(
system
(
"rm -rf "
VSM_MGT_DIRNAME
));
AZ
(
system
(
"rm -rf "
VSM_MGT_DIRNAME
));
AZ
(
mkdir
(
VSM_MGT_DIRNAME
,
0755
));
AZ
(
mkdir
(
VSM_MGT_DIRNAME
,
0755
));
mgt_vsmw
=
VSMW_New
(
open
(
VSM_MGT_DIRNAME
,
O_RDONLY
),
0640
,
"_.index"
);
mgt_vsmw
=
VSMW_New
(
open
(
VSM_MGT_DIRNAME
,
O_RDONLY
),
0640
,
"_.index"
);
AN
(
mgt_vsmw
);
AN
(
mgt_vsmw
);
VJ_master
(
JAIL_MASTER_LOW
);
proc_vsmw
=
mgt_vsmw
;
proc_vsmw
=
mgt_vsmw
;
...
@@ -104,13 +107,18 @@ void
...
@@ -104,13 +107,18 @@ void
mgt_SHM_ChildNew
(
void
)
mgt_SHM_ChildNew
(
void
)
{
{
VJ_master
(
JAIL_MASTER_FILE
);
AZ
(
system
(
"rm -rf "
VSM_CHILD_DIRNAME
));
AZ
(
system
(
"rm -rf "
VSM_CHILD_DIRNAME
));
AZ
(
mkdir
(
VSM_CHILD_DIRNAME
,
075
5
));
AZ
(
mkdir
(
VSM_CHILD_DIRNAME
,
075
0
));
heritage
.
vsm_fd
=
open
(
VSM_CHILD_DIRNAME
,
O_RDONLY
);
heritage
.
vsm_fd
=
open
(
VSM_CHILD_DIRNAME
,
O_RDONLY
);
assert
(
heritage
.
vsm_fd
>=
0
);
assert
(
heritage
.
vsm_fd
>=
0
);
VJ_fix_vsm_dir
(
heritage
.
vsm_fd
);
VJ_master
(
JAIL_MASTER_LOW
);
MCH_Fd_Inherit
(
heritage
.
vsm_fd
,
"VSMW"
);
MCH_Fd_Inherit
(
heritage
.
vsm_fd
,
"VSMW"
);
VJ_master
(
JAIL_MASTER_FILE
);
heritage
.
param
=
VSMW_Allocf
(
mgt_vsmw
,
VSM_CLASS_PARAM
,
heritage
.
param
=
VSMW_Allocf
(
mgt_vsmw
,
VSM_CLASS_PARAM
,
sizeof
*
heritage
.
param
,
""
);
sizeof
*
heritage
.
param
,
""
);
AN
(
heritage
.
param
);
AN
(
heritage
.
param
);
...
@@ -120,6 +128,7 @@ mgt_SHM_ChildNew(void)
...
@@ -120,6 +128,7 @@ mgt_SHM_ChildNew(void)
heritage
.
panic_str
=
VSMW_Allocf
(
mgt_vsmw
,
"Panic"
,
heritage
.
panic_str
=
VSMW_Allocf
(
mgt_vsmw
,
"Panic"
,
heritage
.
panic_str_len
,
""
);
heritage
.
panic_str_len
,
""
);
AN
(
heritage
.
panic_str
);
AN
(
heritage
.
panic_str
);
VJ_master
(
JAIL_MASTER_LOW
);
}
}
void
void
...
@@ -127,8 +136,11 @@ mgt_SHM_ChildDestroy(void)
...
@@ -127,8 +136,11 @@ mgt_SHM_ChildDestroy(void)
{
{
closefd
(
&
heritage
.
vsm_fd
);
closefd
(
&
heritage
.
vsm_fd
);
if
(
!
MGT_DO_DEBUG
(
DBG_VTC_MODE
))
if
(
!
MGT_DO_DEBUG
(
DBG_VTC_MODE
))
{
VJ_master
(
JAIL_MASTER_FILE
);
AZ
(
system
(
"rm -rf "
VSM_CHILD_DIRNAME
));
AZ
(
system
(
"rm -rf "
VSM_CHILD_DIRNAME
));
VJ_master
(
JAIL_MASTER_LOW
);
}
heritage
.
panic_str
=
NULL
;
heritage
.
panic_str
=
NULL
;
heritage
.
param
=
NULL
;
heritage
.
param
=
NULL
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment