sock_ut.c
9eb54078
 /* 
  * $Id$
  * 
  * Copyright (C) 2010 iptelorg GmbH
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
  * copyright notice and this permission notice appear in all copies.
  *
  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 /** various socket related functions.
  * @file sock_ut.c
  * @ingroup: core 
  */
 /*
  * History:
  * --------
  *  2010-08-09  initial version (andrei)
 */
 
 #include "sock_ut.h"
 
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <netinet/in_systm.h>
 #include <netinet/ip.h>
 #include <errno.h>
 #include <arpa/inet.h>
 
 
 /** get the IP TTL.
  * @return ttl on success, < 0 on error
  */
 int sock_get_ttl(int sock)
 {
 	int ioptval;
 	unsigned int ioptvallen;
 
 	ioptvallen=sizeof(ioptval);
 	if (getsockopt( sock, IPPROTO_IP, IP_TTL, (void*) &ioptval,
 		    &ioptvallen) == -1 )
 	{
 		return -1;
 	}
 	return ioptval;
 }
 
 
 
 /** set the IP TTL on a socket.
  * @return ttl on success, < 0 on error
  */
 int sock_set_ttl(int sock, int ttl)
 {
 	int ioptval;
 
 	if (setsockopt( sock, IPPROTO_IP, IP_TTL, (void*) &ioptval,
 					sizeof(ioptval)) == -1 )
 		return -1;
 	return ioptval;
 }
 
 /* vi: set ts=4 sw=4 tw=79:ai:cindent: */