mcast_unblock_source函数
#include <errno.h>
#include <sys/socket.h> #define SA struct sockaddr int mcast_unblock_source(int sockfd, const SA *src,
socklen_t srclen,const SA *grp, socklen_t grplen)
{
#ifdef MCAST_UNBLOCK_SOURCE
struct group_source_req req;
req.gsr_interface = ;
if (grplen > sizeof(req.gsr_group) ||
srclen > sizeof(req.gsr_source)) {
errno = EINVAL;
return -;
}
memcpy(&req.gsr_group, grp, grplen);
memcpy(&req.gsr_source, src, srclen);
return (setsockopt(sockfd, family_to_level(grp->sa_family),
MCAST_UNBLOCK_SOURCE, &req, sizeof(req)));
#else
switch (grp->sa_family) {
#ifdef IP_UNBLOCK_SOURCE
case AF_INET: {
struct ip_mreq_source mreq; memcpy(&mreq.imr_multiaddr,
&((struct sockaddr_in *) grp)->sin_addr,
sizeof(struct in_addr));
memcpy(&mreq.imr_sourceaddr,
&((struct sockaddr_in *) src)->sin_addr,
sizeof(struct in_addr));
mreq.imr_interface.s_addr = htonl(INADDR_ANY); return(setsockopt(sockfd, IPPROTO_IP,
IP_UNBLOCK_SOURCE, &mreq, sizeof(mreq)));
}
#endif #ifdef IPV6
/* IPv6 source-specific API is MCAST_UNBLOCK_SOURCE */
case AF_INET6: {}
#endif
default: {
errno = EAFNOSUPPORT;
return(-);
}
}
#endif
}
mcast_unblock_source函数的更多相关文章
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- C++对C的函数拓展
一,内联函数 1.内联函数的概念 C++中的const常量可以用来代替宏常数的定义,例如:用const int a = 10来替换# define a 10.那么C++中是否有什么解决方案来替代宏代码 ...
- 菜鸟Python学习笔记第一天:关于一些函数库的使用
2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...
- javascript中的this与函数讲解
前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大家可以认为全局作用域其实就是Window函数的函数作用域,我们编写的js代码, ...
- 复杂的 Hash 函数组合有意义吗?
很久以前看到一篇文章,讲某个大网站储存用户口令时,会经过十分复杂的处理.怎么个复杂记不得了,大概就是先 Hash,结果加上一些特殊字符再 Hash,结果再加上些字符.再倒序.再怎么怎么的.再 Hash ...
- JS核心系列:浅谈函数的作用域
一.作用域(scope) 所谓作用域就是:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的. function scope(){ var foo = "global&quo ...
- C++中的时间函数
C++获取时间函数众多,何时该用什么函数,拿到的是什么时间?该怎么用?很多人都会混淆. 本文是本人经历了几款游戏客户端和服务器开发后,对游戏中时间获取的一点总结. 最早学习游戏客户端时,为了获取最精确 ...
随机推荐
- 使用Id访问table对象,使用Id访问Input对象
先看例子(好吧 无意中发现 可以通过Id访问DOM元素,如div) <!DOCTYPE html> <html> <head> <meta cha ...
- 8.10-Day2T3 镇守府
emm IOI原题(洛谷,bzoj都有) 其实并没有怎么搞懂dp方程转移那部分 就...粘个(抄来的)代码过来吧 #include<bits/stdc++.h> using namespa ...
- ubuntu 下的ftp详细配置
FTP(文件传输协议)是一个较老且最常用的标准网络协议,用于在两台计算机之间通过网络上传/下载文件.然而, FTP 最初的时候并不安全,因为它仅通过用户凭证(用户名和密码)传输数据,没有进行加密. 警 ...
- 自定义虚拟机MAC地址 | 它与 VMware 预留的 MAC 冲突 解法
https://blog.csdn.net/wangrui1573/article/details/82056020 问题:我想给VMware ESXi上的一台虚拟机分配一个静态的MAC地址.然而当我 ...
- Linux shell tr 命令详解
该随笔摘自 https://www.jb51.net/article/103892.htm Linux shell tr 命令详解 1. 用途 tr,translate的简写,主要用于压缩重复字符,删 ...
- C#中发ref和out
ref--Reference 引用 out--Output 输出 相同点: 代入参数时,前面必须加上ref out 关键字 都能在方法内对外部的变量的值进行更改 不同点: ref代入的参数必须 ...
- Linux双网卡bond、起子接口
适用场景 服务器两张网卡需要做bond,并且bond后网卡需配置不同网段的地址,用于走不同流量,这个时候就可以采用起子接口的方式. 实验场景 设备 服务器:Server_A 核心交换机:Switch_ ...
- 迅速看一下jdk8
一直在看java并发的感觉说的有点多,就看点简单的放松一下吧!这次来简单说一下jdk8,很久没用,都陌生了,仔细看看还挺有意思的,让我们大脑转化一个角度来写代码:因为我们现在平常大部分用jdk7写代码 ...
- 一些基础但有趣的shell脚本
一.打印9*9乘法表 #!/bin/bash for i in `seq 9` do for j in `seq $i` do echo -n "$i*$j=$[i*j]" don ...
- 在visual studio 2015 中调试caffe
看到这里,默认已经安装并编译过caffe了. 要学习caffe源码就要调试,在windows下调试.使用visual studio 2015调试caffe源码. 第一步:将生成caffe.lib的ca ...