ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/netdisp.C
(Generate patch)

Comparing rxvt-unicode/src/netdisp.C (file contents):
Revision 1.8 by root, Sun Aug 15 04:54:21 2004 UTC vs.
Revision 1.9 by root, Thu Dec 22 15:28:15 2005 UTC

56 if ((skfd = socket (AF_INET, SOCK_DGRAM, 0)) < 0) 56 if ((skfd = socket (AF_INET, SOCK_DGRAM, 0)) < 0)
57 { 57 {
58 perror ("socket"); 58 perror ("socket");
59 return NULL; 59 return NULL;
60 } 60 }
61
61 if (ioctl (skfd, SIOCGIFCONF, &ifc) < 0) 62 if (ioctl (skfd, SIOCGIFCONF, &ifc) < 0)
62 { 63 {
63 perror ("SIOCGIFCONF"); 64 perror ("SIOCGIFCONF");
64 close (skfd); 65 close (skfd);
65 return NULL; 66 return NULL;
66 } 67 }
68
67 for (i = 0, ifr = ifc.ifc_req; 69 for (i = 0, ifr = ifc.ifc_req;
68 i < (ifc.ifc_len / sizeof (struct ifreq)); 70 i < (ifc.ifc_len / sizeof (struct ifreq));
69 i++, ifr++) 71 i++, ifr++)
70 { 72 {
71 struct ifreq ifr2; 73 struct ifreq ifr2;
72 74
73 strcpy (ifr2.ifr_name, ifr->ifr_name); 75 strcpy (ifr2.ifr_name, ifr->ifr_name);
76
74 if (ioctl (skfd, SIOCGIFADDR, &ifr2) >= 0) 77 if (ioctl (skfd, SIOCGIFADDR, &ifr2) >= 0)
75 { 78 {
76 unsigned long addr; 79 unsigned long addr;
77 struct sockaddr_in *p_addr; 80 struct sockaddr_in *p_addr;
78 81
79 p_addr = (struct sockaddr_in *)& (ifr2.ifr_addr); 82 p_addr = (struct sockaddr_in *) &ifr2.ifr_addr;
80 addr = htonl ((unsigned long)p_addr->sin_addr.s_addr); 83 addr = htonl ((unsigned long)p_addr->sin_addr.s_addr);
81 84
82 /* 85 /*
83 * not "0.0.0.0" or "127.0.0.1" - so format the address 86 * not "0.0.0.0" or "127.0.0.1" - so format the address
84 */ 87 */
85 if (addr && addr != 0x7F000001) 88 if (addr && addr != 0x7F000001)
86 { 89 {
87 char *colon = strchr (display, ':'); 90 char *colon = strchr (display, ':');
88 91
89 if (colon == NULL) 92 if (colon == NULL)
90 colon = ":0.0"; 93 colon = ":0.0";
91 94
92 rval = rxvt_malloc (strlen (colon) + 16); 95 rval = rxvt_malloc (strlen (colon) + 16);
99 } 102 }
100 } 103 }
101 } 104 }
102 105
103 close (skfd); 106 close (skfd);
107
104 return rval; 108 return rval;
105} 109}
106#endif /* DISPLAY_IS_IP */ 110#endif /* DISPLAY_IS_IP */
107/*----------------------- end-of-file (C source) -----------------------*/ 111/*----------------------- end-of-file (C source) -----------------------*/

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines