Changeset 27988
- Timestamp:
- May 17, 2010, 5:32:57 PM (16 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/libkapa/src/KapaOpen.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libkapa/src/KapaOpen.c
r27588 r27988 31 31 if (status == -1) { 32 32 if (errno == EADDRINUSE) { 33 close (InitSocket);34 Address[0].sin_port ++;35 if (Address[0].sin_port > MY_PORT_MAX) exit (2);36 goto retry_server;33 close (InitSocket); 34 Address[0].sin_port ++; 35 if (Address[0].sin_port > MY_PORT_MAX) exit (2); 36 goto retry_server; 37 37 } 38 38 perror ("bind: "); … … 69 69 70 70 /* do I need to clear rfds on each pass? */ 71 FD_ZERO(&rfds); 71 72 FD_SET (InitSocket, &rfds); 72 73 status = select (InitSocket + 1, &rfds, NULL, NULL, &wait); … … 98 99 99 100 for (i = 0; i < Nvalid; i++) { 100 /* valid IP addresses may be machines (120.90.121.142) or 101 /* valid IP addresses may be machines (120.90.121.142) or 101 102 class C networks (120.90.121.0) */ 102 103 103 104 /* for machine, address must match */ 104 105 if ((0xff & (VALID[i] >> 24)) != 0) { … … 138 139 test = TRUE; 139 140 test &= (status == 4); 140 test &= ((ip1 > 0) && (ip1 < 256)); 141 test &= ((ip2 > 0) && (ip2 < 256)); 142 test &= ((ip3 > 0) && (ip3 < 256)); 143 test &= ((ip4 >=0) && (ip4 < 256)); 141 test &= ((ip1 > 0) && (ip1 < 256)); 142 test &= ((ip2 > 0) && (ip2 < 256)); 143 test &= ((ip3 > 0) && (ip3 < 256)); 144 test &= ((ip4 >=0) && (ip4 < 256)); 144 145 if (!test) { 145 146 fprintf (stderr, "invalid IP address %s\n", string); … … 205 206 206 207 // the client uses a BLOCKing socket by default 207 fcntl (InitSocket, F_SETFL, !O_NONBLOCK); 208 fcntl (InitSocket, F_SETFL, !O_NONBLOCK); 208 209 return (InitSocket); 209 210 } … … 211 212 int KapaOpen (char *kapa_exec, char *kapa_name) { 212 213 213 // kapa_exec may be kapa://host, in which case we attempt to connect to an 214 // kapa_exec may be kapa://host, in which case we attempt to connect to an 214 215 // already running kapa, or the program path, in which case we are supposed 215 216 // to launch it locally, then connect to it. … … 265 266 unlink (socket_name); 266 267 267 strcpy (Address.sun_path, socket_name); 268 Address.sun_family = AF_UNIX; 269 InitSocket = socket (AF_UNIX, SOCK_STREAM, 0); 268 strcpy (Address.sun_path, socket_name); 269 Address.sun_family = AF_UNIX; 270 InitSocket = socket (AF_UNIX, SOCK_STREAM, 0); 270 271 status = bind (InitSocket, (struct sockaddr *) &Address, sizeof (Address)); 271 272 status = listen (InitSocket, 1); 272 273 273 274 if (name == NULL) { 274 275 sprintf (temp, "%s -socket %s &", kapa_exec, socket_name); … … 282 283 283 284 AddressLength = sizeof (Address); 284 fcntl (InitSocket, F_SETFL, O_NONBLOCK); 285 fcntl (InitSocket, F_SETFL, O_NONBLOCK); 285 286 286 287 # define NTRY 500 … … 297 298 298 299 // the client uses a BLOCKing socket by default 299 fcntl (fd, F_SETFL, !O_NONBLOCK); 300 fcntl (fd, F_SETFL, !O_NONBLOCK); 300 301 return (fd); 301 302 } … … 317 318 318 319 // the server uses an unblocked socket 319 fcntl (sock, F_SETFL, O_NONBLOCK); 320 fcntl (sock, F_SETFL, O_NONBLOCK); 320 321 unlink (sockpath); 321 322 return (sock);
Note:
See TracChangeset
for help on using the changeset viewer.
