/*
- * $Id: afp_asp.c,v 1.18.6.5 2004-04-25 23:19:06 didg Exp $
+ * $Id: afp_asp.c,v 1.18.6.6 2004-05-04 15:38:23 didg Exp $
*
* Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
* Copyright (c) 1990,1993 Regents of The University of Michigan.
it.it_value.tv_usec = 0;
if ( setitimer( ITIMER_REAL, &it, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "afp_timedown: setitimer: %s", strerror(errno) );
- afp_asp_die(1);
+ afp_asp_die(EXITERR_SYS);
}
memset(&sv, 0, sizeof(sv));
sv.sa_flags = SA_RESTART;
if ( sigaction( SIGALRM, &sv, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "afp_timedown: sigaction: %s", strerror(errno) );
- afp_asp_die(1);
+ afp_asp_die(EXITERR_SYS);
}
/* ignore myself */
sv.sa_flags = SA_RESTART;
if ( sigaction( SIGUSR1, &sv, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "afp_timedown: sigaction SIGUSR1: %s", strerror(errno) );
- afp_asp_die(1);
+ afp_asp_die(EXITERR_SYS);
}
}
action.sa_flags = SA_RESTART;
if ( sigaction( SIGHUP, &action, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "afp_over_asp: sigaction: %s", strerror(errno) );
- afp_asp_die(1);
+ afp_asp_die(EXITERR_SYS);
}
/* install SIGTERM */
action.sa_flags = SA_RESTART;
if ( sigaction( SIGTERM, &action, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "afp_over_asp: sigaction: %s", strerror(errno) );
- afp_asp_die(1);
+ afp_asp_die(EXITERR_SYS);
}
#ifdef SERVERTEXT
action.sa_flags = SA_RESTART;
if ( sigaction( SIGUSR2, &action, 0) < 0 ) {
LOG(log_error, logtype_afpd, "afp_over_asp: sigaction: %s", strerror(errno) );
- afp_asp_die(1);
+ afp_asp_die(EXITERR_SYS);
}
#endif /* SERVERTEXT */
action.sa_flags = SA_RESTART;
if ( sigaction( SIGUSR1, &action, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "afp_over_asp: sigaction: %s", strerror(errno) );
- afp_asp_die(1);
+ afp_asp_die(EXITERR_SYS);
}
LOG(log_info, logtype_afpd, "session from %u.%u:%u on %u.%u:%u",
#endif
if ( asp_cmdreply( asp, reply ) < 0 ) {
LOG(log_error, logtype_afpd, "asp_cmdreply: %s", strerror(errno) );
- afp_asp_die(1);
+ afp_asp_die(EXITERR_CLNT);
}
break;
#endif
if ( asp_wrtreply( asp, reply ) < 0 ) {
LOG(log_error, logtype_afpd, "asp_wrtreply: %s", strerror(errno) );
- afp_asp_die(1);
+ afp_asp_die(EXITERR_CLNT);
}
break;
default:
/*
- * $Id: afp_config.c,v 1.22.6.5 2004-04-27 22:47:32 didg Exp $
+ * $Id: afp_config.c,v 1.22.6.6 2004-05-04 15:38:24 didg Exp $
*
* Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
* All Rights Reserved. See COPYRIGHT.
#endif /* HAVE_UNISTD_H */
#include <ctype.h>
#include <atalk/logger.h>
+#include <atalk/util.h>
#include <sys/socket.h>
#include <netinet/in.h>
if (!(asp = asp_getsession(config->obj.handle, server_children,
config->obj.options.tickleval))) {
LOG(log_error, logtype_afpd, "main: asp_getsession: %s", strerror(errno) );
- exit( 1 );
+ exit( EXITERR_CLNT );
}
if (asp->child) {
if (!(dsi = dsi_getsession(config->obj.handle, server_children,
config->obj.options.tickleval))) {
LOG(log_error, logtype_afpd, "main: dsi_getsession: %s", strerror(errno) );
- exit( 1 );
+ exit( EXITERR_CLNT );
}
/* we've forked. */
/*
- * $Id: afp_dsi.c,v 1.27.2.3.2.3 2003-11-11 08:48:32 didg Exp $
+ * $Id: afp_dsi.c,v 1.27.2.3.2.4 2004-05-04 15:38:24 didg Exp $
*
* Copyright (c) 1999 Adrian Sun (asun@zoology.washington.edu)
* Copyright (c) 1990,1993 Regents of The University of Michigan.
if ( setitimer( ITIMER_REAL, &it, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "afp_timedown: setitimer: %s", strerror(errno) );
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_SYS);
}
memset(&sv, 0, sizeof(sv));
sv.sa_handler = afp_dsi_die;
sv.sa_flags = SA_RESTART;
if ( sigaction( SIGALRM, &sv, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "afp_timedown: sigaction: %s", strerror(errno) );
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_SYS);
}
/* ignore myself */
sv.sa_flags = SA_RESTART;
if ( sigaction( SIGUSR1, &sv, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "afp_timedown: sigaction SIGHUP: %s", strerror(errno) );
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_SYS);
}
}
if (!(err = pollvoltime(child.obj)))
err = dsi_tickle(child.obj->handle);
if (err <= 0)
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_CLNT);
} else { /* didn't receive a tickle. close connection */
LOG(log_error, logtype_afpd, "afp_alarm: child timed out");
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_CLNT);
}
}
action.sa_flags = SA_RESTART;
if ( sigaction( SIGHUP, &action, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "afp_over_dsi: sigaction: %s", strerror(errno) );
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_SYS);
}
/* install SIGTERM */
action.sa_flags = SA_RESTART;
if ( sigaction( SIGTERM, &action, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "afp_over_dsi: sigaction: %s", strerror(errno) );
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_SYS);
}
#ifdef SERVERTEXT
action.sa_flags = SA_RESTART;
if ( sigaction( SIGUSR2, &action, 0) < 0 ) {
LOG(log_error, logtype_afpd, "afp_over_dsi: sigaction: %s", strerror(errno) );
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_SYS);
}
#endif /* SERVERTEXT */
action.sa_flags = SA_RESTART;
if ( sigaction( SIGUSR1, &action, 0) < 0 ) {
LOG(log_error, logtype_afpd, "afp_over_dsi: sigaction: %s", strerror(errno) );
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_SYS);
}
/* tickle handler */
action.sa_flags = SA_RESTART;
if ((sigaction(SIGALRM, &action, NULL) < 0) ||
(setitimer(ITIMER_REAL, &dsi->timer, NULL) < 0)) {
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_SYS);
}
#ifdef DEBUG1
}
if (cmd == DSIFUNC_TICKLE) {
- /* so we don't get killed on the client side. */
+ /* timer is not every 30 seconds anymore, so we don't get killed on the client side. */
if ((child.flags & CHILD_DIE))
dsi_tickle(dsi);
continue;
#endif
if (!dsi_cmdreply(dsi, err)) {
LOG(log_error, logtype_afpd, "dsi_cmdreply(%d): %s", dsi->socket, strerror(errno) );
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_CLNT);
}
break;
#endif
if (!dsi_wrtreply(dsi, err)) {
LOG(log_error, logtype_afpd, "dsi_wrtreply: %s", strerror(errno) );
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_CLNT);
}
break;
}
/* error */
- afp_dsi_die(1);
+ afp_dsi_die(EXITERR_CLNT);
}
/*
- * $Id: auth.c,v 1.44.2.3.2.11 2004-05-04 02:53:53 bfernhomberg Exp $
+ * $Id: auth.c,v 1.44.2.3.2.12 2004-05-04 15:38:24 didg Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
/* Basically if the user is in the admin group, we stay root */
if (( ngroups = getgroups( NGROUPS, groups )) < 0 ) {
- LOG(log_error, logtype_afpd, "login: getgroups: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "login: %s getgroups: %s", pwd->pw_name, strerror(errno) );
return AFPERR_BADUAM;
}
inet_ntoa( dsi->client.sin_addr ) );
if (setegid( pwd->pw_gid ) < 0 || seteuid( pwd->pw_uid ) < 0) {
- LOG(log_error, logtype_afpd, "login: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "login: %s %s", pwd->pw_name, strerror(errno) );
return AFPERR_BADUAM;
}
}
#else /* TRU64 */
if (setegid( pwd->pw_gid ) < 0 || seteuid( pwd->pw_uid ) < 0) {
- LOG(log_error, logtype_afpd, "login: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "login: %s %s", pwd->pw_name, strerror(errno) );
return AFPERR_BADUAM;
}
#endif /* TRU64 */
/*
- * $Id: desktop.c,v 1.26.2.4.2.12 2004-03-11 23:01:40 bfernhomberg Exp $
+ * $Id: desktop.c,v 1.26.2.4.2.13 2004-05-04 15:38:24 didg Exp $
*
* See COPYRIGHT.
*
struct savedt si = { { 0, 0, 0, 0 }, -1, 0 };
+static char *icon_dtfile(struct vol *vol, u_char creator[ 4 ])
+{
+ return dtfile( vol, creator, ".icon" );
+}
+
static int iconopen( vol, creator, flags, mode )
struct vol *vol;
u_char creator[ 4 ];
si.sdt_fd = -1;
}
- dtf = dtfile( vol, creator, ".icon" );
+ dtf = icon_dtfile( vol, creator);
if (( si.sdt_fd = open( dtf, flags, ad_mode( dtf, mode ))) < 0 ) {
if ( errno == ENOENT && ( flags & O_CREAT )) {
*adts = '/';
if (( si.sdt_fd = open( dtf, flags, ad_mode( dtf, mode ))) < 0 ) {
- LOG(log_error, logtype_afpd, "iconopen: open %s: %s", dtf, strerror(errno) );
+ LOG(log_error, logtype_afpd, "iconopen(%s): open: %s", dtf, strerror(errno) );
return -1;
}
} else {
int ibuflen, *rbuflen;
{
struct vol *vol;
+#ifndef NO_DDP
struct iovec iov[ 2 ];
+#endif
u_char fcreator[ 4 ], imh[ 12 ], irh[ 12 ], *p;
int itype, cc = AFP_OK, iovcnt = 0, buflen;
u_int32_t ftype, itag;
if (lseek( si.sdt_fd, (off_t) 0L, SEEK_SET ) < 0) {
close(si.sdt_fd);
si.sdt_fd = -1;
- LOG(log_error, logtype_afpd, "afp_addicon: lseek: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_addicon(%s): lseek: %s", icon_dtfile(vol, fcreator), strerror(errno) );
cc = AFPERR_PARAM;
goto addicon_err;
}
}
if ( lseek( si.sdt_fd, (off_t) rsize, SEEK_CUR ) < 0 ) {
- LOG(log_error, logtype_afpd, "afp_addicon: lseek: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_addicon(%s): lseek: %s", icon_dtfile(vol, fcreator),strerror(errno) );
cc = AFPERR_PARAM;
}
}
*/
addicon_err:
if ( cc < 0 ) {
- LOG(log_error, logtype_afpd, "afp_addicon: %s", strerror(errno) );
if (obj->proto == AFPPROTO_DSI) {
dsi_writeinit(obj->handle, rbuf, buflen);
dsi_writeflush(obj->handle);
return cc;
}
-
switch (obj->proto) {
#ifndef NO_DDP
case AFPPROTO_ASP:
}
if ( writev( si.sdt_fd, iov, iovcnt ) < 0 ) {
- LOG(log_error, logtype_afpd, "afp_addicon: writev: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_addicon(%s): writev: %s", icon_dtfile(vol, fcreator), strerror(errno) );
return( AFPERR_PARAM );
}
break;
/* add headers at end of file */
if ((cc == 0) && (write(si.sdt_fd, imh, sizeof(imh)) < 0)) {
- LOG(log_error, logtype_afpd, "afp_addicon: write: %s", strerror(errno));
+ LOG(log_error, logtype_afpd, "afp_addicon(%s): write: %s", icon_dtfile(vol, fcreator), strerror(errno));
dsi_writeflush(dsi);
return AFPERR_PARAM;
}
if ((cc = write(si.sdt_fd, rbuf, iovcnt)) < 0) {
- LOG(log_error, logtype_afpd, "afp_addicon: write: %s", strerror(errno));
+ LOG(log_error, logtype_afpd, "afp_addicon(%s): write: %s", icon_dtfile(vol, fcreator), strerror(errno));
dsi_writeflush(dsi);
return AFPERR_PARAM;
}
}
#endif
if ((cc = write(si.sdt_fd, rbuf, iovcnt)) < 0) {
- LOG(log_error, logtype_afpd, "afp_addicon: write: %s", strerror(errno));
+ LOG(log_error, logtype_afpd, "afp_addicon(%s): write: %s", icon_dtfile(vol, fcreator), strerror(errno));
dsi_writeflush(dsi);
return AFPERR_PARAM;
}
memcpy( &bsize, ih + 10, sizeof( bsize ));
bsize = ntohs(bsize);
if ( lseek( si.sdt_fd, (off_t) bsize, SEEK_CUR ) < 0 ) {
- LOG(log_error, logtype_afpd, "afp_iconinfo: lseek: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_iconinfo(%s): lseek: %s", icon_dtfile(vol, fcreator), strerror(errno) );
return( AFPERR_PARAM );
}
if ( si.sdt_index == iindex ) {
if ( lseek( si.sdt_fd, (off_t) 0L, SEEK_SET ) < 0 ) {
close(si.sdt_fd);
si.sdt_fd = -1;
- LOG(log_error, logtype_afpd, "afp_geticon: lseek: %s", strerror(errno));
+ LOG(log_error, logtype_afpd, "afp_geticon(%s): lseek: %s", icon_dtfile(vol, fcreator), strerror(errno));
return( AFPERR_PARAM );
}
memcpy( &rsize, ih + 10, sizeof( rsize ));
rsize = ntohs( rsize );
if ( lseek( si.sdt_fd, (off_t) rsize, SEEK_CUR ) < 0 ) {
- LOG(log_error, logtype_afpd, "afp_geticon: lseek: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_geticon(%s): lseek: %s", icon_dtfile(vol, fcreator), strerror(errno) );
return( AFPERR_PARAM );
}
offset += rsize;
}
if ( rc < 0 ) {
- LOG(log_error, logtype_afpd, "afp_geticon: read: %s", strerror(errno));
+ LOG(log_error, logtype_afpd, "afp_geticon(%s): read: %s", icon_dtfile(vol, fcreator), strerror(errno));
return( AFPERR_PARAM );
}
return AFP_OK;
geticon_exit:
- LOG(log_info, logtype_afpd, "afp_geticon: %s", strerror(errno));
+ LOG(log_info, logtype_afpd, "afp_geticon(%s): %s", icon_dtfile(vol, fcreator), strerror(errno));
dsi_readdone(dsi);
- obj->exit(1);
+ obj->exit(EXITERR_SYS);
return AFP_OK;
} else {
/*
- * $Id: directory.c,v 1.71.2.4.2.12 2004-03-11 16:16:40 didg Exp $
+ * $Id: directory.c,v 1.71.2.4.2.13 2004-05-04 15:38:24 didg Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
goto setdirparam_done;
break;
default :
- LOG(log_error, logtype_afpd, "setdirparam: setdeskowner: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam(%s): setdeskowner: %s",
+ path->u_name, strerror(errno) );
if (!isad) {
err = AFPERR_PARAM;
goto setdirparam_done;
goto setdirparam_done;
break;
default :
- LOG(log_error, logtype_afpd, "setdirparam: setdirowner: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam(%s): setdirowner: %s",
+ path->u_name, strerror(errno) );
break;
}
}
goto setdirparam_done;
break;
default :
- LOG(log_error, logtype_afpd, "setdirparam: setdeskowner: %m" );
+ LOG(log_error, logtype_afpd, "setdirparam(%s): setdeskowner: %s", path->u_name, strerror(errno) );
if (!isad) {
err = AFPERR_PARAM;
goto setdirparam_done;
goto setdirparam_done;
break;
default :
- LOG(log_error, logtype_afpd, "setdirparam: setdirowner: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam(%s): setdirowner: %s",
+ path->u_name, strerror(errno) );
break;
}
}
err = AFPERR_VLOCK;
goto setdirparam_done;
default :
- LOG(log_error, logtype_afpd, "setdirparam: setdeskmode: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam(%s): setdeskmode: %s",
+ path->u_name, strerror(errno) );
break;
err = AFPERR_PARAM;
goto setdirparam_done;
err = AFPERR_VLOCK;
goto setdirparam_done;
default :
- LOG(log_error, logtype_afpd, "setdirparam: setdirmode: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam(%s): setdirmode: %s",
+ path->u_name, strerror(errno) );
err = AFPERR_PARAM;
goto setdirparam_done;
}
err = AFPERR_VLOCK;
goto setdirparam_done;
default :
- LOG(log_error, logtype_afpd, "setdirparam: setdeskmode: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam(%s): setdeskmode: %s",
+ path->u_name, strerror(errno) );
break;
err = AFPERR_PARAM;
goto setdirparam_done;
err = AFPERR_VLOCK;
goto setdirparam_done;
default :
- LOG(log_error, logtype_afpd, "setdirparam: setdirmode: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam(%s): setdirmode: %s",
+ path->u_name, strerror(errno) );
err = AFPERR_PARAM;
goto setdirparam_done;
}
/*
- * $Id: file.c,v 1.92.2.2.2.23 2004-03-19 13:47:16 didg Exp $
+ * $Id: file.c,v 1.92.2.2.2.24 2004-05-04 15:38:24 didg Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
if ( setegid(gid) < 0 || seteuid(uid) < 0) {
LOG(log_error, logtype_afpd, "can't seteuid back %s", strerror(errno));
- exit(1);
+ exit(EXITERR_SYS);
}
#ifdef DEBUG
/*
- * $Id: filedir.c,v 1.45.2.2.2.9 2004-03-11 02:02:01 didg Exp $
+ * $Id: filedir.c,v 1.45.2.2.2.10 2004-05-04 15:38:25 didg Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
if (lchown(upath, sb.st_uid, sb.st_gid) < 0)
{
LOG(log_error, logtype_afpd,
- "matchfile2dirperms: Error changing owner/gid of %s: %s",
+ "matchfile2dirperms(%s): Error changing owner/gid: %s",
upath, strerror(errno));
ret = AFPERR_ACCESS;
}
else if (chmod(upath,(st.st_mode&~default_options.umask)| S_IRGRP| S_IROTH) < 0)
{
LOG(log_error, logtype_afpd,
- "matchfile2dirperms: Error adding file read permissions: %s",
- strerror(errno));
+ "matchfile2dirperms(%s): Error adding file read permissions: %s",
+ upath, strerror(errno));
ret = AFPERR_ACCESS;
}
else if (lchown(adpath, sb.st_uid, sb.st_gid) < 0)
{
LOG(log_error, logtype_afpd,
- "matchfile2dirperms: Error changing AppleDouble owner/gid %s: %s",
+ "matchfile2dirperms(%s): Error changing AppleDouble owner/gid: %s",
adpath, strerror(errno));
ret = AFPERR_ACCESS;
}
else if (chmod(adpath, (st.st_mode&~default_options.umask)| S_IRGRP| S_IROTH) < 0)
{
LOG(log_error, logtype_afpd,
- "matchfile2dirperms: Error adding AD file read permissions: %s",
- strerror(errno));
+ "matchfile2dirperms(%s): Error adding AD file read permissions: %s",
+ adpath, strerror(errno));
ret = AFPERR_ACCESS;
}
seteuid(uid);
/*
- * $Id: fork.c,v 1.51.2.2.2.9 2004-05-04 14:26:13 didg Exp $
+ * $Id: fork.c,v 1.51.2.2.2.10 2004-05-04 15:38:25 didg Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
case EACCES:
return (access & OPENACC_WR) ? AFPERR_LOCK : AFPERR_ACCESS;
default:
- LOG(log_error, logtype_afpd, "afp_openfork: ad_open: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_openfork(%s): ad_open: %s", s_path->m_name, strerror(errno) );
return AFPERR_PARAM;
}
/* FIXME should we check it first ? */
goto openfork_err;
break;
default:
- LOG(log_error, logtype_afpd, "afp_openfork: ad_open: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_openfork(%s): ad_open: %s", s_path->m_name, strerror(errno) );
ret = AFPERR_PARAM;
goto openfork_err;
break;
goto openfork_err;
break;
default:
- LOG(log_error, logtype_afpd, "afp_openfork: ad_open: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_openfork(%s): ad_open: %s", s_path->m_name, strerror(errno) );
goto openfork_err;
break;
}
break;
default:
*rbuflen = 0;
- LOG(log_error, logtype_afpd, "afp_openfork: ad_lock: %s", strerror(ret) );
+ LOG(log_error, logtype_afpd, "afp_openfork(%s): ad_lock: %s", s_path->m_name, strerror(ret) );
return( AFPERR_PARAM );
}
}
*rbuflen = 0;
if (NULL == ( ofork = of_find( ofrefnum )) ) {
- LOG(log_error, logtype_afpd, "afp_setforkparams: of_find could not locate open fork refnum: %u", ofrefnum );
+ LOG(log_error, logtype_afpd, "afp_setforkparams: of_find(%d) could not locate fork", ofrefnum );
return( AFPERR_PARAM );
}
goto afp_setfork_err;
if (ad_flush( ofork->of_ad, ADFLAGS_HF ) < 0) {
- LOG(log_error, logtype_afpd, "afp_setforkparams: ad_flush: %s",strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_setforkparams(%s): ad_flush: %s", ofork->of_name, strerror(errno) );
return AFPERR_PARAM;
}
} else
#ifdef AFS
if ( flushfork( ofork ) < 0 ) {
- LOG(log_error, logtype_afpd, "afp_setforkparams: flushfork: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_setforkparams(%s): flushfork: %s", ofork->of_name, strerror(errno) );
}
#endif /* AFS */
ibuf += sizeof(ofrefnum);
if (NULL == ( ofork = of_find( ofrefnum )) ) {
- LOG(log_error, logtype_afpd, "afp_bytelock: of_find");
+ LOG(log_error, logtype_afpd, "afp_bytelock: of_find(%d) could not locate fork", ofrefnum );
return( AFPERR_PARAM );
}
cc = ad_read(ofork->of_ad, eid, offset, rbuf, *rbuflen);
if ( cc < 0 ) {
- LOG(log_error, logtype_afpd, "afp_read: ad_read: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_read(%s): ad_read: %s", ofork->of_name, strerror(errno) );
*rbuflen = 0;
return( AFPERR_PARAM );
}
ibuf += sizeof( u_short );
if (NULL == ( ofork = of_find( ofrefnum )) ) {
- LOG(log_error, logtype_afpd, "afp_read: of_find");
+ LOG(log_error, logtype_afpd, "afp_read: of_find(%d) could not locate fork", ofrefnum );
err = AFPERR_PARAM;
goto afp_read_err;
}
if (errno == EINVAL || errno == ENOSYS)
goto afp_read_loop;
else {
- LOG(log_error, logtype_afpd, "afp_read: ad_readfile: %s", strerror(errno));
+ LOG(log_error, logtype_afpd, "afp_read(%s): ad_readfile: %s", ofork->of_name, strerror(errno));
goto afp_read_exit;
}
}
goto afp_read_done;
afp_read_exit:
- LOG(log_error, logtype_afpd, "afp_read: %s", strerror(errno));
+ LOG(log_error, logtype_afpd, "afp_read(%s): %s", ofork->of_name, strerror(errno));
dsi_readdone(dsi);
ad_tmplock(ofork->of_ad, eid, ADLOCK_CLR, saveoff, savereqcount,ofork->of_refnum);
- obj->exit(1);
+ obj->exit(EXITERR_CLNT);
}
afp_read_done:
memcpy(&ofrefnum, ibuf, sizeof( ofrefnum ));
if (NULL == ( ofork = of_find( ofrefnum )) ) {
- LOG(log_error, logtype_afpd, "afp_flushfork: of_find");
+ LOG(log_error, logtype_afpd, "afp_flushfork: of_find(%d) could not locate fork", ofrefnum );
return( AFPERR_PARAM );
}
if ( flushfork( ofork ) < 0 ) {
- LOG(log_error, logtype_afpd, "afp_flushfork: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_flushfork(%s): %s", ofork->of_name, strerror(errno) );
}
return( AFP_OK );
if ( ad_dfileno( ofork->of_ad ) != -1 &&
fsync( ad_dfileno( ofork->of_ad )) < 0 ) {
- LOG(log_error, logtype_afpd, "flushfork: dfile(%d) %s",
- ad_dfileno(ofork->of_ad), strerror(errno) );
+ LOG(log_error, logtype_afpd, "flushfork(%s): dfile(%d) %s",
+ ofork->of_name, ad_dfileno(ofork->of_ad), strerror(errno) );
err = -1;
}
err = -1;
if (err < 0)
- LOG(log_error, logtype_afpd, "flushfork: hfile(%d) %s",
- ad_hfileno(ofork->of_ad), strerror(errno) );
+ LOG(log_error, logtype_afpd, "flushfork(%s): hfile(%d) %s",
+ ofork->of_name, ad_hfileno(ofork->of_ad), strerror(errno) );
}
return( err );
memcpy(&ofrefnum, ibuf, sizeof( ofrefnum ));
if (NULL == ( ofork = of_find( ofrefnum )) ) {
- LOG(log_error, logtype_afpd, "afp_closefork: of_find");
+ LOG(log_error, logtype_afpd, "afp_closefork: of_find(%d) could not locate fork", ofrefnum );
return( AFPERR_PARAM );
}
}
if ( ad_close( ofork->of_ad, adflags ) < 0 ) {
- LOG(log_error, logtype_afpd, "afp_closefork: ad_close: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_closefork(%s): ad_close: %s", ofork->of_name, strerror(errno) );
return( AFPERR_PARAM );
}
case ENOSPC :
return( AFPERR_DFULL );
default :
- LOG(log_error, logtype_afpd, "afp_write: ad_write: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_write(%s): ad_write: %s", ofork->of_name, strerror(errno) );
return( AFPERR_PARAM );
}
}
reqcount = get_off_t(&ibuf, is64);
if (NULL == ( ofork = of_find( ofrefnum )) ) {
- LOG(log_error, logtype_afpd, "afp_write: of_find");
+ LOG(log_error, logtype_afpd, "afp_write: of_find(%d) could not locate fork", ofrefnum );
err = AFPERR_PARAM;
goto afp_write_err;
}
*rbuflen = 0;
if (NULL == ( ofork = of_find( ofrefnum )) ) {
- LOG(log_error, logtype_afpd, "afp_getforkparams: of_find");
+ LOG(log_error, logtype_afpd, "afp_getforkparams: of_find(%d) could not locate fork", ofrefnum );
return( AFPERR_PARAM );
}
attrbits = ((ofork->of_ad->ad_df.adf_refcount > 0) ? ATTRBIT_DOPEN : 0);
if ( ad_hfileno( ofork->of_ad ) != -1 ) {
if ( ad_refresh( ofork->of_ad ) < 0 ) {
- LOG(log_error, logtype_afpd, "getforkparams: ad_refresh: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "getforkparams(%s): ad_refresh: %s", ofork->of_name, strerror(errno) );
return( AFPERR_PARAM );
}
}
/*
- * $Id: main.c,v 1.20.4.2.2.7 2004-04-27 22:47:32 didg Exp $
+ * $Id: main.c,v 1.20.4.2.2.8 2004-05-04 15:38:25 didg Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
configfree(configs, NULL);
if (!(configs = configinit(&default_options))) {
LOG(log_error, logtype_afpd, "config re-read: no servers configured");
- afp_exit(1);
+ afp_exit(EXITERR_CONF);
}
set_fd(Ipc_fd);
} else {
#endif
afp_options_init(&default_options);
if (!afp_options_parse(ac, av, &default_options))
- exit(1);
+ exit(EXITERR_CONF);
/* Save the user's current umask for use with CNID (and maybe some
* other things, too). */
switch(server_lock("afpd", default_options.pidfile,
default_options.flags & OPTION_DEBUG)) {
case -1: /* error */
- exit(1);
+ exit(EXITERR_SYS);
case 0: /* child */
break;
default: /* server */
if (!(server_children = server_child_alloc(default_options.connections,
CHILD_NFORKS))) {
LOG(log_error, logtype_afpd, "main: server_child alloc: %s", strerror(errno) );
- afp_exit(1);
+ afp_exit(EXITERR_SYS);
}
#ifdef AFP3x
sv.sa_flags = SA_RESTART;
if ( sigaction( SIGCHLD, &sv, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "main: sigaction: %s", strerror(errno) );
- afp_exit(1);
+ afp_exit(EXITERR_SYS);
}
sv.sa_handler = afp_goaway;
sv.sa_flags = SA_RESTART;
if ( sigaction( SIGUSR1, &sv, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "main: sigaction: %s", strerror(errno) );
- afp_exit(1);
+ afp_exit(EXITERR_SYS);
}
sigemptyset( &sv.sa_mask );
sv.sa_flags = SA_RESTART;
if ( sigaction( SIGHUP, &sv, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "main: sigaction: %s", strerror(errno) );
- afp_exit(1);
+ afp_exit(EXITERR_SYS);
}
sv.sa_flags = SA_RESTART;
if ( sigaction( SIGTERM, &sv, 0 ) < 0 ) {
LOG(log_error, logtype_afpd, "main: sigaction: %s", strerror(errno) );
- afp_exit(1);
+ afp_exit(EXITERR_SYS);
}
/* afpd.conf: not in config file: lockfile, connections, configfile
sigprocmask(SIG_BLOCK, &sigs, NULL);
if (!(configs = configinit(&default_options))) {
LOG(log_error, logtype_afpd, "main: no servers configured: %s\n", strerror(errno));
- afp_exit(1);
+ afp_exit(EXITERR_CONF);
}
sigprocmask(SIG_UNBLOCK, &sigs, NULL);
/*
- * $Id: volume.c,v 1.51.2.7.2.28 2004-04-06 23:29:37 bfernhomberg Exp $
+ * $Id: volume.c,v 1.51.2.7.2.29 2004-05-04 15:38:25 didg Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
} else if (optionok(tmp, "codepage:", val)) {
LOG (log_error, logtype_afpd, "The old codepage system has been removed. Please make sure to read the documentation !!!!");
/* Make sure we don't screw anything */
- exit (-1);
+ exit (EXITERR_CONF);
} else if (optionok(tmp, "volcharset:", val)) {
setoption(options, save, VOLOPT_ENCODING, val);
} else if (optionok(tmp, "maccharset:", val)) {
for ( vcnt = 0, volume = Volumes; volume; volume = volume->v_next ) {
if (!(volume->v_flags & AFPVOL_NOSTAT)) {
if ( stat( volume->v_path, &st ) < 0 ) {
- LOG(log_info, logtype_afpd, "afp_getsrvrparms: stat %s: %s",
+ LOG(log_info, logtype_afpd, "afp_getsrvrparms(%s): stat: %s",
volume->v_path, strerror(errno) );
continue; /* can't access directory */
}
*rbuflen = data - rbuf;
data = rbuf;
if ( gettimeofday( &tv, 0 ) < 0 ) {
- LOG(log_error, logtype_afpd, "afp_getsrvrparms: gettimeofday: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_getsrvrparms(%s): gettimeofday: %s", volume->v_path, strerror(errno) );
*rbuflen = 0;
return AFPERR_PARAM;
}
if (volume->v_root_preexec) {
if ((ret = afprun(1, volume->v_root_preexec, NULL)) && volume->v_root_preexec_close) {
- LOG(log_error, logtype_afpd, "afp_openvol: root preexec : %d", ret );
+ LOG(log_error, logtype_afpd, "afp_openvol(%s): root preexec : %d", volume->v_path, ret );
ret = AFPERR_MISC;
goto openvol_err;
}
if (volume->v_preexec) {
if ((ret = afprun(0, volume->v_preexec, NULL)) && volume->v_preexec_close) {
- LOG(log_error, logtype_afpd, "afp_openvol: preexec : %d", ret );
+ LOG(log_error, logtype_afpd, "afp_openvol(%s): preexec : %d", volume->v_path, ret );
ret = AFPERR_MISC;
goto openvol_err;
}
if ( NULL == getcwd(path, MAXPATHLEN)) {
/* shouldn't be fatal but it will fail later */
- LOG(log_error, logtype_afpd, "afp_openvol: volume pathlen too long" );
+ LOG(log_error, logtype_afpd, "afp_openvol(%s): volume pathlen too long", volume->v_path);
ret = AFPERR_MISC;
goto openvol_err;
}
if ((dir = dirnew(vol_mname, vol_uname) ) == NULL) {
free(vol_mname);
- LOG(log_error, logtype_afpd, "afp_openvol: malloc: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_openvol(%s): malloc: %s", volume->v_path, strerror(errno) );
ret = AFPERR_MISC;
goto openvol_err;
}
/* FIXME find db time stamp */
if (cnid_getstamp(volume->v_cdb, volume->v_stamp, sizeof(volume->v_stamp)) < 0) {
- LOG (log_error, logtype_afpd, "Fatal error: Unable to get stamp value from CNID backend");
+ LOG (log_error, logtype_afpd,
+ "afp_openvol(%s): Fatal error: Unable to get stamp value from CNID backend",
+ volume->v_path);
goto openvol_err;
}
}
* [RS] */
if ( gettimeofday( &tv, 0 ) < 0 ) {
- LOG(log_error, logtype_afpd, "setvoltime: gettimeofday: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "setvoltime(%s): gettimeofday: %s", vol->v_path, strerror(errno) );
return;
}
if( utime( vol->v_path, NULL ) < 0 ) {
p = (char *) malloc ( strlen(vol->v_path)+strlen(folder->name)+2);
if ( p == NULL) {
LOG(log_error, logtype_afpd,"malloc failed");
- exit (-1);
+ exit (EXITERR_SYS);
}
q=strdup(folder->name);
if ( q == NULL) {
LOG(log_error, logtype_afpd,"malloc failed");
- exit (-1);
+ exit (EXITERR_SYS);
}
strcpy(p, vol->v_path);
/*
- * $Id: util.h,v 1.7.10.5 2004-04-21 18:45:54 bfernhomberg Exp $
+ * $Id: util.h,v 1.7.10.6 2004-05-04 15:38:26 didg Exp $
*/
#ifndef _ATALK_UTIL_H
#endif /* HAVE_UNISTD_H */
#include <netatalk/at.h>
+/* exit error codes */
+#define EXITERR_CLNT 1 /* client related error */
+#define EXITERR_CONF 2 /* error in config files/cmd line parameters */
+#define EXITERR_SYS 3 /* local system error */
+
+
extern int sys_ftruncate __P((int fd, off_t length));
#ifdef WITH_SENDFILE
/*
- * $Id: cnid.c,v 1.1.4.9 2004-03-19 13:18:51 bfernhomberg Exp $
+ * $Id: cnid.c,v 1.1.4.10 2004-05-04 15:38:26 didg Exp $
*
* Copyright (c) 2003 the Netatalk Team
* Copyright (c) 2003 Rafal Lewczuk <rlewczuk@pronet.pl>
if (cnid_dir(volpath, mask) < 0) {
if ( setegid(gid) < 0 || seteuid(uid) < 0) {
LOG(log_error, logtype_afpd, "can't seteuid back %s", strerror(errno));
- exit(1);
+ exit(EXITERR_SYS);
}
return NULL;
}
seteuid(0);
if ( setegid(gid) < 0 || seteuid(uid) < 0) {
LOG(log_error, logtype_afpd, "can't seteuid back %s", strerror(errno));
- exit(1);
+ exit(EXITERR_SYS);
}
}
/*
- * $Id: dsi_getsess.c,v 1.6 2002-01-04 04:45:48 sibaz Exp $
+ * $Id: dsi_getsess.c,v 1.6.10.1 2004-05-04 15:38:26 didg Exp $
*
* Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
* All rights reserved. See COPYRIGHT.
#include <sys/time.h>
#include <atalk/logger.h>
+#include <atalk/util.h>
#include <atalk/dsi.h>
#include <atalk/server_child.h>
dsi->header.dsi_flags = DSIFL_REPLY;
dsi->header.dsi_code = DSIERR_TOOMANY;
dsi_send(dsi);
- exit(1);
+ exit(EXITERR_CLNT);
}
/* get rid of some stuff */
default: /* just close */
LOG(log_info, logtype_default, "DSIUnknown %d", dsi->header.dsi_command);
dsi->proto_close(dsi);
- exit(1);
+ exit(EXITERR_CLNT);
}
}
/*
- * $Id: dsi_tcp.c,v 1.9.10.6 2004-04-25 23:17:56 didg Exp $
+ * $Id: dsi_tcp.c,v 1.9.10.7 2004-05-04 15:38:26 didg Exp $
*
* Copyright (c) 1997, 1998 Adrian Sun (asun@zoology.washington.edu)
* All rights reserved. See COPYRIGHT.
static void timeout_handler()
{
LOG(log_error, logtype_default, "dsi_tcp_open: connection timed out");
- exit(1);
+ exit(EXITERR_CLNT);
}
#ifdef ATACC
if ((sigaction(SIGALRM, &newact, &oldact) < 0) ||
(setitimer(ITIMER_REAL, &timer, NULL) < 0)) {
LOG(log_error, logtype_default, "dsi_tcp_open: %s", strerror(errno));
- exit(1);
+ exit(EXITERR_SYS);
}
/* read in commands. this is similar to dsi_receive except
len = dsi_stream_read(dsi, block, 2);
if (!len ) {
/* connection already closed, don't log it (normal OSX 10.3 behaviour) */
- exit(1);
+ exit(EXITERR_CLNT);
}
if (len < 2 || (block[0] > DSIFL_MAX) || (block[1] > DSIFUNC_MAX)) {
LOG(log_error, logtype_default, "dsi_tcp_open: invalid header");
- exit(1);
+ exit(EXITERR_CLNT);
}
/* read in the rest of the header */
stored += len;
else {
LOG(log_error, logtype_default, "dsi_tcp_open: stream_read: %s", strerror(errno));
- exit(1);
+ exit(EXITERR_CLNT);
}
}
stored += len;
else {
LOG(log_error, logtype_default, "dsi_tcp_open: stream_read: %s", strerror(errno));
- exit(1);
+ exit(EXITERR_CLNT);
}
}
uc = c[0];
} else if ((c[0] & 0xf0) == 0xe0) {
if (*inbytesleft < 3) {
- LOG(log_debug, logtype_default, "short utf8 char\n");
+ LOG(log_debug, logtype_default, "short utf8 char");
goto badseq;
}
uc = ((ucs2_t) (c[0] & 0x0f) << 12) | ((ucs2_t) (c[1] ^ 0x80) << 6) | (ucs2_t) (c[2] ^ 0x80);
len = 3;
} else if ((c[0] & 0xe0) == 0xc0) {
if (*inbytesleft < 2) {
- LOG(log_debug, logtype_default, "short utf8 char\n");
+ LOG(log_debug, logtype_default, "short utf8 char");
goto badseq;
}
uc = ((ucs2_t) (c[0] & 0x1f) << 6) | (ucs2_t) (c[1] ^ 0x80);
if ( uc >= 0x800 ) {
if (*outbytesleft < 3) {
- LOG(log_debug, logtype_default, "short utf8 write\n");
+ LOG(log_debug, logtype_default, "short utf8 write");
goto toobig;
}
c[2] = 0x80 | (uc & 0x3f);
len = 3;
} else if (uc >= 0x80) {
if (*outbytesleft < 2) {
- LOG(log_debug, logtype_default, "short utf8 write\n");
+ LOG(log_debug, logtype_default, "short utf8 write");
goto toobig;
}
c[1] = 0x80 | (uc&0x3f);
}
#endif /* DISABLE_LOGGER */
+/* ----------------------
+ * chainsawed from ethereal
+*/
+#ifdef isprint
+#undef isprint
+#endif
+#define isprint(c) ((c) >= 0x20 && (c) < 0x7f)
+
+static char *format_text(char *fmtbuf, const char *string)
+{
+ int column;
+ const char *stringend = string + strlen(string);
+ char c;
+ int i;
+
+ column = 0;
+ while (string < stringend) {
+ c = *string++;
+
+ if (isprint(c)) {
+ fmtbuf[column] = c;
+ column++;
+ } else {
+ fmtbuf[column] = '\\';
+ column++;
+ switch (c) {
+ case '\\':
+ fmtbuf[column] = '\\';
+ column++;
+ break;
+ case '\a':
+ fmtbuf[column] = 'a';
+ column++;
+ break;
+ case '\b':
+ fmtbuf[column] = 'b';
+ column++;
+ break;
+ case '\f':
+ fmtbuf[column] = 'f';
+ column++;
+ break;
+ case '\n':
+ fmtbuf[column] = 'n';
+ column++;
+ break;
+ case '\r':
+ fmtbuf[column] = 'r';
+ column++;
+ break;
+ case '\t':
+ fmtbuf[column] = 't';
+ column++;
+ break;
+ case '\v':
+ fmtbuf[column] = 'v';
+ column++;
+ break;
+ default:
+ i = (c>>6)&03;
+ fmtbuf[column] = i + '0';
+ column++;
+ i = (c>>3)&07;
+ fmtbuf[column] = i + '0';
+ column++;
+ i = (c>>0)&07;
+ fmtbuf[column] = i + '0';
+ column++;
+ break;
+ }
+ }
+ }
+ fmtbuf[column] = '\0';
+ return fmtbuf;
+}
/* -------------------------------------------------------------------------
MakeLog has 1 main flaws:
The message in its entirity, must fit into the tempbuffer.
char *message, ...)
{
va_list args;
- char log_buffer[MAXLOGSIZE];
+ char temp_buffer[MAXLOGSIZE];
+ char log_buffer[4*MAXLOGSIZE];
/* fn is not reentrant but is used in signal handler
* with LOGGER it's a little late source name and line number
* are already changed.
/* Initialise the Messages */
va_start(args, message);
- vsnprintf(log_buffer, sizeof(log_buffer), message, args);
+ vsnprintf(temp_buffer, sizeof(temp_buffer), message, args);
/* Finished with args for now */
va_end(args);
+ format_text(log_buffer, temp_buffer);
#ifdef DISABLE_LOGGER
syslog(get_syslog_equivalent(loglevel), "%s", log_buffer);