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

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

?? slist.c

?? Novell Slist 源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************************

EXHIBIT A

"The contents of this file are subject to the Novell Free Source Agreement 
Version 1.0 (the "Agreement"); you may not use this file except in 
compliance with the Agreement. You may obtain a copy of the Agreement at 
http://developer.novell.com/.

Software distributed under the Agreement is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the Agreement 
for the specific language governing rights and limitations under the 
Agreement.

The Original Code is slist.c, released under the Novell Free Source License 
Agreement 1.0 on 1999.

The Initial Developer of the Original Code is Novell. Portions created 
by Novell are Copyright (C) 1988-90, Novell, Inc. All Rights Reserved.

*****************************************************************************/

#include "mx.h"
#include "SLISTUT.H"
#include "SList.H"

/****************************************************************************/

/*
	Global variables
*/
	int		pause,				/* Should we pause during output?			   */
			doDomain,           /* Domain option to output Domains on internet */
			outputToFile,       /* Is output going to a file?				   */
			linesPerScreen;     /* Number of lines to be printed per screen	   */
	char	targetServer[SERVER_NAME_SIZE];	/* Server name or pattern to match */
	WORD  numberConnInUse; /* Used to check for free conn to get Domain Names  */

	char *VERSION = "VeRsIoN=3.75";
	char *COPYRIGHT = "CoPyRiGhT=(c) Copyright 1988-1993, Novell, Inc.  All rights reserved.";
	char *NNS_MSG = "NaMe SeRvIcE=A NetWare Name Service Utility";

/****************************************************************************/

/*
	Description:	Main routine for SList
	
	Called by:		Other worldly forces
*/

void main(argc, argv)

	int		 argc;				/* Number of command line arguments			*/
	char	*argv[];			/* Command line arguments					*/

{

	int		 numServers,		/* Number of servers found					*/
			 i;					/* Loop counter								*/
	char	 commandLine[256];	/* Command line arguments					*/
	WORD	 ccode,				/* Error code								*/
			 connection;		/* Default connection						*/
	/*
		Assume that we are going to pause after each screen full
	*/
	pause = TRUE;
	
	/*
		If we are not sending output to the screen, don't pause
	*/

	SetScrollParms();
	/*
		Assume they want to list all servers
	*/
	strcpy(targetServer, "*");
			 
	/*
		Put all the arguments into one command line buffer and convert
		it to upper case
	*/
	strcpy(commandLine, "");
	for ( i = 1 ; i < argc ; i++ )
	{
		if (i > 1)
			strcat(commandLine, " ");
		strcat(commandLine, strupr(argv[i]));
	}
	
	/*
		Make sure there are no control characters in the command line
	*/
	for ( i = 0 ; commandLine[i] != '\0' ; i++ )
		if (commandLine[i] < ' ' || commandLine[i] >= '\x7F')
			Error(E_CONTROL_CHARACTERS_FOUND);

	/*
		Try to parse the command line
	*/
	DefineTokenTable(INITIALTOKENCOUNT, MAXTOKENCOUNT);
	SetParseAddress(commandLine);
	if (!Parse())
		DisplayUsageLine();

	/*
		Get a connection number to work with
	*/
	ccode = NWGetDefaultConnectionID(&connection);
	if (ccode)
		Error(E_NO_DEFAULT_CONNECTION, ccode);

	if(doDomain)
	{
		/*		One free connection is necessary to attach to servers to
			  	get Domain Names    */
		NWGetConnectionList (MY_SESSION, (WORD *)NULL, (WORD)NULL, &numberConnInUse);
		if (numberConnInUse > 7)
			Error(E_MAX_CONN_FOR_DOMAIN);
		DisplayDomainNames(connection);
		exit(0);
	}
	
	
	/*
		Read in the server names
	*/
	numServers = ReadServerNames(serverList, connection);

	/*
		Sort the servers by name
	*/
	SortServerNames(serverList, numServers);
	
	/*
		Print out the server names
	*/
	PrintServerNames(serverList, numServers, connection);

	/*
		Now, wasn't that easy?
	*/
	exit(0);

}
/****************************************************************************/
/*
	Description:  Displays all Domain Names found on the internet.
	
	Called by:		Main
*/

