forked from unpbook/unpv13e
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sctp_strcliecho2.lc
45 lines (42 loc) · 3.12 KB
/
sctp_strcliecho2.lc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#define SCTP_MAXLINE 800## 1 ##src/sctp/sctp_strcliecho2.c##
void## 2 ##src/sctp/sctp_strcliecho2.c##
sctpstr_cli_echoall(FILE *fp, int sock_fd, struct sockaddr *to,## 3 ##src/sctp/sctp_strcliecho2.c##
socklen_t tolen)## 4 ##src/sctp/sctp_strcliecho2.c##
{## 5 ##src/sctp/sctp_strcliecho2.c##
struct sockaddr_in peeraddr;## 6 ##src/sctp/sctp_strcliecho2.c##
struct sctp_sndrcvinfo sri;## 7 ##src/sctp/sctp_strcliecho2.c##
char sendline[SCTP_MAXLINE], recvline[SCTP_MAXLINE];## 8 ##src/sctp/sctp_strcliecho2.c##
socklen_t len;## 9 ##src/sctp/sctp_strcliecho2.c##
int rd_sz, i, strsz;## 10 ##src/sctp/sctp_strcliecho2.c##
int msg_flags;## 11 ##src/sctp/sctp_strcliecho2.c##
bzero(sendline, sizeof(sendline));## 12 ##src/sctp/sctp_strcliecho2.c##
bzero(&sri, sizeof(sri));## 13 ##src/sctp/sctp_strcliecho2.c##
while (fgets(sendline, SCTP_MAXLINE - 9, fp) != NULL) {## 14 ##src/sctp/sctp_strcliecho2.c##
strsz = strlen(sendline);## 15 ##src/sctp/sctp_strcliecho2.c##
if (sendline[strsz - 1] == '\n') {## 16 ##src/sctp/sctp_strcliecho2.c##
sendline[strsz - 1] = '\0';## 17 ##src/sctp/sctp_strcliecho2.c##
strsz--;## 18 ##src/sctp/sctp_strcliecho2.c##
}## 19 ##src/sctp/sctp_strcliecho2.c##
/* include modified_echo */## 20 ##src/sctp/sctp_strcliecho2.c##
for (i = 0; i < SERV_MAX_SCTP_STRM; i++) {## 21 ##src/sctp/sctp_strcliecho2.c##
snprintf(sendline + strsz, sizeof(sendline) - strsz,## 22 ##src/sctp/sctp_strcliecho2.c##
".msg.%d 1", i);## 23 ##src/sctp/sctp_strcliecho2.c##
Sctp_sendmsg(sock_fd, sendline, sizeof(sendline),## 24 ##src/sctp/sctp_strcliecho2.c##
to, tolen, 0, 0, i, 0, 0);## 25 ##src/sctp/sctp_strcliecho2.c##
snprintf(sendline + strsz, sizeof(sendline) - strsz,## 26 ##src/sctp/sctp_strcliecho2.c##
".msg.%d 2", i);## 27 ##src/sctp/sctp_strcliecho2.c##
Sctp_sendmsg(sock_fd, sendline, sizeof(sendline),## 28 ##src/sctp/sctp_strcliecho2.c##
to, tolen, 0, 0, i, 0, 0);## 29 ##src/sctp/sctp_strcliecho2.c##
}## 30 ##src/sctp/sctp_strcliecho2.c##
for (i = 0; i < SERV_MAX_SCTP_STRM * 2; i++) {## 31 ##src/sctp/sctp_strcliecho2.c##
len = sizeof(peeraddr);## 32 ##src/sctp/sctp_strcliecho2.c##
/* end modified_echo */## 33 ##src/sctp/sctp_strcliecho2.c##
rd_sz = Sctp_recvmsg(sock_fd, recvline, sizeof(recvline),## 34 ##src/sctp/sctp_strcliecho2.c##
(SA *) &peeraddr, &len, &sri, &msg_flags);## 35 ##src/sctp/sctp_strcliecho2.c##
printf("From str:%d seq:%d (assoc:0x%x):",## 36 ##src/sctp/sctp_strcliecho2.c##
sri.sinfo_stream, sri.sinfo_ssn,## 37 ##src/sctp/sctp_strcliecho2.c##
(u_int) sri.sinfo_assoc_id);## 38 ##src/sctp/sctp_strcliecho2.c##
printf("%.*s\n", rd_sz, recvline);## 39 ##src/sctp/sctp_strcliecho2.c##
}## 40 ##src/sctp/sctp_strcliecho2.c##
}## 41 ##src/sctp/sctp_strcliecho2.c##
}## 42 ##src/sctp/sctp_strcliecho2.c##