netsnmp_transport * netsnmp_unix_create_ostring(const u_char * o, size_t o_len, int local) { struct sockaddr_un addr; if (o_len > 0 && o_len < (sizeof(addr.sun_path) - 1)) { addr.sun_family = AF_UNIX; memset(addr.sun_path, 0, sizeof(addr.sun_path)); strncpy(addr.sun_path, (const char *)o, o_len); return netsnmp_unix_transport(&addr, local); } else { if (o_len > 0) { snmp_log(LOG_ERR, "Path too long for Unix domain transport\n"); } } return NULL; }
netsnmp_transport * netsnmp_unix_create_tstring(const char *string, int local) { struct sockaddr_un addr; if ((string != NULL) && (strlen(string) < sizeof(addr.sun_path))) { addr.sun_family = AF_UNIX; memset(addr.sun_path, 0, sizeof(addr.sun_path)); strncpy(addr.sun_path, string, sizeof(addr.sun_path) - 1); return netsnmp_unix_transport(&addr, local); } else { if (string != NULL) { snmp_log(LOG_ERR, "Path too long for Unix domain transport\n"); } return NULL; } }