tPut path,sha512 and timestamp in a buffer for sending - synk - synchronize files between hosts
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit c775ea906f42095dd1fb1e0ed70f318b8b6486b7
(DIR) parent b2f3ca3bc98416b32e22a2c5737f1e40bf94b707
(HTM) Author: Willy <willyatmailoodotorg>
Date: Mon, 22 Aug 2016 14:18:37 +0200
Put path,sha512 and timestamp in a buffer for sending
Diffstat:
M synk.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
---
(DIR) diff --git a/synk.c b/synk.c
t@@ -216,7 +216,9 @@ client(in_addr_t host, in_port_t port, FILE *f, const char *fn)
ssize_t len = 0;
struct sockaddr_in clt;
char path[PATH_MAX] = "";
- unsigned char hash[64] = "", rhash[64];
+ char buf[PATH_MAX + 64 + TIMESTAMP_MAX + 3] = "";
+ unsigned char hash[64], rhash[64];
+ char *fmt;
if ((cfd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
perror("socket");
t@@ -236,7 +238,10 @@ client(in_addr_t host, in_port_t port, FILE *f, const char *fn)
/* we first send a filename to the server ... */
snprintf(path, PATH_MAX, "%s", fn);
len = strnlen(path, PATH_MAX);
- printf("%s: %s\n", inet_ntoa(clt.sin_addr), path);
+ sha512(f, hash);
+ fmt = sha512_format(hash);
+ snprintf(buf, PATH_MAX + 64 + TIMESTAMP_MAX + 3, "%s\t%s\t%lu", path, fmt, gettimestamp(fn));
+ printf("%s: %s\n", inet_ntoa(clt.sin_addr), buf);
if ((len = write(cfd, path, len)) < 0) {
perror("write");
return -1;
t@@ -244,7 +249,6 @@ client(in_addr_t host, in_port_t port, FILE *f, const char *fn)
/* ... which should return the timestamp of this file */
read(cfd, rhash, 64);
- sha512(f, hash);
printf("%s:%s\n", path, sha512_compare(hash, rhash)?"NOT SYNKED":"SYNKED");
close(cfd);