[net] [multimedia]: Moved multimedia submenu to be part the the Multimedia package...
[packages.git] / multimedia / gmediaserver / patches / 010-compile-fixes.patch
1 --- a/src/upnp.c
2 +++ b/src/upnp.c
3 @@ -36,6 +36,7 @@
4  #include <uuid/uuid.h>
5  #include "intutil.h"
6  #include "gmediaserver.h"
7 +#include "webserver.h"
8  #include "schemas/MediaServer.h"
9  
10  #define GMEDIASERVER_SSDP_PAUSE 100
11 @@ -265,7 +266,7 @@ handle_get_var_request(struct Upnp_State
12      say(3, _("Event device UDN: %s\n"), quotearg(request->DevUDN));
13      say(3, _("Event service ID: %s\n"), quotearg(request->ServiceID));
14      say(3, _("Event variable name: %s\n"), quotearg(request->StateVarName));
15 -    say(3, _("Event source: %s\n"), inet_ntoa(request->CtrlPtIPAddr));
16 +    say(3, _("Event source: %s\n"), inet_ntoa((*(struct sockaddr_in *)&request->CtrlPtIPAddr).sin_addr));
17  
18      if (strcmp(request->DevUDN, device_udn) != 0) {
19          say(1, _("Discarding event - event device UDN (%s) not recognized\n"), quotearg(request->DevUDN));
20 @@ -306,7 +307,7 @@ handle_action_request(struct Upnp_Action
21      say(3, _("Event device UDN: %s\n"), quotearg(request->DevUDN));
22      say(3, _("Event service ID: %s\n"), quotearg(request->ServiceID));
23      say(3, _("Event action name: %s\n"), quotearg(request->ActionName));
24 -    say(3, _("Event source: %s\n"), inet_ntoa(request->CtrlPtIPAddr));
25 +    say(3, _("Event source: %s\n"), inet_ntoa((*(struct sockaddr_in *)&request->CtrlPtIPAddr).sin_addr));
26      say_document(4, _("Event action request:\n"), request->ActionRequest);
27  
28      if (strcmp(request->DevUDN, device_udn) != 0) {
29 @@ -502,9 +503,24 @@ init_upnp(const char *listenip, uint16_t
30      res = UpnpEnableWebserver(TRUE);
31      if (res != UPNP_E_SUCCESS)
32          die(_("cannot enable UPnP web server - %s\n"), upnp_errmsg(res));
33 -    res = UpnpSetVirtualDirCallbacks(&virtual_dir_callbacks);
34 -    if (res != UPNP_E_SUCCESS)
35 -        die(_("cannot set virtual directory callbacks - %s\n"), upnp_errmsg(res));
36 +
37 +#define upnp_set_callback(cb, func) \
38 +       do {                                                                                                                    \
39 +               res = UpnpVirtualDir_set_##cb##Callback(func);                          \
40 +               if (res != UPNP_E_SUCCESS)                                                                      \
41 +               {                                                                                                                       \
42 +                       die(_("cannot set virtual directory callbacks - %s\n"), \
43 +                               upnp_errmsg(res));                                                                      \
44 +               }                                                                                                                       \
45 +       } while(0)
46 +
47 +       upnp_set_callback(GetInfo, webserver_get_info);
48 +       upnp_set_callback(Open,    webserver_open);
49 +       upnp_set_callback(Read,    webserver_read);
50 +       upnp_set_callback(Seek,    webserver_seek);
51 +       upnp_set_callback(Write,   webserver_write);
52 +       upnp_set_callback(Close,   webserver_close);
53 +
54      res = UpnpAddVirtualDir("/files");
55      if (res != UPNP_E_SUCCESS)
56          die(_("cannot add virtual directory for web server - %s\n"), upnp_errmsg(res));
57 --- a/src/webserver.c
58 +++ b/src/webserver.c
59 @@ -83,7 +83,7 @@ get_entry_from_url(const char *filename)
60      return get_entry_by_id(id);
61  }
62  
63 -static int
64 +int
65  webserver_get_info(const char *filename, struct File_Info *info)
66  {
67      Entry *entry;
68 @@ -180,7 +180,7 @@ webserver_get_info(const char *filename,
69      return -1;
70  }
71  
72 -static UpnpWebFileHandle
73 +UpnpWebFileHandle
74  webserver_open(const char *filename, enum UpnpOpenFileMode mode)
75  {
76      Entry *entry;
77 @@ -277,7 +277,7 @@ webserver_open(const char *filename, enu
78      return NULL;
79  }
80  
81 -static int
82 +int
83  webserver_read(UpnpWebFileHandle fh, char *buf, size_t buflen)
84  {
85      WebServerFile *file = (WebServerFile *) fh;
86 @@ -307,7 +307,7 @@ webserver_read(UpnpWebFileHandle fh, cha
87      return len;
88  }
89  
90 -static int
91 +int
92  webserver_write(UpnpWebFileHandle fh, char *buf, size_t buflen)
93  {
94      WebServerFile *file = (WebServerFile *) fh;
95 @@ -317,7 +317,7 @@ webserver_write(UpnpWebFileHandle fh, ch
96      return -1;
97  }
98  
99 -static int
100 +int
101  webserver_seek(UpnpWebFileHandle fh, off_t offset, int origin)
102  {
103      WebServerFile *file = (WebServerFile *) fh;
104 @@ -396,7 +396,7 @@ webserver_seek(UpnpWebFileHandle fh, off
105      return 0;
106  }
107  
108 -static int
109 +int
110  webserver_close(UpnpWebFileHandle fh)
111  {
112      WebServerFile *file = (WebServerFile *) fh;
113 @@ -419,12 +419,3 @@ webserver_close(UpnpWebFileHandle fh)
114  
115      return 0;
116  }
117 -
118 -struct UpnpVirtualDirCallbacks virtual_dir_callbacks = {
119 -    webserver_get_info,
120 -    webserver_open,
121 -    webserver_read,
122 -    webserver_write,
123 -    webserver_seek,
124 -    webserver_close
125 -};
126 --- /dev/null
127 +++ b/src/webserver.h
128 @@ -0,0 +1,6 @@
129 +int webserver_get_info(const char *filename, struct File_Info *info);
130 +UpnpWebFileHandle webserver_open(const char *filename, enum UpnpOpenFileMode mode);
131 +int webserver_read(UpnpWebFileHandle fh, char *buf, size_t buflen);
132 +int webserver_write(UpnpWebFileHandle fh, char *buf, size_t buflen);
133 +int webserver_seek(UpnpWebFileHandle fh, off_t offset, int origin);
134 +int webserver_close(UpnpWebFileHandle fh);
135 --- a/src/contentdir.c
136 +++ b/src/contentdir.c
137 @@ -22,6 +22,7 @@
138  #include <stdint.h>            /* Gnulib/C99 */
139  #include <inttypes.h>          /* ? */
140  #include <sys/stat.h>          /* POSIX */
141 +#include <assert.h>
142  #include "gettext.h"           /* Gnulib/gettext */
143  #define _(s) gettext(s)
144  #define N_(s) gettext_noop(s)