1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
/*
Unix SMB/CIFS implementation.
messages.c header
Copyright (C) Andrew Tridgell 2000
Copyright (C) 2001, 2002 by Martin Pool
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.
*/
#ifndef _MESSAGES_H_
#define _MESSAGES_H_
/* general messages */
#define MSG_DEBUG 1
#define MSG_PING 2
#define MSG_PONG 3
#define MSG_PROFILE 4
#define MSG_REQ_DEBUGLEVEL 5
#define MSG_DEBUGLEVEL 6
#define MSG_REQ_PROFILELEVEL 7
#define MSG_PROFILELEVEL 8
#define MSG_REQ_POOL_USAGE 9
#define MSG_POOL_USAGE 10
/* If dmalloc is included, set a steady-state mark */
#define MSG_REQ_DMALLOC_MARK 11
/* If dmalloc is included, dump to the dmalloc log a description of
* what has changed since the last MARK */
#define MSG_REQ_DMALLOC_LOG_CHANGED 12
#define MSG_SHUTDOWN 13
/* nmbd messages */
#define MSG_FORCE_ELECTION 1001
#define MSG_WINS_NEW_ENTRY 1002
#define MSG_SEND_PACKET 1003
/* printing messages */
/* #define MSG_PRINTER_NOTIFY 2001*/ /* Obsolete */
#define MSG_PRINTER_NOTIFY2 2002
#define MSG_PRINTER_DRVUPGRADE 2101
#define MSG_PRINTERDATA_INIT_RESET 2102
#define MSG_PRINTER_UPDATE 2103
#define MSG_PRINTER_MOD 2104
/* smbd messages */
#define MSG_SMB_CONF_UPDATED 3001
#define MSG_SMB_FORCE_TDIS 3002
#define MSG_SMB_SAM_SYNC 3003
#define MSG_SMB_SAM_REPL 3004
#define MSG_SMB_UNLOCK 3005
#define MSG_SMB_BREAK_REQUEST 3006
#define MSG_SMB_BREAK_RESPONSE 3007
#define MSG_SMB_ASYNC_LEVEL2_BREAK 3008
#define MSG_SMB_OPEN_RETRY 3009
#define MSG_SMB_KERNEL_BREAK 3010
#define MSG_SMB_FILE_RENAME 3011
#define MSG_SMB_INJECT_FAULT 3012
#define MSG_SMB_BLOCKING_LOCK_CANCEL 3013
#define MSG_SMB_NOTIFY 3014
#define MSG_SMB_STAT_CACHE_DELETE 3015
/*
* Samba4 compatibility
*/
#define MSG_PVFS_NOTIFY 3016
/* winbind messages */
#define MSG_WINBIND_FINISHED 4001
#define MSG_WINBIND_FORGET_STATE 4002
#define MSG_WINBIND_ONLINE 4003
#define MSG_WINBIND_OFFLINE 4004
#define MSG_WINBIND_ONLINESTATUS 4005
#define MSG_WINBIND_TRY_TO_GO_ONLINE 4006
#define MSG_WINBIND_FAILED_TO_GO_ONLINE 4007
/* Flags to classify messages - used in message_send_all() */
/* Sender will filter by flag. */
#define FLAG_MSG_GENERAL 0x0001
#define FLAG_MSG_SMBD 0x0002
#define FLAG_MSG_NMBD 0x0004
#define FLAG_MSG_PRINT_NOTIFY 0x0008
#define FLAG_MSG_PRINT_GENERAL 0x0010
struct server_id {
pid_t pid;
};
struct messaging_context;
struct data_blob;
unsigned int messages_pending_for_pid(struct messaging_context *msg_ctx,
struct server_id pid);
void message_dispatch(struct messaging_context *msg_ctx);
BOOL message_send_all(struct messaging_context *msg_ctx,
int msg_type,
const void *buf, size_t len,
int *n_sent);
void message_block(void);
void message_unblock(void);
struct event_context *messaging_event_context(struct messaging_context *msg_ctx);
struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
struct server_id server_id,
struct event_context *ev);
NTSTATUS messaging_register(struct messaging_context *msg_ctx,
void *private_data,
uint32_t msg_type,
void (*fn)(struct messaging_context *msg,
void *private_data,
uint32_t msg_type,
struct server_id server_id,
struct data_blob *data));
void messaging_deregister(struct messaging_context *ctx, uint32_t msg_type,
void *private_data);
NTSTATUS messaging_send(struct messaging_context *msg_ctx,
struct server_id server,
uint32_t msg_type, const struct data_blob *data);
NTSTATUS messaging_send_buf(struct messaging_context *msg_ctx,
struct server_id server, uint32_t msg_type,
const uint8 *buf, size_t len);
#endif
|