mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 09:19:51 +00:00
![Namjae Jeon](/assets/img/avatar_default.png)
Add max connections parameter to limit number of maximum simultaneous
connections.
Fixes: 0626e6641f
("cifsd: add server handler for central processing and tranport layers")
Cc: stable@vger.kernel.org
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
71 lines
1.5 KiB
C
71 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Copyright (C) 2018 Samsung Electronics Co., Ltd.
|
|
*/
|
|
|
|
#ifndef __SERVER_H__
|
|
#define __SERVER_H__
|
|
|
|
#include "smbacl.h"
|
|
|
|
/*
|
|
* Server state type
|
|
*/
|
|
enum {
|
|
SERVER_STATE_STARTING_UP,
|
|
SERVER_STATE_RUNNING,
|
|
SERVER_STATE_RESETTING,
|
|
SERVER_STATE_SHUTTING_DOWN,
|
|
};
|
|
|
|
/*
|
|
* Server global config string index
|
|
*/
|
|
enum {
|
|
SERVER_CONF_NETBIOS_NAME,
|
|
SERVER_CONF_SERVER_STRING,
|
|
SERVER_CONF_WORK_GROUP,
|
|
};
|
|
|
|
struct ksmbd_server_config {
|
|
unsigned int flags;
|
|
unsigned int state;
|
|
short signing;
|
|
short enforced_signing;
|
|
short min_protocol;
|
|
short max_protocol;
|
|
unsigned short tcp_port;
|
|
unsigned short ipc_timeout;
|
|
unsigned long ipc_last_active;
|
|
unsigned long deadtime;
|
|
unsigned int share_fake_fscaps;
|
|
struct smb_sid domain_sid;
|
|
unsigned int auth_mechs;
|
|
unsigned int max_connections;
|
|
|
|
char *conf[SERVER_CONF_WORK_GROUP + 1];
|
|
};
|
|
|
|
extern struct ksmbd_server_config server_conf;
|
|
|
|
int ksmbd_set_netbios_name(char *v);
|
|
int ksmbd_set_server_string(char *v);
|
|
int ksmbd_set_work_group(char *v);
|
|
|
|
char *ksmbd_netbios_name(void);
|
|
char *ksmbd_server_string(void);
|
|
char *ksmbd_work_group(void);
|
|
|
|
static inline int ksmbd_server_running(void)
|
|
{
|
|
return READ_ONCE(server_conf.state) == SERVER_STATE_RUNNING;
|
|
}
|
|
|
|
static inline int ksmbd_server_configurable(void)
|
|
{
|
|
return READ_ONCE(server_conf.state) < SERVER_STATE_RESETTING;
|
|
}
|
|
|
|
int server_queue_ctrl_init_work(void);
|
|
int server_queue_ctrl_reset_work(void);
|
|
#endif /* __SERVER_H__ */
|