• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src/router/samba-3.0.25b/source/lib/socket_wrapper/

Lines Matching refs:si

257 static int convert_in_un_remote(struct socket_info *si, const struct sockaddr_in *in, struct sockaddr_un *un,
276 switch (si->type) {
322 static int convert_in_un_alloc(struct socket_info *si, const struct sockaddr_in *in, struct sockaddr_un *un,
338 switch (si->type) {
385 ((struct sockaddr_in *)si->myname)->sin_port = htons(prt);
408 static int sockaddr_convert_to_un(struct socket_info *si, const struct sockaddr *in_addr, socklen_t in_len,
418 switch (si->type) {
427 return convert_in_un_alloc(si, (const struct sockaddr_in *)in_addr, out_addr, bcast);
429 return convert_in_un_remote(si, (const struct sockaddr_in *)in_addr, out_addr, bcast);
439 static int sockaddr_convert_from_un(const struct socket_info *si,
463 switch (si->type) {
782 static void swrap_dump_packet(struct socket_info *si, const struct sockaddr *addr,
803 if (si->family != AF_INET) {
809 if (si->type != SOCK_STREAM) return;
811 src_addr = (const struct sockaddr_in *)si->myname;
814 tcp_seq = si->io.pck_snd;
815 tcp_ack = si->io.pck_rcv;
818 si->io.pck_snd += 1;
823 if (si->type != SOCK_STREAM) return;
825 dest_addr = (const struct sockaddr_in *)si->myname;
828 tcp_seq = si->io.pck_rcv;
829 tcp_ack = si->io.pck_snd;
832 si->io.pck_rcv += 1;
837 if (si->type != SOCK_STREAM) return;
839 dest_addr = (const struct sockaddr_in *)si->myname;
843 tcp_seq = si->io.pck_snd - 1;
844 tcp_ack = si->io.pck_rcv;
851 if (si->type != SOCK_STREAM) return;
853 src_addr = (const struct sockaddr_in *)si->myname;
856 tcp_seq = si->io.pck_snd;
857 tcp_ack = si->io.pck_rcv;
863 if (si->type != SOCK_STREAM) return;
865 dest_addr = (const struct sockaddr_in *)si->myname;
868 tcp_seq = si->io.pck_rcv;
869 tcp_ack = si->io.pck_snd;
872 si->io.pck_rcv += 1;
877 if (si->type != SOCK_STREAM) return;
879 src_addr = (const struct sockaddr_in *)si->myname;
882 tcp_seq = si->io.pck_snd;
883 tcp_ack = si->io.pck_rcv;
886 si->io.pck_snd += 1;
891 if (si->type != SOCK_STREAM) return;
893 dest_addr = (const struct sockaddr_in *)si->myname;
896 tcp_seq = si->io.pck_rcv;
897 tcp_ack = si->io.pck_snd;
903 src_addr = (const struct sockaddr_in *)si->myname;
904 dest_addr = (const struct sockaddr_in *)si->peername;
906 tcp_seq = si->io.pck_snd;
907 tcp_ack = si->io.pck_rcv;
910 si->io.pck_snd += len;
915 dest_addr = (const struct sockaddr_in *)si->myname;
916 src_addr = (const struct sockaddr_in *)si->peername;
918 if (si->type == SOCK_DGRAM) {
919 swrap_dump_packet(si, si->peername,
925 tcp_seq = si->io.pck_rcv;
926 tcp_ack = si->io.pck_snd;
932 dest_addr = (const struct sockaddr_in *)si->myname;
933 src_addr = (const struct sockaddr_in *)si->peername;
935 if (si->type == SOCK_DGRAM) {
939 tcp_seq = si->io.pck_rcv;
940 tcp_ack = si->io.pck_snd;
946 dest_addr = (const struct sockaddr_in *)si->myname;
947 src_addr = (const struct sockaddr_in *)si->peername;
949 tcp_seq = si->io.pck_rcv;
950 tcp_ack = si->io.pck_snd;
953 si->io.pck_rcv += len;
958 dest_addr = (const struct sockaddr_in *)si->myname;
959 src_addr = (const struct sockaddr_in *)si->peername;
961 if (si->type == SOCK_DGRAM) {
965 tcp_seq = si->io.pck_rcv;
966 tcp_ack = si->io.pck_snd;
972 src_addr = (const struct sockaddr_in *)si->myname;
975 si->io.pck_snd += len;
980 dest_addr = (const struct sockaddr_in *)si->myname;
988 dest_addr = (const struct sockaddr_in *)si->myname;
991 si->io.pck_rcv += len;
996 if (si->type != SOCK_STREAM) return;
998 src_addr = (const struct sockaddr_in *)si->myname;
999 dest_addr = (const struct sockaddr_in *)si->peername;
1001 tcp_seq = si->io.pck_snd;
1002 tcp_ack = si->io.pck_rcv;
1005 si->io.pck_snd += 1;
1010 if (si->type != SOCK_STREAM) return;
1012 dest_addr = (const struct sockaddr_in *)si->myname;
1013 src_addr = (const struct sockaddr_in *)si->peername;
1015 tcp_seq = si->io.pck_rcv;
1016 tcp_ack = si->io.pck_snd;
1019 si->io.pck_rcv += 1;
1024 if (si->type != SOCK_STREAM) return;
1026 src_addr = (const struct sockaddr_in *)si->myname;
1027 dest_addr = (const struct sockaddr_in *)si->peername;
1029 tcp_seq = si->io.pck_snd;
1030 tcp_ack = si->io.pck_rcv;
1040 packet = swrap_packet_init(&tv, src_addr, dest_addr, si->type,
1058 struct socket_info *si;
1097 si = (struct socket_info *)calloc(1, sizeof(struct socket_info));
1099 si->family = family;
1100 si->type = type;
1101 si->protocol = protocol;
1102 si->fd = fd;
1104 SWRAP_DLIST_ADD(sockets, si);
1106 return si->fd;
1189 static int swrap_auto_bind(struct socket_info *si)
1208 switch (si->type) {
1231 ret = real_bind(si->fd, (struct sockaddr *)&un_addr, sizeof(un_addr));
1234 si->tmp_path = strdup(un_addr.sun_path);
1235 si->bound = 1;
1249 si->myname_len = sizeof(in);
1250 si->myname = sockaddr_dup(&in, si->myname_len);
1259 struct socket_info *si = find_socket_info(s);
1261 if (!si) {
1265 if (si->bound == 0) {
1266 ret = swrap_auto_bind(si);
1270 ret = sockaddr_convert_to_un(si, (const struct sockaddr *)serv_addr, addrlen, &un_addr, 0, NULL);
1273 swrap_dump_packet(si, serv_addr, SWRAP_CONNECT_SEND, NULL, 0);
1284 si->peername_len = addrlen;
1285 si->peername = sockaddr_dup(serv_addr, addrlen);
1287 swrap_dump_packet(si, serv_addr, SWRAP_CONNECT_RECV, NULL, 0);
1288 swrap_dump_packet(si, serv_addr, SWRAP_CONNECT_ACK, NULL, 0);
1290 swrap_dump_packet(si, serv_addr, SWRAP_CONNECT_UNREACH, NULL, 0);
1300 struct socket_info *si = find_socket_info(s);
1302 if (!si) {
1306 si->myname_len = addrlen;
1307 si->myname = sockaddr_dup(myaddr, addrlen);
1309 ret = sockaddr_convert_to_un(si, (const struct sockaddr *)myaddr, addrlen, &un_addr, 1, &si->bcast);
1318 si->bound = 1;
1327 struct socket_info *si = find_socket_info(s);
1329 if (!si) {
1340 struct socket_info *si = find_socket_info(s);
1342 if (!si) {
1346 if (!si->peername)
1352 memcpy(name, si->peername, si->peername_len);
1353 *addrlen = si->peername_len;
1360 struct socket_info *si = find_socket_info(s);
1362 if (!si) {
1366 memcpy(name, si->myname, si->myname_len);
1367 *addrlen = si->myname_len;
1374 struct socket_info *si = find_socket_info(s);
1376 if (!si) {
1390 struct socket_info *si = find_socket_info(s);
1392 if (!si) {
1400 switch (si->family) {
1414 struct socket_info *si = find_socket_info(s);
1416 if (!si) {
1426 if (sockaddr_convert_from_un(si, &un_addr, un_addrlen,
1427 si->family, from, fromlen) == -1) {
1431 swrap_dump_packet(si, from, SWRAP_RECVFROM, buf, ret);
1441 struct socket_info *si = find_socket_info(s);
1444 if (!si) {
1448 if (si->bound == 0) {
1449 ret = swrap_auto_bind(si);
1453 ret = sockaddr_convert_to_un(si, to, tolen, &un_addr, 0, &bcast);
1473 swrap_dump_packet(si, to, SWRAP_SENDTO, buf, len);
1486 swrap_dump_packet(si, to, SWRAP_SENDTO, buf, len);
1487 swrap_dump_packet(si, to, SWRAP_SENDTO_UNREACH, buf, len);
1489 swrap_dump_packet(si, to, SWRAP_SENDTO, buf, ret);
1498 struct socket_info *si = find_socket_info(s);
1501 if (!si) {
1511 swrap_dump_packet(si, NULL, SWRAP_PENDING_RST, NULL, 0);
1513 swrap_dump_packet(si, NULL, SWRAP_PENDING_RST, NULL, 0);
1524 struct socket_info *si = find_socket_info(s);
1526 if (!si) {
1532 swrap_dump_packet(si, NULL, SWRAP_RECV_RST, NULL, 0);
1534 swrap_dump_packet(si, NULL, SWRAP_RECV_RST, NULL, 0);
1536 swrap_dump_packet(si, NULL, SWRAP_RECV, buf, ret);
1546 struct socket_info *si = find_socket_info(s);
1548 if (!si) {
1555 swrap_dump_packet(si, NULL, SWRAP_SEND, buf, len);
1556 swrap_dump_packet(si, NULL, SWRAP_SEND_RST, NULL, 0);
1558 swrap_dump_packet(si, NULL, SWRAP_SEND, buf, ret);
1566 struct socket_info *si = find_socket_info(fd);
1569 if (!si) {
1573 SWRAP_DLIST_REMOVE(sockets, si);
1575 if (si->myname && si->peername) {
1576 swrap_dump_packet(si, NULL, SWRAP_CLOSE_SEND, NULL, 0);
1581 if (si->myname && si->peername) {
1582 swrap_dump_packet(si, NULL, SWRAP_CLOSE_RECV, NULL, 0);
1583 swrap_dump_packet(si, NULL, SWRAP_CLOSE_ACK, NULL, 0);
1586 if (si->path) free(si->path);
1587 if (si->myname) free(si->myname);
1588 if (si->peername) free(si->peername);
1589 if (si->tmp_path) {
1590 unlink(si->tmp_path);
1591 free(si->tmp_path);
1593 free(si);