/*
- * $Id: afp_asp.c,v 1.14 2002-03-20 20:53:57 morgana Exp $
+ * $Id: afp_asp.c,v 1.17 2002-08-30 19:32:40 didg Exp $
*
* Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
* Copyright (c) 1990,1993 Regents of The University of Michigan.
#include "auth.h"
#include "fork.h"
+#ifdef FORCE_UIDGID
+#warning UIDGID
+#include "uid.h"
+#endif /* FORCE_UIDGID */
+
extern struct oforks *writtenfork;
static AFPObj *child;
if (obj->logout)
(*obj->logout)();
- LOG(log_info, logtype_default, "%.2fKB read, %.2fKB written",
+ LOG(log_info, logtype_afpd, "%.2fKB read, %.2fKB written",
asp->read_count / 1024.0, asp->write_count / 1024.0);
asp_close( asp );
}
file_pid = atoi(p_filepid);
if (file_pid == (int)getpid()) {
if(unlink(addr_filename) == 0) {
- syslog(LOG_INFO, "removed %s", addr_filename);
+ LOG(log_info, logtype_afpd, "removed %s", addr_filename);
} else {
- syslog(LOG_INFO, "error removing %s: %s",
+ LOG(log_info, logtype_afpd, "error removing %s: %s",
addr_filename, strerror(errno));
}
} else {
- syslog( LOG_INFO, "%s belongs to another pid %d",
+ LOG(log_info, logtype_afpd, "%s belongs to another pid %d",
addr_filename, file_pid );
}
} else { /* no pid info */
if (unlink(addr_filename) == 0) {
- syslog( LOG_INFO, "removed %s", addr_filename );
+ LOG(log_info, logtype_afpd, "removed %s", addr_filename );
} else {
- syslog(LOG_INFO, "error removing %s: %s",
+ LOG(log_info, logtype_afpd, "error removing %s: %s",
addr_filename, strerror(errno));
}
}
} else {
- syslog( LOG_INFO, "couldn't read data from %s", addr_filename );
+ LOG(log_info, logtype_afpd, "couldn't read data from %s", addr_filename );
}
} else {
- syslog( LOG_INFO, "%s is not a regular file", addr_filename );
+ LOG(log_info, logtype_afpd, "%s is not a regular file", addr_filename );
}
} else {
- syslog(LOG_INFO, "error stat'ing %s: %s",
+ LOG(log_info, logtype_afpd, "error stat'ing %s: %s",
addr_filename, strerror(errno));
}
}
asp_attention(asp, AFPATTN_SHUTDOWN);
if ( asp_shutdown( asp ) < 0 ) {
- LOG(log_error, logtype_default, "afp_die: asp_shutdown: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_die: asp_shutdown: %s", strerror(errno) );
}
afp_asp_close(child);
it.it_value.tv_sec = 300;
it.it_value.tv_usec = 0;
if ( setitimer( ITIMER_REAL, &it, 0 ) < 0 ) {
- LOG(log_error, logtype_default, "afp_timedown: setitimer: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_timedown: setitimer: %s", strerror(errno) );
afp_asp_die(1);
}
sigemptyset( &sv.sa_mask );
sv.sa_flags = SA_RESTART;
if ( sigaction( SIGALRM, &sv, 0 ) < 0 ) {
- LOG(log_error, logtype_default, "afp_timedown: sigaction: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_timedown: sigaction: %s", strerror(errno) );
afp_asp_die(1);
}
}
sigemptyset( &action.sa_mask );
action.sa_flags = SA_RESTART;
if ( sigaction( SIGHUP, &action, 0 ) < 0 ) {
- LOG(log_error, logtype_default, "afp_over_asp: sigaction: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_over_asp: sigaction: %s", strerror(errno) );
afp_asp_die(1);
}
sigemptyset( &action.sa_mask );
action.sa_flags = SA_RESTART;
if ( sigaction( SIGTERM, &action, 0 ) < 0 ) {
- LOG(log_error, logtype_default, "afp_over_asp: sigaction: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_over_asp: sigaction: %s", strerror(errno) );
afp_asp_die(1);
}
- LOG(log_info, logtype_default, "session from %u.%u:%u on %u.%u:%u",
+ LOG(log_info, logtype_afpd, "session from %u.%u:%u on %u.%u:%u",
ntohs( asp->asp_sat.sat_addr.s_net ),
asp->asp_sat.sat_addr.s_node, asp->asp_sat.sat_port,
ntohs( atp_sockaddr( asp->asp_atp )->sat_addr.s_net ),
switch (reply) {
case ASPFUNC_CLOSE :
afp_asp_close(obj);
- LOG(log_info, logtype_default, "done" );
+ LOG(log_info, logtype_afpd, "done" );
if ( obj->options.flags & OPTION_DEBUG ) {
printf( "done\n" );
#ifdef AFS
if ( writtenfork ) {
if ( flushfork( writtenfork ) < 0 ) {
- LOG(log_error, logtype_default, "main flushfork: %s",
+ LOG(log_error, logtype_afpd, "main flushfork: %s",
strerror(errno));
}
writtenfork = NULL;
reply = (*afp_switch[ func ])(obj,
asp->commands, asp->cmdlen,
asp->data, &asp->datalen);
+#ifdef FORCE_UIDGID
+ /* bring everything back to old euid, egid */
+ if (obj->force_uid)
+ restore_uidgid ( &obj->uidgid );
+#endif /* FORCE_UIDGID */
} else {
- LOG(log_error, logtype_default, "bad function %X", func );
+ LOG(log_error, logtype_afpd, "bad function %X", func );
asp->datalen = 0;
reply = AFPERR_NOOP;
}
}
if ( asp_cmdreply( asp, reply ) < 0 ) {
- LOG(log_error, logtype_default, "asp_cmdreply: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "asp_cmdreply: %s", strerror(errno) );
afp_asp_die(1);
}
break;
reply = (*afp_switch[ func ])(obj,
asp->commands, asp->cmdlen,
asp->data, &asp->datalen);
+#ifdef FORCE_UIDGID
+ /* bring everything back to old euid, egid */
+ if (obj->force_uid)
+ restore_uidgid ( &obj->uidgid );
+#endif /* FORCE_UIDGID */
} else {
- LOG(log_error, logtype_default, "(write) bad function %X", func );
+ LOG(log_error, logtype_afpd, "(write) bad function %X", func );
asp->datalen = 0;
reply = AFPERR_NOOP;
}
bprint( asp->data, asp->datalen );
}
if ( asp_wrtreply( asp, reply ) < 0 ) {
- LOG(log_error, logtype_default, "asp_wrtreply: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "asp_wrtreply: %s", strerror(errno) );
afp_asp_die(1);
}
break;
* Bad asp packet. Probably should have asp filter them,
* since they are typically things like out-of-order packet.
*/
- LOG(log_info, logtype_default, "main: asp_getrequest: %d", reply );
+ LOG(log_info, logtype_afpd, "main: asp_getrequest: %d", reply );
break;
}