Projet

Général

Profil

Révision fa1298bf

IDfa1298bfdef42a32716c30e1713c9bc14d292832
Parent 80dcbf72
Enfant c6222819

Ajouté par XciD il y a presque 12 ans

Add IP/Port

Voir les différences:

plugins/rtorrent/rtom_allsessions_vol
28 28
#
29 29
# Configuration example
30 30
#
31
#	[rtom_vol]
32
#	user username
33
#	env.src socket
34
#	env.socket /home/user/torrent/.socket/rpc.socket,/home/user/torrent/.socket/rpc2.socket
35
#	env.category Sometext
31
#       [rtom_allsessions_*]
32
#       user username
33
#       env.src socket
34
#       env.socket /home/user/torrent/.socket/rpc.socket,/home/user/torrent/.socket/rpc.socket
35
#       env.category Category
36
#
37
#       [rtom_allsessions_*]
38
#       user username
39
#       env.port 5000,5001,5002,5003
40
#       env.category Category
36 41
#
37 42
#%# family=auto
38 43

  
......
71 76

  
72 77
use IO::Socket;
73 78

  
74
my @sockets = split /,/, $ENV{"socket"} || "";
75 79
my $src         = $ENV{"src"} || "";
80
my @sockets     = split /,/, $ENV{"socket"} || "";
81
my $ip          = $ENV{"ip"} || "127.0.0.1";
82
my @ports       = split /,/, $ENV{"port"} || "";
76 83

  
77 84
my $pattern	= qr/<value><string>([A-Z0-9]+)<\/string><\/value>/;
78 85

  
79
my $line;
80
my $llenmy;
81
my $header;
82
my $hlen;
83

  
84
my $num;
85 86
foreach ( @views ) {
86
	$num = 0;
87
	for $socket (@sockets){
88
		if ( ( defined $src ) && ( $src eq "socket" ) ) {
89
			socket( SOCK, PF_UNIX, SOCK_STREAM, 0 );
90
			connect( SOCK, sockaddr_un( $socket ) );
91
		}
92

  
93
		$line	= "<?xml version=\"1.0\" encoding=\"utf-8\"?><methodCall><methodName>d.multicall</methodName><params><param><value><string>${_}</string></value></param><param><value><string>d.get_hash=</string></value></param></params></methodCall>";
94
		$llen	= length $line;
95
		$header	= "CONTENT_LENGTH\000${llen}\000SCGI\001\000";
96
		$hlen	= length $header;
97
		$line	= "${hlen}:${header},${line}";
98

  
99
		print SOCK $line;
100
		flush SOCK;
87
	my $num = 0;
88
	my $line = "<?xml version=\"1.0\" encoding=\"utf-8\"?><methodCall><methodName>d.multicall</methodName><params><param><value><string>${_}</string></value></param><param><value><string>d.get_hash=</string></value></param></params></methodCall>";
89
	my $llen = length $line;
90
	my $header = "CONTENT_LENGTH\000${llen}\000SCGI\001\000";
91
	my $hlen = length $header;
101 92

  
102
		while ( $line = <SOCK> ) {
103
			if ( $line =~ /$pattern/ ) {
104
				$num++;
105
			}
106
		}
107
		close (SOCK);
93
	if ( ( defined $src ) && ( $src eq "socket" ) ) {
94
	        for $socket (@sockets)
95
	        {
96
	                socket( SOCK, PF_UNIX, SOCK_STREAM, 0 ) or die;
97
	                connect( SOCK, sockaddr_un( $socket ) ) or die $!;
98
	                my $line = "${hlen}:${header},${line}";
99
	                print SOCK $line;
100
	                flush SOCK;
101
	                while ( $line = <SOCK> ) {
102
						if ( $line =~ /$pattern/ ) {
103
							$num++;
104
						}
105
					}
106
					close (SOCK);
107
	        }        
108
	} else {
109
	        for $port (@ports)
110
	        { 
111
	                socket( SOCK, PF_INET, SOCK_STREAM, getprotobyname( "tcp" ) );
112
	                connect( SOCK, sockaddr_in( $port, inet_aton( $ip ) ) );
113
	                my $line = "${hlen}:${header},${line}";
114
	                print SOCK $line;
115
	                flush SOCK;
116
	                while ( $line = <SOCK> ) {
117
						if ( $line =~ /$pattern/ ) {
118
							$num++;
119
						}
120
					}
121
					close (SOCK);
122
	        }
108 123
	}
109 124
	print "${_}.value ${num}\n";
110 125
}

Formats disponibles : Unified diff