dceconf.l

来自「Ho Chi Minh City University of Technolog」· L 代码 · 共 74 行

L
74
字号
%{#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include "dce_def.h"#define PORT  1#define MADDR 2#define EQUAL 3#define NUM   4#define ADDR  5#define TIME  6int  TIMEOUT_IAMALIVE;%}%%\#  while (input()!='\n');\=  return EQUAL;maddr return MADDR;mport return PORT;time  return TIME;[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+  return ADDR;[0-9]+   return NUM;[\b|\n|\t]* {}%%intdce_readconf (u_long * maddr, int *mport){  static int nPort;  static u_long uAddr;  int nToken;  char buf[256];  if (nPort)    {      *maddr = uAddr;      *mport = nPort;      return 1;    }  sprintf (buf, "%s/dce.conf", getenv ("DCE_ROOT"));  if ((yyin = fopen (buf, "rt")))    while ((nToken = yylex ()) > 0)      switch (nToken)	{	case MADDR:	  if ((yylex () == EQUAL) && (yylex () == ADDR))	    uAddr = inet_addr (yytext);	  break;	case PORT:	  if ((yylex () == EQUAL) && (yylex () == NUM))	    nPort = atol (yytext);	  break;	case TIME:  	  if ((yylex()==EQUAL) && (yylex () == NUM))	  TIMEOUT_IAMALIVE = atoi (yytext);	  break;  	}  if (yyin)    fclose (yyin);  if ((IN_MULTICAST (ntohl (uAddr))) && (nPort > 1024))    {      *maddr = uAddr;      *mport = nPort;      if (TIMEOUT_IAMALIVE<_TIMEOUT_IAMALIVE) TIMEOUT_IAMALIVE=_TIMEOUT_IAMALIVE;      return 1;    }  fprintf (stderr, "Error in Read file %s or DCE_ROOT variable not found\n", buf);  exit (-1);}

⌨️ 快捷键说明

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