Esempio n. 1
0
int iterLinkTabNext(char *buff, int len)
{
  struct list_node *link_node;
  struct lqtextbuffer lqbuffer;
  
  if (iterLinkTab == NULL)
    return -1;

  snprintf(buff, len, "local~%s~remote~%s~main~%s~hysteresis~%f~cost~%s~",
           rawIpAddrToString(&iterLinkTab->local_iface_addr, ipAddrLen),
           rawIpAddrToString(&iterLinkTab->neighbor_iface_addr, ipAddrLen),
           rawIpAddrToString(&iterLinkTab->neighbor->neighbor_main_addr, ipAddrLen),
           iterLinkTab->L_link_quality,
           get_linkcost_text(iterLinkTab->linkcost, OLSR_FALSE, &lqbuffer));


  link_node = iterLinkTab->link_list.next;
  if (link_node != &link_entry_head) {
    iterLinkTab = list2link(link_node);
  } else {
    iterLinkTab = NULL;
  }

  return 0;
}
Esempio n. 2
0
void iterLinkTabInit(void)
{
  struct list_node *link_node;

  link_node = link_entry_head.next;
  if (link_node != &link_entry_head) {
    iterLinkTab = list2link(link_node);
  } else {
    iterLinkTab = NULL;
  }
}
/*-----------------------------------------------------------------------*/
static t_LL GetList(void)
{
  t_LL list = ConsLL();
  t_LLsize size = Gett_LLsize();
   
  while(size-- > 0)
  {
    t_ELMsize elemSize = Gett_ELMsize();
    if (0 == elemSize )
    {  /* this element is a list, get it by a recursive call */
       t_LL listElem = GetList();
       InsLastLL(list,listElem);
    }
    else
    { 
       void * elemData = InsEmptyBefLLf(list2link(list),elemSize);
       if (1!=fread(elemData,elemSize,1,fileR))
         AbortLL_M("GetList","fread failed");
    }
  }

  return list;
}