コード例 #1
0
ファイル: email.c プロジェクト: bbs-io/mbse
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);
}
コード例 #2
0
ファイル: rfc2ftn.c プロジェクト: ftnapps/mbsebbs
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;
}