0

I'm using libwebsockets and I can't compile a demo code implemented by myself.

I created the context:

struct libwebsocket_context *context;
...
context = libwebsocket_create_context(&info);

and when I try to access the members of the struct libwebsocket_context, defined in private-libwebsockets.h:

struct libwebsocket_context {
    struct pollfd *fds;
    struct libwebsocket **lws_lookup; /* fd to wsi */
    int fds_count;
    int max_fds;
    int listen_port;
    ...
};

For example,

printf("%d\n", context->listen_port);

The compiler returns,

error: dereferencing pointer to incomplete type

Thanks!

jcfaracco
  • 853
  • 2
  • 6
  • 21

2 Answers2

1

It seems that "struct libwebsocket_context" is not known for gcc - that's why this error occures. Are you sure that definition of this structure is included from .h file? I'd suggest you to insert for example #warning or #error with some message near definition of this struct (in .h file) and try to recompile your program. Your #error or #warning message should appear while compilation. If not - it means that gcc will not also see this struct.

user2699113
  • 4,262
  • 3
  • 25
  • 43
1

The fact that the struct definition is in private-libwebsockets.h suggests that you are not supposed to use the struct members directly. You can #include that header to get access to the private implementation details of the library but you probably should not do it.

Joni
  • 108,737
  • 14
  • 143
  • 193