@@ -12,97 +12,97 @@ $cacertFile = __DIR__ . DIRECTORY_SEPARATOR . 'bug77390-ca.pem.tmp';
12
12
13
13
$ peerName = 'bug77390 ' ;
14
14
$ clientCode = <<<'CODE'
15
- $context = stream_context_create(['ssl' => ['verify_peer' => false, 'peer_name' => '%s']]);
16
-
17
- phpt_wait('server');
18
- phpt_notify('proxy');
19
-
20
- phpt_wait('proxy');
21
- $fp = stream_socket_client("ssl://127.0.0.1:10012", $errornum, $errorstr, 3000, STREAM_CLIENT_CONNECT, $context);
22
- stream_set_blocking($fp, false);
23
-
24
- $read = [$fp];
25
- $buf = '';
26
- $warmedUp = false;
27
- while (stream_select($read, $write, $except, 1000)) {
28
- $chunk = stream_get_contents($fp, 4096);
29
- $buf .= $chunk;
30
- phpt_notify('proxy');
31
- if (!$warmedUp) {
32
- if ($buf !== 'warmup') {
33
- continue;
34
- }
35
- $warmedUp = true;
36
- $buf = '';
37
- phpt_notify('server');
38
- continue;
39
- }
40
- var_dump($chunk);
41
- if ($buf === 'hello, world') {
42
- break;
43
- }
44
- }
45
-
46
- phpt_notify('server');
47
- phpt_notify('proxy');
15
+ $context = stream_context_create(['ssl' => ['verify_peer' => false, 'peer_name' => '%s']]);
16
+
17
+ phpt_wait('server');
18
+ phpt_notify('proxy');
19
+
20
+ phpt_wait('proxy');
21
+ $fp = stream_socket_client("ssl://127.0.0.1:10012", $errornum, $errorstr, 3000, STREAM_CLIENT_CONNECT, $context);
22
+ stream_set_blocking($fp, false);
23
+
24
+ $read = [$fp];
25
+ $buf = '';
26
+ $warmedUp = false;
27
+ while (stream_select($read, $write, $except, 1000)) {
28
+ $chunk = stream_get_contents($fp, 4096);
29
+ $buf .= $chunk;
30
+ phpt_notify('proxy');
31
+ if (!$warmedUp) {
32
+ if ($buf !== 'warmup') {
33
+ continue;
34
+ }
35
+ $warmedUp = true;
36
+ $buf = '';
37
+ phpt_notify('server');
38
+ continue;
39
+ }
40
+ var_dump($chunk);
41
+ if ($buf === 'hello, world') {
42
+ break;
43
+ }
44
+ }
45
+
46
+ phpt_notify('server');
47
+ phpt_notify('proxy');
48
48
CODE;
49
49
$ clientCode = sprintf ($ clientCode , $ peerName );
50
50
51
51
$ serverCode = <<<'CODE'
52
- $context = stream_context_create(['ssl' => ['local_cert' => '%s']]);
53
-
54
- $flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
55
- $fp = stream_socket_server("ssl://127.0.0.1:10011", $errornum, $errorstr, $flags, $context);
56
- phpt_notify();
57
-
58
- $conn = stream_socket_accept($fp);
59
- fwrite($conn, 'warmup');
60
- phpt_wait();
61
- fwrite($conn, 'hello, world');
62
-
63
- phpt_wait();
64
- fclose($conn);
52
+ $context = stream_context_create(['ssl' => ['local_cert' => '%s']]);
53
+
54
+ $flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
55
+ $fp = stream_socket_server("ssl://127.0.0.1:10011", $errornum, $errorstr, $flags, $context);
56
+ phpt_notify();
57
+
58
+ $conn = stream_socket_accept($fp);
59
+ fwrite($conn, 'warmup');
60
+ phpt_wait();
61
+ fwrite($conn, 'hello, world');
62
+
63
+ phpt_wait();
64
+ fclose($conn);
65
65
CODE;
66
66
$ serverCode = sprintf ($ serverCode , $ certFile );
67
67
68
68
$ proxyCode = <<<'CODE'
69
- phpt_wait();
70
-
71
- $upstream = stream_socket_client("tcp://127.0.0.1:10011", $errornum, $errorstr, 3000, STREAM_CLIENT_CONNECT);
72
- stream_set_blocking($upstream, false);
73
-
74
- $flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
75
- $server = stream_socket_server("tcp://127.0.0.1:10012", $errornum, $errorstr, $flags);
76
- phpt_notify();
77
-
78
- $conn = stream_socket_accept($server);
79
- stream_set_blocking($conn, false);
80
-
81
- $read = [$upstream, $conn];
82
- while (stream_select($read, $write, $except, 1)) {
83
- foreach ($read as $fp) {
84
- $data = stream_get_contents($fp);
85
- if ($fp === $conn) {
86
- fwrite($upstream, $data);
87
- } else {
88
- if ($data !== '' && $data[0] === chr(23)) {
89
- $parts = str_split($data, (int) ceil(strlen($data) / 3));
90
- foreach ($parts as $part) {
91
- fwrite($conn, $part);
92
- phpt_wait(null, 1);
93
- }
94
- } else {
95
- fwrite($conn, $data);
96
- }
97
- }
98
- }
99
- if (feof($upstream)) {
100
- break;
101
- }
102
- $read = [$upstream, $conn];
103
- }
104
-
105
- phpt_wait();
69
+ phpt_wait();
70
+
71
+ $upstream = stream_socket_client("tcp://127.0.0.1:10011", $errornum, $errorstr, 3000, STREAM_CLIENT_CONNECT);
72
+ stream_set_blocking($upstream, false);
73
+
74
+ $flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
75
+ $server = stream_socket_server("tcp://127.0.0.1:10012", $errornum, $errorstr, $flags);
76
+ phpt_notify();
77
+
78
+ $conn = stream_socket_accept($server);
79
+ stream_set_blocking($conn, false);
80
+
81
+ $read = [$upstream, $conn];
82
+ while (stream_select($read, $write, $except, 1)) {
83
+ foreach ($read as $fp) {
84
+ $data = stream_get_contents($fp);
85
+ if ($fp === $conn) {
86
+ fwrite($upstream, $data);
87
+ } else {
88
+ if ($data !== '' && $data[0] === chr(23)) {
89
+ $parts = str_split($data, (int) ceil(strlen($data) / 3));
90
+ foreach ($parts as $part) {
91
+ fwrite($conn, $part);
92
+ phpt_wait(null, 1);
93
+ }
94
+ } else {
95
+ fwrite($conn, $data);
96
+ }
97
+ }
98
+ }
99
+ if (feof($upstream)) {
100
+ break;
101
+ }
102
+ $read = [$upstream, $conn];
103
+ }
104
+
105
+ phpt_wait();
106
106
CODE;
107
107
108
108
include 'CertificateGenerator.inc ' ;
@@ -112,8 +112,8 @@ $certificateGenerator->saveNewCertAsFileWithKey($peerName, $certFile);
112
112
113
113
include 'ServerClientTestCase.inc ' ;
114
114
ServerClientTestCase::getInstance ()->run ($ clientCode , [
115
- 'server ' => $ serverCode ,
116
- 'proxy ' => $ proxyCode ,
115
+ 'server ' => $ serverCode ,
116
+ 'proxy ' => $ proxyCode ,
117
117
]);
118
118
?>
119
119
--CLEAN--
0 commit comments