void DisplayDomainNames(defaultConnectionID)
WORD defaultConnectionID;
{

long serverID;
LIST *l, *serverPtr, *listPtr;
WORD currConnectionID, ccode, attachCCODE, more;
char serverName[SERVER_NAME_SIZE];
BYTE serverDomain[PROPERTY_NAME_SIZE];
int i,next, numberFound = 0, advanceFlag = TRUE;

	/* Let them know this may take a while */
	fprintf(stderr, GetMessage(READING_DOMAIN_NAMES));
	fprintf(stderr, "\n");
	
	/*	First build server list. */
   InitList();
   serverID = -1L;           /* Set up for scan sequence            */
   for (i = 0; ;i++)
   {
       ccode = NWScanObject(defaultConnectionID, "*", OT_FILE_SERVER, &serverID, 
                   serverName, (WORD far *)NULL, (BYTE far *)NULL, 
                   (BYTE far *)NULL, (BYTE far *)NULL);
       if (ccode != 0)
            break;
       l = AppendToList(serverName, (char *)NULL);
       if (l == NULL)
       {
			Error(E_BUILDING_SERVER_LIST);
       }

   }
	/*	Attach to servers found in server list, check if in given domain. */
	for(serverPtr = GetListHead(); serverPtr != NULL;serverPtr )
	{
		/* print out dots to show that something is still happening */

		advanceFlag = TRUE;	/* ART-this flag is used to determine when to  */
									/* advance in the list, and when not to.		  */

		fprintf(stderr, GetMessage(CHECKING), serverPtr->text);
	 	attachCCODE = NWAttachToFileServer(serverPtr->text, (WORD)0, &currConnectionID);
 		if((attachCCODE == 0) || (attachCCODE == ALREADY_ATTACHED))
		{	  
			/* See if server has DOMAIN_NAME property, if so it's value */
			ccode = NWReadPropertyValue(currConnectionID, serverPtr->text, 
								OT_FILE_SERVER, "DOMAIN_NAME", 1, serverDomain, 
								NULL, NULL);
			if (ccode == 0)
			{
					/* If there is a Domain is on current server             */
					/*	Copy the Domain name into the table for sorting   */
				strcpy(serverList[numberFound].name, serverDomain);
					/*	Increment number of Domains found	*/
				numberFound++;
					/* Remove all servers in that Domain from the master server list */
				more = next = 0;
				while (more != NO_SUCH_SEGMENT) 
				{
					next++;
					more = GetServerName(currConnectionID, DOMAIN_OBJ_TYPE,
										(char *)serverDomain, serverName, next);
					if(more == 0)	/* ART - No need to check the last entry again */
					{
						for(listPtr = GetListHead(); listPtr != NULL; 
																	listPtr = listPtr->next)
						{
							if(!strcmp(listPtr->text, serverName))
							{
								if ( serverPtr == listPtr ) /* if name is at head of list */
								{
									serverPtr = serverPtr->next; /* advance the head now  */
									advanceFlag = FALSE;		/* make sure the head of the list */
								}									/* is not advanced later		*/
								DeleteFromList(listPtr);	/* now you can delete the pointer */
								break;							/* stop  the comparison */
							}
						}
					}
				}
			}	
		}
		if(attachCCODE != ALREADY_ATTACHED)
			NWDetachFromFileServer(currConnectionID);	
		if ( advanceFlag == TRUE )	/* only advance the head pointer if the flag is set */
			serverPtr = serverPtr->next;	
	}
	DestroyList();
	SortServerNames(serverList, numberFound);	
	   /* Remove the Reading Domain Names message from the screen */
	fprintf(stderr, GetMessage(ERASE_LINE));
		/*	If output is being sent to a file, tell user that we are doing so	*/
	if (outputToFile)
		fprintf(stderr, GetMessage(WRITING_TO_FILE));
		/*	Now print out all the Domains	*/
	for ( i = 0 ; i <= numberFound-1 ; i++ )
		Print("%-47.47s\n", serverList[i].name);
	/*	Tell how many Domains were found	*/
	if (numberFound)
		Print(GetMessage(NUMBER_OF_DOMAINS_FOUND), numberFound);
	else
			Print(GetMessage(NO_DOMAINS_FOUND));

	/*	If data was being written to a file, erase the line that
		tells him we are writing to the file
	*/
	if (outputToFile)
		fprintf(stderr, GetMessage(ERASE_LINE));

	exit(0);
}

