48 |
) |
) |
49 |
); |
); |
50 |
|
|
51 |
foreach my $init ( qw/ state session / ) { |
foreach my $init ( qw/ state / ) { |
52 |
$self->db->put( $init => {} ) unless $self->db->get( $init ); |
$self->db->put( $init => {} ) unless $self->db->get( $init ); |
53 |
} |
} |
54 |
|
|
155 |
|
|
156 |
=cut |
=cut |
157 |
|
|
158 |
|
my $session; |
159 |
|
|
160 |
sub ID_to_uid { |
sub ID_to_uid { |
161 |
my $self = shift; |
my $self = shift; |
162 |
my ( $ID, $state ) = @_; |
my ( $ID, $state ) = @_; |
165 |
|
|
166 |
warn "ID_to_uid",dump( $ID, $state ),$/ if $self->debug; |
warn "ID_to_uid",dump( $ID, $state ),$/ if $self->debug; |
167 |
|
|
168 |
$self->db->{session}->{ $ID }->{last_seen} = time(); |
$session->{ $ID }->{last_seen} = time(); |
169 |
|
|
170 |
my $uid; |
my $uid; |
171 |
|
|
172 |
if ( $uid = $self->db->{session}->{ $ID }->{ ID_to_uid } ) { |
if ( $uid = $session->{ $ID }->{ ID_to_uid } ) { |
173 |
return $uid; |
return $uid; |
174 |
} elsif ( $uid = $state->{DeviceID}->{SerialNumber} ) { |
} elsif ( $uid = $state->{DeviceID}->{SerialNumber} ) { |
175 |
warn "## created new session for $uid session $ID\n" if $self->debug; |
warn "## created new session for $uid session $ID\n" if $self->debug; |
176 |
$self->db->{session}->{ $ID } = { |
$session->{ $ID } = { |
177 |
last_seen => time(), |
last_seen => time(), |
178 |
ID_to_uid => $uid, |
ID_to_uid => $uid, |
179 |
}; |
}; |
185 |
|
|
186 |
# TODO: expire sessions longer than 30m |
# TODO: expire sessions longer than 30m |
187 |
|
|
188 |
|
warn "current session = ",dump( $session ); |
189 |
|
|
190 |
return; |
return; |
191 |
} |
} |
192 |
|
|