PERFORCE change 125661 for review
Matus Harvan
mharvan at FreeBSD.org
Sat Aug 25 05:06:20 PDT 2007
http://perforce.freebsd.org/chv.cgi?CH=125661
Change 125661 by mharvan at mharvan_bike-planet on 2007/08/25 12:05:34
bugfix in plugin_send of the UDP plugin
Affected files ...
.. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_udp.c#13 edit
Differences ...
==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_udp.c#13 (text+ko) ====
@@ -208,7 +208,7 @@
data->fd = udp_open(port);
if (data->fd != -1)
data->state = PLUGIN_STATE_INITIALIZED;
- } else {
+ } else { /* client */
data->fd = udp_connect(host, port);
if (data->fd != -1)
data->state = PLUGIN_STATE_CONNECTED;
@@ -303,7 +303,8 @@
struct plugin_udp_data *datapl = (struct plugin_udp_data*) pl->data;
int nwrite = 0;
struct conn *conn = &(datapl->conns[clid]);
-
+ *consumed = 0;
+
if (server) {
nwrite = sendto(datapl->fd, data, len, 0,
(struct sockaddr*)&conn->addr,
@@ -319,11 +320,15 @@
if (datapl->state != PLUGIN_STATE_CONNECTED) {
debug("not connected yet, discarding data\n");
return (SEND_ERROR);
+ }
+ nwrite = send(datapl->fd, data, len, 0);
+ if (nwrite == len) {
+ *consumed = nwrite;
+ return (SEND_PKT_SENT);
} else {
- *consumed = nwrite;
- nwrite = send(datapl->fd, data, len, 0);
+ warn("plugin_send: send returned %d", nwrite);
+ return (SEND_ERROR);
}
- return (SEND_PKT_SENT);
}
}
More information about the p4-projects
mailing list