Initial client; first working version
This commit is contained in:
parent
36ecbf7b51
commit
7d21612973
1 changed files with 35 additions and 2 deletions
37
tpm.c
37
tpm.c
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue