Overview
Comment: | Added MTU support |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
d59eec4e0dc0ccd87b32dbac8186006a |
User & Date: | rkeene on 2017-03-03 21:53:25 |
Other Links: | manifest | tags |
Context
2017-03-03
| ||
21:54 | TUAPI 0.10 check-in: 6a50c2cbad user: rkeene tags: 0.10, trunk | |
21:53 | Added MTU support check-in: d59eec4e0d user: rkeene tags: trunk | |
2017-01-10
| ||
21:29 | Post-release version increment check-in: 923c88acc0 user: rkeene tags: trunk | |
Changes
Modified tuapi.c from [c575e12119] to [b5d0abf866].
︙ | ︙ | |||
1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 | return(TCL_OK); } static int tuapi_ifconfig_conf(ClientData cd, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], int sock, int sock_v4, int sock_v6) { Tcl_Obj *option_name_obj, *option_val_obj; Tcl_Obj **flags_objv; struct ifreq iface_req; struct sockaddr *tmp_ioctl_addr; const char *iface; short flags; int flags_objc; int tmp_sock, tmp_ioctl; int ioctl_ret, tcl_ret, parse_ret; | > | 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 | return(TCL_OK); } static int tuapi_ifconfig_conf(ClientData cd, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], int sock, int sock_v4, int sock_v6) { Tcl_Obj *option_name_obj, *option_val_obj; Tcl_Obj **flags_objv; Tcl_WideInt option_val_wide; struct ifreq iface_req; struct sockaddr *tmp_ioctl_addr; const char *iface; short flags; int flags_objc; int tmp_sock, tmp_ioctl; int ioctl_ret, tcl_ret, parse_ret; |
︙ | ︙ | |||
1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 | } objc -= 2; objv += 2; for (; objc > 0; objc--,objv++) { /* Prepare for an ioctl() */ strcpy(iface_req.ifr_name, iface); tmp_ioctl = -1; option_name_obj = objv[0]; if (objc == 1) { Tcl_SetObjResult(interp, Tcl_ObjPrintf("option \"%s\" requires an argument", Tcl_GetString(option_name_obj))); | > | 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 | } objc -= 2; objv += 2; for (; objc > 0; objc--,objv++) { /* Prepare for an ioctl() */ memset(&iface_req, 0, sizeof(iface_req)); strcpy(iface_req.ifr_name, iface); tmp_ioctl = -1; option_name_obj = objv[0]; if (objc == 1) { Tcl_SetObjResult(interp, Tcl_ObjPrintf("option \"%s\" requires an argument", Tcl_GetString(option_name_obj))); |
︙ | ︙ | |||
1571 1572 1573 1574 1575 1576 1577 | Tcl_SetObjResult(interp, Tcl_NewStringObj(strerror(errno), -1)); return(TCL_ERROR); } break; case 0x5e9d03e3: /* metric */ | < > > > > > > > > > > > > > > > > | 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 | Tcl_SetObjResult(interp, Tcl_NewStringObj(strerror(errno), -1)); return(TCL_ERROR); } break; case 0x5e9d03e3: /* metric */ case 0x7c3891f2: /* hwaddr */ case 0xbf72a969: /* addmulti */ case 0xba708969: /* delmulti */ case 0xdd876e5: /* name */ Tcl_SetObjResult(interp, Tcl_ObjPrintf("option \"%s\" unsupported", Tcl_GetString(option_name_obj))); return(TCL_ERROR); break; case 0x1b7a75: /* mtu */ tcl_ret = Tcl_GetWideIntFromObj(interp, option_val_obj, &option_val_wide); if (tcl_ret != TCL_OK) { return(tcl_ret); } iface_req.ifr_mtu = option_val_wide; ioctl_ret = ioctl(sock, SIOCSIFMTU, &iface_req); if (ioctl_ret != 0) { Tcl_SetObjResult(interp, Tcl_NewStringObj(strerror(errno), -1)); return(TCL_ERROR); } break; case 0x4e9aeaf3: /* address */ if (tmp_ioctl == -1) { tmp_ioctl = SIOCSIFADDR; tmp_ioctl_addr = &iface_req.ifr_addr; } |
︙ | ︙ |