Lines Matching +full:key +full:- +full:release

2  * An implementation of key value pair (KVP) functionality for Linux.
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
50 * fills in the value corresponding to the specified key. We overload the
61 IntegrationServicesVersion, /*This key is serviced in the kernel*/
120 char key[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; member
139 if (fcntl(kvp_file_info[pool].fd, F_SETLKW, &fl) == -1) { in kvp_acquire_lock()
151 if (fcntl(kvp_file_info[pool].fd, F_SETLK, &fl) == -1) { in kvp_release_lock()
152 syslog(LOG_ERR, "Failed to release the lock pool: %d; error: %d %s", pool, in kvp_release_lock()
163 * We are going to write our in-memory registry out to in kvp_update_file()
196 syslog(LOG_DEBUG, "pool: %d, %d/%d key=%s val=%s\n", in kvp_dump_initial_pools()
198 kvp_file_info[pool].records[i].key, in kvp_dump_initial_pools()
223 ENTRIES_PER_BLOCK * num_blocks - records_read, in kvp_update_mem_state()
267 if (mkdir(KVP_CONFIG_LOC, 0755 /* rwxr-xr-x */)) { in kvp_file_init()
277 fd = open(fname, O_RDWR | O_CREAT | O_CLOEXEC, 0644 /* rw-r--r-- */); in kvp_file_init()
279 if (fd == -1) in kvp_file_init()
296 static int kvp_key_delete(int pool, const __u8 *key, int key_size) in kvp_key_delete() argument
304 * First update the in-memory state. in kvp_key_delete()
312 if (memcmp(key, record[i].key, key_size)) in kvp_key_delete()
319 syslog(LOG_DEBUG, "%s: deleting the KVP: pool=%d key=%s val=%s", in kvp_key_delete()
320 __func__, pool, record[i].key, record[i].value); in kvp_key_delete()
321 if (i == (num_records - 1)) { in kvp_key_delete()
322 kvp_file_info[pool].num_records--; in kvp_key_delete()
330 strcpy(record[j].key, record[k].key); in kvp_key_delete()
335 kvp_file_info[pool].num_records--; in kvp_key_delete()
341 syslog(LOG_DEBUG, "%s: could not delete KVP: pool=%d key=%s. Record not found", in kvp_key_delete()
342 __func__, pool, key); in kvp_key_delete()
347 static int kvp_key_add_or_modify(int pool, const __u8 *key, int key_size, in kvp_key_add_or_modify() argument
356 syslog(LOG_DEBUG, "%s: got a KVP: pool=%d key=%s val=%s", in kvp_key_add_or_modify()
357 __func__, pool, key, value); in kvp_key_add_or_modify()
361 syslog(LOG_ERR, "%s: Too long key or value: key=%s, val=%s", in kvp_key_add_or_modify()
362 __func__, key, value); in kvp_key_add_or_modify()
365 syslog(LOG_DEBUG, "%s: Too long key or value: pool=%d, key=%s, val=%s", in kvp_key_add_or_modify()
366 __func__, pool, key, value); in kvp_key_add_or_modify()
371 * First update the in-memory state. in kvp_key_add_or_modify()
380 if (memcmp(key, record[i].key, key_size)) in kvp_key_add_or_modify()
383 * Found a match; just update the value - in kvp_key_add_or_modify()
389 syslog(LOG_DEBUG, "%s: updated: pool=%d key=%s val=%s", in kvp_key_add_or_modify()
390 __func__, pool, key, value); in kvp_key_add_or_modify()
410 memcpy(record[i].key, key, key_size); in kvp_key_add_or_modify()
415 syslog(LOG_DEBUG, "%s: added: pool=%d key=%s val=%s", in kvp_key_add_or_modify()
416 __func__, pool, key, value); in kvp_key_add_or_modify()
422 static int kvp_get_value(int pool, const __u8 *key, int key_size, __u8 *value, in kvp_get_value() argument
434 * First update the in-memory state. in kvp_get_value()
442 if (memcmp(key, record[i].key, key_size)) in kvp_get_value()
454 static int kvp_pool_enumerate(int pool, int index, __u8 *key, int key_size, in kvp_pool_enumerate() argument
460 * First update our in-memory database. in kvp_pool_enumerate()
469 memcpy(key, record[index].key, key_size); in kvp_pool_enumerate()
481 os_version = uts_buf.release; in kvp_get_os_info()
482 os_build = strdup(uts_buf.release); in kvp_get_os_info()
492 p = strchr(os_version, '-'); in kvp_get_os_info()
497 * Parse the /etc/os-release file if present: in kvp_get_os_info()
498 * https://www.freedesktop.org/software/systemd/man/os-release.html in kvp_get_os_info()
500 file = fopen("/etc/os-release", "r"); in kvp_get_os_info()
515 /* Remove quotes and newline; un-escape */ in kvp_get_os_info()
550 file = fopen("/etc/SuSE-release", "r"); in kvp_get_os_info()
553 file = fopen("/etc/redhat-release", "r"); in kvp_get_os_info()
632 KVP_NET_DIR, entry->d_name); in kvp_get_if_name()
649 if_name = strdup(entry->d_name); in kvp_get_if_name()
755 if (*remaining >= (next_char - address) + 1) { in kvp_extract_routes()
756 memcpy(*output, address, next_char - address); in kvp_extract_routes()
758 memcpy(*output + (next_char - address), "", 1); in kvp_extract_routes()
761 *output += next_char - address; in kvp_extract_routes()
762 *remaining -= next_char - address; in kvp_extract_routes()
767 *remaining -= 1; in kvp_extract_routes()
780 size_t alloc_size = 0, remaining = buffer_len - 1; in kvp_get_gateway()
784 f = popen("ip --oneline -4 route show;ip --oneline -6 route show", "r"); in kvp_get_gateway()
786 /* Convert buffer into C-String. */ in kvp_get_gateway()
798 if (line[num_chars - 1] == '\n') in kvp_get_gateway()
799 line[num_chars - 1] = '\0'; in kvp_get_gateway()
803 /* Convert buffer into C-String. */ in kvp_get_gateway()
817 kvp_get_gateway(buffer->gate_way, sizeof(buffer->gate_way)); in kvp_get_ipconfig_info()
839 kvp_process_ipconfig_file(cmd, (char *)buffer->dns_addr, in kvp_get_ipconfig_info()
864 buffer->dhcp_enabled = 1; in kvp_get_ipconfig_info()
866 buffer->dhcp_enabled = 0; in kvp_get_ipconfig_info()
874 unsigned int res = *w - ((*w >> 1) & 0x55555555); in hweight32()
893 str = inet_ntop(family, &addr->sin_addr, tmp, 50); in kvp_process_ip_address()
897 str = inet_ntop(family, &addr6->sin6_addr.s6_addr, tmp, 50); in kvp_process_ip_address()
901 if ((length - *offset) < addr_length + 2) in kvp_process_ip_address()
941 buffer = (char *)ip_buffer->ip_addr; in kvp_get_ip_info()
942 ip_buffer->addr_family = 0; in kvp_get_ip_info()
946 * maximum key value. in kvp_get_ip_info()
956 if (curp->ifa_addr == NULL) { in kvp_get_ip_info()
957 curp = curp->ifa_next; in kvp_get_ip_info()
962 (strncmp(curp->ifa_name, if_name, strlen(if_name)))) { in kvp_get_ip_info()
967 curp = curp->ifa_next; in kvp_get_ip_info()
978 (curp->ifa_addr->sa_family != family))) || in kvp_get_ip_info()
979 (curp->ifa_flags & IFF_LOOPBACK)) { in kvp_get_ip_info()
980 curp = curp->ifa_next; in kvp_get_ip_info()
983 if ((curp->ifa_addr->sa_family != AF_INET) && in kvp_get_ip_info()
984 (curp->ifa_addr->sa_family != AF_INET6)) { in kvp_get_ip_info()
985 curp = curp->ifa_next; in kvp_get_ip_info()
994 if (curp->ifa_addr->sa_family == AF_INET) { in kvp_get_ip_info()
995 ip_buffer->addr_family |= ADDR_FAMILY_IPV4; in kvp_get_ip_info()
1000 curp->ifa_netmask, in kvp_get_ip_info()
1003 ip_buffer->sub_net, in kvp_get_ip_info()
1009 ip_buffer->addr_family |= ADDR_FAMILY_IPV6; in kvp_get_ip_info()
1015 sn_str = (char *)ip_buffer->sub_net; in kvp_get_ip_info()
1017 curp->ifa_netmask; in kvp_get_ip_info()
1018 w = addr6->sin6_addr.s6_addr32; in kvp_get_ip_info()
1030 strcat((char *)ip_buffer->sub_net, ";"); in kvp_get_ip_info()
1044 error = kvp_process_ip_address(curp->ifa_addr, in kvp_get_ip_info()
1045 curp->ifa_addr->sa_family, in kvp_get_ip_info()
1051 curp = curp->ifa_next; in kvp_get_ip_info()
1064 char *mac = (char *)kvp_ip_val->adapter_id; in kvp_mac_to_ip()
1084 entry->d_name); in kvp_mac_to_ip()
1109 if_name = entry->d_name; in kvp_mac_to_ip()
1116 if (!error && strlen((char *)kvp_ip_val->ip_addr)) in kvp_mac_to_ip()
1191 if ((x - start) <= out_len) { in parse_ip_val_buffer()
1193 *offset += (x - start) + 1; in parse_ip_val_buffer()
1300 return -EINVAL; in ip_version_check()
1323 return -1; in kvp_subnet_to_plen()
1341 return -EINVAL; in process_dns_gateway_nm()
1345 return -ENOMEM; in process_dns_gateway_nm()
1361 * do a bound check to avoid out-of bound writes in process_dns_gateway_nm()
1363 if ((OUTSTR_BUF_SIZE - strlen(output_str)) > in process_dns_gateway_nm()
1366 OUTSTR_BUF_SIZE - in process_dns_gateway_nm()
1367 strlen(output_str) - 1); in process_dns_gateway_nm()
1369 OUTSTR_BUF_SIZE - in process_dns_gateway_nm()
1370 strlen(output_str) - 1); in process_dns_gateway_nm()
1382 output_str[strlen(output_str) - 1] = '\0'; in process_dns_gateway_nm()
1456 * file: ifcfg-ethx (where ethx is the interface name). in kvp_set_ip_info()
1467 * or "none" if no boot-time protocol should be used) in kvp_set_ip_info()
1488 * mac-address=macaddr in kvp_set_ip_info()
1490 * interface-name=interface name in kvp_set_ip_info()
1494 * or "manual" if no boot-time protocol should be used) in kvp_set_ip_info()
1522 "/ifcfg-", if_name); in kvp_set_ip_info()
1566 error = kvp_write_file(nmfile, "interface-name", "", if_name); in kvp_set_ip_info()
1574 error = kvp_write_file(nmfile, "mac-address", "", mac_addr); in kvp_set_ip_info()
1584 * disto-specific script hv_set_ifconfig. in kvp_set_ip_info()
1590 if (new_val->dhcp_enabled) { in kvp_set_ip_info()
1600 error = process_ip_string(ifcfg_file, (char *)new_val->ip_addr, in kvp_set_ip_info()
1605 error = process_ip_string(ifcfg_file, (char *)new_val->sub_net, in kvp_set_ip_info()
1610 error = process_ip_string(ifcfg_file, (char *)new_val->gate_way, in kvp_set_ip_info()
1615 error = process_ip_string(ifcfg_file, (char *)new_val->dns_addr, DNS); in kvp_set_ip_info()
1642 error = process_ip_string_nm(nmfile, (char *)new_val->ip_addr, in kvp_set_ip_info()
1643 (char *)new_val->sub_net, in kvp_set_ip_info()
1662 if (new_val->dhcp_enabled) { in kvp_set_ip_info()
1693 (char *)new_val->gate_way, in kvp_set_ip_info()
1699 (char *)new_val->dns_addr, DNS, in kvp_set_ip_info()
1762 snprintf(buffer, length, "%s", info->ai_canonname); in kvp_get_domain_name()
1770 " -n, --no-daemon stay in foreground, don't daemonize\n" in print_usage()
1771 " -d, --debug Enable debug logs(syslog debug by default)\n" in print_usage()
1772 " -h, --help print this help\n", argv[0]); in print_usage()
1777 int kvp_fd = -1, len; in main()
1792 {"no-daemon", no_argument, 0, 'n' }, in main()
1798 &long_index)) != -1) { in main()
1822 * Retrieve OS release information. in main()
1840 if (kvp_fd != -1) in main()
1854 hv_msg->kvp_hdr.operation = KVP_OP_REGISTER1; in main()
1869 if (poll(&pfd, 1, -1) < 0) { in main()
1892 op = hv_msg->kvp_hdr.operation; in main()
1893 pool = hv_msg->kvp_hdr.pool; in main()
1894 hv_msg->error = HV_S_OK; in main()
1902 p = (char *)hv_msg->body.kvp_register.version; in main()
1916 kvp_ip_val = &hv_msg->body.kvp_ip_val; in main()
1921 hv_msg->error = error; in main()
1926 kvp_ip_val = &hv_msg->body.kvp_ip_val; in main()
1928 (char *)kvp_ip_val->adapter_id); in main()
1934 hv_msg->error = HV_GUID_NOTFOUND; in main()
1939 hv_msg->error = error; in main()
1946 hv_msg->body.kvp_set.data.key, in main()
1947 hv_msg->body.kvp_set.data.key_size, in main()
1948 hv_msg->body.kvp_set.data.value, in main()
1949 hv_msg->body.kvp_set.data.value_size)) in main()
1950 hv_msg->error = HV_S_CONT; in main()
1955 hv_msg->body.kvp_set.data.key, in main()
1956 hv_msg->body.kvp_set.data.key_size, in main()
1957 hv_msg->body.kvp_set.data.value, in main()
1958 hv_msg->body.kvp_set.data.value_size)) in main()
1959 hv_msg->error = HV_S_CONT; in main()
1964 hv_msg->body.kvp_delete.key, in main()
1965 hv_msg->body.kvp_delete.key_size)) in main()
1966 hv_msg->error = HV_S_CONT; in main()
1978 * both the key and the value; if not read from the in main()
1983 hv_msg->body.kvp_enum_data.index, in main()
1984 hv_msg->body.kvp_enum_data.data.key, in main()
1986 hv_msg->body.kvp_enum_data.data.value, in main()
1988 hv_msg->error = HV_S_CONT; in main()
1992 key_name = (char *)hv_msg->body.kvp_enum_data.data.key; in main()
1993 key_value = (char *)hv_msg->body.kvp_enum_data.data.value; in main()
1995 switch (hv_msg->body.kvp_enum_data.index) { in main()
2039 hv_msg->error = HV_S_CONT; in main()
2046 * by resetting the dev file, i.e. closing and re-opening it. in main()