ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/ota_update.ext
(Generate patch)

Comparing deliantra/server/ext/ota_update.ext (file contents):
Revision 1.3 by root, Mon Jan 9 17:48:11 2012 UTC vs.
Revision 1.4 by root, Sun Nov 11 02:24:51 2012 UTC

2 2
3# over-the-air update 3# over-the-air update
4 4
5# TODO: same face, different hashes, face needs new number 5# TODO: same face, different hashes, face needs new number
6 6
7cf::register_exticmd ota_update => sub { 7cf::register_async_exticmd ota_update => sub {
8 my ($ns, $urlader, $exe_id, $exe_ver) = @_; 8 my ($ns, $reply, $urlader, $exe_id, $exe_ver) = @_;
9 9
10 Coro::async_pool {
10 my ($face, $ver, $size, $md5, $changes); 11 my ($face, $ver, $size, $md5, $changes);
11 12
12 if ($face = cf::face::find "res/ota_update/$urlader,$exe_id.pck") { 13 if ($face = cf::face::find "res/ota_update/$urlader,$exe_id.pck") {
13 my $meta = cf::face::get_meta $face; 14 my $meta = cf::face::get_meta $face;
14 15
15 if ($meta->{exe_ver} gt $exe_ver) { 16 if ($meta->{exe_ver} gt $exe_ver) {
16 $size = cf::face::get_data_size $face; 17 $size = cf::face::get_data_size $face;
17 $ver = $meta->{exe_ver}; 18 $ver = $meta->{exe_ver};
18 $md5 = $meta->{md5}; 19 $md5 = $meta->{md5};
19 if (my $changes_face = cf::face::find "res/ota_update/Changes") { 20 if (my $changes_face = cf::face::find "res/ota_update/Changes") {
20 $changes = cf::face::get_data $changes_face; 21 $changes = cf::face::get_data $changes_face;
21 $changes =~ s/^\(\Q$exe_ver\E\).*$//sm; 22 $changes =~ s/^\(\Q$exe_ver\E\).*$//sm;
23 }
22 } 24 }
23 } 25 }
24 }
25 26
26 cf::info "ota update request for <$urlader, $exe_id, $exe_ver> replying <$face,$ver,$size,*>"; 27 cf::info "ota update request for <$urlader, $exe_id, $exe_ver> replying <$face,$ver,$size,*>";
27 28
28 (1, $face, $ver, $size, $md5, $changes) 29 $reply->(1, $face, $ver, $size, $md5, $changes);
30 };
29}; 31};
30 32

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines