switch (pid = dsi->proto_open(dsi)) {
case -1:
/* if we fail, just return. it might work later */
- LOG(log_error, logtype_default, "dsi_getsess: %s", strerror(errno));
+ LOG(log_error, logtype_dsi, "dsi_getsess: %s", strerror(errno));
return dsi;
case 0: /* child. mostly handled below. */
/* using SIGQUIT is hokey, but the child might not have
* re-established its signal handler for SIGTERM yet. */
if (server_child_add(children, CHILD_DSIFORK, pid) < 0) {
- LOG(log_error, logtype_default, "dsi_getsess: %s", strerror(errno));
+ LOG(log_error, logtype_dsi, "dsi_getsess: %s", strerror(errno));
dsi->header.dsi_flags = DSIFL_REPLY;
dsi->header.dsi_code = DSIERR_SERVBUSY;
dsi_send(dsi);
* actual count. */
if ((children->count >= children->nsessions) &&
(dsi->header.dsi_command == DSIFUNC_OPEN)) {
- LOG(log_info, logtype_default, "dsi_getsess: too many connections");
+ LOG(log_info, logtype_dsi, "dsi_getsess: too many connections");
dsi->header.dsi_flags = DSIFL_REPLY;
dsi->header.dsi_code = DSIERR_TOOMANY;
dsi_send(dsi);
break;
default: /* just close */
- LOG(log_info, logtype_default, "DSIUnknown %d", dsi->header.dsi_command);
+ LOG(log_info, logtype_dsi, "DSIUnknown %d", dsi->header.dsi_command);
dsi->proto_close(dsi);
exit(EXITERR_CLNT);
}
/* non blocking mode */
if (setnonblock(dsi->socket, 1) < 0) {
/* can't do it! exit without error it will sleep to death below */
- LOG(log_error, logtype_default, "dsi_buffer: ioctl non blocking mode %s", strerror(errno));
+ LOG(log_error, logtype_dsi, "dsi_buffer: ioctl non blocking mode %s", strerror(errno));
return 0;
}
}
if (setnonblock(dsi->socket, 0) < 0) {
/* can't do it! afpd will fail very quickly */
- LOG(log_error, logtype_default, "dsi_buffer: ioctl blocking mode %s", strerror(errno));
+ LOG(log_error, logtype_dsi, "dsi_buffer: ioctl blocking mode %s", strerror(errno));
return -1;
}
return 0;
dsi->in_write++;
written = 0;
while (written < length) {
- if ((-1 == (len = send(dsi->socket, (u_int8_t *) data + written,
- length - written, flags)) && errno == EINTR) ||
- !len)
- continue;
+ len = send(dsi->socket, (u_int8_t *) data + written, length - written, flags);
+ if ((len == 0) || (len == -1 && errno == EINTR))
+ continue;
if (len < 0) {
if (errno == EAGAIN || errno == EWOULDBLOCK) {
if (mode == DSI_NOWAIT && written == 0) {
- /* DSI_NOWAIT is used by attention
- give up in this case.
- */
+ /* DSI_NOWAIT is used by attention give up in this case. */
return -1;
}
if (dsi_buffer(dsi)) {
}
continue;
}
- LOG(log_error, logtype_default, "dsi_stream_write: %s", strerror(errno));
+ LOG(log_error, logtype_dsi, "dsi_stream_write: %s", strerror(errno));
break;
}
else {
}
continue;
}
- LOG(log_error, logtype_default, "dsi_stream_write: %s", strerror(errno));
+ LOG(log_error, logtype_dsi, "dsi_stream_write: %s", strerror(errno));
break;
}
else if (!len) {
else { /* eof or error */
/* don't log EOF error if it's just after connect (OSX 10.3 probe) */
if (len || stored || dsi->read_count) {
- LOG(log_error, logtype_default, "dsi_stream_read(%d): %s", len, (len < 0)?strerror(errno):"unexpected EOF");
+ LOG(log_error, logtype_dsi, "dsi_stream_read(%d): %s", len, (len < 0)?strerror(errno):"unexpected EOF");
}
break;
}
continue;
}
}
- LOG(log_error, logtype_default, "dsi_stream_send: %s", strerror(errno));
+ LOG(log_error, logtype_dsi, "dsi_stream_send: %s", strerror(errno));
unblock_sig(dsi);
return 0;
}
but we get a server disconnect without reason in the log
*/
if (!block[1]) {
- LOG(log_error, logtype_default, "dsi_stream_receive: invalid packet, fatal");
+ LOG(log_error, logtype_dsi, "dsi_stream_receive: invalid packet, fatal");
return 0;
}
* we have to test for EINTR
*/
if (setsockopt(dsi->socket, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv)) < 0) {
- LOG(log_error, logtype_default, "dsi_tcp_open: unable to set timeout %s", strerror(errno));
+ LOG(log_error, logtype_dsi, "dsi_tcp_open: unable to set timeout %s", strerror(errno));
exit(EXITERR_CLNT);
}
}
/* alarm handler for tcp_open */
static void timeout_handler(int sig _U_)
{
- LOG(log_error, logtype_default, "dsi_tcp_open: connection timed out");
+ LOG(log_error, logtype_dsi, "dsi_tcp_open: connection timed out");
exit(EXITERR_CLNT);
}
request_init(&req, RQ_DAEMON, dsi->program, RQ_FILE, dsi->socket, NULL);
fromhost(&req);
if (!hosts_access(&req)) {
- LOG(deny_severity, logtype_default, "refused connect from %s", eval_client(&req));
+ LOG(deny_severity, logtype_dsi, "refused connect from %s", eval_client(&req));
close(dsi->socket);
errno = ECONNREFUSED;
dsi->socket = -1;
if ((sigaction(SIGALRM, &newact, &oldact) < 0) ||
(setitimer(ITIMER_REAL, &timer, NULL) < 0)) {
- LOG(log_error, logtype_default, "dsi_tcp_open: %s", strerror(errno));
+ LOG(log_error, logtype_dsi, "dsi_tcp_open: %s", strerror(errno));
exit(EXITERR_SYS);
}
#endif
exit(EXITERR_CLNT);
}
if (len < 2 || (block[0] > DSIFL_MAX) || (block[1] > DSIFUNC_MAX)) {
- LOG(log_error, logtype_default, "dsi_tcp_open: invalid header");
+ LOG(log_error, logtype_dsi, "dsi_tcp_open: invalid header");
exit(EXITERR_CLNT);
}
if (len > 0)
stored += len;
else {
- LOG(log_error, logtype_default, "dsi_tcp_open: stream_read: %s", strerror(errno));
+ LOG(log_error, logtype_dsi, "dsi_tcp_open: stream_read: %s", strerror(errno));
exit(EXITERR_CLNT);
}
}
if (len > 0)
stored += len;
else {
- LOG(log_error, logtype_default, "dsi_tcp_open: stream_read: %s", strerror(errno));
+ LOG(log_error, logtype_dsi, "dsi_tcp_open: stream_read: %s", strerror(errno));
exit(EXITERR_CLNT);
}
}
dsi_tcp_timeout(dsi);
- LOG(log_info, logtype_default, "AFP/TCP session from %s:%u",
+ LOG(log_info, logtype_dsi, "AFP/TCP session from %s:%u",
getip_string((struct sockaddr *)&dsi->client),
getip_port((struct sockaddr *)&dsi->client));
}
sa->sin_port = htons(548);
sa->sin_addr = ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr;
- LOG(log_info, logtype_default, "dsi_tcp: '%s' on interface '%s' will be used instead.",
+ LOG(log_info, logtype_dsi, "dsi_tcp: '%s' on interface '%s' will be used instead.",
getip_string((struct sockaddr *)&dsi->server), ifr.ifr_name);
goto iflist_done;
}
- LOG(log_info, logtype_default, "dsi_tcp (Chooser will not select afp/tcp) "
+ LOG(log_info, logtype_dsi, "dsi_tcp (Chooser will not select afp/tcp) "
"Check to make sure %s is in /etc/hosts and the correct domain is in "
"/etc/resolv.conf: %s", hostname, strerror(errno));
hints.ai_flags |= AI_NUMERICHOST;
if ((ret = getaddrinfo(address ? address : NULL, port ? port : "548", &hints, &servinfo)) != 0) {
- LOG(log_error, logtype_default, "dsi_tcp_init: getaddrinfo: %s\n", gai_strerror(ret));
+ LOG(log_error, logtype_dsi, "dsi_tcp_init: getaddrinfo: %s\n", gai_strerror(ret));
return 0;
}
/* loop through all the results and bind to the first we can */
for (p = servinfo; p != NULL; p = p->ai_next) {
if ((dsi->serversock = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == -1) {
- LOG(log_info, logtype_default, "dsi_tcp_init: socket: %s", strerror(errno));
+ LOG(log_info, logtype_dsi, "dsi_tcp_init: socket: %s", strerror(errno));
continue;
}
if (bind(dsi->serversock, p->ai_addr, p->ai_addrlen) == -1) {
close(dsi->serversock);
- LOG(log_info, logtype_default, "dsi_tcp_init: bind: %s\n", strerror(errno));
+ LOG(log_info, logtype_dsi, "dsi_tcp_init: bind: %s\n", strerror(errno));
continue;
}
if (listen(dsi->serversock, DSI_TCPMAXPEND) < 0) {
close(dsi->serversock);
- LOG(log_info, logtype_default, "dsi_tcp_init: listen: %s\n", strerror(errno));
+ LOG(log_info, logtype_dsi, "dsi_tcp_init: listen: %s\n", strerror(errno));
continue;
}
}
if (p == NULL) {
- LOG(log_error, logtype_default, "dsi_tcp_init: no suitable network config for TCP socket");
+ LOG(log_error, logtype_dsi, "dsi_tcp_init: no suitable network config for TCP socket");
freeaddrinfo(servinfo);
return 0;
}
hints.ai_socktype = SOCK_STREAM;
if ((ret = getaddrinfo(hostname, port ? port : "548", &hints, &servinfo)) != 0) {
- LOG(log_info, logtype_default, "dsi_tcp_init: getaddrinfo '%s': %s\n", hostname, gai_strerror(ret));
+ LOG(log_info, logtype_dsi, "dsi_tcp_init: getaddrinfo '%s': %s\n", hostname, gai_strerror(ret));
goto interfaces;
}
freeaddrinfo(servinfo);
return 1;
}
- LOG(log_info, logtype_default, "dsi_tcp: hostname '%s' resolves to loopback address", hostname);
+ LOG(log_info, logtype_dsi, "dsi_tcp: hostname '%s' resolves to loopback address", hostname);
freeaddrinfo(servinfo);
interfaces:
/* these are the string identifiers corresponding to each logtype */
#define LOGTYPE_STRING_IDENTIFIERS { \
"Default", \
- "Core", \
"Logger", \
"CNID", \
"AFPDaemon", \
+ "DSI", \
"ATalkDaemon", \
"PAPDaemon", \
- "UAMSDaemon", \
- "Console", \
+ "UAMS", \
"end_of_list_marker"} \
/* =========================================================================
UAM_MODULE_EXPORT logtype_conf_t type_configs[logtype_end_of_list_marker] = {
DEFAULT_LOG_CONFIG, /* logtype_default */
- DEFAULT_LOG_CONFIG, /* logtype_core */
DEFAULT_LOG_CONFIG, /* logtype_logger */
DEFAULT_LOG_CONFIG, /* logtype_cnid */
DEFAULT_LOG_CONFIG, /* logtype_afpd */
+ DEFAULT_LOG_CONFIG, /* logtype_dsi */
DEFAULT_LOG_CONFIG, /* logtype_atalkd */
DEFAULT_LOG_CONFIG, /* logtype_papd */
- DEFAULT_LOG_CONFIG, /* logtype_uams */
- DEFAULT_LOG_CONFIG /* logtype_console */
+ DEFAULT_LOG_CONFIG /* logtype_uams */
};
/* These are used by the LOG macro to store __FILE__ and __LINE__ */
}
}
- /* Check if logging to a console */
- if (logtype == logtype_console) {
- log_config.console = 1;
- logtype = logtype_default;
- }
-
/* Set new values */
type_configs[logtype].level = loglevel;