Deleted Added
full compact
proto.c (229778) proto.c (229945)
1/*-
2 * Copyright (c) 2009-2010 The FreeBSD Foundation
3 * All rights reserved.
4 *
5 * This software was developed by Pawel Jakub Dawidek under sponsorship from
6 * the FreeBSD Foundation.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 14 unchanged lines hidden (view full) ---

23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 */
29
30#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2009-2010 The FreeBSD Foundation
3 * All rights reserved.
4 *
5 * This software was developed by Pawel Jakub Dawidek under sponsorship from
6 * the FreeBSD Foundation.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 14 unchanged lines hidden (view full) ---

23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 */
29
30#include <sys/cdefs.h>
31__FBSDID("$FreeBSD: head/sbin/hastd/proto.c 229778 2012-01-07 16:09:33Z uqs $");
31__FBSDID("$FreeBSD: head/sbin/hastd/proto.c 229945 2012-01-10 22:39:07Z pjd $");
32
33#include <sys/types.h>
34#include <sys/queue.h>
35#include <sys/socket.h>
36
37#include <errno.h>
38#include <stdint.h>
39#include <string.h>

--- 374 unchanged lines hidden (view full) ---

414 struct timeval tv;
415 int fd;
416
417 PJDLOG_ASSERT(conn != NULL);
418 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
419 PJDLOG_ASSERT(conn->pc_proto != NULL);
420
421 fd = proto_descriptor(conn);
32
33#include <sys/types.h>
34#include <sys/queue.h>
35#include <sys/socket.h>
36
37#include <errno.h>
38#include <stdint.h>
39#include <string.h>

--- 374 unchanged lines hidden (view full) ---

414 struct timeval tv;
415 int fd;
416
417 PJDLOG_ASSERT(conn != NULL);
418 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
419 PJDLOG_ASSERT(conn->pc_proto != NULL);
420
421 fd = proto_descriptor(conn);
422 if (fd < 0)
422 if (fd == -1)
423 return (-1);
424
425 tv.tv_sec = timeout;
426 tv.tv_usec = 0;
423 return (-1);
424
425 tv.tv_sec = timeout;
426 tv.tv_usec = 0;
427 if (setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv)) < 0)
427 if (setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv)) == -1)
428 return (-1);
428 return (-1);
429 if (setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) < 0)
429 if (setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) == -1)
430 return (-1);
431
432 return (0);
433}
434
435void
436proto_close(struct proto_conn *conn)
437{
438
439 PJDLOG_ASSERT(conn != NULL);
440 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
441 PJDLOG_ASSERT(conn->pc_proto != NULL);
442 PJDLOG_ASSERT(conn->pc_proto->prt_close != NULL);
443
444 conn->pc_proto->prt_close(conn->pc_ctx);
445 proto_free(conn);
446}
430 return (-1);
431
432 return (0);
433}
434
435void
436proto_close(struct proto_conn *conn)
437{
438
439 PJDLOG_ASSERT(conn != NULL);
440 PJDLOG_ASSERT(conn->pc_magic == PROTO_CONN_MAGIC);
441 PJDLOG_ASSERT(conn->pc_proto != NULL);
442 PJDLOG_ASSERT(conn->pc_proto->prt_close != NULL);
443
444 conn->pc_proto->prt_close(conn->pc_ctx);
445 proto_free(conn);
446}