X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=lib%2Fuimisc.c;h=e0a37ef0caed7fb4b78f28148f811194d727571f;hb=5cccc2d5af152f67e5bb77b41403f74403926235;hp=d989e1ef7aa372e06194e0750e640b5cd9ff0328;hpb=cece2a51a8039efc3d67f37b11b7c8122641cd85;p=doldaconnect.git diff --git a/lib/uimisc.c b/lib/uimisc.c index d989e1e..e0a37ef 100644 --- a/lib/uimisc.c +++ b/lib/uimisc.c @@ -1218,14 +1218,22 @@ void dc_uimisc_handlenotify(struct dc_response *resp) 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: @@ -1238,7 +1246,7 @@ void dc_uimisc_handlenotify(struct dc_response *resp) free(peer->nick); peer->nick = swcsdup(ires->argv[2].val.str); } - for(i = 3; i < resp->rlines[0].argc; i += 3) + for(i = 4; i < resp->rlines[0].argc; i += 3) { switch(wcstol(resp->rlines[0].argv[i + 1], NULL, 10)) { @@ -1253,6 +1261,8 @@ void dc_uimisc_handlenotify(struct dc_response *resp) break; } } + if(fn->chpeercb != NULL) + fn->chpeercb(peer); } } break;