summaryrefslogtreecommitdiff
path: root/netcon/Intercept.c
diff options
context:
space:
mode:
authorJoseph Henry <josephjah@gmail.com>2016-01-13 15:52:15 -0800
committerJoseph Henry <josephjah@gmail.com>2016-01-13 15:52:15 -0800
commit5e30eabd30df01d5a186accef05c09fadbd4f21c (patch)
treecba5a9359d6c2ea29f9a748c795f2bd2935acb38 /netcon/Intercept.c
parent7bba867ce83a7de6167880df6318df74d8150276 (diff)
downloadinfinitytier-5e30eabd30df01d5a186accef05c09fadbd4f21c.tar.gz
infinitytier-5e30eabd30df01d5a186accef05c09fadbd4f21c.zip
Updated getsockopt/setsockopt, removed unused code
Diffstat (limited to 'netcon/Intercept.c')
-rw-r--r--netcon/Intercept.c27
1 files changed, 4 insertions, 23 deletions
diff --git a/netcon/Intercept.c b/netcon/Intercept.c
index 8e479d84..9c4feedf 100644
--- a/netcon/Intercept.c
+++ b/netcon/Intercept.c
@@ -88,16 +88,6 @@ static int connected_to_service(int sockfd)
return 0;
}
-/*static void my_dest(void) __attribute__ ((destructor));
-static void my_dest(void) {
- dwr(MSG_DEBUG,"closing connections to service...\n");
- rpc_mutex_destroy();
-}*/
-
-/* Private Function Prototypes */
-/*static void _init(void) __attribute__ ((constructor));
-static void _init(void) { set_up_intercept(); } */
-
/* get symbols and initialize mutexes */
static int set_up_intercept()
{
@@ -137,18 +127,13 @@ int setsockopt(SETSOCKOPT_SIG)
return realsetsockopt(socket, level, option_name, option_value, option_len);
dwr(MSG_DEBUG,"setsockopt(%d)\n", socket);
- /* return(realsetsockopt(socket, level, option_name, option_value, option_len)); */
if(level == SOL_IPV6 && option_name == IPV6_V6ONLY)
return 0;
- if(level == SOL_IP && option_name == IP_TTL)
+ if(level == SOL_IP && (option_name == IP_TTL || option_name == IP_TOS))
return 0;
if(level == IPPROTO_TCP || (level == SOL_SOCKET && option_name == SO_KEEPALIVE))
return 0;
- /* make sure we don't touch any standard outputs */
- if(socket == STDIN_FILENO || socket == STDOUT_FILENO || socket == STDERR_FILENO)
- return(realsetsockopt(socket, level, option_name, option_value, option_len));
- int err = realsetsockopt(socket, level, option_name, option_value, option_len);
- if(err < 0)
+ if(realsetsockopt(socket, level, option_name, option_value, option_len) < 0)
perror("setsockopt():\n");
return 0;
}
@@ -160,13 +145,9 @@ int setsockopt(SETSOCKOPT_SIG)
/* int sockfd, int level, int optname, void *optval, socklen_t *optlen */
int getsockopt(GETSOCKOPT_SIG)
{
- if (!set_up_intercept())
- return realgetsockopt(sockfd, level, optname, optval, optlen);
-
dwr(MSG_DEBUG,"getsockopt(%d)\n", sockfd);
- if(!connected_to_service(sockfd)) {
+ if (!set_up_intercept() || !connected_to_service(sockfd))
return realgetsockopt(sockfd, level, optname, optval, optlen);
- }
if(optname == SO_TYPE) {
int* val = (int*)optval;
*val = 2;
@@ -508,7 +489,7 @@ int getsockname(GETSOCKNAME_SIG)
if(rpcfd > -1)
if(read(rpcfd, &addrbuf, sizeof(struct sockaddr_storage)) > 0)
close(rpcfd);
-
+
struct sockaddr_storage sock_storage;
memcpy(&sock_storage, addrbuf, sizeof(struct sockaddr_storage));
*addrlen = sizeof(struct sockaddr_in);