+ /* Connect to the speaker process */
+ memset(&addr, 0, sizeof addr);
+ addr.sun_family = AF_UNIX;
+ snprintf(addr.sun_path, sizeof addr.sun_path,
+ "%s/speaker/socket", config->home);
+ sfd = xsocket(PF_UNIX, SOCK_STREAM, 0);
+ if(connect(sfd, (const struct sockaddr *)&addr, sizeof addr) < 0)
+ fatal(errno, "connecting to %s", addr.sun_path);
+ l = strlen(q->id);
+ if(write(sfd, &l, sizeof l) < 0
+ || write(sfd, q->id, l) < 0)
+ fatal(errno, "writing to %s", addr.sun_path);
+ /* Await the ack */
+ read(sfd, &l, 1);
+ /* Plumbing */