X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=clients%2Fgnome-trans-applet%2Fconduit-dclib.c;h=6ce3f82f403a928527a915582c1d9681caf254dd;hb=2f4cd43c4483070e81c0862582a80b59a208f0dd;hp=2089f7ff384cb406da7296f7a3721ecd83ea97b0;hpb=65bf229b6d9d28f097f5d71a4a6bd71424e17760;p=doldaconnect.git diff --git a/clients/gnome-trans-applet/conduit-dclib.c b/clients/gnome-trans-applet/conduit-dclib.c index 2089f7f..6ce3f82 100644 --- a/clients/gnome-trans-applet/conduit-dclib.c +++ b/clients/gnome-trans-applet/conduit-dclib.c @@ -84,8 +84,7 @@ static char *gettag(struct dc_transfer *dt) return(NULL); if((mbspath = icwcstombs(dt->path, "UTF-8")) == NULL) return(NULL); - /* XXX: Achtung! Too DC-specific! */ - if((p = strrchr(mbspath, '\\')) == NULL) + if((p = strrchr(mbspath, '/')) == NULL) p = mbspath; else p++; @@ -142,7 +141,7 @@ static void inittrans(struct conduit *conduit, struct dc_transfer *dt) dtd->conduit = conduit; dt->udata = dtd; dt->destroycb = dtfreecb; - dc_queuecmd(lstrargcb, dt, L"lstrarg", L"%%i", dt->id, NULL); + dc_queuecmd(lstrargcb, dt, L"lstrarg", L"%i", dt->id, NULL); } static void trlistcb(int resp, struct conduit *conduit) @@ -195,12 +194,12 @@ static void dcfdcb(struct conduit *conduit, int fd, GdkInputCondition condition) { if(!wcscmp(resp->cmdname, L".connect")) { - if(resp->code == 200) + if(dc_checkprotocol(resp, DC_LATEST)) { - dc_loginasync(NULL, 1, noconv, (void (*)(int, wchar_t *, void *))logincb, conduit); - } else { dc_disconnect(); disconnected(conduit); + } else { + dc_loginasync(NULL, 1, noconv, (void (*)(int, wchar_t *, void *))logincb, conduit); } } else if(!wcscmp(resp->cmdname, L".notify")) { dc_uimisc_handlenotify(resp); @@ -312,7 +311,7 @@ static int cancel(struct conduit *conduit, struct transfer *transfer) { if(((dtd = dt->udata) != NULL) && (dtd->ct == transfer)) { - dc_queuecmd(NULL, NULL, L"cancel", L"%%i", dt->id, NULL); + dc_queuecmd(NULL, NULL, L"cancel", L"%i", dt->id, NULL); return(0); } }