Decnet nodename to address translation
#include <netdnet/dn.h>
#include <netdnet/dnetdb.h>
struct dn_naddr *dnet_addr (char *nodename)
dnet_addr search the decnet hosts file for nodename and returns the DECnet address in the dn_naddr structure
If no entry is found, returns NULL
#include <netdnet/dn.h> #include <netdnet/dnetdb.h> #include <sys/socket.h> main(void) { struct dn_naddr *binaddr; struct sockaddr_dn sockaddr; int sockfd; if ( (binaddr=dnet_addr("mv3100")) == NULL) { printf("No entry in /etc/decnet.conf for mv3100\n"); exit(0); } if ((sockfd=socket(AF_DECnet,SOCK_SEQPACKET,DNPROTO_NSP)) == -1) { perror("socket"); exit(-1); } sockaddr.sdn_family = AF_DECnet; sockaddr.sdn_flags = 0x00; sockaddr.sdn_objnum = 0x19; /* MIRROR */ sockaddr.sdn_objnamel = 0x00; memcpy(sockaddr.sdn_add.a_addr, binaddr->a_addr,binaddr->a_len); if (connect(sockfd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)) < 0) { perror("connect"); exit(-1); } close(sockfd); }