It is clearer to avoid the implicit return on talloc_tos()
Andrew Bartlett
/*****************************************************************************
returns an NT_STATUS constant as a string for inclusion in autogen C code
*****************************************************************************/
/*****************************************************************************
returns an NT_STATUS constant as a string for inclusion in autogen C code
*****************************************************************************/
-const char *get_nt_error_c_code(NTSTATUS nt_code);
+const char *get_nt_error_c_code(void *mem_ctx, NTSTATUS nt_code);
/*****************************************************************************
returns the NT_STATUS constant matching the string supplied (as an NTSTATUS)
/*****************************************************************************
returns the NT_STATUS constant matching the string supplied (as an NTSTATUS)
const char *nt_errstr(NTSTATUS nt_code);
const char *get_friendly_nt_error_msg(NTSTATUS nt_code);
const char *nt_errstr(NTSTATUS nt_code);
const char *get_friendly_nt_error_msg(NTSTATUS nt_code);
-const char *get_nt_error_c_code(NTSTATUS nt_code);
NTSTATUS nt_status_string_to_code(const char *nt_status_str);
NTSTATUS nt_status_squash(NTSTATUS nt_status);
NTSTATUS nt_status_string_to_code(const char *nt_status_str);
NTSTATUS nt_status_squash(NTSTATUS nt_status);
Returns an NT_STATUS constant as a string for inclusion in autogen C code.
*****************************************************************************/
Returns an NT_STATUS constant as a string for inclusion in autogen C code.
*****************************************************************************/
-const char *get_nt_error_c_code(NTSTATUS nt_code)
+const char *get_nt_error_c_code(TALLOC_CTX *mem_ctx, NTSTATUS nt_code)
{
char *result;
int idx = 0;
{
char *result;
int idx = 0;
while (nt_errs[idx].nt_errstr != NULL) {
if (NT_STATUS_V(nt_errs[idx].nt_errcode) ==
NT_STATUS_V(nt_code)) {
while (nt_errs[idx].nt_errstr != NULL) {
if (NT_STATUS_V(nt_errs[idx].nt_errcode) ==
NT_STATUS_V(nt_code)) {
- return nt_errs[idx].nt_errstr;
+ result = talloc_strdup(mem_ctx, nt_errs[idx].nt_errstr);
+ return result;
- result = talloc_asprintf(talloc_tos(), "NT_STATUS(0x%08x)",
+ result = talloc_asprintf(mem_ctx, "NT_STATUS(0x%08x)",
if (NT_STATUS_V(nt_status) != error) {
printf("/*\t{ This NT error code was 'sqashed'\n\t from %s to %s \n\t during the session setup }\n*/\n",
if (NT_STATUS_V(nt_status) != error) {
printf("/*\t{ This NT error code was 'sqashed'\n\t from %s to %s \n\t during the session setup }\n*/\n",
- get_nt_error_c_code(NT_STATUS(error)),
- get_nt_error_c_code(nt_status));
+ get_nt_error_c_code(talloc_tos(), NT_STATUS(error)),
+ get_nt_error_c_code(talloc_tos(), nt_status));
}
printf("\t{%s,\t%s,\t%s},\n",
smb_dos_err_class(errclass),
smb_dos_err_name(errclass, errnum),
}
printf("\t{%s,\t%s,\t%s},\n",
smb_dos_err_class(errclass),
smb_dos_err_name(errclass, errnum),
- get_nt_error_c_code(NT_STATUS(error)));
+ get_nt_error_c_code(talloc_tos(), NT_STATUS(error)));
Returns an NT_STATUS constant as a string for inclusion in autogen C code.
*****************************************************************************/
Returns an NT_STATUS constant as a string for inclusion in autogen C code.
*****************************************************************************/
-const char *get_nt_error_c_code(NTSTATUS nt_code)
+const char *get_nt_error_c_code(TALLOC_CTX *mem_ctx, NTSTATUS nt_code)
int idx = 0;
while (nt_errs[idx].nt_errstr != NULL) {
if (NT_STATUS_V(nt_errs[idx].nt_errcode) ==
NT_STATUS_V(nt_code)) {
int idx = 0;
while (nt_errs[idx].nt_errstr != NULL) {
if (NT_STATUS_V(nt_errs[idx].nt_errcode) ==
NT_STATUS_V(nt_code)) {
- return nt_errs[idx].nt_errstr;
+ result = talloc_strdup(mem_ctx, nt_errs[idx].nt_errstr);
+ return result;
- slprintf(out, sizeof(out), "NT_STATUS(0x%08x)", NT_STATUS_V(nt_code));
-
- return out;
+ result = talloc_asprintf(mem_ctx, "NT_STATUS(0x%08x)",
+ NT_STATUS_V(nt_code));
+ return result;
}
/*****************************************************************************
}
/*****************************************************************************
static void nbench_unlink_send(struct ntvfs_request *req)
{
union smb_unlink *unl = req->async_states->private_data;
static void nbench_unlink_send(struct ntvfs_request *req)
{
union smb_unlink *unl = req->async_states->private_data;
nbench_log(req, "Unlink \"%s\" 0x%x %s\n",
unl->unlink.in.pattern, unl->unlink.in.attrib,
nbench_log(req, "Unlink \"%s\" 0x%x %s\n",
unl->unlink.in.pattern, unl->unlink.in.attrib,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
PASS_THRU_REP_POST(req);
}
PASS_THRU_REP_POST(req);
}
nbench_log(req, "Chkpath \"%s\" %s\n",
cp->chkpath.in.path,
nbench_log(req, "Chkpath \"%s\" %s\n",
cp->chkpath.in.path,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
PASS_THRU_REP_POST(req);
}
PASS_THRU_REP_POST(req);
}
nbench_log(req, "QUERY_PATH_INFORMATION \"%s\" %d %s\n",
info->generic.in.file.path,
info->generic.level,
nbench_log(req, "QUERY_PATH_INFORMATION \"%s\" %d %s\n",
info->generic.in.file.path,
info->generic.level,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
PASS_THRU_REP_POST(req);
}
PASS_THRU_REP_POST(req);
}
nbench_log(req, "QUERY_FILE_INFORMATION %s %d %s\n",
nbench_ntvfs_handle_string(req, info->generic.in.file.ntvfs),
info->generic.level,
nbench_log(req, "QUERY_FILE_INFORMATION %s %d %s\n",
nbench_ntvfs_handle_string(req, info->generic.in.file.ntvfs),
info->generic.level,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
PASS_THRU_REP_POST(req);
}
PASS_THRU_REP_POST(req);
}
nbench_log(req, "SET_PATH_INFORMATION \"%s\" %d %s\n",
st->generic.in.file.path,
st->generic.level,
nbench_log(req, "SET_PATH_INFORMATION \"%s\" %d %s\n",
st->generic.in.file.path,
st->generic.level,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
PASS_THRU_REP_POST(req);
}
PASS_THRU_REP_POST(req);
}
io->ntcreatex.in.create_options,
io->ntcreatex.in.open_disposition,
nbench_ntvfs_handle_string(req, io->ntcreatex.out.file.ntvfs),
io->ntcreatex.in.create_options,
io->ntcreatex.in.open_disposition,
nbench_ntvfs_handle_string(req, io->ntcreatex.out.file.ntvfs),
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
nbench_log(req, "Rmdir \"%s\" %s\n",
rd->in.path,
nbench_log(req, "Rmdir \"%s\" %s\n",
rd->in.path,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
PASS_THRU_REP_POST(req);
}
PASS_THRU_REP_POST(req);
}
nbench_log(req, "Rename \"%s\" \"%s\" %s\n",
ren->rename.in.pattern1,
ren->rename.in.pattern2,
nbench_log(req, "Rename \"%s\" \"%s\" %s\n",
ren->rename.in.pattern1,
ren->rename.in.pattern2,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
(int)rd->readx.in.offset,
rd->readx.in.maxcnt,
rd->readx.out.nread,
(int)rd->readx.in.offset,
rd->readx.in.maxcnt,
rd->readx.out.nread,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
break;
default:
nbench_log(req, "Read-%d - NOT HANDLED\n",
break;
default:
nbench_log(req, "Read-%d - NOT HANDLED\n",
(int)wr->writex.in.offset,
wr->writex.in.count,
wr->writex.out.nwritten,
(int)wr->writex.in.offset,
wr->writex.in.count,
wr->writex.out.nwritten,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
break;
case RAW_WRITE_WRITE:
break;
case RAW_WRITE_WRITE:
wr->write.in.offset,
wr->write.in.count,
wr->write.out.nwritten,
wr->write.in.offset,
wr->write.in.count,
wr->write.out.nwritten,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
case RAW_FLUSH_FLUSH:
nbench_log(req, "Flush %s %s\n",
nbench_ntvfs_handle_string(req, io->flush.in.file.ntvfs),
case RAW_FLUSH_FLUSH:
nbench_log(req, "Flush %s %s\n",
nbench_ntvfs_handle_string(req, io->flush.in.file.ntvfs),
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
break;
case RAW_FLUSH_ALL:
nbench_log(req, "Flush %d %s\n",
0xFFFF,
break;
case RAW_FLUSH_ALL:
nbench_log(req, "Flush %d %s\n",
0xFFFF,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
break;
default:
nbench_log(req, "Flush-%d - NOT HANDLED\n",
break;
default:
nbench_log(req, "Flush-%d - NOT HANDLED\n",
case RAW_CLOSE_CLOSE:
nbench_log(req, "Close %s %s\n",
nbench_ntvfs_handle_string(req, io->close.in.file.ntvfs),
case RAW_CLOSE_CLOSE:
nbench_log(req, "Close %s %s\n",
nbench_ntvfs_handle_string(req, io->close.in.file.ntvfs),
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
nbench_ntvfs_handle_string(req, lck->lockx.in.file.ntvfs),
(int)lck->lockx.in.locks[0].offset,
(int)lck->lockx.in.locks[0].count,
nbench_ntvfs_handle_string(req, lck->lockx.in.file.ntvfs),
(int)lck->lockx.in.locks[0].offset,
(int)lck->lockx.in.locks[0].count,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
} else if (lck->generic.level == RAW_LOCK_LOCKX &&
lck->lockx.in.ulock_cnt == 1) {
nbench_log(req, "UnlockX %s %d %d %s\n",
nbench_ntvfs_handle_string(req, lck->lockx.in.file.ntvfs),
(int)lck->lockx.in.locks[0].offset,
(int)lck->lockx.in.locks[0].count,
} else if (lck->generic.level == RAW_LOCK_LOCKX &&
lck->lockx.in.ulock_cnt == 1) {
nbench_log(req, "UnlockX %s %d %d %s\n",
nbench_ntvfs_handle_string(req, lck->lockx.in.file.ntvfs),
(int)lck->lockx.in.locks[0].offset,
(int)lck->lockx.in.locks[0].count,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
} else {
nbench_log(req, "Lock-%d - NOT HANDLED\n", lck->generic.level);
}
} else {
nbench_log(req, "Lock-%d - NOT HANDLED\n", lck->generic.level);
}
nbench_log(req, "SET_FILE_INFORMATION %s %d %s\n",
nbench_ntvfs_handle_string(req, info->generic.in.file.ntvfs),
info->generic.level,
nbench_log(req, "SET_FILE_INFORMATION %s %d %s\n",
nbench_ntvfs_handle_string(req, info->generic.in.file.ntvfs),
info->generic.level,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
PASS_THRU_REP_POST(req);
}
PASS_THRU_REP_POST(req);
}
nbench_log(req, "QUERY_FS_INFORMATION %d %s\n",
fs->generic.level,
nbench_log(req, "QUERY_FS_INFORMATION %d %s\n",
fs->generic.level,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));
PASS_THRU_REP_POST(req);
}
PASS_THRU_REP_POST(req);
}
io->t2ffirst.data_level,
io->t2ffirst.in.max_count,
io->t2ffirst.out.count,
io->t2ffirst.data_level,
io->t2ffirst.in.max_count,
io->t2ffirst.out.count,
- get_nt_error_c_code(req->async_states->status));
+ get_nt_error_c_code(req, req->async_states->status));