-
-/*
- * heuristic to detect if need to reshuffle CTL_RESPONSE structure
- */
-
-#define swapshort(a) (((a << 8) | ((unsigned short) a >> 8)) & 0xffff)
-#define swaplong(a) ((swapshort(a) << 16) | (swapshort(((unsigned)a >> 16))))
-
-#ifdef sun
-struct ctl_response_vax {
- char type;
- char answer;
- short junk;
- int id_num;
- struct sockaddr_in addr;
-};
-
-swapresponse(rsp)
- CTL_RESPONSE *rsp;
-{
- struct ctl_response_vax swaprsp;
-
- if (rsp->addr.sin_family != AF_INET) {
- bcopy(rsp, &swaprsp, sizeof(CTL_RESPONSE));
- swaprsp.addr.sin_family = swapshort(swaprsp.addr.sin_family);
- if (swaprsp.addr.sin_family == AF_INET) {
- rsp->addr = swaprsp.addr;
- rsp->type = swaprsp.type;
- rsp->answer = swaprsp.answer;
- rsp->id_num = swaplong(swaprsp.id_num);
- }
- }
-}
-#endif
-
-#ifdef vax
-struct ctl_response_sun {
- char type;
- char answer;
- unsigned short id_num2;
- unsigned short id_num1;
- short sin_family;
- short sin_port;
- short sin_addr2;
- short sin_addr1;
-};
-
-swapresponse(rsp)
- CTL_RESPONSE *rsp;
-{
- struct ctl_response_sun swaprsp;
-
- if (rsp->addr.sin_family != AF_INET) {
- bcopy(rsp, &swaprsp, sizeof(struct ctl_response_sun));
- if (swaprsp.sin_family == swapshort(AF_INET)) {
- rsp->type = swaprsp.type;
- rsp->answer = swaprsp.answer;
- rsp->id_num = swapshort(swaprsp.id_num1)
- | (swapshort(swaprsp.id_num2) << 16);
- rsp->addr.sin_family = swapshort(swaprsp.sin_family);
- rsp->addr.sin_port = swaprsp.sin_port;
- rsp->addr.sin_addr.s_addr =
- swaprsp.sin_addr2 | (swaprsp.sin_addr1 << 16);
- }
- }
-}
-#endif