summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2009-08-15 10:07:00 +0200
committerStefan Metzmacher <metze@samba.org>2009-08-17 09:25:45 +0200
commit47452b8cecaa9ad17d88e259a9972c5ddd007629 (patch)
tree465aa7b5217406e10ba519c65b944402312a88c2
parentd60f049eaf30d7a717291b2f295cc889efc7afa9 (diff)
downloadsamba-47452b8cecaa9ad17d88e259a9972c5ddd007629.tar.gz
samba-47452b8cecaa9ad17d88e259a9972c5ddd007629.tar.bz2
samba-47452b8cecaa9ad17d88e259a9972c5ddd007629.zip
s3:smbd: add smbd_notify_cancel_by_smbreq()
This function will be used by the SMB2 notify code. metze
-rw-r--r--source3/smbd/globals.h3
-rw-r--r--source3/smbd/notify.c20
2 files changed, 23 insertions, 0 deletions
diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h
index bfed901bf4..4fa85a9fdb 100644
--- a/source3/smbd/globals.h
+++ b/source3/smbd/globals.h
@@ -234,6 +234,9 @@ bool smbd_dirptr_get_entry(TALLOC_CTX *ctx,
uint32_t *_mode,
long *_prev_offset);
+void smbd_notify_cancel_by_smbreq(struct smbd_server_connection *sconn,
+ const struct smb_request *smbreq);
+
void smbd_server_connection_terminate_ex(struct smbd_server_connection *sconn,
const char *reason,
const char *location);
diff --git a/source3/smbd/notify.c b/source3/smbd/notify.c
index 8f37923865..e430fcfc04 100644
--- a/source3/smbd/notify.c
+++ b/source3/smbd/notify.c
@@ -317,6 +317,26 @@ void remove_pending_change_notify_requests_by_mid(uint16 mid)
change_notify_remove_request(map->req);
}
+void smbd_notify_cancel_by_smbreq(struct smbd_server_connection *sconn,
+ const struct smb_request *smbreq)
+{
+ struct notify_mid_map *map;
+
+ for (map = sconn->smb1.notify_mid_maps; map; map = map->next) {
+ if (map->req->req == smbreq) {
+ break;
+ }
+ }
+
+ if (map == NULL) {
+ return;
+ }
+
+ change_notify_reply(map->req->fsp->conn, map->req->req,
+ NT_STATUS_CANCELLED, 0, NULL, map->req->reply_fn);
+ change_notify_remove_request(map->req);
+}
+
/****************************************************************************
Delete entries by fnum from the change notify pending queue.
*****************************************************************************/