Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include "headers.h"
2
#include <bio.h>
3
#include <ndb.h>
4
 
5
int
6
nbnameresolve(NbName nbname, uchar *ipaddr)
7
{
8
	ulong r, ttl;
9
	char name[NETPATHLEN];
10
	NbName copy;
11
	Ndbtuple *t;
12
 
13
	/* for now, just use dns */
14
	if (nbremotenametablefind(nbname, ipaddr)) {
15
//print("%B found in cache\n", nbname);
16
		return 1;
17
	}
18
	if (nbnsfindname(nil, nbname, ipaddr, &ttl) == 0) {
19
		nbremotenametableadd(nbname, ipaddr, ttl);
20
		return 1;
21
	}
22
	nbnamecpy(copy, nbname);
23
	copy[NbNameLen - 1] = 0;
24
	nbmkstringfromname(name, sizeof(name), copy);
25
	t = dnsquery("/net", name, "ip");
26
	if (t == nil)
27
		return 0;
28
	r = parseip(ipaddr, t->line->val);
29
	ndbfree(t);
30
	return r != -1;
31
}