Changeset 02859f76a72ee583ed6d77953b0651e8364504b7
- Timestamp:
- 10/02/07 22:32:28
(2 years ago)
- Author:
- Rémi Denis-Courmont <rem@videolan.org>
- git-committer:
- Rémi Denis-Courmont <rem@videolan.org> 1171143148 +0000
- git-parent:
[fe1670bd6436b85002b873bcd8ec69081c4b768a]
- git-author:
- Rémi Denis-Courmont <rem@videolan.org> 1171143148 +0000
- Message:
Repair SAP + SSM
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r6af77cd |
r02859f7 |
|
| 322 | 322 | } |
|---|
| 323 | 323 | |
|---|
| 324 | | /* FIXME FIXME FIXME */ |
|---|
| 325 | 324 | if( ipv4 == 0 ) |
|---|
| 326 | 325 | { |
|---|
| … | … | |
| 601 | 600 | |
|---|
| 602 | 601 | char *head = StartSDP (p_session->psz_name, p_session->description, |
|---|
| 603 | | p_session->url, p_session->email, p_session->phone, |
|---|
| | 602 | p_session->url, p_session->email, p_session->phone, b_ssm, |
|---|
| 604 | 603 | (const struct sockaddr *)&p_session->orig, p_session->origlen, |
|---|
| 605 | 604 | (const struct sockaddr *)&p_session->addr, p_session->addrlen); |
|---|
| … | … | |
| 614 | 613 | || (asprintf (&plgroup, "a=x-plgroup:%s\r\n", psz_group) == -1)) |
|---|
| 615 | 614 | plgroup = NULL; |
|---|
| 616 | | |
|---|
| 617 | | char *sfilter; |
|---|
| 618 | | #if 0 |
|---|
| 619 | | if ((!b_ssm) |
|---|
| 620 | | || (asprintf (&sfilter, "a=source-filter: incl IN IP%c * %s\r\n", |
|---|
| 621 | | ipv, p_addr->psz_machine) == -1)) |
|---|
| 622 | | #else |
|---|
| 623 | | # warning FIXME: repair Source Specific Multicast |
|---|
| 624 | | #endif |
|---|
| 625 | | sfilter = NULL; |
|---|
| 626 | 615 | |
|---|
| 627 | 616 | const char *comedia = NULL; |
|---|
| … | … | |
| 631 | 620 | "a=connection:new\r\n"; |
|---|
| 632 | 621 | |
|---|
| 633 | | int res = asprintf (&psz_sdp, "%s" "%s" "%s" "%s" |
|---|
| | 622 | int res = asprintf (&psz_sdp, "%s" "%s" "%s" |
|---|
| 634 | 623 | "m=video %d %s\r\n", |
|---|
| 635 | 624 | head, |
|---|
| 636 | 625 | plgroup ?: "", |
|---|
| 637 | | sfilter ?: "", |
|---|
| 638 | 626 | comedia ?: "", |
|---|
| 639 | 627 | net_GetPort ((const struct sockaddr *)&p_session->addr), |
|---|
| 640 | 628 | p_session->sdpformat); |
|---|
| 641 | 629 | free (plgroup); |
|---|
| 642 | | free (sfilter); |
|---|
| 643 | 630 | |
|---|
| 644 | 631 | if (res == -1) |
|---|
| rea71409 |
r02859f7 |
|
| 86 | 86 | |
|---|
| 87 | 87 | char *StartSDP (const char *name, const char *description, const char *url, |
|---|
| 88 | | const char *email, const char *phone, |
|---|
| | 88 | const char *email, const char *phone, vlc_bool_t ssm, |
|---|
| 89 | 89 | const struct sockaddr *orig, socklen_t origlen, |
|---|
| 90 | 90 | const struct sockaddr *addr, socklen_t addrlen) |
|---|
| 91 | 91 | { |
|---|
| 92 | 92 | uint64_t t = NTPtime64 (); |
|---|
| 93 | | char *sdp, machine[MAXSDPADDRESS], conn[MAXSDPADDRESS]; |
|---|
| | 93 | char *sdp, machine[MAXSDPADDRESS], conn[MAXSDPADDRESS], |
|---|
| | 94 | sfilter[MAXSDPADDRESS + sizeof ("\r\na=source-filter: incl * ")]; |
|---|
| 94 | 95 | const char *preurl = "\r\nu=", *premail = "\r\ne=", *prephone = "\r\np="; |
|---|
| 95 | 96 | |
|---|
| … | … | |
| 111 | 112 | return NULL; |
|---|
| 112 | 113 | |
|---|
| | 114 | if (ssm) |
|---|
| | 115 | sprintf (sfilter, "\r\na=source-filter: incl IN IP%c * %s", |
|---|
| | 116 | machine[5], machine + 7); |
|---|
| | 117 | else |
|---|
| | 118 | *sfilter = '\0'; |
|---|
| | 119 | |
|---|
| 113 | 120 | if (asprintf (&sdp, "v=0" |
|---|
| 114 | 121 | "\r\no=- "I64Fu" "I64Fu" %s" |
|---|
| … | … | |
| 128 | 135 | "\r\na=type:broadcast" |
|---|
| 129 | 136 | "\r\na=charset:UTF-8" |
|---|
| | 137 | "%s" // optional source filter |
|---|
| 130 | 138 | "\r\n", |
|---|
| 131 | 139 | /* o= */ t, t, machine, |
|---|
| … | … | |
| 135 | 143 | /* e= */ premail, email, |
|---|
| 136 | 144 | /* p= */ prephone, phone, |
|---|
| 137 | | /* c= */ conn) == -1) |
|---|
| | 145 | /* c= */ conn, |
|---|
| | 146 | /* source-filter */ sfilter) == -1) |
|---|
| 138 | 147 | return NULL; |
|---|
| 139 | 148 | return sdp; |
|---|
| r23333fe |
r02859f7 |
|
| 112 | 112 | |
|---|
| 113 | 113 | char *StartSDP (const char *name, const char *description, const char *url, |
|---|
| 114 | | const char *email, const char *phone, |
|---|
| | 114 | const char *email, const char *phone, vlc_bool_t ssm, |
|---|
| 115 | 115 | const struct sockaddr *orig, socklen_t origlen, |
|---|
| 116 | 116 | const struct sockaddr *addr, socklen_t addrlen); |
|---|