+/*
+ * Store the euid index for a message, which has presumably just been
+ * stored in this room by the caller.
+ */
+void index_message_by_euid(char *euid, struct ctdlroom *qrbuf, long msgnum) {
+ char *key;
+ int key_len;
+ char *data;
+ int data_len;
+
+ syslog(LOG_DEBUG, "euidindex: indexing message #%ld <%s> in <%s>", msgnum, euid, qrbuf->QRname);
+
+ key_len = strlen(euid) + sizeof(long) + 1;
+ key = malloc(key_len);
+ memcpy(key, &qrbuf->QRnumber, sizeof(long));
+ strcpy(&key[sizeof(long)], euid);
+
+ data_len = sizeof(long) + key_len;
+ data = malloc(data_len);
+
+ memcpy(data, &msgnum, sizeof(long));
+ memcpy(&data[sizeof(long)], key, key_len);
+
+ cdb_store(CDB_EUIDINDEX, key, key_len, data, data_len);
+ free(key);
+ free(data);
+}
+