* [Qemu-devel] [RFC PATCH v3 9/9] repagent: Moved to use qemu-socket instead of platform dependent.
@ 2012-04-05 12:20 Ori Mamluk
0 siblings, 0 replies; only message in thread
From: Ori Mamluk @ 2012-04-05 12:20 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, Roni Luxenberg, Stefan Hajnoczi, dlaor,
Anthony Liguori, Oded Kedem, Yair Kuszpet, Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 4613 bytes --]
Used as repagent patch v3
---
block/repagent/repagent.c | 4 ++--
block/repagent/repagent.h | 2 +-
block/repagent/repagent_client.c | 35 ++++++++---------------------------
3 files changed, 11 insertions(+), 30 deletions(-)
diff --git a/block/repagent/repagent.c b/block/repagent/repagent.c
index a5c0636..5dd26dd 100644
--- a/block/repagent/repagent.c
+++ b/block/repagent/repagent.c
@@ -214,7 +214,7 @@ static void repagent_report_volumes_to_hub(void)
}
}
-bool repaget_start_protect(RepCmdStartProtect *pcmd,
+bool repagent_start_protect(RepCmdStartProtect *pcmd,
RepCmdDataStartProtect *pcmd_data)
{
printf("Start protect vol %s, ID %llu\n", pcmd_data->volume_name,
@@ -262,7 +262,7 @@ bool repagent_remote_io(RepCmdRemoteIoReq *pcmd,
uint8_t *pdata)
RepagentVolume *vol = repagent_get_volume_by_id(pcmd->volume_id);
int size_bytes = pcmd->size_sectors * 512;
if (vol == NULL) {
- printf("Vol read - Could not find vol id %llx\n",
+ printf("Remote IO - Could not find vol id %llx\n",
(unsigned long long int) pcmd->volume_id);
RepCmdRemoteIoRes *p_res_cmd = (RepCmdRemoteIoRes *) repcmd_new(
REPHUB_CMD_REMOTE_IO_RES, 0, NULL);
diff --git a/block/repagent/repagent.h b/block/repagent/repagent.h
index 157a9b6..66c63d2 100644
--- a/block/repagent/repagent.h
+++ b/block/repagent/repagent.h
@@ -43,7 +43,7 @@ void repagent_handle_protected_write(BlockDriverState *bs,
void repagent_register_drive(const char *drive_path,
BlockDriverState *driver_ptr);
void repagent_deregister_drive(BlockDriverState *driver_ptr);
-bool repaget_start_protect(RepCmdStartProtect *pcmd,
+bool repagent_start_protect(RepCmdStartProtect *pcmd,
RepCmdDataStartProtect *pcmd_data);
bool repagent_remote_io(struct RepCmdRemoteIoReq *pcmd, uint8_t *pdata);
void repagent_client_connected(void);
diff --git a/block/repagent/repagent_client.c
b/block/repagent/repagent_client.c
index 2e57ed0..bfd1778 100644
--- a/block/repagent/repagent_client.c
+++ b/block/repagent/repagent_client.c
@@ -27,15 +27,12 @@
#include "repagent_client.h"
#include "repagent.h"
#include "main-loop.h"
+#include "qemu_socket.h"
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
-#include <resolv.h>
-#include <sys/socket.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
#include <unistd.h>
#define ZERO_MEM_OBJ(pObj) memset(pObj, 0, sizeof(*pObj))
@@ -70,38 +67,22 @@ void *repagent_listen(void *pParam)
printf("Creating repagent listener thread...\n");
g_free(pServerParams);
- struct sockaddr_in my_addr;
-
int err;
int retries = 0;
- g_client_state.hsock = socket(AF_INET, SOCK_STREAM, 0);
+ g_client_state.hsock = qemu_socket(AF_INET, SOCK_STREAM, 0);
if (g_client_state.hsock == -1) {
printf("Error initializing socket %d\n", errno);
return (void *) -1;
}
- int param = 1;
-
- if ((setsockopt(g_client_state.hsock, SOL_SOCKET, SO_REUSEADDR,
- (char *) ¶m, sizeof(int)) == -1)
- || (setsockopt(g_client_state.hsock, SOL_SOCKET, SO_KEEPALIVE,
- (char *) ¶m, sizeof(int)) == -1)) {
- printf("Error setting options %d\n", errno);
- return (void *) -1;
- }
-
- my_addr.sin_family = AF_INET;
- my_addr.sin_port = htons(host_port);
- memset(&(my_addr.sin_zero), 0, 8);
-
- my_addr.sin_addr.s_addr = inet_addr(host_name);
-
+ int opts_str_len = strlen(host_name) + 2 + 10;
+ char opts[opts_str_len];
+ snprintf(opts, opts_str_len, "%s:%u", host_name, pServerParams->port);
/* Reconnect loop */
while (!g_client_state.is_terminate_receive) {
-
- if (connect(g_client_state.hsock, (struct sockaddr *) &my_addr,
- sizeof(my_addr)) == -1) {
+ g_client_state.hsock = inet_connect(opts, SOCK_STREAM);
+ if (g_client_state.hsock < 0) {
err = errno;
if (err != EINPROGRESS) {
retries++;
@@ -144,7 +125,7 @@ void repagent_process_cmd(RepCmd *pcmd, uint8_t *pdata,
void *clientPtr)
printf("Repagent got cmd %d\n", pcmd->hdr.cmdid);
switch (pcmd->hdr.cmdid) {
case REPHUB_CMD_START_PROTECT: {
- is_free_data = repaget_start_protect((RepCmdStartProtect *) pcmd,
+ is_free_data = repagent_start_protect((RepCmdStartProtect *) pcmd,
(RepCmdDataStartProtect *) pdata);
}
break;
--
1.7.6.5
[-- Attachment #2: Type: text/html, Size: 8835 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2012-04-05 12:21 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-05 12:20 [Qemu-devel] [RFC PATCH v3 9/9] repagent: Moved to use qemu-socket instead of platform dependent Ori Mamluk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).