void agentx_parse_agentx_perms (const char *token, char *cptr) { char *socket_perm, *dir_perm, *socket_user, *socket_group; int uid = -1; int gid = -1; int s_perm = -1; int d_perm = -1; char *st; DEBUGMSGTL (("agentx/config", "port permissions: %s\n", cptr)); socket_perm = strtok_r (cptr, " \t", &st); dir_perm = strtok_r (NULL, " \t", &st); socket_user = strtok_r (NULL, " \t", &st); socket_group = strtok_r (NULL, " \t", &st); if (socket_perm) { s_perm = strtol (socket_perm, NULL, 8); netsnmp_ds_set_int (NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_X_SOCK_PERM, s_perm); DEBUGMSGTL (("agentx/config", "socket permissions: %o (%d)\n", s_perm, s_perm)); } if (dir_perm) { d_perm = strtol (dir_perm, NULL, 8); netsnmp_ds_set_int (NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_X_DIR_PERM, d_perm); DEBUGMSGTL (("agentx/config", "directory permissions: %o (%d)\n", d_perm, d_perm)); } /* * Try to handle numeric UIDs or user names for the socket owner */ if (socket_user) { uid = netsnmp_str_to_uid (socket_user); if (uid != 0) netsnmp_ds_set_int (NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_X_SOCK_USER, uid); DEBUGMSGTL (("agentx/config", "socket owner: %s (%d)\n", socket_user, uid)); } /* * and similarly for the socket group ownership */ if (socket_group) { gid = netsnmp_str_to_gid (socket_group); if (gid != 0) netsnmp_ds_set_int (NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_X_SOCK_GROUP, gid); DEBUGMSGTL (("agentx/config", "socket group: %s (%d)\n", socket_group, gid)); } }
void sshdomain_parse_socket(const char *token, char *cptr) { char *socket_perm, *socket_user, *socket_group; int uid = -1; int gid = -1; int s_perm = -1; char *st; DEBUGMSGTL(("ssh/config", "parsing socket info: %s\n", cptr)); socket_perm = strtok_r(cptr, " \t", &st); socket_user = strtok_r(NULL, " \t", &st); socket_group = strtok_r(NULL, " \t", &st); if (socket_perm) { s_perm = strtol(socket_perm, NULL, 8); netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_SSHDOMAIN_SOCK_PERM, s_perm); DEBUGMSGTL(("ssh/config", "socket permissions: %o (%d)\n", s_perm, s_perm)); } /* * Try to handle numeric UIDs or user names for the socket owner */ if (socket_user) { uid = netsnmp_str_to_uid(socket_user); if ( uid != 0 ) netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_SSHDOMAIN_SOCK_USER, uid); DEBUGMSGTL(("ssh/config", "socket owner: %s (%d)\n", socket_user, uid)); } /* * and similarly for the socket group ownership */ if (socket_group) { gid = netsnmp_str_to_gid(socket_group); if ( gid != 0 ) netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_SSHDOMAIN_SOCK_GROUP, gid); DEBUGMSGTL(("ssh/config", "socket group: %s (%d)\n", socket_group, gid)); } }