Initial client; first working version

This commit is contained in:
Barak Michener 2013-08-31 15:46:42 -04:00
parent 36ecbf7b51
commit 7d21612973

37
tpm.c
View file

@ -13,6 +13,7 @@
#include <unistd.h> #include <unistd.h>
const int kDefaultLengthSecs = 25 * 60; const int kDefaultLengthSecs = 25 * 60;
const char* kDefaultDoneMessage = "";
char* MakeSocketName() { char* MakeSocketName() {
char* username = getenv("USER"); char* username = getenv("USER");
@ -23,6 +24,34 @@ char* MakeSocketName() {
return socket_name; return socket_name;
} }
int ClientMain(char* done_message) {
int sock_fd;
struct sockaddr_un remote;
if ((sock_fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
perror("socket");
exit(1);
}
remote.sun_family = AF_UNIX;
char * socket_name = MakeSocketName();
strcpy(remote.sun_path, socket_name);
free(socket_name);
int len = strlen(remote.sun_path) + sizeof(remote.sun_family);
if (connect(sock_fd, (struct sockaddr *)&remote, len) == -1) {
printf("%s\n", done_message);
return 0;
}
int recv_length;
char buf[100];
if ((recv_length = recv(sock_fd, buf, 100, 0)) > 0) {
buf[recv_length] = '\0';
printf("%s\n", buf);
}
close(sock_fd);
return 0;
}
int DaemonMain(int countdown_time) { int DaemonMain(int countdown_time) {
/* Our process ID and Session ID */ /* Our process ID and Session ID */
int ok; int ok;
@ -130,7 +159,8 @@ int DaemonMain(int countdown_time) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
int c; int c;
int countdown_time = kDefaultLengthSecs; int countdown_time = kDefaultLengthSecs;
while ( (c = getopt(argc, argv, "bsm")) != -1) { char* done_message = (char*) kDefaultDoneMessage;
while ( (c = getopt(argc, argv, "bs:m:d:")) != -1) {
switch (c) { switch (c) {
case 's': case 's':
countdown_time = atoi(optarg); countdown_time = atoi(optarg);
@ -138,6 +168,9 @@ int main(int argc, char** argv) {
case 'm': case 'm':
countdown_time = atoi(optarg) * 60; countdown_time = atoi(optarg) * 60;
break; break;
case 'd':
done_message = optarg;
break;
} }
} }
if (optind < argc) { if (optind < argc) {
@ -146,7 +179,7 @@ int main(int argc, char** argv) {
DaemonMain(countdown_time); DaemonMain(countdown_time);
} }
} else { } else {
return DaemonMain(25); return ClientMain(done_message);
} }
exit (0); exit (0);
} }