diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2009-11-15 16:48:26 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2009-11-15 16:48:26 +0000 |
| commit | b3acde23784ba09f5575e2de00223b6ee15aaa18 (patch) | |
| tree | 4c416653fbe96d62e1f0f3cd2db275e0e291cdc8 /lib | |
| parent | d48498579ceaa0ab4a9b4ae8f2a6a95b0ee89311 (diff) | |
| download | xxv-b3acde23784ba09f5575e2de00223b6ee15aaa18.tar.gz xxv-b3acde23784ba09f5575e2de00223b6ee15aaa18.tar.bz2 | |
* Fix: Avoid destroy muggle database connection on fork
* AUTOTIMER: adjust timer before assign new autotimer
* MUSIC: add option data=all:1 to deliver all tracks
* HTTP: allow skins with swf files
* CHANNELS: allow clist for guest users
* TIMERS: adjust inactive timer too
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/XXV/MODULES/AUTOTIMER.pm | 2 | ||||
| -rw-r--r-- | lib/XXV/MODULES/CHANNELS.pm | 1 | ||||
| -rw-r--r-- | lib/XXV/MODULES/HTTPD.pm | 3 | ||||
| -rw-r--r-- | lib/XXV/MODULES/MUSIC.pm | 11 | ||||
| -rw-r--r-- | lib/XXV/MODULES/RECORDS.pm | 4 | ||||
| -rw-r--r-- | lib/XXV/MODULES/ROBOT.pm | 4 | ||||
| -rw-r--r-- | lib/XXV/MODULES/TIMERS.pm | 3 | ||||
| -rw-r--r-- | lib/XXV/OUTPUT/Html.pm | 9 |
8 files changed, 31 insertions, 6 deletions
diff --git a/lib/XXV/MODULES/AUTOTIMER.pm b/lib/XXV/MODULES/AUTOTIMER.pm index ff95466..238c1e5 100644 --- a/lib/XXV/MODULES/AUTOTIMER.pm +++ b/lib/XXV/MODULES/AUTOTIMER.pm @@ -407,6 +407,8 @@ sub _autotimerLookup { my $now = time; # Get Timersmodule my $modT = main::getModule('TIMERS'); + $modT->_readData(); + foreach my $id (sort keys %$att) { my $a = $att->{$id}; diff --git a/lib/XXV/MODULES/CHANNELS.pm b/lib/XXV/MODULES/CHANNELS.pm index 966ee0c..2874532 100644 --- a/lib/XXV/MODULES/CHANNELS.pm +++ b/lib/XXV/MODULES/CHANNELS.pm @@ -84,7 +84,6 @@ sub module { description => gettext("List channels from database 'cname'"), short => 'cl', callback => sub{ $self->list(@_) }, - Level => 'user', }, cnew => { description => gettext("Create new channel"), diff --git a/lib/XXV/MODULES/HTTPD.pm b/lib/XXV/MODULES/HTTPD.pm index b93530c..f0f3414 100644 --- a/lib/XXV/MODULES/HTTPD.pm +++ b/lib/XXV/MODULES/HTTPD.pm @@ -31,7 +31,8 @@ my $mime = { mpeg => ["video/x-mpeg", 'nopack','attachment'], mov => ["video/quicktime", 'nopack','attachment'], wmv => ["video/x-ms-wmv", 'nopack','attachment'], - flv => ["video/x-flv", 'nopack','attachment'] + flv => ["video/x-flv", 'nopack','attachment'], + swf => ["application/x-shockwave-flash", 'nopack','attachment'] }; # This module method must exist for XXV diff --git a/lib/XXV/MODULES/MUSIC.pm b/lib/XXV/MODULES/MUSIC.pm index 5c0af3e..74bd08e 100644 --- a/lib/XXV/MODULES/MUSIC.pm +++ b/lib/XXV/MODULES/MUSIC.pm @@ -614,7 +614,9 @@ sub list { }; my $t; - if($typ eq 'genre') { + if($typ eq 'all') { + + } elsif($typ eq 'genre') { $t = ($self->{mdbh} ? 'tracks.'.$translate->{$typ} : uc($typ)); # caching genres @@ -632,7 +634,9 @@ sub list { $t = ($self->{mdbh} ? 'tracks.'.$translate->{$typ} : uc($typ)); } - if($typ eq 'genre' && $self->{mdbh}) { + if($typ eq 'all') { + $search = '1'; + } elsif($typ eq 'genre' && $self->{mdbh}) { $search = sprintf("%s LIKE ?", $t); #?% push(@{$term},$text.'%'); } else { @@ -861,6 +865,9 @@ sub stream { if($child == 0) { $self->{SOCK}->close; $self->{dbh}->{InactiveDestroy} = 1; + if($self->{mdbh}) { + $self->{mdbh}->{InactiveDestroy} = 1; + } foreach my $file (@uniqu) { diff --git a/lib/XXV/MODULES/RECORDS.pm b/lib/XXV/MODULES/RECORDS.pm index c531192..1836416 100644 --- a/lib/XXV/MODULES/RECORDS.pm +++ b/lib/XXV/MODULES/RECORDS.pm @@ -968,6 +968,10 @@ sub _readData { } elsif ($child > 0) { } elsif ($child == 0) { + my $modM = main::getModule('MUSIC'); + if($modM->{mdbh}) { + $modM->{mdbh}->{InactiveDestroy} = 1; + } $self->{dbh}->{InactiveDestroy} = 1; my $dbh = $self->{dbh}->clone(); error(sprintf("Couldn't clone database handle : %s",$!)) unless($dbh); diff --git a/lib/XXV/MODULES/ROBOT.pm b/lib/XXV/MODULES/ROBOT.pm index 6b732da..4ed0f9b 100644 --- a/lib/XXV/MODULES/ROBOT.pm +++ b/lib/XXV/MODULES/ROBOT.pm @@ -117,6 +117,10 @@ sub start { defined(my $child = fork()) or die "Couldn't fork: $!"; if($child == 0) { $obj->{dbh}->{InactiveDestroy} = 1; + my $modM = main::getModule('MUSIC'); + if($modM->{mdbh}) { + $modM->{mdbh}->{InactiveDestroy} = 1; + } # create a new browser my $count = 0; foreach my $args (@{$obj->{jobs}->{$rname}}) { diff --git a/lib/XXV/MODULES/TIMERS.pm b/lib/XXV/MODULES/TIMERS.pm index 64353f4..6e7b084 100644 --- a/lib/XXV/MODULES/TIMERS.pm +++ b/lib/XXV/MODULES/TIMERS.pm @@ -1469,8 +1469,7 @@ SELECT SQL_CACHE t.id, t.vid, t.pos, t.flags, t.channel, t.priority, t.lifetime, ABS(UNIX_TIMESTAMP(t.stoptime)-(UNIX_TIMESTAMP(t.eventstarttime) + t.eventduration)) as lag FROM TIMERS as t, EPG as e - WHERE (flags & 1) - AND e.eventid > 0 + WHERE e.eventid > 0 AND t.eventid = e.eventid AND ( (((t.flags & 4) = 0) AND e.starttime != t.eventstarttime) diff --git a/lib/XXV/OUTPUT/Html.pm b/lib/XXV/OUTPUT/Html.pm index 7ad6e64..0d3cfeb 100644 --- a/lib/XXV/OUTPUT/Html.pm +++ b/lib/XXV/OUTPUT/Html.pm @@ -194,6 +194,7 @@ sub parseTemplateFile { debug => 0, # Avoid losing encoding like utf8 verbose => $self->{debug}, user => $self->{USER}->{Name}, + sid => $self->{USER}->{sid}, charset => $self->{charset}, skin => $self->{SkinName}, # query the current locale @@ -747,6 +748,10 @@ sub _stream { } elsif ($child == 0) { $self->{dbh}->{InactiveDestroy} = 1; + my $modM = main::getModule('MUSIC'); + if($modM->{mdbh}) { + $modM->{mdbh}->{InactiveDestroy} = 1; + } eval { local $SIG{'__DIE__'}; @@ -825,6 +830,10 @@ sub proxy { } elsif ($child == 0) { $self->{dbh}->{InactiveDestroy} = 1; + my $modM = main::getModule('MUSIC'); + if($modM->{mdbh}) { + $modM->{mdbh}->{InactiveDestroy} = 1; + } eval { local $SIG{'__DIE__'}; lg(sprintf("Send request %s",$request)); |
