PRL_RESULT pret;
PRL_UINT32 serialPortIndex;
PRL_UINT32 emulatedType;
- char *friendlyName = NULL;
+ g_autofree char *friendlyName = NULL;
PRL_SERIAL_PORT_SOCKET_OPERATION_MODE socket_mode;
- char *uristr = NULL;
+ g_autofree char *uristr = NULL;
g_autoptr(virURI) uri = NULL;
- int ret = -1;
chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL;
pret = PrlVmDev_GetIndex(serialPort, &serialPortIndex);
- prlsdkCheckRetGoto(pret, cleanup);
+ prlsdkCheckRetExit(pret, -1);
chr->target.port = serialPortIndex;
pret = PrlVmDev_GetEmulatedType(serialPort, &emulatedType);
- prlsdkCheckRetGoto(pret, cleanup);
+ prlsdkCheckRetExit(pret, -1);
if (!(friendlyName = prlsdkGetStringParamVar(PrlVmDev_GetFriendlyName,
serialPort)))
- goto cleanup;
+ return -1;
pret = PrlVmDevSerial_GetSocketMode(serialPort, &socket_mode);
- prlsdkCheckRetGoto(pret, cleanup);
+ prlsdkCheckRetExit(pret, -1);
switch (emulatedType) {
case PDT_USE_OUTPUT_FILE:
chr->source->type = VIR_DOMAIN_CHR_TYPE_TCP;
uristr = g_strdup_printf("tcp://%s", friendlyName);
if (!(uri = virURIParse(uristr)))
- goto cleanup;
+ return -1;
chr->source->data.tcp.host = g_strdup(uri->server);
chr->source->data.tcp.service = g_strdup_printf("%d", uri->port);
chr->source->data.tcp.listen = socket_mode == PSP_SERIAL_SOCKET_SERVER;
chr->source->type = VIR_DOMAIN_CHR_TYPE_UDP;
uristr = g_strdup_printf("udp://%s", friendlyName);
if (!(uri = virURIParse(uristr)))
- goto cleanup;
+ return -1;
chr->source->data.udp.bindHost = g_strdup(uri->server);
chr->source->data.udp.bindService = g_strdup_printf("%d", uri->port);
chr->source->data.udp.connectHost = g_strdup(uri->server);
default:
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unknown serial type: %X"), emulatedType);
- goto cleanup;
- break;
+ return -1;
}
- ret = 0;
-
- cleanup:
- VIR_FREE(friendlyName);
- VIR_FREE(uristr);
-
- return ret;
+ return 0;
}