Пример #1
0
//-------------------------------------------------------------------------------------------------
void TimerActor::event_t::invoke() {
	// 1. Послать уведомление
	actor.send( msg_time() );
	// 2. Если требовалось только одно уведомление, то
	//    событие можно удалять.
	if (this->once) {
		TimerActor::msg_delete	msg;
		// -
		msg.actor = this->actor;
		// -
		owner.send( msg );
	}
}
Пример #2
0
char* DLLCALL get_msgid(scfg_t* cfg, uint subnum, smbmsg_t* msg, char* msgid, size_t maxlen)
{
	char*	host;

	if(msg->id!=NULL && *msg->id!=0) {
		strncpy(msgid,msg->id,maxlen);
		return(msg->id);
	}

	/* Try *really* hard to get a hostname from the configuration data */
	host=cfg->sys_inetaddr;
	if(!host[0]) {
		host=cfg->sys_id;
		if(!host[0]) {
			host=cfg->sys_name;
			if(!host[0]) {
				host=cfg->sys_op;
			}
		}
	}

	if(subnum>=cfg->total_subs)
		safe_snprintf(msgid,maxlen
			,"<%08lX.%lu@%s>"
			,msg_time(msg)
			,msg_number(msg)
			,host);
	else
		safe_snprintf(msgid,maxlen
			,"<%08lX.%lu.%s@%s>"
			,msg_time(msg)
			,msg_number(msg)
			,cfg->sub[subnum]->code
			,host);

	return(msgid);
}
Пример #3
0
static ulong msgid_serialno(smbmsg_t* msg)
{
	return (msg_time(msg)-1000000000) + msg_number(msg);
}