#include #include #include #include #include #include int connect_channel(const char *channel_name) { struct sockaddr_un sun; int fd = socket(PF_UNIX, SOCK_STREAM, 0); if (fd < 0) return fd; sun.sun_family = AF_UNIX; snprintf(sun.sun_path, sizeof(sun.sun_path), "/var/run/sircbot/%s", channel_name); if (connect(fd, (struct sockaddr *) &sun, sizeof(sun)) == 0) return fd; perror(sun.sun_path); close(fd); return -1; } int main(int argc, char *argv[]) { int i; int fd = connect_channel(argv[1]); char buf[2048]; if (fd < 0) return 1; while (fgets(buf, sizeof(buf), stdin)) if (write(fd, buf, strlen(buf)) < 0) err(1, "write"); return 0; }