Add AES cipher to GUI
[tomato.git] / release / src / router / www / vpn.js
blob19b9d9ef8a3d2e861796b469a7cd9785f41427d0
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);
8         return this;
10 StatusUpdater.prototype =
12         init: function(clients, routes, stats, time, cDiv, ncDiv, eDiv)
13         {
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;
21         },
22         update: function(text)
23         {
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)
40                 {
41                         var done = false;
43                         var fields = lines[i].split(',');
44                         if ( fields.length == 0 ) continue;
45                         switch ( fields[0] )
46                         {
47                         case "TITLE":
48                                 break;
49                         case "TIME":
50                                 if(this.statusTime) this.statusTime.innerHTML = fields[1];
51                                 break;
52                         case "HEADER":
53                                 switch ( fields[1] )
54                                 {
55                                 case "CLIENT_LIST":
56                                         if(this.clientTable) this.clientTable.headerSet(fields.slice(2,fields.length-1));
57                                         break;
58                                 case "ROUTING_TABLE":
59                                         if(this.routeTable) this.routeTable.headerSet(fields.slice(2,fields.length-1));
60                                         break;
61                                 default:
62                                         if(this.errors) this.errors.innerHTML += 'Unknown header: '+lines[i]+'<br>';
63                                         break;
64                                 }
65                                 break;
66                         case "CLIENT_LIST":
67                                 if(this.clientTable) this.clientTable.tb.parentNode.style.display = '';
68                                 if(this.clientTable) this.clientTable.insertData(-1, fields.slice(1,fields.length-1))
69                                 break;
70                         case "ROUTING_TABLE":
71                                 if(this.routeTable) this.routeTable.tb.parentNode.style.display = '';
72                                 if(this.routeTable) this.routeTable.insertData(-1, fields.slice(1,fields.length-1))
73                                 break;
74                         case "GLOBAL_STATS":
75                                 if(this.statTable) this.statTable.tb.parentNode.style.display = '';
76                                 if(this.statTable) this.statTable.insertData(-1, fields.slice(1));
77                                 break;
78                         case "OpenVPN STATISTICS":
79                                 staticStats = true;
80                                 break;
81                         case "Updated":
82                                 if(staticStats)
83                                         if(this.statusTime) this.statusTime.innerHTML = fields[1];
84                                 break;
85                         case "END":
86                                 done = true;
87                                 break;
88                         default:
89                                 if(staticStats)
90                                 {
91                                         if(this.statTable) this.statTable.tb.parentNode.style.display = '';
92                                         if(this.statTable) this.statTable.insertData(-1, fields);
93                                 }
94                                 else if(this.errors) this.errors.innerHTML += 'Unknown: '+lines[i]+'<br>';
95                                 break;
96                         }
97                         if ( done ) break;
98                 }
99         }