-/**
- * Create and initialize a session descriptor
- *
- * \return a new session descriptor
- */
-session_descriptor_t * sout_AnnounceSessionCreate (vlc_object_t *obj,
- const char *cfgpref)
-{
- size_t cfglen = strlen (cfgpref);
- if (cfglen > 100)
- return NULL;
-
- char varname[cfglen + sizeof ("description")], *subvar = varname + cfglen;
- strcpy (varname, cfgpref);
-
- session_descriptor_t *p_session = calloc (1, sizeof (*p_session));
- if (p_session == NULL)
- return NULL;
-
- strcpy (subvar, "name");
- p_session->psz_name = var_GetNonEmptyString (obj, varname);
- strcpy (subvar, "group");
- p_session->psz_group = var_GetNonEmptyString (obj, varname);
-
- strcpy (subvar, "description");
- p_session->description = var_GetNonEmptyString (obj, varname);
- strcpy (subvar, "url");
- p_session->url = var_GetNonEmptyString (obj, varname);
- strcpy (subvar, "email");
- p_session->email = var_GetNonEmptyString (obj, varname);
- strcpy (subvar, "phone");
- p_session->phone = var_GetNonEmptyString (obj, varname);
-
- return p_session;
-}
-
-int sout_SessionSetMedia (vlc_object_t *obj, session_descriptor_t *p_session,
- const char *fmt, const char *src, int sport,
- const char *dst, int dport)
-{
- if ((p_session->sdpformat = strdup (fmt)) == NULL)
- return VLC_ENOMEM;
-
- /* GRUIK. We should not convert back-and-forth from string to numbers */
- struct addrinfo *res;
- if (vlc_getaddrinfo (obj, dst, dport, NULL, &res) == 0)
- {
- if (res->ai_addrlen > sizeof (p_session->addr))
- goto oflow;
-
- memcpy (&p_session->addr, res->ai_addr,
- p_session->addrlen = res->ai_addrlen);
- vlc_freeaddrinfo (res);
- }
- if (vlc_getaddrinfo (obj, src, sport, NULL, &res) == 0)
- {
- if (res->ai_addrlen > sizeof (p_session->orig))
- goto oflow;
- memcpy (&p_session->orig, res->ai_addr,
- p_session->origlen = res->ai_addrlen);
- vlc_freeaddrinfo (res);
- }
- return 0;
-
-oflow:
- vlc_freeaddrinfo (res);
- return VLC_ENOMEM;
-}
-