--- /dev/null
+--TEST--
+Bug #27809: ftp_systype returns null
+--SKIPIF--
+<?php
+require 'skipif.inc';
+?>
+--FILE--
+<?php
+$bug27809=true;
+require 'server.inc';
+
+$ftp = ftp_connect('127.0.0.1', $port);
+if (!$ftp) die("Couldn't connect to the server");
+
+var_dump(ftp_login($ftp, 'anonymous', 'IEUser@'));
+var_dump(ftp_systype($ftp));
+
+?>
+--EXPECT--
+bool(true)
+string(6) "OS/400"
--- /dev/null
+--TEST--
+Bug #7216: ftp_mkdir returns nothing (2)
+--SKIPIF--
+<?php
+require 'skipif.inc';
+?>
+--FILE--
+<?php
+require 'server.inc';
+
+$ftp = ftp_connect('127.0.0.1', $port);
+if (!$ftp) die("Couldn't connect to the server");
+
+var_dump(ftp_login($ftp, 'anonymous', 'IEUser@'));
+// test for the correct behavior this time
+var_dump(ftp_mkdir($ftp, 'CVS'));
+
+?>
+--EXPECTREGEX--
+bool\(true\)
+string\(\d+\) ".+[\/\\]CVS"
--- /dev/null
+--TEST--
+Bug #7216: ftp_mkdir returns nothing
+--SKIPIF--
+<?php
+require 'skipif.inc';
+?>
+--FILE--
+<?php
+$bug7216=true;
+require 'server.inc';
+
+$ftp = ftp_connect('127.0.0.1', $port);
+if (!$ftp) die("Couldn't connect to the server");
+
+var_dump(ftp_login($ftp, 'anonymous', 'IEUser@'));
+var_dump(ftp_mkdir($ftp, 'CVS'));
+
+?>
+--EXPECT--
+bool(true)
+string(3) "CVS"
fputs($s, "250 CDUP command successful.\r\n");
} elseif ($buf === "SYST\r\n") {
- fputs($s, "215 UNIX Type: L8.\r\n");
+ if (isset($bug27809)) {
+ fputs($s, "215 OS/400 is the remote operating system. The TCP/IP version is \"V5R2M0\"\r\n");
+ } else {
+ fputs($s, "215 UNIX Type: L8.\r\n");
+ }
} elseif ($buf === "QUIT\r\n") {
break;
change_dir($m[1]);
fputs($s, "250 CWD command successful.\r\n");
- } else if(preg_match('/^USER /', $buf)) {
+ } elseif (preg_match("~^MKD ([A-Za-z./]+)\r\n$~", $buf, $m)) {
+ if (isset($bug7216)) {
+ fputs($s, "257 OK.\r\n");
+ } else {
+ fputs($s, '257 "'.realpath($m[1])."\" created.\r\n");
+ }
+
+ } elseif (preg_match('/^USER /', $buf)) {
user_auth($buf);
} else {