/[smecontribs]/rpms/smeserver-openvpn-bridge/contribs8/smeserver-openvpn-bridge-2.0-code_cleanup1.patch
ViewVC logotype

Annotation of /rpms/smeserver-openvpn-bridge/contribs8/smeserver-openvpn-bridge-2.0-code_cleanup1.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Sun Mar 3 21:14:33 2013 UTC (11 years, 9 months ago) by unnilennium
Branch: MAIN
CVS Tags: smeserver-openvpn-bridge-2_0-49_el5_sme, smeserver-openvpn-bridge-2_0-55_el5_sme, smeserver-openvpn-bridge-2_0-48_el5_sme, smeserver-openvpn-bridge-2_0-56_el5_sme, smeserver-openvpn-bridge-2_0-51_el5_sme, smeserver-openvpn-bridge-2_0-52_el5_sme, smeserver-openvpn-bridge-2_0-53_el5_sme, smeserver-openvpn-bridge-2_0-54_el5_sme, smeserver-openvpn-bridge-2_0-47_el5_sme, smeserver-openvpn-bridge-2_0-50_el5_sme, HEAD
Initial import

1 unnilennium 1.1 --- smeserver-openvpn-bridge-2.0/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/openvpnbridge.pm.code_cleanup1 2009-11-17 23:18:32.000000000 +0100
2     +++ smeserver-openvpn-bridge-2.0/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/openvpnbridge.pm 2009-11-18 08:48:37.000000000 +0100
3     @@ -24,9 +24,9 @@
4     download_file
5     print_custom_button
6     print_section_bar
7     - write_pem
8     - read_pem
9     - disconnect_client
10     + write_pem
11     + read_pem
12     + disconnect_client
13     );
14    
15     our $config_db = esmith::ConfigDB->open || die "Couldn't open ConfigDB\n";
16     @@ -47,43 +47,43 @@
17    
18     # Retourne le paramètre demandé
19     sub get_prop{
20     - my ($fm, $prop, $default) = @_;
21     - return $config_db->get_prop("openvpn-bridge", $prop) || $default;
22     + my ($fm, $prop, $default) = @_;
23     + return $config_db->get_prop("openvpn-bridge", $prop) || $default;
24     }
25    
26     # Retourne l'état du service
27     sub get_status{
28     - my ($fm) = @_;
29     - my $status = get_prop('','status','disabled');
30     - if ($status eq 'enabled'){
31     - return $fm->localise('ENABLED');
32     - }
33     - else{
34     - return $fm->localise('DISABLED');
35     - }
36     + my ($fm) = @_;
37     + my $status = get_prop('','status','disabled');
38     + if ($status eq 'enabled'){
39     + return $fm->localise('ENABLED');
40     + }
41     + else{
42     + return $fm->localise('DISABLED');
43     + }
44     }
45    
46     # Retourne le mode d'authentification
47     sub get_auth_type{
48     - my ($fm) = @_;
49     - my $auth_type = get_prop('','userAuth');
50     - if ($auth_type eq 'CrtOnly'){
51     - return $fm->localise('CRT_ONLY');
52     - }
53     - elsif ($auth_type eq 'CrtWithPass'){
54     - return $fm->localise('CRT_WITH_PASS');
55     - }
56     - else{
57     - return $fm->localise('BAD_VALUE');
58     - }
59     + my ($fm) = @_;
60     + my $auth_type = get_prop('','userAuth');
61     + if ($auth_type eq 'CrtOnly'){
62     + return $fm->localise('CRT_ONLY');
63     + }
64     + elsif ($auth_type eq 'CrtWithPass'){
65     + return $fm->localise('CRT_WITH_PASS');
66     + }
67     + else{
68     + return $fm->localise('BAD_VALUE');
69     + }
70     }
71    
72     # Retourne la plage d'adresses
73     sub get_ip_pool{
74     - my ($fm) = @_;
75     - my $start = get_prop('','startPool') || "x.x.x.x";
76     - my $end = get_prop('','endPool') || "x.x.x.x";
77     - return "$start - $end";
78     + my ($fm) = @_;
79     + my $start = get_prop('','startPool') || "x.x.x.x";
80     + my $end = get_prop('','endPool') || "x.x.x.x";
81     + return "$start - $end";
82     }
83    
84     # Inscrit les valeurs de la configuration dans la db
85     @@ -93,8 +93,8 @@
86    
87     $config_db->set_prop('openvpn-bridge', 'status', $q->param("status"));
88     $config_db->set_prop('openvpn-bridge', 'userAuth', $q->param("auth_type"));
89     - $config_db->set_prop('openvpn-bridge', 'startPool', $q->param("start_pool"));
90     - $config_db->set_prop('openvpn-bridge', 'endPool', $q->param("end_pool"));
91     + $config_db->set_prop('openvpn-bridge', 'startPool', $q->param("start_pool"));
92     + $config_db->set_prop('openvpn-bridge', 'endPool', $q->param("end_pool"));
93    
94     unless ( system ("/sbin/e-smith/signal-event", "openvpn-bridge-update") == 0 ){
95     return $fm->error('ERROR_OCCURED', 'FIRST');;
96     @@ -105,7 +105,7 @@
97    
98     # Affiche les connexions en cours
99     sub print_clients_table{
100     - my $fm = shift;
101     + my $fm = shift;
102     my $q = $fm->{cgi};
103     my $common_name = $fm->localise('COMMON_NAME');
104     my $real_ip = $fm->localise('REAL_IP');
105     @@ -113,12 +113,12 @@
106     my $sent = $fm->localise('SENT');
107     my $received = $fm->localise('RECEIVED');
108     my $connected_since = $fm->localise('CONNECTED_SINCE');
109     - my $disconnect = $fm->localise('DISCONNECT');
110     -
111     - # On récupère les paramètre et on les parse
112     - my $param = get_prop('',"management");
113     - my @param = split(/:/,$param);
114     - my $host = $param[0];
115     + my $disconnect = $fm->localise('DISCONNECT');
116     +
117     + # On récupère les paramètre et on les parse
118     + my $param = get_prop('',"management");
119     + my @param = split(/:/,$param);
120     + my $host = $param[0];
121     my $port = $param[1];
122     my $pass = $param[2];
123    
124     @@ -127,17 +127,17 @@
125     host => $host,
126     port => $port,
127     password => $pass,
128     - timeout => 3
129     + timeout => 3
130     });
131    
132     - # On se connecte ou on retourne le message d'erreur
133     - unless($vpn->connect()){
134     - print $q->Tr($q->td($fm->localise('ERROR_CONNECT_TO_MANAGER')));
135     - return "";
136     - }
137     + # On se connecte ou on retourne le message d'erreur
138     + unless($vpn->connect()){
139     + print $q->Tr($q->td($fm->localise('ERROR_CONNECT_TO_MANAGER')));
140     + return "";
141     + }
142     my $r = $vpn->status_ref();
143     -
144     - my %virtIP;
145     +
146     + my %virtIP;
147     my %realIP;
148     my %remotePort;
149     my %sentBytes;
150     @@ -148,167 +148,158 @@
151    
152     foreach( @{$r->{CLIENT_LIST}} ){
153     my $CN = $$_[0];
154     - unshift (@commonNames,$CN);
155     - $virtIP{$_} = $$_[1];
156     - my @ipPort = split (/:/,$$_[1]);
157     - $realIP{$CN} = $ipPort[0];
158     - $remotePort{$CN} = $ipPort[1];
159     - $virtIP{$CN} = $$_[2];
160     - $receivedBytes{$CN} = $$_[3]/1048576;
161     - $receivedBytes{$CN} = sprintf("%.2f", $receivedBytes{$CN});
162     - $sentBytes{$CN} = $$_[4]/1048576;
163     - $sentBytes{$CN} = sprintf("%.2f", $sentBytes{$CN});
164     - $connectedSince{$CN} = $$_[5];
165     - }
166     -
167     - # Si @commonName est vide, il n'y a aucun client connecté
168     - unless ( scalar @commonNames ){
169     - print $q->Tr($q->td($fm->localise('NO_CLIENTS_CONNECTED')));
170     - return "";
171     + unshift (@commonNames,$CN);
172     + $virtIP{$_} = $$_[1];
173     + my @ipPort = split (/:/,$$_[1]);
174     + $realIP{$CN} = $ipPort[0];
175     + $remotePort{$CN} = $ipPort[1];
176     + $virtIP{$CN} = $$_[2];
177     + $receivedBytes{$CN} = $$_[3]/1048576;
178     + $receivedBytes{$CN} = sprintf("%.2f", $receivedBytes{$CN});
179     + $sentBytes{$CN} = $$_[4]/1048576;
180     + $sentBytes{$CN} = sprintf("%.2f", $sentBytes{$CN});
181     + $connectedSince{$CN} = $$_[5];
182     + }
183     +
184     + # Si @commonName est vide, il n'y a aucun client connecté
185     + unless ( scalar @commonNames ){
186     + print $q->Tr($q->td($fm->localise('NO_CLIENTS_CONNECTED')));
187     + return "";
188     }
189    
190     - print $q->start_table({-CLASS => "sme-border"}),"\n";
191     + print $q->start_table({-CLASS => "sme-border"}),"\n";
192     print $q->Tr (
193     - esmith::cgi::genSmallCell($q, $common_name,"header"),
194     - esmith::cgi::genSmallCell($q, $real_ip,"header"),
195     - esmith::cgi::genSmallCell($q, $virtual_ip,"header"),
196     - esmith::cgi::genSmallCell($q, $sent,"header"),
197     - esmith::cgi::genSmallCell($q, $received,"header"),
198     - esmith::cgi::genSmallCell($q, $connected_since,"header"),
199     - esmith::cgi::genSmallCell($q, $disconnect,"header", 3)),"\n";
200     + esmith::cgi::genSmallCell($q, $common_name,"header"),
201     + esmith::cgi::genSmallCell($q, $real_ip,"header"),
202     + esmith::cgi::genSmallCell($q, $virtual_ip,"header"),
203     + esmith::cgi::genSmallCell($q, $sent,"header"),
204     + esmith::cgi::genSmallCell($q, $received,"header"),
205     + esmith::cgi::genSmallCell($q, $connected_since,"header"),
206     + esmith::cgi::genSmallCell($q, $disconnect,"header", 3)),"\n";
207     +
208     + foreach my $cn (@commonNames){
209     + print $q->Tr (esmith::cgi::genSmallCell($q,"$cn"),
210     + esmith::cgi::genSmallCell($q,"$realIP{$cn} ($remotePort{$cn})"),
211     + esmith::cgi::genSmallCell ($q, "$virtIP{$cn}"),
212     + esmith::cgi::genSmallCell ($q, "$sentBytes{$cn}".' MB'),
213     + esmith::cgi::genSmallCell ($q, "$receivedBytes{$cn}".' MB'),
214     + esmith::cgi::genSmallCell ($q, "$connectedSince{$cn}"),
215     + esmith::cgi::genSmallCell ($q, $q->a ({href => $q->url (-absolute => 1).
216     + $base_url."CLIENT_DISCONNECT_PAGE&common_name=".
217     + $cn}, $disconnect)));
218    
219     - foreach my $cn (@commonNames){
220     - print $q->Tr (esmith::cgi::genSmallCell($q,"$cn"),
221     - esmith::cgi::genSmallCell($q,"$realIP{$cn} ($remotePort{$cn})"),
222     - esmith::cgi::genSmallCell ($q, "$virtIP{$cn}"),
223     - esmith::cgi::genSmallCell ($q, "$sentBytes{$cn}".' MB'),
224     - esmith::cgi::genSmallCell ($q, "$receivedBytes{$cn}".' MB'),
225     - esmith::cgi::genSmallCell ($q, "$connectedSince{$cn}"),
226     - esmith::cgi::genSmallCell ($q, $q->a ({href => $q->url (-absolute => 1).
227     - $base_url."CLIENT_DISCONNECT_PAGE&common_name=".
228     - $cn}, $disconnect)));
229     -
230     - }
231     - print $q->end_table,"\n";
232     - return "";
233     + }
234     + print $q->end_table,"\n";
235     + return "";
236     }
237    
238     # Retourne la liste des règles
239     sub print_rules{
240     - my $fm = shift;
241     - my $q = $fm->{cgi};
242     -
243     - my @rules = $rules_db->get_all_by_prop(type => 'rule');
244     -
245     - unless (@rules){
246     + my $fm = shift;
247     + my $q = $fm->{cgi};
248     +
249     + my @rules = $rules_db->get_all_by_prop(type => 'rule');
250     +
251     + unless (@rules){
252     print $q->Tr($q->td($fm->localise('NO_RULE')));
253     return "";
254     }
255     -
256     - print $q->start_table({-CLASS => "sme-border"}),"\n";
257     - print $q->Tr (
258     - esmith::cgi::genSmallCell(
259     - $q, $fm->localise('COMMON_NAME'),"header"
260     - ),
261     - esmith::cgi::genSmallCell(
262     - $q, $fm->localise('IP_ADDRESS'),"header"
263     - ),
264     - esmith::cgi::genSmallCell(
265     - $q, $fm->localise('COMMENT'),"header"
266     - ),
267     - esmith::cgi::genSmallCell(
268     - $q, $fm->localise('GATEWAY_REDIRECTION'),"header"
269     - ),
270     - esmith::cgi::genSmallCell(
271     - $q, $fm->localise('ACCESS'),"header"
272     - ),
273     - esmith::cgi::genSmallCell(
274     - $q, $fm->localise('MODIFY'),"header"
275     - ),
276     +
277     + print $q->start_table({-CLASS => "sme-border"}),"\n";
278     + print $q->Tr (
279     esmith::cgi::genSmallCell(
280     - $q, $fm->localise('REMOVE'),"header"
281     - )
282     + $q, $fm->localise('COMMON_NAME'),"header"),
283     + esmith::cgi::genSmallCell(
284     + $q, $fm->localise('IP_ADDRESS'),"header"),
285     + esmith::cgi::genSmallCell(
286     + $q, $fm->localise('COMMENT'),"header"),
287     + esmith::cgi::genSmallCell(
288     + $q, $fm->localise('GATEWAY_REDIRECTION'),"header"),
289     + esmith::cgi::genSmallCell(
290     + $q, $fm->localise('ACCESS'),"header"),
291     + esmith::cgi::genSmallCell(
292     + $q, $fm->localise('MODIFY'),"header"),
293     + esmith::cgi::genSmallCell(
294     + $q, $fm->localise('REMOVE'),"header")
295     ),"\n";
296    
297    
298     - foreach (@rules){
299     + foreach (@rules){
300    
301     - my $rule = $_->key;
302     - my $rec_rule = $rules_db->get("$rule");
303     + my $rule = $_->key;
304     + my $rec_rule = $rules_db->get("$rule");
305    
306     - my $ip = $rec_rule->prop("ip") || $fm->localise('DYNAMIC');
307     - my $gw = $rec_rule->prop("redirectGW") || 'disabled';
308     - my $access = $rec_rule->prop("access") || 'allowed';
309     - $gw = ( $gw eq 'enabled')
310     - ? $fm->localise('ENABLED')
311     - : $fm->localise('DISABLED');
312     - $access = ( $access eq 'allowed')
313     - ? $fm->localise('ALLOWED')
314     - : $fm->localise('DENIED');
315     - print $q->Tr (esmith::cgi::genSmallCell($q,"$rule"),
316     - esmith::cgi::genSmallCell($q,"$ip"),
317     - esmith::cgi::genSmallCell($q,$rec_rule->prop("comment")),
318     - esmith::cgi::genSmallCell($q,$gw),
319     - esmith::cgi::genSmallCell($q,$access),
320     + my $ip = $rec_rule->prop("ip") || $fm->localise('DYNAMIC');
321     + my $gw = $rec_rule->prop("redirectGW") || 'disabled';
322     + my $access = $rec_rule->prop("access") || 'allowed';
323     + $gw = ( $gw eq 'enabled')
324     + ? $fm->localise('ENABLED')
325     + : $fm->localise('DISABLED');
326     + $access = ( $access eq 'allowed')
327     + ? $fm->localise('ALLOWED')
328     + : $fm->localise('DENIED');
329     + print $q->Tr (esmith::cgi::genSmallCell($q,"$rule"),
330     + esmith::cgi::genSmallCell($q,"$ip"),
331     + esmith::cgi::genSmallCell($q,$rec_rule->prop("comment")),
332     + esmith::cgi::genSmallCell($q,$gw),
333     + esmith::cgi::genSmallCell($q,$access),
334     esmith::cgi::genSmallCell ($q,
335     - $q->a ({href => $q->url (-absolute => 1).
336     - $base_url."CREATE_OR_MODIFY_RULE_PAGE&action=modify&common_name=".$rule}, $fm->localise('MODIFY'))),
337     + $q->a ({href => $q->url (-absolute => 1).
338     + $base_url."CREATE_OR_MODIFY_RULE_PAGE&action=modify&common_name=".$rule}, $fm->localise('MODIFY'))),
339     esmith::cgi::genSmallCell ($q,
340     - $q->a ({href => $q->url (-absolute => 1).
341     - $base_url."REMOVE_RULE_PAGE&common_name=".$rule}, $fm->localise('REMOVE'))));
342     + $q->a ({href => $q->url (-absolute => 1).
343     + $base_url."REMOVE_RULE_PAGE&common_name=".$rule}, $fm->localise('REMOVE'))));
344     }
345     - print $q->end_table,"\n";
346     - return "";
347     + print $q->end_table,"\n";
348     + return "";
349     }
350    
351     # Ajouter ou modifier une règle
352     sub create_or_modify_rule{
353     - my ($fm) = @_;
354     - my $q = $fm->{cgi};
355     - my $rule = $q->param('common_name');
356     - my $comment = $q->param('comment');
357     - my $ip = $q->param('reserved_ip');
358     - my $gw_redirection = $q->param('gw_redirection');
359     - my $access = $q->param('access');
360     - my $action = $q->param('action');
361     -
362     - if ($action eq 'create'){
363     - if ($rules_db->get($rule)){
364     - $fm->error('CN_CONFLICT','RULES_PAGE');
365     - return undef;
366     - }
367     - my $msg = $fm->validate_common_name($rule);
368     - unless ($msg eq "OK"){
369     - return $fm->error($msg,'RULES_PAGE');
370     - }
371     - else{
372     - $rules_db->new_record(
373     - $rule,
374     - {
375     - comment => $comment,
376     - ip => $ip,
377     - redirectGW => $gw_redirection,
378     - access => $access,
379     - type => 'rule',
380     - }
381     - );
382     - }
383     -
384     - $fm->success('SUCCESS','RULES_PAGE');
385     - }
386     - elsif ($action eq 'modify'){
387     - my $rec_rule = $rules_db->get($rule);
388     - $rec_rule->set_prop('comment',$comment);
389     - $rec_rule->set_prop('ip',$ip);
390     - $rec_rule->set_prop('redirectGW',$gw_redirection);
391     - $rec_rule->set_prop('access',$access);
392     - }
393     - unless ( system ("/sbin/e-smith/signal-event", "openvpn-bridge-reload-ccd") == 0 ){
394     - $fm->error('ERROR_OCCURED','RULES_PAGE');
395     - return undef;
396     + my ($fm) = @_;
397     + my $q = $fm->{cgi};
398     + my $rule = $q->param('common_name');
399     + my $comment = $q->param('comment');
400     + my $ip = $q->param('reserved_ip');
401     + my $gw_redirection = $q->param('gw_redirection');
402     + my $access = $q->param('access');
403     + my $action = $q->param('action');
404     +
405     + if ($action eq 'create'){
406     + if ($rules_db->get($rule)){
407     + $fm->error('CN_CONFLICT','RULES_PAGE');
408     + return undef;
409     + }
410     + my $msg = $fm->validate_common_name($rule);
411     + unless ($msg eq "OK"){
412     + return $fm->error($msg,'RULES_PAGE');
413     + }
414     + else{
415     + $rules_db->new_record(
416     + $rule,{
417     + comment => $comment,
418     + ip => $ip,
419     + redirectGW => $gw_redirection,
420     + access => $access,
421     + type => 'rule',
422     + }
423     + );
424     + }
425     +
426     + $fm->success('SUCCESS','RULES_PAGE');
427     }
428     - $fm->success('SUCCESS','RULES_PAGE');
429     -
430     + elsif ($action eq 'modify'){
431     + my $rec_rule = $rules_db->get($rule);
432     + $rec_rule->set_prop('comment',$comment);
433     + $rec_rule->set_prop('ip',$ip);
434     + $rec_rule->set_prop('redirectGW',$gw_redirection);
435     + $rec_rule->set_prop('access',$access);
436     + }
437     + unless ( system ("/sbin/e-smith/signal-event", "openvpn-bridge-reload-ccd") == 0 ){
438     + $fm->error('ERROR_OCCURED','RULES_PAGE');
439     + return undef;
440     + }
441     + $fm->success('SUCCESS','RULES_PAGE');
442     }
443    
444     # Afficher le champ Nom Commun
445     @@ -317,9 +308,9 @@
446     my $q = $fm->{cgi};
447     my $rule = $fm->{cgi}->param('common_name') || '';
448     my $action = $fm->{cgi}->param('action') || '';
449     - print qq(<tr><td colspan="2">) . $fm->localise('DESC_COMMON_NAME').qq(</td></tr>);
450     + print qq(<tr><td colspan="2">) . $fm->localise('DESC_COMMON_NAME').qq(</td></tr>);
451     print qq(<tr><td class="sme-noborders-label">) .
452     - $fm->localise('COMMON_NAME') . qq(</td>\n);
453     + $fm->localise('COMMON_NAME') . qq(</td>\n);
454     if ($action eq 'modify' and $rule) {
455     print qq(
456     <td class="sme-noborders-content">$rule
457     @@ -339,7 +330,8 @@
458     $q->param(-name=>'access',-value=>
459     $rec_rule->prop('access'));
460     }
461     - } else {
462     + }
463     + else {
464     print qq(
465     <td><input type="text" name="common_name" value="$rule">
466     <input type="hidden" name="action" value="create">
467     @@ -349,35 +341,34 @@
468    
469     print qq(</tr>\n);
470     return undef;
471     -
472     }
473    
474    
475     sub print_rule_to_remove{
476     - my ($fm) = @_;
477     - my $q = $fm->{cgi};
478     - my $rule = $q->param('common_name');
479     - my $rec_rule = $rules_db->get($rule);
480     - my $comment = $rec_rule->prop('comment');
481     -
482     - print $q->Tr(
483     - $q->td(
484     - { -class => 'sme-noborders-label' },
485     - $fm->localise('COMMON_NAME')
486     - ),
487     - $q->td( { -class => 'sme-noborders-content' }, $rule )
488     - ),
489     - "\n";
490     + my ($fm) = @_;
491     + my $q = $fm->{cgi};
492     + my $rule = $q->param('common_name');
493     + my $rec_rule = $rules_db->get($rule);
494     + my $comment = $rec_rule->prop('comment');
495     +
496     print $q->Tr(
497     - $q->td(
498     - { -class => 'sme-noborders-label' },
499     - $fm->localise('COMMENT')
500     - ),
501     - $q->td( { -class => 'sme-noborders-content' }, $comment )
502     - ),
503     - "\n";
504     -
505     - print $q->table(
506     + $q->td(
507     + { -class => 'sme-noborders-label' },
508     + $fm->localise('COMMON_NAME')
509     + ),
510     + $q->td( { -class => 'sme-noborders-content' }, $rule )
511     + ),
512     + "\n";
513     + print $q->Tr(
514     + $q->td(
515     + { -class => 'sme-noborders-label' },
516     + $fm->localise('COMMENT')
517     + ),
518     + $q->td( { -class => 'sme-noborders-content' }, $comment )
519     + ),
520     + "\n";
521     +
522     + print $q->table(
523     { -width => '100%' },
524     $q->Tr(
525     $q->th(
526     @@ -404,37 +395,37 @@
527     }
528    
529     sub print_client_to_disconnect{
530     - my ($fm) = @_;
531     - my $q = $fm->{cgi};
532     - my $cn = $q->param('common_name');
533     -
534     - print $q->Tr(
535     - $q->td(
536     - { -class => 'sme-noborders-label' },
537     - $fm->localise('COMMON_NAME')
538     - ),
539     - $q->td( { -class => 'sme-noborders-content' }, $cn )
540     - ),
541     - "\n";
542     -
543     - print $q->table(
544     - { -width => '100%' },
545     - $q->Tr(
546     - $q->th(
547     - { -class => 'sme-layout' },
548     - $q->submit(
549     - -name => 'cancel',
550     - -value => $fm->localise('CANCEL')
551     - ),
552     - ' ',
553     - $q->submit(
554     - -name => 'disconnect',
555     - -value => $fm->localise('DISCONNECT')
556     - )
557     - )
558     - )
559     - ),
560     - "\n";
561     + my ($fm) = @_;
562     + my $q = $fm->{cgi};
563     + my $cn = $q->param('common_name');
564     +
565     + print $q->Tr(
566     + $q->td(
567     + { -class => 'sme-noborders-label' },
568     + $fm->localise('COMMON_NAME')
569     + ),
570     + $q->td( { -class => 'sme-noborders-content' }, $cn )
571     + ),
572     + "\n";
573     +
574     + print $q->table(
575     + { -width => '100%' },
576     + $q->Tr(
577     + $q->th(
578     + { -class => 'sme-layout' },
579     + $q->submit(
580     + -name => 'cancel',
581     + -value => $fm->localise('CANCEL')
582     + ),
583     + ' ',
584     + $q->submit(
585     + -name => 'disconnect',
586     + -value => $fm->localise('DISCONNECT')
587     + )
588     + )
589     + )
590     + ),
591     + "\n";
592    
593     # Clear these values to prevent collisions when the page reloads.
594     $q->delete("cancel");
595     @@ -444,301 +435,297 @@
596     }
597    
598     sub disconnect_client{
599     - my ($fm) = @_;
600     - my $q = $fm->{cgi};
601     - my $cn = $q->param('common_name');
602     - # On récupère les paramètre et on les parse
603     - my $param = get_prop('',"management");
604     - my @param = split(/:/,$param);
605     - my $host = $param[0];
606     + my ($fm) = @_;
607     + my $q = $fm->{cgi};
608     + my $cn = $q->param('common_name');
609     + # On récupère les paramètre et on les parse
610     + my $param = get_prop('',"management");
611     + my @param = split(/:/,$param);
612     + my $host = $param[0];
613     my $port = $param[1];
614     my $pass = $param[2];
615     - my $vpn = Net::OpenVPN::Manage->new({
616     + my $vpn = Net::OpenVPN::Manage->new({
617     host => $host,
618     port => $port,
619     password => $pass,
620     - timeout => 3
621     - });
622     - unless($q->param('cancel')){
623     - unless($vpn->connect()){
624     - $fm->error('ERROR_CONNECT_TO_MANAGER','SHOW_CLIENTS_PAGE');
625     - return undef;
626     - }
627     -
628     - unless($vpn->kill($cn)){
629     - $fm->error('ERROR_CONNECT_TO_MANAGER','SHOW_CLIENTS_PAGE');
630     - return undef;
631     - }
632     - $fm->success('CLIENT_DISCONNECTED','SHOW_CLIENTS_PAGE');
633     - return undef;
634     - }
635     - $fm->error('CANCELED','SHOW_CLIENTS_PAGE');
636     - return undef;
637     + timeout => 3
638     + });
639     + unless($q->param('cancel')){
640     + unless($vpn->connect()){
641     + $fm->error('ERROR_CONNECT_TO_MANAGER','SHOW_CLIENTS_PAGE');
642     + return undef;
643     + }
644     + unless($vpn->kill($cn)){
645     + $fm->error('ERROR_CONNECT_TO_MANAGER','SHOW_CLIENTS_PAGE');
646     + return undef;
647     + }
648     + $fm->success('CLIENT_DISCONNECTED','SHOW_CLIENTS_PAGE');
649     + return undef;
650     + }
651     + $fm->error('CANCELED','SHOW_CLIENTS_PAGE');
652     + return undef;
653     }
654    
655     sub print_crt_not_ready_warning{
656     - my ($fm) = @_;
657     + my ($fm) = @_;
658    
659     - # First, check the service "bridge" is running
660     - my $bridge = $config_db->get_prop('bridge', 'status') || 'disabled';
661     + # First, check the service "bridge" is running
662     + my $bridge = $config_db->get_prop('bridge', 'status') || 'disabled';
663    
664     - unless ($bridge eq 'enabled'){
665     - return $fm->localise('BRIDGE_NOT_ENABLED');
666     - }
667     -
668     - # If any of the required files is missing or empty
669     - # Warn the user
670     - if (
671     - (( -z "$pubdir/cacert.pem" ) || ( ! -e "$pubdir/cacert.pem" )) ||
672     - (( -z "$pubdir/cert.pem") || ( ! -e "$pubdir/cert.pem" )) ||
673     - (( -z "$privdir/key.pem") || ( ! -e "$privdir/key.pem" )) ||
674     - (( -z "$pubdir/cacrl.pem") || ( ! -e "$pubdir/cacrl.pem" )) ||
675     - (( -z "$pubdir/dh.pem") || ( ! -e "$pubdir/dh.pem" ))
676     - ){
677     -
678     - return $fm->localise('CRT_CONFIG_ERROR');
679     - }
680     - return $fm->localise('CRT_CONFIG_OK');
681     + unless ($bridge eq 'enabled'){
682     + return $fm->localise('BRIDGE_NOT_ENABLED');
683     + }
684     +
685     + # If any of the required files is missing or empty
686     + # Warn the user
687     + if (
688     + (( -z "$pubdir/cacert.pem" ) || ( ! -e "$pubdir/cacert.pem" )) ||
689     + (( -z "$pubdir/cert.pem") || ( ! -e "$pubdir/cert.pem" )) ||
690     + (( -z "$privdir/key.pem") || ( ! -e "$privdir/key.pem" )) ||
691     + (( -z "$pubdir/cacrl.pem") || ( ! -e "$pubdir/cacrl.pem" )) ||
692     + (( -z "$pubdir/dh.pem") || ( ! -e "$pubdir/dh.pem" ))
693     + ){
694     +
695     + return $fm->localise('CRT_CONFIG_ERROR');
696     + }
697     + return $fm->localise('CRT_CONFIG_OK');
698     }
699    
700     sub print_client_config{
701     - my ($fm) = @_;
702     - my $q = $fm->{cgi};
703     - my $proto = get_prop('','proto','udp');
704     - $proto = 'tcp-client' if ($proto eq 'tcp');
705     - my $port = ($proto eq 'udp' ? (get_prop('','UDPPort','1194')):(get_prop('','TCPPort','1194')));
706     - my $mtutest = get_prop('','mtuTest','enabled');
707     - my $fragment = get_prop('','fragment','');
708     - my $tunmtu = get_prop('','tunMtu','');
709     - my $cipher = get_prop('','cipher','');
710     - if ($proto eq 'tcp'){
711     - $mtutest = 'disabled';
712     - $fragment = '';
713     - }
714     + my ($fm) = @_;
715     + my $q = $fm->{cgi};
716     + my $proto = get_prop('','proto','udp');
717     + $proto = 'tcp-client' if ($proto eq 'tcp');
718     + my $port = ($proto eq 'udp' ? (get_prop('','UDPPort','1194')):(get_prop('','TCPPort','1194')));
719     + my $mtutest = get_prop('','mtuTest','enabled');
720     + my $fragment = get_prop('','fragment','');
721     + my $tunmtu = get_prop('','tunMtu','');
722     + my $cipher = get_prop('','cipher','');
723     + if ($proto eq 'tcp'){
724     + $mtutest = 'disabled';
725     + $fragment = '';
726     + }
727     my $fic = '';
728    
729     - $fic .= "rport $port\n";
730     - $fic .= "proto $proto\n";
731     - $fic .= "dev tap\n";
732     - $fic .= "nobind\n";
733     - $fic .= "remote ".$config_db->get('SystemName')->value.".".$config_db->get('DomainName')->value."\n\n";
734     - $fic .= "tls-client\n";
735     - $fic .= "tls-auth takey.pem 1\n"
736     - if (( -e "$privdir/takey.pem")&&( !-z "$privdir/takey.pem"));
737     - $fic .= "ns-cert-type server\n\n";
738     - $fic .= (get_prop('','userAuth','CrtWithPass') eq 'CrtWithPass' ? "auth-user-pass\n\n" : "\n");
739     - $fic .= "# Replace user.p12 with the certificate\n# bundle in PKCS12 format\n";
740     - $fic .= "pkcs12 user.p12\n\n";
741     - $fic .= "# You can replace the pkcs12\n# directive with the old ones\n";
742     - $fic .= "#ca cacert.pem\n#cert user.pem\n#key user-key.pem\n\n";
743     - if ($mtutest eq 'enabled'){
744     - $fic .= "mtu-test\n";
745     - }
746     - elsif (($mtutest eq 'disabled')){
747     - if ($tunmtu ne ''){
748     - $fic .= "tun-mtu $tunmtu\n";
749     - }
750     - if (($proto eq 'udp') && ($fragment ne '')){
751     - $fic .= "fragment $fragment\nmssfix\n";
752     - }
753     - }
754     - $fic .= (get_prop('','compLzo','enabled') eq 'enabled' ? "comp-lzo\n" : "");
755     -
756     - $fic .= "cipher $cipher\n" if (($cipher ne '') && ($cipher ne 'auto'));
757     -
758     - $fic .= "pull\n";
759     -
760     - print(esmith::cgi::genTextRow($q, $q->textarea (-name => "config_file",
761     - -override => 1,
762     - -default => $fic,
763     - -rows => 30,
764     - -columns => 60)));
765     + $fic .= "rport $port\n";
766     + $fic .= "proto $proto\n";
767     + $fic .= "dev tap\n";
768     + $fic .= "nobind\n";
769     + $fic .= "remote ".$config_db->get('SystemName')->value.".".$config_db->get('DomainName')->value."\n\n";
770     + $fic .= "tls-client\n";
771     + $fic .= "tls-auth takey.pem 1\n"
772     + if (( -e "$privdir/takey.pem")&&( !-z "$privdir/takey.pem"));
773     + $fic .= "ns-cert-type server\n\n";
774     + $fic .= (get_prop('','userAuth','CrtWithPass') eq 'CrtWithPass' ? "auth-user-pass\n\n" : "\n");
775     + $fic .= "# Replace user.p12 with the certificate\n# bundle in PKCS12 format\n";
776     + $fic .= "pkcs12 user.p12\n\n";
777     + $fic .= "# You can replace the pkcs12\n# directive with the old ones\n";
778     + $fic .= "#ca cacert.pem\n#cert user.pem\n#key user-key.pem\n\n";
779     + if ($mtutest eq 'enabled'){
780     + $fic .= "mtu-test\n";
781     + }
782     + elsif (($mtutest eq 'disabled')){
783     + if ($tunmtu ne ''){
784     + $fic .= "tun-mtu $tunmtu\n";
785     + }
786     + if (($proto eq 'udp') && ($fragment ne '')){
787     + $fic .= "fragment $fragment\nmssfix\n";
788     + }
789     + }
790     + $fic .= (get_prop('','compLzo','enabled') eq 'enabled' ? "comp-lzo\n" : "");
791     + $fic .= "cipher $cipher\n" if (($cipher ne '') && ($cipher ne 'auto'));
792     + $fic .= "pull\n";
793     +
794     + print(esmith::cgi::genTextRow($q,
795     + $q->textarea (
796     + -name => "config_file",
797     + -override => 1,
798     + -default => $fic,
799     + -rows => 30,
800     + -columns => 60)
801     + )
802     + );
803     return "";
804     }
805    
806    
807     sub remove_rule{
808     - my ($fm) = @_;
809     - my $q = $fm->{cgi};
810     -
811     - my $rule = $q->param('common_name');
812     -
813     - unless($q->param("cancel")){
814     - unless ($rules_db->get($rule)->delete()){
815     - $fm->error('ERROR_OCCURED','RULES_PAGE');
816     - return undef;
817     - }
818     - unless (system ("/sbin/e-smith/signal-event", "openvpn-bridge-reload-ccd") == 0 ){
819     - $fm->error('ERROR_OCCURED','RULES_PAGE');
820     - return undef;
821     - }
822     - $fm->success('SUCCESS','RULES_PAGE');
823     - return undef;
824     + my ($fm) = @_;
825     + my $q = $fm->{cgi};
826     + my $rule = $q->param('common_name');
827     + unless($q->param("cancel")){
828     + unless ($rules_db->get($rule)->delete()){
829     + $fm->error('ERROR_OCCURED','RULES_PAGE');
830     + return undef;
831     + }
832     + unless (system ("/sbin/e-smith/signal-event", "openvpn-bridge-reload-ccd") == 0 ){
833     + $fm->error('ERROR_OCCURED','RULES_PAGE');
834     + return undef;
835     + }
836     + $fm->success('SUCCESS','RULES_PAGE');
837     + return undef;
838     }
839     - $fm->error('CANCELED','RULES_PAGE');
840     - return undef;
841     + $fm->error('CANCELED','RULES_PAGE');
842     + return undef;
843     }
844    
845     sub print_custom_button{
846     - my ($fm,$desc,$url) = @_;
847     - my $q = $fm->{cgi};
848     - $url="openvpnbridge?page=0&page_stack=&Next=Next&wherenext=".$url;
849     -
850     - print " <tr>\n <td colspan='2'>\n";
851     + my ($fm,$desc,$url) = @_;
852     + my $q = $fm->{cgi};
853     + $url="openvpnbridge?page=0&page_stack=&Next=Next&wherenext=".$url;
854     +
855     + print " <tr>\n <td colspan='2'>\n";
856     print $q->p($q->a({href => $url, -class => "button-like"},
857     - $fm->localise($desc)));
858     + $fm->localise($desc)));
859     print qq(</tr>\n);
860     return undef;
861     }
862    
863     sub print_section_bar{
864     - my ($fm) = @_;
865     - print " <tr>\n <td colspan='2'>\n";
866     - print "<hr class=\"sectionbar\"/>\n";
867     - return undef;
868     + my ($fm) = @_;
869     + print " <tr>\n <td colspan='2'>\n";
870     + print "<hr class=\"sectionbar\"/>\n";
871     + return undef;
872     }
873    
874     sub read_pem{
875     - my ($fm,$pem) = @_;
876     - my $q = $fm->{cgi};
877     - my $dir = '';
878     - my $ret;
879     - if (($pem eq 'cacert.pem') || ($pem eq 'cert.pem') || ($pem eq 'dh.pem')){
880     - $dir = $pubdir;
881     - }
882     - elsif (($pem eq 'key.pem') || ($pem eq 'takey.pem')){
883     - $dir = $privdir;
884     - }
885     -
886     - if (! open (PEM, "<$dir/$pem")){
887     - $fm->error('ERROR_OPEN_PEM','FIRST');
888     - # Tell the user something bad has happened
889     - return;
890     + my ($fm,$pem) = @_;
891     + my $q = $fm->{cgi};
892     + my $dir = '';
893     + my $ret;
894     + if (($pem eq 'cacert.pem') || ($pem eq 'cert.pem') || ($pem eq 'dh.pem')){
895     + $dir = $pubdir;
896     + }
897     + elsif (($pem eq 'key.pem') || ($pem eq 'takey.pem')){
898     + $dir = $privdir;
899     }
900    
901     - while (<PEM>){
902     - $ret .= $_;
903     - }
904     + if (! open (PEM, "<$dir/$pem")){
905     + $fm->error('ERROR_OPEN_PEM','FIRST');
906     + # Tell the user something bad has happened
907     + return;
908     + }
909     + while (<PEM>){
910     + $ret .= $_;
911     + }
912     + close PEM;
913    
914     - close PEM;
915     -
916     - return $ret;
917     + return $ret;
918     }
919    
920     sub write_pem{
921     - my ($fm) = @_;
922     - my $q = $fm->{cgi};
923     + my ($fm) = @_;
924     + my $q = $fm->{cgi};
925    
926     - my $ca = $q->param('ca_pem');
927     - my $crt = $q->param('crt_pem');
928     - my $key = $q->param('key_pem');
929     - my $dh = $q->param('dhpar_pem');
930     - my $ta = $q->param('ta_pem');
931     -
932     - $config_db->set_prop('openvpn-bridge', 'CrlUrl', $q->param('crl_url'));
933     -
934     - if (! open (CA, ">$pubdir/cacert.pem")){
935     - $fm->error('ERROR_OPEN_CA','FIRST');
936     - # Tell the user something bad has happened
937     + my $ca = $q->param('ca_pem');
938     + my $crt = $q->param('crt_pem');
939     + my $key = $q->param('key_pem');
940     + my $dh = $q->param('dhpar_pem');
941     + my $ta = $q->param('ta_pem');
942     +
943     + $config_db->set_prop('openvpn-bridge', 'CrlUrl', $q->param('crl_url'));
944     +
945     + if (! open (CA, ">$pubdir/cacert.pem")){
946     + $fm->error('ERROR_OPEN_CA','FIRST');
947     + # Tell the user something bad has happened
948     return;
949     - }
950     - print CA $ca;
951     - close CA;
952     -
953     - if (! open (CRT, ">$pubdir/cert.pem")){
954     - $fm->error('ERROR_OPEN_CRT','FIRST');
955     - # Tell the user something bad has happened
956     + }
957     + print CA $ca;
958     + close CA;
959     +
960     + if (! open (CRT, ">$pubdir/cert.pem")){
961     + $fm->error('ERROR_OPEN_CRT','FIRST');
962     + # Tell the user something bad has happened
963     return;
964     - }
965     - print CRT $crt;
966     - close CRT;
967     -
968     - if (! open (KEY, ">$privdir/key.pem")){
969     - $fm->error('ERROR_OPEN_KEY','FIRST');
970     - # Tell the user something bad has happened
971     + }
972     + print CRT $crt;
973     + close CRT;
974     +
975     + if (! open (KEY, ">$privdir/key.pem")){
976     + $fm->error('ERROR_OPEN_KEY','FIRST');
977     + # Tell the user something bad has happened
978     return;
979     - }
980     - print KEY $key;
981     - close KEY;
982     -
983     - if (! open (DH, ">$pubdir/dh.pem")){
984     - $fm->error('ERROR_OPEN_DH','FIRST');
985     - # Tell the user something bad has happened
986     + }
987     + print KEY $key;
988     + close KEY;
989     +
990     + if (! open (DH, ">$pubdir/dh.pem")){
991     + $fm->error('ERROR_OPEN_DH','FIRST');
992     + # Tell the user something bad has happened
993     return;
994     - }
995     - print DH $dh;
996     - close DH;
997     -
998     - if (! open (TA, ">$privdir/takey.pem")){
999     - $fm->error('ERROR_OPEN_TA','FIRST');
1000     - # Tell the user something bad has happened
1001     + }
1002     + print DH $dh;
1003     + close DH;
1004     +
1005     + if (! open (TA, ">$privdir/takey.pem")){
1006     + $fm->error('ERROR_OPEN_TA','FIRST');
1007     + # Tell the user something bad has happened
1008     return;
1009     - }
1010     - print TA $ta;
1011     - close TA;
1012     -
1013     - # Restrict permissions on sensitive data
1014     - esmith::util::chownFile("root", "root","$privdir");
1015     - esmith::util::chownFile("root", "root","$pubdir");
1016     - chmod 0700, "$privdir";
1017     - chmod 0755, "$pubdir";
1018     -
1019     - unless(system("/sbin/e-smith/signal-event openvpn-bridge-update") == 0){
1020     - $fm->error('ERROR_OCCURED','RULES_PAGE');
1021     - return undef;
1022     - }
1023     - $fm->success('SUCCESS','FIRST');
1024     - return undef;
1025     + }
1026     + print TA $ta;
1027     + close TA;
1028     +
1029     + # Restrict permissions on sensitive data
1030     + esmith::util::chownFile("root", "root","$privdir");
1031     + esmith::util::chownFile("root", "root","$pubdir");
1032     + chmod 0700, "$privdir";
1033     + chmod 0755, "$pubdir";
1034     +
1035     + unless(system("/sbin/e-smith/signal-event openvpn-bridge-update") == 0){
1036     + $fm->error('ERROR_OCCURED','RULES_PAGE');
1037     + return undef;
1038     + }
1039     + $fm->success('SUCCESS','FIRST');
1040     + return undef;
1041     }
1042    
1043    
1044     # Validations
1045    
1046     sub is_ip{
1047     - my ($fm,$ip) = @_;
1048     - return CGI::FormMagick::Validator::ip_number($fm, $ip);
1049     + my ($fm,$ip) = @_;
1050     + return CGI::FormMagick::Validator::ip_number($fm, $ip);
1051     }
1052    
1053     sub ip_is_in_local_net {
1054     my ($fm,$ip) = @_;
1055     -
1056     +
1057     unless(is_ip($fm, $ip) eq 'OK'){
1058     - return $fm->localise('NOT_A_VALID_IP',{ip => $ip});
1059     + return $fm->localise('NOT_A_VALID_IP',{ip => $ip});
1060     }
1061     -
1062     +
1063     my $local_ip = $config_db->get('LocalIP')->value();
1064     my $local_netmask = $config_db->get('LocalNetmask')->value;
1065     my ($local_network, $local_broadcast) =
1066     - esmith::util::computeNetworkAndBroadcast( $local_ip, $local_netmask );
1067     -
1068     + esmith::util::computeNetworkAndBroadcast( $local_ip, $local_netmask );
1069     +
1070     my ($ip_network,$ip_broadcast) =
1071     - esmith::util::computeNetworkAndBroadcast($ip, $local_netmask);
1072     -
1073     - if ($ip_network ne $local_network){
1074     + esmith::util::computeNetworkAndBroadcast($ip, $local_netmask);
1075    
1076     - return $fm->localise('NOT_IN_LOCAL_NET',{ip => $ip});
1077     + if ($ip_network ne $local_network){
1078     + return $fm->localise('NOT_IN_LOCAL_NET',{ip => $ip});
1079     }
1080     return "OK";
1081     }
1082    
1083     sub ip_is_in_local_net_or_blank {
1084     - my ($fm,$ip) = @_;
1085     -
1086     - if ($ip eq ''){
1087     - return 'OK';
1088     - }
1089     - return ip_is_in_local_net ($fm,$ip);
1090     + my ($fm,$ip) = @_;
1091     +
1092     + if ($ip eq ''){
1093     + return 'OK';
1094     + }
1095     + return ip_is_in_local_net ($fm,$ip);
1096     }
1097    
1098     sub end_is_after_start{
1099     - my ($fm,$end) = @_;
1100     - my $start = $fm->{cgi}->param('start_pool');
1101     - my $start_ip = new Net::IP($start);
1102     - my $end_ip = new Net::IP($end);
1103     - unless ($end_ip->bincomp('gt',$start_ip)){
1104     - return $fm->localise('START_AFTER_END');
1105     - }
1106     - return 'OK';
1107     + my ($fm,$end) = @_;
1108     + my $start = $fm->{cgi}->param('start_pool');
1109     + my $start_ip = new Net::IP($start);
1110     + my $end_ip = new Net::IP($end);
1111     + unless ($end_ip->bincomp('gt',$start_ip)){
1112     + return $fm->localise('START_AFTER_END');
1113     + }
1114     + return 'OK';
1115     }
1116    
1117     sub not_in_dhcp_range
1118     @@ -754,19 +741,18 @@
1119     &&
1120     esmith::util::IPquadToAddr($address)
1121     <= esmith::util::IPquadToAddr($end)){
1122     - return $fm->localise("ADDR_IN_DHCP_RANGE",{ip => $address});
1123     - }
1124     - else{
1125     + return $fm->localise("ADDR_IN_DHCP_RANGE",{ip => $address});
1126     + }
1127     + else{
1128     return "OK";
1129     - }
1130     + }
1131     }
1132    
1133     sub validate_common_name
1134     {
1135     my ($fm, $common_name) = @_;
1136    
1137     - unless ($common_name =~ /^([a-zA-Z0-9][\_\.\-a-zA-Z0-9]*)$/)
1138     - {
1139     + unless ($common_name =~ /^([a-zA-Z0-9][\_\.\-a-zA-Z0-9]*)$/){
1140     return $fm->localise('INVALID_CHARS',{string => $common_name});
1141     }
1142     return "OK";
1143     @@ -777,10 +763,9 @@
1144     my ($fm, $url) = @_;
1145    
1146     unless ($url =~ /^(http:\/\/)|(https:\/\/)/){
1147     - return $fm->localise('NOT_A_VALID_URL',{string => $url});
1148     - }
1149     + return $fm->localise('NOT_A_VALID_URL',{string => $url});
1150     + }
1151     return "OK";
1152     -
1153     }
1154    
1155    

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed