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

📄 dce_hinfo.c

📁 Ho Chi Minh City University of Technology Computer Science Department Distributed Computing E
💻 C
字号:
/***************************************Ho Chi Minh City University of Technology    Computer Science Department Distributed Computing Environment (DCE)Written by Nguyen Van Noi -59406114File dce_hinfo.c on Tue Dec 22 13:30:40 1998****************************************/#include <values.h>#include "dce_server.h"PHINFONewHinfo (int order, u_long addr){  PHINFO p = (PHINFO) malloc (sizeof (HINFO));  if (!p)    return NULL;  p->order = order;  p->addr = addr;  p->status = 1;  p->time = 2 * TIMEOUT_IAMALIVE + 1;  return p;}voidDecTime (void *pt){  PHINFO p = (PHINFO) pt;  if (p->time >= 0)    p->time -= TIMEOUT_IAMALIVE;  else    p->status = 0;}voiddce_server_dcetime (){  TravelList (Server.pList, DecTime);}int _MinOrder;voidMinOrder (void *pt){  PHINFO p = (PHINFO) pt;  if ((p->status == 1) && (_MinOrder > p->order))    _MinOrder = p->order;}intdce_server_minorder (){  _MinOrder = MAXINT;  TravelList (Server.pList, MinOrder);  return _MinOrder;}intcmpsinfo (void *p1, void *p2){  PHINFO p = (PHINFO) p1;  u_long *pu = (u_long *) p2;  if (*pu == p->addr)    {      p->status = 1;      p->time = 2 * TIMEOUT_IAMALIVE + 1;      return 1;    }  return 0;}voiddce_agent_update_newmsg (){  PHINFO p;  void **pr = ItemLookup (Server.pList, (void *) &msg.saddr, cmpsinfo);  if (pr)    {      free (pr);      return;    }  p = NewHinfo (msg.order, msg.saddr);  if (!p)    return;  InsertList (Server.pList, (void *) p);}intcmppp (void *p1, void *p2){  PHINFO p = (PHINFO) p1;  u_long *pu = (u_long *) p2;  if (*pu == p->addr)    return 1;  return 0;}voiddce_server_delete_server (u_long u){  DeleteItem (Server.pList, (void *) &u, cmppp, NULL);}voiduserbroadcast (void *p){  long *pl = (long *) p;  Server.Msg.lextra = *pl;  dce_server_mcastsend ((char *) &Server.Msg, sizeof (MSG));}voiddce_server_userbroadcast (){  TravelList (Server.pUserList, userbroadcast);}voidservicebroadcast (void *pt){  PSERVICEINFO p = (PSERVICEINFO) pt;  Server.Msg.nextra = p->param;  strcpy (Server.Msg.sername, p->sername);  dce_server_mcastsend ((char *) &Server.Msg, sizeof (MSG));}voiddce_server_servicebroadcast (){  TravelList (Server.pService, servicebroadcast);}voiduserservicebroadcast (void *pt){  PUSERSERVICE p = (PUSERSERVICE) pt;  msg.type = DCE_MSG_ALL_REPLY_ALL_USERSERVICE;  msg.who = UNKNOWN;  msg.pid = p->pid;  msg.saddr = p->serveraddr;  msg.uid = p->uid;  msg.nextra = p->sernum;  msg.aaddr = p->clientaddr;  msg.lextra = p->tStart;  msg.lextra1 = p->tEnd;  msg.sport = p->time;  dce_server_mcastsend ((char *) &msg, sizeof (MSG));}voiddce_server_userservicebroadcast (){  TravelList (Server.pCurUserService, userservicebroadcast);}

⌨️ 快捷键说明

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