/[smecontribs]/rpms/smeserver-ddclient/contribs10/smeserver-ddclient-1.3.0-bz11667-Update-SM2-lib.patch
ViewVC logotype

Annotation of /rpms/smeserver-ddclient/contribs10/smeserver-ddclient-1.3.0-bz11667-Update-SM2-lib.patch

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


Revision 1.1 - (hide annotations) (download)
Tue Aug 31 13:49:07 2021 UTC (3 years, 3 months ago) by jcrisp
Branch: MAIN
CVS Tags: smeserver-ddclient-1_3_0-19_el7_sme, smeserver-ddclient-1_3_0-15_el7_sme, smeserver-ddclient-1_3_0-22_el7_sme, smeserver-ddclient-1_3_0-27_el7_sme, smeserver-ddclient-1_3_0-21_el7_sme, smeserver-ddclient-1_3_0-31_el7_sme, smeserver-ddclient-1_3_0-23_el7_sme, smeserver-ddclient-1_3_0-24_el7_sme, smeserver-ddclient-1_3_0-32_el7_sme, smeserver-ddclient-1_3_0-34_el7_sme, smeserver-ddclient-1_3_0-33_el7_sme, smeserver-ddclient-1_3_0-26_el7_sme, smeserver-ddclient-1_3_0-30_el7_sme, smeserver-ddclient-1_3_0-20_el7_sme, smeserver-ddclient-1_3_0-29_el7_sme, smeserver-ddclient-1_3_0-16_el7_sme, smeserver-ddclient-1_3_0-28_el7_sme, smeserver-ddclient-1_3_0-25_el7_sme, smeserver-ddclient-1_3_0-17_el7_sme, smeserver-ddclient-1_3_0-18_el7_sme, HEAD
* Tue Aug 31 2021 John Crisp <jcrisp@safeandsoundit.co.uk> 1.3.0-15.sme
- Fix events in ddclient SM2 library [SME:11667]

