예제 #1
0
// add contact in the list of secureIM users
pUinKey addContact(HANDLE hContact)
{
	if (hContact == NULL) return NULL;
		
	pSupPro proto = getSupPro(hContact);
	if (proto == NULL) return NULL;

	pUinKey p = (pUinKey)mir_calloc(sizeof(UinKey));
	p->header = HEADER;
	p->footer = FOOTER;
	p->hContact = hContact;
	p->proto = proto;
	p->mode = db_get_b(hContact, MODULENAME, "mode", 99);
	if (p->mode == 99) {
		if (isContactPGP(hContact))
			p->mode = MODE_PGP;
		else
			p->mode = isContactGPG(hContact) ? MODE_GPG : MODE_RSAAES;
		db_set_b(hContact, MODULENAME, "mode", p->mode);
	}
	p->status = db_get_b(hContact, MODULENAME, "StatusID", STATUS_ENABLED);
	p->gpgMode = db_get_b(hContact, MODULENAME, "gpgANSI", 0);
	arClist.insert(p);
	return p;
}
예제 #2
0
BOOL isSecureProtocol(HANDLE hContact) {

	pSupPro ptr = getSupPro(hContact);
	if(!ptr) return false;

	return ptr->inspecting;
}
예제 #3
0
void getContactUinA(HANDLE hContact, LPSTR szUIN)
{
	*szUIN = 0;

	pSupPro ptr = getSupPro(hContact);
	if (!ptr)
		return;

	DBVARIANT dbv_uniqueid;
	LPSTR uID = (LPSTR) CallProtoService(ptr->name, PS_GETCAPS, PFLAG_UNIQUEIDSETTING, 0);
	if (uID == (LPSTR)CALLSERVICE_NOTFOUND ) uID = 0; // Billy_Bons
	if (uID && db_get(hContact, ptr->name, uID, &dbv_uniqueid) == 0) {
		if (dbv_uniqueid.type == DBVT_WORD)
			sprintf(szUIN, "%u [%s]", dbv_uniqueid.wVal, ptr->name); //!!!!!!!!!!!
		else if (dbv_uniqueid.type == DBVT_DWORD)
			sprintf(szUIN, "%u [%s]", (UINT)dbv_uniqueid.dVal, ptr->name); //!!!!!!!!!!!
		else if (dbv_uniqueid.type == DBVT_BLOB)
			sprintf(szUIN, "%s [%s]", dbv_uniqueid.pbVal, ptr->name); //!!!!!!!!!!!
		else
			sprintf(szUIN, "%s [%s]", dbv_uniqueid.pszVal, ptr->name); //!!!!!!!!!!!
	}
	else strcpy(szUIN, " == =  unknown   == =");

	db_free(&dbv_uniqueid);
}
예제 #4
0
int getContactStatus(HANDLE hContact) {

	pSupPro ptr = getSupPro(hContact);
	if (ptr)
		return DBGetContactSettingWord(hContact, ptr->name, "Status", ID_STATUS_OFFLINE);

	return -1;
}