int rc = -1;
socklen_t tolen = sizeof(struct sockaddr_un);
struct sockaddr *to = NULL;
-
+
if (t == NULL || t->sock < 0)
goto recv_error;
to = (struct sockaddr *)malloc(sizeof(struct sockaddr_un));
{
struct sockaddr_un addr;
netsnmp_transport *t = NULL;
-
+
if (local) {
LLOG_WARNX("should not have been called for local transport");
return NULL;
}
-
+ if (!string)
+ return NULL;
if (len > 0 && len < (sizeof(addr.sun_path) - 1)) {
addr.sun_family = AF_UNIX;
memset(addr.sun_path, 0, sizeof(addr.sun_path));
agent_priv_unix_close(t);
netsnmp_transport_free(t);
return NULL;
- }
- memcpy(t->remote, addr.sun_path, strlen(addr.sun_path));
- t->remote_length = strlen(addr.sun_path);
+ }
+ memcpy(t->remote, addr.sun_path, strlen(addr.sun_path));
+ t->remote_length = strlen(addr.sun_path);
t->msgMaxSize = 0x7fffffff;
t->f_recv = agent_priv_unix_recv;
unixDomain.name_length = sizeof(netsnmp_UnixDomain) / sizeof(oid);
unixDomain.prefix = (const char**)calloc(2, sizeof(char *));
unixDomain.prefix[0] = "unix";
-
unixDomain.f_create_from_tstring_new = agent_priv_unix_create_tstring;
unixDomain.f_create_from_ostring = agent_priv_unix_create_ostring;
-
netsnmp_tdomain_register(&unixDomain);
}
lldpd_iface_multicast(struct lldpd *global, const char *name, int remove)
{
int i, rc;
-
+
for (i=0; global->g_protocols[i].mode != 0; i++) {
if (!global->g_protocols[i].enabled) continue;
if ((rc = priv_iface_multicast(name,
&ifr) < 0) {
must_write(remote, &errno, sizeof(errno));
return;
- }
-
+ }
+
must_write(remote, &rc, sizeof(rc));
}
priv_loop();
exit(0);
}
-
}
/* Stolen from sbin/pflogd/privsep.c from OpenBSD */