Patch nixed from OpenWRT svn to fix build breakage. Signed-off-by: Gustavo Zacarias --- a/src/cds.c +++ b/src/cds.c @@ -20,6 +20,8 @@ */ #include +#include +#include #include #include --- a/src/http.c +++ b/src/http.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -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 #include -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 +#include +#include #include #include --- a/src/mime.c +++ b/src/mime.c @@ -20,6 +20,7 @@ */ #include +#include #include #include "mime.h" --- a/src/presentation.c +++ b/src/presentation.c @@ -19,6 +19,8 @@ */ #include +#include +#include #if HAVE_LANGINFO_CODESET # include --- a/src/services.c +++ b/src/services.c @@ -20,6 +20,8 @@ */ #include +#include +#include #include #include