/* for use in putting out dots */
void CheckDot( void )
{
	static time_t first_time=0;	
	static time_t next_time=0;
	static int dots = 0;

	time(&next_time);
	if (next_time - first_time > 5)
	{
		first_time = next_time;
		fprintf(stderr, ".");	
		dots++;
		if (dots > 50)
			fprintf(stderr, "\n");
	}
}
/****************************************************************************/

/*
	Description:	Gets a server name from SERVERS property of a Domain object.
	
	Called by:		Display Domain Names
*/
WORD GetServerName(WORD connectID, WORD type, char *name,char *server,int next)
{
	BYTE propValue[PROPERTY_NAME_SIZE];
	BYTE moreSeg = 0;
	WORD ccode = 0;												 

	strset(propValue, 0); 
	ccode = NWReadPropertyValue(connectID, name, type, "SERVERS", 
								(BYTE)((next/2)+(next%2)),	propValue, &moreSeg, NULL);
	if (ccode != 0) 
	   return(NO_SUCH_SEGMENT); /* if no more segments, return now */

  	if (next%2)		/* first half */
		memmove(server, propValue, 47);
	else				/* second half */
		memmove(server, &propValue[48], 47);

  	if ((server[0]>32) && (strlen(server) != 0))
			return(0); /* ok */
  	else 
  	{
		server[0] = NULL;
		return(1); /* no name at that position */
	}
} 

		

/****************************************************************************/

/*
	Description:	Read in a list of all the servers and their addresses
	
	Called by:		Main
*/

int ReadServerNames(serverList, connection)

	SERVER	serverList[];		/* List of servers and their addresses		*/
	WORD	connection;			/* Default connection						*/

{

	WORD	ccode1,				/* Return code from ScanObject calls		*/
			ccode2;				/* Return code from ReadProperty calls		*/
	int		numberFound = 0,	/* Number of servers found					*/
			match;				/* Should this server be included?			*/
	long	objectID = -1L;		/* Object number for ScanObject				*/
	char	objectName[OBJECT_NAME_SIZE];		/* Object name from ScanObject				*/
	NETADDRESS	address;			/* Address property read from bindery		*/

	/*
		Let the user know we are doing something
	*/
	fprintf(stderr, GetMessage(READING_SERVER_NAMES));

	/*
		Prime the pump with the first server
	*/
	ccode1 = NWScanObject(connection, "*", OT_FILE_SERVER, &objectID,
						  objectName, NULL, NULL, NULL, NULL);
	while (ccode1 == 0)
	{
		/*
			Does this server meet the qualifications?
		*/
		if (IsWild(targetServer))
			match = WildMatch(targetServer, objectName);
		else
			match = strcmp(targetServer, objectName) == 0;

		if (match)
		{
			/*
				Make sure we haven't exceeded the maximum number of servers
			*/
			if (numberFound >= MAX)
				Error(E_TOO_MANY_SERVERS, MAX);
		
			/*
				Copy the file server name into the table
			*/
			strcpy(serverList[numberFound].name, objectName);

			/*
				Now try to read the network address for the server
			*/		
			ccode2 = NWReadPropertyValue(connection, objectName,
										 OT_FILE_SERVER, "NET_ADDRESS",	1,
										 (BYTE *)&address, NULL, NULL);

			/*
				If network address was read correctly, save it, otherwise
				flag it as being unknown
			*/
			if (ccode2 == 0)
			{
				address.netAddress = NWLongSwap(address.netAddress);
				address.highNode   = NWWordSwap(address.highNode  );
				address.lowNode    = NWLongSwap(address.lowNode   );
				
				if (address.highNode == 0)
					sprintf(serverList[numberFound].addr,
							GetMessage(FORMAT_ONE),	address.netAddress,
							address.lowNode);
				else
					sprintf(serverList[numberFound].addr,
							GetMessage(FORMAT_TWO),	address.netAddress,
							address.highNode, address.lowNode);
			}
			else
				sprintf(serverList[numberFound].addr,
						GetMessage(CANT_READ_ADDRESS));

			/*
				Increment number of servers found
			*/
			numberFound++;
		}
				
		/*
			Try to find another file server
		*/
		ccode1 = NWScanObject(connection, "*", OT_FILE_SERVER, &objectID,
							  objectName, NULL, NULL, NULL, NULL);
	}

	/*
		Make sure we didn't get any bizarre error
	*/
	if (ccode1 != NO_SUCH_OBJECT)
		Error(E_READING_SERVER_NAMES, ccode1);

	return (numberFound);

}

