Server IP : 103.119.228.120 / Your IP : 18.226.187.210 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/share/perl5/Net/OSCAR/Connection/ |
Upload File : |
=pod Net::OSCAR::Connection::Server -- Net::OSCAR server connection =cut package Net::OSCAR::Connection::Server; BEGIN { $Net::OSCAR::Connection::Server::VERSION = '1.928'; } $REVISION = '$Revision$'; @ISA = qw(Net::OSCAR::Connection); use strict; use vars qw(@ISA); use Carp; use Socket; use Symbol; use Net::OSCAR::Common qw(:all); use Net::OSCAR::Constants; use Net::OSCAR::Connection; use Net::OSCAR::ServerCallbacks; sub new($@) { my $class = shift; my $self = $class->SUPER::new(@_); $self->listen($self->{session}->{port}) unless exists($self->{socket}); $self->{oscar_state} = "listening"; $self->{signon_done} = 0; return $self; } sub process_one($;$$$) { my($self, $read, $write, $error) = @_; my $snac; if($error) { $self->{sockerr} = 1; return $self->disconnect(); } if($write && $self->{outbuff}) { $self->log_print(OSCAR_DBG_DEBUG, "Flushing output buffer."); $self->flap_put(); } if($read && !$self->{connected}) { $self->log_print(OSCAR_DBG_NOTICE, "Incoming connection."); my $socket = gensym(); accept($socket, $self->{socket}); my $peer = $self->{session}->addconn(socket => $socket, conntype => CONNTYPE_SERVER, description => "new peer"); $peer->set_blocking(0); $peer->{connected} = 1; $peer->{state} = "write"; $peer->{oscar_state} = "new"; $self->{session}->callback_connection_changed($peer, "write"); return 1; } elsif($write and $self->{oscar_state} eq "new") { $self->log_print(OSCAR_DBG_DEBUG, "Putting connack."); $self->flap_put(pack("N", 1), FLAP_CHAN_NEWCONN); $self->{state} = "readwrite"; $self->{session}->callback_connection_changed($self, "readwrite"); $self->{oscar_state} = "ready"; $self->{families} = {}; $self->{families}->{$_} = 1 foreach (1..30); } elsif($read) { my $no_reread = 0; while(1) { my $flap = $self->flap_get($no_reread) or return 0; next if length($flap) == 4; my $snac = $self->snac_decode($flap) or return 0; Net::OSCAR::ServerCallbacks::process_snac($self, $snac); } continue { $no_reread = 1; } } } 1;