linux-decnet-commit Mailing List for DECnet for Linux (Page 38)
Brought to you by:
chrissie_c,
ph3-der-loewe
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(15) |
Nov
(16) |
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(20) |
Feb
(27) |
Mar
(25) |
Apr
(12) |
May
(2) |
Jun
(6) |
Jul
(36) |
Aug
(12) |
Sep
(12) |
Oct
(16) |
Nov
(5) |
Dec
(5) |
2003 |
Jan
(8) |
Feb
(9) |
Mar
(25) |
Apr
(18) |
May
(29) |
Jun
(4) |
Jul
(1) |
Aug
|
Sep
(10) |
Oct
(5) |
Nov
(3) |
Dec
(9) |
2004 |
Jan
(17) |
Feb
|
Mar
(9) |
Apr
|
May
(4) |
Jun
(1) |
Jul
(2) |
Aug
(21) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2005 |
Jan
(5) |
Feb
|
Mar
(13) |
Apr
|
May
(3) |
Jun
(1) |
Jul
|
Aug
|
Sep
(13) |
Oct
(83) |
Nov
(2) |
Dec
|
2006 |
Jan
(21) |
Feb
(1) |
Mar
(32) |
Apr
(31) |
May
(3) |
Jun
(1) |
Jul
|
Aug
(7) |
Sep
|
Oct
(1) |
Nov
(3) |
Dec
(13) |
2007 |
Jan
(1) |
Feb
(7) |
Mar
|
Apr
(2) |
May
|
Jun
(1) |
Jul
(2) |
Aug
(20) |
Sep
|
Oct
|
Nov
|
Dec
(7) |
2008 |
Jan
(4) |
Feb
(13) |
Mar
(24) |
Apr
(18) |
May
(10) |
Jun
|
Jul
|
Aug
(40) |
Sep
(72) |
Oct
(61) |
Nov
(9) |
Dec
(2) |
2009 |
Jan
(6) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(7) |
Jul
|
Aug
|
Sep
|
Oct
(8) |
Nov
|
Dec
(3) |
2010 |
Jan
|
Feb
|
Mar
|
Apr
(5) |
May
|
Jun
|
Jul
(41) |
Aug
(28) |
Sep
(2) |
Oct
(5) |
Nov
(4) |
Dec
|
2011 |
Jan
(7) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Patrick C. <pa...@us...> - 2002-03-31 12:41:12
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv24715 Modified Files: session.cc Log Message: Don't do all the disable PTY stuff if it's already disabled. Index: session.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/session.cc,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -r1.31 -r1.32 *** session.cc 15 Feb 2002 13:24:13 -0000 1.31 --- session.cc 31 Mar 2002 12:41:08 -0000 1.32 *************** *** 122,128 **** { // Disable the FD so we don't start looping ! LATServer::Instance()->set_fd_state(master_fd, true); ! stopped = true; ! tcflow(master_fd, TCOOFF); return 0; // Not allowed! } --- 122,131 ---- { // Disable the FD so we don't start looping ! if (!stopped) ! { ! LATServer::Instance()->set_fd_state(master_fd, true); ! stopped = true; ! tcflow(master_fd, TCOOFF); ! } return 0; // Not allowed! } |
From: Patrick C. <pa...@us...> - 2002-03-31 12:00:16
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv18379 Modified Files: main.cc Log Message: Remove newline from end of announce message Index: main.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/main.cc,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -r1.18 -r1.19 *** main.cc 1 Mar 2002 14:19:35 -0000 1.18 --- main.cc 31 Mar 2002 12:00:10 -0000 1.19 *************** *** 97,101 **** uname(&uts); ! snprintf(greeting, sizeof(greeting), "LATD for %s\n", uts.sysname); interface[0] = '\0'; memset(interfaces, 0, sizeof(interfaces)); --- 97,101 ---- uname(&uts); ! snprintf(greeting, sizeof(greeting), "LATD for %s", uts.sysname); interface[0] = '\0'; memset(interfaces, 0, sizeof(interfaces)); |
From: Patrick C. <pa...@us...> - 2002-03-31 11:58:46
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv18144 Modified Files: moprc.c Log Message: Get rid of compilatin warning. Index: moprc.c =================================================================== RCS file: /cvsroot/linux-decnet/latd/moprc.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** moprc.c 3 Mar 2002 17:11:32 -0000 1.3 --- moprc.c 31 Mar 2002 11:58:43 -0000 1.4 *************** *** 375,379 **** { int index=0; ! int functions; while (index < len) --- 375,379 ---- { int index=0; ! int functions = 0; while (index < len) |
From: Patrick C. <pa...@us...> - 2002-03-26 11:02:10
|
Update of /cvsroot/linux-decnet/dnprogs/apps In directory usw-pr-cvs1:/tmp/cvs-serv4662 Modified Files: setether.sh Log Message: Use "ip" command to setup interfaces if it is available. This allows us to work nicely on systems with no IP installed. Index: setether.sh =================================================================== RCS file: /cvsroot/linux-decnet/dnprogs/apps/setether.sh,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** setether.sh 16 Oct 2001 15:00:42 -0000 1.4 --- setether.sh 26 Mar 2002 11:02:07 -0000 1.5 *************** *** 10,13 **** --- 10,18 ---- # + # Use the "ip" command if available + if [ -x /sbin/ip ]; then + IPCMD="/sbin/ip" + fi + calc_ether() { *************** *** 51,55 **** for i in $CARDS do ! ifconfig $i hw ether $MACADDR allmulti up if [ -z "$set_default" -a -f /proc/sys/net/decnet/default_device ] then --- 56,67 ---- for i in $CARDS do ! if [ -n "$IPCMD" ] ! then ! $IPCMD link set $i address $MACADDR ! $IPCMD link set $i up ! else ! ifconfig $i hw ether $MACADDR allmulti up ! fi ! if [ -z "$set_default" -a -f /proc/sys/net/decnet/default_device ] then |
From: Patrick C. <pa...@us...> - 2002-03-21 13:34:44
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv19187 Modified Files: Makefile Log Message: That last commit wasn't meant to happen, CVS seems to be misbehaving. The change to connection.cc was "fix keeplive message" Index: Makefile =================================================================== RCS file: /cvsroot/linux-decnet/latd/Makefile,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -r1.31 -r1.32 *** Makefile 21 Mar 2002 13:33:26 -0000 1.31 --- Makefile 21 Mar 2002 13:34:40 -0000 1.32 *************** *** 24,29 **** # These are debugging options, know what you are doing before setting these. ! DEFS+=-DVERBOSE_DEBUG -DNO_FORK -DDEBUG_MALLOC ! DEFS+=-DREALLY_VERBOSE_DEBUGLOG #DEFS+=-DPACKET_LOSS=8 --- 24,29 ---- # These are debugging options, know what you are doing before setting these. ! #DEFS+=-DVERBOSE_DEBUG -DNO_FORK -DDEBUG_MALLOC ! #DEFS+=-DREALLY_VERBOSE_DEBUGLOG #DEFS+=-DPACKET_LOSS=8 |
From: Patrick C. <pa...@us...> - 2002-03-21 13:33:30
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv19015 Modified Files: Makefile connection.cc Log Message: Index: Makefile =================================================================== RCS file: /cvsroot/linux-decnet/latd/Makefile,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -r1.30 -r1.31 *** Makefile 1 Mar 2002 13:56:27 -0000 1.30 --- Makefile 21 Mar 2002 13:33:26 -0000 1.31 *************** *** 1,5 **** # Makefile for LAT server ! VERSION=1.14 PKGNAME=latd --- 1,5 ---- # Makefile for LAT server ! VERSION=1.15 PKGNAME=latd *************** *** 24,29 **** # These are debugging options, know what you are doing before setting these. ! #DEFS+=-DVERBOSE_DEBUG -DNO_FORK -DDEBUG_MALLOC ! #DEFS+=-DREALLY_VERBOSE_DEBUGLOG #DEFS+=-DPACKET_LOSS=8 --- 24,29 ---- # These are debugging options, know what you are doing before setting these. ! DEFS+=-DVERBOSE_DEBUG -DNO_FORK -DDEBUG_MALLOC ! DEFS+=-DREALLY_VERBOSE_DEBUGLOG #DEFS+=-DPACKET_LOSS=8 Index: connection.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/connection.cc,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -r1.45 -r1.46 *** connection.cc 19 Mar 2002 13:03:25 -0000 1.45 --- connection.cc 21 Mar 2002 13:33:26 -0000 1.46 *************** *** 719,723 **** LAT_SessionReply *reply = (LAT_SessionReply *)replybuf; ! reply->header.cmd = LAT_CCMD_SREPLY; reply->header.num_slots = 0; reply->slot.remote_session = 0; --- 719,723 ---- LAT_SessionReply *reply = (LAT_SessionReply *)replybuf; ! reply->header.cmd = LAT_CCMD_SDATA; reply->header.num_slots = 0; reply->slot.remote_session = 0; *************** *** 726,730 **** reply->slot.cmd = 0; ! if (role == CLIENT) reply->header.cmd = LAT_CCMD_SESSION | 2; send_message(replybuf, sizeof(LAT_SessionReply), DATA); return; --- 726,730 ---- reply->slot.cmd = 0; ! if (role == CLIENT) reply->header.cmd = LAT_CCMD_SESSION; send_message(replybuf, sizeof(LAT_SessionReply), DATA); return; |
From: Patrick C. <pa...@us...> - 2002-03-20 16:54:52
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv12914 Modified Files: README Log Message: Put some guff about supported" platforms in there for reference. Index: README =================================================================== RCS file: /cvsroot/linux-decnet/latd/README,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** README 9 Mar 2002 20:32:10 -0000 1.7 --- README 20 Mar 2002 16:54:47 -0000 1.8 *************** *** 38,41 **** --- 38,58 ---- See the file lat.html for information on using LAT on Linux. + SUPPORTED SYSTEMS + ----------------- + LATD itself currently only runs on Linux but it shouldn't be too hard + to port to other Unix-like platforms by writing an interface class for + that platform. + + The following systems I know to work with LATD because I have tested them, + others may also work. + + OpenVMS 7.2 (VAX & Alpha) + DEC Unix v4.0d + DECserver 200 + DECserver 90M + DECserver 90L+ + DECserver 700 + + CREDITS ------- |
From: Patrick C. <pa...@us...> - 2002-03-20 08:49:43
|
Update of /cvsroot/linux-decnet/latd/debian In directory usw-pr-cvs1:/tmp/cvs-serv30697/debian Modified Files: changelog Log Message: Changelog for 1.14 Index: changelog =================================================================== RCS file: /cvsroot/linux-decnet/latd/debian/changelog,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** changelog 15 Mar 2002 19:20:46 -0000 1.9 --- changelog 20 Mar 2002 08:49:40 -0000 1.10 *************** *** 4,12 **** * Rewritten ethernet flow control * Increase moprc timeout a little. ! * Don't try to process zero-length packets * Include lat.html documentation * Tested on DECserver 700 ! -- latd (1.13-1) unstable; urgency=low --- 4,14 ---- * Rewritten ethernet flow control * Increase moprc timeout a little. ! * Don't try to process zero-length packets * Include lat.html documentation * Tested on DECserver 700 + * Send "no more slots on circuit" message when closing a connection for + that reason. Fixes reconnection on DECserver 90L+ ! -- Patrick Caulfield <pa...@de...> Wed, 19 Mar 2002 19:23:34 +0000 latd (1.13-1) unstable; urgency=low |
From: Patrick C. <pa...@us...> - 2002-03-19 13:03:28
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv32047 Modified Files: connection.cc Log Message: Be a bit more careful about which DATA messages we resend Index: connection.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/connection.cc,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -r1.44 -r1.45 *** connection.cc 15 Mar 2002 19:20:46 -0000 1.44 --- connection.cc 19 Mar 2002 13:03:25 -0000 1.45 *************** *** 169,174 **** // If the last DATA message wasn't seen either then resend that too ! if (last_message.get_seq() != msg->header.ack_number) last_message.send(interface, last_recv_seq, macaddr); } return false; --- 169,179 ---- // If the last DATA message wasn't seen either then resend that too ! if (last_message.get_seq() > msg->header.ack_number || ! last_message.get_seq() == 0 && msg->header.ack_number == 0xff) ! ! { ! debuglog(("Also sending mast DATA message (%d)\n", last_message.get_seq())); last_message.send(interface, last_recv_seq, macaddr); + } } return false; *************** *** 182,187 **** // If the last DATA message wasn't seen either then resend that too ! if (last_message.get_seq() != msg->header.ack_number) last_message.send(interface, last_recv_seq, macaddr); } --- 187,196 ---- // If the last DATA message wasn't seen either then resend that too ! if (last_message.get_seq() > msg->header.ack_number || ! last_message.get_seq() == 0 && msg->header.ack_number == 0xff) ! { ! debuglog(("Also sending last DATA message (%d)\n", last_message.get_seq())); last_message.send(interface, last_recv_seq, macaddr); + } } |
From: Patrick C. <pa...@us...> - 2002-03-15 19:20:50
|
Update of /cvsroot/linux-decnet/latd/debian In directory usw-pr-cvs1:/tmp/cvs-serv21846/debian Modified Files: changelog Log Message: Index: changelog =================================================================== RCS file: /cvsroot/linux-decnet/latd/debian/changelog,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** changelog 16 Feb 2002 16:26:08 -0000 1.8 --- changelog 15 Mar 2002 19:20:46 -0000 1.9 *************** *** 1,2 **** --- 1,13 ---- + latd (1.14-1) unstable; urgency=low + + * gcc-3.0 compilation fixes in the new bits + * Rewritten ethernet flow control + * Increase moprc timeout a little. + * Don't try to process zero-length packets + * Include lat.html documentation + * Tested on DECserver 700 + + -- + latd (1.13-1) unstable; urgency=low |
From: Patrick C. <pa...@us...> - 2002-03-15 19:20:50
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv21846 Modified Files: connection.cc connection.h Log Message: Index: connection.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/connection.cc,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -r1.43 -r1.44 *** connection.cc 1 Mar 2002 14:19:34 -0000 1.43 --- connection.cc 15 Mar 2002 19:20:46 -0000 1.44 *************** *** 140,143 **** --- 140,145 ---- bool replyhere = false; + memset(replybuf, 0, sizeof(replybuf)); // PJC + debuglog(("process_session_cmd: %d slots, %d bytes\n", msg->header.num_slots, len)); *************** *** 164,172 **** // But still send an ACK as it could be the ACK that went missing ! last_ack_message.send(interface, macaddr); // If the last DATA message wasn't seen either then resend that too if (last_message.get_seq() != msg->header.ack_number) ! last_message.send(interface, macaddr); } return false; --- 166,174 ---- // But still send an ACK as it could be the ACK that went missing ! last_ack_message.send(interface, last_recv_seq, macaddr); // If the last DATA message wasn't seen either then resend that too if (last_message.get_seq() != msg->header.ack_number) ! last_message.send(interface, last_recv_seq, macaddr); } return false; *************** *** 177,185 **** { debuglog(("Got ack for old message, resending ACK\n")); ! last_ack_message.send(interface, macaddr); // If the last DATA message wasn't seen either then resend that too if (last_message.get_seq() != msg->header.ack_number) ! last_message.send(interface, macaddr); } --- 179,187 ---- { debuglog(("Got ack for old message, resending ACK\n")); ! last_ack_message.send(interface, last_recv_seq, macaddr); // If the last DATA message wasn't seen either then resend that too if (last_message.get_seq() != msg->header.ack_number) ! last_message.send(interface, last_recv_seq, macaddr); } *************** *** 456,459 **** --- 458,462 ---- debuglog(("Sending %d slots in reply\n", num_replies)); unsigned char replybuf[1600]; + memset(replybuf, 0, sizeof(replybuf)); // PJC LAT_Header *header = (LAT_Header *)replybuf; ptr = sizeof(LAT_Header); *************** *** 663,667 **** } debuglog(("Last message not ACKed: RESEND\n")); ! last_message.send(interface, macaddr); return; } --- 666,670 ---- } debuglog(("Last message not ACKed: RESEND\n")); ! last_message.send(interface, last_recv_seq, macaddr); return; } *************** *** 788,792 **** debuglog(("Sending message on circuit timer: seq: %d, ack: %d\n", ! last_sent_seq, last_sent_ack)); msg.send(interface, macaddr); --- 791,795 ---- debuglog(("Sending message on circuit timer: seq: %d, ack: %d\n", ! last_sent_seq, last_recv_seq)); msg.send(interface, macaddr); *************** *** 842,847 **** if (num_clients() == 0) { ! // // send_disconnect_error(3, msg???, interface, macaddr) ! LATServer::Instance()->delete_connection(num); } } --- 845,855 ---- if (num_clients() == 0) { ! LAT_Header msg; ! msg.local_connid = remote_connid; ! msg.remote_connid = num; ! msg.sequence_number = ++last_sent_seq; ! msg.ack_number = last_recv_ack; ! LATServer::Instance()->send_connect_error(3, &msg, interface, macaddr); ! LATServer::Instance()->delete_connection(num); } } Index: connection.h =================================================================== RCS file: /cvsroot/linux-decnet/latd/connection.h,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -r1.23 -r1.24 *** connection.h 28 Feb 2002 17:52:43 -0000 1.23 --- connection.h 15 Mar 2002 19:20:46 -0000 1.24 *************** *** 122,129 **** int send(int interface, unsigned char *macaddr); ! int send(int interface, unsigned char seq, unsigned char *macaddr) { LAT_Header *header = (LAT_Header *)buf; ! header->sequence_number = seq; return send(interface, macaddr); } --- 122,129 ---- int send(int interface, unsigned char *macaddr); ! int send(int interface, unsigned char ack, unsigned char *macaddr) { LAT_Header *header = (LAT_Header *)buf; ! header->ack_number = ack; return send(interface, macaddr); } |
From: Patrick C. <pa...@us...> - 2002-03-14 16:19:50
|
Update of /cvsroot/linux-decnet/dnprogs/dntask In directory usw-pr-cvs1:/tmp/cvs-serv4665 Modified Files: dntask.c Log Message: Print error message if connection fails for some reason. Error messages nicked from libdap. Index: dntask.c =================================================================== RCS file: /cvsroot/linux-decnet/dnprogs/dntask/dntask.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** dntask.c 21 Oct 2001 14:24:00 -0000 1.5 --- dntask.c 14 Mar 2002 16:19:46 -0000 1.6 *************** *** 55,58 **** --- 55,59 ---- static int parse(char *); static void usage(FILE *); + static char *connerror(int sockfd); /*-------------------------------------------------------------------------*/ *************** *** 81,85 **** if (len < 0) { ! perror("reading from VMS"); return; } --- 82,86 ---- if (len < 0) { ! fprintf(stderr, "Read failed: %s\n", connerror(sockfd)); return; } *************** *** 130,134 **** if (len == -1) { ! if (errno != ENOTCONN) perror("Error reading from network"); break; } --- 131,138 ---- if (len == -1) { ! if (errno != ENOTCONN) ! perror("Error reading from network"); ! else ! fprintf(stderr, "Read failed: %s\n", connerror(sockfd)); break; } *************** *** 202,206 **** if (connect(sockfd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)) < 0) { ! perror("connect"); exit(-1); } --- 206,210 ---- if (connect(sockfd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)) < 0) { ! fprintf(stderr, "Connect failed: %s\n", connerror(sockfd)); exit(-1); } *************** *** 477,479 **** --- 481,546 ---- fprintf(f, " dntask -i 'clustr\"patrick thecats\"::do_dcl.com'\n"); fprintf(f, "\n"); + } + + // Return the text of a connection error + static char *connerror(int sockfd) + { + #ifdef DSO_CONDATA + struct optdata_dn optdata; + unsigned int len = sizeof(optdata); + char *msg; + + if (getsockopt(sockfd, DNPROTO_NSP, DSO_DISDATA, + &optdata, &len) == -1) + { + return strerror(errno); + } + + // Turn the rejection reason into text + switch (optdata.opt_status) + { + case DNSTAT_REJECTED: msg="Rejected by object"; + break; + case DNSTAT_RESOURCES: msg="No resources available"; + break; + case DNSTAT_NODENAME: msg="Unrecognised node name"; + break; + case DNSTAT_LOCNODESHUT: msg="Local Node is shut down"; + break; + case DNSTAT_OBJECT: msg="Unrecognised object"; + break; + case DNSTAT_OBJNAMEFORMAT: msg="Invalid object name format"; + break; + case DNSTAT_TOOBUSY: msg="Object too busy"; + break; + case DNSTAT_NODENAMEFORMAT: msg="Invalid node name format"; + break; + case DNSTAT_REMNODESHUT: msg="Remote Node is shut down"; + break; + case DNSTAT_ACCCONTROL: msg="Login information invalid at remote node"; + break; + case DNSTAT_NORESPONSE: msg="No response from object"; + break; + case DNSTAT_NODEUNREACH: msg="Node Unreachable"; + break; + case DNSTAT_MANAGEMENT: msg="Abort by management/third party"; + break; + case DNSTAT_ABORTOBJECT: msg="Remote object aborted the link"; + break; + case DNSTAT_NODERESOURCES: msg="Node does not have sufficient resources for a new link"; + break; + case DNSTAT_OBJRESOURCES: msg="Object does not have sufficient resources for a new link"; + break; + case DNSTAT_BADACCOUNT: msg="The Account field in unacceptable"; + break; + case DNSTAT_TOOLONG: msg="A field in the access control message was too long"; + break; + default: msg=strerror(errno); + break; + } + return msg; + #else + return strerror(errno); + + #endif } |
From: Patrick C. <pa...@us...> - 2002-03-14 11:32:20
|
Update of /cvsroot/linux-decnet/dnprogs/dnetd In directory usw-pr-cvs1:/tmp/cvs-serv3605 Modified Files: task_server.c Log Message: Security fix to task_server to stop it running arbitrary code. Index: task_server.c =================================================================== RCS file: /cvsroot/linux-decnet/dnprogs/dnetd/task_server.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** task_server.c 21 Jan 2001 13:36:57 -0000 1.4 --- task_server.c 14 Mar 2002 11:32:17 -0000 1.5 *************** *** 1,5 **** /****************************************************************************** ! (c) 1999 P.J. Caulfield pa...@ty... ! This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by --- 1,5 ---- /****************************************************************************** ! (c) 1999-2002 P.J. Caulfield pa...@ty... ! This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by *************** *** 71,75 **** return; // Don't do object numbers ! } ! // Convert the name to lower case for (i=0; i<strlen(name); i++) --- 71,75 ---- return; // Don't do object numbers ! } ! // Convert the name to lower case for (i=0; i<strlen(name); i++) *************** *** 78,84 **** } ! if (verbosity) DNETLOG((LOG_INFO, "got connection for %s\n", name)); ! // Look for the file. // --- 78,95 ---- } ! if (verbosity) DNETLOG((LOG_INFO, "got connection for %s\n", name)); ! ! // Reject anything starting / or containing .. as ! // a security problem ! if (name[0] == '/' || ! strstr(name, "..")) ! { ! DNETLOG((LOG_WARNING, "Rejecting %s as a security risk", name)); ! dnet_reject(newsock, DNSTAT_OBJECT, NULL, 0); ! return; ! } ! ! // Look for the file. // *************** *** 147,151 **** } #else ! for (c='p'; c <= 'z'; c++) { --- 158,162 ---- } #else ! for (c='p'; c <= 'z'; c++) { *************** *** 154,162 **** line[strlen("/dev/ptyC")] = '0'; if (stat(line,&stb) < 0) ! break; for (i=0; i < 16; i++) { line[strlen("/dev/ptyC")]= "0123456789abcdef"[i]; ! if ( (pty=open(line,O_RDWR)) > 0) { gotpty = 1; --- 165,173 ---- line[strlen("/dev/ptyC")] = '0'; if (stat(line,&stb) < 0) ! break; for (i=0; i < 16; i++) { line[strlen("/dev/ptyC")]= "0123456789abcdef"[i]; ! if ( (pty=open(line,O_RDWR)) > 0) { gotpty = 1; *************** *** 167,179 **** } ! if (!gotpty) { DNETLOG((LOG_ERR, "No ptys available for connection")); return; } ! line[strlen("/dev/")] = 't'; ! if ( (t=open(line,O_RDWR)) < 0) { DNETLOG((LOG_ERR, "Error connecting to physical terminal: %m")); --- 178,190 ---- } ! if (!gotpty) { DNETLOG((LOG_ERR, "No ptys available for connection")); return; } ! line[strlen("/dev/")] = 't'; ! if ( (t=open(line,O_RDWR)) < 0) { DNETLOG((LOG_ERR, "Error connecting to physical terminal: %m")); *************** *** 181,185 **** } #endif ! if ( ( pid=fork() ) < 0) { --- 192,196 ---- } #endif ! if ( ( pid=fork() ) < 0) { *************** *** 187,191 **** return; } ! if (pid) // Parent { --- 198,202 ---- return; } ! if (pid) // Parent { *************** *** 196,209 **** return ; } ! setsid(); ! close(pty); close(newsock); if (t != 0) dup2 (t,0); if (t != 1) dup2 (t,1); if (t != 2) dup2 (t,2); ! if (t > 2) close(t); ! putenv("TERM=vt100"); execve(name, argv, env); --- 207,220 ---- return ; } ! setsid(); ! close(pty); close(newsock); if (t != 0) dup2 (t,0); if (t != 1) dup2 (t,1); if (t != 2) dup2 (t,2); ! if (t > 2) close(t); ! putenv("TERM=vt100"); execve(name, argv, env); *************** *** 219,225 **** // Make sure we reap all children ! do ! { ! pid = waitpid(-1, &status, WNOHANG); } while (pid > 0); --- 230,236 ---- // Make sure we reap all children ! do ! { ! pid = waitpid(-1, &status, WNOHANG); } while (pid > 0); *************** *** 245,249 **** siga.sa_flags = SA_NOCLDSTOP; sigaction(SIGCHLD, &siga, NULL); ! for (;;) { --- 256,260 ---- siga.sa_flags = SA_NOCLDSTOP; sigaction(SIGCHLD, &siga, NULL); ! for (;;) { *************** *** 251,255 **** FD_SET(pty,&rdfs); FD_SET(sock,&rdfs); ! if (select(FD_SETSIZE,&rdfs,NULL,NULL,NULL) > 0) { --- 262,266 ---- FD_SET(pty,&rdfs); FD_SET(sock,&rdfs); ! if (select(FD_SETSIZE,&rdfs,NULL,NULL,NULL) > 0) { |
From: Patrick C. <pa...@us...> - 2002-03-09 20:32:14
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv5745 Modified Files: README Log Message: Minor updates to the documentation. Index: README =================================================================== RCS file: /cvsroot/linux-decnet/latd/README,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** README 12 Feb 2002 13:36:08 -0000 1.6 --- README 9 Mar 2002 20:32:10 -0000 1.7 *************** *** 6,10 **** - Static and dynamic service ratings are supported - Provides Reverse-LAT. "devices" in /dev/lat/ can be used to connect to ! advertised services on a DECservers or VMS/Tru64 hosts - Provides queueing facility for reverse LAT ports. Useful for printers - Can provide a node responder service for small-memory DECservers --- 6,10 ---- - Static and dynamic service ratings are supported - Provides Reverse-LAT. "devices" in /dev/lat/ can be used to connect to ! advertised services on DECservers or VMS/Tru64 hosts - Provides queueing facility for reverse LAT ports. Useful for printers - Can provide a node responder service for small-memory DECservers *************** *** 34,49 **** This software should work on all Linux architectures. I have tested it on ! Intel, Alpha, SPARC and PowerPC. ! More documentation is in the file lat.html CREDITS ------- ! I'd very much like to thank Eduardo Serrat for providing much help, trace logs and encouragement in this reverse-engineering effort. I am also very much indebted to Real Dupeux for sending me a DECserver 200 for ! the project, in fact I use it a for reverse-LAT every day of the week to ! log in to the consoles of my VAX, Alpha, SPARC and MIPS machines. I would also like to express gratitude to ABB for providing a DECserver 90M and --- 34,50 ---- This software should work on all Linux architectures. I have tested it on ! Intel, Alpha, SPARC, MIPS and PowerPC. ! See the file lat.html for information on using LAT on Linux. CREDITS ------- ! I'd like to thank Eduardo Serrat for providing much help, trace logs and encouragement in this reverse-engineering effort. I am also very much indebted to Real Dupeux for sending me a DECserver 200 for ! the project, without which is would be much impoverished. I use it a for ! reverse-LAT every day of the week to log in to the consoles of my VAX, Alpha, ! SPARC and MIPS machines. I would also like to express gratitude to ABB for providing a DECserver 90M and |
From: Patrick C. <pa...@us...> - 2002-03-09 17:07:28
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv28999 Modified Files: lat.html Log Message: Add words on application ports and moprc Index: lat.html =================================================================== RCS file: /cvsroot/linux-decnet/latd/lat.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** lat.html 7 Mar 2002 16:13:14 -0000 1.2 --- lat.html 9 Mar 2002 17:07:24 -0000 1.3 *************** *** 247,250 **** --- 247,264 ---- </p> + <h1>Application services</h1> + The default for a service configured with the latcp -A -a command is the + login application but you can define almost any sort of application you like. + To give an illustration this is how the default login service looks like with + defaults spelled out: + <tt><br><b> latcp -A -a LINUX -C /bin/login -u root</b><br></tt> + You can specify any command you like for -C and any valid user for -u so + forcing users into a specific application straight from the terminal server, + of course you may also have to do some authentication too! latd will set the + following environment variables which you may find useful:<br> + LAT_LOCAL_SERVICE<BR> + LAT_REMOTE_NODE<BR> + LAT_REMOTE_PORT<BR> + <p></p> *************** *** 329,334 **** </p> ! <p></p> <br> <hr width="100%"><br> --- 343,362 ---- </p> ! <h1>Managing terminal servers</h1> ! latd also comes with a utility to help you manage your terminal servers, it ! is called <b>moprc</b> and it behaves in a similar manner to the ! "NCP CONNECT NODE" or "SET HOST/MOP" commands on VMS in that it connects you ! to the management port of a DEC terminal server so you can issue commands ! for changing ports and assigning services. <p> ! Put the names and ethernet addresses of your terminal servers in the file ! /etc/ethers (see ethers(5) for the format of this file) and you can connect ! to the servers by name:<br> ! <tt><b># moprc DS200 </b></tt><br> ! If your Linux machine has more than one ethernet adaptor you may need to tell ! moprc which card to use - it defaults to eth0. ! <br> + + <p></p> <hr width="100%"><br> |
From: Patrick C. <pa...@us...> - 2002-03-07 20:29:54
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv14094 Modified Files: latcp.8 Log Message: Tell readers that the -Q flag is different to Tru64 Unix(r). Index: latcp.8 =================================================================== RCS file: /cvsroot/linux-decnet/latd/latcp.8,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** latcp.8 15 Feb 2002 15:31:37 -0000 1.10 --- latcp.8 7 Mar 2002 20:29:47 -0000 1.11 *************** *** 69,73 **** will be forced to wait until it is available. You must use this flag for printer services on DECserver 90L terminal servers, and in this case ! the service name must also be empty. .br The --- 69,75 ---- will be forced to wait until it is available. You must use this flag for printer services on DECserver 90L terminal servers, and in this case ! the service name must also be empty. NOTE that the ! .B -Q ! flag is the opposite way round to that on Tru64 Unix(r). .br The |
From: Patrick C. <pa...@us...> - 2002-03-07 16:13:18
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv27741 Modified Files: lat.html Log Message: Update to include more information about reverse LAT Index: lat.html =================================================================== RCS file: /cvsroot/linux-decnet/latd/lat.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** lat.html 12 Feb 2002 13:36:07 -0000 1.1 --- lat.html 7 Mar 2002 16:13:14 -0000 1.2 *************** *** 9,13 **** </head> <body text="#000000" bgcolor="#ffffff" link="#0000ef" vlink="#51188e" alink="#ff0000"> - <table cols="2" width="100%" nosave=""> <tbody> --- 9,12 ---- *************** *** 18,25 **** <p><font size="+3">A project to provide DECnet phase IV connectivity forLinux</font><br> ! </p> <p><b><font color="#cc0000"><font size="+3">LAT</font></font></b><br> ! </p> </td> </tr> --- 17,24 ---- <p><font size="+3">A project to provide DECnet phase IV connectivity forLinux</font><br> ! </p> <p><b><font color="#cc0000"><font size="+3">LAT</font></font></b><br> ! </p> </td> </tr> *************** *** 29,36 **** <h1>LAT</h1> ! This is a quick guide to using LAT on Linux systems. I am assuming that you already have the latd package installed and that the latcp command is on root's PATH. All the terminal server examples are for the (very ! obsolete) DECserver 200 but the syntax is similar for other models. <p>In this document I refer to <b>latd</b> as the daemon that is running in the background accepting incoming connections and marshalling outgoing ones, --- 28,37 ---- <h1>LAT</h1> ! This is a quick guide to using LAT on Linux systems. I am assuming that you already have the latd package installed and that the latcp command is on root's PATH. All the terminal server examples are for the (very ! obsolete) DECserver 200 but the syntax is similar for other models (apart ! from the DECserver 90L+ which has an odd menu-type system but which is ! fairly intuitive for its limited feature set). <p>In this document I refer to <b>latd</b> as the daemon that is running in the background accepting incoming connections and marshalling outgoing ones, *************** *** 39,48 **** <p>The latcp commands are based on those used in Compaq Tru64 Unix, so if ! you are familiar with that then this should all look very familiar to you. ! However, they are <i>not</i> identical to Tru64 so you should still at least ! skim this document or the man page for latcp.</p> <p>The examples here are for latd 1.12. Not all the features are available ! in earlier versions. </p> <p></p> --- 40,49 ---- <p>The latcp commands are based on those used in Compaq Tru64 Unix, so if ! you are familiar with that then this should all look very familiar to you. ! However, they are <i>not</i> identical to Tru64 so you should still at least ! skim this document or the man page for latcp.</p> <p>The examples here are for latd 1.12. Not all the features are available ! in earlier versions. </p> <p></p> *************** *** 70,88 **** <p>When you stop latd all users are instantly disconnected. They will get ! no warning and work will not be saved.</p> <p></p> <h1>Service names</h1> ! latd can advertise many services, not just one for the host name. So (for ! example) you could add a new service called LINUX on all linux machines running latd and then users can connect to LINUX and they will be attached to the server with the lowest load average. ! <p>To add such a service use the command <tt><b>latcp -A -a LINUX</b></tt> ! . This tells latd to advertise the new service along with the default one using the same rating.</p> ! <p>To remove this service use the command <tt><b>latcp -D -a LINUX</b></tt> ! .</p> <p>Services have an optional description associated with them which can show --- 71,89 ---- <p>When you stop latd all users are instantly disconnected. They will get ! no warning and work will not be saved.</p> <p></p> <h1>Service names</h1> ! latd can advertise many services, not just one for the host name. So (for ! example) you could add a new service called LINUX on all linux machines running latd and then users can connect to LINUX and they will be attached to the server with the lowest load average. ! <p>To add such a service use the command <tt><b>latcp -A -a LINUX</b></tt>. ! This tells latd to advertise the new service along with the default one using the same rating.</p> ! <p>To remove this service use the command <tt><b>latcp -D -a LINUX</b></tt>. ! </p> <p>Services have an optional description associated with them which can show *************** *** 90,111 **** description is added to the service with the -i switch. eg:<tt><b>latcp -A -a LINUX -i "Linux login service"</b></tt><br> ! Note that the description must be enclosed in quotes if it contains spaces. ! To change the description of an existing service use the following command:<br> ! <tt><b>latcp -i "Linux is wonderful" -a LINUX</b></tt><br> ! </p> <p></p> <h1>Service ratings</h1> ! Every advertised service has a <i>rating</i> associated with it. This rating ! is used in the terminal servers' load balancing algorithm to determine which ! node to connect to when more than one system advertises the same service ! name. By default, services advertised by latd have <i>dynamic</i> ratings, ! that is they vary according to the load on the system. The value you specify ! on the latcp command line is a maximum, this value is divided by the current ! load average plus one each time the service is advertised on the LAN. <p>So, if you create a service with rating of 100 using the following command:<br> ! <tt><b>latcp -A -a LINUX -r 100</b></tt><br> ! and the load average is 1.00, then the advertised rating will be 50. If you have several machines advertising the the same service then, to achieve effective load balancing, the rating specified on the command-line should --- 91,112 ---- description is added to the service with the -i switch. eg:<tt><b>latcp -A -a LINUX -i "Linux login service"</b></tt><br> ! Note that the description must be enclosed in quotes if it contains spaces. ! To change the description of an existing service use the following command:<br> ! <tt><b>latcp -i "Linux is wonderful" -a LINUX</b></tt><br> ! </p> <p></p> <h1>Service ratings</h1> ! Every advertised service has a <i>rating</i> associated with it. This rating ! is used in the terminal servers' load balancing algorithm to determine which ! node to connect to when more than one system advertises the same service ! name. By default, services advertised by latd have <i>dynamic</i> ratings, ! that is they vary according to the load on the system. The value you specify ! on the latcp command line is a maximum, this value is divided by the current ! load average plus one each time the service is advertised on the LAN. <p>So, if you create a service with rating of 100 using the following command:<br> ! <tt><b>latcp -A -a LINUX -r 100</b></tt><br> ! and the load average is 1.00, then the advertised rating will be 50. If you have several machines advertising the the same service then, to achieve effective load balancing, the rating specified on the command-line should *************** *** 113,125 **** <p>In addition, ratings can be <i>static</i>. A static rating does not vary ! with the system load average. If you create a service with the following command:<br> ! <tt><b>latcp -A -a LINUX -r 100 -s</b></tt><br> ! Then the rating will always be 100 regardless of how busy the system is.</p> <p></p> <h1>Reverse LAT</h1> ! The "normal" use of LAT is to allow a terminal, connected to a terminal server to log into a computer. "Reverse-LAT" goes the other way, the computer makes a connection to a port on the terminal server. This has a number of --- 114,126 ---- <p>In addition, ratings can be <i>static</i>. A static rating does not vary ! with the system load average. If you create a service with the following command:<br> ! <tt><b>latcp -A -a LINUX -r 100 -s</b></tt><br> ! Then the rating will always be 100 regardless of how busy the system is.</p> <p></p> <h1>Reverse LAT</h1> ! The "normal" use of LAT is to allow a terminal, connected to a terminal server to log into a computer. "Reverse-LAT" goes the other way, the computer makes a connection to a port on the terminal server. This has a number of *************** *** 128,158 **** <ul> ! <li>Connect a printer to a terminal server port and let computers print ! to that printer by mappinga device on the computer to the terminal server ! port and</li> ! <li>Connect a computer console to a terminal server so that the computer ! can be remotelymanaged from another computer.</li> ! <li>Connect a modem to a terminal server port and allow users to dial in, ! or dial out.<br> ! </li> </ul> ! To do this you first need to create a service on the terminal server. How ! to do this varies on the model of terminal server you have so consult the ! documentation for your device. The command for a DECserver 200 is as follows:<br> ! <tt><b>DEFINE SERVICE MYVAX PORT 4</b></tt><br> ! This creates a service called MYVAX which is associated with port 4 on the ! terminal server. Note,you may also have to set the port characteristics to match those of the printer and set the access type to "Remote". Now, assuming you have connected the serial console of your VAX to port 4 of the terminal server and the server is called DS200, you can issue the following command on the linux machine:<br> ! <tt><b>latcp -A -p /dev/lat/myvax -Hds200 -Vmyvax</b></tt><br> ! If you now connect a terminal emulator program (say minicom, seyon or microcom) ! to /dev/lat/myvax you can log in to the console of the VAX and issue commands ! as if the terminal was local. If it doesn't work then there are a few things ! to check:<br> <ul> --- 129,158 ---- <ul> ! <li>Connect a printer to a terminal server port and let computers print ! to that printer by mappinga device on the computer to the terminal server ! port and</li> ! <li>Connect a computer console to a terminal server so that the computer ! can be remotelymanaged from another computer.</li> ! <li>Connect a modem to a terminal server port and allow users to dial in, ! or dial out.</li> </ul> ! To do this you first need to create a service on the terminal server. How ! to do this varies on the model of terminal server you have so consult the ! documentation for your device. The command for a DECserver 200 is as follows:<br> ! <tt><b>DEFINE SERVICE MYVAX PORT 4</b></tt><br> ! This creates a service called MYVAX which is associated with port 4 on the ! terminal server. Note,you may also have to set the port characteristics to match those of the printer and set the access type to "Remote". Now, assuming you have connected the serial console of your VAX to port 4 of the terminal server and the server is called DS200, you can issue the following command on the linux machine:<br> ! <tt><b>latcp -A -p /dev/lat/myvax -Hds200 -Vmyvax</b></tt><br> ! If you now connect a terminal emulator program (say minicom, seyon or microcom) ! to /dev/lat/myvax you can log in to the console of the VAX and issue commands ! as if the terminal was local. If it doesn't work then there are a few things ! to check:<br> <ul> *************** *** 179,183 **** <p>In the case of a printer that is shared by several machines you may want ! to make it a queued connection. This means that if the printer is busy, any other machine that tries to connect to it will be forced to wait until it is ready. To do this set the port to be queued on the terminal server --- 179,183 ---- <p>In the case of a printer that is shared by several machines you may want ! to make it a queued connection. This means that if the printer is busy, any other machine that tries to connect to it will be forced to wait until it is ready. To do this set the port to be queued on the terminal server *************** *** 196,210 **** for example.</p> ! <p>To use "printer" ports on a DECserver 90L you must make the port queued ! because that device does not support reverse LAT. <h1>Groups</h1> ! Groups on LAT are a method of restricting the visible services to a manageable ! subset. They are<i>not</i> a security feature, merely a method of making ! a large number of services more manageable. <p>When a service is advertised on the LAN it can have any number of groups ! associated with it. A group is a number from 0 to 255. By default all services ! are in group 0. On the terminal server you can restrict the group numbers ! that it will listen for services on. So, for example, a terminal server inthe sales department could have only group 10 enabled, a terminal service in the production department could have only group 20 enabled. The host machines --- 196,222 ---- for example.</p> ! <p>To use "printer" ports on a DECserver 90L+ you must make the port queued ! because that device does not support reverse LAT. You should also use ! <i>only</i> the node name (no service name) when creating the port. eg: <br> ! <tt><b>latcp -A -p /dev/lat/printer -Hds90l1 -Q</b></tt><br> ! ! <p>Note that queued connections are not really "reverse" LAT in the strict sense ! that the computer contacts the server, it sends a command to the server requesting ! it to make a connection back to it. The reason this is useful to know is that ! actual reverse LAT is not very efficient on the ethernet (tcpdump it!) so ! if you are bothered by excessive packets then -Q ports are better.<BR> ! Also note that the -Q flag is the opposite way round from Tru64 Unix(R), ! sorry about that, but it seems more intuitive to me and also I didn't read the ! man page carefully enough. <h1>Groups</h1> ! Groups on LAT are a method of restricting the visible services to a manageable ! subset. They are<i>not</i> a security feature, merely a method of making ! a large number of services more manageable. ! <p>When a service is advertised on the LAN it can have any number of groups ! associated with it. A group is a number from 0 to 255. By default all services ! are in group 0. On the terminal server you can restrict the group numbers ! that it will listen for services on. So, for example, a terminal server inthe sales department could have only group 10 enabled, a terminal service in the production department could have only group 20 enabled. The host machines *************** *** 214,235 **** <p>Because latd is both a client and a server it has two sets of group codes. ! One set (that manipulated by the -G and -g switches) determines the group ! numbers that the advertised services use. So, if we execute the following ! latcp commands:<br> ! <tt><b>latcp -G 10<br> ! latcp -A -a LINUX -i "Linux login service"</b></tt><br> ! Then the service LINUX will be advertised in groups 0 and 10 (group 0 is always on by default). You could remove it from group 0 with the following ! command:<tt><b>latcp -g 0</b></tt><br> ! Set up like this, only terminal services listening for services in group 10 would see the LINUX service.</p> <p>The other group set (that manipulated by the -U and -u switches) determines ! which services can be used by the reverse-LAT ports. So, if you issue the ! following commands:<br> ! <tt><b>latcp -u 0<br> ! latcp -U 20</b></tt><br> ! Then you would only be able to connect reverse LAT ports to services that ! were advertised in group 20 (ie you could not connect to the LINUX service!). </p> --- 226,248 ---- <p>Because latd is both a client and a server it has two sets of group codes. ! One set (that manipulated by the -G and -g switches) determines the group ! numbers that the advertised services use. So, if we execute the following ! latcp commands:<br> ! <tt><b>latcp -G 10<br> ! latcp -A -a LINUX -i "Linux login service"</b></tt><br> ! Then the service LINUX will be advertised in groups 0 and 10 (group 0 is always on by default). You could remove it from group 0 with the following ! command:<br> ! <tt><b>latcp -g 0</b></tt><br> ! Set up like this, only terminal services listening for services in group 10 would see the LINUX service.</p> <p>The other group set (that manipulated by the -U and -u switches) determines ! which services can be used by the reverse-LAT ports. So, if you issue the ! following commands:<br> ! <tt><b>latcp -u 0<br> ! latcp -U 20</b></tt><br> ! Then you would only be able to connect reverse LAT ports to services that ! were advertised in group 20 (ie you could not connect to the LINUX service!). </p> *************** *** 237,261 **** <h1>Other things you can fiddle with</h1> ! Most of the operational parameters of latd can be configured with latcp. I recommend you leave these alone unless you know what you are doing though. <ul> <li>Multicast timer(latcp -m). This timer specifies how often latd advertises ! its services on the LAN. It is specified in seconds and the default is 60.</li> <li>Keepalive Timer(latcp -k). This timer specifies how often latd will ! send a "keepalive packet" to a remote connection to see if it is still alive. ! This timer is restarted each time a valid packet is received. If <retransmit ! limit> keepalive packets are sent with no response then the connection ! is terminated. It is specified in seconds and the default is 20.</li> <li>Retransmit Limit(latcp -r). This is the number of keepalive packets ! sent before terminating a connection on the assumption that it is dead. ! The default is 20.</li> <li>Service responder(latcp -J or -j). Enables (-J) or disables (-j) service ! responder mode. This is needed if you have terminal servers on your network ! which don't collect advertised services but expect other machines to do ! it for them</li> </ul> --- 250,274 ---- <h1>Other things you can fiddle with</h1> ! Most of the operational parameters of latd can be configured with latcp. I recommend you leave these alone unless you know what you are doing though. <ul> <li>Multicast timer(latcp -m). This timer specifies how often latd advertises ! its services on the LAN. It is specified in seconds and the default is 60.</li> <li>Keepalive Timer(latcp -k). This timer specifies how often latd will ! send a "keepalive packet" to a remote connection to see if it is still alive. ! This timer is restarted each time a valid packet is received. If <retransmit ! limit> keepalive packets are sent with no response then the connection ! is terminated. It is specified in seconds and the default is 20.</li> <li>Retransmit Limit(latcp -r). This is the number of keepalive packets ! sent before terminating a connection on the assumption that it is dead. ! The default is 20.</li> <li>Service responder(latcp -J or -j). Enables (-J) or disables (-j) service ! responder mode. This is needed if you have terminal servers on your network ! which don't collect advertised services but expect other machines to do ! it for them</li> </ul> *************** *** 268,272 **** above. In its most basic form you can connect to an advertised LAT service with the command:<br> ! <pre>$ llogin trillian</pre> This command will connect you to the/a machine that advertises the service trillian and prompt you to log in. You can also specify a particular node --- 281,285 ---- above. In its most basic form you can connect to an advertised LAT service with the command:<br> ! <pre><b>$ llogin trillian</b></pre> This command will connect you to the/a machine that advertises the service trillian and prompt you to log in. You can also specify a particular node *************** *** 274,278 **** for more details). One useful feature is the ability to connect to queued services by supplying the -Q switch to the command eg:<br> ! <pre>$ llogin ds200 -Rport_6 -Q</pre> Will connect to a queued port on a DECserver. Note that the service name, port name (and node name if supplied) will be converted to uppercase.<br> --- 287,291 ---- for more details). One useful feature is the ability to connect to queued services by supplying the -Q switch to the command eg:<br> ! <pre><b>$ llogin ds200 -Rport_6 -Q</b></pre> Will connect to a queued port on a DECserver. Note that the service name, port name (and node name if supplied) will be converted to uppercase.<br> *************** *** 287,293 **** command which produces output something like this:<br> <pre><br>Node Name: TYKE LAT Protocol Version: 5.2<br>Node State: On LATD Version: 1.01<br>Node Ident: A Linux box<br><br>Service Responder : Disabled<br>Interfaces : eth1 eth0 <br><br>Circuit Timer (msec): 80 Keepalive Timer (sec): 20<br>Retransmit Limit: 20<br>Multicast Timer (sec): 30<br><br>User Groups: 0<br>Service Groups: 0<br><br>Service Name Status Rating Identification<br>TYKE Enabled 12 D <br>LINUX Enabled 100 D <br><br>Port Node Service Remote Port Queued<br>/dev/lat/marsinta DS200 PORT_8 Yes <br>/dev/lat/trillian DS200 PORT_7 Yes <br>/dev/lat/zaphod DS200 PORT_3 Yes <br>/dev/lat/roosta DS200 PORT_2 Yes <br>/dev/lat/loginmarsha MARSHA No <br>/dev/lat/ddcmp DS200 PORT_6 Yes 8<br></pre> ! The services shown are the services advertised by this machine. If you want ! to see a list of services that are on the network that have been seen ! by this machine(remember groups!) then use the command <tt><b>latcp -d -l</b></tt> which gives output like this: <pre>BACON Available Welcome to VAX/VMS V5.5 <br>BALTI Available Compaq Tru64 UNIX V5.0A LAT SERVICE<br>DS200 Available <br>LAT_VT_GTWY Available LAT/VT Gateway<br>LINUX Available Linux 2.2.18<br>MARSHA Available VAX node MARSHA<br>TRISHA Available <br>TYKE Available Linux 2.2.18<br><br></pre> If you really want the full lowdown on the services that latd has seen then --- 300,306 ---- command which produces output something like this:<br> <pre><br>Node Name: TYKE LAT Protocol Version: 5.2<br>Node State: On LATD Version: 1.01<br>Node Ident: A Linux box<br><br>Service Responder : Disabled<br>Interfaces : eth1 eth0 <br><br>Circuit Timer (msec): 80 Keepalive Timer (sec): 20<br>Retransmit Limit: 20<br>Multicast Timer (sec): 30<br><br>User Groups: 0<br>Service Groups: 0<br><br>Service Name Status Rating Identification<br>TYKE Enabled 12 D <br>LINUX Enabled 100 D <br><br>Port Node Service Remote Port Queued<br>/dev/lat/marsinta DS200 PORT_8 Yes <br>/dev/lat/trillian DS200 PORT_7 Yes <br>/dev/lat/zaphod DS200 PORT_3 Yes <br>/dev/lat/roosta DS200 PORT_2 Yes <br>/dev/lat/loginmarsha MARSHA No <br>/dev/lat/ddcmp DS200 PORT_6 Yes 8<br></pre> ! The services shown are the services advertised by this machine. If you want ! to see a list of services that are on the network that have been seen ! by this machine(remember groups!) then use the command <tt><b>latcp -d -l</b></tt> which gives output like this: <pre>BACON Available Welcome to VAX/VMS V5.5 <br>BALTI Available Compaq Tru64 UNIX V5.0A LAT SERVICE<br>DS200 Available <br>LAT_VT_GTWY Available LAT/VT Gateway<br>LINUX Available Linux 2.2.18<br>MARSHA Available VAX node MARSHA<br>TRISHA Available <br>TYKE Available Linux 2.2.18<br><br></pre> If you really want the full lowdown on the services that latd has seen then *************** *** 320,327 **** <hr width="100%"><br> ! <i>Compaq</i> and <i>Tru64 Unix</i> are trademarks of Compaq Computers Inc ! and <i>DECserver </i>probably is too.<br> <br> ! Go back to the <a href="index.html">DECnet for Linux Home Page</a> --- 333,340 ---- <hr width="100%"><br> ! <i>Compaq</i> and <i>Tru64 Unix</i> are trademarks of Compaq Computers Inc ! and <i>DECserver</i> probably is too.<br> <br> ! Go back to the <a href="index.html">DECnet for Linux Home Page</a> |
From: Patrick C. <pa...@us...> - 2002-03-07 11:49:32
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv11381 Modified Files: server.cc Log Message: Don't try to process rogue packets. Index: server.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/server.cc,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -r1.57 -r1.58 *** server.cc 1 Mar 2002 14:19:35 -0000 1.57 --- server.cc 7 Mar 2002 11:49:28 -0000 1.58 *************** *** 511,515 **** len = iface->recv_packet(sock, ifn, macaddr, buf, sizeof(buf)); ! if (len <= 0) { if (errno != EINTR && errno != EAGAIN) --- 511,518 ---- len = iface->recv_packet(sock, ifn, macaddr, buf, sizeof(buf)); ! if (len == 0) ! return; // Probably a rogue packet ! ! if (len < 0) { if (errno != EINTR && errno != EAGAIN) |
From: Patrick C. <pa...@us...> - 2002-03-03 17:11:36
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv8781 Modified Files: moprc.c Log Message: Increase poll interval a little so we get fewer timeouts. Index: moprc.c =================================================================== RCS file: /cvsroot/linux-decnet/latd/moprc.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** moprc.c 3 Jan 2002 08:46:55 -0000 1.2 --- moprc.c 3 Mar 2002 17:11:32 -0000 1.3 *************** *** 1,4 **** /****************************************************************************** ! (c) 2001 Patrick Caulfield pa...@de... This program is free software; you can redistribute it and/or modify --- 1,4 ---- /****************************************************************************** ! (c) 2001-2002 patrick Caulfield pa...@de... This program is free software; you can redistribute it and/or modify *************** *** 447,451 **** int len; int status; ! int timeout = 160000; /* Poll interval */ int waiting_ack; int resends = 0; --- 447,451 ---- int len; int status; ! int timeout = 200000; /* Poll interval */ int waiting_ack; int resends = 0; |
From: Patrick C. <pa...@us...> - 2002-03-03 12:58:11
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv9906 Modified Files: latcp.cc Log Message: Set minimum keeplive back to 10 after a testing change got checked in by mistake. Index: latcp.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/latcp.cc,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -r1.32 -r1.33 *** latcp.cc 1 Mar 2002 14:19:34 -0000 1.32 --- latcp.cc 3 Mar 2002 12:58:06 -0000 1.33 *************** *** 489,493 **** void set_keepalive(int newtime) { ! if (newtime < 1 || newtime > 180) { fprintf(stderr, "invalid keepalive timer\n"); --- 489,493 ---- void set_keepalive(int newtime) { ! if (newtime < 10 || newtime > 180) { fprintf(stderr, "invalid keepalive timer\n"); |
From: Patrick C. <pa...@us...> - 2002-03-02 11:08:07
|
Update of /cvsroot/linux-decnet/dnprogs/apps In directory usw-pr-cvs1:/tmp/cvs-serv10364 Modified Files: ctermd.c Log Message: Allow DEL and ^X etc (hooray!) Fixes a long-standing bug 204863 Index: ctermd.c =================================================================== RCS file: /cvsroot/linux-decnet/dnprogs/apps/ctermd.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** ctermd.c 22 Sep 2000 09:01:08 -0000 1.4 --- ctermd.c 2 Mar 2002 11:08:04 -0000 1.5 *************** *** 1,7 **** /****************************************************************************** ! (c) 1995-1998 E.M. Serrat ems...@ge... Conversion to dnetd (c) 1999 by Patrick Caulfield ! This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by --- 1,7 ---- /****************************************************************************** ! (c) 1995-2002 E.M. Serrat ems...@ge... Conversion to dnetd (c) 1999 by Patrick Caulfield ! This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by *************** *** 62,70 **** /* Recognition */ 0x01,0x00, 0x02,0x02,0x19, 0xff,0x00 }; - if (write(net,cterm_setchar_msg,sizeof(cterm_setchar_msg)) < 0) { --- 62,70 ---- /* Recognition */ 0x01,0x00, + 0x02,0x02,0x19, 0xff,0x00 }; if (write(net,cterm_setchar_msg,sizeof(cterm_setchar_msg)) < 0) { *************** *** 82,86 **** 0x01,0x04,0x00, /* Version */ 0,0,0,0,0,0,0,0, /* descrip */ ! 0x01,0x02,0x00,0x02, 0x02,0x02,0xf4,0x03, 0x03,0x04,0xfe,0x7f,0x00,0x00}; --- 82,86 ---- 0x01,0x04,0x00, /* Version */ 0,0,0,0,0,0,0,0, /* descrip */ ! 0x01,0x02,0x00,0x02, 0x02,0x02,0xf4,0x03, 0x03,0x04,0xfe,0x7f,0x00,0x00}; *************** *** 138,142 **** lentry=getutline(&entry); lentry->ut_type=DEAD_PROCESS; ! memset(lentry->ut_line,0,UT_LINESIZE); memset(lentry->ut_user,0,UT_NAMESIZE); --- 138,142 ---- lentry=getutline(&entry); lentry->ut_type=DEAD_PROCESS; ! memset(lentry->ut_line,0,UT_LINESIZE); memset(lentry->ut_user,0,UT_NAMESIZE); *************** *** 180,184 **** char cterm_stread_msg[] = { 0x09,0x00,0x31,0x00, 0x02, ! 0x40,0x48,0x01, 0xa0,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, --- 180,184 ---- char cterm_stread_msg[] = { 0x09,0x00,0x31,0x00, 0x02, ! 0x40,0x4A,0x01, 0xa0,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, *************** *** 203,207 **** int wrtlen; int l; ! memcpy(&lclbuf[0],cterm_write_msg,9); blklen=(short *)&lclbuf[2]; --- 203,207 ---- int wrtlen; int l; ! memcpy(&lclbuf[0],cterm_write_msg,9); blklen=(short *)&lclbuf[2]; *************** *** 218,222 **** exit(-1); } ! } /*-----------------------------------------------------------------------*/ --- 218,222 ---- exit(-1); } ! } /*-----------------------------------------------------------------------*/ *************** *** 236,246 **** siga.sa_flags = 0; sigaction(SIGCHLD, &siga, NULL); ! signal(SIGTSTP, SIG_IGN); signal(SIGTTOU, SIG_IGN); ! cterm_write("CTERM Version 1.0.4\r\nDECnet for Linux\r\n\n"); cterm_read(); ! for (;;) { --- 236,246 ---- siga.sa_flags = 0; sigaction(SIGCHLD, &siga, NULL); ! signal(SIGTSTP, SIG_IGN); signal(SIGTTOU, SIG_IGN); ! cterm_write("CTERM Version 1.0.5\r\nDECnet for Linux\r\n\n"); cterm_read(); ! for (;;) { *************** *** 256,260 **** if (cnt <= 0) break; buf[cnt]='\0'; ! cterm_write(buf); } --- 256,260 ---- if (cnt <= 0) break; buf[cnt]='\0'; ! cterm_write(buf); } *************** *** 263,267 **** cnt=read(net,buf,sizeof(buf)); if (cnt <= 0) break; ! switch (buf[4]) { --- 263,267 ---- cnt=read(net,buf,sizeof(buf)); if (cnt <= 0) break; ! switch (buf[4]) { *************** *** 275,279 **** cterm_read(); break; ! case 0x04: if ( (buf[6] == 0x19) || (buf[6] == 3) ) { --- 275,279 ---- cterm_read(); break; ! case 0x04: if ( (buf[6] == 0x19) || (buf[6] == 3) ) { *************** *** 296,300 **** char ptyname[] = "/dev/ptyCP"; int gotpty =0; ! cterm_bind(); --- 296,300 ---- char ptyname[] = "/dev/ptyCP"; int gotpty =0; ! cterm_bind(); *************** *** 314,322 **** line[strlen("/dev/ptyC")] = '0'; if (stat(line,&stb) < 0) ! break; for (i=0; i < 16; i++) { line[strlen("/dev/ptyC")]= "0123456789abcdef"[i]; ! if ( (pty=open(line,O_RDWR)) > 0) { gotpty = 1; --- 314,322 ---- line[strlen("/dev/ptyC")] = '0'; if (stat(line,&stb) < 0) ! break; for (i=0; i < 16; i++) { line[strlen("/dev/ptyC")]= "0123456789abcdef"[i]; ! if ( (pty=open(line,O_RDWR)) > 0) { gotpty = 1; *************** *** 326,330 **** if (gotpty) break; } ! if (!gotpty) { cterm_write("No ptys available for connection"); --- 326,330 ---- if (gotpty) break; } ! if (!gotpty) { cterm_write("No ptys available for connection"); *************** *** 334,338 **** line[strlen("/dev/")] = 't'; ! if ( (t=open(line,O_RDWR)) < 0) { cterm_write("Error connecting to physical terminal"); --- 334,338 ---- line[strlen("/dev/")] = 't'; ! if ( (t=open(line,O_RDWR)) < 0) { cterm_write("Error connecting to physical terminal"); *************** *** 340,344 **** } #endif ! if ( fchmod(t,0) ) { cterm_write("Error setting terminal mode"); --- 340,344 ---- } #endif ! if ( fchmod(t,0) ) { cterm_write("Error setting terminal mode"); *************** *** 351,361 **** exit(-1); } ! if (i) { cterm(); } ! setsid(); ! close(pty); close(net); if (t != 0) dup2 (t,0); --- 351,361 ---- exit(-1); } ! if (i) { cterm(); } ! setsid(); ! close(pty); close(net); if (t != 0) dup2 (t,0); *************** *** 389,401 **** char log_char = 's'; char opt; ! ! // Deal with command-line arguments. opterr = 0; optind = 0; while ((opt=getopt(argc,argv,"?vVdhl:")) != EOF) { ! switch(opt) { ! case 'h': usage(argv[0], stdout); exit(0); --- 389,401 ---- char log_char = 's'; char opt; ! ! /* Deal with command-line arguments.*/ opterr = 0; optind = 0; while ((opt=getopt(argc,argv,"?vVdhl:")) != EOF) { ! switch(opt) { ! case 'h': usage(argv[0], stdout); exit(0); *************** *** 432,438 **** } ! // Initialise logging init_daemon_logging("ctermd", log_char); ! net = dnet_daemon(DNOBJECT_CTERM, NULL, verbosity, !debug); --- 432,438 ---- } ! /* Initialise logging */ init_daemon_logging("ctermd", log_char); ! net = dnet_daemon(DNOBJECT_CTERM, NULL, verbosity, !debug); |
From: Patrick C. <pa...@us...> - 2002-03-01 14:19:38
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv16305 Modified Files: server.h connection.cc latcp.cc main.cc server.cc Log Message: Use greeting rather than a hard-coded string for the system ID Index: server.h =================================================================== RCS file: /cvsroot/linux-decnet/latd/server.h,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -r1.35 -r1.36 *** server.h 21 Feb 2002 16:16:03 -0000 1.35 --- server.h 1 Mar 2002 14:19:34 -0000 1.36 *************** *** 56,59 **** --- 56,61 ---- void send_enq(unsigned char *); + static unsigned char greeting[255]; + private: LATServer(): *************** *** 70,74 **** int rating; - unsigned char greeting[255]; unsigned char local_name[256]; // Node name int interface_num[MAX_INTERFACES]; --- 72,75 ---- Index: connection.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/connection.cc,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -r1.42 -r1.43 *** connection.cc 1 Mar 2002 13:53:54 -0000 1.42 --- connection.cc 1 Mar 2002 14:19:34 -0000 1.43 *************** *** 515,519 **** add_string(reply, &ptr, server->get_local_node()); add_string(reply, &ptr, remnode); ! add_string(reply, &ptr, (unsigned char*)"GPL LATD"); reply[ptr++] = '\0'; --- 515,519 ---- add_string(reply, &ptr, server->get_local_node()); add_string(reply, &ptr, remnode); ! add_string(reply, &ptr, (unsigned char*)LATServer::greeting); reply[ptr++] = '\0'; *************** *** 927,931 **** add_string(buf, &ptr, LATServer::Instance()->get_local_node()); buf[ptr++] = 0; // ASCIC source port ! add_string(buf, &ptr, (unsigned char *)"GPL LATD"); add_string(buf, &ptr, servicename); add_string(buf, &ptr, portname); --- 927,931 ---- add_string(buf, &ptr, LATServer::Instance()->get_local_node()); buf[ptr++] = 0; // ASCIC source port ! add_string(buf, &ptr, (unsigned char *)LATServer::greeting); add_string(buf, &ptr, servicename); add_string(buf, &ptr, portname); *************** *** 960,964 **** add_string(buf, &ptr, remnode); add_string(buf, &ptr, LATServer::Instance()->get_local_node()); ! add_string(buf, &ptr, (unsigned char *)"GPL LATD"); return send_message(buf, ptr, LATConnection::DATA); --- 960,964 ---- add_string(buf, &ptr, remnode); add_string(buf, &ptr, LATServer::Instance()->get_local_node()); ! add_string(buf, &ptr, (unsigned char *)LATServer::greeting); return send_message(buf, ptr, LATConnection::DATA); Index: latcp.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/latcp.cc,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -r1.31 -r1.32 *** latcp.cc 15 Feb 2002 13:35:24 -0000 1.31 --- latcp.cc 1 Mar 2002 14:19:34 -0000 1.32 *************** *** 489,493 **** void set_keepalive(int newtime) { ! if (newtime < 10 || newtime > 180) { fprintf(stderr, "invalid keepalive timer\n"); --- 489,493 ---- void set_keepalive(int newtime) { ! if (newtime < 1 || newtime > 180) { fprintf(stderr, "invalid keepalive timer\n"); Index: main.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/main.cc,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -r1.17 -r1.18 *** main.cc 8 Feb 2002 15:24:18 -0000 1.17 --- main.cc 1 Mar 2002 14:19:35 -0000 1.18 *************** *** 93,97 **** #endif ! strcpy(greeting, "GPL LATD by Patrick Caulfield"); interface[0] = '\0'; memset(interfaces, 0, sizeof(interfaces)); --- 93,101 ---- #endif ! // Make a default greeting. ! struct utsname uts; ! uname(&uts); ! ! snprintf(greeting, sizeof(greeting), "LATD for %s\n", uts.sysname); interface[0] = '\0'; memset(interfaces, 0, sizeof(interfaces)); Index: server.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/server.cc,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -r1.56 -r1.57 *** server.cc 1 Mar 2002 13:54:38 -0000 1.56 --- server.cc 1 Mar 2002 14:19:35 -0000 1.57 *************** *** 1726,1727 **** --- 1726,1728 ---- LATServer *LATServer::instance = NULL; + unsigned char LATServer::greeting[255] = {'\0'}; |
From: Patrick C. <pa...@us...> - 2002-03-01 13:56:30
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv9818 Modified Files: Makefile Log Message: Bump version, remove trailing blanks, add -DPACKET_LOSS define for extreme testing. Index: Makefile =================================================================== RCS file: /cvsroot/linux-decnet/latd/Makefile,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -r1.29 -r1.30 *** Makefile 12 Feb 2002 13:36:19 -0000 1.29 --- Makefile 1 Mar 2002 13:56:27 -0000 1.30 *************** *** 1,5 **** # Makefile for LAT server ! VERSION=1.13 PKGNAME=latd --- 1,5 ---- # Makefile for LAT server ! VERSION=1.14 PKGNAME=latd *************** *** 22,27 **** --- 22,30 ---- DEFS=-DVERSION=\"$(VERSION)\" -DLATCP_SOCKNAME=\"$(LATCPSOCK)\" -DLLOGIN_SOCKNAME=\"$(LLOGINSOCK)\" DEFS+=-DUSE_OPENPTY #-DSETLOGIN_HOST + + # These are debugging options, know what you are doing before setting these. #DEFS+=-DVERBOSE_DEBUG -DNO_FORK -DDEBUG_MALLOC #DEFS+=-DREALLY_VERBOSE_DEBUGLOG + #DEFS+=-DPACKET_LOSS=8 prefix=/usr/local *************** *** 29,33 **** LLOGINSOCK="/var/run/latlogin" OPTDEBUG=-g ! CXX=g++ CC=gcc CXXFLAGS+=$(OPTDEBUG) $(DEFS) -pipe -Wstrict-prototypes -Wall -fno-rtti -fno-exceptions --- 32,36 ---- LLOGINSOCK="/var/run/latlogin" OPTDEBUG=-g ! CXX=g++ CC=gcc CXXFLAGS+=$(OPTDEBUG) $(DEFS) -pipe -Wstrict-prototypes -Wall -fno-rtti -fno-exceptions *************** *** 55,65 **** all: $(PROG1) $(PROG2) $(PROG3) $(PROG4) ! $(PROG1): depend $(PROG1OBJS) $(CXX) -o $@ $(PROG1OBJS) -lutil ! $(PROG2): depend $(PROG2OBJS) $(CXX) -o $@ $(PROG2OBJS) ! $(PROG3): depend $(PROG3OBJS) $(CXX) -o $@ $(PROG3OBJS) --- 58,68 ---- all: $(PROG1) $(PROG2) $(PROG3) $(PROG4) ! $(PROG1): depend $(PROG1OBJS) $(CXX) -o $@ $(PROG1OBJS) -lutil ! $(PROG2): depend $(PROG2OBJS) $(CXX) -o $@ $(PROG2OBJS) ! $(PROG3): depend $(PROG3OBJS) $(CXX) -o $@ $(PROG3OBJS) |
From: Patrick C. <pa...@us...> - 2002-03-01 13:54:41
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv9182 Modified Files: server.cc Log Message: Fix confusing debug message. Add code to test unreliable media Index: server.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/server.cc,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -r1.55 -r1.56 *** server.cc 21 Feb 2002 16:16:03 -0000 1.55 --- server.cc 1 Mar 2002 13:54:38 -0000 1.56 *************** *** 695,698 **** --- 695,706 ---- if (len%2) len++; // Must be an even number + #ifdef PACKET_LOSS + static int c=0; + if ((++c % PACKET_LOSS) == 0) { + debuglog(("NOT SENDING THIS MESSAGE!\n")); + return 0; + } + #endif + if (interface == 0) // Send to all { *************** *** 1458,1466 **** int connid; - debuglog(("lloginSession for %s has connid %d\n", service, connid)); - connid = make_connection(fd, service, rnode, port, localport, password, queued); if (connid < 0) return connid; ret = connections[connid]->create_llogin_session(fd, service, port, localport, password); --- 1466,1474 ---- int connid; connid = make_connection(fd, service, rnode, port, localport, password, queued); if (connid < 0) return connid; + + debuglog(("lloginSession for %s has connid %d\n", service, connid)); ret = connections[connid]->create_llogin_session(fd, service, port, localport, password); |
From: Patrick C. <pa...@us...> - 2002-03-01 13:53:57
|
Update of /cvsroot/linux-decnet/latd In directory usw-pr-cvs1:/tmp/cvs-serv8851 Modified Files: connection.cc Log Message: Resends now seem to work reliably on VERY unreliable media Index: connection.cc =================================================================== RCS file: /cvsroot/linux-decnet/latd/connection.cc,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -r1.41 -r1.42 *** connection.cc 28 Feb 2002 17:52:43 -0000 1.41 --- connection.cc 1 Mar 2002 13:53:54 -0000 1.42 *************** *** 155,173 **** // Is this a duplicate? ! if (msg->header.ack_number == last_recv_ack && ! msg->header.sequence_number == last_recv_seq) { ! debuglog(("Duplicate packet received...resending ACK\n")); ! // But still send an ACK as it could be the ACK that went missing ! last_ack_message.send(interface, macaddr); ! // If the last DATA message wasn't seen either then resend that too ! if (last_message.get_seq() != msg->header.ack_number) ! last_message.send(interface, macaddr); return false; } ! // PJC: Not sure about this if (msg->header.ack_number != last_sent_seq) { --- 155,177 ---- // Is this a duplicate? ! // Check the previous ack number too as we could be one packet out ! if (msg->header.sequence_number == last_recv_seq || ! msg->header.sequence_number == last_recv_seq-1) { ! if (msg->header.ack_number == last_recv_ack) ! { ! debuglog(("Duplicate packet received...resending ACK\n")); ! // But still send an ACK as it could be the ACK that went missing ! last_ack_message.send(interface, macaddr); ! // If the last DATA message wasn't seen either then resend that too ! if (last_message.get_seq() != msg->header.ack_number) ! last_message.send(interface, macaddr); ! } return false; } ! // If we got an old message then process that. if (msg->header.ack_number != last_sent_seq) { *************** *** 180,184 **** } - window_size--; if (window_size < 0) window_size = 0; --- 184,187 ---- *************** *** 772,777 **** // Send a pending message (if we can) ! if (!pending.empty() && window_size < max_window_size)// && ! // last_sent_seq - last_recv_ack < max_window_size) { // Send the top message --- 775,779 ---- // Send a pending message (if we can) ! if (!pending.empty() && window_size < max_window_size) { // Send the top message |