X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=clients%2Fgnome-trans-applet%2Fconduit-dclib.c;h=2089f7ff384cb406da7296f7a3721ecd83ea97b0;hb=8c98a2a1baa0dac76b3ff6a072954eb146bb2cf2;hp=afc90c34ea4c24eaf6679d367a01f000eb1b1218;hpb=d3372da97568d5e1f35fa19787c8ec8af93a0435;p=doldaconnect.git diff --git a/clients/gnome-trans-applet/conduit-dclib.c b/clients/gnome-trans-applet/conduit-dclib.c index afc90c3..2089f7f 100644 --- a/clients/gnome-trans-applet/conduit-dclib.c +++ b/clients/gnome-trans-applet/conduit-dclib.c @@ -273,14 +273,11 @@ static int init(struct conduit *conduit) static int connect(struct conduit *conduit) { struct data *data; - char *host; data = conduit->cdata; if(inuse != NULL) return(-1); - if((host = getenv("DCSERVER")) == NULL) - host = "localhost"; - if((data->fd = dc_connect(host, -1)) < 0) + if((data->fd = dc_connect(NULL)) < 0) return(-1); data->gdkread = gdk_input_add(data->fd, GDK_INPUT_READ, (void (*)(gpointer, int, GdkInputCondition))dcfdcb, conduit); updatewrite(conduit); @@ -304,11 +301,31 @@ static void destroy(struct conduit *conduit) free(data); } +static int cancel(struct conduit *conduit, struct transfer *transfer) +{ + struct data *data; + struct dtdata *dtd; + struct dc_transfer *dt; + + data = conduit->cdata; + for(dt = dc_transfers; dt != NULL; dt = dt->next) + { + if(((dtd = dt->udata) != NULL) && (dtd->ct == transfer)) + { + dc_queuecmd(NULL, NULL, L"cancel", L"%%i", dt->id, NULL); + return(0); + } + } + errno = -ESRCH; + return(-1); +} + static struct conduitiface st_conduit_dclib = { .init = init, .connect = connect, .destroy = destroy, + .cancel = cancel, }; struct conduitiface *conduit_dclib = &st_conduit_dclib;