-static void sockid_t_ustr(Tcl_Obj *o) {
- char buf[75];
-
- snprintf(buf,sizeof(buf), "%d", (int)o->internalRep.longValue);
- obj_updatestr_vstringls(o,
- "tuntapsock",9,
- buf, strlen(buf),
- (char*)0);
-}
-
-static int sockid_t_sfa(Tcl_Interp *ip, Tcl_Obj *o) {
- unsigned long ul;
- char *ep, *str;
-
- str= Tcl_GetStringFromObj(o,0);
- if (memcmp(str,"tuntapsock",9)) return staticerr(ip,"bad tuntap socket id",0);
- errno=0; ul=strtoul(str+9,&ep,10);
- if (errno || *ep) return staticerr(ip,"bad tuntap socket id number",0);
- if (ul > INT_MAX) return staticerr(ip,"out of range tuntap socket id",0);
-
- objfreeir(o);
- o->internalRep.longValue= ul;
- o->typePtr= &tuntapsockid_type;
+int do_tuntap_socket_raw_close(ClientData cd, Tcl_Interp *ip, void *sock) {
+ tabledataid_disposing(ip,sock,&tuntap_socks);
+ destroy(sock);