Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
galenliu committed Aug 3, 2022
1 parent 43fd401 commit 5dc5e7a
Show file tree
Hide file tree
Showing 75 changed files with 533 additions and 343 deletions.
8 changes: 4 additions & 4 deletions app/AppMain.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import (
"github.com/galenliu/chip/config"
"github.com/galenliu/chip/credentials/dac"
"github.com/galenliu/chip/device"
"github.com/galenliu/chip/pkg/storage"
"github.com/galenliu/chip/server"
"github.com/galenliu/chip/server/chip"
"github.com/galenliu/chip/storage"
"github.com/galenliu/chip/server/core"
log "github.com/sirupsen/logrus"
"os"
"os/signal"
Expand Down Expand Up @@ -82,7 +82,7 @@ func Init(options *config.DeviceOptions) error {

func MainLoop(options *config.DeviceOptions) error {

serverInitParams := chip.NewServerInitParams()
serverInitParams := core.NewServerInitParams()
_, err := serverInitParams.Init(options)
if err != nil {
log.Infof(err.Error())
Expand All @@ -94,7 +94,7 @@ func MainLoop(options *config.DeviceOptions) error {
log.Infof(err.Error())
return err
}
chipServer := chip.NewCHIPServer()
chipServer := core.NewCHIPServer()
chipServer, err = chipServer.Init(serverInitParams)
if err != nil {
return err
Expand Down
2 changes: 1 addition & 1 deletion config/config_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package config

import (
"github.com/galenliu/chip/pkg"
"github.com/galenliu/chip/storage"
"github.com/galenliu/chip/pkg/storage"
log "github.com/sirupsen/logrus"
"sync"
)
Expand Down
2 changes: 1 addition & 1 deletion credentials/fabric_table.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"github.com/galenliu/chip/crypto"
storage2 "github.com/galenliu/chip/crypto/persistent_storage"
"github.com/galenliu/chip/lib"
"github.com/galenliu/chip/storage"
"github.com/galenliu/chip/pkg/storage"
"time"
)

Expand Down
2 changes: 1 addition & 1 deletion credentials/group_data_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package credentials

import (
"github.com/galenliu/chip/lib"
"github.com/galenliu/chip/storage"
"github.com/galenliu/chip/pkg/storage"
)

type GroupInfo struct {
Expand Down
2 changes: 1 addition & 1 deletion credentials/persistent_storage_op_cert_store.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package credentials

import (
"github.com/galenliu/chip/device"
"github.com/galenliu/chip/storage"
"github.com/galenliu/chip/pkg/storage"
)

type PersistentStorageOpCertStore interface {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package persistent_storage
import (
"crypto"
"github.com/galenliu/chip/device"
"github.com/galenliu/chip/storage"
"github.com/galenliu/chip/pkg/storage"
)

type PersistentStorageOperationalKeystore interface {
Expand Down
2 changes: 1 addition & 1 deletion device/device_info_provider.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package device

import (
"github.com/galenliu/chip/storage"
"github.com/galenliu/chip/pkg/storage"
"sync"
)

Expand Down
2 changes: 1 addition & 1 deletion lib/attribute_persistence.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package lib

import (
"github.com/galenliu/chip/storage"
"github.com/galenliu/chip/pkg/storage"
)

type AttributePersistenceProvider interface {
Expand Down
4 changes: 3 additions & 1 deletion lib/session_resumption_storage.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package lib

import "github.com/galenliu/chip/storage"
import (
"github.com/galenliu/chip/pkg/storage"
)

type SessionResumptionStorage interface {
Init(delegate storage.PersistentStorageDelegate) error
Expand Down
53 changes: 42 additions & 11 deletions messageing/exchange_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ import (
"github.com/galenliu/chip/transport"
"github.com/galenliu/chip/transport/message"
log "github.com/sirupsen/logrus"
"math/rand"
)

const (
kStateNotInitialized = 0
kStateInitialized = 1
)

type UnsolicitedMessageHandlerSlot struct {
Expand All @@ -19,15 +25,48 @@ func (receiver UnsolicitedMessageHandlerSlot) Matches(aProtocolId protocols.Id,
return aProtocolId == receiver.ProtocolId && aMessageType == receiver.MessageType
}

func (receiver UnsolicitedMessageHandlerSlot) Reset() {
receiver.Handler = nil
}

type ExchangeManager interface {
message.SessionMessageDelegate
transport.SessionMessageDelegate
RegisterUnsolicitedMessageHandlerForType(sigma1 uint8, s *secure_channel.CASEServer, id ...protocols.Id) error
}

// ExchangeManagerImpl ExchangeManager and
type ExchangeManagerImpl struct {
UMHandlerPool []*UnsolicitedMessageHandlerSlot
mContextPool []ExchangeContext
UMHandlerPool []*UnsolicitedMessageHandlerSlot
mContextPool []*ExchangeContext
mSessionManager transport.SessionManager
mNextExchangeId uint16
mNextKeyId uint16
mReliableMessageMgr any //TODO
mInitialized bool
}

func NewExchangeManagerImpl() *ExchangeManagerImpl {
impl := &ExchangeManagerImpl{}
impl.UMHandlerPool = make([]*UnsolicitedMessageHandlerSlot, 0)
impl.mContextPool = make([]*ExchangeContext, 0)
return impl
}

func (e *ExchangeManagerImpl) Init(sessionManager transport.SessionManager) error {
if e.mInitialized {
return pkg.ChipErrorIncorrectState
}
e.mSessionManager = sessionManager
e.mNextExchangeId = uint16(rand.Uint32())
e.mNextKeyId = 0

for _, handler := range e.UMHandlerPool {
handler.Reset()
}
sessionManager.SetMessageDelegate(e)
//e.mReliableMessageMgr.Init(sessionManager.SystemLayer())
e.mInitialized = true
return nil
}

func (e *ExchangeManagerImpl) OnMessageReceived(packetHeader *message.PacketHeader, payloadHeader *message.PayloadHeader, session transport.Session, isDuplicate uint8, data []byte) {
Expand Down Expand Up @@ -72,14 +111,6 @@ func (e *ExchangeManagerImpl) RegisterUnsolicitedMessageHandlerForType(msgType u
return nil
}

func NewExchangeManagerImpl() *ExchangeManagerImpl {
return &ExchangeManagerImpl{}
}

func (e *ExchangeManagerImpl) Init(sessions transport.SessionManager) error {
return nil
}

func (e *ExchangeManagerImpl) RegisterUMH(id protocols.Id, msgType uint8, handle message.UnsolicitedMessageHandler) error {

for _, umh := range e.UMHandlerPool {
Expand Down
52 changes: 26 additions & 26 deletions server/dnssd/advertise.go → pkg/dnssd/advertise.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package dnssd
import (
"fmt"
"github.com/galenliu/chip/credentials"
"github.com/galenliu/chip/server/dnssd/params"
"github.com/galenliu/chip/server/dnssd/responder"
params2 "github.com/galenliu/chip/pkg/dnssd/params"
responder2 "github.com/galenliu/chip/pkg/dnssd/responder"
"github.com/miekg/dns"
log "github.com/sirupsen/logrus"
"math/rand"
Expand All @@ -18,8 +18,8 @@ type Advertiser interface {
RemoveServices() error
GetCommissionableInstanceName() (string, error)
UpdateCommissionableInstanceName() error
advertiseOperational(params *params.OperationalAdvertisingParameters) error
advertiseCommission(params *params.CommissionAdvertisingParameters) error
advertiseOperational(params *params2.OperationalAdvertisingParameters) error
advertiseCommission(params *params2.CommissionAdvertisingParameters) error
FinalizeServiceUpdate() error
}

Expand Down Expand Up @@ -79,7 +79,7 @@ func (d *AdvertiseImpl) UpdateCommissionableInstanceName() error {
return nil
}

func (a *AdvertiseImpl) advertiseCommission(params *params.CommissionAdvertisingParameters) error {
func (a *AdvertiseImpl) advertiseCommission(params *params2.CommissionAdvertisingParameters) error {

_ = a.AdvertiseRecords(BroadcastAdvertiseType_RemovingAll)
allocator := func() *QueryResponderAllocator {
Expand Down Expand Up @@ -109,26 +109,26 @@ func (a *AdvertiseImpl) advertiseCommission(params *params.CommissionAdvertising
instanceName := Fqdn(name, serviceType, KCommissionProtocol, KLocalDomain)
hostName := Fqdn(mac, KLocalDomain)

if !allocator.AddResponder(responder.NewPtrResponder(serviceName, instanceName)).
if !allocator.AddResponder(responder2.NewPtrResponder(serviceName, instanceName)).
SetReportAdditional(instanceName).
SetReportInServiceListing(true).
IsValid() {
return fmt.Errorf("failed to add service PTR record mDNS responder")
}

if !allocator.AddResponder(responder.NewSrvResponder(instanceName, hostName, params.GetPort())).
if !allocator.AddResponder(responder2.NewSrvResponder(instanceName, hostName, params.GetPort())).
SetReportAdditional(hostName).
IsValid() {
return fmt.Errorf("failed to add SRV record mDNS responder")
}

if !allocator.AddResponder(responder.NewIPv6Responder(hostName)).
if !allocator.AddResponder(responder2.NewIPv6Responder(hostName)).
IsValid() {
return fmt.Errorf("failed to add IPv6 mDNS responder")
}

if params.IsIPv4Enabled() {
if !allocator.AddResponder(responder.NewIPv4Responder(hostName)).
if !allocator.AddResponder(responder2.NewIPv4Responder(hostName)).
IsValid() {
return fmt.Errorf("failed to add IPv4 mDNS responder")
}
Expand All @@ -137,7 +137,7 @@ func (a *AdvertiseImpl) advertiseCommission(params *params.CommissionAdvertising
if vid, err := params.GetVendorId(); err == nil && vid != 0 {
name := makeServiceSubtype(Subtype_VendorId, vid)
vendorServiceName := Fqdn(name, KSubtypeServiceNamePart, serviceType, KCommissionProtocol, KLocalDomain)
if !allocator.AddResponder(responder.NewPtrResponder(vendorServiceName, instanceName)).
if !allocator.AddResponder(responder2.NewPtrResponder(vendorServiceName, instanceName)).
SetReportAdditional(instanceName).
SetReportInServiceListing(true).
IsValid() {
Expand All @@ -148,7 +148,7 @@ func (a *AdvertiseImpl) advertiseCommission(params *params.CommissionAdvertising
if deviceType, err := params.GetDeviceType(); err == nil && deviceType != 0 {
name := makeServiceSubtype(Subtype_DeviceType, deviceType)
typeServiceName := Fqdn(name, KSubtypeServiceNamePart, serviceType, KCommissionProtocol, KLocalDomain)
if !allocator.AddResponder(responder.NewPtrResponder(typeServiceName, instanceName)).
if !allocator.AddResponder(responder2.NewPtrResponder(typeServiceName, instanceName)).
SetReportAdditional(instanceName).
SetReportInServiceListing(true).
IsValid() {
Expand All @@ -159,7 +159,7 @@ func (a *AdvertiseImpl) advertiseCommission(params *params.CommissionAdvertising
if params.GetCommissionAdvertiseMode() == AdvertiseMode_CommissionableNode {
if name := makeServiceSubtype(Subtype_ShortDiscriminator, params.GetShortDiscriminator()); name != "" {
shortServiceName := Fqdn(name, KSubtypeServiceNamePart, serviceType, KCommissionProtocol, KLocalDomain)
if !allocator.AddResponder(responder.NewPtrResponder(shortServiceName, instanceName)).
if !allocator.AddResponder(responder2.NewPtrResponder(shortServiceName, instanceName)).
SetReportAdditional(instanceName).
SetReportInServiceListing(true).
IsValid() {
Expand All @@ -169,7 +169,7 @@ func (a *AdvertiseImpl) advertiseCommission(params *params.CommissionAdvertising

if name := makeServiceSubtype(Subtype_LongDiscriminator, params.GetLongDiscriminator()); name != "" {
shortServiceName := Fqdn(name, KSubtypeServiceNamePart, serviceType, KCommissionProtocol, KLocalDomain)
if !allocator.AddResponder(responder.NewPtrResponder(shortServiceName, instanceName)).
if !allocator.AddResponder(responder2.NewPtrResponder(shortServiceName, instanceName)).
SetReportAdditional(instanceName).
SetReportInServiceListing(true).
IsValid() {
Expand All @@ -181,14 +181,14 @@ func (a *AdvertiseImpl) advertiseCommission(params *params.CommissionAdvertising
if params.GetCommissioningMode() == CommissioningMode_Disabled {
if name := makeServiceSubtype[int](Subtype_CommissioningMode); name != "" {
commissioningModeServiceName := Fqdn(name, KSubtypeServiceNamePart, serviceType, KCommissionProtocol, KLocalDomain)
if !allocator.AddResponder(responder.NewPtrResponder(commissioningModeServiceName, instanceName)).
if !allocator.AddResponder(responder2.NewPtrResponder(commissioningModeServiceName, instanceName)).
SetReportAdditional(instanceName).SetReportInServiceListing(true).IsValid() {
return fmt.Errorf("failed to add commissioning mode PTR record mDNS responder")
}
}
}

if !allocator.AddResponder(responder.NewTxtResponder(instanceName, a.GetCommissioningTxtEntries(params))).
if !allocator.AddResponder(responder2.NewTxtResponder(instanceName, a.GetCommissioningTxtEntries(params))).
SetReportAdditional(hostName).
IsValid() {
return fmt.Errorf("failed to add TXT record mDNS responder")
Expand All @@ -204,7 +204,7 @@ func (a *AdvertiseImpl) advertiseCommission(params *params.CommissionAdvertising
return nil
}

func (d *AdvertiseImpl) advertiseOperational(params *params.OperationalAdvertisingParameters) error {
func (d *AdvertiseImpl) advertiseOperational(params *params2.OperationalAdvertisingParameters) error {

var name = params.GetPeerId().String()

Expand All @@ -222,32 +222,32 @@ func (d *AdvertiseImpl) advertiseOperational(params *params.OperationalAdvertisi
serviceName := Fqdn(KOperationalServiceName, KOperationalProtocol, KLocalDomain)
hostName := Fqdn(name, KLocalDomain)

if !operationalAllocator.AddResponder(responder.NewPtrResponder(serviceName, instanceName)).
if !operationalAllocator.AddResponder(responder2.NewPtrResponder(serviceName, instanceName)).
SetReportAdditional(instanceName).
SetReportInServiceListing(true).
IsValid() {
return fmt.Errorf("failed to add service PTR record mDNS responder")
}

if !operationalAllocator.AddResponder(responder.NewSrvResponder(instanceName, hostName, params.GetPort())).
if !operationalAllocator.AddResponder(responder2.NewSrvResponder(instanceName, hostName, params.GetPort())).
SetReportAdditional(hostName).
IsValid() {
return fmt.Errorf("failed to add SRV record mDNS responder")
}

if !operationalAllocator.AddResponder(responder.NewTxtResponder(instanceName, d.GetOperationalTxtEntries(params))).
if !operationalAllocator.AddResponder(responder2.NewTxtResponder(instanceName, d.GetOperationalTxtEntries(params))).
SetReportAdditional(hostName).
IsValid() {
return fmt.Errorf("failed to add TXT record mDNS responder")
}

if !operationalAllocator.AddResponder(responder.NewIPv6Responder(hostName)).
if !operationalAllocator.AddResponder(responder2.NewIPv6Responder(hostName)).
IsValid() {
return fmt.Errorf("failed to add IPv6 mDNS responder")
}

if params.IsIPv4Enabled() {
if !operationalAllocator.AddResponder(responder.NewIPv4Responder(hostName)).
if !operationalAllocator.AddResponder(responder2.NewIPv4Responder(hostName)).
IsValid() {
return fmt.Errorf("failed to add IPv4 mDNS responder")

Expand All @@ -257,7 +257,7 @@ func (d *AdvertiseImpl) advertiseOperational(params *params.OperationalAdvertisi
id := params.GetPeerId().GetCompressedFabricId()
fabricId := makeServiceSubtype(DiscoveryFilterType_kCompressedFabricId, id)
compressedFabricIdSubtype := Fqdn(fabricId, KSubtypeServiceNamePart, KOperationalServiceName, KOperationalProtocol, KLocalDomain)
if !operationalAllocator.AddResponder(responder.NewPtrResponder(compressedFabricIdSubtype, instanceName)).
if !operationalAllocator.AddResponder(responder2.NewPtrResponder(compressedFabricIdSubtype, instanceName)).
SetReportAdditional(instanceName).
IsValid() {
log.Infof("Failed to add device type PTR record mDNS responder")
Expand All @@ -277,7 +277,7 @@ func (d *AdvertiseImpl) RemoveServices() error {
return nil
}

func (d *AdvertiseImpl) GetCommissioningTxtEntries(params *params.CommissionAdvertisingParameters) []string {
func (d *AdvertiseImpl) GetCommissioningTxtEntries(params *params2.CommissionAdvertisingParameters) []string {

var txtFields []string

Expand Down Expand Up @@ -325,15 +325,15 @@ func (d *AdvertiseImpl) GetCommissioningTxtEntries(params *params.CommissionAdve
return txtFields
}

func (d *AdvertiseImpl) GetOperationalTxtEntries(params *params.OperationalAdvertisingParameters) []string {
func (d *AdvertiseImpl) GetOperationalTxtEntries(params *params2.OperationalAdvertisingParameters) []string {
txtFields := d.AddCommonTxtEntries(params.BaseAdvertisingParams)
if len(txtFields) == 0 || txtFields == nil {
return append(txtFields, d.mEmptyTextEntries)
}
return txtFields
}

func (d *AdvertiseImpl) AddCommonTxtEntries(params params.BaseAdvertisingParams) []string {
func (d *AdvertiseImpl) AddCommonTxtEntries(params params2.BaseAdvertisingParams) []string {

var list []string
if mrp := params.GetLocalMRPConfig(); mrp != nil {
Expand Down Expand Up @@ -382,7 +382,7 @@ func (d *AdvertiseImpl) FindEmptyOperationalAllocator() *QueryResponderAllocator

func (d *AdvertiseImpl) AdvertiseRecords(typ int) error {

var responseConfiguration = &responder.ResponseConfiguration{}
var responseConfiguration = &responder2.ResponseConfiguration{}
if typ == BroadcastAdvertiseType_RemovingAll {
responseConfiguration.SetTtlSecondsOverride(0)
}
Expand Down
File renamed without changes.
Loading

0 comments on commit 5dc5e7a

Please sign in to comment.