MCPcopy Create free account
hub / github.com/PuerNya/git-proxy / NewCertContainer

Function NewCertContainer

main.go:140–193  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

138}
139
140func NewCertContainer() (*CertContainer, error) {
141 CertPEM, err := os.ReadFile(certPath)
142 if err != nil {
143 return nil, E.Cause(err, "Read cert file")
144 }
145 KeyPEM, err := os.ReadFile(keyPath)
146 if err != nil {
147 return nil, E.Cause(err, "Read key file")
148 }
149 Cert, err := tls.X509KeyPair(CertPEM, KeyPEM)
150 if err != nil {
151 return nil, E.Cause(err, "Check key pair")
152 }
153 container := &CertContainer{
154 CertPEM: CertPEM,
155 KeyPEM: KeyPEM,
156 Cert: Cert,
157 }
158 if CertWatcher, err := fswatch.NewWatcher(fswatch.Options{
159 Path: []string{certPath},
160 Callback: func(path string) {
161 var err error
162 CertPEM, err = os.ReadFile(certPath)
163 if err != nil {
164 return
165 }
166 container.CertPEM = CertPEM
167 container.Update()
168 },
169 }); err == nil {
170 err = CertWatcher.Start()
171 if err == nil {
172 container.CertWatcher = CertWatcher
173 }
174 }
175 if KeyWatcher, err := fswatch.NewWatcher(fswatch.Options{
176 Path: []string{keyPath},
177 Callback: func(path string) {
178 var err error
179 KeyPEM, err = os.ReadFile(keyPath)
180 if err == nil {
181 return
182 }
183 container.KeyPEM = KeyPEM
184 container.Update()
185 },
186 }); err == nil {
187 err = KeyWatcher.Start()
188 if err == nil {
189 container.KeyWatcher = KeyWatcher
190 }
191 }
192 return container, nil
193}
194
195func (c *CertContainer) Update() {
196 Cert, err := tls.X509KeyPair(c.CertPEM, c.KeyPEM)

Callers 1

runFunction · 0.85

Calls 1

UpdateMethod · 0.95

Tested by

no test coverage detected