void *udata;
struct dc_fnetpeer *peers;
struct dc_fnetpeerdatum *peerdata;
+ void (*newpeercb)(struct dc_fnetpeer *peer);
+ void (*delpeercb)(struct dc_fnetpeer *peer);
+ void (*chpeercb)(struct dc_fnetpeer *peer);
};
struct dc_fnetpeerdatum
if((fn = dc_findfnetnode(ires->argv[0].val.num)) != NULL)
{
if((peer = dc_fnetfindpeer(fn, ires->argv[1].val.str)) == NULL)
- addpeer(fn, ires->argv[1].val.str, ires->argv[2].val.str);
+ {
+ peer = addpeer(fn, ires->argv[1].val.str, ires->argv[2].val.str);
+ if(fn->newpeercb != NULL)
+ fn->newpeercb(peer);
+ }
}
break;
case 631:
if((fn = dc_findfnetnode(ires->argv[0].val.num)) != NULL)
{
if((peer = dc_fnetfindpeer(fn, ires->argv[1].val.str)) != NULL)
+ {
+ if(fn->delpeercb != NULL)
+ fn->delpeercb(peer);
delpeer(peer);
+ }
}
break;
case 632:
break;
}
}
+ if(fn->chpeercb != NULL)
+ fn->chpeercb(peer);
}
}
break;