• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.5.8/lib/socket_wrapper/

Lines Matching refs:si

342 static int convert_in_un_remote(struct socket_info *si, const struct sockaddr *inaddr, struct sockaddr_un *un,
361 switch (si->type) {
401 switch (si->type) {
449 static int convert_in_un_alloc(struct socket_info *si, const struct sockaddr *inaddr, struct sockaddr_un *un,
460 switch (si->family) {
472 switch (si->type) {
517 switch (si->type) {
559 set_port(si->family, prt, si->myname);
584 static int sockaddr_convert_to_un(struct socket_info *si, const struct sockaddr *in_addr, socklen_t in_len,
597 switch (si->type) {
606 return convert_in_un_alloc(si, in_addr, out_addr, bcast);
608 return convert_in_un_remote(si, in_addr, out_addr, bcast);
618 static int sockaddr_convert_from_un(const struct socket_info *si,
638 switch (si->type) {
1089 static uint8_t *swrap_marshall_packet(struct socket_info *si,
1104 switch (si->family) {
1117 if (si->type != SOCK_STREAM) return NULL;
1119 src_addr = si->myname;
1122 tcp_seqno = si->io.pck_snd;
1123 tcp_ack = si->io.pck_rcv;
1126 si->io.pck_snd += 1;
1131 if (si->type != SOCK_STREAM) return NULL;
1133 dest_addr = si->myname;
1136 tcp_seqno = si->io.pck_rcv;
1137 tcp_ack = si->io.pck_snd;
1140 si->io.pck_rcv += 1;
1145 if (si->type != SOCK_STREAM) return NULL;
1147 dest_addr = si->myname;
1151 tcp_seqno = si->io.pck_snd - 1;
1152 tcp_ack = si->io.pck_rcv;
1159 if (si->type != SOCK_STREAM) return NULL;
1161 src_addr = si->myname;
1164 tcp_seqno = si->io.pck_snd;
1165 tcp_ack = si->io.pck_rcv;
1171 if (si->type != SOCK_STREAM) return NULL;
1173 dest_addr = si->myname;
1176 tcp_seqno = si->io.pck_rcv;
1177 tcp_ack = si->io.pck_snd;
1180 si->io.pck_rcv += 1;
1185 if (si->type != SOCK_STREAM) return NULL;
1187 src_addr = si->myname;
1190 tcp_seqno = si->io.pck_snd;
1191 tcp_ack = si->io.pck_rcv;
1194 si->io.pck_snd += 1;
1199 if (si->type != SOCK_STREAM) return NULL;
1201 dest_addr = si->myname;
1204 tcp_seqno = si->io.pck_rcv;
1205 tcp_ack = si->io.pck_snd;
1211 src_addr = si->myname;
1212 dest_addr = si->peername;
1214 tcp_seqno = si->io.pck_snd;
1215 tcp_ack = si->io.pck_rcv;
1218 si->io.pck_snd += len;
1223 dest_addr = si->myname;
1224 src_addr = si->peername;
1226 if (si->type == SOCK_DGRAM) {
1227 return swrap_marshall_packet(si, si->peername,
1232 tcp_seqno = si->io.pck_rcv;
1233 tcp_ack = si->io.pck_snd;
1239 dest_addr = si->myname;
1240 src_addr = si->peername;
1242 if (si->type == SOCK_DGRAM) {
1246 tcp_seqno = si->io.pck_rcv;
1247 tcp_ack = si->io.pck_snd;
1253 dest_addr = si->myname;
1254 src_addr = si->peername;
1256 tcp_seqno = si->io.pck_rcv;
1257 tcp_ack = si->io.pck_snd;
1260 si->io.pck_rcv += len;
1265 dest_addr = si->myname;
1266 src_addr = si->peername;
1268 if (si->type == SOCK_DGRAM) {
1272 tcp_seqno = si->io.pck_rcv;
1273 tcp_ack = si->io.pck_snd;
1279 src_addr = si->myname;
1282 si->io.pck_snd += len;
1287 dest_addr = si->myname;
1295 dest_addr = si->myname;
1298 si->io.pck_rcv += len;
1303 if (si->type != SOCK_STREAM) return NULL;
1305 src_addr = si->myname;
1306 dest_addr = si->peername;
1308 tcp_seqno = si->io.pck_snd;
1309 tcp_ack = si->io.pck_rcv;
1312 si->io.pck_snd += 1;
1317 if (si->type != SOCK_STREAM) return NULL;
1319 dest_addr = si->myname;
1320 src_addr = si->peername;
1322 tcp_seqno = si->io.pck_rcv;
1323 tcp_ack = si->io.pck_snd;
1326 si->io.pck_rcv += 1;
1331 if (si->type != SOCK_STREAM) return NULL;
1333 src_addr = si->myname;
1334 dest_addr = si->peername;
1336 tcp_seqno = si->io.pck_snd;
1337 tcp_ack = si->io.pck_rcv;
1347 return swrap_packet_init(&tv, src_addr, dest_addr, si->type,
1353 static void swrap_dump_packet(struct socket_info *si,
1368 packet = swrap_marshall_packet(si, addr, type, buf, len, &packet_len);
1386 struct socket_info *si;
1447 si = (struct socket_info *)calloc(1, sizeof(struct socket_info));
1449 si->family = family;
1453 si->type = real_type;
1454 si->protocol = protocol;
1455 si->fd = fd;
1457 SWRAP_DLIST_ADD(sockets, si);
1459 return si->fd;
1574 static int swrap_auto_bind(struct socket_info *si, int family)
1596 switch (si->type) {
1613 si->myname_len = sizeof(in);
1614 si->myname = sockaddr_dup(&in, si->myname_len);
1621 if (si->family != family) {
1626 switch (si->type) {
1642 si->myname_len = sizeof(in6);
1643 si->myname = sockaddr_dup(&in6, si->myname_len);
1663 ret = real_bind(si->fd, (struct sockaddr *)&un_addr, sizeof(un_addr));
1666 si->tmp_path = strdup(un_addr.sun_path);
1667 si->bound = 1;
1676 si->family = family;
1677 set_port(si->family, port, si->myname);
1687 struct socket_info *si = find_socket_info(s);
1689 if (!si) {
1693 if (si->bound == 0) {
1694 ret = swrap_auto_bind(si, serv_addr->sa_family);
1698 if (si->family != serv_addr->sa_family) {
1703 ret = sockaddr_convert_to_un(si, (const struct sockaddr *)serv_addr, addrlen, &un_addr, 0, NULL);
1706 if (si->type == SOCK_DGRAM) {
1707 si->defer_connect = 1;
1710 swrap_dump_packet(si, serv_addr, SWRAP_CONNECT_SEND, NULL, 0);
1722 si->peername_len = addrlen;
1723 si->peername = sockaddr_dup(serv_addr, addrlen);
1724 si->connected = 1;
1726 swrap_dump_packet(si, serv_addr, SWRAP_CONNECT_RECV, NULL, 0);
1727 swrap_dump_packet(si, serv_addr, SWRAP_CONNECT_ACK, NULL, 0);
1729 swrap_dump_packet(si, serv_addr, SWRAP_CONNECT_UNREACH, NULL, 0);
1739 struct socket_info *si = find_socket_info(s);
1741 if (!si) {
1745 si->myname_len = addrlen;
1746 si->myname = sockaddr_dup(myaddr, addrlen);
1748 ret = sockaddr_convert_to_un(si, (const struct sockaddr *)myaddr, addrlen, &un_addr, 1, &si->bcast);
1757 si->bound = 1;
1766 struct socket_info *si = find_socket_info(s);
1768 if (!si) {
1779 struct socket_info *si = find_socket_info(s);
1781 if (!si) {
1785 if (!si->peername)
1791 memcpy(name, si->peername, si->peername_len);
1792 *addrlen = si->peername_len;
1799 struct socket_info *si = find_socket_info(s);
1801 if (!si) {
1805 memcpy(name, si->myname, si->myname_len);
1806 *addrlen = si->myname_len;
1813 struct socket_info *si = find_socket_info(s);
1815 if (!si) {
1829 struct socket_info *si = find_socket_info(s);
1831 if (!si) {
1839 switch (si->family) {
1857 struct socket_info *si = find_socket_info(s);
1861 if (!si) {
1870 if (si->type == SOCK_STREAM) {
1883 if (sockaddr_convert_from_un(si, &un_addr, un_addrlen,
1884 si->family, from, fromlen) == -1) {
1888 swrap_dump_packet(si, from, SWRAP_RECVFROM, buf, ret);
1898 struct socket_info *si = find_socket_info(s);
1901 if (!si) {
1905 if (si->connected) {
1911 to = si->peername;
1912 tolen = si->peername_len;
1915 switch (si->type) {
1925 if (si->bound == 0) {
1926 ret = swrap_auto_bind(si, si->family);
1930 ret = sockaddr_convert_to_un(si, to, tolen, &un_addr, 0, &bcast);
1950 swrap_dump_packet(si, to, SWRAP_SENDTO, buf, len);
1955 if (si->defer_connect) {
1967 si->defer_connect = 0;
1984 swrap_dump_packet(si, to, SWRAP_SENDTO, buf, len);
1985 swrap_dump_packet(si, to, SWRAP_SENDTO_UNREACH, buf, len);
1987 swrap_dump_packet(si, to, SWRAP_SENDTO, buf, ret);
1996 struct socket_info *si = find_socket_info(s);
1999 if (!si) {
2009 swrap_dump_packet(si, NULL, SWRAP_PENDING_RST, NULL, 0);
2011 swrap_dump_packet(si, NULL, SWRAP_PENDING_RST, NULL, 0);
2022 struct socket_info *si = find_socket_info(s);
2024 if (!si) {
2028 if (si->type == SOCK_STREAM) {
2037 swrap_dump_packet(si, NULL, SWRAP_RECV_RST, NULL, 0);
2039 swrap_dump_packet(si, NULL, SWRAP_RECV_RST, NULL, 0);
2041 swrap_dump_packet(si, NULL, SWRAP_RECV, buf, ret);
2050 struct socket_info *si = find_socket_info(s);
2052 if (!si) {
2056 if (si->type == SOCK_STREAM) {
2065 swrap_dump_packet(si, NULL, SWRAP_RECV_RST, NULL, 0);
2067 swrap_dump_packet(si, NULL, SWRAP_RECV_RST, NULL, 0);
2069 swrap_dump_packet(si, NULL, SWRAP_RECV, buf, ret);
2079 struct socket_info *si = find_socket_info(s);
2081 if (!si) {
2085 if (si->type == SOCK_STREAM) {
2092 if (si->defer_connect) {
2096 if (si->bound == 0) {
2097 ret = swrap_auto_bind(si, si->family);
2101 ret = sockaddr_convert_to_un(si, si->peername, si->peername_len,
2116 si->defer_connect = 0;
2122 swrap_dump_packet(si, NULL, SWRAP_SEND, buf, len);
2123 swrap_dump_packet(si, NULL, SWRAP_SEND_RST, NULL, 0);
2125 swrap_dump_packet(si, NULL, SWRAP_SEND, buf, ret);
2139 struct socket_info *si = find_socket_info(s);
2141 if (!si) {
2145 if (si->defer_connect) {
2149 if (si->bound == 0) {
2150 ret = swrap_auto_bind(si, si->family);
2154 ret = sockaddr_convert_to_un(si, si->peername, si->peername_len,
2169 si->defer_connect = 0;
2192 swrap_dump_packet(si, NULL, SWRAP_SEND, buf, ret);
2195 swrap_dump_packet(si, NULL, SWRAP_SEND_RST, NULL, 0);
2204 struct socket_info *si = find_socket_info(s);
2207 if (!si) {
2211 if (si->type == SOCK_STREAM && count > 0) {
2235 swrap_dump_packet(si, NULL, SWRAP_RECV_RST, NULL, 0);
2237 swrap_dump_packet(si, NULL, SWRAP_RECV_RST, NULL, 0);
2261 swrap_dump_packet(si, NULL, SWRAP_RECV, buf, ret);
2271 struct socket_info *si = find_socket_info(s);
2274 if (!si) {
2278 if (si->type == SOCK_STREAM && count > 0) {
2302 swrap_dump_packet(si, NULL, SWRAP_SEND_RST, NULL, 0);
2326 swrap_dump_packet(si, NULL, SWRAP_SEND, buf, ret);
2335 struct socket_info *si = find_socket_info(fd);
2338 if (!si) {
2342 SWRAP_DLIST_REMOVE(sockets, si);
2344 if (si->myname && si->peername) {
2345 swrap_dump_packet(si, NULL, SWRAP_CLOSE_SEND, NULL, 0);
2350 if (si->myname && si->peername) {
2351 swrap_dump_packet(si, NULL, SWRAP_CLOSE_RECV, NULL, 0);
2352 swrap_dump_packet(si, NULL, SWRAP_CLOSE_ACK, NULL, 0);
2355 if (si->path) free(si->path);
2356 if (si->myname) free(si->myname);
2357 if (si->peername) free(si->peername);
2358 if (si->tmp_path) {
2359 unlink(si->tmp_path);
2360 free(si->tmp_path);
2362 free(si);