static void listen_callback(int fd){ int sockstat = socket_accept(fd,"read_callback","write_callback"); if(sockstat < 0){ debug("Couldn't accept on socket. errorcode: "+sockstat); return; } debug("uptime server: listening."); SendUptime(sockstat); }
static gboolean GuestInfoGather(gpointer data) { char name[256]; // Size is derived from the SUS2 specification // "Host names are limited to 255 bytes" char *osString = NULL; #if !defined(USERWORLD) gboolean disableQueryDiskInfo; GuestDiskInfo *diskInfo = NULL; #endif NicInfoV3 *nicInfo = NULL; ToolsAppCtx *ctx = data; g_debug("Entered guest info gather.\n"); /* Send tools version. */ if (!GuestInfoUpdateVmdb(ctx, INFO_BUILD_NUMBER, BUILD_NUMBER, 0)) { /* * An older vmx talking to new tools wont be able to handle * this message. Continue, if thats the case. */ g_warning("Failed to update VMDB with tools version.\n"); } /* Gather all the relevant guest information. */ osString = Hostinfo_GetOSName(); if (osString == NULL) { g_warning("Failed to get OS info.\n"); } else { if (!GuestInfoUpdateVmdb(ctx, INFO_OS_NAME_FULL, osString, 0)) { g_warning("Failed to update VMDB\n"); } } free(osString); osString = Hostinfo_GetOSGuestString(); if (osString == NULL) { g_warning("Failed to get OS info.\n"); } else { if (!GuestInfoUpdateVmdb(ctx, INFO_OS_NAME, osString, 0)) { g_warning("Failed to update VMDB\n"); } } free(osString); #if !defined(USERWORLD) disableQueryDiskInfo = g_key_file_get_boolean(ctx->config, CONFGROUPNAME_GUESTINFO, CONFNAME_GUESTINFO_DISABLEQUERYDISKINFO, NULL); if (!disableQueryDiskInfo) { if ((diskInfo = GuestInfo_GetDiskInfo()) == NULL) { g_warning("Failed to get disk info.\n"); } else { if (GuestInfoUpdateVmdb(ctx, INFO_DISK_FREE_SPACE, diskInfo, 0)) { GuestInfo_FreeDiskInfo(gInfoCache.diskInfo); gInfoCache.diskInfo = diskInfo; } else { g_warning("Failed to update VMDB\n."); GuestInfo_FreeDiskInfo(diskInfo); } } } #endif if (!System_GetNodeName(sizeof name, name)) { g_warning("Failed to get netbios name.\n"); } else if (!GuestInfoUpdateVmdb(ctx, INFO_DNS_NAME, name, 0)) { g_warning("Failed to update VMDB.\n"); } /* Get NIC information. */ if (!GuestInfo_GetNicInfo(&nicInfo)) { g_warning("Failed to get nic info.\n"); /* * Return an empty nic info. */ nicInfo = Util_SafeCalloc(1, sizeof (struct NicInfoV3)); } if (GuestInfo_IsEqual_NicInfoV3(nicInfo, gInfoCache.nicInfo)) { g_debug("Nic info not changed.\n"); GuestInfo_FreeNicInfo(nicInfo); } else if (GuestInfoUpdateVmdb(ctx, INFO_IPADDRESS, nicInfo, 0)) { /* * Since the update succeeded, free the old cached object, and assign * ours to the cache. */ GuestInfo_FreeNicInfo(gInfoCache.nicInfo); gInfoCache.nicInfo = nicInfo; } else { g_warning("Failed to update VMDB.\n"); GuestInfo_FreeNicInfo(nicInfo); } /* Send the uptime to VMX so that it can detect soft resets. */ SendUptime(ctx); return TRUE; }