diff options
author | Jiri Olsa <Jiri Olsa jolsa@redhat.com> | 2010-06-10 13:47:57 +0200 |
---|---|---|
committer | Jiri Olsa <Jiri Olsa jolsa@redhat.com> | 2010-06-10 13:47:57 +0200 |
commit | af10fc91903524328a3bb81daa8ac2cfb802a012 (patch) | |
tree | f0ef5ae2e245e7922f1ff1b25159e385c0cddf33 /src/net-proxy-udp.c | |
parent | 8bbcc6562aec27abe13d87b12010a01e0c36cf12 (diff) | |
download | tsnif-net-proxy.tar.gz tsnif-net-proxy.tar.xz tsnif-net-proxy.zip |
initial change 4 - address resolvingnet-proxy
Diffstat (limited to 'src/net-proxy-udp.c')
-rw-r--r-- | src/net-proxy-udp.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/net-proxy-udp.c b/src/net-proxy-udp.c index 996b793..70230fd 100644 --- a/src/net-proxy-udp.c +++ b/src/net-proxy-udp.c @@ -10,7 +10,7 @@ static int init_fd(struct tsnif_handle *h, struct tsnif_np_args *args, int server) { struct tsnif_np_handle *nph = &h->np; - struct sockaddr_in sa; + struct sockaddr_in *sa = &args->sa; int fd; fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); @@ -22,15 +22,9 @@ static int init_fd(struct tsnif_handle *h, struct tsnif_np_args *args, int serve nph->fd_udp = fd; if (server) { - memset((char *) &sa, 0, sizeof(sa)); - sa.sin_family = AF_INET; - sa.sin_port = htons(args->port); - /* XXX finish given host resolving */ - sa.sin_addr.s_addr = htonl(INADDR_ANY); - - if (-1 == bind(fd, &sa, sizeof(sa))) { + if (-1 == bind(fd, sa, sizeof(*sa))) { close(fd); - TSNIF_DEBUG(NP, "failed to bind to %d\n", args->port); + TSNIF_DEBUG(NP, "failed to bind\n"); return -1; } } @@ -80,11 +74,12 @@ int udp_send(struct tsnif_handle *h, struct trans_msg *msg) if (TSNIF_CMD_DATA == msg->cmd) memcpy(m->data, msg->data.ptr, msg->data.len); - if (TSNIF_NP_UDP_SERVER & nph->flags) + if (TSNIF_NP_UDP_SERVER & TSNIF_NP_FLAGS(nph)) return sendto(nph->fd_udp, m, size, 0, &nph->udp_client.sa, sizeof(nph->udp_client.sa)); - return send(nph->fd_udp, m, size, 0); + return sendto(nph->fd_udp, m, size, 0, + &nph->args->sa, sizeof(nph->args->sa)); } int udp_process(struct tsnif_handle *h) |