int cellHostAddrs[AFSMAXCELLHOSTS];
char cellHostNames[AFSMAXCELLHOSTS][MAXHOSTCHARS];
unsigned short ipRanks[AFSMAXCELLHOSTS];
- unsigned short ports[AFSMAXCELLHOSTS];
+ unsigned short ports[AFSMAXCELLHOSTS]; /* network byte order */
int numServers;
int i;
struct sockaddr_in vlSockAddr;
strncasecmp(cellNamep, CM_IOCTL_FILENAME_NOSLASH, strlen(CM_IOCTL_FILENAME_NOSLASH)) == 0)
return -1;
- rc = getAFSServer("afs3-vlserver", "udp", cellNamep, 7003,
+ rc = getAFSServer("afs3-vlserver", "udp", cellNamep, htons(7003),
cellHostAddrs, cellHostNames, ports, ipRanks, &numServers, ttl);
if (rc == 0 && numServers > 0) { /* found the cell */
for (i = 0; i < numServers; i++) {
memcpy(&vlSockAddr.sin_addr.s_addr, &cellHostAddrs[i],
sizeof(long));
- vlSockAddr.sin_port = htons(ports[i]);
+ vlSockAddr.sin_port = ports[i];
vlSockAddr.sin_family = AF_INET;
if (procp)
(*procp)(rockp, &vlSockAddr, cellHostNames[i], ipRanks[i]);
#endif /* DNSAPI_ENV */
int getAFSServer(const char *service, const char *protocol, const char *cellName,
- unsigned short afsdbPort,
+ unsigned short afsdbPort, /* network byte order */
int *cellHostAddrs, char cellHostNames[][MAXHOSTCHARS],
- unsigned short ports[], unsigned short ipRanks[],
+ unsigned short ports[], /* network byte order */
+ unsigned short ipRanks[],
int *numServers, int *ttl)
{
#ifndef DNSAPI_ENV
StringCbCopyA(cellHostNames[*numServers], sizeof(cellHostNames[*numServers]),
pDnsIter->Data.SRV.pNameTarget);
ipRanks[*numServers] = pDnsIter->Data.SRV.wPriority;
- ports[*numServers] = pDnsIter->Data.SRV.wPort;
+ ports[*numServers] = htons(pDnsIter->Data.SRV.wPort);
(*numServers)++;
if (!*ttl)
StringCbCopyA(cellHostNames[*numServers], sizeof(cellHostNames[*numServers]),
pDnsIter->Data.Afsdb.pNameExchange);
ipRanks[*numServers] = 0;
- ports[*numServers] = htons(afsdbPort);
+ ports[*numServers] = afsdbPort;
(*numServers)++;
if (!*ttl)
}
int getAFSServerW(const cm_unichar_t *service, const cm_unichar_t *protocol, const cm_unichar_t *cellName,
- unsigned short afsdbPort,
+ unsigned short afsdbPort, /* network byte order */
int *cellHostAddrs,
cm_unichar_t cellHostNames[][MAXHOSTCHARS],
- unsigned short ports[],
+ unsigned short ports[], /* network byte order */
unsigned short ipRanks[],
int *numServers, int *ttl)
{
StringCbCopyW(cellHostNames[*numServers], sizeof(cellHostNames[*numServers]),
pDnsIter->Data.SRV.pNameTarget);
ipRanks[*numServers] = pDnsIter->Data.SRV.wPriority;
- ports[*numServers] = pDnsIter->Data.SRV.wPort;
+ ports[*numServers] = htons(pDnsIter->Data.SRV.wPort);
(*numServers)++;
if (!*ttl)
StringCbCopyW(cellHostNames[*numServers], sizeof(cellHostNames[*numServers]),
pDnsIter->Data.Afsdb.pNameExchange);
ipRanks[*numServers] = 0;
- ports[*numServers] = htons(afsdbPort);
+ ports[*numServers] = afsdbPort;
(*numServers)++;
if (!*ttl)
struct afsconf_cell *acellInfo)
{
afs_int32 i;
- int tservice = afsconf_FindService(aservice);
+ int tservice = afsconf_FindService(aservice); /* network byte order */
const char *ianaName = afsconf_FindIANAName(aservice);
struct afsconf_entry DNSce;
afs_int32 cellHostAddrs[AFSMAXCELLHOSTS];
char cellHostNames[AFSMAXCELLHOSTS][MAXHOSTCHARS];
unsigned short ipRanks[AFSMAXCELLHOSTS];
- unsigned short ports[AFSMAXCELLHOSTS];
+ unsigned short ports[AFSMAXCELLHOSTS]; /* network byte order */
int numServers;
int rc;
int ttl;
* and that service happens to be the prservice or kaservice
* then fallback to searching for afs3-vlserver and assigning
* the port number here. */
- if (rc < 0 && tservice == 7002 || tservice == 7004) {
+ if (rc < 0 && tservice == htons(7002) || tservice == htons(7004)) {
rc = getAFSServer("afs3-vlserver", "udp", acellName, tservice,
cellHostAddrs, cellHostNames, ports, ipRanks, &numServers,
&ttl);