status = smb_raw_unlink(cli->tree, &io);
CHECK_STATUS(status, NT_STATUS_FILE_IS_A_DIRECTORY);
- printf("Trying wildcards\n");
- smbcli_close(cli->tree, smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE));
- io.unlink.in.pattern = BASEDIR "\\t*.t";
- io.unlink.in.attrib = 0;
- status = smb_raw_unlink(cli->tree, &io);
- CHECK_STATUS(status, NT_STATUS_NO_SUCH_FILE);
-
- io.unlink.in.pattern = BASEDIR "\\z*";
- io.unlink.in.attrib = 0;
- status = smb_raw_unlink(cli->tree, &io);
- CHECK_STATUS(status, NT_STATUS_NO_SUCH_FILE);
-
- io.unlink.in.pattern = BASEDIR "\\z*";
- io.unlink.in.attrib = FILE_ATTRIBUTE_DIRECTORY;
- status = smb_raw_unlink(cli->tree, &io);
-
- if (torture_setting_bool(tctx, "samba3", false)) {
- /*
- * In Samba3 we gave up upon getting the error codes in
- * wildcard unlink correct. Trying gentest showed that this is
- * irregular beyond our capabilities. So for
- * FILE_ATTRIBUTE_DIRECTORY we always return NAME_INVALID.
- * Tried by jra and vl. If others feel like solving this
- * puzzle, please tell us :-)
- */
- CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_INVALID);
- }
- else {
- CHECK_STATUS(status, NT_STATUS_NO_SUCH_FILE);
- }
-
- io.unlink.in.pattern = BASEDIR "\\*";
- io.unlink.in.attrib = FILE_ATTRIBUTE_DIRECTORY;
- status = smb_raw_unlink(cli->tree, &io);
- CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_INVALID);
-
- io.unlink.in.pattern = BASEDIR "\\?";
- io.unlink.in.attrib = FILE_ATTRIBUTE_DIRECTORY;
- status = smb_raw_unlink(cli->tree, &io);
- CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_INVALID);
-
- io.unlink.in.pattern = BASEDIR "\\t*";
- io.unlink.in.attrib = FILE_ATTRIBUTE_DIRECTORY;
- status = smb_raw_unlink(cli->tree, &io);
- if (torture_setting_bool(tctx, "samba3", false)) {
- CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_INVALID);
- }
- else {
- CHECK_STATUS(status, NT_STATUS_OK);
- }
-
- smbcli_close(cli->tree, smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE));
-
- io.unlink.in.pattern = BASEDIR "\\*.dat";
- io.unlink.in.attrib = FILE_ATTRIBUTE_DIRECTORY;
- status = smb_raw_unlink(cli->tree, &io);
- if (torture_setting_bool(tctx, "samba3", false)) {
- CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_INVALID);
- }
- else {
- CHECK_STATUS(status, NT_STATUS_NO_SUCH_FILE);
- }
-
- io.unlink.in.pattern = BASEDIR "\\*.tx?";
- io.unlink.in.attrib = 0;
- status = smb_raw_unlink(cli->tree, &io);
- CHECK_STATUS(status, NT_STATUS_OK);
-
- status = smb_raw_unlink(cli->tree, &io);
- CHECK_STATUS(status, NT_STATUS_NO_SUCH_FILE);
-
-
done:
smb_raw_exit(cli->session);
smbcli_deltree(cli->tree, BASEDIR);