Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use AC_SEARCH_LIBS() instead of AC_CHECK_LIB() to figure out if
[rsync/rsync.git]
/
io.c
diff --git
a/io.c
b/io.c
index
439f717
..
07909fe
100644
(file)
--- a/
io.c
+++ b/
io.c
@@
-119,14
+119,17
@@
struct flist_ndx_list {
static struct flist_ndx_list redo_list, hlink_list;
static struct flist_ndx_list redo_list, hlink_list;
-struct msg_list {
- struct msg_list *next;
+struct msg_list
_item
{
+ struct msg_list
_item
*next;
char *buf;
int len;
};
char *buf;
int len;
};
-static struct msg_list *msg_list_head;
-static struct msg_list *msg_list_tail;
+struct msg_list {
+ struct msg_list_item *head, *tail;
+};
+
+static struct msg_list msg_list;
static void flist_ndx_push(struct flist_ndx_list *lp, int ndx)
{
static void flist_ndx_push(struct flist_ndx_list *lp, int ndx)
{
@@
-224,9
+227,9
@@
void set_msg_fd_out(int fd)
/* Add a message to the pending MSG_* list. */
static void msg_list_add(int code, char *buf, int len)
{
/* Add a message to the pending MSG_* list. */
static void msg_list_add(int code, char *buf, int len)
{
- struct msg_list *ml;
+ struct msg_list
_item
*ml;
- if (!(ml = new(struct msg_list)))
+ if (!(ml = new(struct msg_list
_item
)))
out_of_memory("msg_list_add");
ml->next = NULL;
if (!(ml->buf = new_array(char, len+4)))
out_of_memory("msg_list_add");
ml->next = NULL;
if (!(ml->buf = new_array(char, len+4)))
@@
-234,21
+237,11
@@
static void msg_list_add(int code, char *buf, int len)
SIVAL(ml->buf, 0, ((code+MPLEX_BASE)<<24) | len);
memcpy(ml->buf+4, buf, len);
ml->len = len+4;
SIVAL(ml->buf, 0, ((code+MPLEX_BASE)<<24) | len);
memcpy(ml->buf+4, buf, len);
ml->len = len+4;
- if (msg_list
_
tail)
- msg_list
_
tail->next = ml;
+ if (msg_list
.
tail)
+ msg_list
.
tail->next = ml;
else
else
- msg_list_head = ml;
- msg_list_tail = ml;
-}
-
-void send_msg(enum msgcode code, char *buf, int len)
-{
- if (msg_fd_out < 0) {
- io_multiplex_write(code, buf, len);
- return;
- }
- msg_list_add(code, buf, len);
- msg_list_push(NORMAL_FLUSH);
+ msg_list.head = ml;
+ msg_list.tail = ml;
}
/* Read a message from the MSG_* fd and handle it. This is called either
}
/* Read a message from the MSG_* fd and handle it. This is called either
@@
-330,7
+323,7
@@
static void read_msg_fd(void)
/* Try to push messages off the list onto the wire. If we leave with more
* to do, return 0. On error, return -1. If everything flushed, return 1.
* This is only active in the receiver. */
/* Try to push messages off the list onto the wire. If we leave with more
* to do, return 0. On error, return -1. If everything flushed, return 1.
* This is only active in the receiver. */
-
int msg_list_p
ush(int flush_it_all)
+
static int msg_list_fl
ush(int flush_it_all)
{
static int written = 0;
struct timeval tv;
{
static int written = 0;
struct timeval tv;
@@
-339,8
+332,8
@@
int msg_list_push(int flush_it_all)
if (msg_fd_out < 0)
return -1;
if (msg_fd_out < 0)
return -1;
- while (msg_list
_
head) {
- struct msg_list
*ml = msg_list_
head;
+ while (msg_list
.
head) {
+ struct msg_list
_item *ml = msg_list.
head;
int n = write(msg_fd_out, ml->buf + written, ml->len - written);
if (n < 0) {
if (errno == EINTR)
int n = write(msg_fd_out, ml->buf + written, ml->len - written);
if (n < 0) {
if (errno == EINTR)
@@
-357,9
+350,9
@@
int msg_list_push(int flush_it_all)
check_timeout();
} else if ((written += n) == ml->len) {
free(ml->buf);
check_timeout();
} else if ((written += n) == ml->len) {
free(ml->buf);
- msg_list
_
head = ml->next;
- if (!msg_list
_
head)
- msg_list
_
tail = NULL;
+ msg_list
.
head = ml->next;
+ if (!msg_list
.
head)
+ msg_list
.
tail = NULL;
free(ml);
written = 0;
}
free(ml);
written = 0;
}
@@
-367,6
+360,16
@@
int msg_list_push(int flush_it_all)
return 1;
}
return 1;
}
+void send_msg(enum msgcode code, char *buf, int len)
+{
+ if (msg_fd_out < 0) {
+ io_multiplex_write(code, buf, len);
+ return;
+ }
+ msg_list_add(code, buf, len);
+ msg_list_flush(NORMAL_FLUSH);
+}
+
int get_redo_num(int itemizing, enum logcode code)
{
while (1) {
int get_redo_num(int itemizing, enum logcode code)
{
while (1) {
@@
-462,7
+465,7
@@
static int read_timeout(int fd, char *buf, size_t len)
FD_ZERO(&r_fds);
FD_ZERO(&w_fds);
FD_SET(fd, &r_fds);
FD_ZERO(&r_fds);
FD_ZERO(&w_fds);
FD_SET(fd, &r_fds);
- if (msg_list
_
head) {
+ if (msg_list
.
head) {
FD_SET(msg_fd_out, &w_fds);
if (msg_fd_out > maxfd)
maxfd = msg_fd_out;
FD_SET(msg_fd_out, &w_fds);
if (msg_fd_out > maxfd)
maxfd = msg_fd_out;
@@
-499,8
+502,8
@@
static int read_timeout(int fd, char *buf, size_t len)
continue;
}
continue;
}
- if (msg_list
_
head && FD_ISSET(msg_fd_out, &w_fds))
- msg_list_
p
ush(NORMAL_FLUSH);
+ if (msg_list
.
head && FD_ISSET(msg_fd_out, &w_fds))
+ msg_list_
fl
ush(NORMAL_FLUSH);
if (io_filesfrom_f_out >= 0) {
if (io_filesfrom_buflen) {
if (io_filesfrom_f_out >= 0) {
if (io_filesfrom_buflen) {
@@
-1145,7
+1148,7
@@
static void mplex_write(enum msgcode code, char *buf, size_t len)
void io_flush(int flush_it_all)
{
void io_flush(int flush_it_all)
{
- msg_list_
p
ush(flush_it_all);
+ msg_list_
fl
ush(flush_it_all);
if (!iobuf_out_cnt || no_flush)
return;
if (!iobuf_out_cnt || no_flush)
return;