Mercurial > audlegacy
comparison libaudacious/beepctrl.c @ 1582:d7af2755a397 trunk
[svn] - gcc 4.1.0, 4.1.1, 4.1.2 tree optimization workaround:
Remove read_all() and write_all() routines. They had no effect nor merit here, and generally caused trouble.
author | nenolod |
---|---|
date | Mon, 14 Aug 2006 17:55:44 -0700 |
parents | 68aec931b0b6 |
children | 58f3eb64f390 |
comparison
equal
deleted
inserted
replaced
1581:68aec931b0b6 | 1582:d7af2755a397 |
---|---|
43 | 43 |
44 #ifdef HAVE_UNISTD_H | 44 #ifdef HAVE_UNISTD_H |
45 #include <unistd.h> | 45 #include <unistd.h> |
46 #endif | 46 #endif |
47 | 47 |
48 static gint | |
49 read_all(gint fd, gpointer buf, size_t count) | |
50 { | |
51 size_t left = count; | |
52 gint r; | |
53 | |
54 do { | |
55 if ((r = read(fd, buf, left)) < 0) { | |
56 count = -1; | |
57 break; | |
58 } | |
59 left -= r; | |
60 buf = (gchar *) buf + r; | |
61 } | |
62 while (left > 0); | |
63 | |
64 return count - left; | |
65 } | |
66 | |
67 static gint | |
68 write_all(gint fd, gconstpointer buf, size_t count) | |
69 { | |
70 size_t left = count; | |
71 gint written; | |
72 | |
73 do { | |
74 if ((written = write(fd, buf, left)) < 0) { | |
75 count = -1; | |
76 break; | |
77 } | |
78 left -= written; | |
79 buf = (gchar *) buf + written; | |
80 } | |
81 while (left > 0); | |
82 | |
83 return count - left; | |
84 } | |
85 | |
86 static gpointer | 48 static gpointer |
87 remote_read_packet(gint fd, ServerPktHeader * pkt_hdr) | 49 remote_read_packet(gint fd, ServerPktHeader * pkt_hdr) |
88 { | 50 { |
89 gpointer data = NULL; | 51 gpointer data = NULL; |
90 | 52 |
91 if (read_all(fd, pkt_hdr, sizeof(ServerPktHeader)) == | 53 if (read(fd, pkt_hdr, sizeof(ServerPktHeader)) == |
92 sizeof(ServerPktHeader)) { | 54 sizeof(ServerPktHeader)) { |
93 if (pkt_hdr->data_length) { | 55 if (pkt_hdr->data_length) { |
94 size_t data_length = pkt_hdr->data_length; | 56 size_t data_length = pkt_hdr->data_length; |
95 data = g_malloc0(data_length); | 57 data = g_malloc0(data_length); |
96 if ((size_t)read_all(fd, data, data_length) < data_length) { | 58 if ((size_t)read(fd, data, data_length) < data_length) { |
97 g_free(data); | 59 g_free(data); |
98 data = NULL; | 60 data = NULL; |
99 } | 61 } |
100 } | 62 } |
101 } | 63 } |
121 ClientPktHeader pkt_hdr; | 83 ClientPktHeader pkt_hdr; |
122 | 84 |
123 pkt_hdr.version = XMMS_PROTOCOL_VERSION; | 85 pkt_hdr.version = XMMS_PROTOCOL_VERSION; |
124 pkt_hdr.command = command; | 86 pkt_hdr.command = command; |
125 pkt_hdr.data_length = data_length; | 87 pkt_hdr.data_length = data_length; |
126 if ((size_t)write_all(fd, &pkt_hdr, sizeof(ClientPktHeader)) < sizeof(pkt_hdr)) | 88 if ((size_t)write(fd, &pkt_hdr, sizeof(ClientPktHeader)) < sizeof(pkt_hdr)) |
127 return; | 89 return; |
128 if (data_length && data) | 90 if (data_length && data) |
129 write_all(fd, data, data_length); | 91 write(fd, data, data_length); |
130 } | 92 } |
131 | 93 |
132 static void | 94 static void |
133 remote_send_guint32(gint session, guint32 cmd, guint32 val) | 95 remote_send_guint32(gint session, guint32 cmd, guint32 val) |
134 { | 96 { |