/*
- * $Id: session.c,v 1.15 2005-04-28 20:49:49 bfernhomberg Exp $
+ * $Id: session.c,v 1.20 2009-10-16 01:10:59 didg Exp $
*
* Copyright (c) 1990,1994 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
extern unsigned char connid, quantum, oquantum;
-char buf[ PAP_MAXQUANTUM ][ 4 + PAP_MAXDATA ];
-struct iovec niov[ PAP_MAXQUANTUM ] = {
+static char buf[ PAP_MAXQUANTUM ][ 4 + PAP_MAXDATA ];
+static struct iovec niov[ PAP_MAXQUANTUM ] = {
{ buf[ 0 ], 0 },
{ buf[ 1 ], 0 },
{ buf[ 2 ], 0 },
{ buf[ 6 ], 0 },
{ buf[ 7 ], 0 },
};
-struct iovec iov[ PAP_MAXQUANTUM ] = {
- { buf[ 0 ] + 4, 0 },
- { buf[ 1 ] + 4, 0 },
- { buf[ 2 ] + 4, 0 },
- { buf[ 3 ] + 4, 0 },
- { buf[ 4 ] + 4, 0 },
- { buf[ 5 ] + 4, 0 },
- { buf[ 6 ] + 4, 0 },
- { buf[ 7 ] + 4, 0 },
-};
/*
* Accept files until the client closes the connection.
* Read lines of a file, until the client sends eof, after
* which we'll send eof also.
*/
-int session( atp, sat )
- ATP atp;
- struct sockaddr_at *sat;
+int session(ATP atp, struct sockaddr_at *sat)
{
struct timeval tv;
struct atp_block atpb;
infile.pf_state = PF_BOT;
infile.pf_bufsize = 0;
infile.pf_datalen = 0;
- infile.pf_buf = 0;
- infile.pf_data = 0;
+ infile.pf_buf = NULL;
+ infile.pf_data = NULL;
outfile.pf_state = PF_BOT;
outfile.pf_bufsize = 0;
outfile.pf_datalen = 0;
- outfile.pf_buf = 0;
- outfile.pf_data = 0;
+ outfile.pf_buf = NULL;
+ outfile.pf_data = NULL;
/*
* Ask for data.
atpb.atp_sreqto = 5; /* retry timer */
atpb.atp_sreqtries = -1; /* infinite retries */
if ( atp_sreq( atp, &atpb, oquantum, ATP_XO )) {
- LOG(log_error, logtype_papd, "atp_sreq: %m" );
+ LOG(log_error, logtype_papd, "atp_sreq: %s", strerror(errno) );
return( -1 );
}
FD_SET( atp_fileno( atp ), &fds );
do { /* do list until success or an unrecoverable error occurs */
- if (( cc = select( FD_SETSIZE, &fds, 0, 0, &tv )) < 0 )
- LOG(log_error, logtype_papd, "select: %m" ); /* log all errors */
+ if (( cc = select( FD_SETSIZE, &fds, NULL, NULL, &tv )) < 0 )
+ LOG(log_error, logtype_papd, "select: %s", strerror(errno) ); /* log all errors */
} while (( cc < 0 ) && (errno == 4));
if ( cc < 0 ) {
atpb.atp_sreqto = 0; /* best effort */
atpb.atp_sreqtries = 1; /* try once */
if ( atp_sreq( atp, &atpb, 0, 0 )) {
- LOG(log_error, logtype_papd, "atp_sreq: %m" );
+ LOG(log_error, logtype_papd, "atp_sreq: %s", strerror(errno) );
return( -1 );
}
continue;
atpb.atp_rreqdata = cbuf;
atpb.atp_rreqdlen = sizeof( cbuf );
if ( atp_rreq( atp, &atpb ) < 0 ) {
- LOG(log_error, logtype_papd, "atp_rreq: %m" );
+ LOG(log_error, logtype_papd, "atp_rreq: %s", strerror(errno) );
return( -1 );
}
/* sanity */
atpb.atp_sresiov = niov;
atpb.atp_sresiovcnt = 1;
if ( atp_sresp( atp, &atpb ) < 0 ) {
- LOG(log_error, logtype_papd, "atp_sresp: %m" );
+ LOG(log_error, logtype_papd, "atp_sresp: %s", strerror(errno) );
exit( 1 );
}
return( 0 );
atpb.atp_rresiov = niov;
atpb.atp_rresiovcnt = oquantum;
if ( atp_rresp( atp, &atpb ) < 0 ) {
- LOG(log_error, logtype_papd, "atp_rresp: %m" );
+ LOG(log_error, logtype_papd, "atp_rresp: %s", strerror(errno) );
return( -1 );
}
atpb.atp_sreqto = 5; /* retry timer */
atpb.atp_sreqtries = -1; /* infinite retries */
if ( atp_sreq( atp, &atpb, oquantum, ATP_XO )) {
- LOG(log_error, logtype_papd, "atp_sreq: %m" );
+ LOG(log_error, logtype_papd, "atp_sreq: %s", strerror(errno) );
return( -1 );
}
break;
break;
default :
- LOG(log_error, logtype_papd, "atp_rsel: %m" );
+ LOG(log_error, logtype_papd, "atp_rsel: %s", strerror(errno) );
return( -1 );
}
atpb.atp_sresiov = niov;
atpb.atp_sresiovcnt = i; /* reported by stevebn@pc1.eos.co.uk */
if ( atp_sresp( atp, &atpb ) < 0 ) {
- LOG(log_error, logtype_papd, "atp_sresp: %m" );
+ LOG(log_error, logtype_papd, "atp_sresp: %s", strerror(errno) );
return( -1 );
}
readpending = 0;