core: Make sure that responses to requests received on a WebSocket are sent on existi...
[sip-router] / sock_ut.c
1 /* 
2  * $Id$
3  * 
4  * Copyright (C) 2010 iptelorg GmbH
5  *
6  * Permission to use, copy, modify, and distribute this software for any
7  * purpose with or without fee is hereby granted, provided that the above
8  * copyright notice and this permission notice appear in all copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17  */
18 /** various socket related functions.
19  * @file sock_ut.c
20  * @ingroup: core 
21  */
22 /*
23  * History:
24  * --------
25  *  2010-08-09  initial version (andrei)
26 */
27
28 #include "sock_ut.h"
29
30 #include <sys/types.h>
31 #include <sys/socket.h>
32 #include <netinet/in.h>
33 #include <netinet/in_systm.h>
34 #include <netinet/ip.h>
35 #include <errno.h>
36 #include <arpa/inet.h>
37
38
39 /** get the IP TTL.
40  * @return ttl on success, < 0 on error
41  */
42 int sock_get_ttl(int sock)
43 {
44         int ioptval;
45         unsigned int ioptvallen;
46
47         ioptvallen=sizeof(ioptval);
48         if (getsockopt( sock, IPPROTO_IP, IP_TTL, (void*) &ioptval,
49                     &ioptvallen) == -1 )
50         {
51                 return -1;
52         }
53         return ioptval;
54 }
55
56
57
58 /** set the IP TTL on a socket.
59  * @return ttl on success, < 0 on error
60  */
61 int sock_set_ttl(int sock, int ttl)
62 {
63         int ioptval;
64
65         if (setsockopt( sock, IPPROTO_IP, IP_TTL, (void*) &ioptval,
66                                         sizeof(ioptval)) == -1 )
67                 return -1;
68         return ioptval;
69 }
70
71 /* vi: set ts=4 sw=4 tw=79:ai:cindent: */