@@ -105,6 +105,7 @@ TimeSpan ParseLatency(string latency)
105105
106106 public async Task < MultiAddress > AddAddressFilterAsync ( MultiAddress address , bool persist = false , CancellationToken cancel = default ( CancellationToken ) )
107107 {
108+ // go-ipfs always does persist, https://github.com/ipfs/go-ipfs/issues/4605
108109 var json = await ipfs . DoCommandAsync ( "swarm/filters/add" , cancel , address . ToString ( ) ) ;
109110 var addrs = ( JArray ) ( JObject . Parse ( json ) [ "Strings" ] ) ;
110111 var a = addrs . FirstOrDefault ( ) ;
@@ -115,15 +116,25 @@ TimeSpan ParseLatency(string latency)
115116
116117 public async Task < IEnumerable < MultiAddress > > ListAddressFiltersAsync ( bool persist = false , CancellationToken cancel = default ( CancellationToken ) )
117118 {
118- var json = await ipfs . DoCommandAsync ( "swarm/filters" , cancel ) ;
119- var addrs = ( JObject . Parse ( json ) [ "Strings" ] ) as JArray ;
119+ JArray addrs ;
120+ if ( persist )
121+ {
122+ addrs = await ipfs . Config . GetAsync ( "Swarm.AddrFilters" , cancel ) as JArray ;
123+ }
124+ else
125+ {
126+ var json = await ipfs . DoCommandAsync ( "swarm/filters" , cancel ) ;
127+ addrs = ( JObject . Parse ( json ) [ "Strings" ] ) as JArray ;
128+ }
129+
120130 if ( addrs == null )
121131 return new MultiAddress [ 0 ] ;
122132 return addrs . Select ( a => new MultiAddress ( ( string ) a ) ) ;
123133 }
124134
125135 public async Task < MultiAddress > RemoveAddressFilterAsync ( MultiAddress address , bool persist = false , CancellationToken cancel = default ( CancellationToken ) )
126136 {
137+ // go-ipfs always does persist, https://github.com/ipfs/go-ipfs/issues/4605
127138 var json = await ipfs . DoCommandAsync ( "swarm/filters/rm" , cancel , address . ToString ( ) ) ;
128139 var addrs = ( JArray ) ( JObject . Parse ( json ) [ "Strings" ] ) ;
129140 var a = addrs . FirstOrDefault ( ) ;
0 commit comments