Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
8b67f70a
Commit
8b67f70a
authored
Nov 07, 2003
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* added vlc_url_t structure, vlc_UrlParse and vlc_UrlClean.
(It could avoid a lot of duplicated code...)
parent
7a9053f2
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
108 additions
and
1 deletion
+108
-1
include/network.h
include/network.h
+108
-1
No files found.
include/network.h
View file @
8b67f70a
...
...
@@ -2,9 +2,10 @@
* network.h: interface to communicate with network plug-ins
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: network.h,v 1.
4 2003/07/31 23:44:49
fenrir Exp $
* $Id: network.h,v 1.
5 2003/11/07 17:44:43
fenrir Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
...
...
@@ -46,3 +47,109 @@ struct network_socket_t
#define NETWORK_UDP 1
#define NETWORK_TCP 2
typedef
struct
{
char
*
psz_protocol
;
char
*
psz_host
;
int
i_port
;
char
*
psz_path
;
char
*
psz_option
;
}
vlc_url_t
;
/*****************************************************************************
* vlc_UrlParse:
*****************************************************************************
* option : if != 0 then path is split at this char
*
* format protocol://host[:port]/path[OPTIONoption]
*****************************************************************************/
static
inline
void
vlc_UrlParse
(
vlc_url_t
*
url
,
char
*
psz_url
,
char
option
)
{
char
*
psz_dup
=
strdup
(
psz_url
);
char
*
psz_parse
=
psz_dup
;
char
*
p
;
url
->
psz_protocol
=
NULL
;
url
->
psz_host
=
NULL
;
url
->
i_port
=
0
;
url
->
psz_path
=
NULL
;
url
->
psz_option
=
NULL
;
p
=
strchr
(
psz_dup
,
':'
);
if
(
p
)
{
/* we have a protocol */
/* skip :// */
*
p
++
=
'\0'
;
if
(
p
[
0
]
==
'/'
&&
p
[
1
]
==
'/'
)
{
p
+=
2
;
}
url
->
psz_protocol
=
strdup
(
psz_dup
);
psz_parse
=
p
;
p
=
strchr
(
psz_parse
,
'/'
);
if
(
!
p
||
psz_parse
<
p
)
{
char
*
p2
;
/* We have a host[:port] */
url
->
psz_host
=
strdup
(
psz_parse
);
if
(
p
)
{
url
->
psz_host
[
p
-
psz_parse
]
=
'\0'
;
}
p2
=
strchr
(
url
->
psz_host
,
':'
);
if
(
p2
)
{
*
p2
++
=
'\0'
;
url
->
i_port
=
atoi
(
p2
);
}
}
psz_parse
=
p
;
}
/* Now parse psz_path and psz_option */
if
(
psz_parse
)
{
url
->
psz_path
=
strdup
(
psz_parse
);
if
(
option
!=
'\0'
)
{
p
=
strchr
(
url
->
psz_path
,
option
);
if
(
p
)
{
*
p
++
=
'\0'
;
url
->
psz_option
=
strdup
(
p
);
}
}
}
free
(
psz_dup
);
}
/*****************************************************************************
* vlc_UrlClean:
*****************************************************************************
*
*****************************************************************************/
static
inline
void
vlc_UrlClean
(
vlc_url_t
*
url
)
{
if
(
url
->
psz_protocol
)
free
(
url
->
psz_protocol
);
if
(
url
->
psz_host
)
free
(
url
->
psz_host
);
if
(
url
->
psz_path
)
free
(
url
->
psz_path
);
if
(
url
->
psz_option
)
free
(
url
->
psz_option
);
url
->
psz_protocol
=
NULL
;
url
->
psz_host
=
NULL
;
url
->
i_port
=
0
;
url
->
psz_path
=
NULL
;
url
->
psz_option
=
NULL
;
}
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