COMPILATION LISTING OF SEGMENT uc_ls_connect_request_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/04/87 1259.8 mst Tue Options: optimize map 1 /****^ ******************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* ******************************************** */ 6 7 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 /* */ 9 /* This module is part of the Multics Network Architecture (MNA) version of */ 10 /* user control. MNA user control serves users coming into Multics via */ 11 /* separate networks (eg, the Distributed Systems Architecture (DSA) */ 12 /* network. MNA user control is not used for logins through the Multics */ 13 /* Communications System (MCS). A separate MCS user control system serves */ 14 /* MCS users. */ 15 /* */ 16 /* To Be Supplied: */ 17 /* 1) Brief module description. See MDD010 or MTBs 751 and 752 for details */ 18 /* about this module, and its relationship to modules in the MCS user */ 19 /* control system. */ 20 /* 2) Operator error message documentation. This program calls */ 21 /* sys_log_$general but does not contain the required descriptions of */ 22 /* these messages. This omission was waived for initial installation */ 23 /* of the subsystem by the auditor, security coordinator, and by MDC */ 24 /* management. */ 25 /* */ 26 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 27 28 /****^ HISTORY COMMENTS: 29* 1) change(86-04-04,Swenson), approve(87-07-13,MCR7737), 30* audit(87-05-16,GDixon), install(87-08-04,MR12.1-1055): 31* Initially coded. 32* 2) change(87-05-16,GDixon), approve(87-07-13,MCR7737), 33* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 34* A) Simplified code. 35* B) Removed unreferenced declarations. 36* C) Added pnotice. 37* END HISTORY COMMENTS */ 38 39 /* format: style4,indattr */ 40 41 uc_ls_connect_request_: 42 procedure (P_ls_request_server_info_ptr, 43 P_ls_request_ptr, P_ls_request_lth, 44 P_ls_response_ptr, P_ls_response_lth, 45 P_ls_ipc_reply_ptr, P_code); 46 47 /* Parameters */ 48 49 dcl P_ls_request_server_info_ptr ptr parameter; 50 dcl P_ls_request_ptr ptr parameter; 51 dcl P_ls_request_lth fixed bin (18) parameter; 52 dcl P_ls_response_ptr ptr parameter; 53 dcl P_ls_response_lth fixed bin (18) parameter; 54 dcl P_ls_ipc_reply_ptr ptr parameter; 55 dcl P_code fixed bin (35) parameter; 56 57 /* Automatic */ 58 59 dcl code fixed bin (35) automatic; 60 61 /* Entries */ 62 63 dcl uc_setup_process_connect_ entry (ptr, ptr, fixed bin (18), ptr, fixed bin (18), ptr, ptr, fixed bin (35)); 64 65 66 /* Constants */ 67 68 dcl TRUE bit(1) int static options(constant) init("1"b); 69 70 71 /* Builtins */ 72 73 dcl null builtin; 74 75 76 /* Program */ 77 78 code = 0; 79 80 call uc_setup_process_connect_ (P_ls_request_server_info_ptr, 81 P_ls_request_ptr, P_ls_request_lth, P_ls_response_ptr, 82 P_ls_response_lth, P_ls_ipc_reply_ptr, null (), code); 83 if code = 0 then do; 84 ls_response_ptr = P_ls_response_ptr; 85 login_server_process_response.flags.connected = TRUE; 86 end; 87 88 RETURN: 89 P_code = code; 90 return; 91 92 /* BEGIN INCLUDE FILE ... login_server_messages.incl.pl1 */ 1 2 1 3 /****^ HISTORY COMMENTS: 1 4* 1) change(86-06-30,Coren), approve(86-06-30,MCR7415), 1 5* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 1 6* Initial implementation. 1 7* 2) change(87-04-16,GDixon), approve(87-07-13,MCR7679), 1 8* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 9* A) Add REQUEST_TYPES and RESPONSE_TYPES arrays. 1 10* B) Add login_server_validate_response.last_incorrect_password.time. 1 11* C) Add user_connection_info.line_type. 1 12* D) Add login_server_process_request.minimum_ring. 1 13* 3) change(87-05-14,GDixon), approve(87-07-13,MCR7737), 1 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 15* A) Add login_server_process_response.brief. 1 16* B) Add login_server_list_response.initial_ring. 1 17* C) Separate login_server_process_response into fixed and variable parts. 1 18* D) Move user_connection_info into login_server_request_header. 1 19* END HISTORY COMMENTS */ 1 20 1 21 /* This include file defines all the structures passed in message segments 1 22* between a login server process and the Initializer (or "answering service") 1 23* process. For convenience, messages from the server to the initializer, 1 24* passed using the send_ls_request_ subroutine, are called "requests"; 1 25* messages from the initializer to the server, passed using the user_message_ 1 26* mechanism, are called "responses". 1 27**/ 1 28 1 29 /* Request types */ 1 30 1 31 dcl (LS_VALIDATE_REQUEST initial (1), /* validate user ID and password */ 1 32 LS_PROCESS_REQUEST initial (2), /* create or connect to a process */ 1 33 LS_LIST_REQUEST initial (3), /* list disconnected processes */ 1 34 LS_DIAL_REQUEST initial (4), /* find a dial server */ 1 35 LS_DISCONNECT_REQUEST initial (5), /* report disconnection of a login channel */ 1 36 LS_LOGOUT_REQUEST initial (6), /* discard UTE (end of dialogue) */ 1 37 LS_OPERATOR_REQUEST initial (7)) /* log the user in as an operator */ 1 38 fixed bin internal static options (constant); 1 39 1 40 dcl LS_REQUEST_TYPES (7) char (10) internal static options (constant) initial 1 41 ( 1 42 "validate", 1 43 "process", 1 44 "list", 1 45 "dial", 1 46 "disconnect", 1 47 "logout", 1 48 "operator"); 1 49 1 50 dcl ls_request_ptr pointer; 1 51 1 52 /* common header for all requests */ 1 53 1 54 dcl 1 ls_request_header aligned based (ls_request_ptr), 1 55 2 header_version char (8), /* version for this header */ 1 56 2 request_version char (8), /* varies depending on the request */ 1 57 2 request_type fixed bin, 1 58 2 pad1 bit (36), 1 59 2 reply_event_channel fixed bin (71), /* event channel over which reply_message should be sent */ 1 60 2 reply_handle bit (72) aligned, /* used for dispatching response */ 1 61 2 connection_info like user_connection_info; /* connection making this request. */ 1 62 1 63 dcl LS_REQUEST_HEADER_VERSION_1 char (8) initial ("lsrh0001") internal static options (constant); 1 64 1 65 dcl 1 user_connection_info aligned based, /* common info passed in most requests */ 1 66 2 connection_name char (32), 1 67 2 access_class_range (2) bit (72), 1 68 2 terminal_type char (32), 1 69 2 terminal_id char (4), 1 70 2 line_type fixed bin; 1 71 1 72 1 73 1 74 /* "validate" request: validate user ID and password */ 1 75 1 76 dcl 1 login_server_validate_request aligned based (ls_request_ptr), 1 77 2 header like ls_request_header, /* request_type = LS_VALIDATE_REQUEST */ 1 78 2 current_password char (8), /* scrambled */ 1 79 2 authorization bit (72), /* only valid if auth_given = "1"b */ 1 80 2 terminate_event_channel fixed bin (71), /* event channel to notify server when process terminates */ 1 81 2 person_id char (22), /* as specified in login line */ 1 82 2 project_id char (9), /* likewise, might be null string */ 1 83 2 network_connection_type fixed bin, /* see below for values */ 1 84 2 new_password char (8), /* only valid if change_password = "1"b */ 1 85 2 flags, 1 86 3 gpw bit (1) unaligned, /* password generated in response to -generate_password */ 1 87 3 auth_given bit (1) unaligned, /* -authorization specified */ 1 88 3 anonymous bit (1) unaligned, /* "enterp" request */ 1 89 3 anon_no_password bit (1) unaligned, /* "enter" request */ 1 90 3 change_password bit (1) unaligned, /* gave -cpw or -gpw */ 1 91 3 change_default_auth bit (1) unaligned, /* gave -change_default_authorization */ 1 92 3 change_default_proj bit (1) unaligned, /* gave -change_default_project */ 1 93 3 operator bit (1) unaligned, /* gave -operator */ 1 94 3 pad bit (28) unaligned; 1 95 1 96 1 97 dcl LS_VALIDATE_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsvr0001"); 1 98 1 99 1 100 1 101 /* "process" request: create a process or reconnect to an existing process for the specified user */ 1 102 1 103 dcl 1 login_server_process_request aligned based (ls_request_ptr), 1 104 2 fixed_part, /* to allow for automatic copies */ 1 105 3 header like ls_request_header, /* request_type = LS_PROCESS_REQUEST */ 1 106 3 handle bit (72), /* as provided in validate_response */ 1 107 3 person_id char (22), /* the real one */ 1 108 3 project_id char (9), /* likewise */ 1 109 3 project_pad fixed bin, 1 110 3 command_type fixed bin, /* login, connect, etc.; see below for names */ 1 111 3 process_number fixed bin, /* 0 if unspecified or irrelevant */ 1 112 3 default_io_module char (32), /* I/O module to use if no outer_module specified */ 1 113 3 switch_flags, /* used to indicate if "switch"-type control args were specified */ 1 114 4 warn_given bit (1) unaligned, 1 115 4 force_given bit (1) unaligned, 1 116 4 save_given bit (1) unaligned, 1 117 4 preempt_given bit (1) unaligned, 1 118 4 brief_given bit (1) unaligned, 1 119 4 pad2 bit (31) unaligned, 1 120 3 switch_values, /* these are only valid if corresponding bit in switch_flags is on */ 1 121 4 warn bit (1) unaligned, 1 122 4 force bit (1) unaligned, 1 123 4 save_on_disconnect bit (1) unaligned, 1 124 4 preempt bit (1) unaligned, 1 125 4 brief bit (1) unaligned, /* "0"b & brief_given => -long */ 1 126 4 pad3 bit (31) unaligned, 1 127 3 other_flags, 1 128 4 init_ring_given bit (1) unaligned, /* "1"b if -ring */ 1 129 4 minimum_ring_given bit (1) unaligned, /* "1"b if MNA terminal interface ring > 1 */ 1 130 4 immediate bit (1) unaligned, /* "1"b => -new_proc (or -destroy) -immediate */ 1 131 4 no_start_up bit (1) unaligned, /* "1"b if -no_start_up */ 1 132 4 pad4 bit (32) unaligned, 1 133 3 initial_ring fixed bin, /* valid iff init_ring_given = "1"b */ 1 134 3 minimum_ring fixed bin, /* ring in which MNA terminal mgr operates */ 1 135 3 home_dir char (168), /* null if not specified */ 1 136 3 outer_module char (32), /* likewise */ 1 137 3 process_overseer char (168), /* likewise */ 1 138 3 subsystem char (168), /* likewise */ 1 139 3 n_args fixed bin, /* how many arguments specified after -ag; if 0, ignore the rest of the structure */ 1 140 2 login_arguments, /* variable part, describes stuff after -ag */ 1 141 3 arg_string_length fixed bin (21), 1 142 3 args (ls_process_request_n_args refer (login_server_process_request.n_args)), 1 143 4 start_index fixed bin (21), /* position in arg_string at which arg (i) starts */ 1 144 4 arg_length fixed bin (21), /* length of arg (i) */ 1 145 3 arg_string char (ls_process_request_arg_string_length refer (login_server_process_request.arg_string_length)); 1 146 1 147 dcl ls_process_request_n_args fixed bin; 1 148 dcl ls_process_request_arg_string_length fixed bin (21); 1 149 1 150 dcl LS_PROCESS_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lspr0001"); 1 151 1 152 1 153 1 154 /* "list" request: list the user's disconnected processes, if any */ 1 155 1 156 dcl 1 login_server_list_request aligned based (ls_request_ptr), 1 157 2 header like ls_request_header, /* request_type = LS_LIST_REQUEST */ 1 158 2 handle bit (72); 1 159 1 160 dcl LS_LIST_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 1 161 1 162 1 163 1 164 /* "dial" request: find a process to accept a dial */ 1 165 1 166 /* Note: because a dial request may or may not have been preceded 1 167* by a validate request/response, the initializer_handle may be null. 1 168**/ 1 169 1 170 dcl 1 login_server_dial_request aligned based (ls_request_ptr), 1 171 2 header like ls_request_header, /* request_type = LS_DIAL_REQUEST */ 1 172 2 initializer_handle bit (72), /* as provided in validate_response (if any) */ 1 173 2 terminate_event_channel fixed bin (71), /* event channel to wake up login server when master process terminates */ 1 174 2 dial_qualifier char (22), 1 175 2 person_id char (22), /* null if not specified */ 1 176 2 project_id char (9), /* likewise */ 1 177 2 user_person_id char (22), /* if -user was specified, otherwise "" */ 1 178 2 user_project_id char (9); /* likewise */ 1 179 1 180 dcl LS_DIAL_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdr0001"); 1 181 1 182 1 183 1 184 /* "disconnect" request: report that a login channel has disconnected */ 1 185 /* Note: this message is sent if the connection is broken either during the login dialogue 1 186* or later on when the process was using it */ 1 187 1 188 dcl 1 login_server_disconnect_request aligned based (ls_request_ptr), 1 189 2 header like ls_request_header, /* request_type = LS_DISCONNECT_REQUEST */ 1 190 2 handle bit (72), /* from original validate_response */ 1 191 2 process_id bit (36); /* ""b if no process established */ 1 192 1 193 dcl LS_DISCONNECT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdc0001"); 1 194 1 195 1 196 1 197 /* "logout" request: indicates that user entered the "logout" request, ending the dialogue; does not require any response */ 1 198 1 199 dcl 1 login_server_logout_request aligned based (ls_request_ptr), 1 200 2 header like ls_request_header, /* request_type = LS_LOGOUT_REQUEST */ 1 201 2 handle bit (72); 1 202 1 203 dcl LS_LOGOUT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslg0001"); 1 204 1 205 1 206 1 207 /* "operator" request: sign the user on as an operator, the result of either 1 208* "login -operator" or "dial system". Note that in the latter case, there may 1 209* not have been a validate request (if the -user control argument wasn't specified), 1 210* in which case initializer_handle is null, and the person_id and project_id 1 211* are blank. 1 212**/ 1 213 1 214 dcl 1 login_server_operator_request aligned based (ls_request_ptr), 1 215 2 header like ls_request_header, /* request_type = LS_OPERATOR_REQUEST */ 1 216 2 initializer_handle bit (72) aligned, /* as provided in validate_response (if any) */ 1 217 2 terminate_event_channel fixed bin (71), /* event channel for wakeup when connection is dropped */ 1 218 2 person_id char (22), /* likewise */ 1 219 2 project_id char (9), /* likewise */ 1 220 2 virtual_channel char (32); /* if -virtual_channel specified, otherwise "" */ 1 221 1 222 dcl LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsor0001"); 1 223 1 224 1 225 1 226 /* Response types */ 1 227 1 228 dcl (LS_UNKNOWN_RESPONSE initial (100), /* unknown response type. */ 1 229 LS_VALIDATE_RESPONSE initial (101), /* response to validation request */ 1 230 LS_PROCESS_RESPONSE initial (102), /* response to process request */ 1 231 LS_LIST_RESPONSE initial (103), /* response to list request */ 1 232 LS_DIAL_RESPONSE initial (104), /* response to dial request */ 1 233 LS_TERMINATION_RESPONSE initial (105), /* to notify server of a logout */ 1 234 LS_NEW_PROC_RESPONSE initial (106), /* to notify server of process termination */ 1 235 LS_OPERATOR_RESPONSE initial (107)) /* response to operator request */ 1 236 fixed bin internal static options (constant); 1 237 1 238 dcl LS_RESPONSE_TYPES (100:107) char (10) internal static options (constant) initial 1 239 ( 1 240 "UNKNOWN", 1 241 "validate", 1 242 "process", 1 243 "list", 1 244 "dial", 1 245 "terminate", 1 246 "new_proc", 1 247 "operator"); 1 248 1 249 /* NOTE: the server_handle is not included in the response structures because 1 250* it is provided in the user_message_ structures */ 1 251 1 252 1 253 1 254 dcl ls_response_ptr pointer; 1 255 1 256 /* common header for all responses */ 1 257 1 258 dcl 1 login_server_response_header aligned based (ls_response_ptr), 1 259 2 message_type fixed bin, 1 260 2 header_pad bit (36), /* force doubleword alignment */ 1 261 2 version char (8); 1 262 1 263 1 264 1 265 /* "validate" response: indicate whether user_id/password is valid */ 1 266 1 267 dcl 1 login_server_validate_response aligned based (ls_response_ptr), 1 268 2 header like login_server_response_header, /* message_type = LS_VALIDATE_RESPONSE */ 1 269 2 handle bit (72), /* to be provided by the server in subsequent */ 1 270 /* messages for the same connection */ 1 271 2 authorization bit (72), /* default if none was supplied */ 1 272 2 authorization_range (2) bit (72), /* authorization range permitted for this user */ 1 273 2 status_code fixed bin (35), /* 0 iff user is validated */ 1 274 2 person_id char (22), /* primary name from the PNT */ 1 275 2 project_id char (9), /* primary name from the PNT or PDT */ 1 276 2 n_disconnected_processes fixed bin, /* number of disconnected processes for specified user */ 1 277 2 validate_pad fixed bin, 1 278 2 previous_login_info, /* for printing login message */ 1 279 3 time fixed bin (71), 1 280 3 terminal_type char (32), 1 281 3 terminal_id char (4), 1 282 2 incorrect_passwords fixed bin, /* number of times password given incorrectly */ 1 283 2 last_incorrect_password, /* where it came from */ 1 284 3 time fixed bin (71), 1 285 3 terminal_type char (32), 1 286 3 terminal_id char (4), 1 287 2 password_interval fixed bin, /* limit (in days) for password use or change */ 1 288 2 flags, 1 289 3 disconnect bit (1) unaligned, /* if "1"b, close the connection immediately */ 1 290 3 password_changed bit (1) unal, /* "1"b => changed password */ 1 291 3 default_auth_changed bit (1) unal, /* "1"b => changed default authorization */ 1 292 3 default_proj_changed bit (1) unal, /* "1"b => changed default project */ 1 293 3 password_expired bit (1) unal, /* "1"b => password not changed recently enough */ 1 294 3 password_unused_too_long bit (1) unal, /* "1"b => password hasn't been used recently */ 1 295 3 pad bit (30) unaligned; 1 296 1 297 dcl LS_VALIDATE_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsvs0001"); 1 298 1 299 1 300 1 301 /* "process" response: responds to request to create or connect */ 1 302 1 303 dcl 1 login_server_process_response aligned based (ls_response_ptr), 1 304 2 fixed_part, 1 305 3 header like login_server_response_header, /* message_type = LS_PROCESS_RESPONSE */ 1 306 3 status_code fixed bin (35), /* 0 iff process was created or requested process exists */ 1 307 3 process_id bit (36), 1 308 3 new_handle bit (72), /* changed if reconnecting, etc. to preexisting process, all 0 otherwise */ 1 309 3 authorization bit (72), /* authorization of created or existing process */ 1 310 3 process_group_id char (32), /* Person.Project.tag */ 1 311 3 process_number fixed bin, /* as in, "Your disconnected process #2..." */ 1 312 3 n_disconnected_processes fixed bin, /* valid even if code ^= 0, e.g., if request was ambiguous */ 1 313 3 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 1 314 3 login_instance fixed bin, /* "This is your Nth interactive login" */ 1 315 3 accounting_info, /* for destroyed process, if any */ 1 316 4 cpu_usage fixed bin (71), 1 317 4 cost float bin, 1 318 3 flags, /* except for disconnect and logout, invalid if status_code ^= 0 */ 1 319 4 disconnect bit (1) unaligned, /* "1"b => break the connection immediately */ 1 320 4 logout bit (1) unaligned, /* "1"b => restart login sequence */ 1 321 4 created bit (1) unaligned, /* "1"b => new process created */ 1 322 4 connected bit (1) unaligned, /* "1"b => connected to old process */ 1 323 4 new_proc bit (1) unaligned, /* "1"b => connected after new_proc */ 1 324 4 destroyed bit (1) unaligned, /* "1"b => process destroyed */ 1 325 4 anonymous bit (1) unaligned, /* "1"b => anonymous user ("enter" or "enterp") */ 1 326 4 already_logged_in bit (1) unaligned, /* "1"b => user can't log in because he already is */ 1 327 4 message_coordinator bit (1) unaligned, /* "1"b => this connection is going to be used by the message coordinator */ 1 328 4 brief bit (1) unaligned, /* "1"b => brief user attribute from PDT */ 1 329 4 pad bit (26) unaligned, 1 330 3 initial_ring fixed bin, /* ring in which process was created */ 1 331 3 already_logged_in_info, /* relevant if already_logged_in flag is "1"b */ 1 332 4 connection_name char (32), 1 333 4 terminal_type char (32), 1 334 4 terminal_id char (4), 1 335 2 accounting_message_struc, /* character string assembled by initializer giving error or warnings about the user's account */ 1 336 3 accounting_message_length fixed bin, 1 337 3 accounting_message char (ls_process_response_accounting_message_length refer (login_server_process_response.accounting_message_length)); 1 338 1 339 dcl ls_process_response_accounting_message_length fixed bin; 1 340 1 341 dcl LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsps0001"); 1 342 1 343 1 344 1 345 /* "list" response: used if create request specified "list" command */ 1 346 1 347 dcl 1 login_server_list_response aligned based (ls_response_ptr), 1 348 2 header like login_server_response_header, /* message_type = LS_LIST_RESPONSE */ 1 349 2 n_processes fixed bin, /* number of disconnected processes (might be 0) */ 1 350 2 pad_header fixed bin, 1 351 2 process_info (login_server_list_response_n_processes refer (login_server_list_response.n_processes)), 1 352 3 creation_time fixed bin (71), 1 353 3 authorization bit (72), 1 354 3 initial_ring fixed bin, 1 355 3 pad_process_info fixed bin, 1 356 3 connection_info like user_connection_info; 1 357 1 358 dcl login_server_list_response_n_processes fixed bin; 1 359 1 360 dcl LOGIN_SERVER_LIST_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 1 361 1 362 1 363 1 364 /* "dial" response: response to dial request */ 1 365 1 366 dcl 1 login_server_dial_response aligned based (ls_response_ptr), 1 367 2 header like login_server_response_header, /* message_type = LS_DIAL_RESPONSE */ 1 368 2 status_code fixed bin (35), /* 0 iff dial server was found and all is OK */ 1 369 2 process_id bit (36), /* of dial server */ 1 370 2 process_group_id char (32), /* likewise */ 1 371 2 authorization bit (72), /* likewise, to make sure connection is usable */ 1 372 2 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 1 373 2 process_ring fixed bin, /* initial ring of dial server */ 1 374 2 flags, 1 375 3 disconnect bit (1) unaligned, /* "1"b => break connection immediately */ 1 376 3 pad bit (35) unaligned; 1 377 1 378 dcl LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsds0001"); 1 379 1 380 1 381 1 382 /* "termination" response: (not a response to anything): notify server that a 1 383* process terminated other than by logout */ 1 384 1 385 dcl 1 login_server_termination_response aligned based (ls_response_ptr), 1 386 2 header like login_server_response_header, /* message_type = LS_TERMINATION_RESPONSE */ 1 387 2 accounting_info, /* for printing in logout message */ 1 388 3 cpu_usage fixed bin (71), 1 389 3 cost float bin, 1 390 3 pad bit (33) unaligned, 1 391 2 process_id bit (36), /* of the logged-out process */ 1 392 2 process_group_id char (32), 1 393 2 status_code fixed bin (35), /* e.g., to indicate reason for fatal error */ 1 394 2 flags, 1 395 3 logout bit (1) aligned, /* no new process coming */ 1 396 3 automatic_logout bit (1) unaligned, 1 397 3 hold bit (1) unaligned, 1 398 3 brief bit (1) unaligned, 1 399 3 new_proc bit (1) unaligned, /* user-requested new process */ 1 400 3 fatal_error bit (1) unaligned, /* process died unexpectedly */ 1 401 3 fpe_caused_logout bit (1) unaligned, /* fatal error doesn't generate new process */ 1 402 3 fpe_loop bit (1) unaligned, /* fatal error loop: too many in too short a time */ 1 403 3 fpe_during_init bit (1) unaligned, /* fatal error during process initialization */ 1 404 3 offer_help bit (1) unaligned, /* print a message offering "help" */ 1 405 3 pad bit (27) unaligned; 1 406 1 407 dcl LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lstr0001"); 1 408 1 409 1 410 1 411 /* "new_proc" response: (not actually a response to anything) -- describes a 1 412* new process (after a termination_response) */ 1 413 1 414 dcl 1 login_server_new_proc_response aligned based (ls_response_ptr), 1 415 2 header like login_server_response_header, /* message_type = LS_NEW_PROC_RESPONSE */ 1 416 2 new_authorization bit (72), /* in case of new_proc -auth */ 1 417 2 new_start_event_channel fixed bin (71), /* event channel for starting new process */ 1 418 2 new_process_id bit (36); /* process_id of newly-created process */ 1 419 1 420 dcl LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsnp0001"); 1 421 1 422 1 423 1 424 /* "operator" response: indicates success or failure of operator request */ 1 425 1 426 dcl 1 login_server_operator_response aligned based (ls_response_ptr), 1 427 2 header like login_server_response_header, /* message_type = LS_OPERATOR_RESPONSE */ 1 428 2 status_code fixed bin (35), /* indicates success or failure */ 1 429 2 process_id bit (36), /* process ID of the message coordinator */ 1 430 2 process_group_id char (32), /* Person.Project.tag */ 1 431 2 event_channel fixed bin (71), /* event channel over which to send connect/disconnect wakeups */ 1 432 2 ring fixed bin, /* ring of message coordinator */ 1 433 2 flags, 1 434 3 disconnect bit (1) unaligned, /* "1" => break the connection immediately */ 1 435 3 mbz bit (35) unaligned; 1 436 1 437 1 438 dcl LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsos0001"); 1 439 1 440 1 441 /* format of reply message sent to acknowledge receipt of a request */ 1 442 1 443 dcl ls_reply_message_ptr pointer; 1 444 1 445 dcl 1 ls_reply_message aligned based (ls_reply_message_ptr), 1 446 2 code fixed bin (35), 1 447 2 flags, 1 448 3 request_invalid bit (1) unaligned, /* "1"b => could not process request */ 1 449 3 response_sent bit (1) unaligned, /* "1"b => there is a response message */ 1 450 3 as_error_code bit (1) unaligned, /* "1"b => code is from as_error_table_ */ 1 451 3 do_not_reply bit (1) unaligned, /* "1"b => special flag for AS to prevent any reply from being sent to login server */ 1 452 3 mbz bit (32) unaligned; 1 453 1 454 /* The following are values used to identify the various requests internally; those from CREATE_REQ on 1 455* can appear as "command_type" in ls_process_requests. */ 1 456 1 457 dcl (LOGIN_REQ initial (1), 1 458 ENTER_REQ initial (2), 1 459 ENTERP_REQ initial (3), 1 460 CREATE_REQ initial (4), 1 461 DESTROY_REQ initial (5), 1 462 CONNECT_REQ initial (6), 1 463 NEW_PROC_REQ initial (7), 1 464 LIST_REQ initial (8)) 1 465 fixed bin internal static options (constant); 1 466 1 467 /* The following are the possible values for login_server_validate_request.network_connection_type. 1 468* They are used by the initializer to select a default process overseer and an instance tag. 1 469**/ 1 470 1 471 dcl (NETWORK_CONNECTION_LOGIN initial (1), 1 472 NETWORK_CONNECTION_DSA_FILE_TRANSFER initial (2)) 1 473 fixed bin internal static options (constant); 1 474 1 475 /* END INCLUDE FILE ... login_server_messages.incl.pl1 */ 92 93 94 end uc_ls_connect_request_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1221.9 uc_ls_connect_request_.pl1 >special_ldd>install>MR12.1-1054>uc_ls_connect_request_.pl1 92 1 08/04/87 1139.9 login_server_messages.incl.pl1 >spec>install>1056>login_server_messages.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. P_code parameter fixed bin(35,0) dcl 55 set ref 41 88* P_ls_ipc_reply_ptr parameter pointer dcl 54 set ref 41 80* P_ls_request_lth parameter fixed bin(18,0) dcl 51 set ref 41 80* P_ls_request_ptr parameter pointer dcl 50 set ref 41 80* P_ls_request_server_info_ptr parameter pointer dcl 49 set ref 41 80* P_ls_response_lth parameter fixed bin(18,0) dcl 53 set ref 41 80* P_ls_response_ptr parameter pointer dcl 52 set ref 41 80* 84 TRUE constant bit(1) initial unaligned dcl 68 ref 85 code 000100 automatic fixed bin(35,0) dcl 59 set ref 78* 80* 83 88 connected 33(03) based bit(1) level 4 packed unaligned dcl 1-303 set ref 85* fixed_part based structure level 2 dcl 1-303 flags 33 based structure level 3 dcl 1-303 login_server_process_response based structure level 1 dcl 1-303 login_server_response_header based structure level 1 dcl 1-258 ls_request_header based structure level 1 dcl 1-54 ls_response_ptr 000102 automatic pointer dcl 1-254 set ref 84* 85 null builtin function dcl 73 ref 80 80 uc_setup_process_connect_ 000010 constant entry external dcl 63 ref 80 user_connection_info based structure level 1 dcl 1-65 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CONNECT_REQ internal static fixed bin(17,0) initial dcl 1-457 CREATE_REQ internal static fixed bin(17,0) initial dcl 1-457 DESTROY_REQ internal static fixed bin(17,0) initial dcl 1-457 ENTERP_REQ internal static fixed bin(17,0) initial dcl 1-457 ENTER_REQ internal static fixed bin(17,0) initial dcl 1-457 LIST_REQ internal static fixed bin(17,0) initial dcl 1-457 LOGIN_REQ internal static fixed bin(17,0) initial dcl 1-457 LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-378 LOGIN_SERVER_LIST_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-360 LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-420 LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 1-222 LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-438 LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-341 LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-407 LS_DIAL_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_DIAL_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 1-180 LS_DIAL_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_DISCONNECT_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_DISCONNECT_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 1-193 LS_LIST_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_LIST_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 1-160 LS_LIST_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_LOGOUT_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_LOGOUT_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 1-203 LS_NEW_PROC_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_OPERATOR_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_OPERATOR_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_PROCESS_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_PROCESS_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 1-150 LS_PROCESS_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_REQUEST_HEADER_VERSION_1 internal static char(8) initial unaligned dcl 1-63 LS_REQUEST_TYPES internal static char(10) initial array unaligned dcl 1-40 LS_RESPONSE_TYPES internal static char(10) initial array unaligned dcl 1-238 LS_TERMINATION_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_UNKNOWN_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_VALIDATE_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_VALIDATE_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 1-97 LS_VALIDATE_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_VALIDATE_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-297 NETWORK_CONNECTION_DSA_FILE_TRANSFER internal static fixed bin(17,0) initial dcl 1-471 NETWORK_CONNECTION_LOGIN internal static fixed bin(17,0) initial dcl 1-471 NEW_PROC_REQ internal static fixed bin(17,0) initial dcl 1-457 login_server_dial_request based structure level 1 dcl 1-170 login_server_dial_response based structure level 1 dcl 1-366 login_server_disconnect_request based structure level 1 dcl 1-188 login_server_list_request based structure level 1 dcl 1-156 login_server_list_response based structure level 1 dcl 1-347 login_server_list_response_n_processes automatic fixed bin(17,0) dcl 1-358 login_server_logout_request based structure level 1 dcl 1-199 login_server_new_proc_response based structure level 1 dcl 1-414 login_server_operator_request based structure level 1 dcl 1-214 login_server_operator_response based structure level 1 dcl 1-426 login_server_process_request based structure level 1 dcl 1-103 login_server_termination_response based structure level 1 dcl 1-385 login_server_validate_request based structure level 1 dcl 1-76 login_server_validate_response based structure level 1 dcl 1-267 ls_process_request_arg_string_length automatic fixed bin(21,0) dcl 1-148 ls_process_request_n_args automatic fixed bin(17,0) dcl 1-147 ls_process_response_accounting_message_length automatic fixed bin(17,0) dcl 1-339 ls_reply_message based structure level 1 dcl 1-445 ls_reply_message_ptr automatic pointer dcl 1-443 ls_request_ptr automatic pointer dcl 1-50 NAMES DECLARED BY EXPLICIT CONTEXT. RETURN 000061 constant label dcl 88 uc_ls_connect_request_ 000014 constant entry external dcl 41 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 126 140 64 136 Length 334 64 12 157 41 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME uc_ls_connect_request_ 88 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME uc_ls_connect_request_ 000100 code uc_ls_connect_request_ 000102 ls_response_ptr uc_ls_connect_request_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. uc_setup_process_connect_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 41 000006 78 000021 80 000022 83 000051 84 000053 85 000057 88 000061 90 000063 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved