Dolda2000 GitWeb
/
doldaconnect.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Removed obsolete code in fnet-dc.c.
[doldaconnect.git]
/
clients
/
gui-shell
/
dsh.c
diff --git
a/clients/gui-shell/dsh.c
b/clients/gui-shell/dsh.c
index
652e45e
..
8e10cc8
100644
(file)
--- a/
clients/gui-shell/dsh.c
+++ b/
clients/gui-shell/dsh.c
@@
-30,6
+30,7
@@
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
#include <stdarg.h>
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
#include <stdarg.h>
+#include <stdint.h>
#include <doldaconnect/uilib.h>
#include <doldaconnect/uimisc.h>
#include <doldaconnect/utils.h>
#include <doldaconnect/uilib.h>
#include <doldaconnect/uimisc.h>
#include <doldaconnect/utils.h>
@@
-46,7
+47,8
@@
struct trinfo {
int ostate;
struct trinfo {
int ostate;
- int opos, spos, speed;
+ intmax_t opos, spos;
+ int speed;
time_t lastprog;
int warned;
double sprog;
time_t lastprog;
int warned;
double sprog;
@@
-55,6
+57,7
@@
struct trinfo {
void updatewrite(void);
int remote = 0;
void updatewrite(void);
int remote = 0;
+char *server;
GtkStatusIcon *tray;
pid_t dpid = 0, dcpid = 0;
int connected = 0;
GtkStatusIcon *tray;
pid_t dpid = 0, dcpid = 0;
int connected = 0;
@@
-201,7
+204,8
@@
void updatetooltip(void)
{
struct dc_transfer *tr;
struct trinfo *tri;
{
struct dc_transfer *tr;
struct trinfo *tri;
- int t, i, a, st, bc, bt;
+ int t, i, a, st;
+ intmax_t bc, bt;
char *buf;
size_t bufsize, bufdata;
char *buf;
size_t bufsize, bufdata;
@@
-382,7
+386,7
@@
void updatewrite(void)
void connectdc(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);
}
msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Could not connect to server: %s"), strerror(errno));
exit(1);
}
@@
-395,6
+399,7
@@
void startdaemon(void)
{
char pf[1024];
int pfd[2], i;
{
char pf[1024];
int pfd[2], i;
+ sigset_t ss;
if(getenv("HOME") != NULL)
snprintf(pf, sizeof(pf), "%s/.doldacond.pid", getenv("HOME"));
if(getenv("HOME") != NULL)
snprintf(pf, sizeof(pf), "%s/.doldacond.pid", getenv("HOME"));
@@
-402,7
+407,11
@@
void startdaemon(void)
snprintf(pf, sizeof(pf), "%s/.doldacond.pid", getpwuid(getuid())->pw_dir);
if(access(pf, F_OK) || !running(pf)) {
pipe(pfd);
snprintf(pf, sizeof(pf), "%s/.doldacond.pid", getpwuid(getuid())->pw_dir);
if(access(pf, F_OK) || !running(pf)) {
pipe(pfd);
+ sigemptyset(&ss);
+ sigaddset(&ss, SIGCHLD);
+ sigprocmask(SIG_BLOCK, &ss, NULL);
if((dpid = fork()) == 0) {
if((dpid = fork()) == 0) {
+ sigprocmask(SIG_UNBLOCK, &ss, NULL);
dup2(pfd[1], 2);
for(i = 3; i < FD_SETSIZE; i++)
close(i);
dup2(pfd[1], 2);
for(i = 3; i < FD_SETSIZE; i++)
close(i);
@@
-418,6
+427,7
@@
void startdaemon(void)
create_start_wnd();
gtk_widget_show(start_wnd);
gtk_status_icon_set_tooltip(tray, _("Starting..."));
create_start_wnd();
gtk_widget_show(start_wnd);
gtk_status_icon_set_tooltip(tray, _("Starting..."));
+ sigprocmask(SIG_UNBLOCK, &ss, NULL);
} else {
connectdc();
}
} else {
connectdc();
}
@@
-547,19
+557,29
@@
int main(int argc, char **argv)
textdomain(PACKAGE);
signal(SIGCHLD, sighandler);
dc_init();
textdomain(PACKAGE);
signal(SIGCHLD, sighandler);
dc_init();
+ server = dc_srv_local;
gtk_init(&argc, &argv);
#ifdef HAVE_NOTIFY
notify_init("Dolda Connect");
#endif
gtk_init(&argc, &argv);
#ifdef HAVE_NOTIFY
notify_init("Dolda Connect");
#endif
- while((c = getopt(argc, argv, "
rh
")) != -1) {
+ while((c = getopt(argc, argv, "
Vrhs:
")) != -1) {
switch(c) {
case 'r':
remote = 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");
printf("\t-h\tDisplay this help message\n");
printf("\t-r\tConnect to a remote host\n");
break;
case 'h':
printf("usage: doldacond-shell [-hr]\n");
printf("\t-h\tDisplay this help message\n");
printf("\t-r\tConnect to a remote host\n");
+ printf("\t-V\tDisplay version info and exit\n");
+ exit(0);
+ case 'V':
+ printf("%s", RELEASEINFO);
exit(0);
default:
fprintf(stderr, "usage: doldacond-shell [-hr]\n");
exit(0);
default:
fprintf(stderr, "usage: doldacond-shell [-hr]\n");