summaryrefslogtreecommitdiff
path: root/usr/src/lib/libbc/libc/sys/common/send.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libbc/libc/sys/common/send.c')
-rw-r--r--usr/src/lib/libbc/libc/sys/common/send.c166
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);
-}