/****************************************************************************/

/*
	Description:	Sort the list of the servers
	
	Called by:		Main
*/

void SortServerNames(serverList, numServers)

	SERVER	serverList[];		/* List of servers and their addresses		*/
	int		numServers;			/* Number of servers found					*/

{

	int		i,					/* Loop variable							*/
			j;					/* Loop variable							*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频国内自拍亚洲视频| 久久综合一区二区| 午夜久久久久久久久久一区二区| 欧美精品粉嫩高潮一区二区| 日韩av一级电影| 色综合视频在线观看| 在线观看免费视频综合| 国产一区二区三区四区五区美女 | 色综合久久久网| 韩国成人福利片在线播放| 国产精品欧美综合在线| 日韩一区二区三区电影| 91在线丨porny丨国产| 韩国毛片一区二区三区| 国产一区二区三区高清播放| 午夜私人影院久久久久| 亚洲黄色免费电影| 一区在线观看视频| 欧美国产日韩精品免费观看| 久久久欧美精品sm网站| 欧美一区二区精品久久911| 日本久久一区二区三区| 91亚洲男人天堂| 色综合色综合色综合色综合色综合 | 色婷婷综合久久久久中文一区二区 | 亚洲成av人片一区二区三区| 亚洲人精品一区| 综合久久久久久| 夜夜嗨av一区二区三区四季av| 日韩久久一区二区| 一区二区三区视频在线看| 亚洲人被黑人高潮完整版| 亚洲视频网在线直播| 亚洲欧美日韩国产一区二区三区| 国产精品天干天干在观线| 国产欧美日韩精品在线| 国产精品九色蝌蚪自拍| 亚洲高清在线视频| 视频精品一区二区| 国产精品一区二区三区乱码| 99这里只有久久精品视频| 99久久精品免费| 制服丝袜亚洲网站| 国产欧美精品区一区二区三区| 日韩一区在线播放| 欧美aaaaa成人免费观看视频| 国产精品18久久久久| 色婷婷久久99综合精品jk白丝| 在线观看91av| 亚洲视频精选在线| 极品少妇一区二区| 欧美亚洲国产一区二区三区va| 欧美一区二区三区思思人| 国产欧美一二三区| 久久精品72免费观看| 91理论电影在线观看| 欧美激情在线免费观看| 亚洲成人在线免费| 91丨九色丨蝌蚪富婆spa| 久久久三级国产网站| 久久精品久久久精品美女| 色悠悠亚洲一区二区| 1区2区3区国产精品| 国产成人精品三级麻豆| 精品国产3级a| 国产精品1区2区| 久久精品夜色噜噜亚洲a∨| 精品无码三级在线观看视频| 精品少妇一区二区三区在线播放| 日韩av电影免费观看高清完整版 | 极品少妇一区二区三区精品视频| 中文字幕亚洲视频| 成人sese在线| 一区二区三区免费网站| 色噜噜狠狠成人中文综合 | 亚洲国产精品一区二区久久 | 亚洲午夜激情av| 日韩片之四级片| 国内久久精品视频| 国产精品久久久久影院| 一本久久综合亚洲鲁鲁五月天| 亚洲久本草在线中文字幕| 欧美羞羞免费网站| 精品一区二区三区不卡| 中文字幕一区av| 日韩欧美一区二区视频| 成人97人人超碰人人99| 日本女优在线视频一区二区| 欧美国产一区二区在线观看| 欧美在线小视频| 国产精品夜夜嗨| 日本三级亚洲精品| 亚洲黄色性网站| 欧美极品另类videosde| 欧美一区二区三区视频免费| 91在线观看高清| 成人免费高清视频| 极品少妇一区二区三区精品视频 | 日韩精品一区第一页| 有码一区二区三区| **欧美大码日韩| 亚洲欧美日韩精品久久久久| 中文字幕的久久| 亚洲天堂中文字幕| 亚洲欧洲av色图| 中文字幕在线一区| 亚洲欧美日韩小说| 曰韩精品一区二区| 一区二区三国产精华液| 亚洲国产欧美日韩另类综合 | 亚洲电影你懂得| 一区二区三区四区不卡在线 | 久久成人免费网站| 国内精品自线一区二区三区视频| 久久精品99国产精品| 国产伦精品一区二区三区在线观看 | 日韩精品一区二区三区老鸭窝| 色天天综合色天天久久| 色婷婷精品大在线视频| 欧美乱熟臀69xxxxxx| 精品乱人伦小说| 国产精品亲子乱子伦xxxx裸| 依依成人精品视频| 国产精品一区不卡| 在线观看一区不卡| 亚洲精品一区二区精华| 亚洲人成人一区二区在线观看| 香蕉成人伊视频在线观看| 国产乱理伦片在线观看夜一区| 99这里只有精品| 精品国产精品网麻豆系列| 亚洲国产精品99久久久久久久久| 亚洲国产成人av网| 96av麻豆蜜桃一区二区| 精品裸体舞一区二区三区| 成人免费在线视频| 日本成人在线不卡视频| 一道本成人在线| 国产欧美日韩另类视频免费观看| 亚洲高清视频中文字幕| 91啪亚洲精品| 1024成人网| 91日韩在线专区| 国产精品美女久久久久久久 | 麻豆精品精品国产自在97香蕉| 色欧美日韩亚洲| 中文字幕制服丝袜一区二区三区| 国产中文字幕精品| 国产精品视频线看| 成人18视频在线播放| 亚洲色图在线视频| 欧美日韩一区视频| 日韩成人免费看| 日韩欧美一区在线| 久久99久久99小草精品免视看| 欧美一级免费观看| 玖玖九九国产精品| 国产免费观看久久| 欧美亚洲日本国产| 久久99这里只有精品| 国产精品初高中害羞小美女文| 91女厕偷拍女厕偷拍高清| 三级欧美在线一区| 中文字幕电影一区| 69精品人人人人| 99re成人在线| 裸体健美xxxx欧美裸体表演| 国产欧美一区二区精品久导航| 色www精品视频在线观看| 蜜臀久久久久久久| 亚洲柠檬福利资源导航| 精品国产91乱码一区二区三区| av中文字幕一区| 极品瑜伽女神91| 日日夜夜精品免费视频| 中文字幕视频一区| 久久久另类综合| 欧美zozozo| 日韩一卡二卡三卡四卡| 欧美日韩一区二区三区免费看| 经典三级视频一区| 日本v片在线高清不卡在线观看| 亚洲情趣在线观看| 日本一区二区三区国色天香| 欧美大白屁股肥臀xxxxxx| 欧美在线一区二区| 色综合色综合色综合色综合色综合 | www.欧美日韩国产在线| 久久se精品一区精品二区| 日韩福利视频网| 丝袜亚洲另类丝袜在线| 亚洲午夜一区二区| 亚洲永久精品大片| 亚洲男人都懂的| 一区二区三区成人| 丝瓜av网站精品一区二区| 午夜日韩在线电影| 青娱乐精品视频| 国产成人综合精品三级| 高清在线成人网|