SO_LINGER test
[corutils.git] / test_connect2.c
blobf84d39bde69d3009732b9a30d1b934c3c7f3b985
2 /**
3 * Connection oriented routing user space utils
4 * Copyright (C) 2009-2011
5 * Authors:
6 * Michael Blizek
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 * 02110-1301, USA.
24 #include <stdio.h>
25 #include <sys/types.h>
26 #include <sys/socket.h>
27 #include <string.h>
29 #include "libcor.h"
31 int main(void)
33 struct cor_sockaddr addr;
35 int fd, rc;
37 struct linger so_linger;
39 memset(&addr, 0, sizeof(struct cor_sockaddr));
41 addr.sin_family = AF_COR;
43 addr.addr[0] = 1;
44 addr.port = htons(1);
46 fd = socket(PF_COR, SOCK_STREAM, 0);
47 printf("socket\n");
48 if(fd < 0) {
49 perror("socket");
50 goto early_out;
53 rc = connect(fd, (struct sockaddr *) &addr,
54 sizeof(struct cor_sockaddr));
55 printf("connect\n");
56 if(rc < 0) {
57 perror("connect");
58 goto out;
61 so_linger.l_onoff = 1;
62 so_linger.l_linger = 30;
63 rc = setsockopt(fd, SOL_SOCKET, SO_LINGER, &so_linger, sizeof so_linger);
64 printf("setsockopt\n");
65 if(rc < 0) {
66 perror("setsockopt");
67 goto out;
70 /* rc = shutdown(fd, SHUT_RDWR);
71 printf("shutdown\n");
72 if(rc < 0) {
73 perror("shutdown");
74 goto out;
77 sleep(10);*/
79 out:
80 close(fd);
82 early_out:
84 return 0;