home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-04-20 | 2.2 KB | 102 lines | [TEXT/PJMM] |
- unit TalkdTypes;
-
- { This program was written by Peter N Lewis, Mar 1992 in THINK Pascal 4.0.1 }
-
- interface
-
- const
- talk_version = 1;
- max_life = 60;
- ring_wait = 30;
- name_size = 12;
- oname_size = 9;
- tty_size = 16;
- otalkd_port = 517;
- talkd_port = 518;
- AF_INET = 2;
-
- type
- osockaddr = record
- family: integer; { Always AF_INET }
- port: integer;
- ip: longInt;
- junk1, junk2: longInt;
- end;
- ctlTypes = (CT_leave_invite, CT_lookup, CT_delete, CT_announce,{}
- CT_dummy1, CT_dummy2, CT_dummy3, CT_dummy4,{}
- CT_scan, CT_VerifyAnnounce, CT_quit);
- userStr = packed array[1..name_size] of char;
- ouserStr = packed array[1..oname_size] of char;
- ttyStr = packed array[1..tty_size] of char;
- answers = (A_success, A_not_here, A_failed, A_machine_unknown, A_permission_denied, {}
- A_unknown_request, A_badversion, A_badaddr, A_badctladdr);
- ctlResponse = record
- vers: signedByte;
- typ: ctlTypes;
- answer: answers;
- pad: signedByte;
- id_num: longInt;
- addr: osockaddr;
- end;
- ctlResponsePtr = ^ctlResponse;
- ctlMsg = record { an extension of ctlResponse }
- vers: signedByte;
- typ: ctlTypes;
- answer: answers;
- pad: signedByte;
- id_num: longInt;
- addr: osockaddr;
- ctl_addr: osockaddr;
- pid: longInt;
- l_name: userStr;
- r_name: userStr;
- r_tty: ttyStr;
- end;
- ctlMsgPtr = ^ctlMsg;
- octlResponse = record
- typ: ctlTypes;
- answer: answers;
- pad: integer;
- id_num: longInt;
- addr: osockaddr;
- end;
- octlResponseSmall = record
- typ: ctlTypes;
- answer: answers;
- id_num: longInt;
- addr: osockaddr;
- end;
- octlMsg = record
- data: packed array[1..20] of char;
- { typ = ctlTypes(ord(data[1]) }
- { l_name=ouserStr(data[2..10]) }
- { r_name=ouserStr(data[11..19]) }
- { pad=data[20] }
- id_num: longInt;
- pid: longInt;
- r_tty: ttyStr;
- addr: osockaddr;
- ctl_addr: osockaddr;
- end;
-
- function UserToPStr (cs: userStr): str31;
-
- implementation
-
- function UserToPStr (cs: userStr): str31;
- var
- i: integer;
- s: str31;
- begin
- i := 1;
- while (i <= name_size) & (cs[i] <> chr(0)) do
- i := i + 1;
- {$PUSH}
- {$R-}
- BlockMove(@cs, @s[1], name_size);
- s[0] := chr(i - 1);
- {$POP}
- UserToPStr := s;
- end;
-
- end.