void SetEmailArea(char *box) { char *p; if (!exitinfo.Email) return; /* * Use a temp variable because this function can be called line SetEmailArea(sMailbox) */ p = xstrcpy(box); snprintf(sMailpath, PATH_MAX, "%s/%s/%s", CFG.bbs_usersdir, exitinfo.Name, p); snprintf(sMailbox, 21, "%s", p); free(p); /* * Get information from the message base */ if (Msg_Open(sMailpath)) { EmailBase.Lowest = Msg_Lowest(); EmailBase.Highest = Msg_Highest(); EmailBase.Total = Msg_Number(); Msg_Close(); } else WriteError("Error open JAM %s", sMailpath); }
int findorigmsg(char *msgid, char *o) { unsigned int i, start, end; char *gen2; if (msgid == NULL) { return 0; } if (!Msg_Open(msgs.Base)) { return 0; } Msg_Number(); Msg_Highest(); Msg_Lowest(); if (MsgBase.Open == FALSE) { Syslog('-', "Base closed"); return 0; } strcpy(currentgroup,msgs.Newsgroup); start = MsgBase.Lowest; end = MsgBase.Highest; gen2 = calloc(strlen(msgid)+1,sizeof(char)); strcpy(gen2, strchr(msgid,'<')); for (i = start; i <= end; i++) { if (Msg_ReadHeader(i)) { if (strncmp(gen2,make_msgid(Msg.Msgid),strlen(gen2)-1) == 0) { Syslog('m',"Found msgid: %s",make_msgid(Msg.Msgid)); // realloc(o,(strlen(Msg.Msgid)+1)* sizeof(char)); strcpy(o,Msg.Msgid); free(gen2); return 1; } } } free(gen2); return 0; }