diff options
Diffstat (limited to 'usr/src/lib/libbc/libc/sys/common/send.c')
-rw-r--r-- | usr/src/lib/libbc/libc/sys/common/send.c | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/usr/src/lib/libbc/libc/sys/common/send.c b/usr/src/lib/libbc/libc/sys/common/send.c deleted file mode 100644 index 371935f87a..0000000000 --- a/usr/src/lib/libbc/libc/sys/common/send.c +++ /dev/null @@ -1,166 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 1990-1997 by Sun Microsystems, Inc. - * All rights reserved. - */ - -#ident "%Z%%M% %I% %E% SMI" - -#include <sys/types.h> -#include <sys/socket.h> -#include <sys/errno.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <sys/syslog.h> -#include <sys/strlog.h> -#include <sys/stropts.h> -#include <stdio.h> - -extern int errno; - -#define N_AGAIN 11 - -int -send(s, msg, len, flags) - int s; - char *msg; - int len, flags; -{ - int a; - if ((a = _send(s, msg, len, flags)) == -1) { - if (errno == N_AGAIN) - errno = EWOULDBLOCK; - else - maperror(); - } - return (a); -} - - -/* Added to convert socket "/dev/log" to stream "/dev/conslog" */ -#define logname "/dev/conslog" -#define MAXLINE 1024 -#define SVR4_ENOTSOCK 95 /* Socket operation on non-socket */ - - -int -sendto(s, msg, len, flags, to, tolen) - int s; - char *msg; - int len, flags; - struct sockaddr *to; - int tolen; -{ - int a; - static int LogDev = -1; - /* check for logfile */ - - if ((a = _sendto(s, msg, len, flags, to, tolen)) == -1) { - if (errno == SVR4_ENOTSOCK && - strcmp(to->sa_data, "/dev/log") == 0) { - char *msg_p; - struct log_ctl hdr; - struct strbuf dat; - struct strbuf ctl; - struct stat sbuf; - if (LogDev == -1) { - int tfd; - /* close socket /dev/log */ - close(s); - /* open stream /dev/conslog */ - tfd = open(logname, O_WRONLY); - if (tfd == -1) - return (-1); - /* insure stream has same fd as closed socket */ - if (tfd != s) { - if (dup2(tfd, s) < 0) { - close(tfd); - return (-1); - } - close(tfd); - } - if (fcntl(s, F_SETFD, FD_CLOEXEC) == -1) - return (-1); - if (fstat(s, &sbuf) != -1) - LogDev = sbuf.st_rdev; - - } else if (fstat(s, &sbuf) == -1 || - LogDev != sbuf.st_rdev) - return (-1); - - /* build the header */ - - /* parse <pri> from msg */ - - hdr.mid = 1; /* 0 for kernal */ - /* sid, ltime, ttime, seq_no not used */ - - hdr.pri = strtol(msg + 1, &msg_p, 10); - if (msg + 1 == msg_p) { - hdr.pri = (LOG_USER|LOG_INFO); - } else { - len -= msg_p - msg; - msg = msg_p + 1; - } - hdr.flags = SL_CONSOLE; - hdr.level = 0; - - ctl.maxlen = sizeof (struct log_ctl); - ctl.len = sizeof (struct log_ctl); - ctl.buf = (caddr_t)&hdr; - dat.maxlen = MAXLINE; - dat.len = len; - if (dat.len > MAXLINE) { - dat.len = MAXLINE; - msg[MAXLINE - 1] = '\0'; - } - dat.buf = msg; - - /* output the message to the local logger */ - if (_putmsg(s, &ctl, &dat, 0) == 0) - return (0); - } - if (errno == N_AGAIN) - errno = EWOULDBLOCK; - else - maperror(); - } - return (a); -} - - -int -sendmsg(s, msg, flags) - int s; - struct msghdr *msg; - int flags; -{ - int a; - if ((a = _sendmsg(s, msg, flags)) == -1) { - if (errno == N_AGAIN) - errno = EWOULDBLOCK; - else - maperror(); - } - return (a); -} |