X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udevsend.c;h=223647785d73a17af57fbf0b3481550e35e95dcc;hp=415207d8ca26d8108a90d17cff7b83a93abdaf5c;hb=872344c41094f636fd667b9e619f8f219d814605;hpb=0be0c18de37b463f40c649f1b66b7683f2bf836b diff --git a/udevsend.c b/udevsend.c index 415207d8c..223647785 100644 --- a/udevsend.c +++ b/udevsend.c @@ -125,7 +125,9 @@ int main(int argc, char* argv[]) int sock; struct sockaddr_un saddr; +#ifdef DEBUG init_logging("udevsend"); +#endif subsystem = argv[1]; if (subsystem == NULL) { @@ -146,11 +148,10 @@ int main(int argc, char* argv[]) } seqnum = get_seqnum(); - if (seqnum == NULL) { - dbg("no seqnum"); - goto exit; - } - seq = atoi(seqnum); + if (seqnum == NULL) + seq = 0; + else + seq = atoi(seqnum); sock = socket(AF_LOCAL, SOCK_STREAM, 0); if (sock == -1) { @@ -160,10 +161,11 @@ int main(int argc, char* argv[]) memset(&saddr, 0x00, sizeof(saddr)); saddr.sun_family = AF_LOCAL; - strcpy(saddr.sun_path, UDEVD_SOCK); + /* use abstract namespace for socket path */ + strcpy(&saddr.sun_path[1], UDEVD_SOCK_PATH); /* try to connect, if it fails start daemon */ - retval = connect(sock, &saddr, sizeof(saddr)); + retval = connect(sock, (struct sockaddr *) &saddr, sizeof(saddr)); if (retval != -1) { goto send; } else { @@ -182,7 +184,7 @@ int main(int argc, char* argv[]) tspec.tv_nsec = 100000000; /* 100 millisec */ loop = UDEVSEND_CONNECT_RETRY; while (loop--) { - retval = connect(sock, &saddr, sizeof(saddr)); + retval = connect(sock, (struct sockaddr *) &saddr, sizeof(saddr)); if (retval != -1) goto send; else