diff options
Diffstat (limited to 'lib/vty.c')
| -rw-r--r-- | lib/vty.c | 92 |
1 files changed, 53 insertions, 39 deletions
@@ -314,8 +314,9 @@ static int vty_log_out(struct vty *vty, const char *level, /* Fatal I/O error. */ vty->monitor = 0; /* disable monitoring to avoid infinite recursion */ - zlog_warn("%s: write failed to vty client fd %d, closing: %s", - __func__, vty->fd, safe_strerror(errno)); + flog_err(EC_LIB_SOCKET, + "%s: write failed to vty client fd %d, closing: %s", + __func__, vty->fd, safe_strerror(errno)); buffer_reset(vty->obuf); buffer_reset(vty->lbuf); /* cannot call vty_close, because a parent routine may still try @@ -534,7 +535,8 @@ static int vty_command(struct vty *vty, char *buf) if ((realtime = thread_consumed_time(&after, &before, &cputime)) > CONSUMED_TIME_CHECK) /* Warn about CPU hog that must be fixed. */ - zlog_warn( + flog_warn( + EC_LIB_SLOW_THREAD, "SLOW COMMAND: command took %lums (cpu time %lums): %s", realtime / 1000, cputime / 1000, buf); } @@ -811,6 +813,7 @@ static void vty_end_config(struct vty *vty) case LDP_L2VPN_NODE: case LDP_PSEUDOWIRE_NODE: case ISIS_NODE: + case OPENFABRIC_NODE: case KEYCHAIN_NODE: case KEYCHAIN_KEY_NODE: case VTY_NODE: @@ -1210,6 +1213,7 @@ static void vty_stop_input(struct vty *vty) case LDP_L2VPN_NODE: case LDP_PSEUDOWIRE_NODE: case ISIS_NODE: + case OPENFABRIC_NODE: case KEYCHAIN_NODE: case KEYCHAIN_KEY_NODE: case VTY_NODE: @@ -1324,14 +1328,15 @@ static int vty_telnet_option(struct vty *vty, unsigned char *buf, int nbytes) switch (vty->sb_buf[0]) { case TELOPT_NAWS: if (vty->sb_len != TELNET_NAWS_SB_LEN) - zlog_warn( + flog_err( + EC_LIB_SYSTEM_CALL, "RFC 1073 violation detected: telnet NAWS option " "should send %d characters, but we received %lu", TELNET_NAWS_SB_LEN, (unsigned long)vty->sb_len); else if (sizeof(vty->sb_buf) < TELNET_NAWS_SB_LEN) flog_err( - LIB_ERR_DEVELOPMENT, + EC_LIB_DEVELOPMENT, "Bug detected: sizeof(vty->sb_buf) %lu < %d, too small to handle the telnet NAWS option", (unsigned long)sizeof(vty->sb_buf), TELNET_NAWS_SB_LEN); @@ -1446,7 +1451,8 @@ static int vty_read(struct thread *thread) } vty->monitor = 0; /* disable monitoring to avoid infinite recursion */ - zlog_warn( + flog_err( + EC_LIB_SOCKET, "%s: read error on vty client fd %d, closing: %s", __func__, vty->fd, safe_strerror(errno)); buffer_reset(vty->obuf); @@ -1653,7 +1659,7 @@ static int vty_flush(struct thread *thread) case BUFFER_ERROR: vty->monitor = 0; /* disable monitoring to avoid infinite recursion */ - zlog_warn("buffer_flush failed on vty client fd %d, closing", + zlog_info("buffer_flush failed on vty client fd %d, closing", vty->fd); buffer_reset(vty->lbuf); buffer_reset(vty->obuf); @@ -1900,7 +1906,8 @@ static int vty_accept(struct thread *thread) /* We can handle IPv4 or IPv6 socket. */ vty_sock = sockunion_accept(accept_sock, &su); if (vty_sock < 0) { - zlog_warn("can't accept vty socket : %s", safe_strerror(errno)); + flog_err(EC_LIB_SOCKET, "can't accept vty socket : %s", + safe_strerror(errno)); return -1; } set_nonblocking(vty_sock); @@ -1973,7 +1980,7 @@ static void vty_serv_sock_addrinfo(const char *hostname, unsigned short port) ret = getaddrinfo(hostname, port_str, &req, &ainfo); if (ret != 0) { - flog_err_sys(LIB_ERR_SYSTEM_CALL, "getaddrinfo failed: %s", + flog_err_sys(EC_LIB_SYSTEM_CALL, "getaddrinfo failed: %s", gai_strerror(ret)); exit(1); } @@ -2034,7 +2041,7 @@ static void vty_serv_un(const char *path) /* Make UNIX domain socket. */ sock = socket(AF_UNIX, SOCK_STREAM, 0); if (sock < 0) { - flog_err_sys(LIB_ERR_SOCKET, + flog_err_sys(EC_LIB_SOCKET, "Cannot create unix stream socket: %s", safe_strerror(errno)); return; @@ -2054,7 +2061,7 @@ static void vty_serv_un(const char *path) ret = bind(sock, (struct sockaddr *)&serv, len); if (ret < 0) { - flog_err_sys(LIB_ERR_SOCKET, "Cannot bind path %s: %s", path, + flog_err_sys(EC_LIB_SOCKET, "Cannot bind path %s: %s", path, safe_strerror(errno)); close(sock); /* Avoid sd leak. */ return; @@ -2062,7 +2069,7 @@ static void vty_serv_un(const char *path) ret = listen(sock, 5); if (ret < 0) { - flog_err_sys(LIB_ERR_SOCKET, "listen(fd %d) failed: %s", sock, + flog_err_sys(EC_LIB_SOCKET, "listen(fd %d) failed: %s", sock, safe_strerror(errno)); close(sock); /* Avoid sd leak. */ return; @@ -2078,7 +2085,7 @@ static void vty_serv_un(const char *path) if ((int)ids.gid_vty > 0) { /* set group of socket */ if (chown(path, -1, ids.gid_vty)) { - flog_err_sys(LIB_ERR_SYSTEM_CALL, + flog_err_sys(EC_LIB_SYSTEM_CALL, "vty_serv_un: could chown socket, %s", safe_strerror(errno)); } @@ -2108,14 +2115,15 @@ static int vtysh_accept(struct thread *thread) (socklen_t *)&client_len); if (sock < 0) { - zlog_warn("can't accept vty socket : %s", safe_strerror(errno)); + flog_err(EC_LIB_SOCKET, "can't accept vty socket : %s", + safe_strerror(errno)); return -1; } if (set_nonblocking(sock) < 0) { - zlog_warn( - "vtysh_accept: could not set vty socket %d to non-blocking," - " %s, closing", + flog_err( + EC_LIB_SOCKET, + "vtysh_accept: could not set vty socket %d to non-blocking, %s, closing", sock, safe_strerror(errno)); close(sock); return -1; @@ -2146,8 +2154,8 @@ static int vtysh_flush(struct vty *vty) case BUFFER_ERROR: vty->monitor = 0; /* disable monitoring to avoid infinite recursion */ - zlog_warn("%s: write error to fd %d, closing", __func__, - vty->fd); + flog_err(EC_LIB_SOCKET, "%s: write error to fd %d, closing", + __func__, vty->fd); buffer_reset(vty->lbuf); buffer_reset(vty->obuf); vty_close(vty); @@ -2181,7 +2189,8 @@ static int vtysh_read(struct thread *thread) } vty->monitor = 0; /* disable monitoring to avoid infinite recursion */ - zlog_warn( + flog_err( + EC_LIB_SOCKET, "%s: read failed on vtysh client fd %d, closing: %s", __func__, sock, safe_strerror(errno)); } @@ -2411,9 +2420,8 @@ static void vty_read_file(FILE *confp) nl = strchr(vty->error_buf, '\n'); if (nl) *nl = '\0'; - flog_err(LIB_ERR_VTY, - "ERROR: %s on config line %u: %s", message, line_num, - vty->error_buf); + flog_err(EC_LIB_VTY, "ERROR: %s on config line %u: %s", message, + line_num, vty->error_buf); } vty_close(vty); @@ -2487,7 +2495,7 @@ bool vty_read_config(const char *config_file, char *config_default_dir) if (!IS_DIRECTORY_SEP(config_file[0])) { if (getcwd(cwd, MAXPATHLEN) == NULL) { flog_err_sys( - LIB_ERR_SYSTEM_CALL, + EC_LIB_SYSTEM_CALL, "Failure to determine Current Working Directory %d!", errno); exit(1); @@ -2502,17 +2510,20 @@ bool vty_read_config(const char *config_file, char *config_default_dir) confp = fopen(fullpath, "r"); if (confp == NULL) { - zlog_warn("%s: failed to open configuration file %s: %s, checking backup", - __func__, fullpath, safe_strerror(errno)); + flog_warn( + EC_LIB_BACKUP_CONFIG, + "%s: failed to open configuration file %s: %s, checking backup", + __func__, fullpath, safe_strerror(errno)); confp = vty_use_backup_config(fullpath); if (confp) - zlog_warn( + flog_warn( + EC_LIB_BACKUP_CONFIG, "WARNING: using backup configuration file!"); else { - flog_err(LIB_ERR_VTY, - "can't open configuration file [%s]", - config_file); + flog_err(EC_LIB_VTY, + "can't open configuration file [%s]", + config_file); exit(1); } } @@ -2548,19 +2559,22 @@ bool vty_read_config(const char *config_file, char *config_default_dir) #endif /* VTYSH */ confp = fopen(config_default_dir, "r"); if (confp == NULL) { - zlog_warn("%s: failed to open configuration file %s: %s, checking backup", - __func__, config_default_dir, - safe_strerror(errno)); + flog_err( + EC_LIB_SYSTEM_CALL, + "%s: failed to open configuration file %s: %s, checking backup", + __func__, config_default_dir, + safe_strerror(errno)); confp = vty_use_backup_config(config_default_dir); if (confp) { - zlog_warn( + flog_warn( + EC_LIB_BACKUP_CONFIG, "WARNING: using backup configuration file!"); fullpath = config_default_dir; } else { - flog_err(LIB_ERR_VTY, - "can't open configuration file [%s]", - config_default_dir); + flog_err(EC_LIB_VTY, + "can't open configuration file [%s]", + config_default_dir); goto tmp_free_and_out; } } else @@ -3073,13 +3087,13 @@ static void vty_save_cwd(void) * Hence not worrying about it too much. */ if (!chdir(SYSCONFDIR)) { - flog_err_sys(LIB_ERR_SYSTEM_CALL, + flog_err_sys(EC_LIB_SYSTEM_CALL, "Failure to chdir to %s, errno: %d", SYSCONFDIR, errno); exit(-1); } if (getcwd(cwd, MAXPATHLEN) == NULL) { - flog_err_sys(LIB_ERR_SYSTEM_CALL, + flog_err_sys(EC_LIB_SYSTEM_CALL, "Failure to getcwd, errno: %d", errno); exit(-1); } |
