COMPILATION LISTING OF SEGMENT uc_send_ls_response_ 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 1256.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* Initial coding. 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) Correct coding standard violations. 35* B) Allow caller to control whether a response message is sent. 36* C) If reply wakeup cannot be sent, force_disconnect the MNA connection. 37* 3) change(87-05-21,GDixon), approve(87-07-13,MCR7737), 38* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 39* A) Add sys_log_ error message to diagnose failure to add user_message 40* or failure to send wakeup to login server. 41* 4) change(87-05-22,GDixon), approve(87-07-13,MCR7737), 42* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 43* A) Copy event channel from parameter for use in hcs_$wakeup call. 44* B) Log error message for failure to add user message. 45* C) Centralize call to Force_Disconnect in an Abort procedure. 46* 5) change(87-07-28,GDixon), approve(87-07-28,MCR7737), 47* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 48* A) Move call to sys_log_$general to correct place within the Abort proc. 49* END HISTORY COMMENTS */ 50 51 /* format: style4,indattr */ 52 53 uc_send_ls_response_: 54 procedure (P_data_ptr, P_data_lth, P_ls_process_id, P_ls_handle, 55 P_ls_event_channel, P_ls_reply_message_ptr, P_connection_name, 56 P_reply_code, P_code); 57 58 /* Parameters */ 59 60 dcl P_data_ptr ptr parameter; 61 dcl P_data_lth fixed bin (18) parameter; 62 dcl P_ls_process_id bit (36) aligned parameter; 63 dcl P_ls_handle bit (72) aligned parameter; 64 dcl P_ls_event_channel fixed bin (71) parameter; 65 dcl P_ls_reply_message_ptr ptr parameter; 66 dcl P_connection_name char (32) aligned parameter; 67 dcl P_reply_code fixed bin (35) parameter; 68 dcl P_code fixed bin (35) parameter; 69 70 /* Automatic */ 71 72 dcl 1 asum_ai aligned like as_user_message_add_info automatic; 73 dcl connection_name char (32) aligned automatic; 74 dcl code fixed bin (35) automatic; 75 dcl data_ptr ptr automatic; 76 dcl data_lth fixed bin (18) automatic; 77 dcl ls_process_id bit (36) aligned automatic; 78 dcl ls_handle bit (72) aligned automatic; 79 dcl ls_event_channel fixed bin (71) automatic; 80 dcl reply_code fixed bin (35) automatic; 81 82 /* Based */ 83 84 dcl based_event_message fixed bin (71) based; 85 86 /* Entries */ 87 88 dcl as_user_message_$priv_add_message entry (ptr, fixed bin (35)); 89 dcl hcs_$make_entry entry (ptr, char (*), char (*), entry, fixed bin (35)); 90 dcl hcs_$wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 91 dcl hpriv_connection_list_$get_name 92 entry (char (*), ptr, fixed bin (35)); 93 94 /* Constant */ 95 96 dcl FALSE bit (1) aligned initial ("0"b) internal static options (constant); 97 dcl LOGIN_SERVER_RING fixed bin int static options (constant) init (4); 98 dcl ME char (20) int static options (constant) init ("uc_send_ls_response_"); 99 dcl TRUE bit (1) aligned initial ("1"b) internal static options (constant); 100 101 102 /* Builtins */ 103 104 dcl (addr, after, before, null, unspec) 105 builtin; 106 107 /* Program */ 108 109 data_ptr = P_data_ptr; 110 data_lth = P_data_lth; 111 ls_process_id = P_ls_process_id; 112 ls_handle = P_ls_handle; 113 ls_event_channel = P_ls_event_channel; 114 ls_reply_message_ptr = P_ls_reply_message_ptr; 115 connection_name = P_connection_name; 116 reply_code = P_reply_code; 117 code = 0; 118 119 if ls_reply_message.do_not_reply then goto RETURN; 120 if ls_event_channel = 0 then goto RETURN; 121 122 if unspec (ls_reply_message) = ""b then do; 123 ls_reply_message.code = reply_code; 124 ls_reply_message.flags = FALSE; 125 end; 126 127 if data_lth > 0 then do; 128 unspec (asum_ai) = ""b; 129 asum_ai.version = AS_USER_MESSAGE_ADD_INFO_VERSION_1; 130 asum_ai.message_ptr = data_ptr; 131 asum_ai.message_length = data_lth; 132 asum_ai.message_access_class = ""b; 133 asum_ai.destination_info.group_id = ""; 134 asum_ai.destination_info.process_id = ls_process_id; 135 asum_ai.destination_info.handle = ls_handle; 136 asum_ai.destination_info.ring = LOGIN_SERVER_RING; 137 asum_ai.reader_deletes = "1"b; 138 call as_user_message_$priv_add_message (addr (asum_ai), code); 139 if code ^= 0 then 140 call Abort (SL_LOG_BEEP, code, 141 "Sending response via as_user_message_$priv_add_message."); 142 ls_reply_message.response_sent = TRUE; 143 end; 144 145 call hcs_$wakeup (ls_process_id, ls_event_channel, 146 ls_reply_message_ptr -> based_event_message, code); 147 if code ^= 0 then 148 call Abort (SL_LOG, code, 149 "Sending wakeup for ^a to Login_Server ^12.3b event channel ^24.3b.", 150 connection_name, ls_process_id, unspec(ls_event_channel)); 151 152 RETURN: 153 P_code = code; 154 return; 155 156 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 157 158 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 159 /* */ 160 /* Abort: log an error via sys_log_$general, force_disconnect the terminal */ 161 /* and abort execution. */ 162 /* */ 163 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 164 /* */ 165 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 166 167 Abort: 168 procedure options (variable); 169 170 dcl cu_$arg_list_ptr entry returns (ptr); 171 dcl sys_log_$general entry (ptr); 172 173 sl_info = sl_info_sev_code_msg; 174 sl_info.caller = ME; 175 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 176 call sys_log_$general (addr (sl_info)); 177 code = sl_info.code; 178 if code ^= 0 then do; 179 call Force_Disconnect (connection_name); 180 go to RETURN; 181 end; 182 183 end Abort; 184 185 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 186 187 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 188 /* */ 189 /* if couldn't notify owner, then try to disconnect the connection ourselves */ 190 /* */ 191 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 192 193 194 Force_Disconnect: 195 procedure (P_connection_name); 196 197 dcl P_connection_name char (32) aligned; 198 199 dcl code fixed bin (35); 200 dcl connection_name char (32); 201 dcl entry_point_name char (60); 202 dcl ref_name char (32); 203 dcl entry_to_call entry (char (*), fixed bin (35)) variable; 204 205 connection_name = P_connection_name; 206 207 if connection_name ^= "" then do; 208 aci.version = ACT_INFO_VERSION_1; 209 call hpriv_connection_list_$get_name (connection_name, 210 addr (aci), code); 211 if code = 0 then do; 212 if aci.force_disconnect_entry ^= "" then do; 213 ref_name = before ( 214 aci.force_disconnect_entry, "$"); 215 entry_point_name = after ( 216 aci.force_disconnect_entry, "$"); 217 if entry_point_name = "" then 218 entry_point_name = ref_name; 219 call hcs_$make_entry (null (), ref_name, 220 entry_point_name, entry_to_call, code); 221 if code = 0 222 then call entry_to_call (connection_name, code); 223 if code ^= 0 224 then call Log_Error_With_Code (code, 225 "Calling Force_Disconnect procedure ^a$^a.", 226 ref_name, entry_point_name); 227 end; 228 end; 229 end; 230 return; 231 232 end Force_Disconnect; 233 234 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 235 236 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 237 /* */ 238 /* Log_Error_With_Code: log an error via sys_log_$general and continue */ 239 /* execution. */ 240 /* */ 241 /* Syntax: call Log_Error_With_Code (code, ioa_ctl, args); */ 242 /* */ 243 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 244 245 Log_Error_With_Code: 246 procedure options (variable); 247 248 dcl cu_$arg_list_ptr entry returns (ptr); 249 dcl sys_log_$general entry (ptr); 250 251 sl_info = sl_info_code_msg; 252 sl_info.severity = SL_LOG_SILENT; 253 sl_info.caller = ME; 254 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 255 call sys_log_$general (addr (sl_info)); 256 257 end Log_Error_With_Code; 258 259 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 260 261 262 /* format: off */ 263 /* BEGIN: active_connection_info.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-07,GDixon), approve(87-06-24,MCR7681), 1 8* audit(87-06-24,Hartogs), install(87-08-04,MR12.1-1056): 1 9* Add .force_accounting_flush_entry element. 1 10* 3) change(87-05-13,Brunelle), approve(87-06-24,MCR7681), 1 11* audit(87-06-24,Hartogs), install(87-08-04,MR12.1-1056): 1 12* Add .owner_group_id field. 1 13* END HISTORY COMMENTS */ 1 14 1 15 /* Defines the information returned to the outer ring about a single entry in 1 16* the active connection list */ 1 17 1 18 dcl active_connection_info_ptr pointer; 1 19 1 20 dcl 1 active_connection_info aligned based (active_connection_info_ptr), 1 21 2 version char (8), /* "actiNNNN" */ 1 22 2 connection_name char (32), /* name of the connection */ 1 23 2 network_service_type char (32), /* name of service */ 1 24 2 user_process_id bit (36), /* process assigned as the user */ 1 25 2 user_group_id char (32), /* likewise */ 1 26 2 owner_process_id bit (36), /* process that created the connection */ 1 27 2 owner_group_id char (32), /* likewise */ 1 28 2 terminate_event_channel fixed bin (71), /* channel to wake the owner if user process terminates */ 1 29 2 owner_initializer_handle bit (72), /* handle for communicating with initializer */ 1 30 2 force_disconnect_entry char (64), /* name of entry to call to force disconnection */ 1 31 /* (in case owner is gone) */ 1 32 2 force_accounting_flush_entry char (64), /* name of entry to call to force accounting flush */ 1 33 2 connection_handle fixed bin (35), /* handle used in calling service entries */ 1 34 2 usage_type fixed bin, /* login, etc. see ls_usage_types.incl.pl1 */ 1 35 2 flags, 1 36 3 delegated bit (1) unaligned, /* assigned to user by owner */ 1 37 3 mbz_bits bit (35) unaligned, 1 38 2 offset bit (18); /* offset of entry in connection list segment */ 1 39 1 40 dcl ACT_INFO_VERSION_1 char (8) internal static options (constant) initial ("acti0001"); 1 41 1 42 1 43 /* END OF: active_connection_info.incl.pl1 * * * * * */ 263 264 265 dcl 1 aci aligned like active_connection_info; 266 /* Begin include file as_user_message_add.incl.pl1 BIM 1985-01-12 */ 2 2 /* format: style4 */ 2 3 2 4 declare as_user_message_add_info_ptr pointer; 2 5 declare 1 as_user_message_add_info aligned based (as_user_message_add_info_ptr), 2 6 2 version char (8) aligned, 2 7 2 message_info aligned, 2 8 3 message_ptr pointer, 2 9 3 message_length fixed bin (18), 2 10 3 pad bit (36) aligned, 2 11 3 message_access_class bit (72) aligned, 2 12 3 message_id bit (72) aligned, /* output */ 2 13 2 destination_info aligned, 2 14 3 group_id char (32) unal, /* stars permitted */ 2 15 3 process_id bit (36) aligned, /* (36)"1"b for ANY */ 2 16 3 handle bit (72) aligned, /* may NOT be zero */ 2 17 3 ring fixed bin (3), 2 18 3 reader_deletes bit (1) aligned; 2 19 2 20 declare AS_USER_MESSAGE_ADD_INFO_VERSION_1 2 21 char (8) init ("auma0001") int static options (constant); 2 22 2 23 /* End include file as_user_message_add.incl.pl1 */ 266 267 /* BEGIN INCLUDE FILE ... login_server_messages.incl.pl1 */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-06-30,Coren), approve(86-06-30,MCR7415), 3 5* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 3 6* Initial implementation. 3 7* 2) change(87-04-16,GDixon), approve(87-07-13,MCR7679), 3 8* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 9* A) Add REQUEST_TYPES and RESPONSE_TYPES arrays. 3 10* B) Add login_server_validate_response.last_incorrect_password.time. 3 11* C) Add user_connection_info.line_type. 3 12* D) Add login_server_process_request.minimum_ring. 3 13* 3) change(87-05-14,GDixon), approve(87-07-13,MCR7737), 3 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 15* A) Add login_server_process_response.brief. 3 16* B) Add login_server_list_response.initial_ring. 3 17* C) Separate login_server_process_response into fixed and variable parts. 3 18* D) Move user_connection_info into login_server_request_header. 3 19* END HISTORY COMMENTS */ 3 20 3 21 /* This include file defines all the structures passed in message segments 3 22* between a login server process and the Initializer (or "answering service") 3 23* process. For convenience, messages from the server to the initializer, 3 24* passed using the send_ls_request_ subroutine, are called "requests"; 3 25* messages from the initializer to the server, passed using the user_message_ 3 26* mechanism, are called "responses". 3 27**/ 3 28 3 29 /* Request types */ 3 30 3 31 dcl (LS_VALIDATE_REQUEST initial (1), /* validate user ID and password */ 3 32 LS_PROCESS_REQUEST initial (2), /* create or connect to a process */ 3 33 LS_LIST_REQUEST initial (3), /* list disconnected processes */ 3 34 LS_DIAL_REQUEST initial (4), /* find a dial server */ 3 35 LS_DISCONNECT_REQUEST initial (5), /* report disconnection of a login channel */ 3 36 LS_LOGOUT_REQUEST initial (6), /* discard UTE (end of dialogue) */ 3 37 LS_OPERATOR_REQUEST initial (7)) /* log the user in as an operator */ 3 38 fixed bin internal static options (constant); 3 39 3 40 dcl LS_REQUEST_TYPES (7) char (10) internal static options (constant) initial 3 41 ( 3 42 "validate", 3 43 "process", 3 44 "list", 3 45 "dial", 3 46 "disconnect", 3 47 "logout", 3 48 "operator"); 3 49 3 50 dcl ls_request_ptr pointer; 3 51 3 52 /* common header for all requests */ 3 53 3 54 dcl 1 ls_request_header aligned based (ls_request_ptr), 3 55 2 header_version char (8), /* version for this header */ 3 56 2 request_version char (8), /* varies depending on the request */ 3 57 2 request_type fixed bin, 3 58 2 pad1 bit (36), 3 59 2 reply_event_channel fixed bin (71), /* event channel over which reply_message should be sent */ 3 60 2 reply_handle bit (72) aligned, /* used for dispatching response */ 3 61 2 connection_info like user_connection_info; /* connection making this request. */ 3 62 3 63 dcl LS_REQUEST_HEADER_VERSION_1 char (8) initial ("lsrh0001") internal static options (constant); 3 64 3 65 dcl 1 user_connection_info aligned based, /* common info passed in most requests */ 3 66 2 connection_name char (32), 3 67 2 access_class_range (2) bit (72), 3 68 2 terminal_type char (32), 3 69 2 terminal_id char (4), 3 70 2 line_type fixed bin; 3 71 3 72 3 73 3 74 /* "validate" request: validate user ID and password */ 3 75 3 76 dcl 1 login_server_validate_request aligned based (ls_request_ptr), 3 77 2 header like ls_request_header, /* request_type = LS_VALIDATE_REQUEST */ 3 78 2 current_password char (8), /* scrambled */ 3 79 2 authorization bit (72), /* only valid if auth_given = "1"b */ 3 80 2 terminate_event_channel fixed bin (71), /* event channel to notify server when process terminates */ 3 81 2 person_id char (22), /* as specified in login line */ 3 82 2 project_id char (9), /* likewise, might be null string */ 3 83 2 network_connection_type fixed bin, /* see below for values */ 3 84 2 new_password char (8), /* only valid if change_password = "1"b */ 3 85 2 flags, 3 86 3 gpw bit (1) unaligned, /* password generated in response to -generate_password */ 3 87 3 auth_given bit (1) unaligned, /* -authorization specified */ 3 88 3 anonymous bit (1) unaligned, /* "enterp" request */ 3 89 3 anon_no_password bit (1) unaligned, /* "enter" request */ 3 90 3 change_password bit (1) unaligned, /* gave -cpw or -gpw */ 3 91 3 change_default_auth bit (1) unaligned, /* gave -change_default_authorization */ 3 92 3 change_default_proj bit (1) unaligned, /* gave -change_default_project */ 3 93 3 operator bit (1) unaligned, /* gave -operator */ 3 94 3 pad bit (28) unaligned; 3 95 3 96 3 97 dcl LS_VALIDATE_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsvr0001"); 3 98 3 99 3 100 3 101 /* "process" request: create a process or reconnect to an existing process for the specified user */ 3 102 3 103 dcl 1 login_server_process_request aligned based (ls_request_ptr), 3 104 2 fixed_part, /* to allow for automatic copies */ 3 105 3 header like ls_request_header, /* request_type = LS_PROCESS_REQUEST */ 3 106 3 handle bit (72), /* as provided in validate_response */ 3 107 3 person_id char (22), /* the real one */ 3 108 3 project_id char (9), /* likewise */ 3 109 3 project_pad fixed bin, 3 110 3 command_type fixed bin, /* login, connect, etc.; see below for names */ 3 111 3 process_number fixed bin, /* 0 if unspecified or irrelevant */ 3 112 3 default_io_module char (32), /* I/O module to use if no outer_module specified */ 3 113 3 switch_flags, /* used to indicate if "switch"-type control args were specified */ 3 114 4 warn_given bit (1) unaligned, 3 115 4 force_given bit (1) unaligned, 3 116 4 save_given bit (1) unaligned, 3 117 4 preempt_given bit (1) unaligned, 3 118 4 brief_given bit (1) unaligned, 3 119 4 pad2 bit (31) unaligned, 3 120 3 switch_values, /* these are only valid if corresponding bit in switch_flags is on */ 3 121 4 warn bit (1) unaligned, 3 122 4 force bit (1) unaligned, 3 123 4 save_on_disconnect bit (1) unaligned, 3 124 4 preempt bit (1) unaligned, 3 125 4 brief bit (1) unaligned, /* "0"b & brief_given => -long */ 3 126 4 pad3 bit (31) unaligned, 3 127 3 other_flags, 3 128 4 init_ring_given bit (1) unaligned, /* "1"b if -ring */ 3 129 4 minimum_ring_given bit (1) unaligned, /* "1"b if MNA terminal interface ring > 1 */ 3 130 4 immediate bit (1) unaligned, /* "1"b => -new_proc (or -destroy) -immediate */ 3 131 4 no_start_up bit (1) unaligned, /* "1"b if -no_start_up */ 3 132 4 pad4 bit (32) unaligned, 3 133 3 initial_ring fixed bin, /* valid iff init_ring_given = "1"b */ 3 134 3 minimum_ring fixed bin, /* ring in which MNA terminal mgr operates */ 3 135 3 home_dir char (168), /* null if not specified */ 3 136 3 outer_module char (32), /* likewise */ 3 137 3 process_overseer char (168), /* likewise */ 3 138 3 subsystem char (168), /* likewise */ 3 139 3 n_args fixed bin, /* how many arguments specified after -ag; if 0, ignore the rest of the structure */ 3 140 2 login_arguments, /* variable part, describes stuff after -ag */ 3 141 3 arg_string_length fixed bin (21), 3 142 3 args (ls_process_request_n_args refer (login_server_process_request.n_args)), 3 143 4 start_index fixed bin (21), /* position in arg_string at which arg (i) starts */ 3 144 4 arg_length fixed bin (21), /* length of arg (i) */ 3 145 3 arg_string char (ls_process_request_arg_string_length refer (login_server_process_request.arg_string_length)); 3 146 3 147 dcl ls_process_request_n_args fixed bin; 3 148 dcl ls_process_request_arg_string_length fixed bin (21); 3 149 3 150 dcl LS_PROCESS_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lspr0001"); 3 151 3 152 3 153 3 154 /* "list" request: list the user's disconnected processes, if any */ 3 155 3 156 dcl 1 login_server_list_request aligned based (ls_request_ptr), 3 157 2 header like ls_request_header, /* request_type = LS_LIST_REQUEST */ 3 158 2 handle bit (72); 3 159 3 160 dcl LS_LIST_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 3 161 3 162 3 163 3 164 /* "dial" request: find a process to accept a dial */ 3 165 3 166 /* Note: because a dial request may or may not have been preceded 3 167* by a validate request/response, the initializer_handle may be null. 3 168**/ 3 169 3 170 dcl 1 login_server_dial_request aligned based (ls_request_ptr), 3 171 2 header like ls_request_header, /* request_type = LS_DIAL_REQUEST */ 3 172 2 initializer_handle bit (72), /* as provided in validate_response (if any) */ 3 173 2 terminate_event_channel fixed bin (71), /* event channel to wake up login server when master process terminates */ 3 174 2 dial_qualifier char (22), 3 175 2 person_id char (22), /* null if not specified */ 3 176 2 project_id char (9), /* likewise */ 3 177 2 user_person_id char (22), /* if -user was specified, otherwise "" */ 3 178 2 user_project_id char (9); /* likewise */ 3 179 3 180 dcl LS_DIAL_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdr0001"); 3 181 3 182 3 183 3 184 /* "disconnect" request: report that a login channel has disconnected */ 3 185 /* Note: this message is sent if the connection is broken either during the login dialogue 3 186* or later on when the process was using it */ 3 187 3 188 dcl 1 login_server_disconnect_request aligned based (ls_request_ptr), 3 189 2 header like ls_request_header, /* request_type = LS_DISCONNECT_REQUEST */ 3 190 2 handle bit (72), /* from original validate_response */ 3 191 2 process_id bit (36); /* ""b if no process established */ 3 192 3 193 dcl LS_DISCONNECT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdc0001"); 3 194 3 195 3 196 3 197 /* "logout" request: indicates that user entered the "logout" request, ending the dialogue; does not require any response */ 3 198 3 199 dcl 1 login_server_logout_request aligned based (ls_request_ptr), 3 200 2 header like ls_request_header, /* request_type = LS_LOGOUT_REQUEST */ 3 201 2 handle bit (72); 3 202 3 203 dcl LS_LOGOUT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslg0001"); 3 204 3 205 3 206 3 207 /* "operator" request: sign the user on as an operator, the result of either 3 208* "login -operator" or "dial system". Note that in the latter case, there may 3 209* not have been a validate request (if the -user control argument wasn't specified), 3 210* in which case initializer_handle is null, and the person_id and project_id 3 211* are blank. 3 212**/ 3 213 3 214 dcl 1 login_server_operator_request aligned based (ls_request_ptr), 3 215 2 header like ls_request_header, /* request_type = LS_OPERATOR_REQUEST */ 3 216 2 initializer_handle bit (72) aligned, /* as provided in validate_response (if any) */ 3 217 2 terminate_event_channel fixed bin (71), /* event channel for wakeup when connection is dropped */ 3 218 2 person_id char (22), /* likewise */ 3 219 2 project_id char (9), /* likewise */ 3 220 2 virtual_channel char (32); /* if -virtual_channel specified, otherwise "" */ 3 221 3 222 dcl LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsor0001"); 3 223 3 224 3 225 3 226 /* Response types */ 3 227 3 228 dcl (LS_UNKNOWN_RESPONSE initial (100), /* unknown response type. */ 3 229 LS_VALIDATE_RESPONSE initial (101), /* response to validation request */ 3 230 LS_PROCESS_RESPONSE initial (102), /* response to process request */ 3 231 LS_LIST_RESPONSE initial (103), /* response to list request */ 3 232 LS_DIAL_RESPONSE initial (104), /* response to dial request */ 3 233 LS_TERMINATION_RESPONSE initial (105), /* to notify server of a logout */ 3 234 LS_NEW_PROC_RESPONSE initial (106), /* to notify server of process termination */ 3 235 LS_OPERATOR_RESPONSE initial (107)) /* response to operator request */ 3 236 fixed bin internal static options (constant); 3 237 3 238 dcl LS_RESPONSE_TYPES (100:107) char (10) internal static options (constant) initial 3 239 ( 3 240 "UNKNOWN", 3 241 "validate", 3 242 "process", 3 243 "list", 3 244 "dial", 3 245 "terminate", 3 246 "new_proc", 3 247 "operator"); 3 248 3 249 /* NOTE: the server_handle is not included in the response structures because 3 250* it is provided in the user_message_ structures */ 3 251 3 252 3 253 3 254 dcl ls_response_ptr pointer; 3 255 3 256 /* common header for all responses */ 3 257 3 258 dcl 1 login_server_response_header aligned based (ls_response_ptr), 3 259 2 message_type fixed bin, 3 260 2 header_pad bit (36), /* force doubleword alignment */ 3 261 2 version char (8); 3 262 3 263 3 264 3 265 /* "validate" response: indicate whether user_id/password is valid */ 3 266 3 267 dcl 1 login_server_validate_response aligned based (ls_response_ptr), 3 268 2 header like login_server_response_header, /* message_type = LS_VALIDATE_RESPONSE */ 3 269 2 handle bit (72), /* to be provided by the server in subsequent */ 3 270 /* messages for the same connection */ 3 271 2 authorization bit (72), /* default if none was supplied */ 3 272 2 authorization_range (2) bit (72), /* authorization range permitted for this user */ 3 273 2 status_code fixed bin (35), /* 0 iff user is validated */ 3 274 2 person_id char (22), /* primary name from the PNT */ 3 275 2 project_id char (9), /* primary name from the PNT or PDT */ 3 276 2 n_disconnected_processes fixed bin, /* number of disconnected processes for specified user */ 3 277 2 validate_pad fixed bin, 3 278 2 previous_login_info, /* for printing login message */ 3 279 3 time fixed bin (71), 3 280 3 terminal_type char (32), 3 281 3 terminal_id char (4), 3 282 2 incorrect_passwords fixed bin, /* number of times password given incorrectly */ 3 283 2 last_incorrect_password, /* where it came from */ 3 284 3 time fixed bin (71), 3 285 3 terminal_type char (32), 3 286 3 terminal_id char (4), 3 287 2 password_interval fixed bin, /* limit (in days) for password use or change */ 3 288 2 flags, 3 289 3 disconnect bit (1) unaligned, /* if "1"b, close the connection immediately */ 3 290 3 password_changed bit (1) unal, /* "1"b => changed password */ 3 291 3 default_auth_changed bit (1) unal, /* "1"b => changed default authorization */ 3 292 3 default_proj_changed bit (1) unal, /* "1"b => changed default project */ 3 293 3 password_expired bit (1) unal, /* "1"b => password not changed recently enough */ 3 294 3 password_unused_too_long bit (1) unal, /* "1"b => password hasn't been used recently */ 3 295 3 pad bit (30) unaligned; 3 296 3 297 dcl LS_VALIDATE_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsvs0001"); 3 298 3 299 3 300 3 301 /* "process" response: responds to request to create or connect */ 3 302 3 303 dcl 1 login_server_process_response aligned based (ls_response_ptr), 3 304 2 fixed_part, 3 305 3 header like login_server_response_header, /* message_type = LS_PROCESS_RESPONSE */ 3 306 3 status_code fixed bin (35), /* 0 iff process was created or requested process exists */ 3 307 3 process_id bit (36), 3 308 3 new_handle bit (72), /* changed if reconnecting, etc. to preexisting process, all 0 otherwise */ 3 309 3 authorization bit (72), /* authorization of created or existing process */ 3 310 3 process_group_id char (32), /* Person.Project.tag */ 3 311 3 process_number fixed bin, /* as in, "Your disconnected process #2..." */ 3 312 3 n_disconnected_processes fixed bin, /* valid even if code ^= 0, e.g., if request was ambiguous */ 3 313 3 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 3 314 3 login_instance fixed bin, /* "This is your Nth interactive login" */ 3 315 3 accounting_info, /* for destroyed process, if any */ 3 316 4 cpu_usage fixed bin (71), 3 317 4 cost float bin, 3 318 3 flags, /* except for disconnect and logout, invalid if status_code ^= 0 */ 3 319 4 disconnect bit (1) unaligned, /* "1"b => break the connection immediately */ 3 320 4 logout bit (1) unaligned, /* "1"b => restart login sequence */ 3 321 4 created bit (1) unaligned, /* "1"b => new process created */ 3 322 4 connected bit (1) unaligned, /* "1"b => connected to old process */ 3 323 4 new_proc bit (1) unaligned, /* "1"b => connected after new_proc */ 3 324 4 destroyed bit (1) unaligned, /* "1"b => process destroyed */ 3 325 4 anonymous bit (1) unaligned, /* "1"b => anonymous user ("enter" or "enterp") */ 3 326 4 already_logged_in bit (1) unaligned, /* "1"b => user can't log in because he already is */ 3 327 4 message_coordinator bit (1) unaligned, /* "1"b => this connection is going to be used by the message coordinator */ 3 328 4 brief bit (1) unaligned, /* "1"b => brief user attribute from PDT */ 3 329 4 pad bit (26) unaligned, 3 330 3 initial_ring fixed bin, /* ring in which process was created */ 3 331 3 already_logged_in_info, /* relevant if already_logged_in flag is "1"b */ 3 332 4 connection_name char (32), 3 333 4 terminal_type char (32), 3 334 4 terminal_id char (4), 3 335 2 accounting_message_struc, /* character string assembled by initializer giving error or warnings about the user's account */ 3 336 3 accounting_message_length fixed bin, 3 337 3 accounting_message char (ls_process_response_accounting_message_length refer (login_server_process_response.accounting_message_length)); 3 338 3 339 dcl ls_process_response_accounting_message_length fixed bin; 3 340 3 341 dcl LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsps0001"); 3 342 3 343 3 344 3 345 /* "list" response: used if create request specified "list" command */ 3 346 3 347 dcl 1 login_server_list_response aligned based (ls_response_ptr), 3 348 2 header like login_server_response_header, /* message_type = LS_LIST_RESPONSE */ 3 349 2 n_processes fixed bin, /* number of disconnected processes (might be 0) */ 3 350 2 pad_header fixed bin, 3 351 2 process_info (login_server_list_response_n_processes refer (login_server_list_response.n_processes)), 3 352 3 creation_time fixed bin (71), 3 353 3 authorization bit (72), 3 354 3 initial_ring fixed bin, 3 355 3 pad_process_info fixed bin, 3 356 3 connection_info like user_connection_info; 3 357 3 358 dcl login_server_list_response_n_processes fixed bin; 3 359 3 360 dcl LOGIN_SERVER_LIST_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 3 361 3 362 3 363 3 364 /* "dial" response: response to dial request */ 3 365 3 366 dcl 1 login_server_dial_response aligned based (ls_response_ptr), 3 367 2 header like login_server_response_header, /* message_type = LS_DIAL_RESPONSE */ 3 368 2 status_code fixed bin (35), /* 0 iff dial server was found and all is OK */ 3 369 2 process_id bit (36), /* of dial server */ 3 370 2 process_group_id char (32), /* likewise */ 3 371 2 authorization bit (72), /* likewise, to make sure connection is usable */ 3 372 2 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 3 373 2 process_ring fixed bin, /* initial ring of dial server */ 3 374 2 flags, 3 375 3 disconnect bit (1) unaligned, /* "1"b => break connection immediately */ 3 376 3 pad bit (35) unaligned; 3 377 3 378 dcl LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsds0001"); 3 379 3 380 3 381 3 382 /* "termination" response: (not a response to anything): notify server that a 3 383* process terminated other than by logout */ 3 384 3 385 dcl 1 login_server_termination_response aligned based (ls_response_ptr), 3 386 2 header like login_server_response_header, /* message_type = LS_TERMINATION_RESPONSE */ 3 387 2 accounting_info, /* for printing in logout message */ 3 388 3 cpu_usage fixed bin (71), 3 389 3 cost float bin, 3 390 3 pad bit (33) unaligned, 3 391 2 process_id bit (36), /* of the logged-out process */ 3 392 2 process_group_id char (32), 3 393 2 status_code fixed bin (35), /* e.g., to indicate reason for fatal error */ 3 394 2 flags, 3 395 3 logout bit (1) aligned, /* no new process coming */ 3 396 3 automatic_logout bit (1) unaligned, 3 397 3 hold bit (1) unaligned, 3 398 3 brief bit (1) unaligned, 3 399 3 new_proc bit (1) unaligned, /* user-requested new process */ 3 400 3 fatal_error bit (1) unaligned, /* process died unexpectedly */ 3 401 3 fpe_caused_logout bit (1) unaligned, /* fatal error doesn't generate new process */ 3 402 3 fpe_loop bit (1) unaligned, /* fatal error loop: too many in too short a time */ 3 403 3 fpe_during_init bit (1) unaligned, /* fatal error during process initialization */ 3 404 3 offer_help bit (1) unaligned, /* print a message offering "help" */ 3 405 3 pad bit (27) unaligned; 3 406 3 407 dcl LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lstr0001"); 3 408 3 409 3 410 3 411 /* "new_proc" response: (not actually a response to anything) -- describes a 3 412* new process (after a termination_response) */ 3 413 3 414 dcl 1 login_server_new_proc_response aligned based (ls_response_ptr), 3 415 2 header like login_server_response_header, /* message_type = LS_NEW_PROC_RESPONSE */ 3 416 2 new_authorization bit (72), /* in case of new_proc -auth */ 3 417 2 new_start_event_channel fixed bin (71), /* event channel for starting new process */ 3 418 2 new_process_id bit (36); /* process_id of newly-created process */ 3 419 3 420 dcl LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsnp0001"); 3 421 3 422 3 423 3 424 /* "operator" response: indicates success or failure of operator request */ 3 425 3 426 dcl 1 login_server_operator_response aligned based (ls_response_ptr), 3 427 2 header like login_server_response_header, /* message_type = LS_OPERATOR_RESPONSE */ 3 428 2 status_code fixed bin (35), /* indicates success or failure */ 3 429 2 process_id bit (36), /* process ID of the message coordinator */ 3 430 2 process_group_id char (32), /* Person.Project.tag */ 3 431 2 event_channel fixed bin (71), /* event channel over which to send connect/disconnect wakeups */ 3 432 2 ring fixed bin, /* ring of message coordinator */ 3 433 2 flags, 3 434 3 disconnect bit (1) unaligned, /* "1" => break the connection immediately */ 3 435 3 mbz bit (35) unaligned; 3 436 3 437 3 438 dcl LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsos0001"); 3 439 3 440 3 441 /* format of reply message sent to acknowledge receipt of a request */ 3 442 3 443 dcl ls_reply_message_ptr pointer; 3 444 3 445 dcl 1 ls_reply_message aligned based (ls_reply_message_ptr), 3 446 2 code fixed bin (35), 3 447 2 flags, 3 448 3 request_invalid bit (1) unaligned, /* "1"b => could not process request */ 3 449 3 response_sent bit (1) unaligned, /* "1"b => there is a response message */ 3 450 3 as_error_code bit (1) unaligned, /* "1"b => code is from as_error_table_ */ 3 451 3 do_not_reply bit (1) unaligned, /* "1"b => special flag for AS to prevent any reply from being sent to login server */ 3 452 3 mbz bit (32) unaligned; 3 453 3 454 /* The following are values used to identify the various requests internally; those from CREATE_REQ on 3 455* can appear as "command_type" in ls_process_requests. */ 3 456 3 457 dcl (LOGIN_REQ initial (1), 3 458 ENTER_REQ initial (2), 3 459 ENTERP_REQ initial (3), 3 460 CREATE_REQ initial (4), 3 461 DESTROY_REQ initial (5), 3 462 CONNECT_REQ initial (6), 3 463 NEW_PROC_REQ initial (7), 3 464 LIST_REQ initial (8)) 3 465 fixed bin internal static options (constant); 3 466 3 467 /* The following are the possible values for login_server_validate_request.network_connection_type. 3 468* They are used by the initializer to select a default process overseer and an instance tag. 3 469**/ 3 470 3 471 dcl (NETWORK_CONNECTION_LOGIN initial (1), 3 472 NETWORK_CONNECTION_DSA_FILE_TRANSFER initial (2)) 3 473 fixed bin internal static options (constant); 3 474 3 475 /* END INCLUDE FILE ... login_server_messages.incl.pl1 */ 267 268 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 4 2 4 3 4 4 /****^ HISTORY COMMENTS: 4 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 4 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 4 7* Added sl_info structure and associated named constants for use in calling 4 8* sys_log_$general. 4 9* END HISTORY COMMENTS */ 4 10 4 11 4 12 /* format: style4 */ 4 13 4 14 dcl ( 4 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 4 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 4 17 SL_TYPE init (-1), /* type message */ 4 18 SL_LOG_SILENT init (0), /* log message */ 4 19 SL_LOG init (1), /* log & type message */ 4 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 4 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 4 22 ) fixed bin internal static options (constant); 4 23 4 24 dcl 1 sl_info aligned automatic, 4 25 2 version char(8), /* structure version */ 4 26 2 arg_list_ptr ptr, /* arg_list with values */ 4 27 2 loc, 4 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 4 29 /* These flags control where the corresponding data item is found.*/ 4 30 /* -1: data appears in the corresponding structure element below */ 4 31 /* 0: data is not present anywhere */ 4 32 /* +N: data is Nth item in argument list pointed to by */ 4 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 4 34 /* corresponding structure element. */ 4 35 /* if data = +N: */ 4 36 /* argN is data_ptr, argN+1 is data_len */ 4 37 /* if ioa_msg = +N: */ 4 38 /* argN+1, ... argLAST are arguments substituted into the */ 4 39 /* ioa_msg control string. The formatted msg is returned. */ 4 40 2 flags, 4 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 4 42 3 flags_pad bit(35) unal, 4 43 2 mode fixed bin, /* as-mode, command-mode */ 4 44 2 severity fixed bin, /* error severity */ 4 45 2 code fixed bin(35), /* error table code */ 4 46 2 caller char(65) varying, /* caller refname$entryname*/ 4 47 2 data, /* binary data ptr/length */ 4 48 3 data_ptr ptr, 4 49 3 data_lth fixed bin(21), 4 50 2 class char(10) varying, /* binary data class */ 4 51 2 ioa_msg char(500) varying; /* formatted message text */ 4 52 4 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 54 /* */ 4 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 4 56 /* their data types should be as shown in the structure above, except that */ 4 57 /* character strings should be char(*) nonvarying. */ 4 58 /* */ 4 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 60 4 61 /* value for sl_info.version */ 4 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 4 63 4 64 /* values for sl_info.mode */ 4 65 dcl (SL_INFO_as_mode init(1), 4 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 4 67 4 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 4 69 dcl (SL_INFO_arg_given_in_structure init(-1), 4 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 4 71 4 72 4 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 74 /* */ 4 75 /* The following static structures are commonly used in the Login Server */ 4 76 /* user control software. */ 4 77 /* */ 4 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 79 4 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 4 81 4 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 4 83 2 version char(8) init ("sl_info1"), 4 84 2 arg_list_ptr ptr init (null), 4 85 2 loc, 4 86 3 (mode init (-1), 4 87 severity init ( 1), 4 88 code init ( 2), 4 89 caller init (-1), 4 90 data init ( 0), 4 91 class init ( 0), 4 92 ioa_msg init ( 3)) fixed bin, 4 93 2 flags, 4 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 4 95 3 flags_pad bit(35) unal init ("0"b), 4 96 2 mode fixed bin init ( 1), 4 97 2 severity fixed bin init ( 0), 4 98 2 code fixed bin(35) init ( 0), 4 99 2 caller char(65) varying init (""), 4 100 2 data, 4 101 3 data_ptr ptr init (null), 4 102 3 data_lth fixed bin(21) init ( 0), 4 103 2 class char(10) varying init (""), 4 104 2 ioa_msg char(500) varying init (""); 4 105 4 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 4 107 4 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 4 109 2 version char(8) init ("sl_info1"), 4 110 2 arg_list_ptr ptr init (null), 4 111 2 loc, 4 112 3 (mode init (-1), 4 113 severity init ( 1), 4 114 code init ( 0), 4 115 caller init (-1), 4 116 data init ( 0), 4 117 class init ( 0), 4 118 ioa_msg init ( 2)) fixed bin, 4 119 2 flags, 4 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 4 121 3 flags_pad bit(35) unal init ("0"b), 4 122 2 mode fixed bin init ( 1), 4 123 2 severity fixed bin init ( 0), 4 124 2 code fixed bin(35) init ( 0), 4 125 2 caller char(65) varying init (""), 4 126 2 data, 4 127 3 data_ptr ptr init (null), 4 128 3 data_lth fixed bin(21) init ( 0), 4 129 2 class char(10) varying init (""), 4 130 2 ioa_msg char(500) varying init (""); 4 131 4 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 4 133 4 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 4 135 2 version char(8) init ("sl_info1"), 4 136 2 arg_list_ptr ptr init (null), 4 137 2 loc, 4 138 3 (mode init (-1), 4 139 severity init ( 1), 4 140 code init ( 0), 4 141 caller init (-1), 4 142 data init ( 0), 4 143 class init ( 0), 4 144 ioa_msg init ( 2)) fixed bin, 4 145 2 flags, 4 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 4 147 3 flags_pad bit(35) unal init ("0"b), 4 148 2 mode fixed bin init ( 1), 4 149 2 severity fixed bin init ( 0), 4 150 2 code fixed bin(35) init ( 0), 4 151 2 caller char(65) varying init (""), 4 152 2 data, 4 153 3 data_ptr ptr init (null), 4 154 3 data_lth fixed bin(21) init ( 0), 4 155 2 class char(10) varying init (""), 4 156 2 ioa_msg char(500) varying init (""); 4 157 4 158 4 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 4 160 4 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 4 162 2 version char(8) init ("sl_info1"), 4 163 2 arg_list_ptr ptr init (null), 4 164 2 loc, 4 165 3 (mode init (-1), 4 166 severity init ( 1), 4 167 code init ( 2), 4 168 caller init (-1), 4 169 data init ( 0), 4 170 class init ( 0), 4 171 ioa_msg init ( 4)) fixed bin, 4 172 2 flags, 4 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 4 174 3 flags_pad bit(35) unal init ("0"b), 4 175 2 mode fixed bin init ( 1), 4 176 2 severity fixed bin init ( 0), 4 177 2 code fixed bin(35) init ( 0), 4 178 2 caller char(65) varying init (""), 4 179 2 data, 4 180 3 data_ptr ptr init (null), 4 181 3 data_lth fixed bin(21) init ( 0), 4 182 2 class char(10) varying init (""), 4 183 2 ioa_msg char(500) varying init (""); 4 184 4 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 4 186 4 187 dcl 1 sl_info_code_msg aligned int static options(constant), 4 188 2 version char(8) init ("sl_info1"), 4 189 2 arg_list_ptr ptr init (null), 4 190 2 loc, 4 191 3 (mode init (-1), 4 192 severity init (-1), 4 193 code init ( 1), 4 194 caller init (-1), 4 195 data init ( 0), 4 196 class init ( 0), 4 197 ioa_msg init ( 2)) fixed bin, 4 198 2 flags, 4 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 4 200 3 flags_pad bit(35) unal init ("0"b), 4 201 2 mode fixed bin init ( 1), 4 202 2 severity fixed bin init ( 0), 4 203 2 code fixed bin(35) init ( 0), 4 204 2 caller char(65) varying init (""), 4 205 2 data, 4 206 3 data_ptr ptr init (null), 4 207 3 data_lth fixed bin(21) init ( 0), 4 208 2 class char(10) varying init (""), 4 209 2 ioa_msg char(500) varying init (""); 4 210 4 211 4 212 /* Syntax: call Trace (ioa_ctl, args); */ 4 213 4 214 dcl 1 sl_info_msg aligned int static options(constant), 4 215 2 version char(8) init ("sl_info1"), 4 216 2 arg_list_ptr ptr init (null), 4 217 2 loc, 4 218 3 (mode init (-1), 4 219 severity init (-1), 4 220 code init ( 0), 4 221 caller init (-1), 4 222 data init ( 0), 4 223 class init ( 0), 4 224 ioa_msg init ( 1)) fixed bin, 4 225 2 flags, 4 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 4 227 3 flags_pad bit(35) unal init ("0"b), 4 228 2 mode fixed bin init ( 1), 4 229 2 severity fixed bin init ( 0), 4 230 2 code fixed bin(35) init ( 0), 4 231 2 caller char(65) varying init (""), 4 232 2 data, 4 233 3 data_ptr ptr init (null), 4 234 3 data_lth fixed bin(21) init ( 0), 4 235 2 class char(10) varying init (""), 4 236 2 ioa_msg char(500) varying init (""); 4 237 4 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 268 269 end uc_send_ls_response_; 270 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1222.0 uc_send_ls_response_.pl1 >special_ldd>install>MR12.1-1054>uc_send_ls_response_.pl1 263 1 08/04/87 1140.5 active_connection_info.incl.pl1 >spec>install>1056>active_connection_info.incl.pl1 266 2 03/08/85 0852.7 as_user_message_add.incl.pl1 >ldd>include>as_user_message_add.incl.pl1 267 3 08/04/87 1139.9 login_server_messages.incl.pl1 >spec>install>1056>login_server_messages.incl.pl1 268 4 08/04/87 1139.0 sys_log_constants.incl.pl1 >spec>install>1056>sys_log_constants.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. ACT_INFO_VERSION_1 000522 constant char(8) initial unaligned dcl 1-40 ref 208 AS_USER_MESSAGE_ADD_INFO_VERSION_1 000520 constant char(8) initial unaligned dcl 2-20 ref 129 FALSE constant bit(1) initial dcl 96 ref 124 LOGIN_SERVER_RING constant fixed bin(17,0) initial dcl 97 ref 136 ME 000524 constant char(20) initial unaligned dcl 98 ref 174 253 P_code parameter fixed bin(35,0) dcl 68 set ref 53 152* P_connection_name parameter char(32) dcl 66 in procedure "uc_send_ls_response_" ref 53 115 P_connection_name parameter char(32) dcl 197 in procedure "Force_Disconnect" ref 194 205 P_data_lth parameter fixed bin(18,0) dcl 61 ref 53 110 P_data_ptr parameter pointer dcl 60 ref 53 109 P_ls_event_channel parameter fixed bin(71,0) dcl 64 ref 53 113 P_ls_handle parameter bit(72) dcl 63 ref 53 112 P_ls_process_id parameter bit(36) dcl 62 ref 53 111 P_ls_reply_message_ptr parameter pointer dcl 65 ref 53 114 P_reply_code parameter fixed bin(35,0) dcl 67 ref 53 116 SL_LOG 000547 constant fixed bin(17,0) initial dcl 4-14 set ref 147* SL_LOG_BEEP 000545 constant fixed bin(17,0) initial dcl 4-14 set ref 139* SL_LOG_SILENT constant fixed bin(17,0) initial dcl 4-14 ref 252 TRUE constant bit(1) initial dcl 99 ref 142 aci 000152 automatic structure level 1 dcl 265 set ref 209 209 active_connection_info based structure level 1 dcl 1-20 addr builtin function dcl 104 ref 138 138 176 176 209 209 255 255 after builtin function dcl 104 ref 215 arg_list_ptr 2 000270 automatic pointer level 2 dcl 4-24 set ref 175* 254* as_user_message_$priv_add_message 000010 constant entry external dcl 88 ref 138 as_user_message_add_info based structure level 1 dcl 2-5 asum_ai 000100 automatic structure level 1 dcl 72 set ref 128* 138 138 based_event_message based fixed bin(71,0) dcl 84 set ref 145* before builtin function dcl 104 ref 213 caller 17 000270 automatic varying char(65) level 2 dcl 4-24 set ref 174* 253* code 000106 automatic fixed bin(35,0) dcl 199 in procedure "Force_Disconnect" set ref 209* 211 219* 221 221* 223 223* code 000137 automatic fixed bin(35,0) dcl 74 in procedure "uc_send_ls_response_" set ref 117* 138* 139 139* 145* 147 147* 152 177* 178 code 16 000270 automatic fixed bin(35,0) level 2 in structure "sl_info" dcl 4-24 in procedure "uc_send_ls_response_" set ref 177 code based fixed bin(35,0) level 2 in structure "ls_reply_message" dcl 3-445 in procedure "uc_send_ls_response_" set ref 123* connection_name 000127 automatic char(32) dcl 73 in procedure "uc_send_ls_response_" set ref 115* 147* 179* connection_name 000107 automatic char(32) unaligned dcl 200 in procedure "Force_Disconnect" set ref 205* 207 209* 221* cu_$arg_list_ptr 000024 constant entry external dcl 248 in procedure "Log_Error_With_Code" ref 254 cu_$arg_list_ptr 000020 constant entry external dcl 170 in procedure "Abort" ref 175 data_lth 000142 automatic fixed bin(18,0) dcl 76 set ref 110* 127 131 data_ptr 000140 automatic pointer dcl 75 set ref 109* 130 destination_info 12 000100 automatic structure level 2 dcl 72 do_not_reply 1(03) based bit(1) level 3 packed unaligned dcl 3-445 set ref 119 entry_point_name 000117 automatic char(60) unaligned dcl 201 set ref 215* 217 217* 219* 223* entry_to_call 000146 automatic entry variable dcl 203 set ref 219* 221 flags 1 based structure level 2 dcl 3-445 set ref 124* force_disconnect_entry 50 000152 automatic char(64) level 2 dcl 265 set ref 212 213 215 group_id 12 000100 automatic char(32) level 3 packed unaligned dcl 72 set ref 133* handle 23 000100 automatic bit(72) level 3 dcl 72 set ref 135* hcs_$make_entry 000012 constant entry external dcl 89 ref 219 hcs_$wakeup 000014 constant entry external dcl 90 ref 145 hpriv_connection_list_$get_name 000016 constant entry external dcl 91 ref 209 login_server_response_header based structure level 1 dcl 3-258 ls_event_channel 000146 automatic fixed bin(71,0) dcl 79 set ref 113* 120 145* 147 147 ls_handle 000144 automatic bit(72) dcl 78 set ref 112* 135 ls_process_id 000143 automatic bit(36) dcl 77 set ref 111* 134 145* 147* ls_reply_message based structure level 1 dcl 3-445 set ref 122 ls_reply_message_ptr 000266 automatic pointer dcl 3-443 set ref 114* 119 122 123 124 142 145 ls_request_header based structure level 1 dcl 3-54 message_access_class 6 000100 automatic bit(72) level 3 dcl 72 set ref 132* message_info 2 000100 automatic structure level 2 dcl 72 message_length 4 000100 automatic fixed bin(18,0) level 3 dcl 72 set ref 131* message_ptr 2 000100 automatic pointer level 3 dcl 72 set ref 130* null builtin function dcl 104 ref 219 219 process_id 22 000100 automatic bit(36) level 3 dcl 72 set ref 134* reader_deletes 26 000100 automatic bit(1) level 3 dcl 72 set ref 137* ref_name 000136 automatic char(32) unaligned dcl 202 set ref 213* 217 219* 223* reply_code 000150 automatic fixed bin(35,0) dcl 80 set ref 116* 123 response_sent 1(01) based bit(1) level 3 packed unaligned dcl 3-445 set ref 142* ring 25 000100 automatic fixed bin(3,0) level 3 dcl 72 set ref 136* severity 15 000270 automatic fixed bin(17,0) level 2 dcl 4-24 set ref 252* sl_info 000270 automatic structure level 1 dcl 4-24 set ref 173* 176 176 251* 255 255 sl_info_code_msg 000250 constant structure level 1 dcl 4-187 ref 251 sl_info_sev_code_msg 000000 constant structure level 1 dcl 4-82 ref 173 sys_log_$general 000026 constant entry external dcl 249 in procedure "Log_Error_With_Code" ref 255 sys_log_$general 000022 constant entry external dcl 171 in procedure "Abort" ref 176 unspec builtin function dcl 104 set ref 122 128* 147 147 user_connection_info based structure level 1 dcl 3-65 version 000152 automatic char(8) level 2 in structure "aci" dcl 265 in procedure "uc_send_ls_response_" set ref 208* version 000100 automatic char(8) level 2 in structure "asum_ai" dcl 72 in procedure "uc_send_ls_response_" set ref 129* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CONNECT_REQ internal static fixed bin(17,0) initial dcl 3-457 CREATE_REQ internal static fixed bin(17,0) initial dcl 3-457 DESTROY_REQ internal static fixed bin(17,0) initial dcl 3-457 ENTERP_REQ internal static fixed bin(17,0) initial dcl 3-457 ENTER_REQ internal static fixed bin(17,0) initial dcl 3-457 LIST_REQ internal static fixed bin(17,0) initial dcl 3-457 LOGIN_REQ internal static fixed bin(17,0) initial dcl 3-457 LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 3-378 LOGIN_SERVER_LIST_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 3-360 LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 3-420 LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 3-222 LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 3-438 LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 3-341 LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 3-407 LS_DIAL_REQUEST internal static fixed bin(17,0) initial dcl 3-31 LS_DIAL_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 3-180 LS_DIAL_RESPONSE internal static fixed bin(17,0) initial dcl 3-228 LS_DISCONNECT_REQUEST internal static fixed bin(17,0) initial dcl 3-31 LS_DISCONNECT_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 3-193 LS_LIST_REQUEST internal static fixed bin(17,0) initial dcl 3-31 LS_LIST_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 3-160 LS_LIST_RESPONSE internal static fixed bin(17,0) initial dcl 3-228 LS_LOGOUT_REQUEST internal static fixed bin(17,0) initial dcl 3-31 LS_LOGOUT_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 3-203 LS_NEW_PROC_RESPONSE internal static fixed bin(17,0) initial dcl 3-228 LS_OPERATOR_REQUEST internal static fixed bin(17,0) initial dcl 3-31 LS_OPERATOR_RESPONSE internal static fixed bin(17,0) initial dcl 3-228 LS_PROCESS_REQUEST internal static fixed bin(17,0) initial dcl 3-31 LS_PROCESS_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 3-150 LS_PROCESS_RESPONSE internal static fixed bin(17,0) initial dcl 3-228 LS_REQUEST_HEADER_VERSION_1 internal static char(8) initial unaligned dcl 3-63 LS_REQUEST_TYPES internal static char(10) initial array unaligned dcl 3-40 LS_RESPONSE_TYPES internal static char(10) initial array unaligned dcl 3-238 LS_TERMINATION_RESPONSE internal static fixed bin(17,0) initial dcl 3-228 LS_UNKNOWN_RESPONSE internal static fixed bin(17,0) initial dcl 3-228 LS_VALIDATE_REQUEST internal static fixed bin(17,0) initial dcl 3-31 LS_VALIDATE_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 3-97 LS_VALIDATE_RESPONSE internal static fixed bin(17,0) initial dcl 3-228 LS_VALIDATE_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 3-297 NETWORK_CONNECTION_DSA_FILE_TRANSFER internal static fixed bin(17,0) initial dcl 3-471 NETWORK_CONNECTION_LOGIN internal static fixed bin(17,0) initial dcl 3-471 NEW_PROC_REQ internal static fixed bin(17,0) initial dcl 3-457 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 4-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 4-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 4-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 4-65 SL_INFO_version_1 internal static char(8) initial unaligned dcl 4-62 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 4-14 SL_TYPE internal static fixed bin(17,0) initial dcl 4-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 4-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 4-14 active_connection_info_ptr automatic pointer dcl 1-18 as_user_message_add_info_ptr automatic pointer dcl 2-4 login_server_dial_request based structure level 1 dcl 3-170 login_server_dial_response based structure level 1 dcl 3-366 login_server_disconnect_request based structure level 1 dcl 3-188 login_server_list_request based structure level 1 dcl 3-156 login_server_list_response based structure level 1 dcl 3-347 login_server_list_response_n_processes automatic fixed bin(17,0) dcl 3-358 login_server_logout_request based structure level 1 dcl 3-199 login_server_new_proc_response based structure level 1 dcl 3-414 login_server_operator_request based structure level 1 dcl 3-214 login_server_operator_response based structure level 1 dcl 3-426 login_server_process_request based structure level 1 dcl 3-103 login_server_process_response based structure level 1 dcl 3-303 login_server_termination_response based structure level 1 dcl 3-385 login_server_validate_request based structure level 1 dcl 3-76 login_server_validate_response based structure level 1 dcl 3-267 ls_process_request_arg_string_length automatic fixed bin(21,0) dcl 3-148 ls_process_request_n_args automatic fixed bin(17,0) dcl 3-147 ls_process_response_accounting_message_length automatic fixed bin(17,0) dcl 3-339 ls_request_ptr automatic pointer dcl 3-50 ls_response_ptr automatic pointer dcl 3-254 sl_info_msg internal static structure level 1 dcl 4-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 4-161 sl_info_sev_coded_msg internal static structure level 1 dcl 4-134 sl_info_sev_msg internal static structure level 1 dcl 4-108 NAMES DECLARED BY EXPLICIT CONTEXT. Abort 001101 constant entry internal dcl 167 ref 139 147 Force_Disconnect 001155 constant entry internal dcl 194 ref 179 Log_Error_With_Code 001366 constant entry internal dcl 245 ref 223 RETURN 001074 constant label dcl 152 ref 119 120 180 uc_send_ls_response_ 000637 constant entry external dcl 53 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1574 1624 1433 1604 Length 2116 1433 30 255 140 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME uc_send_ls_response_ 436 external procedure is an external procedure. Abort 158 internal procedure is declared options(variable). Force_Disconnect internal procedure shares stack frame of internal procedure Abort. Log_Error_With_Code 70 internal procedure is declared options(variable). STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME Abort 000106 code Force_Disconnect 000107 connection_name Force_Disconnect 000117 entry_point_name Force_Disconnect 000136 ref_name Force_Disconnect 000146 entry_to_call Force_Disconnect uc_send_ls_response_ 000100 asum_ai uc_send_ls_response_ 000127 connection_name uc_send_ls_response_ 000137 code uc_send_ls_response_ 000140 data_ptr uc_send_ls_response_ 000142 data_lth uc_send_ls_response_ 000143 ls_process_id uc_send_ls_response_ 000144 ls_handle uc_send_ls_response_ 000146 ls_event_channel uc_send_ls_response_ 000150 reply_code uc_send_ls_response_ 000152 aci uc_send_ls_response_ 000266 ls_reply_message_ptr uc_send_ls_response_ 000270 sl_info uc_send_ls_response_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ent_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_other_desc return_mac tra_ext_1 ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. as_user_message_$priv_add_message cu_$arg_list_ptr cu_$arg_list_ptr hcs_$make_entry hcs_$wakeup hpriv_connection_list_$get_name sys_log_$general sys_log_$general NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 53 000630 109 000644 110 000650 111 000652 112 000654 113 000660 114 000662 115 000665 116 000671 117 000673 119 000674 120 000677 122 000701 123 000705 124 000707 127 000721 128 000723 129 000726 130 000730 131 000732 132 000734 133 000736 134 000741 135 000743 136 000746 137 000750 138 000752 139 000764 142 001011 145 001014 147 001031 152 001074 154 001077 167 001100 173 001106 174 001112 175 001117 176 001125 177 001137 178 001142 179 001143 180 001151 183 001154 194 001155 205 001157 207 001163 208 001167 209 001172 211 001215 212 001217 213 001224 215 001234 217 001252 219 001261 221 001314 223 001332 230 001364 245 001365 251 001373 252 001377 253 001401 254 001406 255 001414 257 001426 ----------------------------------------------------------- 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