| Patch nixed from OpenWRT svn to fix build breakage. |
| |
| Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> |
| |
| --- a/src/cds.c |
| +++ b/src/cds.c |
| @@ -20,6 +20,8 @@ |
| */ |
| |
| #include <stdlib.h> |
| +#include <stdio.h> |
| +#include <string.h> |
| #include <upnp/upnp.h> |
| #include <upnp/upnptools.h> |
| |
| --- a/src/http.c |
| +++ b/src/http.c |
| @@ -25,6 +25,7 @@ |
| #include <errno.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| +#include <string.h> |
| #include <unistd.h> |
| #include <errno.h> |
| |
| @@ -77,8 +78,7 @@ set_info_file (struct File_Info *info, c |
| info->content_type = ixmlCloneDOMString (content_type); |
| } |
| |
| -static int |
| -http_get_info (const char *filename, struct File_Info *info) |
| +int http_get_info (const char *filename, struct File_Info *info) |
| { |
| extern struct ushare_t *ut; |
| struct upnp_entry_t *entry = NULL; |
| @@ -197,8 +197,7 @@ get_file_memory (const char *fullpath, c |
| return ((UpnpWebFileHandle) file); |
| } |
| |
| -static UpnpWebFileHandle |
| -http_open (const char *filename, enum UpnpOpenFileMode mode) |
| +UpnpWebFileHandle http_open (const char *filename, enum UpnpOpenFileMode mode) |
| { |
| extern struct ushare_t *ut; |
| struct upnp_entry_t *entry = NULL; |
| @@ -251,8 +250,7 @@ http_open (const char *filename, enum Up |
| return ((UpnpWebFileHandle) file); |
| } |
| |
| -static int |
| -http_read (UpnpWebFileHandle fh, char *buf, size_t buflen) |
| +int http_read (UpnpWebFileHandle fh, char *buf, size_t buflen) |
| { |
| struct web_file_t *file = (struct web_file_t *) fh; |
| ssize_t len = -1; |
| @@ -286,8 +284,7 @@ http_read (UpnpWebFileHandle fh, char *b |
| return len; |
| } |
| |
| -static int |
| -http_write (UpnpWebFileHandle fh __attribute__((unused)), |
| +int http_write (UpnpWebFileHandle fh __attribute__((unused)), |
| char *buf __attribute__((unused)), |
| size_t buflen __attribute__((unused))) |
| { |
| @@ -296,8 +293,7 @@ http_write (UpnpWebFileHandle fh __attri |
| return 0; |
| } |
| |
| -static int |
| -http_seek (UpnpWebFileHandle fh, off_t offset, int origin) |
| +int http_seek (UpnpWebFileHandle fh, off_t offset, int origin) |
| { |
| struct web_file_t *file = (struct web_file_t *) fh; |
| off_t newpos = -1; |
| @@ -371,8 +367,7 @@ http_seek (UpnpWebFileHandle fh, off_t o |
| return 0; |
| } |
| |
| -static int |
| -http_close (UpnpWebFileHandle fh) |
| +int http_close (UpnpWebFileHandle fh) |
| { |
| struct web_file_t *file = (struct web_file_t *) fh; |
| |
| @@ -402,13 +397,3 @@ http_close (UpnpWebFileHandle fh) |
| |
| return 0; |
| } |
| - |
| -struct UpnpVirtualDirCallbacks virtual_dir_callbacks = |
| - { |
| - http_get_info, |
| - http_open, |
| - http_read, |
| - http_write, |
| - http_seek, |
| - http_close |
| - }; |
| --- a/src/http.h |
| +++ b/src/http.h |
| @@ -25,6 +25,18 @@ |
| #include <upnp/upnp.h> |
| #include <upnp/upnptools.h> |
| |
| -struct UpnpVirtualDirCallbacks virtual_dir_callbacks; |
| +int http_get_info (const char *filename, struct File_Info *info); |
| + |
| +UpnpWebFileHandle http_open (const char *filename, enum UpnpOpenFileMode mode); |
| + |
| +int http_read (UpnpWebFileHandle fh, char *buf, size_t buflen); |
| + |
| +int http_seek (UpnpWebFileHandle fh, off_t offset, int origin); |
| + |
| +int http_write (UpnpWebFileHandle fh __attribute__((unused)), |
| + char *buf __attribute__((unused)), |
| + size_t buflen __attribute__((unused))); |
| + |
| +int http_close (UpnpWebFileHandle fh); |
| |
| #endif /* _HTTP_H_ */ |
| --- a/src/ushare.c |
| +++ b/src/ushare.c |
| @@ -188,7 +188,7 @@ handle_action_request (struct Upnp_Actio |
| if (strcmp (request->DevUDN + 5, ut->udn)) |
| return; |
| |
| - ip = request->CtrlPtIPAddr.s_addr; |
| + ip = (*(struct sockaddr_in *)&request->CtrlPtIPAddr).sin_addr.s_addr; |
| ip = ntohl (ip); |
| sprintf (val, "%d.%d.%d.%d", |
| (ip >> 24) & 0xFF, (ip >> 16) & 0xFF, (ip >> 8) & 0xFF, ip & 0xFF); |
| @@ -348,13 +348,23 @@ init_upnp (struct ushare_t *ut) |
| |
| UpnpEnableWebserver (TRUE); |
| |
| - res = UpnpSetVirtualDirCallbacks (&virtual_dir_callbacks); |
| - if (res != UPNP_E_SUCCESS) |
| - { |
| - log_error (_("Cannot set virtual directory callbacks\n")); |
| - free (description); |
| - return -1; |
| - } |
| +#define upnp_set_callback(cb, func) \ |
| + do { \ |
| + res = UpnpVirtualDir_set_##cb##Callback(func); \ |
| + if (res != UPNP_E_SUCCESS) \ |
| + { \ |
| + log_error (_("Cannot set virtual directory callbacks\n")); \ |
| + free (description); \ |
| + return -1; \ |
| + } \ |
| + } while(0) |
| + |
| + upnp_set_callback(GetInfo, http_get_info); |
| + upnp_set_callback(Open, http_open); |
| + upnp_set_callback(Read, http_read); |
| + upnp_set_callback(Seek, http_seek); |
| + upnp_set_callback(Write, http_write); |
| + upnp_set_callback(Close, http_close); |
| |
| res = UpnpAddVirtualDir (VIRTUAL_DIR); |
| if (res != UPNP_E_SUCCESS) |
| --- a/src/cms.c |
| +++ b/src/cms.c |
| @@ -20,6 +20,8 @@ |
| */ |
| |
| #include <stdlib.h> |
| +#include <stdio.h> |
| +#include <string.h> |
| #include <upnp/upnp.h> |
| #include <upnp/upnptools.h> |
| |
| --- a/src/mime.c |
| +++ b/src/mime.c |
| @@ -20,6 +20,7 @@ |
| */ |
| |
| #include <stdlib.h> |
| +#include <stdio.h> |
| #include <string.h> |
| |
| #include "mime.h" |
| --- a/src/presentation.c |
| +++ b/src/presentation.c |
| @@ -19,6 +19,8 @@ |
| */ |
| |
| #include <stdlib.h> |
| +#include <stdio.h> |
| +#include <string.h> |
| |
| #if HAVE_LANGINFO_CODESET |
| # include <langinfo.h> |
| --- a/src/services.c |
| +++ b/src/services.c |
| @@ -20,6 +20,8 @@ |
| */ |
| |
| #include <stdlib.h> |
| +#include <stdio.h> |
| +#include <string.h> |
| #include <upnp/upnp.h> |
| #include <upnp/upnptools.h> |
| |