int cmd_socket(char *argv[], int argc) { int sock_type, proto; int sd; char *tof; proto = IPPROTO_TCP; sock_type = SOCK_STREAM; tof = "tcp"; if (argc > 0) { if (strcmp(argv[0], "sctp") == 0) { proto = IPPROTO_SCTP; sock_type = SOCK_SEQPACKET; tof = "sctp"; } else if (strcmp(argv[0], "udp") == 0) { proto = IPPROTO_UDP; sock_type = SOCK_DGRAM; tof = "udp"; } else if (strcmp(argv[0], "tcp") == 0) { proto = IPPROTO_TCP; sock_type = SOCK_STREAM; } else { printf("Unknown socket type not tcp or sctp or udp\n"); return(0); } } sd = socket(AF_INET, sock_type, proto); printf("fd is %d\n", sd); register_sd(sd, tof); }
void FatFS_class::begin(SPIClass &spi, int csline) { s_spi=&spi; s_csline=csline; digitalWrite(csline,HIGH); pinMode(csline,OUTPUT); spi.setDataMode(SPI_MODE3); spi.setClockDivider(SPI_CLOCK_DIV4); register_sd(); }
int cmd_accept(char *argv[], int argc) { struct socket_reg *reg; int sd, newsd, ret, backlog=10; struct sockaddr_in sin; socklen_t slen; char from[64]; if (argc < 1) { printf("Need to specify a sd to accept on\n"); return(0); } sd = strtol(argv[0], NULL, 0); reg = get_reg(sd); if (reg == NULL) { printf("Can't find sd:%d in registry\n", sd); return(0); } slen = sizeof(struct sockaddr_in); newsd = accept(sd, (struct sockaddr *)&sin, &slen); if (newsd == -1) { printf("accept error %d\n", errno); return(0); } inet_ntop(sin.sin_family, &sin.sin_addr, from, sizeof(from)); printf("Accept gets a new connection to sd:%d from %s:%d\n", newsd, from, ntohs(sin.sin_port)); register_sd(newsd, reg->type); reg = get_reg(newsd); if(reg == NULL) { printf("Can't find registry?\n"); return(0); } reg->flags |= SOCK_ACCEPT; return(0); }