2
This is the state machine for the smpd listener process.
7
State [smpd listening],[label="smpd\nlistening"]
9
Change_State([smpd listening], [label="accept"])
10
Change_State([writing challenge string], [label="new context" style=dotted])
11
State [writing challenge string], [label="writing challenge string"]
13
Change_State([reading challenge response])
14
State [reading challenge response], [label="reading challenge response"]
16
Change_State([writing connect result])
17
State [writing connect result]
20
Change_State([reading session request], [label="accepted"])
22
Change_State([closing], [label="rejected"])
23
State [reading session request],[label="reading session request"]
26
Change_State([writing cred/job request],[label="process"])
27
else if process_nocred
28
Change_State([writing nocred request],[label="process"])
30
Change_State([writing pwd request],[label="smpd"])
32
Change_State([writing sspi request],[label="smpd"])
34
Change_State([writing nopwd request],[label="smpd"])
35
State [writing cred/job request],[label="writing cred/job request"]
37
Change_State([reading cred ack])
38
State [reading cred ack],[label="reading cred ack"]
41
Change_State([reading account],[label="yes"])
43
Change_State([closing],[label="no"])
45
Change_State([reading sspi header],[label="sspi"])
47
Change_State([reading sspi header],[label="sspi_job"])
48
State [reading sspi header],[label="reading sspi header"]
50
Change_State([reading sspi buffer])
51
State [reading sspi buffer],[label="reading sspi buffer"]
54
Change_State([writing sspi header],[label="more data"])
56
Change_State([writing delegate],[label="done"])
57
State [writing sspi header],[label="writing sspi header"]
59
Change_State([writing sspi buffer])
60
State [writing sspi buffer],[label="writing sspi buffer"]
62
Change_State([reading sspi header])
63
State [writing delegate],[label="writing delegate"]
65
Change_State([reading delegate request result])
66
State [reading delegate request result],[label="reading delegate request result"]
69
Change_State([writing impersonate result],[label="yes/no/identify"])
71
Change_State([reading job key],[label="key"])
72
State [reading job key],[label="reading job key"]
74
Change_State([writing impersonate result])
75
State [writing impersonate result],[label="writing impersonate result"]
77
if impersonate success
78
Change_State([writing reconnect request],[label="process:success"])
80
Change_State([reading session header],[label="smpd:success"])
82
Change_State([closing],[label="fail"])
83
State [writing nocred request],[label="writing nocred request"]
86
Change_State([writing reconnect request],[label="win"])
88
Change_State([writing noreconnect request],[label="unix"])
89
State [writing pwd request],[label="writing pwd request"]
91
Change_State([reading smpd password])
92
State [writing sspi request],[label="writing sspi request"]
94
Change_State([reading sspi header])
95
State [writing nopwd request],[label="writing nopwd request"]
97
Change_State([reading session header])
98
State [reading account],[label="reading account"]
100
Change_State([reading password])
101
State [reading smpd password],[label="reading smpd password"]
104
Change_State([writing session accept],[label="accept"])
106
Change_State([writing session reject],[label="reject"])
107
State [reading password],[label="reading password"]
110
Change_State([writing password accept],[label="logon success"])
112
Change_State([writing password reject],[label="logon fail"])
113
State [writing password accept],[label="writing password accept"]
116
Change_State([writing reconnect request],[label="win"])
118
Change_State([writing noreconnect request],[label="unix"])
119
State [writing password reject],[label="writing password reject"]
121
Change_State([closing])
122
State [writing session accept],[label="writing session accept"]
124
Change_State([reading session header])
125
State [writing session reject],[label="writing session reject"]
127
Change_State([closing])
128
State [writing reconnect request],[label="writing reconnect request"]
131
Change_State([mgr listening],[label="new process" style=dotted])
133
Change_State([closing])
134
State [writing noreconnect request],[label="writing noreconnect request"]
137
Change_State([reading session header],[label="unix forkee"])
139
Change_State([closing],[label="unix forker"])
140
State [mgr listening],[label="mgr listening"]
142
Change_State([closing], [label="accept"])
143
Change_State([reading session header],[label="new context" style=dotted])
144
State [reading session header],[label="reading session header"]
146
Change_State([reading cmd header])
147
State [reading cmd header],[label="reading cmd header"]
149
Change_State([reading cmd])
150
State [reading cmd],[label="reading cmd"]
152
Change_State([reading cmd header])
155
Change_State([done], [label="closed"])