about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rwxr-xr-xserver.c16
-rw-r--r--torus.h4
2 files changed, 17 insertions, 3 deletions
diff --git a/server.c b/server.c
index 97d4230..fc3b3d0 100755
--- a/server.c
+++ b/server.c
@@ -56,11 +56,23 @@ static struct Tile *tileGet(uint32_t tileX, uint32_t tileY) {
         memset(tile->colors, COLOR_WHITE, CELLS_SIZE);
         tile->create = time(NULL);
     }
+    return tile;
+}
+
+static struct Tile *tileAccess(uint32_t tileX, uint32_t tileY) {
+    struct Tile *tile = tileGet(tileX, tileY);
     tile->access = time(NULL);
     tile->accessCount++;
     return tile;
 }
 
+static struct Tile *tileModify(uint32_t tileX, uint32_t tileY) {
+    struct Tile *tile = tileGet(tileX, tileY);
+    tile->modify = time(NULL);
+    tile->modifyCount++;
+    return tile;
+}
+
 static struct Client {
     int fd;
 
@@ -102,7 +114,7 @@ static bool clientSend(const struct Client *client, const struct ServerMessage *
     if (len < 0) return false;
 
     if (msg->type == SERVER_TILE) {
-        struct Tile *tile = tileGet(client->tileX, client->tileY);
+        struct Tile *tile = tileAccess(client->tileX, client->tileY);
         len = send(client->fd, tile, sizeof(*tile), 0);
         if (len < 0) return false;
     }
@@ -227,7 +239,7 @@ static bool clientMove(struct Client *client, int8_t dx, int8_t dy) {
 }
 
 static bool clientPut(const struct Client *client, uint8_t color, char cell) {
-    struct Tile *tile = tileGet(client->tileX, client->tileY);
+    struct Tile *tile = tileModify(client->tileX, client->tileY);
     tile->colors[client->cellY][client->cellX] = color;
     tile->cells[client->cellY][client->cellX] = cell;
 
diff --git a/torus.h b/torus.h
index 9158ef7..6b28f8c 100644
--- a/torus.h
+++ b/torus.h
@@ -27,10 +27,12 @@ enum {
 
 struct Tile {
     time_t create;
-    time_t access;
+    time_t modify;
     char cells[CELL_ROWS][CELL_COLS] ALIGNED(16);
     uint8_t colors[CELL_ROWS][CELL_COLS] ALIGNED(16);
+    uint32_t modifyCount;
     uint32_t accessCount;
+    time_t access;
 } ALIGNED(4096);
 static_assert(sizeof(struct Tile) == 4096, "struct Tile is page-sized");
 static_assert(offsetof(struct Tile, cells) == 16, "stable cells offset");
commit-filter and repo.source-filterLars Hjemli 2009-08-08Expose file extension in tree lists as class to allow nicer tree stylingMartin Szulecki 2009-08-08Introduce noplainemail option to hide email adresses from spambotsMartin Szulecki 2009-07-31ui-commit: add support for 'commit-filter' optionLars Hjemli 2009-07-31ui-tree: add support for source-filter optionLars Hjemli 2009-07-31ui-snapshot: use cgit_{open|close}_filter() to execute compressorsLars Hjemli 2009-07-31Add generic filter/plugin infrastructureLars Hjemli 2009-07-25Add support for mime type registration and lookupLars Hjemli 2009-07-25cgit.h: keep config flags sortedLars Hjemli 2009-07-25cgitrc.5.txt: document 'embedded' and 'noheader'Lars Hjemli 2009-07-25Add support for 'noheader' optionLars Hjemli 2009-07-25cgitrc.5.txt: document 'head-include'Lars Hjemli 2009-07-25ui-blob: return 'application/octet-stream' for binary blobsLars Hjemli 2009-07-25ui-plain: Return 'application/octet-stream' for binary files.Remko Tronçon 2009-06-11use cgit_httpscheme() for atom feedDiego Ongaro 2009-06-11add cgit_httpscheme() -> http:// or https://Diego Ongaro 2009-06-07Return http statuscode 404 on unknown branchLars Hjemli 2009-06-07Add head-include configuration option.Mark Lodato 2009-03-15CGIT 0.8.2.1Lars Hjemli 2009-03-15Fix doc-related glitches in Makefile and .gitignoreLars Hjemli 2009-03-15ui-snapshot: avoid segfault when no filename is specifiedLars Hjemli 2009-03-15fix segfault when displaying empty blobsEric Wong 2009-02-19Add support for HEAD requestsLars Hjemli 2009-02-19Add support for ETag in 'plain' viewLars Hjemli 2009-02-12ui-tree: escape ascii-text properly in hexdump viewLars Hjemli 2009-02-12Makefile: add doc-related targetsLars Hjemli