⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_ptx.c

📁 mgcp协议源代码。支持多种编码:g711
💻 C
字号:
/* * Program:	Operating-system dependent routines -- PTX version * * Author:	Mark Crispin *		Networks and Distributed Computing *		Computing & Communications *		University of Washington *		Administration Building, AG-44 *		Seattle, WA  98195 *		Internet: MRC@CAC.Washington.EDU * * Date:	11 May 1989 * Last Edited:	2 April 1998 * * Copyright 1998 by the University of Washington * *  Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, provided * that the above copyright notice appears in all copies and that both the * above copyright notice and this permission notice appear in supporting * documentation, and that the name of the University of Washington not be * used in advertising or publicity pertaining to distribution of the software * without specific, written prior permission.  This software is made * available "as is", and * THE UNIVERSITY OF WASHINGTON DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, * WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT LIMITATION ALL IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND IN * NO EVENT SHALL THE UNIVERSITY OF WASHINGTON BE LIABLE FOR ANY SPECIAL, * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, TORT * (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF OR IN CONNECTION * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * */#include "tcp_unix.h"		/* must be before osdep includes tcp.h */#include "mail.h"#include "osdep.h"#include <ctype.h>#include <stdio.h>#include <sys/stat.h>#include <sys/time.h>#include <sys/tiuser.h>#include <sys/stropts.h>#include <sys/socket.h>#include <sys/poll.h>#include <netinet/in.h>#include <arpa/inet.h>#include <netdb.h>#include <errno.h>#include <pwd.h>#include <shadow.h>#include <sys/select.h>#include "misc.h"extern int sys_nerr;extern char *sys_errlist[];#define DIR_SIZE(d) d->d_reclen#define toint(c)	((c)-'0')#define isodigit(c)	(((unsigned)(c)>=060)&((unsigned)(c)<=067))#include "fs_unix.c"#include "ftl_unix.c"#include "nl_unix.c"#define env_init ENV_INIT#include "env_unix.c"#undef env_init#define getpeername Getpeername#define fork vfork#include "tcp_unix.c"#include "gr_waitp.c"#undef flock#include "flock.c"#include "scandir.c"#include "tz_sv4.c"#include "utime.c"/* Jacket around env_init() to work around PTX inetd braindamage */static char may_need_server_init = T;long env_init (char *user,char *home){  if (may_need_server_init) {	/* maybe need to do server init cruft? */    may_need_server_init = NIL;	/* not any more we don't */    if (!getuid ()) {		/* if root, we're most likely a server */      t_sync (0);		/* PTX inetd is stupid, stupid, stupid */      ioctl (0,I_PUSH,"tirdwr");/*  it needs this cruft, else servers won't */      dup2 (0,1);		/*  work.  How obnoxious!!! */    }  }  ENV_INIT (user,home);		/* call the real routine */}/* Emulator for BSD gethostid() call * Returns: unique identifier for this machine */long gethostid (void){  struct sockaddr_in sin;  int inet = t_open (TLI_TCP, O_RDWR, 0);  if (inet < 0) return 0;  getmyinaddr (inet,&sin,sizeof (sin));  close (inet);  return sin.sin_addr.s_addr;}/* Replaced version of getpeername() that jackets into getpeerinaddr() * Accepts: file descriptor *	    pointer to Internet socket addr *	    length * Returns: zero if success, data in socket addr */int Getpeername (int s,struct sockaddr *name,int *namelen){  return getpeerinaddr (s,(struct sockaddr_in *) name,*namelen);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -