0001
0002
0003
0004
0005
0006 #ifndef __SERVER_H__
0007 #define __SERVER_H__
0008
0009 #include "smbacl.h"
0010
0011
0012
0013
0014 enum {
0015 SERVER_STATE_STARTING_UP,
0016 SERVER_STATE_RUNNING,
0017 SERVER_STATE_RESETTING,
0018 SERVER_STATE_SHUTTING_DOWN,
0019 };
0020
0021
0022
0023
0024 enum {
0025 SERVER_CONF_NETBIOS_NAME,
0026 SERVER_CONF_SERVER_STRING,
0027 SERVER_CONF_WORK_GROUP,
0028 };
0029
0030 struct ksmbd_server_config {
0031 unsigned int flags;
0032 unsigned int state;
0033 short signing;
0034 short enforced_signing;
0035 short min_protocol;
0036 short max_protocol;
0037 unsigned short tcp_port;
0038 unsigned short ipc_timeout;
0039 unsigned long ipc_last_active;
0040 unsigned long deadtime;
0041 unsigned int share_fake_fscaps;
0042 struct smb_sid domain_sid;
0043 unsigned int auth_mechs;
0044
0045 char *conf[SERVER_CONF_WORK_GROUP + 1];
0046 };
0047
0048 extern struct ksmbd_server_config server_conf;
0049
0050 int ksmbd_set_netbios_name(char *v);
0051 int ksmbd_set_server_string(char *v);
0052 int ksmbd_set_work_group(char *v);
0053
0054 char *ksmbd_netbios_name(void);
0055 char *ksmbd_server_string(void);
0056 char *ksmbd_work_group(void);
0057
0058 static inline int ksmbd_server_running(void)
0059 {
0060 return READ_ONCE(server_conf.state) == SERVER_STATE_RUNNING;
0061 }
0062
0063 static inline int ksmbd_server_configurable(void)
0064 {
0065 return READ_ONCE(server_conf.state) < SERVER_STATE_RESETTING;
0066 }
0067
0068 int server_queue_ctrl_init_work(void);
0069 int server_queue_ctrl_reset_work(void);
0070 #endif