summaryrefslogtreecommitdiff
path: root/source4/smbd/conn.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/smbd/conn.c')
-rw-r--r--source4/smbd/conn.c158
1 files changed, 0 insertions, 158 deletions
diff --git a/source4/smbd/conn.c b/source4/smbd/conn.c
deleted file mode 100644
index 0498b3cb5d..0000000000
--- a/source4/smbd/conn.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
- Manage connections_struct structures
- Copyright (C) Andrew Tridgell 1998
- Copyright (C) Alexander Bokovoy 2002
-
- 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"
-
-/* set these to define the limits of the server. NOTE These are on a
- per-client basis. Thus any one machine can't connect to more than
- MAX_CONNECTIONS services, but any number of machines may connect at
- one time. */
-#define MAX_CONNECTIONS 128
-
-/****************************************************************************
-init the conn structures
-****************************************************************************/
-void conn_init(struct server_context *smb)
-{
- smb->tree.bmap = bitmap_allocate(MAX_CONNECTIONS);
-}
-
-/****************************************************************************
-check if a snum is in use
-****************************************************************************/
-BOOL conn_snum_used(struct server_context *smb, int snum)
-{
- struct tcon_context *conn;
- for (conn=smb->tree.connections;conn;conn=conn->next) {
- if (conn->service == snum) {
- return(True);
- }
- }
- return(False);
-}
-
-
-/****************************************************************************
-find a conn given a cnum
-****************************************************************************/
-struct tcon_context *conn_find(struct server_context *smb, unsigned cnum)
-{
- int count=0;
- struct tcon_context *conn;
-
- for (conn=smb->tree.connections;conn;conn=conn->next,count++) {
- if (conn->cnum == cnum) {
- if (count > 10) {
- DLIST_PROMOTE(smb->tree.connections, conn);
- }
- return conn;
- }
- }
-
- return NULL;
-}
-
-
-/****************************************************************************
- find first available connection slot, starting from a random position.
-The randomisation stops problems with the server dieing and clients
-thinking the server is still available.
-****************************************************************************/
-struct tcon_context *conn_new(struct server_context *smb)
-{
- TALLOC_CTX *mem_ctx;
- struct tcon_context *conn;
- int i;
-
- i = bitmap_find(smb->tree.bmap, 1);
-
- if (i == -1) {
- DEBUG(1,("ERROR! Out of connection structures\n"));
- return NULL;
- }
-
- mem_ctx = talloc_init("tcon_context[%d]", i);
-
- conn = (struct tcon_context *)talloc(mem_ctx, sizeof(*conn));
- if (!conn) return NULL;
-
- ZERO_STRUCTP(conn);
-
- conn->mem_ctx = mem_ctx;
- conn->cnum = i;
- conn->smb = smb;
-
- bitmap_set(smb->tree.bmap, i);
-
- smb->tree.num_open++;
-
- DLIST_ADD(smb->tree.connections, conn);
-
- return conn;
-}
-
-/****************************************************************************
-close all conn structures
-****************************************************************************/
-void conn_close_all(struct server_context *smb)
-{
- struct tcon_context *conn, *next;
- for (conn=smb->tree.connections;conn;conn=next) {
- next=conn->next;
- close_cnum(conn);
- }
-}
-
-
-#if REWRITE_REMOVED
-/****************************************************************************
-clear a vuid out of the validity cache, and as the 'owner' of a connection.
-****************************************************************************/
-void conn_clear_vuid_cache(struct server_context *smb, uint16 vuid)
-{
- struct tcon_context *conn;
- unsigned int i;
-
- for (conn=smb->tree.connections;conn;conn=conn->next) {
- for (i=0;i<conn->vuid_cache.entries && i< VUID_CACHE_SIZE;i++) {
- if (conn->vuid_cache.list[i] == vuid) {
- conn->vuid_cache.list[i] = UID_FIELD_INVALID;
- }
- }
- }
-}
-#endif
-
-/****************************************************************************
- Free a conn structure.
-****************************************************************************/
-
-void conn_free(struct server_context *smb, struct tcon_context *conn)
-{
- DLIST_REMOVE(smb->tree.connections, conn);
-
- bitmap_clear(smb->tree.bmap, conn->cnum);
- smb->tree.num_open--;
-
- ZERO_STRUCTP(conn);
- SAFE_FREE(conn);
-}
-