12
int replace_user_group(int id, char *name, int nr,struct ip_range *addr);
/* 新增 MAC 地址用户组 */
int register_user_group_by_mac(char *name, int nr,char (*mac)[6]);
/* 替换用户组为 MAC 地址用户组
int replace_user_group_by_mac(int id, char *name, int nr,char (*mac)[6])
参数:
name[in]:组名,在系统中必须唯一,否则返回 ERR_NAME_EXIST;
nr[in]:addr 指针指向的数组成员数量,每个用户组最多支持 1000 个 IP段;
addr[in]:添加到组中的地址列表,每一个成员是 IP 地址范围;
id[in]: 用于 replace_user_group,是添加新组时得到的组ID;
返回值:
>=0 调用成功,其值为组号。
<0 注册失败,返回错误码
举例:
1、以 IP地址注册一个新用户,之后替换这个用户组的内容和名字
struct ip_rangeaddr[2];
intid;
addr[0].start.s_addr = htonl(0xc0a80101);
addr[0].end.s_addr = htonl(0xc0a80105);
addr[1].start.s_addr = htonl(0xc0a80110);
addr[1]. end.s_addr= htonl(0xc0a80115);
id = register_user_group(“test”, 2, addr);
/*test 用户组中有 2 段 IP*/
id = replace_user_group(id,“test2”, 1, addr);
/*修改后,用户组名字变成了 test2,id没有变化,
用户组中只有 addr[0]中的IP 范围了*/
2、以 MAC 地址注册一个新用户组
char mac[2][6];
intid;
mac[0][0] =80; mac[0][1] =11; mac[0][2]=22;
mac[0][3] =33; mac[0][4] =44; mac[0][5]=55;
mac[1][0] =90; mac[1][1] =12; mac[1][2]=23;
mac[1][3] =34; mac[1][4] =45; mac[1][5]=56;
id = register_user_group_by_mac(“test”, 2, mac);
/*注意:示例为了清晰展示程序逻辑,代码未判断调用返回值 */
用户组数据类型:user_group_mask_t
定义:
typedef unsigned long user_group_mask_t[BITS_TO_LONGS(256)]; /*支持256 位*/