Diff for /embedaddon/quagga/lib/vty.c between versions 1.1 and 1.1.1.3

version 1.1, 2012/02/21 17:26:12 version 1.1.1.3, 2013/07/21 23:54:39
Line 699  vty_end_config (struct vty *vty) Line 699  vty_end_config (struct vty *vty)
     case ZEBRA_NODE:      case ZEBRA_NODE:
     case RIP_NODE:      case RIP_NODE:
     case RIPNG_NODE:      case RIPNG_NODE:
       case BABEL_NODE:
     case BGP_NODE:      case BGP_NODE:
     case BGP_VPNV4_NODE:      case BGP_VPNV4_NODE:
     case BGP_IPV4_NODE:      case BGP_IPV4_NODE:
Line 1107  vty_stop_input (struct vty *vty) Line 1108  vty_stop_input (struct vty *vty)
     case ZEBRA_NODE:      case ZEBRA_NODE:
     case RIP_NODE:      case RIP_NODE:
     case RIPNG_NODE:      case RIPNG_NODE:
       case BABEL_NODE:
     case BGP_NODE:      case BGP_NODE:
     case RMAP_NODE:      case RMAP_NODE:
     case OSPF_NODE:      case OSPF_NODE:
Line 1610  vty_flush (struct thread *thread) Line 1612  vty_flush (struct thread *thread)
 static struct vty *  static struct vty *
 vty_create (int vty_sock, union sockunion *su)  vty_create (int vty_sock, union sockunion *su)
 {  {
     char buf[SU_ADDRSTRLEN];
   struct vty *vty;    struct vty *vty;
   
     sockunion2str(su, buf, SU_ADDRSTRLEN);
   
   /* Allocate new vty structure and set up default values. */    /* Allocate new vty structure and set up default values. */
   vty = vty_new ();    vty = vty_new ();
   vty->fd = vty_sock;    vty->fd = vty_sock;
   vty->type = VTY_TERM;    vty->type = VTY_TERM;
  vty->address = sockunion_su2str (su);  strcpy (vty->address, buf);
   if (no_password_check)    if (no_password_check)
     {      {
       if (restricted_mode)        if (restricted_mode)
Line 1685  static int Line 1690  static int
 vty_accept (struct thread *thread)  vty_accept (struct thread *thread)
 {  {
   int vty_sock;    int vty_sock;
   struct vty *vty;  
   union sockunion su;    union sockunion su;
   int ret;    int ret;
   unsigned int on;    unsigned int on;
   int accept_sock;    int accept_sock;
   struct prefix *p = NULL;    struct prefix *p = NULL;
   struct access_list *acl = NULL;    struct access_list *acl = NULL;
  char *bufp;  char buf[SU_ADDRSTRLEN];
   
   accept_sock = THREAD_FD (thread);    accept_sock = THREAD_FD (thread);
   
Line 1718  vty_accept (struct thread *thread) Line 1722  vty_accept (struct thread *thread)
       if ((acl = access_list_lookup (AFI_IP, vty_accesslist_name)) &&        if ((acl = access_list_lookup (AFI_IP, vty_accesslist_name)) &&
           (access_list_apply (acl, p) == FILTER_DENY))            (access_list_apply (acl, p) == FILTER_DENY))
         {          {
           char *buf;  
           zlog (NULL, LOG_INFO, "Vty connection refused from %s",            zlog (NULL, LOG_INFO, "Vty connection refused from %s",
                (buf = sockunion_su2str (&su)));                sockunion2str (&su, buf, SU_ADDRSTRLEN));
          free (buf); 
           close (vty_sock);            close (vty_sock);
                       
           /* continue accepting connections */            /* continue accepting connections */
Line 1740  vty_accept (struct thread *thread) Line 1742  vty_accept (struct thread *thread)
       if ((acl = access_list_lookup (AFI_IP6, vty_ipv6_accesslist_name)) &&        if ((acl = access_list_lookup (AFI_IP6, vty_ipv6_accesslist_name)) &&
           (access_list_apply (acl, p) == FILTER_DENY))            (access_list_apply (acl, p) == FILTER_DENY))
         {          {
           char *buf;  
           zlog (NULL, LOG_INFO, "Vty connection refused from %s",            zlog (NULL, LOG_INFO, "Vty connection refused from %s",
                (buf = sockunion_su2str (&su)));                sockunion2str (&su, buf, SU_ADDRSTRLEN));
          free (buf); 
           close (vty_sock);            close (vty_sock);
                       
           /* continue accepting connections */            /* continue accepting connections */
Line 1766  vty_accept (struct thread *thread) Line 1766  vty_accept (struct thread *thread)
           safe_strerror (errno));            safe_strerror (errno));
   
   zlog (NULL, LOG_INFO, "Vty connection from %s",    zlog (NULL, LOG_INFO, "Vty connection from %s",
    (bufp = sockunion_su2str (&su)));        sockunion2str (&su, buf, SU_ADDRSTRLEN));
  if (bufp) 
    XFREE (MTYPE_TMP, bufp); 
   
  vty = vty_create (vty_sock, &su);  vty_create (vty_sock, &su);
   
   return 0;    return 0;
 }  }
Line 1816  vty_serv_sock_addrinfo (const char *hostname, unsigned Line 1814  vty_serv_sock_addrinfo (const char *hostname, unsigned
       if (sock < 0)        if (sock < 0)
         continue;          continue;
   
         sockopt_v6only (ainfo->ai_family, sock);
       sockopt_reuseaddr (sock);        sockopt_reuseaddr (sock);
       sockopt_reuseport (sock);        sockopt_reuseport (sock);
   
Line 1839  vty_serv_sock_addrinfo (const char *hostname, unsigned Line 1838  vty_serv_sock_addrinfo (const char *hostname, unsigned
   
   freeaddrinfo (ainfo_save);    freeaddrinfo (ainfo_save);
 }  }
#endif /* HAVE_IPV6 && ! NRL */#else /* HAVE_IPV6 && ! NRL */
   
 /* Make vty server socket. */  /* Make vty server socket. */
 static void  static void
Line 1905  vty_serv_sock_family (const char* addr, unsigned short Line 1904  vty_serv_sock_family (const char* addr, unsigned short
   /* Add vty server event. */    /* Add vty server event. */
   vty_event (VTY_SERV, accept_sock, NULL);    vty_event (VTY_SERV, accept_sock, NULL);
 }  }
   #endif /* HAVE_IPV6 && ! NRL */
   
 #ifdef VTYSH  #ifdef VTYSH
 /* For sockaddr_un. */  /* For sockaddr_un. */
Line 2190  vty_close (struct vty *vty) Line 2190  vty_close (struct vty *vty)
   if (vty->fd > 0)    if (vty->fd > 0)
     close (vty->fd);      close (vty->fd);
   
   if (vty->address)  
     XFREE (MTYPE_TMP, vty->address);  
   if (vty->buf)    if (vty->buf)
     XFREE (MTYPE_VTY, vty->buf);      XFREE (MTYPE_VTY, vty->buf);
   

Removed from v.1.1  
changed lines
  Added in v.1.1.1.3


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