Diff for /embedaddon/quagga/isisd/isis_misc.c between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/02/21 17:26:11 version 1.1.1.2, 2012/10/09 09:22:28
Line 32 Line 32
 #include "isisd/dict.h"  #include "isisd/dict.h"
 #include "isisd/isis_constants.h"  #include "isisd/isis_constants.h"
 #include "isisd/isis_common.h"  #include "isisd/isis_common.h"
   #include "isisd/isis_flags.h"
 #include "isisd/isis_circuit.h"  #include "isisd/isis_circuit.h"
   #include "isisd/isis_csm.h"
 #include "isisd/isisd.h"  #include "isisd/isisd.h"
 #include "isisd/isis_misc.h"  #include "isisd/isis_misc.h"
   
Line 40 Line 42
 #include "isisd/isis_lsp.h"  #include "isisd/isis_lsp.h"
 #include "isisd/isis_constants.h"  #include "isisd/isis_constants.h"
 #include "isisd/isis_adjacency.h"  #include "isisd/isis_adjacency.h"
   #include "isisd/isis_dynhn.h"
   
 /* staticly assigned vars for printing purposes */  /* staticly assigned vars for printing purposes */
 struct in_addr new_prefix;  struct in_addr new_prefix;
Line 99  isonet_print (u_char * from, int len) Line 102  isonet_print (u_char * from, int len)
  * extract dot from the dotted str, and insert all the number in a buff    * extract dot from the dotted str, and insert all the number in a buff 
  */   */
 int  int
dotformat2buff (u_char * buff, const u_char * dotted)dotformat2buff (u_char * buff, const char * dotted)
 {  {
   int dotlen, len = 0;    int dotlen, len = 0;
  const u_char *pos = dotted;  const char *pos = dotted;
   u_char number[3];    u_char number[3];
   int nextdotpos = 2;    int nextdotpos = 2;
   
Line 157  dotformat2buff (u_char * buff, const u_char * dotted) Line 160  dotformat2buff (u_char * buff, const u_char * dotted)
  * conversion of XXXX.XXXX.XXXX to memory   * conversion of XXXX.XXXX.XXXX to memory
  */   */
 int  int
sysid2buff (u_char * buff, const u_char * dotted)sysid2buff (u_char * buff, const char * dotted)
 {  {
   int len = 0;    int len = 0;
  const u_char *pos = dotted;  const char *pos = dotted;
   u_char number[3];    u_char number[3];
   
   number[2] = '\0';    number[2] = '\0';
Line 271  speaks (struct nlpids *nlpids, int family) Line 274  speaks (struct nlpids *nlpids, int family)
  * Returns 0 on error, IS-IS Circuit Type on ok   * Returns 0 on error, IS-IS Circuit Type on ok
  */   */
 int  int
string2circuit_t (const u_char * str)string2circuit_t (const char * str)
 {  {
   
   if (!str)    if (!str)
Line 290  string2circuit_t (const u_char * str) Line 293  string2circuit_t (const u_char * str)
 }  }
   
 const char *  const char *
   circuit_state2string (int state)
   {
   
     switch (state)
       {
       case C_STATE_INIT:
         return "Init";
       case C_STATE_CONF:
         return "Config";
       case C_STATE_UP:
         return "Up";
       default:
         return "Unknown";
       }
     return NULL;
   }
   
   const char *
   circuit_type2string (int type)
   {
   
     switch (type)
       {
       case CIRCUIT_T_P2P:
         return "p2p";
       case CIRCUIT_T_BROADCAST:
         return "lan";
       case CIRCUIT_T_LOOPBACK:
         return "loopback";
       default:
         return "Unknown";
       }
     return NULL;
   }
   
   const char *
 circuit_t2string (int circuit_t)  circuit_t2string (int circuit_t)
 {  {
   switch (circuit_t)    switch (circuit_t)
Line 498  unix_hostname (void) Line 537  unix_hostname (void)
 {  {
   static struct utsname names;    static struct utsname names;
   const char *hostname;    const char *hostname;
   extern struct host host;  
   
   hostname = host.name;    hostname = host.name;
   if (!hostname)    if (!hostname)
Line 508  unix_hostname (void) Line 546  unix_hostname (void)
     }      }
   
   return hostname;    return hostname;
   }
   
   /*
    * Returns the dynamic hostname associated with the passed system ID.
    * If no dynamic hostname found then returns formatted system ID.
    */
   const char *
   print_sys_hostname (u_char *sysid)
   {
     struct isis_dynhn *dyn;
   
     if (!sysid)
       return "nullsysid";
   
     /* For our system ID return our host name */
     if (memcmp(sysid, isis->sysid, ISIS_SYS_ID_LEN) == 0)
       return unix_hostname();
   
     dyn = dynhn_find_by_id (sysid);
     if (dyn)
       return (const char *)dyn->name.name;
   
     return sysid_print (sysid);
   }
   
   /*
    * This function is a generic utility that logs data of given length.
    * Move this to a shared lib so that any protocol can use it.
    */
   void
   zlog_dump_data (void *data, int len)
   {
     int i;
     unsigned char *p;
     unsigned char c;
     char bytestr[4];
     char addrstr[10];
     char hexstr[ 16*3 + 5];
     char charstr[16*1 + 5];
   
     p = data;
     memset (bytestr, 0, sizeof(bytestr));
     memset (addrstr, 0, sizeof(addrstr));
     memset (hexstr, 0, sizeof(hexstr));
     memset (charstr, 0, sizeof(charstr));
   
     for (i = 1; i <= len; i++)
     {
       c = *p;
       if (isalnum (c) == 0)
         c = '.';
   
       /* store address for this line */
       if ((i % 16) == 1)
         snprintf (addrstr, sizeof(addrstr), "%p", p);
   
       /* store hex str (for left side) */
       snprintf (bytestr, sizeof (bytestr), "%02X ", *p);
       strncat (hexstr, bytestr, sizeof (hexstr) - strlen (hexstr) - 1);
   
       /* store char str (for right side) */
       snprintf (bytestr, sizeof (bytestr), "%c", c);
       strncat (charstr, bytestr, sizeof (charstr) - strlen (charstr) - 1);
   
       if ((i % 16) == 0)
       {
         /* line completed */
         zlog_debug ("[%8.8s]   %-50.50s  %s", addrstr, hexstr, charstr);
         hexstr[0] = 0;
         charstr[0] = 0;
       }
       else if ((i % 8) == 0)
       {
         /* half line: add whitespaces */
         strncat (hexstr, "  ", sizeof (hexstr) - strlen (hexstr) - 1);
         strncat (charstr, " ", sizeof (charstr) - strlen (charstr) - 1);
       }
       p++; /* next byte */
     }
   
     /* print rest of buffer if not empty */
     if (strlen (hexstr) > 0)
       zlog_debug ("[%8.8s]   %-50.50s  %s", addrstr, hexstr, charstr);
     return;
 }  }

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>