DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 3049 (0xbe9) Types: TextFile Names: »B«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13 └─ ⟦124ff5788⟧ »DATA« └─⟦this⟧ └─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16 └─ ⟦6f12a12be⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
SEPARATE (Transport) PROCEDURE Open_Server (Connection : OUT Transport.Connection_Id; Status : OUT Transport_Defs.Status_Code; Network : IN Transport_Defs.Network_Name; Local_Socket : IN Transport_Defs.Socket_Id) IS Laddr_In : Socket_System_Interface.Sockaddr_In := (Sin_Family => Socket_System_Interface.Af_Inet, Sin_Port => Unix_Base_Types.Ushort (Byte_String_To_Integer (Byte_Defs.Byte_String (Transport_Defs.Normalize (Local_Socket)))), Sin_Addr => Socket_System_Interface.Inaddr_Any, Sin_Zero => (OTHERS => Ascii.Nul)); Laddrlen : Unix_Base_Types.Int := Laddr_In'Size / System.Storage_Unit; Laddr_In_Ptr : Socket_System_Interface.Sockaddr_In_Ptr := To_Sockaddr_In_Ptr (Laddr_In'Address); New_Connect : Transport.Connection_Id; Network_Socket : Unix_Base_Types.Int; System_Call_Result : Unix_Base_Types.Int; Errno : Unix_Base_Types.Int; BEGIN Connection := Null_Connection_Id; Status := Transport_Defs.Ok; Start_System_Call; Network_Socket := Socket_System_Interface.Socket (Af => Unix_Base_Types.Int (Socket_System_Interface.Af_Inet), Socket_Type => Socket_System_Interface.Sock_Stream, Protocol => 0); Errno := Finish_System_Call; IF (Network_Socket < 0) THEN Status := Convert_Errno (Errno => Errno); RETURN; END IF; Start_System_Call; System_Call_Result := Socket_System_Interface.Bind (S => Network_Socket, Addr => Laddr_In_Ptr, Addrlen => Laddrlen); Errno := Finish_System_Call; IF (System_Call_Result < 0) THEN Status := Convert_Errno (Errno => Errno); Start_System_Call; System_Call_Result := System_Interface.File_Io.Close (Network_Socket); Errno := Finish_System_Call; RETURN; END IF; Start_System_Call; System_Call_Result := Socket_System_Interface.Listen (S => Network_Socket, Backlog => 5); Errno := Finish_System_Call; IF (System_Call_Result < 0) THEN Status := Convert_Errno (Errno => Errno); Start_System_Call; System_Call_Result := System_Interface.File_Io.Close (Network_Socket); Errno := Finish_System_Call; RETURN; END IF; -- To reach this point, the Server has been successfully Open, Bound and -- is Listening. We need to establish a connection_id with the correct -- information. New_Connect := Get; New_Connect.Kind := Server; New_Connect.Socket_Status := Open; New_Connect.Local_Socket_Descriptor := Network_Socket; New_Connect.Tcp_Socket_Descriptor := Unix_Error; New_Connect.Local_Sockaddr_In := Laddr_In; -- Tcp_Socket_Descriptor will be set during _accept (Transport.Connect) Connection := New_Connect; END Open_Server;