throw new ArgumentException (Locale.GetText ("invalid group id"), "group");
}
- [Obsolete ("Use UnixGroupInfo(Mono.Unix.Native.Group)", true)]
- public UnixGroupInfo (Group group)
+ public UnixGroupInfo (Native.Group group)
{
- this.group = new Native.Group ();
- this.group.gr_name = group.gr_name;
- this.group.gr_passwd = group.gr_passwd;
- this.group.gr_gid = group.gr_gid;
- this.group.gr_mem = group.gr_mem;
+ this.group = CopyGroup (group);
}
- public UnixGroupInfo (Native.Group group)
+ private static Native.Group CopyGroup (Native.Group group)
{
- this.group = group;
+ Native.Group g = new Native.Group ();
+
+ g.gr_gid = group.gr_gid;
+ g.gr_mem = group.gr_mem;
+ g.gr_name = group.gr_name;
+ g.gr_passwd = group.gr_passwd;
+
+ return g;
}
public string GroupName {
get {return group.gr_gid;}
}
- [Obsolete ("Use GetMemberNames()", true)]
- public string[] Members {
- get {return group.gr_mem;}
- }
-
public UnixUserInfo[] GetMembers ()
{
UnixUserInfo[] members = new UnixUserInfo [group.gr_mem.Length];
public string[] GetMemberNames ()
{
- return group.gr_mem;
+ return (string[]) group.gr_mem.Clone ();
}
public override int GetHashCode ()
public Native.Group ToGroup ()
{
- return group;
+ return CopyGroup (group);
}
public static UnixGroupInfo[] GetLocalGroups ()