亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? deslogingw.c

?? 一個使用des加密傳輸的unix下的login程序的服務器端和客戶端
?? C
字號:
/* * @(#) deslogingw.c  RCS: $Revision: 1.5 $ $Date: 95/03/02 12:54:10 $ * * Gateway for deslogin to deslogind * * Actually, this program is much more general.  Any remote user who knows * the correct gateway passphrase may use this gateway to connect to any * port number on any machine.  The authentication is secure, but the  * data flowing through the connection made by this program is not changed * in any way.  It is up to the remote clients to perform any additional * authentication or channel encryption (as deslogin/deslogind do). * * Copyright 1994 David A Barrett. */#define _POSIX_SOURCE#include <unistd.h>	/* close getlogin */#include <stdlib.h>	/* atexit exit */#include <stdio.h>#include <string.h>#include <errno.h>#include <signal.h>#include <sys/types.h>	/* for fcntl.h */#include <fcntl.h>#include <termios.h>#include <sys/time.h>	/* time asctime */#include <sys/wait.h>	/* WNOHANG */#include "posignal.h"#include "log.h"#include "tty.h"#include "auth.h"#include "txfr.h"#include "socket.h"#include "deslogin.h"#include "log.h"#define MAX_HOSTNAME	255#if !defined(GW_LOG_FILE)#define GW_LOG_FILE	"/usr/adm/deslogingw.log"#endifextern int  optind;extern char *optarg;#if defined(__STDC__) || defined(__cplusplus)extern int askTty(char *, char *, unsigned, int);#elseextern int askTty();#endifstatic char ident[] = " @(#) deslogingw.c version 1.01 09-Apr-94 Copyright 1994 by Dave Barrett(barrett@asgard.cs.Colorado.EDU)\n";char mainProgName[255];char *progName, *argcName;int  debug = 0;int  verbose = 0;unsigned long inBytes = 0;		/* for txfr */unsigned long outBytes = 0;void setProgName() {   pid_t pid = getpid();				/* can't fail */   sprintf(mainProgName, "%s[%lu]", argcName, (unsigned long) pid);   progName = mainProgName;}void sigHandler(sig)   int sig;{   switch (sig) {   case SIGHUP:   case SIGTERM:   case SIGINT:      log("%s: Terminated by signal %d\n", progName, sig);      exit(1);			/* make sure cleanup occurs on interrupt */      break;   case SIGCHLD: 			/* child died */      if (debug) {	 log("%s(main): SIGCHLD\n", progName);      }      break;   default:      break;   }}int main(argc, argv)   int argc;   char *argv[];{   int ch, count, res, chldStat;   unsigned bufSize = 127;   char *chp, *logName = GW_LOG_FILE;   int sfd, dfd;   unsigned rport, dport = DESLOGIN_PORT, sport = DESLOGIN_GW_PORT;   char passPhrase[PHRASE_SIZE], *tp = (char *) 0;   char rhostName[MAX_HOSTNAME], hostName[MAX_HOSTNAME], aport[16];   char protover[VERS_SIZE];   unsigned loginTimeout = 1000 * (LOGIN_TIMEOUT + 1);	/* login timer */   pid_t pid;   keyType key;   argcName = *argv;   if ((chp = strrchr(argcName, '/')) != (char *) 0) argcName = chp + 1;   progName = argcName;   while ((ch = getopt(argc, argv, "dvp:h:l:")) != EOF) switch (ch) {   case 'h':      tp = optarg;      break;   case 'p':      count = sscanf(optarg, "%d", &sport);      if (count != 1) goto usage;      break;   case 'v':      verbose++;      break;   case 'd':      debug++;      break;   case 'l':      logName = optarg;      break;   default:usage:      fprintf(stderr, 	 "usage: %s [-dv] [-p serverport ] [-l logFile ]\n", 	 progName);      exit(1);   }   argc -= optind;   argv += optind;   res = askTty("Gateway Pass phrase: ", passPhrase, PHRASE_SIZE-1, 0);   if (res < 0) {      fprintf(stderr, "%s: couldn't get pass phrase\n", progName);      exit(1);   }   res = openLog(logName);   if (res < 0) {      fprintf(stderr, "%s: couldn't open logfile \"%s\"\n", progName, logName);      exit(1);   }   if (!debug) {       /* Disassociate ourselves with any controlling terminal or session */      close(0);      close(1);      close(2);      pid = fork();      if (pid < 0) {	 log("%s: unable to fork as daemon--%s\n", 	    progName, ERRMSG);	 exit(1);      }      if (pid > 0) {		/* the parent is finished */	 exit(0);      }      pid = setsid();	/* break control terminal affiliation */      if (pid == -1) {	 log("%s: setsid failed--%s\n", progName, ERRMSG);	 exit(1);      }   }   setProgName();   log("%s: Starting pid %d as daemon\n", progName, getpid());   /*    * To make sure we cleanup utmp with atexit if we're aborted    */   chp = (char *) posignal(SIGINT, sigHandler);   if (chp == (char *) SIG_ERR) {      log("%s: sigaction SIGINT failed--%s\n", progName, ERRMSG);      return 1;   }   chp = (char *) posignal(SIGTERM, sigHandler);    if (chp == (char *) SIG_ERR) {      log("%s: sigaction SIGTERM failed--%s\n", progName, ERRMSG);      return 1;   }   chp = (char *) posignal(SIGHUP, sigHandler);    if (chp == (char *) SIG_ERR) {      log("%s: sigaction SIGHUP failed--%s\n", progName, ERRMSG);      return 1;   }   sfd = openServer(sport, rhostName, sizeof rhostName, &rport, !debug);   if (sfd < 0) {      log("%s: open network port %d failed--%s\n", 	 progName, sport, ERRMSG);      return 1;   }   if (verbose) {      log("%s: connect from %s:%u\n", progName, rhostName, rport);   }   key = challenge(sfd, passPhrase, loginTimeout);   if (key == (keyType) 0) {      log("%s: BADLOGIN %s:%u\n", progName, rhostName, rport);      exit(1);   }   memset(passPhrase, '\0', PHRASE_SIZE);   destroyKey(&key);   res = write(sfd, PROTOCOL_VERS, strlen(PROTOCOL_VERS)+1);   if (res < 0) {      log("%s: write (protover) failed--%s\n", 	  progName, ERRMSG);      exit(1);   }   count = getString(sfd, protover, (sizeof protover) - 1, SETUP_TIMEOUT);   if (count == 0) {      log("%s: NOVERSION  %s:%d\n", progName, rhostName, rport);      exit(1);   }   if (protover[0] != PROTOCOL_VERS[0]) {      log("%s: BADPROTO(%s) %s:%d\n",         progName, protover, rhostName, rport);      exit(1);   }   count = getString(sfd, hostName, (sizeof hostName) - 1, SETUP_TIMEOUT);   if (count <= 0) {      log("%s: NOHOST   %s:%d\n", progName, rhostName, rport);      return 1;   }   if (verbose) {      log("%s: requested host:\"%s\"\n", progName, hostName);   }   count = getString(sfd, aport, (sizeof aport) - 1, SETUP_TIMEOUT);   if (count <= 0) {      log("%s: NOPORT   %s:%u\n", progName, rhostName, rport);      return 1;   }   if (verbose) {      log("%s: requested port:\"%s\"\n", progName, aport);   }   count = sscanf(aport, "%u", &dport);   if (count != 1) {      log("%s: BADPORT  \"%s\" %s:%u \"%s\"\n", 	 progName, aport, rhostName, rport);      return 1;   }   if (verbose) {      log("%s: openClient %s:%d\n", progName, hostName, dport);   }   dfd = openClient(hostName, dport);   if (dfd < 0) {      log("%s: NOCLIENT %s:%u -> %s:%u\n", progName,	 rhostName, rport, hostName, dport);      return 1;   }   log("%s: LOGIN  %s:%u -> %s:%u\n", progName,      rhostName, rport, hostName, dport);   res = txfr(dfd, sfd, sfd, bufSize, 0, (keyType) 0);   log("%s: LOGOUT %s:%u -> %s:%u\n", progName,      rhostName, rport, hostName, dport);   /*    * Reap all terminated children so we don't leave zombie processes    * and make sure our child CPU times are updated.  Waitpid returns    * -1 when all children have been reaped, and 0 if still have     * unterminated children.    */   do {      pid = waitpid(-1, &chldStat, WNOHANG);      if (debug) {	 log("%s: waitpid returned %d\n", progName, pid);      }   } while (pid > 0);   return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美综合在线视频| 亚洲午夜精品17c| 精品国产成人系列| 欧美肥妇bbw| av中文字幕在线不卡| 成人伦理片在线| 国产精品99久久久久久宅男| 亚洲免费视频中文字幕| 亚洲乱码国产乱码精品精可以看 | 欧美精品免费视频| 欧美日韩精品福利| 日韩精品中文字幕一区 | 久久精品欧美日韩精品| 欧美日韩精品免费| 欧美一区二区三区男人的天堂| 欧美成人精精品一区二区频| 久久久91精品国产一区二区三区| 国产精品欧美久久久久无广告| 国产午夜亚洲精品羞羞网站| 亚洲素人一区二区| 亚洲男同性视频| 精品一区二区久久久| 成人激情综合网站| 日韩一区二区免费视频| 亚洲三级久久久| 国内精品第一页| 欧美日韩午夜影院| 一区在线观看视频| 蜜臀91精品一区二区三区| av网站一区二区三区| 欧美剧情片在线观看| 亚洲天堂2016| 成人sese在线| 国产亚洲欧美中文| 久久66热re国产| 欧美一区二区三区四区在线观看| 综合在线观看色| 国产一区二区在线看| 这里只有精品电影| 午夜日韩在线电影| 欧美视频一区二区在线观看| 成人欧美一区二区三区在线播放| 国产精品一二三区| 日韩午夜中文字幕| 久久成人18免费观看| 欧美一区二区三区在线看| 日韩黄色一级片| 日韩一区二区三区av| 美日韩一级片在线观看| 精品福利在线导航| 狠狠色狠狠色综合系列| 26uuu成人网一区二区三区| 老司机精品视频线观看86| 久久在线观看免费| 国产精品一区二区黑丝| 一区二区三区中文免费| 欧美日韩一级片网站| 日韩在线观看一区二区| 精品久久久久久亚洲综合网 | 一区二区三区欧美视频| 在线成人午夜影院| 奇米一区二区三区av| 国产精品伦一区| 国产乱色国产精品免费视频| 亚洲人成精品久久久久| 日韩一区二区三区观看| av资源网一区| 日韩综合在线视频| 亚洲欧美一区二区在线观看| 一本一道久久a久久精品| 五月天一区二区三区| 精品国产一区二区三区av性色| 95精品视频在线| 免费成人小视频| 亚洲自拍欧美精品| 精品久久久久一区二区国产| 欧美日韩dvd在线观看| 国产高清不卡一区| 五月天一区二区三区| 综合久久综合久久| 久久久久久久久久久久久久久99 | 蜜臀av一区二区三区| 亚洲成人你懂的| 夜夜揉揉日日人人青青一国产精品| 亚洲美女电影在线| 日韩在线播放一区二区| 亚洲狠狠爱一区二区三区| 日本女优在线视频一区二区| 久久丁香综合五月国产三级网站| 无吗不卡中文字幕| 蜜臀久久99精品久久久画质超高清 | 成人福利在线看| 国产成人精品免费| 九色|91porny| 免费看日韩精品| 免费人成在线不卡| 婷婷丁香激情综合| 婷婷综合另类小说色区| 午夜婷婷国产麻豆精品| 精品国产99国产精品| 日韩精品在线看片z| 欧美精品成人一区二区三区四区| 91国模大尺度私拍在线视频| 99re在线精品| 色菇凉天天综合网| 北条麻妃一区二区三区| www.亚洲人| 91视视频在线直接观看在线看网页在线看 | 日韩一区二区麻豆国产| 欧美不卡在线视频| 本田岬高潮一区二区三区| 成人午夜电影小说| 欧美日韩亚洲综合一区二区三区 | 色综合天天综合网天天狠天天| 在线免费不卡电影| 7777精品伊人久久久大香线蕉超级流畅| 欧美亚洲国产一卡| 91麻豆精品国产自产在线观看一区| 在线播放91灌醉迷j高跟美女| 欧美一激情一区二区三区| 国产午夜精品理论片a级大结局| 亚洲欧洲av在线| 免费三级欧美电影| 国产福利精品一区二区| 中文字幕色av一区二区三区| 国产欧美一区二区在线观看| 中文字幕一区二区三区精华液| 亚洲风情在线资源站| 高清shemale亚洲人妖| 日韩欧美国产一区二区在线播放| 亚洲欧美一区二区久久| 国产成人午夜99999| 制服丝袜日韩国产| 一区二区三区四区激情| 国产成人av电影在线| 欧美一区二区三区系列电影| 亚洲一区在线视频| 激情综合网天天干| 91精品久久久久久久91蜜桃 | 免费的成人av| 欧美在线你懂得| 国产精品国产a| 国产福利一区在线| 精品国产91九色蝌蚪| 亚洲成人免费在线观看| 香蕉av福利精品导航| 精品污污网站免费看| 亚洲免费在线观看| 色一情一乱一乱一91av| 国产精品电影院| 亚洲va欧美va国产va天堂影院| 欧美在线免费观看亚洲| 亚洲免费观看高清完整版在线观看熊 | 麻豆久久一区二区| 欧美精品一区二区三区蜜桃视频| 天堂蜜桃一区二区三区| 欧美日韩视频一区二区| 日本一不卡视频| 91麻豆精品国产91久久久久 | 欧美片在线播放| 自拍偷拍欧美激情| 国产在线不卡视频| 国产精品久久久爽爽爽麻豆色哟哟| 久久99精品久久久久久久久久久久 | 色婷婷综合久久久久中文| 一区二区三区在线视频观看| 麻豆精品在线观看| 国产精品久久久久影院亚瑟 | 91精品国产麻豆| 日韩av一级片| 国产精品久久久久久久久免费桃花| 欧美日韩久久不卡| 成年人国产精品| 美日韩黄色大片| 欧美一级日韩免费不卡| 99精品视频在线观看| 久久成人麻豆午夜电影| 一区二区三区久久| 欧美午夜电影在线播放| 日韩va亚洲va欧美va久久| 亚洲情趣在线观看| 久久亚洲精品国产精品紫薇| 欧美高清一级片在线| 欧美另类z0zxhd电影| 国产精品一级在线| 久久丁香综合五月国产三级网站| 亚洲精品欧美在线| 一区二区三区四区视频精品免费 | 欧美色倩网站大全免费| 91免费版在线| 一本大道综合伊人精品热热| 日韩专区欧美专区| 久久er精品视频| 免费人成网站在线观看欧美高清| 夜夜操天天操亚洲| 香蕉影视欧美成人| 日本不卡1234视频| 国产寡妇亲子伦一区二区| 国产成人av在线影院| 夜夜爽夜夜爽精品视频|