| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /* 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;
- unsigned int max_inflight_req;
- unsigned int max_ip_connections;
- char *conf[SERVER_CONF_WORK_GROUP + 1];
- struct task_struct *dh_task;
- bool bind_interfaces_only;
- };
- 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__ */
|