| | 1285 | | parsehost(buf, hp) |
| | 1286 | | char *buf; |
| | 1287 | | struct hostd *hp; |
| | 1288 | | { |
| | 1289 | | char *av[10]; |
| | 1290 | | int ac; |
| | 1291 | | int err = 0; |
| | 1292 | | |
| | 1293 | | ac = sizeof(av)/sizeof(av[0]); |
| | 1294 | | if (acav(buf, &ac, av)) { |
| | 1295 | | printf("parsehost(): line too long\n"); |
| | 1296 | | goto bad; |
| | 1297 | | } |
| | 1298 | | if (!ac) |
| | 1299 | | goto bad; |
| | 1300 | | |
| | 1301 | | |
| | 1302 | | |
| | 1303 | | hp->hd_name = (char *) NULL;
|
| | 1304 | | hp->hd_arch = (char *) NULL;
|
| | 1305 | | hp->hd_login = (char *) NULL;
|
| | 1306 | | hp->hd_dpath = (char *) NULL;
|
| | 1307 | | hp->hd_epath = (char *) NULL;
|
| | 1308 | | hp->hd_bpath = (char *) NULL;
|
| | 1309 | | hp->hd_wdir = (char *) NULL;
|
| | 1310 | | hp->hd_sopts = (char *) NULL;
|
| | 1311 | | hp->hd_vmid = (char *) NULL;
|
| | 1312 | | |
| | 1313 | | |
| | 1314 | | |
| | 1315 | | while (--ac > 0) { |
| | 1316 | | if (!strncmp(av[ac], "lo=", 3)) { |
| | 1317 | | if (hp->hd_login) |
| | 1318 | | MY_FREE(hp->hd_login);
|
| | 1319 | | hp->hd_login = STRALLOC(av[ac] + 3);
|
| | 1320 | | continue; |
| | 1321 | | } |
| | 1322 | | if (!strncmp(av[ac], "dx=", 3)) { |
| | 1323 | | if (hp->hd_dpath) |
| | 1324 | | MY_FREE(hp->hd_dpath);
|
| | 1325 | | hp->hd_dpath = STRALLOC(av[ac] + 3);
|
| | 1326 | | continue; |
| | 1327 | | } |
| | 1328 | | if (!strncmp(av[ac], "ep=", 3)) { |
| | 1329 | | if (hp->hd_epath) |
| | 1330 | | MY_FREE(hp->hd_epath);
|
| | 1331 | | hp->hd_epath = STRALLOC(av[ac] + 3);
|
| | 1332 | | continue; |
| | 1333 | | } |
| | 1334 | | if (!strncmp(av[ac], "sp=", 3)) { |
| | 1335 | | hp->hd_speed = atoi(av[ac] + 3); |
| | 1336 | | |
| | 1337 | | continue; |
| | 1338 | | } |
| | 1339 | | if (!strncmp(av[ac], "bx=", 3)) { |
| | 1340 | | if (hp->hd_bpath) |
| | 1341 | | MY_FREE(hp->hd_bpath);
|
| | 1342 | | hp->hd_bpath = STRALLOC(av[ac] + 3);
|
| | 1343 | | continue; |
| | 1344 | | } |
| | 1345 | | if (!strncmp(av[ac], "wd=", 3)) { |
| | 1346 | | if (hp->hd_wdir) |
| | 1347 | | MY_FREE(hp->hd_wdir);
|
| | 1348 | | hp->hd_wdir = STRALLOC(av[ac] + 3);
|
| | 1349 | | continue; |
| | 1350 | | } |
| | 1351 | | if (!strncmp(av[ac], "so=", 3)) { |
| | 1352 | | if (hp->hd_sopts) |
| | 1353 | | MY_FREE(hp->hd_sopts);
|
| true | 1354 | | hp->hd_sopts = STRALLOC(av[ac] + 3);
|