svn commit: samba r12093 - in branches/SAMBA_4_0/source/smb_server/smb2: .

metze at samba.org metze at samba.org
Tue Dec 6 14:11:56 GMT 2005


Author: metze
Date: 2005-12-06 14:11:55 +0000 (Tue, 06 Dec 2005)
New Revision: 12093

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12093

Log:
add missing file

metze
Added:
   branches/SAMBA_4_0/source/smb_server/smb2/keepalive.c


Changeset:
Added: branches/SAMBA_4_0/source/smb_server/smb2/keepalive.c
===================================================================
--- branches/SAMBA_4_0/source/smb_server/smb2/keepalive.c	2005-12-06 13:26:24 UTC (rev 12092)
+++ branches/SAMBA_4_0/source/smb_server/smb2/keepalive.c	2005-12-06 14:11:55 UTC (rev 12093)
@@ -0,0 +1,74 @@
+/* 
+   Unix SMB2 implementation.
+   
+   Copyright (C) Stefan Metzmacher	2005
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "includes.h"
+#include "auth/auth.h"
+#include "libcli/smb2/smb2.h"
+#include "libcli/smb2/smb2_calls.h"
+#include "smb_server/smb_server.h"
+#include "smb_server/smb2/smb2_server.h"
+#include "smbd/service_stream.h"
+
+static NTSTATUS smb2srv_keepalive_backend(struct smb2srv_request *req)
+{
+	/* TODO: maybe update some flags on the connection struct */
+	return NT_STATUS_OK;
+}
+
+static void smb2srv_keepalive_send(struct smb2srv_request *req)
+{
+	NTSTATUS status;
+
+	if (NT_STATUS_IS_ERR(req->status)) {
+		smb2srv_send_error(req, req->status);
+		return;
+	}
+
+	status = smb2srv_setup_reply(req, 0x04, 0);
+	if (!NT_STATUS_IS_OK(status)) {
+		smbsrv_terminate_connection(req->smb_conn, nt_errstr(status));
+		talloc_free(req);
+		return;
+	}
+
+	SSVAL(req->out.body, 0x02, 0);
+
+	smb2srv_send_reply(req);
+}
+
+void smb2srv_keepalive_recv(struct smb2srv_request *req)
+{
+	uint16_t _pad;
+
+	if (req->in.body_size < 0x04) {
+		smb2srv_send_error(req,  NT_STATUS_FOOBAR);
+		return;
+	}
+
+	_pad	= SVAL(req->in.body, 0x02);
+
+	req->status = smb2srv_keepalive_backend(req);
+
+	if (req->control_flags & SMB2SRV_REQ_CTRL_FLAG_NOT_REPLY) {
+		talloc_free(req);
+		return;
+	}
+	smb2srv_keepalive_send(req);
+}



More information about the samba-cvs mailing list