1 jcrisp 1.1 diff -ruN smeserver-ddclient-1.3.0.old/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm smeserver-ddclient-1.3.0/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm
2     --- smeserver-ddclient-1.3.0.old/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm 2021-08-31 13:48:19.475463250 +0200
3     +++ smeserver-ddclient-1.3.0/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm 2021-08-31 15:44:36.773106124 +0200
4     @@ -68,51 +68,50 @@
5     our $adb = esmith::AccountsDB->open();
6    
7     our $domaindb = esmith::ConfigDB->open('/home/e-smith/db/domains')
8     - or die "Unable to open domains db";
9     + or die "Unable to open domains db";
10     our $edb;
11     $edb = esmith::ConfigDB->open('/home/e-smith/db/ddclient')
12     - or $edb = esmith::ConfigDB->create('/home/e-smith/db/ddclient');
13     + or $edb = esmith::ConfigDB->create('/home/e-smith/db/ddclient');
14    
15     my %ddc_datas = ();
16    
17     sub get_dns_labels {
18     - #
19     - # dns service names
20     - #
21     + #
22     + # dns service names
23     + #
24     my $c = shift;
25     my $Labels = (
26     - [
27     - [ $c->l('ddc_CUSTOMDNS'), 'CUSTOMDNS' ],
28     - [ $c->l('ddc_DYNDNS1'), 'DYNDNS1' ],
29     - [ $c->l('ddc_DYNDNS2'), 'DYNDNS2' ],
30     - [ $c->l('ddc_DYNDNS3'), 'DYNDNS3' ],
31     - [ $c->l('ddc_ZONEDIT'), 'ZONEDIT' ],
32     - [ $c->l('ddc_EASYDNS'), 'EASYDNS' ],
33     - [ $c->l('ddc_HAMMER'), 'HAMMER' ],
34     - [ $c->l('ddc_DSLREPORTS'), 'DSLREPORTS' ],
35     - [ $c->l('ddc_EURODYNDNS'), 'EURODYNDNS' ],
36     - [ $c->l('ddc_DTDNS'), 'DTDNS' ],
37     - [ $c->l('ddc_LOOPIA'), 'LOOPIA' ],
38     - [ $c->l('ddc_DNSPARK'), 'DNSPARK' ],
39     - [ $c->l('ddc_DYNHOST'), 'DYNHOST' ],
40     - [ $c->l('ddc_NOIP'), 'NOIP' ],
41     - [ $c->l('ddc_CHANGEIP'), 'CHANGEIP' ],
42     - [ $c->l('ddc_NAMECHEAP'), 'NAMECHEAP' ],
43     - [ $c->l('ddc_SPDNS'), 'SPDNS' ],
44     - [ $c->l('ddc_SITELUTIONS'), 'SITELUTIONS'],
45     - [ $c->l('ddc_FREEDNS'), 'FREEDNS'],
46     - [ $c->l('ddc_NSUPDATE'), 'NSUPDATE'],
47     - [ $c->l('ddc_CLOUDFLARE'), 'CLOUDFLARE'],
48     - [ $c->l('ddc_GOOGLEDOMAINS'), 'GOOGLEDOMAINS'],
49     - [ $c->l('ddc_DUCKDNS'), 'DUCKDNS'],
50     - [ $c->l('ddc_FREEMYIP'), 'FREEMYIP'],
51     - [ $c->l('ddc_WOIMA'), 'WOIMA'],
52     - [ $c->l('ddc_YANDEX'), 'YANDEX'],
53     - [ $c->l('ddc_DNSMADEEASY'), 'DNSMADEEASY'],
54     - [ $c->l('ddc_DONDOMINIO'), 'DONDOMINIO'],
55     - [ $c->l('ddc_NEARLYFREESPEECH'),'NFSN'],
56     - [ $c->l('ddc_OVH'), 'OVH'],
57     - [ $c->l('ddc_CLOUDNS'), 'CLOUDNS']
58     + [ [ $c->l('ddc_CUSTOMDNS'), 'CUSTOMDNS' ],
59     + [ $c->l('ddc_DYNDNS1'), 'DYNDNS1' ],
60     + [ $c->l('ddc_DYNDNS2'), 'DYNDNS2' ],
61     + [ $c->l('ddc_DYNDNS3'), 'DYNDNS3' ],
62     + [ $c->l('ddc_ZONEDIT'), 'ZONEDIT' ],
63     + [ $c->l('ddc_EASYDNS'), 'EASYDNS' ],
64     + [ $c->l('ddc_HAMMER'), 'HAMMER' ],
65     + [ $c->l('ddc_DSLREPORTS'), 'DSLREPORTS' ],
66     + [ $c->l('ddc_EURODYNDNS'), 'EURODYNDNS' ],
67     + [ $c->l('ddc_DTDNS'), 'DTDNS' ],
68     + [ $c->l('ddc_LOOPIA'), 'LOOPIA' ],
69     + [ $c->l('ddc_DNSPARK'), 'DNSPARK' ],
70     + [ $c->l('ddc_DYNHOST'), 'DYNHOST' ],
71     + [ $c->l('ddc_NOIP'), 'NOIP' ],
72     + [ $c->l('ddc_CHANGEIP'), 'CHANGEIP' ],
73     + [ $c->l('ddc_NAMECHEAP'), 'NAMECHEAP' ],
74     + [ $c->l('ddc_SPDNS'), 'SPDNS' ],
75     + [ $c->l('ddc_SITELUTIONS'), 'SITELUTIONS' ],
76     + [ $c->l('ddc_FREEDNS'), 'FREEDNS' ],
77     + [ $c->l('ddc_NSUPDATE'), 'NSUPDATE' ],
78     + [ $c->l('ddc_CLOUDFLARE'), 'CLOUDFLARE' ],
79     + [ $c->l('ddc_GOOGLEDOMAINS'), 'GOOGLEDOMAINS' ],
80     + [ $c->l('ddc_DUCKDNS'), 'DUCKDNS' ],
81     + [ $c->l('ddc_FREEMYIP'), 'FREEMYIP' ],
82     + [ $c->l('ddc_WOIMA'), 'WOIMA' ],
83     + [ $c->l('ddc_YANDEX'), 'YANDEX' ],
84     + [ $c->l('ddc_DNSMADEEASY'), 'DNSMADEEASY' ],
85     + [ $c->l('ddc_DONDOMINIO'), 'DONDOMINIO' ],
86     + [ $c->l('ddc_NEARLYFREESPEECH'), 'NFSN' ],
87     + [ $c->l('ddc_OVH'), 'OVH' ],
88     + [ $c->l('ddc_CLOUDNS'), 'CLOUDNS' ]
89     ]
90     );
91     return $Labels;
92     @@ -148,8 +147,7 @@
93     my $emptycust = ( scalar @FreeDomains == 0 );
94    
95     my $Labels = (
96     - [
97     - [ $c->l('ddc_SME external Interface'), "smeIF" ],
98     + [ [ $c->l('ddc_SME external Interface'), "smeIF" ],
99     [ $c->l('ddc_SME configuration DB'), "smeCMD" ],
100     [ $c->l('ddc_web'), "web" ],
101     [ $c->l('ddc_Interface'), "if" ],
102     @@ -198,8 +196,8 @@
103     if ( $retmsg eq "ok" ) {
104     my $dns = $c->param('dns');
105     my $domain = $c->param('domainname');
106     - $ddc_datas{"success"} =
107     - $c->l( "ddc_SUCCESSFULLY_MODIFIED", $domain, $c->l( 'ddc_' . $dns ) );
108     + $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_MODIFIED", $domain,
109     + $c->l( 'ddc_' . $dns ) );
110     do_display( $c, %ddc_datas );
111     }
112     else {
113     @@ -235,12 +233,13 @@
114     if ( $retmsg eq "ok" ) {
115     my $dns = $c->param('dns');
116     my $domain = $c->param('domainname');
117     - $ddc_datas{"success"} =
118     - $c->l( "ddc_SUCCESSFULLY_DELETED", $domain, $c->l( 'ddc_' . $dns ) );
119     + $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_DELETED", $domain,
120     + $c->l( 'ddc_' . $dns ) );
121     do_display( $c, %ddc_datas );
122     }
123     else {
124     $ddc_datas{"error"} = $retmsg;
125     +
126     #Back to input panel to correct error
127     do_create_custom($c);
128     }
129     @@ -257,8 +256,8 @@
130     my $trt = $c->param("trt");
131    
132     #Extract domain stuff from DB
133     - my @results =
134     - get_custom_table( $c, $c->param("Domain") ); #Returns just one row
135     + my @results
136     + = get_custom_table( $c, $c->param("Domain") ); #Returns just one row
137    
138     $ddc_datas{"Domain_details"} = $results[0];
139    
140     @@ -283,8 +282,8 @@
141     my $trt = $c->param("trt");
142    
143     #Extract domain stuff from DB
144     - my @results =
145     - get_domain_table( $c, $c->param("Domain") ); #Returns just one row
146     + my @results
147     + = get_domain_table( $c, $c->param("Domain") ); #Returns just one row
148     $ddc_datas{"Domain_details"} = $results[0];
149    
150     $ddc_datas{'trt'} = $trt;
151     @@ -309,7 +308,7 @@
152     my $retmsg = "";
153     my $domain = $c->param("Domain");
154    
155     - #Delete it and return to front summary panel - depends on route domain or custom
156     + #Delete it and return to front summary panel - depends on route domain or custom
157     if ( $c->param("Route") eq "ddclient2" ) { #Route is hidden field
158     $retmsg = performDeleteCustom( $c, $domain );
159     }
160     @@ -338,7 +337,7 @@
161     my $retmsg = "";
162     my $domain = $c->param("Domain");
163    
164     - #Delete it and return to front summary panel - depends on route domain or custom
165     + #Delete it and return to front summary panel - depends on route domain or custom
166     $retmsg = performDeleteCustom( $c, $domain );
167     if ( $retmsg eq "ok" ) {
168     $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_DELETED", $domain );
169     @@ -348,80 +347,6 @@
170    
171     }
172    
173     -sub performDeleteDomain {
174     - my ( $c, $domain ) = @_;
175     -
176     - #------------------------------------------------------------
177     - # Attempt to delete domain
178     - #------------------------------------------------------------
179     -
180     - if ( $domain =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
181     - $domain = $1;
182     - }
183     - else {
184     - return $c->l( 'ddc_ERROR_WHILE_REMOVING_DOMAIN', $domain );
185     - }
186     -
187     - my $value = $domaindb->get($domain);
188     - unless ($value) {
189     - return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain );
190     - }
191     -
192     - my %properties = $value->props;
193     - my $type = $properties{'type'};
194     - if ( $type ne 'domain' ) {
195     - return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain );
196     - }
197     -
198     - my $evalue = $domaindb->get($domain);
199     -
200     - $evalue->set_prop( 'dns' => '' );
201     - $evalue->set_prop( 'login' => '' );
202     - $evalue->set_prop( 'password' => '' );
203     - $evalue->set_prop( 'customdns' => '' );
204     - $evalue->set_prop( 'customprotocol' => '' );
205     -
206     - $domaindb->reload();
207     -
208     - system( "/sbin/e-smith/signal-event", "ddclient" );
209     -
210     - return "ok";
211     -}
212     -
213     -sub performDeleteCustom {
214     - my ( $c, $domain ) = @_;
215     -
216     - #------------------------------------------------------------
217     - # Attempt to delete domain
218     - #------------------------------------------------------------
219     -
220     - if ( $domain =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
221     - $domain = $1;
222     - }
223     - else {
224     - return $c->l( 'ddc_ERROR_WHILE_REMOVING_DOMAIN', $domain );
225     - }
226     -
227     - my $evalue = $edb->get($domain);
228     - unless ($evalue) {
229     - return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain );
230     - }
231     -
232     - my %properties = $evalue->props;
233     - my $type = $properties{'type'};
234     -
235     - if ( $type ne 'ddhost' ) {
236     - return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain );
237     -
238     - }
239     -
240     - $evalue->delete;
241     - $edb->reload();
242     -
243     - system( "/sbin/e-smith/signal-event", "ddclient" );
244     - return "ok";
245     -}
246     -
247     sub get_domain_table {
248     #
249     # Return full table of all domains OR just the details for the specified one
250     @@ -442,15 +367,19 @@
251    
252     foreach $domain ( sort @virtualDomains ) {
253     my %properties = $domaindb->get($domain)->props;
254     - my $test = $domaindb->get_prop( $domain, "dns" ) || '';
255     + my $test = $domaindb->get_prop( $domain, "dns" ) || '';
256     my %extraprops;
257     - if ( $test ne '' ) { %extraprops = $domaindb->get($domain)->props; }
258     + if ( $test ne '' ) {
259     + %extraprops = $domaindb->get($domain)->props;
260     + }
261    
262     my $content;
263     if ( $properties{'Content'} eq 'wwwpublic' ) {
264     $content = $c->l('ddc_PRIMARY_SITE');
265     }
266     - else { $content = $c->l( 'ddc_CONTENT', $properties{'Content'} ); }
267     + else {
268     + $content = $c->l( 'ddc_CONTENT', $properties{'Content'} );
269     + }
270    
271     my $public;
272     my %thisrow;
273     @@ -520,20 +449,20 @@
274     'Domain' => $domain,
275     "Description" => $content,
276     "dns" => $publish,
277     - "Publication" =>
278     - $c->l( 'ddc_' . $publish ), #msg ddc prefix for ddclient
279     - "customprotocol" => $vals->prop("customprotocol"),
280     - "customdns" => $vals->prop("customdns"),
281     - "login" => $vals->prop("login"),
282     - "password" => $vals->prop("password"),
283     - "mx" => $vals->prop("mx"),
284     + "Publication" => $c->l( 'ddc_' . $publish )
285     + , #msg ddc prefix for ddclient
286     + "customprotocol" => $vals->prop("customprotocol"),
287     + "customdns" => $vals->prop("customdns"),
288     + "login" => $vals->prop("login"),
289     + "password" => $vals->prop("password"),
290     + "mx" => $vals->prop("mx"),
291    
292     );
293    
294     push( @freedomains2d, \%thisrow );
295     if ($findDomain) {
296     if ( $domain eq $findDomain ) {
297     - @freedomains2d = (); #Just return matching one
298     + @freedomains2d = (); #Just return matching one
299     push( @freedomains2d, \%thisrow );
300     last;
301     }
302     @@ -549,9 +478,9 @@
303     my $ddretrieve = $db->get('ddclient');
304     my $ExtIF = $db->get('ExternalInterface');
305     my $DeamonUpdate = $ddretrieve->prop('DeamonUpdate') || '300';
306     - my $urlcheckip = $ddretrieve->prop('urlcheckip') || 'checkip.dyndns.org';
307     - my $ssl = $ddretrieve->prop('SSL') || 'yes';
308     - my $method = $ddretrieve->prop('method') || 'web';
309     + my $urlcheckip = $ddretrieve->prop('urlcheckip') || 'checkip.dyndns.org';
310     + my $ssl = $ddretrieve->prop('SSL') || 'yes';
311     + my $method = $ddretrieve->prop('method') || 'web';
312     my $Extinterface = $ddretrieve->prop('Extinterface') || '';
313     my $cmd = $ddretrieve->prop('cmd') || '';
314     my $forceIP = $ddretrieve->prop('ForceIP') || '';
315     @@ -588,13 +517,16 @@
316    
317     $domaindb->reload();
318    
319     - system( "/sbin/e-smith/signal-event", "ddclient" );
320     + system( "/sbin/e-smith/signal-event", "smeserver-ddclient-update" );
321    
322     return $c->l('ddc_SUCCESSFULLY_MODIFIED_RETRIEVE_IP');
323     }
324    
325     -sub performCreateCustom {
326     - my ($c) = shift;
327     +# We seem to be missing a Create Domain here
328     +# sub performCreateDomain
329     +
330     +sub performModifyDomain {
331     + my $c = shift;
332    
333     #------------------------------------------------------------
334     # Validate parameters and untaint them
335     @@ -608,21 +540,6 @@
336     return $c->l( 'ddc_DOMAIN_NAME_VALIDATION_ERROR', $domainName );
337     }
338    
339     - foreach my $domain ( $edb->get_all_by_prop( type => 'domain' ) ) {
340     - my $key = $domain->key;
341     - if ( $key eq $domainName ) {
342     - return $c->l( 'ddc_DOMAIN_NAME_ALREADY_EXIST', $domainName );
343     - }
344     - }
345     -
346     - foreach my $domain ( $domaindb->get_all_by_prop( type => 'ddhost' ) ) {
347     - my $key = $domain->key;
348     - if ( $key eq $domainName ) {
349     - return $c->l( 'ddc_DOMAIN_NAME_ALREADY_EXIST', $domainName );
350     - }
351     - }
352     -
353     - my $domainDesc = $c->param('desc');
354     my $domainLogin = $c->param('login');
355     if ( $domainLogin =~ /^([\-\'\w][\-\'\w\s\.\@]*)$/ ) {
356     $domainLogin = $1;
357     @@ -636,7 +553,8 @@
358     $domainPassword = $1;
359     }
360     else {
361     - return $c->l( 'ddc_DOMAIN_PASSWORD_VALIDATION_ERROR', $domainPassword );
362     + return $c->l( 'ddc_DOMAIN_PASSWORD_VALIDATION_ERROR',
363     + $domainPassword );
364     }
365    
366     my $domainMX = $c->param('mx');
367     @@ -648,7 +566,9 @@
368     if ( $customDNS =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
369     $customDNS = $1;
370     }
371     - else {
372     + else
373     +
374     + {
375     return $c->l( 'ddc_CUSTOMDNS_VALIDATION_ERROR', $domainName );
376     }
377     }
378     @@ -658,25 +578,65 @@
379     # or if the domain is a reserved to provide a secured webserver
380     # for a previous domain
381     #------------------------------------------------------------
382     + # my $dns = $c->param ('dns');
383    
384     - my %properties = ();
385     - $properties{'type'} = 'ddhost';
386     - $properties{'dns'} = $dns;
387     - $properties{'login'} = $domainLogin;
388     - $properties{'password'} = $domainPassword;
389     - $properties{'mx'} = $domainMX;
390     - $properties{'desc'} = $domainDesc;
391     - $properties{'customdns'} = $customDNS;
392     - $properties{'customprotocol'} = $customPROTOCOL;
393     - $edb->new_record( $domainName, \%properties );
394     + my $dom = $domaindb->get($domainName);
395     +
396     + $dom->set_prop( 'dns' => $dns );
397     + $dom->set_prop( 'login' => $domainLogin );
398     + $dom->set_prop( 'password' => $domainPassword );
399     + $dom->set_prop( 'mx' => $domainMX );
400     + $dom->set_prop( 'customdns' => $customDNS );
401     + $dom->set_prop( 'customprotocol' => $customPROTOCOL );
402     +
403     + $domaindb->reload();
404    
405     system( "/sbin/e-smith/signal-event", "ddclient" );
406     return "ok";
407     +}
408     +
409     +sub performDeleteDomain {
410     + my ( $c, $domain ) = @_;
411    
412     + #------------------------------------------------------------
413     + # Attempt to delete domain
414     + #------------------------------------------------------------
415     +
416     + if ( $domain =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
417     + $domain = $1;
418     + }
419     + else {
420     + return $c->l( 'ddc_ERROR_WHILE_REMOVING_DOMAIN', $domain );
421     + }
422     +
423     + my $value = $domaindb->get($domain);
424     + unless ($value) {
425     + return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain );
426     + }
427     +
428     + my %properties = $value->props;
429     + my $type = $properties{'type'};
430     + if ( $type ne 'domain' ) {
431     + return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain );
432     + }
433     +
434     + my $evalue = $domaindb->get($domain);
435     +
436     + $evalue->set_prop( 'dns' => '' );
437     + $evalue->set_prop( 'login' => '' );
438     + $evalue->set_prop( 'password' => '' );
439     + $evalue->set_prop( 'customdns' => '' );
440     + $evalue->set_prop( 'customprotocol' => '' );
441     +
442     + $domaindb->reload();
443     +
444     + system( "/sbin/e-smith/signal-event", "domain-modify" );
445     +
446     + return "ok";
447     }
448    
449     -sub performModifyDomain {
450     - my $c = shift;
451     +sub performCreateCustom {
452     + my ($c) = shift;
453    
454     #------------------------------------------------------------
455     # Validate parameters and untaint them
456     @@ -690,6 +650,21 @@
457     return $c->l( 'ddc_DOMAIN_NAME_VALIDATION_ERROR', $domainName );
458     }
459    
460     + foreach my $domain ( $edb->get_all_by_prop( type => 'domain' ) ) {
461     + my $key = $domain->key;
462     + if ( $key eq $domainName ) {
463     + return $c->l( 'ddc_DOMAIN_NAME_ALREADY_EXIST', $domainName );
464     + }
465     + }
466     +
467     + foreach my $domain ( $domaindb->get_all_by_prop( type => 'ddhost' ) ) {
468     + my $key = $domain->key;
469     + if ( $key eq $domainName ) {
470     + return $c->l( 'ddc_DOMAIN_NAME_ALREADY_EXIST', $domainName );
471     + }
472     + }
473     +
474     + my $domainDesc = $c->param('desc');
475     my $domainLogin = $c->param('login');
476     if ( $domainLogin =~ /^([\-\'\w][\-\'\w\s\.\@]*)$/ ) {
477     $domainLogin = $1;
478     @@ -703,7 +678,8 @@
479     $domainPassword = $1;
480     }
481     else {
482     - return $c->l( 'ddc_DOMAIN_PASSWORD_VALIDATION_ERROR', $domainPassword );
483     + return $c->l( 'ddc_DOMAIN_PASSWORD_VALIDATION_ERROR',
484     + $domainPassword );
485     }
486    
487     my $domainMX = $c->param('mx');
488     @@ -715,9 +691,7 @@
489     if ( $customDNS =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
490     $customDNS = $1;
491     }
492     - else
493     -
494     - {
495     + else {
496     return $c->l( 'ddc_CUSTOMDNS_VALIDATION_ERROR', $domainName );
497     }
498     }
499     @@ -727,21 +701,21 @@
500     # or if the domain is a reserved to provide a secured webserver
501     # for a previous domain
502     #------------------------------------------------------------
503     - # my $dns = $c->param ('dns');
504     -
505     - my $dom = $domaindb->get($domainName);
506     -
507     - $dom->set_prop( 'dns' => $dns );
508     - $dom->set_prop( 'login' => $domainLogin );
509     - $dom->set_prop( 'password' => $domainPassword );
510     - $dom->set_prop( 'mx' => $domainMX );
511     - $dom->set_prop( 'customdns' => $customDNS );
512     - $dom->set_prop( 'customprotocol' => $customPROTOCOL );
513    
514     - $domaindb->reload();
515     + my %properties = ();
516     + $properties{'type'} = 'ddhost';
517     + $properties{'dns'} = $dns;
518     + $properties{'login'} = $domainLogin;
519     + $properties{'password'} = $domainPassword;
520     + $properties{'mx'} = $domainMX;
521     + $properties{'desc'} = $domainDesc;
522     + $properties{'customdns'} = $customDNS;
523     + $properties{'customprotocol'} = $customPROTOCOL;
524     + $edb->new_record( $domainName, \%properties );
525    
526     - system( "/sbin/e-smith/signal-event", "ddclient" );
527     + system( "/sbin/e-smith/signal-event", "domain-create" );
528     return "ok";
529     +
530     }
531    
532     sub performModifyCustom {
533     @@ -772,7 +746,8 @@
534     $domainPassword = $1;
535     }
536     else {
537     - return $c->l( 'ddc_DOMAIN_PASSWORD_VALIDATION_ERROR', $domainPassword );
538     + return $c->l( 'ddc_DOMAIN_PASSWORD_VALIDATION_ERROR',
539     + $domainPassword );
540     }
541    
542     my $domainMX = $c->param('mx');
543     @@ -809,7 +784,41 @@
544    
545     $domaindb->reload();
546    
547     - system( "/sbin/e-smith/signal-event", "ddclient" );
548     + system( "/sbin/e-smith/signal-event", "domain-modify" );
549     + return "ok";
550     +}
551     +
552     +sub performDeleteCustom {
553     + my ( $c, $domain ) = @_;
554     +
555     + #------------------------------------------------------------
556     + # Attempt to delete domain
557     + #------------------------------------------------------------
558     +
559     + if ( $domain =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
560     + $domain = $1;
561     + }
562     + else {
563     + return $c->l( 'ddc_ERROR_WHILE_REMOVING_DOMAIN', $domain );
564     + }
565     +
566     + my $evalue = $edb->get($domain);
567     + unless ($evalue) {
568     + return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain );
569     + }
570     +
571     + my %properties = $evalue->props;
572     + my $type = $properties{'type'};
573     +
574     + if ( $type ne 'ddhost' ) {
575     + return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain );
576     +
577     + }
578     +
579     + $evalue->delete;
580     + $edb->reload();
581     +
582     + system( "/sbin/e-smith/signal-event", "domain-delete" );
583     return "ok";
584     }
585    

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