@@ -2,6 +2,7 @@ package jail
22
33import  (
44"context" 
5+ cryptotls "crypto/tls" 
56"fmt" 
67"log/slog" 
78"os/exec" 
@@ -10,7 +11,6 @@ import (
1011
1112"github.com/coder/jail/namespace" 
1213"github.com/coder/jail/proxy" 
13- "github.com/coder/jail/tls" 
1414)
1515
1616type  Commander  interface  {
@@ -19,19 +19,23 @@ type Commander interface {
1919Close () error 
2020}
2121
22+ type  CertificateManager  interface  {
23+ SetupTLSAndWriteCACert () (* cryptotls.Config , string , string , error )
24+ }
25+ 
2226type  Config  struct  {
2327RuleEngine  proxy.RuleEvaluator 
2428Auditor  proxy.Auditor 
25- CertManager  * tls. CertificateManager 
29+ CertManager  CertificateManager 
2630Logger  * slog.Logger 
2731}
2832
2933type  Jail  struct  {
30- commandExecutor  Commander 
31- proxyServer    * proxy.ProxyServer 
32- logger    * slog.Logger 
33- ctx    context.Context 
34- cancel    context.CancelFunc 
34+ commander    Commander 
35+ proxyServer  * proxy.ProxyServer 
36+ logger  * slog.Logger 
37+ ctx  context.Context 
38+ cancel  context.CancelFunc 
3539}
3640
3741func  New (ctx  context.Context , config  Config ) (* Jail , error ) {
@@ -75,17 +79,17 @@ func New(ctx context.Context, config Config) (*Jail, error) {
7579ctx , cancel  :=  context .WithCancel (ctx )
7680
7781return  & Jail {
78- commandExecutor :  commander ,
79- proxyServer :   proxyServer ,
80- logger :   config .Logger ,
81- ctx :   ctx ,
82- cancel :   cancel ,
82+ commander :   commander ,
83+ proxyServer : proxyServer ,
84+ logger : config .Logger ,
85+ ctx : ctx ,
86+ cancel : cancel ,
8387}, nil 
8488}
8589
8690func  (j  * Jail ) Start () error  {
8791// Open the command executor (network namespace) 
88- err  :=  j .commandExecutor .Start ()
92+ err  :=  j .commander .Start ()
8993if  err  !=  nil  {
9094return  fmt .Errorf ("failed to open command executor: %v" , err )
9195}
@@ -105,7 +109,7 @@ func (j *Jail) Start() error {
105109}
106110
107111func  (j  * Jail ) Command (command  []string ) * exec.Cmd  {
108- return  j .commandExecutor .Command (command )
112+ return  j .commander .Command (command )
109113}
110114
111115func  (j  * Jail ) Close () error  {
@@ -118,7 +122,7 @@ func (j *Jail) Close() error {
118122}
119123
120124// Close command executor 
121- return  j .commandExecutor .Close ()
125+ return  j .commander .Close ()
122126}
123127
124128// newCommander creates a new NetJail instance for the current platform 
0 commit comments