diff options
author | pjd <pjd@FreeBSD.org> | 2011-04-02 09:25:13 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2011-04-02 09:25:13 +0000 |
commit | 52d273ec9959ccf9598a661f0a5a837ee5579642 (patch) | |
tree | aa8444fa1d6e606bb8bcd8bbb619f18137d90429 | |
parent | 0a787e13ebdc9ffd37cc7980f2ba4f69d85ecb1b (diff) | |
download | FreeBSD-src-52d273ec9959ccf9598a661f0a5a837ee5579642.zip FreeBSD-src-52d273ec9959ccf9598a661f0a5a837ee5579642.tar.gz |
Declare directions for sockets between primary and secondary.
In HAST we use two sockets - one for only sending the data and one for only
receiving the data.
MFC after: 1 month
-rw-r--r-- | sbin/hastd/primary.c | 5 | ||||
-rw-r--r-- | sbin/hastd/secondary.c | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/sbin/hastd/primary.c b/sbin/hastd/primary.c index 2c5aa0f..7c7c93b 100644 --- a/sbin/hastd/primary.c +++ b/sbin/hastd/primary.c @@ -701,6 +701,11 @@ init_remote(struct hast_resource *res, struct proto_conn **inp, (void)hast_activemap_flush(res); } nv_free(nvin); + /* Setup directions. */ + if (proto_send(out, NULL, 0) == -1) + pjdlog_errno(LOG_WARNING, "Unable to set connection direction"); + if (proto_recv(in, NULL, 0) == -1) + pjdlog_errno(LOG_WARNING, "Unable to set connection direction"); pjdlog_info("Connected to %s.", res->hr_remoteaddr); if (inp != NULL && outp != NULL) { *inp = in; diff --git a/sbin/hastd/secondary.c b/sbin/hastd/secondary.c index f2e58bd..d47f8fa 100644 --- a/sbin/hastd/secondary.c +++ b/sbin/hastd/secondary.c @@ -183,6 +183,10 @@ init_remote(struct hast_resource *res, struct nv *nvin) unsigned char *map; size_t mapsize; + /* Setup direction. */ + if (proto_send(res->hr_remoteout, NULL, 0) == -1) + pjdlog_errno(LOG_WARNING, "Unable to set connection direction"); + map = NULL; mapsize = 0; nvout = nv_alloc(); @@ -346,6 +350,9 @@ init_remote(struct hast_resource *res, struct nv *nvin) if (map != NULL) free(map); nv_free(nvout); + /* Setup direction. */ + if (proto_recv(res->hr_remotein, NULL, 0) == -1) + pjdlog_errno(LOG_WARNING, "Unable to set connection direction"); if (res->hr_secondary_localcnt > res->hr_primary_remotecnt && res->hr_primary_localcnt > res->hr_secondary_remotecnt) { /* Exit on split-brain. */ |