- Timestamp:
- Oct 27, 2011, 9:59:48 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20110906/Ohana/src/opihi/lib.shell/SocketOps.c
r23530 r32569 154 154 } 155 155 156 int GetClientSocket (char *hostname ) {156 int GetClientSocket (char *hostname, char *portinfo) { 157 157 158 158 int i, status, InitSocket, length; … … 169 169 } 170 170 171 // portinfo is a port or port range of the form NN or NN:MM 172 int start = MY_PORT; 173 int stop = start + 10; 174 if (portinfo[0]) { 175 char *endptr; 176 start = strtol (portinfo, &endptr, 0); 177 stop = start + 10; // default range of 10 178 if (!endptr) { 179 gprint (GP_ERR, "error in port range parsing\n"); 180 exit (20); 181 } 182 if (endptr == portinfo) { 183 gprint (GP_ERR, "error in port range, must be in form NN:MM or NN\n"); 184 exit (20); 185 } 186 if (*endptr) { 187 if (*endptr != ":") { 188 gprint (GP_ERR, "error in port range (wrong range separator, must be in form NN:MM)\n"); 189 exit (20); 190 } 191 char *ptr = endptr + 1; 192 stop = strtol (ptr, &endptr, 0); 193 if (endptr == ptr) { 194 gprint (GP_ERR, "error in port range, must be in form NN:MM or NN\n"); 195 exit (20); 196 } 197 } 198 } 199 171 200 if (DEBUG) { 172 gprint (GP_ERR, "trying %s (%s:%d)...", host[0].h_name, hostip, MY_PORT);201 gprint (GP_ERR, "trying %s (%s:%d)...", host[0].h_name, hostip, start); 173 202 } 174 203 175 204 Address.sin_family = AF_INET; 176 Address.sin_port = MY_PORT;205 Address.sin_port = start; 177 206 178 207 retry_client: … … 195 224 if (errno == ECONNREFUSED) { 196 225 Address.sin_port ++; 197 if (Address.sin_port > MY_PORT + 10) exit (12);226 if (Address.sin_port > stop) exit (12); 198 227 goto retry_client; 199 228 }
Note:
See TracChangeset
for help on using the changeset viewer.
