|
|
| version 1.1.1.2, 2012/10/09 09:22:28 | version 1.1.1.3, 2013/07/21 23:54:39 |
|---|---|
| Line 1612 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 1693 vty_accept (struct thread *thread) | Line 1696 vty_accept (struct thread *thread) |
| 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 1719 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 1741 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 1767 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_create (vty_sock, &su); | vty_create (vty_sock, &su); |
| Line 2193 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); |