From: Fredrik Tolf Date: Sat, 1 Sep 2007 12:15:44 +0000 (+0200) Subject: Merge branch 'master' of git.dolda2000.com:/srv/git/r/doldaconnect X-Git-Tag: 1.0~38 X-Git-Url: http://git.dolda2000.com/gitweb/?p=doldaconnect.git;a=commitdiff_plain;h=8efceeb63faf9c6968da9f4dfe581490dd6cd4b4;hp=-c Merge branch 'master' of git.dolda2000.com:/srv/git/r/doldaconnect --- 8efceeb63faf9c6968da9f4dfe581490dd6cd4b4 diff --combined clients/gui-shell/dsh.c index 62cf0e4,652e45e..1922aaf --- a/clients/gui-shell/dsh.c +++ b/clients/gui-shell/dsh.c @@@ -48,13 -48,13 +48,14 @@@ struct trinfo int ostate; int opos, spos, speed; time_t lastprog; + int warned; double sprog; }; void updatewrite(void); int remote = 0; +char *server; GtkStatusIcon *tray; pid_t dpid = 0, dcpid = 0; int connected = 0; @@@ -288,11 -288,14 +289,14 @@@ void updatetrinfo(void if(tri->opos != tr->curpos) { tri->opos = tr->curpos; tri->lastprog = now; + tri->warned = 0; } - #ifdef NOTIFY - if((tr->state = DC_TRNS_MAIN) && (now - tri->lastprog > 600)) { - if(dcpid == 0) + #ifdef HAVE_NOTIFY + if((tr->state = DC_TRNS_MAIN) && (now - tri->lastprog > 600) && !tri->warned) { + if(dcpid == 0) { notify(&trnote, "transfer.error", _("Transfer stalled"), _("The transfer of %ls from %ls has not made progress for 10 minutes"), getfilename(tr->path), tr->peernick); + tri->warned = 1; + } } #endif if((tr->state == DC_TRNS_MAIN) && (dnow - tri->sprog > 10)) { @@@ -379,7 -382,7 +383,7 @@@ void updatewrite(void void connectdc(void) { - if((dcfd = dc_connect(remote?NULL:dc_srv_local)) < 0) { + if((dcfd = dc_connect(server)) < 0) { msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Could not connect to server: %s"), strerror(errno)); exit(1); } @@@ -544,20 -547,14 +548,20 @@@ int main(int argc, char **argv textdomain(PACKAGE); signal(SIGCHLD, sighandler); dc_init(); + server = dc_srv_local; gtk_init(&argc, &argv); #ifdef HAVE_NOTIFY notify_init("Dolda Connect"); #endif - while((c = getopt(argc, argv, "rh")) != -1) { + while((c = getopt(argc, argv, "rhs:")) != -1) { switch(c) { case 'r': remote = 1; + server = NULL; + break; + case 's': + remote = 1; + server = optarg; break; case 'h': printf("usage: doldacond-shell [-hr]\n");