Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Icecast-Server
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
102
Issues
102
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Container Registry
Wiki
Wiki
External Wiki
External Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Xiph.Org
Icecast-Server
Commits
33588fc9
Commit
33588fc9
authored
May 18, 2018
by
Philipp Schafft
🦁
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update: Prepare listensocket_*() API for uses with real listen socket != effective listen socket
parent
58848cbe
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
22 additions
and
7 deletions
+22
-7
src/listensocket.c
src/listensocket.c
+21
-6
src/listensocket.h
src/listensocket.h
+1
-1
No files found.
src/listensocket.c
View file @
33588fc9
...
...
@@ -317,7 +317,7 @@ static int listensocket_container_setup__unlocked(listensocket_container_t *self
return
ret
;
}
static
connection
_t
*
listensocket_container_accept__inner
(
listensocket_container_t
*
self
,
int
timeout
)
static
listensocket
_t
*
listensocket_container_accept__inner
(
listensocket_container_t
*
self
,
int
timeout
)
{
#ifdef HAVE_POLL
struct
pollfd
ufds
[
self
->
sock_len
];
...
...
@@ -351,7 +351,7 @@ static connection_t * listensocket_container_accept__inner(listensocket_co
for
(
i
=
0
;
i
<
found
;
i
++
)
{
if
(
ufds
[
i
].
revents
&
POLLIN
)
{
return
listensocket_accept
(
socks
[
i
])
;
return
socks
[
i
]
;
}
if
(
!
(
ufds
[
i
].
revents
&
(
POLLHUP
|
POLLERR
|
POLLNVAL
)))
...
...
@@ -398,7 +398,7 @@ static connection_t * listensocket_container_accept__inner(listensocket_co
for
(
i
=
0
;
i
<
self
->
sock_len
;
i
++
)
{
if
(
self
->
sockref
[
i
])
{
if
(
listensocket__select_isset
(
self
->
sock
[
i
],
&
rfds
))
{
return
listensocket_accept
(
self
->
sock
[
i
])
;
return
self
->
sock
[
i
]
;
}
}
}
...
...
@@ -408,14 +408,20 @@ static connection_t * listensocket_container_accept__inner(listensocket_co
}
connection_t
*
listensocket_container_accept
(
listensocket_container_t
*
self
,
int
timeout
)
{
listensocket_t
*
ls
;
connection_t
*
ret
;
if
(
!
self
)
return
NULL
;
thread_mutex_lock
(
&
self
->
lock
);
ret
=
listensocket_container_accept__inner
(
self
,
timeout
);
ls
=
listensocket_container_accept__inner
(
self
,
timeout
);
refobject_ref
(
ls
);
thread_mutex_unlock
(
&
self
->
lock
);
ret
=
listensocket_accept
(
ls
,
self
);
refobject_unref
(
ls
);
return
ret
;
}
...
...
@@ -647,9 +653,10 @@ int listensocket_unrefsock(listensocket_t *self)
return
0
;
}
connection_t
*
listensocket_accept
(
listensocket_t
*
self
)
connection_t
*
listensocket_accept
(
listensocket_t
*
self
,
listensocket_container_t
*
container
)
{
connection_t
*
con
;
listensocket_t
*
effective
=
NULL
;
sock_t
sock
;
char
*
ip
;
...
...
@@ -672,7 +679,15 @@ connection_t * listensocket_accept(listensocket_t *self)
memmove
(
ip
,
ip
+
7
,
strlen
(
ip
+
7
)
+
1
);
}
con
=
connection_create
(
sock
,
self
,
self
,
ip
);
if
(
!
effective
)
{
effective
=
self
;
refobject_ref
(
effective
);
}
con
=
connection_create
(
sock
,
self
,
effective
,
ip
);
refobject_unref
(
effective
);
if
(
con
==
NULL
)
{
sock_close
(
sock
);
free
(
ip
);
...
...
src/listensocket.h
View file @
33588fc9
...
...
@@ -22,7 +22,7 @@ ssize_t listensocket_container_sockcount(listensocket_contai
int
listensocket_refsock
(
listensocket_t
*
self
);
int
listensocket_unrefsock
(
listensocket_t
*
self
);
connection_t
*
listensocket_accept
(
listensocket_t
*
self
);
connection_t
*
listensocket_accept
(
listensocket_t
*
self
,
listensocket_container_t
*
container
);
const
listener_t
*
listensocket_get_listener
(
listensocket_t
*
self
);
int
listensocket_release_listener
(
listensocket_t
*
self
);
listener_type_t
listensocket_get_type
(
listensocket_t
*
self
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment