Package HTTP Client:

- Add DNS Mapper to force destination for a fqdn source
- Allow wildcard and multi wildcard for fqdn source
- DNS Mapper create Transport, Dialer & http client
- DNS Mapper allow a config input to customize timeout, limit and TLS config
- DNS Mapper use a gloabl transport connection poller
- DNS Mapper implement DialContext & Dial method for transport
- DNS Mapper use cache to accelerate process
- DNS Mapper cache is only dnsmapper, not DNS cache
- Replace old helper for http client with DNSMapper
- Add default DNSMapper into the main lib of http client
- Allow to overide the default DNS Mapper with a new one
- Add ticker to force clean idle connection every given duration
- "Compatible" with old config, as the default config will be used instead of old client build
- Clean code and fix minor bugs
- Add config component to allow use a global config
- Config Component httpcli can overide default httpcli dns mapper when updated

Package Certificates
- Add function type to impose function that return a slice of rootCA string
- update config/component/tls by replacing mutex with atomic
- optimize some code

Package Config
- expand errors code index to add component httpcli

Package Config/component:
- database: add new validation, that config key existing into viper
- head: add new validation, that config key existing into viper
- http: add new validation, that config key existing into viper
- ldap: add new validation, that config key existing into viper
- log: add new validation, that config key existing into viper
- mail: add new validation, that config key existing into viper
- smtp: add new validation, that config key existing into viper

Package AWS:
- update package following update of httpcli
- use interface for http cli that implement the Do function
- update following the config/component/aws
- rework config/component/aws to use atomic instead of mutex
- update test unit following change

Package Request:
- update following http client update
- use interface of HTTP Client that implement DO function, instead of http client struct pointer
- update config & code following
- apply same modification into config/component/request
- update config/component/request by replacing mutex to atomic

Package Server
- add function Uptime to model to expose the duration since last start

Package Semaphore
- apply change name of constant following bump of lib associated

Package Crypt
- fix bug into reader to remove suffix of EOF if prevent

Package Errors:
- expand index module to add DNS Mapper client

Package HTTP Server:
- update monitor to apply changes

Package Socket:
- add additional check if reading error: if buffer has data, send it to handler before break run

Other:
- bump dependencies
This commit is contained in:
Nicolas JUHEL
2024-02-16 14:09:54 +01:00
parent eaf88e00b7
commit ae0a6b62c9
84 changed files with 2103 additions and 816 deletions

View File

@@ -35,8 +35,6 @@ import (
libctx "github.com/nabbar/golib/context"
)
type FuncDefaultCARoot func() []string
type ComponentTlS interface {
cfgtps.Component
Config() *libtls.Config
@@ -44,12 +42,13 @@ type ComponentTlS interface {
SetTLS(tls libtls.TLSConfig)
}
func New(ctx libctx.FuncContext, defCARoot FuncDefaultCARoot) ComponentTlS {
func New(ctx libctx.FuncContext, defCARoot libtls.FctRootCA) ComponentTlS {
return &componentTls{
m: sync.RWMutex{},
x: libctx.NewConfig[uint8](ctx),
t: nil,
c: nil,
f: defCARoot,
}
}
@@ -57,7 +56,7 @@ func Register(cfg libcfg.Config, key string, cpt ComponentTlS) {
cfg.ComponentSet(key, cpt)
}
func RegisterNew(ctx libctx.FuncContext, cfg libcfg.Config, key string, defCARoot FuncDefaultCARoot) {
func RegisterNew(ctx libctx.FuncContext, cfg libcfg.Config, key string, defCARoot libtls.FctRootCA) {
cfg.ComponentSet(key, New(ctx, defCARoot))
}