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

@@ -55,17 +55,6 @@ func (o *componentAws) Type() string {
}
func (o *componentAws) Init(key string, ctx libctx.FuncContext, get cfgtps.FuncCptGet, vpr libvpr.FuncViper, vrs libver.Version, log liblog.FuncLog) {
o.m.Lock()
defer o.m.Unlock()
if o.x == nil {
o.x = libctx.NewConfig[uint8](ctx)
} else {
x := libctx.NewConfig[uint8](ctx)
x.Merge(o.x)
o.x = x
}
o.x.Store(keyCptKey, key)
o.x.Store(keyFctGetCpt, get)
o.x.Store(keyFctViper, vpr)
@@ -84,10 +73,11 @@ func (o *componentAws) RegisterFuncReload(before, after cfgtps.FuncCptEvent) {
}
func (o *componentAws) IsStarted() bool {
o.m.RLock()
defer o.m.RUnlock()
if o.s.Load() {
return o.getAws() != nil
}
return o.a != nil
return false
}
func (o *componentAws) IsRunning() bool {
@@ -95,6 +85,7 @@ func (o *componentAws) IsRunning() bool {
}
func (o *componentAws) Start() error {
o.s.Store(true)
return o._run()
}
@@ -103,17 +94,11 @@ func (o *componentAws) Reload() error {
}
func (o *componentAws) Stop() {
o.m.Lock()
defer o.m.Unlock()
o.a = nil
o.s.Store(false)
return
}
func (o *componentAws) Dependencies() []string {
o.m.RLock()
defer o.m.RUnlock()
var def = make([]string, 0)
if o == nil {
@@ -132,9 +117,6 @@ func (o *componentAws) Dependencies() []string {
}
func (o *componentAws) SetDependencies(d []string) error {
o.m.RLock()
defer o.m.RUnlock()
if o.x == nil {
return ErrorComponentNotInitialized.Error(nil)
} else {