{
struct sync_cb_data *cb_data = private_data;
+ if (cb_data->status == SMB2_STATUS_CANCELLED) {
+ free(cb_data);
+ return;
+ }
+
cb_data->is_finished = 1;
cb_data->status = status;
}
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
{
struct sync_cb_data *cb_data = private_data;
+ if (cb_data->status == SMB2_STATUS_CANCELLED) {
+ free(cb_data);
+ return;
+ }
+
cb_data->is_finished = 1;
cb_data->ptr = command_data;
}
}
if (wait_for_reply(smb2, cb_data) < 0) {
- free(cb_data);
+ cb_data->status = SMB2_STATUS_CANCELLED;
return NULL;
}
{
struct sync_cb_data *cb_data = private_data;
+ if (cb_data->status == SMB2_STATUS_CANCELLED) {
+ free(cb_data);
+ return;
+ }
+
cb_data->is_finished = 1;
cb_data->ptr = command_data;
}
}
if (wait_for_reply(smb2, cb_data) < 0) {
- free(cb_data);
+ cb_data->status = SMB2_STATUS_CANCELLED;
return NULL;
}
{
struct sync_cb_data *cb_data = private_data;
+ if (cb_data->status == SMB2_STATUS_CANCELLED) {
+ free(cb_data);
+ return;
+ }
+
cb_data->is_finished = 1;
cb_data->status = status;
}
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
{
struct sync_cb_data *cb_data = private_data;
+ if (cb_data->status == SMB2_STATUS_CANCELLED) {
+ free(cb_data);
+ return;
+ }
+
cb_data->is_finished = 1;
cb_data->status = status;
}
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
{
struct sync_cb_data *cb_data = private_data;
+ if (cb_data->status == SMB2_STATUS_CANCELLED) {
+ free(cb_data);
+ return;
+ }
+
cb_data->is_finished = 1;
cb_data->status = status;
}
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
struct sync_cb_data *cb_data = private_data;
struct readlink_cb_data *rl_data = cb_data->ptr;
+ if (cb_data->status == SMB2_STATUS_CANCELLED) {
+ free(cb_data);
+ return;
+ }
+
cb_data->is_finished = 1;
cb_data->status = status;
strncpy(rl_data->buf, command_data, rl_data->len);
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;
static void echo_cb(struct smb2_context *smb2, int status,
void *command_data, void *private_data)
{
- struct sync_cb_data *cb_data = private_data;
+ struct sync_cb_data *cb_data = private_data;
- cb_data->is_finished = 1;
- cb_data->status = status;
+ if (cb_data->status == SMB2_STATUS_CANCELLED) {
+ free(cb_data);
+ return;
+ }
+
+ cb_data->is_finished = 1;
+ cb_data->status = status;
}
/*
rc = wait_for_reply(smb2, cb_data);
if (rc < 0) {
- goto out;
+ cb_data->status = SMB2_STATUS_CANCELLED;
+ return rc;
}
rc = cb_data->status;