sub loop { foreach our $key( $select->can_read()) { # foreach if($key eq $server) { # if $bay eq $server next if $key eq ""; our $bay = $server->accept or next; my $ip = $bay->peerhost(); my $ident = _uid(); foreach my $key( keys %clients ) { my $nick = $clients{$key}->{nick}; my $sock = $clients{$key}->{sock}; print "Verbindung von $nick und dem Socket $sock\n"; } our $buffer = ""; newclient($bay); $bay->sysread($buffer, 1024); print "$buffer\n\n"; if($buffer =~ /GET \/\?sid=([a-zA-Z0-9]+)\s/) { if($1) { # if $1 my $session = $1; my $safesess = $dbh->quote($session); my $sta = $dbh->prepare("SELECT session FROM Members WHERE session = $safesess LIMIT 1"); $sta->execute(); my $hassession = $sta->fetchrow_array(); $sta->finish(); $dbh->disconnect(); if($hassession) { # Wenn eine Session existiert dann .. my %user = loadMemberInfo("", $session); my $showtime= $user{showtime} == 0 ? 0 : 1; my $nosmiles= $user{nosmileys} == 0 ? 0 : 1; my $chatzone = $user{chatzone}; $clients{$ident} = { sock => $bay, nick => $user{nick}, sockcreated => &Time::HiRes::time(), ip => $ip, lastsrvpost => time, showtime => $showtime, nosmileys => $nosmiles, chatzone => $chatzone, session => $1, alivetime => time }; } } } # Ab hier startet der fork() defined( my $pid = fork()) or die "fork failed: $!"; $pid and next; # Master close($server);