#include "md5.h"
#include "keychain.h"
#include "privs.h"
+#include "lib_errors.h"
#include "ripd/ripd.h"
#include "ripd/rip_debug.h"
struct key *key;
keychain = keychain_lookup(ri->key_chain);
- if (keychain == NULL)
+ if (keychain == NULL || keychain->key == NULL)
return 0;
key = key_match_for_accept(keychain, auth_str);
/* Make datagram socket. */
sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (sock < 0) {
- zlog_err("Cannot create UDP socket: %s", safe_strerror(errno));
+ zlog_ferr(LIB_ERR_SOCKET, "Cannot create UDP socket: %s",
+ safe_strerror(errno));
exit(1);
}
#endif
if (ripd_privs.change(ZPRIVS_RAISE))
- zlog_err("rip_create_socket: could not raise privs");
+ zlog_ferr(LIB_ERR_PRIVILEGES,
+ "rip_create_socket: could not raise privs");
setsockopt_so_recvbuf(sock, RIP_UDP_RCV_BUF);
if ((ret = bind(sock, (struct sockaddr *)&addr, sizeof(addr))) < 0)
{
int save_errno = errno;
if (ripd_privs.change(ZPRIVS_LOWER))
- zlog_err("rip_create_socket: could not lower privs");
+ zlog_ferr(LIB_ERR_PRIVILEGES,
+ "rip_create_socket: could not lower privs");
- zlog_err("%s: Can't bind socket %d to %s port %d: %s", __func__,
- sock, inet_ntoa(addr.sin_addr),
- (int)ntohs(addr.sin_port), safe_strerror(save_errno));
+ zlog_ferr(LIB_ERR_SOCKET,
+ "%s: Can't bind socket %d to %s port %d: %s",
+ __func__, sock, inet_ntoa(addr.sin_addr),
+ (int)ntohs(addr.sin_port), safe_strerror(save_errno));
close(sock);
return ret;
}
if (ripd_privs.change(ZPRIVS_LOWER))
- zlog_err("rip_create_socket: could not lower privs");
+ zlog_ferr(LIB_ERR_PRIVILEGES,
+ "rip_create_socket: could not lower privs");
return sock;
}
/* to be passed to auth functions later */
rip_auth_prepare_str_send(ri, key, auth_str,
RIP_AUTH_SIMPLE_SIZE);
+ if (strlen(auth_str) == 0)
+ return;
}
if (version == RIPv1) {
return CMD_WARNING_CONFIG_FAILED;
}
}
+
VTY_PUSH_CONTEXT(RIP_NODE, rip);
return CMD_SUCCESS;