| 35 | } |
| 36 | |
| 37 | func (this *Table) GetChain(name string) (*Chain, error) { |
| 38 | rawChains, err := this.conn.Raw().ListChains() |
| 39 | if err != nil { |
| 40 | return nil, err |
| 41 | } |
| 42 | for _, rawChain := range rawChains { |
| 43 | // must compare table name |
| 44 | if rawChain.Name == name && rawChain.Table.Name == this.rawTable.Name { |
| 45 | return NewChain(this.conn, this.rawTable, rawChain), nil |
| 46 | } |
| 47 | } |
| 48 | return nil, ErrChainNotFound |
| 49 | } |
| 50 | |
| 51 | func (this *Table) AddChain(name string, chainPolicy *ChainPolicy) (*Chain, error) { |
| 52 | if len(name) > MaxChainNameLength { |