1 // List of available ciphers
2 var vpnciphers = ['AES-128-CBC','AES-128-CFB','AES-128-OFB','AES-192-CBC','AES-192-CFB','AES-192-OFB','AES-256-CBC','AES-256-CFB','AES-256-OFB','BF-CBC','BF-CFB','BF-OFB','CAST5-CBC','CAST5-CFB','CAST5-OFB','DES-CBC','DES-CFB','DES-EDE3-CBC','DES-EDE3-CFB','DES-EDE3-OFB','DES-EDE-CBC','DES-EDE-CFB','DES-EDE-OFB','DES-OFB','DESX-CBC','IDEA-CBC','IDEA-CFB','IDEA-OFB','RC2-40-CBC','RC2-64-CBC','RC2-CBC','RC2-CFB','RC2-OFB','RC5-CBC','RC5-CFB','RC5-OFB'];
4 // Handles parsing status files and displaying the information
5 function StatusUpdater(clients, routes, stats, time, cDiv, ncDiv, eDiv)
7 this.init(clients, routes, stats, time, cDiv, ncDiv, eDiv);
10 StatusUpdater.prototype =
12 init: function(clients, routes, stats, time, cDiv, ncDiv, eDiv)
14 this.clientTable = clients? new TomatoGrid(clients,'sort',0,null): null;
15 this.routeTable = routes? new TomatoGrid(routes,'sort',0,null): null;
16 this.statTable = stats? new TomatoGrid(stats,'sort',0,null): null;
17 this.statusTime = time? E(time): null;
18 this.content = cDiv? E(cDiv): null;
19 this.noContent = ncDiv? E(ncDiv): null;
20 this.errors = eDiv? E(eDiv): null;
22 update: function(text)
24 if(this.errors) this.errors.innerHTML = '';
25 if(this.noContent) this.noContent.style.display = (text==''?'':'none');
26 if(this.content) this.content.style.display = (text==''?'none':'');
28 if(this.clientTable) this.clientTable.tb.parentNode.style.display = 'none';
29 if(this.clientTable) this.clientTable.removeAllData();
30 if(this.routeTable) this.routeTable.tb.parentNode.style.display = 'none';
31 if(this.routeTable) this.routeTable.removeAllData();
32 if(this.statTable) this.statTable.tb.parentNode.style.display = 'none';
33 if(this.statTable) this.statTable.removeAllData();
35 if(this.statTable) this.statTable.headerSet(['Name','Value']);
37 var lines = text.split('\n');
38 var staticStats = false;
39 for (i = 0; text != '' && i < lines.length; ++i)
43 var fields = lines[i].split(',');
44 if ( fields.length == 0 ) continue;
50 if(this.statusTime) this.statusTime.innerHTML = fields[1];
56 if(this.clientTable) this.clientTable.headerSet(fields.slice(2,fields.length-1));
59 if(this.routeTable) this.routeTable.headerSet(fields.slice(2,fields.length-1));
62 if(this.errors) this.errors.innerHTML += 'Unknown header: '+lines[i]+'<br>';
67 if(this.clientTable) this.clientTable.tb.parentNode.style.display = '';
68 if(this.clientTable) this.clientTable.insertData(-1, fields.slice(1,fields.length-1))
71 if(this.routeTable) this.routeTable.tb.parentNode.style.display = '';
72 if(this.routeTable) this.routeTable.insertData(-1, fields.slice(1,fields.length-1))
75 if(this.statTable) this.statTable.tb.parentNode.style.display = '';
76 if(this.statTable) this.statTable.insertData(-1, fields.slice(1));
78 case "OpenVPN STATISTICS":
83 if(this.statusTime) this.statusTime.innerHTML = fields[1];
91 if(this.statTable) this.statTable.tb.parentNode.style.display = '';
92 if(this.statTable) this.statTable.insertData(-1, fields);
94 else if(this.errors) this.errors.innerHTML += 'Unknown: '+lines[i]+'<br>';