@@ -12,7 +12,7 @@ import {AuthorizationRequest} from "./proto/appguard_commands/AuthorizationReque
1212import { ClientMessage } from "./proto/appguard_commands/ClientMessage" ;
1313import { ServerMessage__Output } from "./proto/appguard_commands/ServerMessage" ;
1414import { FirewallDefaults , FirewallDefaults__Output } from "./proto/appguard_commands/FirewallDefaults" ;
15- import { Cache , CacheKey } from "./cache" ;
15+ import { CacheKey } from "./cache" ;
1616import { FirewallPolicy } from "./proto/appguard_commands/FirewallPolicy" ;
1717
1818const opts = { includeDirs : [
@@ -189,8 +189,8 @@ export class AppGuardService {
189189 console . log ( "Received firewall defaults from server:" , firewallDefaults ) ;
190190 fs . writeFileSync ( FIREWALL_DEFAULTS_FILE , JSON . stringify ( firewallDefaults ) , { flag : 'w' } ) ;
191191 // empty and update cache
192- let cache = new Cache ( firewallDefaults . cache ) ;
193- fs . writeFileSync ( CACHE_FILE , JSON . stringify ( cache ) , { flag : 'w' } ) ;
192+ let cache : Map < string , FirewallPolicy > = new Map ( [ ] ) ;
193+ writeCache ( cache ) ;
194194 }
195195 if ( server_msg . deviceDeauthorized ) {
196196 // delete saved app secret and app id
@@ -213,28 +213,47 @@ export class AppGuardService {
213213 }
214214
215215 getFromCache ( key : CacheKey ) : FirewallPolicy | undefined {
216- let cache = readCache ( ) ;
217- return cache . get ( key ) ;
216+ let defaults = readFirewallDefaults ( ) ;
217+ if ( defaults . cache ) {
218+ let cache = readCache ( ) ;
219+ return cache . get ( JSON . stringify ( key ) ) ;
220+ }
218221 }
219222
220223 insertToCache ( key : CacheKey , policy : FirewallPolicy ) {
221- let cache = readCache ( ) ;
222- cache . insert ( key , policy ) ;
223- fs . writeFileSync ( CACHE_FILE , JSON . stringify ( cache ) , { flag : 'w' } ) ;
224+ let defaults = readFirewallDefaults ( ) ;
225+ if ( defaults . cache ) {
226+ let cache = readCache ( ) ;
227+ cache . set ( JSON . stringify ( key ) , policy ) ;
228+ writeCache ( cache ) ;
229+ }
224230 }
225231}
226232
227233function readFirewallDefaults ( ) : FirewallDefaults {
228234 let text = fs . readFileSync ( FIREWALL_DEFAULTS_FILE , 'utf8' ) ;
229- return JSON . parse ( text ) ;
235+ if ( text . trim ( ) === '' ) {
236+ return {
237+ policy : FirewallPolicy . ALLOW ,
238+ timeout : 1000 ,
239+ cache : true ,
240+ } ;
241+ } else {
242+ return JSON . parse ( text ) ;
243+ }
230244}
231245
232- function readCache ( ) : Cache {
246+ function readCache ( ) : Map < string , FirewallPolicy > {
233247 let text = fs . readFileSync ( CACHE_FILE , 'utf8' ) ;
234248 if ( text . trim ( ) === '' ) {
235- let firewallDefaults = readFirewallDefaults ( ) ;
236- return new Cache ( firewallDefaults . cache ) ;
249+ return new Map ( [ ] ) ;
237250 } else {
238- return JSON . parse ( text ) ;
251+ let map : Map < string , FirewallPolicy > = new Map ( JSON . parse ( text ) )
252+ return map ;
239253 }
240254}
255+
256+ function writeCache ( cache : Map < string , FirewallPolicy > ) {
257+ let mySerialMap = JSON . stringify ( Array . from ( cache . entries ( ) ) ) ;
258+ fs . writeFileSync ( CACHE_FILE , mySerialMap , { flag : 'w' } ) ;
259+ }
0 commit comments