+void xmpp_fetch_mortuary_backend(long msgnum, void *userdata) {
+ HashList *mortuary = (HashList *) userdata;
+ struct CtdlMessage *msg;
+ char *ptr = NULL;
+ char *lasts = NULL;
+
+ msg = CtdlFetchMessage(msgnum, 1, 1);
+ if (msg == NULL) {
+ return;
+ }
+
+ /* now add anyone we find into the hashlist */
+
+ /* skip past the headers */
+ ptr = strstr(msg->cm_fields[eMesageText], "\n\n");
+ if (ptr != NULL) {
+ ptr += 2;
+ }
+ else {
+ ptr = strstr(msg->cm_fields[eMesageText], "\n\r\n");
+ if (ptr != NULL) {
+ ptr += 3;
+ }
+ }
+
+ /* the remaining lines are addresses */
+ if (ptr != NULL) {
+ ptr = strtok_r(ptr, "\n", &lasts);
+ while (ptr != NULL) {
+ char *pch = strdup(ptr);
+ Put(mortuary, pch, strlen(pch), pch, NULL);
+ ptr = strtok_r(NULL, "\n", &lasts);
+ }
+ }
+
+ CM_Free(msg);
+}
+
+